Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/plugins/wpml-string-translation/dist/js/admin-strings/app.js
Назад
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=517)}([function(e,t,n){"use strict";e.exports=n(518)},function(e,t,n){e.exports=n(533)()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(6);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){Object(r.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},function(e,t,n){var r; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function o(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function a(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(c(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function f(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,r=[];for(n=0;n<e.length;++n)r.push(t(e[n],n));return r}function p(e,t){for(var n in t)c(t,n)&&(e[n]=t[n]);return c(t,"toString")&&(e.toString=t.toString),c(t,"valueOf")&&(e.valueOf=t.valueOf),e}function h(e,t,n,r){return Ct(e,t,n,r,!0).utc()}function m(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=m(e),n=r.call(t.parsedDateParts,(function(e){return null!=e})),o=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(o=o&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return o;e._isValid=o}return e._isValid}function y(e){var t=h(NaN);return null!=e?p(m(t),e):m(t).userInvalidated=!0,t}r=Array.prototype.some?Array.prototype.some:function(e){var t,n=Object(this),r=n.length>>>0;for(t=0;t<r;t++)if(t in n&&e.call(this,n[t],t,n))return!0;return!1};var _=o.momentProperties=[],g=!1;function b(e,t){var n,r,o;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=m(t)),l(t._locale)||(e._locale=t._locale),_.length>0)for(n=0;n<_.length;n++)l(o=t[r=_[n]])||(e[r]=o);return e}function M(e){b(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===g&&(g=!0,o.updateOffset(this),g=!1)}function w(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function O(e){!1===o.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function S(e,t){var n=!0;return p((function(){if(null!=o.deprecationHandler&&o.deprecationHandler(null,e),n){var r,i,a,s=[];for(i=0;i<arguments.length;i++){if(r="","object"==typeof arguments[i]){for(a in r+="\n["+i+"] ",arguments[0])c(arguments[0],a)&&(r+=a+": "+arguments[0][a]+", ");r=r.slice(0,-2)}else r=arguments[i];s.push(r)}O(e+"\nArguments: "+Array.prototype.slice.call(s).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var C,x={};function k(e,t){null!=o.deprecationHandler&&o.deprecationHandler(e,t),x[e]||(O(t),x[e]=!0)}function L(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function E(e,t){var n,r=p({},e);for(n in t)c(t,n)&&(a(e[n])&&a(t[n])?(r[n]={},p(r[n],e[n]),p(r[n],t[n])):null!=t[n]?r[n]=t[n]:delete r[n]);for(n in e)c(e,n)&&!c(t,n)&&a(e[n])&&(r[n]=p({},r[n]));return r}function T(e){null!=e&&this.set(e)}function P(e,t,n){var r=""+Math.abs(e),o=t-r.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,o)).toString().substr(1)+r}o.suppressDeprecationWarnings=!1,o.deprecationHandler=null,C=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)c(e,t)&&n.push(t);return n};var j=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,z=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,D={},N={};function H(e,t,n,r){var o=r;"string"==typeof r&&(o=function(){return this[r]()}),e&&(N[e]=o),t&&(N[t[0]]=function(){return P(o.apply(this,arguments),t[1],t[2])}),n&&(N[n]=function(){return this.localeData().ordinal(o.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=Y(t,e.localeData()),D[t]=D[t]||function(e){var t,n,r,o=e.match(j);for(t=0,n=o.length;t<n;t++)N[o[t]]?o[t]=N[o[t]]:o[t]=(r=o[t]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");return function(t){var r,i="";for(r=0;r<n;r++)i+=L(o[r])?o[r].call(t,e):o[r];return i}}(t),D[t](e)):e.localeData().invalidDate()}function Y(e,t){var n=5;function r(e){return t.longDateFormat(e)||e}for(z.lastIndex=0;n>=0&&z.test(e);)e=e.replace(z,r),z.lastIndex=0,n-=1;return e}var I={};function V(e,t){var n=e.toLowerCase();I[n]=I[n+"s"]=I[t]=e}function F(e){return"string"==typeof e?I[e]||I[e.toLowerCase()]:void 0}function R(e){var t,n,r={};for(n in e)c(e,n)&&(t=F(n))&&(r[t]=e[n]);return r}var W={};function U(e,t){W[e]=t}function B(e){return e%4==0&&e%100!=0||e%400==0}function K(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function q(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=K(t)),n}function G(e,t){return function(n){return null!=n?(J(this,e,n),o.updateOffset(this,t),this):$(this,e)}}function $(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function J(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&B(e.year())&&1===e.month()&&29===e.date()?(n=q(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),we(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var X,Q=/\d/,Z=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,re=/\d\d?/,oe=/\d\d\d\d?/,ie=/\d\d\d\d\d\d?/,ae=/\d{1,3}/,ce=/\d{1,4}/,se=/[+-]?\d{1,6}/,le=/\d+/,ue=/[+-]?\d+/,fe=/Z|[+-]\d\d:?\d\d/gi,de=/Z|[+-]\d\d(?::?\d\d)?/gi,pe=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function he(e,t,n){X[e]=L(t)?t:function(e,r){return e&&n?n:t}}function me(e,t){return c(X,e)?X[e](t._strict,t._locale):new RegExp(ve(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,o){return t||n||r||o}))))}function ve(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}X={};var ye,_e={};function ge(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=q(e)}),n=0;n<e.length;n++)_e[e[n]]=r}function be(e,t){ge(e,(function(e,n,r,o){r._w=r._w||{},t(e,r._w,r,o)}))}function Me(e,t,n){null!=t&&c(_e,e)&&_e[e](t,n._a,n,e)}function we(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?B(e)?29:28:31-r%7%2}ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},H("M",["MM",2],"Mo",(function(){return this.month()+1})),H("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),H("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),V("month","M"),U("month",8),he("M",re),he("MM",re,Z),he("MMM",(function(e,t){return t.monthsShortRegex(e)})),he("MMMM",(function(e,t){return t.monthsRegex(e)})),ge(["M","MM"],(function(e,t){t[1]=q(e)-1})),ge(["MMM","MMMM"],(function(e,t,n,r){var o=n._locale.monthsParse(e,r,n._strict);null!=o?t[1]=o:m(n).invalidMonth=e}));var Oe="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Se="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ce=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,xe=pe,ke=pe;function Le(e,t,n){var r,o,i,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)i=h([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(o=ye.call(this._shortMonthsParse,a))?o:null:-1!==(o=ye.call(this._longMonthsParse,a))?o:null:"MMM"===t?-1!==(o=ye.call(this._shortMonthsParse,a))||-1!==(o=ye.call(this._longMonthsParse,a))?o:null:-1!==(o=ye.call(this._longMonthsParse,a))||-1!==(o=ye.call(this._shortMonthsParse,a))?o:null}function Ee(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=q(t);else if(!u(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),we(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Te(e){return null!=e?(Ee(this,e),o.updateOffset(this,!0),this):$(this,"Month")}function Pe(){function e(e,t){return t.length-e.length}var t,n,r=[],o=[],i=[];for(t=0;t<12;t++)n=h([2e3,t]),r.push(this.monthsShort(n,"")),o.push(this.months(n,"")),i.push(this.months(n,"")),i.push(this.monthsShort(n,""));for(r.sort(e),o.sort(e),i.sort(e),t=0;t<12;t++)r[t]=ve(r[t]),o[t]=ve(o[t]);for(t=0;t<24;t++)i[t]=ve(i[t]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+r.join("|")+")","i")}function je(e){return B(e)?366:365}H("Y",0,0,(function(){var e=this.year();return e<=9999?P(e,4):"+"+e})),H(0,["YY",2],0,(function(){return this.year()%100})),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),V("year","y"),U("year",1),he("Y",ue),he("YY",re,Z),he("YYYY",ce,te),he("YYYYY",se,ne),he("YYYYYY",se,ne),ge(["YYYYY","YYYYYY"],0),ge("YYYY",(function(e,t){t[0]=2===e.length?o.parseTwoDigitYear(e):q(e)})),ge("YY",(function(e,t){t[0]=o.parseTwoDigitYear(e)})),ge("Y",(function(e,t){t[0]=parseInt(e,10)})),o.parseTwoDigitYear=function(e){return q(e)+(q(e)>68?1900:2e3)};var ze=G("FullYear",!0);function De(e,t,n,r,o,i,a){var c;return e<100&&e>=0?(c=new Date(e+400,t,n,r,o,i,a),isFinite(c.getFullYear())&&c.setFullYear(e)):c=new Date(e,t,n,r,o,i,a),c}function Ne(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function He(e,t,n){var r=7+t-n;return-(7+Ne(e,0,r).getUTCDay()-t)%7+r-1}function Ae(e,t,n,r,o){var i,a,c=1+7*(t-1)+(7+n-r)%7+He(e,r,o);return c<=0?a=je(i=e-1)+c:c>je(e)?(i=e+1,a=c-je(e)):(i=e,a=c),{year:i,dayOfYear:a}}function Ye(e,t,n){var r,o,i=He(e.year(),t,n),a=Math.floor((e.dayOfYear()-i-1)/7)+1;return a<1?r=a+Ie(o=e.year()-1,t,n):a>Ie(e.year(),t,n)?(r=a-Ie(e.year(),t,n),o=e.year()+1):(o=e.year(),r=a),{week:r,year:o}}function Ie(e,t,n){var r=He(e,t,n),o=He(e+1,t,n);return(je(e)-r+o)/7}function Ve(e,t){return e.slice(t,7).concat(e.slice(0,t))}H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),V("week","w"),V("isoWeek","W"),U("week",5),U("isoWeek",5),he("w",re),he("ww",re,Z),he("W",re),he("WW",re,Z),be(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=q(e)})),H("d",0,"do","day"),H("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),H("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),H("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),V("day","d"),V("weekday","e"),V("isoWeekday","E"),U("day",11),U("weekday",11),U("isoWeekday",11),he("d",re),he("e",re),he("E",re),he("dd",(function(e,t){return t.weekdaysMinRegex(e)})),he("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),he("dddd",(function(e,t){return t.weekdaysRegex(e)})),be(["dd","ddd","dddd"],(function(e,t,n,r){var o=n._locale.weekdaysParse(e,r,n._strict);null!=o?t.d=o:m(n).invalidWeekday=e})),be(["d","e","E"],(function(e,t,n,r){t[r]=q(e)}));var Fe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Re="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),We="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ue=pe,Be=pe,Ke=pe;function qe(e,t,n){var r,o,i,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=h([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(o=ye.call(this._weekdaysParse,a))?o:null:"ddd"===t?-1!==(o=ye.call(this._shortWeekdaysParse,a))?o:null:-1!==(o=ye.call(this._minWeekdaysParse,a))?o:null:"dddd"===t?-1!==(o=ye.call(this._weekdaysParse,a))||-1!==(o=ye.call(this._shortWeekdaysParse,a))||-1!==(o=ye.call(this._minWeekdaysParse,a))?o:null:"ddd"===t?-1!==(o=ye.call(this._shortWeekdaysParse,a))||-1!==(o=ye.call(this._weekdaysParse,a))||-1!==(o=ye.call(this._minWeekdaysParse,a))?o:null:-1!==(o=ye.call(this._minWeekdaysParse,a))||-1!==(o=ye.call(this._weekdaysParse,a))||-1!==(o=ye.call(this._shortWeekdaysParse,a))?o:null}function Ge(){function e(e,t){return t.length-e.length}var t,n,r,o,i,a=[],c=[],s=[],l=[];for(t=0;t<7;t++)n=h([2e3,1]).day(t),r=ve(this.weekdaysMin(n,"")),o=ve(this.weekdaysShort(n,"")),i=ve(this.weekdays(n,"")),a.push(r),c.push(o),s.push(i),l.push(r),l.push(o),l.push(i);a.sort(e),c.sort(e),s.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function $e(){return this.hours()%12||12}function Je(e,t){H(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Xe(e,t){return t._meridiemParse}H("H",["HH",2],0,"hour"),H("h",["hh",2],0,$e),H("k",["kk",2],0,(function(){return this.hours()||24})),H("hmm",0,0,(function(){return""+$e.apply(this)+P(this.minutes(),2)})),H("hmmss",0,0,(function(){return""+$e.apply(this)+P(this.minutes(),2)+P(this.seconds(),2)})),H("Hmm",0,0,(function(){return""+this.hours()+P(this.minutes(),2)})),H("Hmmss",0,0,(function(){return""+this.hours()+P(this.minutes(),2)+P(this.seconds(),2)})),Je("a",!0),Je("A",!1),V("hour","h"),U("hour",13),he("a",Xe),he("A",Xe),he("H",re),he("h",re),he("k",re),he("HH",re,Z),he("hh",re,Z),he("kk",re,Z),he("hmm",oe),he("hmmss",ie),he("Hmm",oe),he("Hmmss",ie),ge(["H","HH"],3),ge(["k","kk"],(function(e,t,n){var r=q(e);t[3]=24===r?0:r})),ge(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),ge(["h","hh"],(function(e,t,n){t[3]=q(e),m(n).bigHour=!0})),ge("hmm",(function(e,t,n){var r=e.length-2;t[3]=q(e.substr(0,r)),t[4]=q(e.substr(r)),m(n).bigHour=!0})),ge("hmmss",(function(e,t,n){var r=e.length-4,o=e.length-2;t[3]=q(e.substr(0,r)),t[4]=q(e.substr(r,2)),t[5]=q(e.substr(o)),m(n).bigHour=!0})),ge("Hmm",(function(e,t,n){var r=e.length-2;t[3]=q(e.substr(0,r)),t[4]=q(e.substr(r))})),ge("Hmmss",(function(e,t,n){var r=e.length-4,o=e.length-2;t[3]=q(e.substr(0,r)),t[4]=q(e.substr(r,2)),t[5]=q(e.substr(o))}));var Qe,Ze=G("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Oe,monthsShort:Se,week:{dow:0,doy:6},weekdays:Fe,weekdaysMin:We,weekdaysShort:Re,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n+=1)if(e[n]!==t[n])return n;return r}function ot(e){return e?e.toLowerCase().replace("_","-"):e}function it(t){var r=null;if(void 0===tt[t]&&void 0!==e&&e&&e.exports)try{r=Qe._abbr,n(583)("./"+t),at(r)}catch(e){tt[t]=null}return tt[t]}function at(e,t){var n;return e&&((n=l(t)?st(e):ct(e,t))?Qe=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Qe._abbr}function ct(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=it(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new T(E(r,t)),nt[e]&&nt[e].forEach((function(e){ct(e.name,e.config)})),at(e),tt[e]}return delete tt[e],null}function st(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qe;if(!i(e)){if(t=it(e))return t;e=[e]}return function(e){for(var t,n,r,o,i=0;i<e.length;){for(t=(o=ot(e[i]).split("-")).length,n=(n=ot(e[i+1]))?n.split("-"):null;t>0;){if(r=it(o.slice(0,t).join("-")))return r;if(n&&n.length>=t&&rt(o,n)>=t-1)break;t--}i++}return Qe}(e)}function lt(e){var t,n=e._a;return n&&-2===m(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>we(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,m(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),m(e)._overflowWeeks&&-1===t&&(t=7),m(e)._overflowWeekday&&-1===t&&(t=8),m(e).overflow=t),e}var ut=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/Z|[+-]\d\d(?::?\d\d)?/,pt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],ht=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],mt=/^\/?Date\((-?\d+)/i,vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,yt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function _t(e){var t,n,r,o,i,a,c=e._i,s=ut.exec(c)||ft.exec(c);if(s){for(m(e).iso=!0,t=0,n=pt.length;t<n;t++)if(pt[t][1].exec(s[1])){o=pt[t][0],r=!1!==pt[t][2];break}if(null==o)return void(e._isValid=!1);if(s[3]){for(t=0,n=ht.length;t<n;t++)if(ht[t][1].exec(s[3])){i=(s[2]||" ")+ht[t][0];break}if(null==i)return void(e._isValid=!1)}if(!r&&null!=i)return void(e._isValid=!1);if(s[4]){if(!dt.exec(s[4]))return void(e._isValid=!1);a="Z"}e._f=o+(i||"")+(a||""),Ot(e)}else e._isValid=!1}function gt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function bt(e){var t,n,r,o,i,a,c,s,l=vt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){if(n=l[4],r=l[3],o=l[2],i=l[5],a=l[6],c=l[7],s=[gt(n),Se.indexOf(r),parseInt(o,10),parseInt(i,10),parseInt(a,10)],c&&s.push(parseInt(c,10)),t=s,!function(e,t,n){return!e||Re.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(m(n).weekdayMismatch=!0,n._isValid=!1,!1)}(l[1],t,e))return;e._a=t,e._tzm=function(e,t,n){if(e)return yt[e];if(t)return 0;var r=parseInt(n,10),o=r%100;return(r-o)/100*60+o}(l[8],l[9],l[10]),e._d=Ne.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),m(e).rfc2822=!0}else e._isValid=!1}function Mt(e,t,n){return null!=e?e:null!=t?t:n}function wt(e){var t,n,r,i,a,c=[];if(!e._d){for(r=function(e){var t=new Date(o.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,o,i,a,c,s,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(i=1,a=4,n=Mt(t.GG,e._a[0],Ye(xt(),1,4).year),r=Mt(t.W,1),((o=Mt(t.E,1))<1||o>7)&&(s=!0)):(i=e._locale._week.dow,a=e._locale._week.doy,l=Ye(xt(),i,a),n=Mt(t.gg,e._a[0],l.year),r=Mt(t.w,l.week),null!=t.d?((o=t.d)<0||o>6)&&(s=!0):null!=t.e?(o=t.e+i,(t.e<0||t.e>6)&&(s=!0)):o=i),r<1||r>Ie(n,i,a)?m(e)._overflowWeeks=!0:null!=s?m(e)._overflowWeekday=!0:(c=Ae(n,r,o,i,a),e._a[0]=c.year,e._dayOfYear=c.dayOfYear)}(e),null!=e._dayOfYear&&(a=Mt(e._a[0],r[0]),(e._dayOfYear>je(a)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),n=Ne(a,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=r[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ne:De).apply(null,c),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(m(e).weekdayMismatch=!0)}}function Ot(e){if(e._f!==o.ISO_8601)if(e._f!==o.RFC_2822){e._a=[],m(e).empty=!0;var t,n,r,i,a,c,s=""+e._i,l=s.length,u=0;for(r=Y(e._f,e._locale).match(j)||[],t=0;t<r.length;t++)i=r[t],(n=(s.match(me(i,e))||[])[0])&&((a=s.substr(0,s.indexOf(n))).length>0&&m(e).unusedInput.push(a),s=s.slice(s.indexOf(n)+n.length),u+=n.length),N[i]?(n?m(e).empty=!1:m(e).unusedTokens.push(i),Me(i,n,e)):e._strict&&!n&&m(e).unusedTokens.push(i);m(e).charsLeftOver=l-u,s.length>0&&m(e).unusedInput.push(s),e._a[3]<=12&&!0===m(e).bigHour&&e._a[3]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(c=m(e).era)&&(e._a[0]=e._locale.erasConvertYear(c,e._a[0])),wt(e),lt(e)}else bt(e);else _t(e)}function St(e){var t=e._i,n=e._f;return e._locale=e._locale||st(e._l),null===t||void 0===n&&""===t?y({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),w(t)?new M(lt(t)):(f(t)?e._d=t:i(n)?function(e){var t,n,r,o,i,a,c=!1;if(0===e._f.length)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(o=0;o<e._f.length;o++)i=0,a=!1,t=b({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[o],Ot(t),v(t)&&(a=!0),i+=m(t).charsLeftOver,i+=10*m(t).unusedTokens.length,m(t).score=i,c?i<r&&(r=i,n=t):(null==r||i<r||a)&&(r=i,n=t,a&&(c=!0));p(e,n||t)}(e):n?Ot(e):function(e){var t=e._i;l(t)?e._d=new Date(o.now()):f(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=mt.exec(e._i);null===t?(_t(e),!1===e._isValid&&(delete e._isValid,bt(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:o.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):i(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),wt(e)):a(t)?function(e){if(!e._d){var t=R(e._i),n=void 0===t.day?t.date:t.day;e._a=d([t.year,t.month,n,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),wt(e)}}(e):u(t)?e._d=new Date(t):o.createFromInputFallback(e)}(e),v(e)||(e._d=null),e))}function Ct(e,t,n,r,o){var c,l={};return!0!==t&&!1!==t||(r=t,t=void 0),!0!==n&&!1!==n||(r=n,n=void 0),(a(e)&&s(e)||i(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=o,l._l=n,l._i=e,l._f=t,l._strict=r,(c=new M(lt(St(l))))._nextDay&&(c.add(1,"d"),c._nextDay=void 0),c}function xt(e,t,n,r){return Ct(e,t,n,r,!1)}o.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),o.ISO_8601=function(){},o.RFC_2822=function(){};var kt=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=xt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:y()})),Lt=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=xt.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:y()}));function Et(e,t){var n,r;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return xt();for(n=t[0],r=1;r<t.length;++r)t[r].isValid()&&!t[r][e](n)||(n=t[r]);return n}var Tt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Pt(e){var t=R(e),n=t.year||0,r=t.quarter||0,o=t.month||0,i=t.week||t.isoWeek||0,a=t.day||0,s=t.hour||0,l=t.minute||0,u=t.second||0,f=t.millisecond||0;this._isValid=function(e){var t,n,r=!1;for(t in e)if(c(e,t)&&(-1===ye.call(Tt,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<Tt.length;++n)if(e[Tt[n]]){if(r)return!1;parseFloat(e[Tt[n]])!==q(e[Tt[n]])&&(r=!0)}return!0}(t),this._milliseconds=+f+1e3*u+6e4*l+1e3*s*60*60,this._days=+a+7*i,this._months=+o+3*r+12*n,this._data={},this._locale=st(),this._bubble()}function jt(e){return e instanceof Pt}function zt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Dt(e,t){H(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+P(~~(e/60),2)+t+P(~~e%60,2)}))}Dt("Z",":"),Dt("ZZ",""),he("Z",de),he("ZZ",de),ge(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Ht(de,e)}));var Nt=/([\+\-]|\d\d)/gi;function Ht(e,t){var n,r,o=(t||"").match(e);return null===o?null:0===(r=60*(n=((o[o.length-1]||[])+"").match(Nt)||["-",0,0])[1]+q(n[2]))?0:"+"===n[0]?r:-r}function At(e,t){var n,r;return t._isUTC?(n=t.clone(),r=(w(e)||f(e)?e.valueOf():xt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+r),o.updateOffset(n,!1),n):xt(e).local()}function Yt(e){return-Math.round(e._d.getTimezoneOffset())}function It(){return!!this.isValid()&&this._isUTC&&0===this._offset}o.updateOffset=function(){};var Vt=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Ft=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Rt(e,t){var n,r,o,i,a,s,l=e,f=null;return jt(e)?l={ms:e._milliseconds,d:e._days,M:e._months}:u(e)||!isNaN(+e)?(l={},t?l[t]=+e:l.milliseconds=+e):(f=Vt.exec(e))?(n="-"===f[1]?-1:1,l={y:0,d:q(f[2])*n,h:q(f[3])*n,m:q(f[4])*n,s:q(f[5])*n,ms:q(zt(1e3*f[6]))*n}):(f=Ft.exec(e))?(n="-"===f[1]?-1:1,l={y:Wt(f[2],n),M:Wt(f[3],n),w:Wt(f[4],n),d:Wt(f[5],n),h:Wt(f[6],n),m:Wt(f[7],n),s:Wt(f[8],n)}):null==l?l={}:"object"==typeof l&&("from"in l||"to"in l)&&(i=xt(l.from),a=xt(l.to),o=i.isValid()&&a.isValid()?(a=At(a,i),i.isBefore(a)?s=Ut(i,a):((s=Ut(a,i)).milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0},(l={}).ms=o.milliseconds,l.M=o.months),r=new Pt(l),jt(e)&&c(e,"_locale")&&(r._locale=e._locale),jt(e)&&c(e,"_isValid")&&(r._isValid=e._isValid),r}function Wt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Ut(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function Bt(e,t){return function(n,r){var o;return null===r||isNaN(+r)||(k(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=r,r=o),Kt(this,Rt(n,r),e),this}}function Kt(e,t,n,r){var i=t._milliseconds,a=zt(t._days),c=zt(t._months);e.isValid()&&(r=null==r||r,c&&Ee(e,$(e,"Month")+c*n),a&&J(e,"Date",$(e,"Date")+a*n),i&&e._d.setTime(e._d.valueOf()+i*n),r&&o.updateOffset(e,a||c))}Rt.fn=Pt.prototype,Rt.invalid=function(){return Rt(NaN)};var qt=Bt(1,"add"),Gt=Bt(-1,"subtract");function $t(e){return"string"==typeof e||e instanceof String}function Jt(e){return w(e)||f(e)||$t(e)||u(e)||function(e){var t=i(e),n=!1;return t&&(n=0===e.filter((function(t){return!u(t)&&$t(e)})).length),t&&n}(e)||function(e){var t,n,r=a(e)&&!s(e),o=!1,i=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;t<i.length;t+=1)n=i[t],o=o||c(e,n);return r&&o}(e)||null==e}function Xt(e){var t,n=a(e)&&!s(e),r=!1,o=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<o.length;t+=1)r=r||c(e,o[t]);return n&&r}function Qt(e,t){if(e.date()<t.date())return-Qt(t,e);var n=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(n,"months");return-(n+(t-r<0?(t-r)/(r-e.clone().add(n-1,"months")):(t-r)/(e.clone().add(n+1,"months")-r)))||0}function Zt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=st(e))&&(this._locale=t),this)}o.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",o.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var en=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function tn(){return this._locale}function nn(e,t){return(e%t+t)%t}function rn(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function on(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function an(e,t){return t.erasAbbrRegex(e)}function cn(){var e,t,n=[],r=[],o=[],i=[],a=this.eras();for(e=0,t=a.length;e<t;++e)r.push(ve(a[e].name)),n.push(ve(a[e].abbr)),o.push(ve(a[e].narrow)),i.push(ve(a[e].name)),i.push(ve(a[e].abbr)),i.push(ve(a[e].narrow));this._erasRegex=new RegExp("^("+i.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+r.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+n.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+o.join("|")+")","i")}function sn(e,t){H(0,[e,e.length],0,t)}function ln(e,t,n,r,o){var i;return null==e?Ye(this,r,o).year:(t>(i=Ie(e,r,o))&&(t=i),un.call(this,e,t,n,r,o))}function un(e,t,n,r,o){var i=Ae(e,t,n,r,o),a=Ne(i.year,0,i.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}H("N",0,0,"eraAbbr"),H("NN",0,0,"eraAbbr"),H("NNN",0,0,"eraAbbr"),H("NNNN",0,0,"eraName"),H("NNNNN",0,0,"eraNarrow"),H("y",["y",1],"yo","eraYear"),H("y",["yy",2],0,"eraYear"),H("y",["yyy",3],0,"eraYear"),H("y",["yyyy",4],0,"eraYear"),he("N",an),he("NN",an),he("NNN",an),he("NNNN",(function(e,t){return t.erasNameRegex(e)})),he("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),ge(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var o=n._locale.erasParse(e,r,n._strict);o?m(n).era=o:m(n).invalidEra=e})),he("y",le),he("yy",le),he("yyy",le),he("yyyy",le),he("yo",(function(e,t){return t._eraYearOrdinalRegex||le})),ge(["y","yy","yyy","yyyy"],0),ge(["yo"],(function(e,t,n,r){var o;n._locale._eraYearOrdinalRegex&&(o=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,o):t[0]=parseInt(e,10)})),H(0,["gg",2],0,(function(){return this.weekYear()%100})),H(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),sn("gggg","weekYear"),sn("ggggg","weekYear"),sn("GGGG","isoWeekYear"),sn("GGGGG","isoWeekYear"),V("weekYear","gg"),V("isoWeekYear","GG"),U("weekYear",1),U("isoWeekYear",1),he("G",ue),he("g",ue),he("GG",re,Z),he("gg",re,Z),he("GGGG",ce,te),he("gggg",ce,te),he("GGGGG",se,ne),he("ggggg",se,ne),be(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=q(e)})),be(["gg","GG"],(function(e,t,n,r){t[r]=o.parseTwoDigitYear(e)})),H("Q",0,"Qo","quarter"),V("quarter","Q"),U("quarter",7),he("Q",Q),ge("Q",(function(e,t){t[1]=3*(q(e)-1)})),H("D",["DD",2],"Do","date"),V("date","D"),U("date",9),he("D",re),he("DD",re,Z),he("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),ge(["D","DD"],2),ge("Do",(function(e,t){t[2]=q(e.match(re)[0])}));var fn=G("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),V("dayOfYear","DDD"),U("dayOfYear",4),he("DDD",ae),he("DDDD",ee),ge(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=q(e)})),H("m",["mm",2],0,"minute"),V("minute","m"),U("minute",14),he("m",re),he("mm",re,Z),ge(["m","mm"],4);var dn=G("Minutes",!1);H("s",["ss",2],0,"second"),V("second","s"),U("second",15),he("s",re),he("ss",re,Z),ge(["s","ss"],5);var pn,hn,mn=G("Seconds",!1);for(H("S",0,0,(function(){return~~(this.millisecond()/100)})),H(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),H(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),H(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),H(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),H(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),H(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),V("millisecond","ms"),U("millisecond",16),he("S",ae,Q),he("SS",ae,Z),he("SSS",ae,ee),pn="SSSS";pn.length<=9;pn+="S")he(pn,le);function vn(e,t){t[6]=q(1e3*("0."+e))}for(pn="S";pn.length<=9;pn+="S")ge(pn,vn);hn=G("Milliseconds",!1),H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var yn=M.prototype;function _n(e){return e}yn.add=qt,yn.calendar=function(e,t){1===arguments.length&&(Jt(arguments[0])?(e=arguments[0],t=void 0):Xt(arguments[0])&&(t=arguments[0],e=void 0));var n=e||xt(),r=At(n,this).startOf("day"),i=o.calendarFormat(this,r)||"sameElse",a=t&&(L(t[i])?t[i].call(this,n):t[i]);return this.format(a||this.localeData().calendar(i,this,xt(n)))},yn.clone=function(){return new M(this)},yn.diff=function(e,t,n){var r,o,i;if(!this.isValid())return NaN;if(!(r=At(e,this)).isValid())return NaN;switch(o=6e4*(r.utcOffset()-this.utcOffset()),t=F(t)){case"year":i=Qt(this,r)/12;break;case"month":i=Qt(this,r);break;case"quarter":i=Qt(this,r)/3;break;case"second":i=(this-r)/1e3;break;case"minute":i=(this-r)/6e4;break;case"hour":i=(this-r)/36e5;break;case"day":i=(this-r-o)/864e5;break;case"week":i=(this-r-o)/6048e5;break;default:i=this-r}return n?i:K(i)},yn.endOf=function(e){var t,n;if(void 0===(e=F(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?on:rn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1}return this._d.setTime(t),o.updateOffset(this,!0),this},yn.format=function(e){e||(e=this.isUtc()?o.defaultFormatUtc:o.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},yn.from=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||xt(e).isValid())?Rt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},yn.fromNow=function(e){return this.from(xt(),e)},yn.to=function(e,t){return this.isValid()&&(w(e)&&e.isValid()||xt(e).isValid())?Rt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},yn.toNow=function(e){return this.to(xt(),e)},yn.get=function(e){return L(this[e=F(e)])?this[e]():this},yn.invalidAt=function(){return m(this).overflow},yn.isAfter=function(e,t){var n=w(e)?e:xt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=F(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},yn.isBefore=function(e,t){var n=w(e)?e:xt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=F(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},yn.isBetween=function(e,t,n,r){var o=w(e)?e:xt(e),i=w(t)?t:xt(t);return!!(this.isValid()&&o.isValid()&&i.isValid())&&(("("===(r=r||"()")[0]?this.isAfter(o,n):!this.isBefore(o,n))&&(")"===r[1]?this.isBefore(i,n):!this.isAfter(i,n)))},yn.isSame=function(e,t){var n,r=w(e)?e:xt(e);return!(!this.isValid()||!r.isValid())&&("millisecond"===(t=F(t)||"millisecond")?this.valueOf()===r.valueOf():(n=r.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},yn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},yn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},yn.isValid=function(){return v(this)},yn.lang=en,yn.locale=Zt,yn.localeData=tn,yn.max=Lt,yn.min=kt,yn.parsingFlags=function(){return p({},m(this))},yn.set=function(e,t){if("object"==typeof e){var n,r=function(e){var t,n=[];for(t in e)c(e,t)&&n.push({unit:t,priority:W[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}(e=R(e));for(n=0;n<r.length;n++)this[r[n].unit](e[r[n].unit])}else if(L(this[e=F(e)]))return this[e](t);return this},yn.startOf=function(e){var t,n;if(void 0===(e=F(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?on:rn,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3)}return this._d.setTime(t),o.updateOffset(this,!0),this},yn.subtract=Gt,yn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},yn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},yn.toDate=function(){return new Date(this.valueOf())},yn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):L(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},yn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",o="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",o="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=o+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(yn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),yn.toJSON=function(){return this.isValid()?this.toISOString():null},yn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},yn.unix=function(){return Math.floor(this.valueOf()/1e3)},yn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},yn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},yn.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].name;if(r[e].until<=n&&n<=r[e].since)return r[e].name}return""},yn.eraNarrow=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].narrow;if(r[e].until<=n&&n<=r[e].since)return r[e].narrow}return""},yn.eraAbbr=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e){if(n=this.startOf("day").valueOf(),r[e].since<=n&&n<=r[e].until)return r[e].abbr;if(r[e].until<=n&&n<=r[e].since)return r[e].abbr}return""},yn.eraYear=function(){var e,t,n,r,i=this.localeData().eras();for(e=0,t=i.length;e<t;++e)if(n=i[e].since<=i[e].until?1:-1,r=this.startOf("day").valueOf(),i[e].since<=r&&r<=i[e].until||i[e].until<=r&&r<=i[e].since)return(this.year()-o(i[e].since).year())*n+i[e].offset;return this.year()},yn.year=ze,yn.isLeapYear=function(){return B(this.year())},yn.weekYear=function(e){return ln.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},yn.isoWeekYear=function(e){return ln.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},yn.quarter=yn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},yn.month=Te,yn.daysInMonth=function(){return we(this.year(),this.month())},yn.week=yn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},yn.isoWeek=yn.isoWeeks=function(e){var t=Ye(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},yn.weeksInYear=function(){var e=this.localeData()._week;return Ie(this.year(),e.dow,e.doy)},yn.weeksInWeekYear=function(){var e=this.localeData()._week;return Ie(this.weekYear(),e.dow,e.doy)},yn.isoWeeksInYear=function(){return Ie(this.year(),1,4)},yn.isoWeeksInISOWeekYear=function(){return Ie(this.isoWeekYear(),1,4)},yn.date=fn,yn.day=yn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},yn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},yn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},yn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},yn.hour=yn.hours=Ze,yn.minute=yn.minutes=dn,yn.second=yn.seconds=mn,yn.millisecond=yn.milliseconds=hn,yn.utcOffset=function(e,t,n){var r,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ht(de,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Yt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),i!==e&&(!t||this._changeInProgress?Kt(this,Rt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,o.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Yt(this)},yn.utc=function(e){return this.utcOffset(0,e)},yn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Yt(this),"m")),this},yn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ht(fe,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},yn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?xt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},yn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},yn.isLocal=function(){return!!this.isValid()&&!this._isUTC},yn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},yn.isUtc=It,yn.isUTC=It,yn.zoneAbbr=function(){return this._isUTC?"UTC":""},yn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},yn.dates=S("dates accessor is deprecated. Use date instead.",fn),yn.months=S("months accessor is deprecated. Use month instead",Te),yn.years=S("years accessor is deprecated. Use year instead",ze),yn.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),yn.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=St(t))._a?(e=t._isUTC?h(t._a):xt(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,o=Math.min(e.length,t.length),i=Math.abs(e.length-t.length),a=0;for(r=0;r<o;r++)(n&&e[r]!==t[r]||!n&&q(e[r])!==q(t[r]))&&a++;return a+i}(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}));var gn=T.prototype;function bn(e,t,n,r){var o=st(),i=h().set(r,t);return o[n](i,e)}function Mn(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return bn(e,t,n,"month");var r,o=[];for(r=0;r<12;r++)o[r]=bn(e,r,n,"month");return o}function wn(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var o,i=st(),a=e?i._week.dow:0,c=[];if(null!=n)return bn(t,(n+a)%7,r,"day");for(o=0;o<7;o++)c[o]=bn(t,(o+a)%7,r,"day");return c}gn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return L(r)?r.call(t,n):r},gn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(j).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},gn.invalidDate=function(){return this._invalidDate},gn.ordinal=function(e){return this._ordinal.replace("%d",e)},gn.preparse=_n,gn.postformat=_n,gn.relativeTime=function(e,t,n,r){var o=this._relativeTime[n];return L(o)?o(e,t,n,r):o.replace(/%d/i,e)},gn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return L(n)?n(t):n.replace(/%s/i,t)},gn.set=function(e){var t,n;for(n in e)c(e,n)&&(L(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},gn.eras=function(e,t){var n,r,i,a=this._eras||st("en")._eras;for(n=0,r=a.length;n<r;++n){switch(typeof a[n].since){case"string":i=o(a[n].since).startOf("day"),a[n].since=i.valueOf()}switch(typeof a[n].until){case"undefined":a[n].until=1/0;break;case"string":i=o(a[n].until).startOf("day").valueOf(),a[n].until=i.valueOf()}}return a},gn.erasParse=function(e,t,n){var r,o,i,a,c,s=this.eras();for(e=e.toUpperCase(),r=0,o=s.length;r<o;++r)if(i=s[r].name.toUpperCase(),a=s[r].abbr.toUpperCase(),c=s[r].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(a===e)return s[r];break;case"NNNN":if(i===e)return s[r];break;case"NNNNN":if(c===e)return s[r]}else if([i,a,c].indexOf(e)>=0)return s[r]},gn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?o(e.since).year():o(e.since).year()+(t-e.offset)*n},gn.erasAbbrRegex=function(e){return c(this,"_erasAbbrRegex")||cn.call(this),e?this._erasAbbrRegex:this._erasRegex},gn.erasNameRegex=function(e){return c(this,"_erasNameRegex")||cn.call(this),e?this._erasNameRegex:this._erasRegex},gn.erasNarrowRegex=function(e){return c(this,"_erasNarrowRegex")||cn.call(this),e?this._erasNarrowRegex:this._erasRegex},gn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Ce).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},gn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Ce.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},gn.monthsParse=function(e,t,n){var r,o,i;if(this._monthsParseExact)return Le.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(o=h([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(i="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[r]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},gn.monthsRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Pe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=ke),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},gn.monthsShortRegex=function(e){return this._monthsParseExact?(c(this,"_monthsRegex")||Pe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=xe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},gn.week=function(e){return Ye(e,this._week.dow,this._week.doy).week},gn.firstDayOfYear=function(){return this._week.doy},gn.firstDayOfWeek=function(){return this._week.dow},gn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ve(n,this._week.dow):e?n[e.day()]:n},gn.weekdaysMin=function(e){return!0===e?Ve(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},gn.weekdaysShort=function(e){return!0===e?Ve(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},gn.weekdaysParse=function(e,t,n){var r,o,i;if(this._weekdaysParseExact)return qe.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(o=h([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(o,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(o,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(o,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(o,"")+"|^"+this.weekdaysShort(o,"")+"|^"+this.weekdaysMin(o,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},gn.weekdaysRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Ue),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},gn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Be),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},gn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Ge.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ke),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},gn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},gn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},at("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===q(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),o.lang=S("moment.lang is deprecated. Use moment.locale instead.",at),o.langData=S("moment.langData is deprecated. Use moment.localeData instead.",st);var On=Math.abs;function Sn(e,t,n,r){var o=Rt(t,n);return e._milliseconds+=r*o._milliseconds,e._days+=r*o._days,e._months+=r*o._months,e._bubble()}function Cn(e){return e<0?Math.floor(e):Math.ceil(e)}function xn(e){return 4800*e/146097}function kn(e){return 146097*e/4800}function Ln(e){return function(){return this.as(e)}}var En=Ln("ms"),Tn=Ln("s"),Pn=Ln("m"),jn=Ln("h"),zn=Ln("d"),Dn=Ln("w"),Nn=Ln("M"),Hn=Ln("Q"),An=Ln("y");function Yn(e){return function(){return this.isValid()?this._data[e]:NaN}}var In=Yn("milliseconds"),Vn=Yn("seconds"),Fn=Yn("minutes"),Rn=Yn("hours"),Wn=Yn("days"),Un=Yn("months"),Bn=Yn("years"),Kn=Math.round,qn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Gn(e,t,n,r,o){return o.relativeTime(t||1,!!n,e,r)}var $n=Math.abs;function Jn(e){return(e>0)-(e<0)||+e}function Xn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,o,i,a,c,s=$n(this._milliseconds)/1e3,l=$n(this._days),u=$n(this._months),f=this.asSeconds();return f?(e=K(s/60),t=K(e/60),s%=60,e%=60,n=K(u/12),u%=12,r=s?s.toFixed(3).replace(/\.?0+$/,""):"",o=f<0?"-":"",i=Jn(this._months)!==Jn(f)?"-":"",a=Jn(this._days)!==Jn(f)?"-":"",c=Jn(this._milliseconds)!==Jn(f)?"-":"",o+"P"+(n?i+n+"Y":"")+(u?i+u+"M":"")+(l?a+l+"D":"")+(t||e||s?"T":"")+(t?c+t+"H":"")+(e?c+e+"M":"")+(s?c+r+"S":"")):"P0D"}var Qn=Pt.prototype;return Qn.isValid=function(){return this._isValid},Qn.abs=function(){var e=this._data;return this._milliseconds=On(this._milliseconds),this._days=On(this._days),this._months=On(this._months),e.milliseconds=On(e.milliseconds),e.seconds=On(e.seconds),e.minutes=On(e.minutes),e.hours=On(e.hours),e.months=On(e.months),e.years=On(e.years),this},Qn.add=function(e,t){return Sn(this,e,t,1)},Qn.subtract=function(e,t){return Sn(this,e,t,-1)},Qn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=F(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+xn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(kn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Qn.asMilliseconds=En,Qn.asSeconds=Tn,Qn.asMinutes=Pn,Qn.asHours=jn,Qn.asDays=zn,Qn.asWeeks=Dn,Qn.asMonths=Nn,Qn.asQuarters=Hn,Qn.asYears=An,Qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12):NaN},Qn._bubble=function(){var e,t,n,r,o,i=this._milliseconds,a=this._days,c=this._months,s=this._data;return i>=0&&a>=0&&c>=0||i<=0&&a<=0&&c<=0||(i+=864e5*Cn(kn(c)+a),a=0,c=0),s.milliseconds=i%1e3,e=K(i/1e3),s.seconds=e%60,t=K(e/60),s.minutes=t%60,n=K(t/60),s.hours=n%24,a+=K(n/24),o=K(xn(a)),c+=o,a-=Cn(kn(o)),r=K(c/12),c%=12,s.days=a,s.months=c,s.years=r,this},Qn.clone=function(){return Rt(this)},Qn.get=function(e){return e=F(e),this.isValid()?this[e+"s"]():NaN},Qn.milliseconds=In,Qn.seconds=Vn,Qn.minutes=Fn,Qn.hours=Rn,Qn.days=Wn,Qn.weeks=function(){return K(this.days()/7)},Qn.months=Un,Qn.years=Bn,Qn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,o=!1,i=qn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(o=e),"object"==typeof t&&(i=Object.assign({},qn,t),null!=t.s&&null==t.ss&&(i.ss=t.s-1)),n=this.localeData(),r=function(e,t,n,r){var o=Rt(e).abs(),i=Kn(o.as("s")),a=Kn(o.as("m")),c=Kn(o.as("h")),s=Kn(o.as("d")),l=Kn(o.as("M")),u=Kn(o.as("w")),f=Kn(o.as("y")),d=i<=n.ss&&["s",i]||i<n.s&&["ss",i]||a<=1&&["m"]||a<n.m&&["mm",a]||c<=1&&["h"]||c<n.h&&["hh",c]||s<=1&&["d"]||s<n.d&&["dd",s];return null!=n.w&&(d=d||u<=1&&["w"]||u<n.w&&["ww",u]),(d=d||l<=1&&["M"]||l<n.M&&["MM",l]||f<=1&&["y"]||["yy",f])[2]=t,d[3]=+e>0,d[4]=r,Gn.apply(null,d)}(this,!o,i,n),o&&(r=n.pastFuture(+this,r)),n.postformat(r)},Qn.toISOString=Xn,Qn.toString=Xn,Qn.toJSON=Xn,Qn.locale=Zt,Qn.localeData=tn,Qn.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Xn),Qn.lang=en,H("X",0,0,"unix"),H("x",0,0,"valueOf"),he("x",ue),he("X",/[+-]?\d+(\.\d{1,3})?/),ge("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),ge("x",(function(e,t,n){n._d=new Date(q(e))})), //! moment.js o.version="2.27.0",t=xt,o.fn=yn,o.min=function(){var e=[].slice.call(arguments,0);return Et("isBefore",e)},o.max=function(){var e=[].slice.call(arguments,0);return Et("isAfter",e)},o.now=function(){return Date.now?Date.now():+new Date},o.utc=h,o.unix=function(e){return xt(1e3*e)},o.months=function(e,t){return Mn(e,t,"months")},o.isDate=f,o.locale=at,o.invalid=y,o.duration=Rt,o.isMoment=w,o.weekdays=function(e,t,n){return wn(e,t,n,"weekdays")},o.parseZone=function(){return xt.apply(null,arguments).parseZone()},o.localeData=st,o.isDuration=jt,o.monthsShort=function(e,t){return Mn(e,t,"monthsShort")},o.weekdaysMin=function(e,t,n){return wn(e,t,n,"weekdaysMin")},o.defineLocale=ct,o.updateLocale=function(e,t){if(null!=t){var n,r,o=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(E(tt[e]._config,t)):(null!=(r=it(e))&&(o=r._config),t=E(o,t),null==r&&(t.abbr=e),(n=new T(t)).parentLocale=tt[e],tt[e]=n),at(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===at()&&at(e)):null!=tt[e]&&delete tt[e]);return tt[e]},o.locales=function(){return C(tt)},o.weekdaysShort=function(e,t,n){return wn(e,t,n,"weekdaysShort")},o.normalizeUnits=F,o.relativeTimeRounding=function(e){return void 0===e?Kn:"function"==typeof e&&(Kn=e,!0)},o.relativeTimeThreshold=function(e,t){return void 0!==qn[e]&&(void 0===t?qn[e]:(qn[e]=t,"s"===e&&(qn.ss=t-1),!0))},o.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},o.prototype=yn,o.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},o}()}).call(this,n(136)(e))},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}}(),e.exports=n(519)},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}n.d(t,"a",(function(){return r}))},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(157);var o=n(110),i=n(158);function a(e,t){return Object(r.a)(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||Object(o.a)(e,t)||Object(i.a)()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(15),o=n(25);function i(e){return function t(n,i){switch(arguments.length){case 0:return t;case 1:return Object(o.a)(n)?t:Object(r.a)((function(t){return e(n,t)}));default:return Object(o.a)(n)&&Object(o.a)(i)?t:Object(o.a)(n)?Object(r.a)((function(t){return e(t,i)})):Object(o.a)(i)?Object(r.a)((function(t){return e(n,t)})):e(n,i)}}}},function(e,t,n){var r=n(9).default;function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(i,c,s):i[c]=e[c]}return i.default=e,n&&n.set(e,i),i},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(535),i=(r=o)&&r.__esModule?r:{default:r};t.default=i.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,n.apply(this,arguments)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(25);function o(e){return function t(n){return 0===arguments.length||Object(r.a)(n)?t:e.apply(this,arguments)}}},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(129);var o=n(156),i=n(110);function a(e){return function(e){if(Array.isArray(e))return Object(r.a)(e)}(e)||Object(o.a)(e)||Object(i.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(153),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,i.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";function r(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),r(n(879)),r(n(913)),r(n(474)),r(n(214)),r(n(97)),r(n(148)),r(n(213)),r(n(89)),r(n(914)),r(n(125)),r(n(203)),r(n(915)),r(n(108)),r(n(124)),r(n(472)),r(n(475)),r(n(471)),r(n(215)),r(n(916)),r(n(917)),r(n(918)),r(n(147)),r(n(476)),r(n(212)),r(n(52)),r(n(919)),r(n(47)),r(n(473))},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(566)),o=a(n(570)),i=a(n(153));function a(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,i.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t,n){"use strict";var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.a=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Before=0]="Before",e[e.Equal=1]="Equal",e[e.After=2]="After"}(t.BoundaryPosition||(t.BoundaryPosition={})),function(e){e[e.None=0]="None",e[e.Capturing=1]="Capturing",e[e.AtTarget=2]="AtTarget",e[e.Bubbling=3]="Bubbling"}(t.EventPhase||(t.EventPhase={})),function(e){e[e.Element=1]="Element",e[e.Attribute=2]="Attribute",e[e.Text=3]="Text",e[e.CData=4]="CData",e[e.EntityReference=5]="EntityReference",e[e.Entity=6]="Entity",e[e.ProcessingInstruction=7]="ProcessingInstruction",e[e.Comment=8]="Comment",e[e.Document=9]="Document",e[e.DocumentType=10]="DocumentType",e[e.DocumentFragment=11]="DocumentFragment",e[e.Notation=12]="Notation"}(t.NodeType||(t.NodeType={})),function(e){e[e.Disconnected=1]="Disconnected",e[e.Preceding=2]="Preceding",e[e.Following=4]="Following",e[e.Contains=8]="Contains",e[e.ContainedBy=16]="ContainedBy",e[e.ImplementationSpecific=32]="ImplementationSpecific"}(t.Position||(t.Position={})),function(e){e[e.Accept=1]="Accept",e[e.Reject=2]="Reject",e[e.Skip=3]="Skip"}(t.FilterResult||(t.FilterResult={})),function(e){e[e.All=4294967295]="All",e[e.Element=1]="Element",e[e.Attribute=2]="Attribute",e[e.Text=4]="Text",e[e.CDataSection=8]="CDataSection",e[e.EntityReference=16]="EntityReference",e[e.Entity=32]="Entity",e[e.ProcessingInstruction=64]="ProcessingInstruction",e[e.Comment=128]="Comment",e[e.Document=256]="Document",e[e.DocumentType=512]="DocumentType",e[e.DocumentFragment=1024]="DocumentFragment",e[e.Notation=2048]="Notation"}(t.WhatToShow||(t.WhatToShow={})),function(e){e[e.StartToStart=0]="StartToStart",e[e.StartToEnd=1]="StartToEnd",e[e.EndToEnd=2]="EndToEnd",e[e.EndToStart=3]="EndToStart"}(t.HowToCompare||(t.HowToCompare={}))},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(859);t.Cast=r.Cast;var o=n(441);t.Guard=o.Guard;var i=n(860);t.EmptySet=i.EmptySet},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,"a",(function(){return s}));var o=n(9),i=n.n(o),a=n(40);function c(e,t){return!t||"object"!==i()(t)&&"function"!=typeof t?Object(a.a)(e):t}function s(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=r(e);if(t){var i=r(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return c(this,n)}}},function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}n.d(t,"a",(function(){return o}))},function(e,t,n){var r=n(522),o=n(523),i=n(236),a=n(524);e.exports=function(e,t){return r(e)||o(e,t)||i(e,t)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(390),o=n(626),i=n(179),a=n(392);e.exports=function(e,t){return r(e)||o(e,t)||i(e,t)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConfigConsumer",{enumerable:!0,get:function(){return d.ConfigConsumer}}),Object.defineProperty(t,"ConfigContext",{enumerable:!0,get:function(){return d.ConfigContext}}),t.default=t.globalConfig=t.defaultPrefixCls=t.configConsumerProps=void 0;var i=r(n(14)),a=y(n(0)),c=r(n(185)),s=n(1049),l=r(n(666)),u=y(n(667)),f=r(n(187)),d=n(188),p=y(n(122)),h=r(n(409)),m=r(n(692));function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function y(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}t.configConsumerProps=["getTargetContainer","getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];var _,g=["getTargetContainer","getPopupContainer","renderEmpty","pageHeader","input","form"];t.defaultPrefixCls="ant";function b(){return _||"ant"}t.globalConfig=function(){return{getPrefixCls:function(e,t){return t||(e?"".concat(b(),"-").concat(e):b())},getRootPrefixCls:function(e,t){return e||(_||(t&&t.includes("-")?t.replace(/^(.*)-[^-]*$/,"$1"):b()))}}};var M=function(e){var t=e.children,n=e.csp,r=e.autoInsertSpaceInButton,o=e.form,f=e.locale,h=e.componentSize,m=e.direction,v=e.space,y=e.virtual,_=e.dropdownMatchSelectWidth,b=e.legacyLocale,M=e.parentContext,w=e.iconPrefixCls,O=a.useCallback((function(t,n){var r=e.prefixCls;if(n)return n;var o=r||M.getPrefixCls("");return t?"".concat(o,"-").concat(t):o}),[M.getPrefixCls]),S=(0,i.default)((0,i.default)({},M),{csp:n,autoInsertSpaceInButton:r,locale:f||b,direction:m,space:v,virtual:y,dropdownMatchSelectWidth:_,getPrefixCls:O});g.forEach((function(t){var n=e[t];n&&(S[t]=n)}));var C=(0,l.default)((function(){return S}),S,(function(e,t){var n=Object.keys(e),r=Object.keys(t);return n.length!==r.length||n.some((function(n){return e[n]!==t[n]}))})),x=a.useMemo((function(){return{prefixCls:w,csp:n}}),[w]),k=t,L={};return f&&f.Form&&f.Form.defaultValidateMessages&&(L=f.Form.defaultValidateMessages),o&&o.validateMessages&&(L=(0,i.default)((0,i.default)({},L),o.validateMessages)),Object.keys(L).length>0&&(k=a.createElement(s.FormProvider,{validateMessages:L},t)),f&&(k=a.createElement(u.default,{locale:f,_ANT_MARK__:u.ANT_MARK},k)),w&&(k=a.createElement(c.default.Provider,{value:x},k)),h&&(k=a.createElement(p.SizeContextProvider,{size:h},k)),a.createElement(d.ConfigContext.Provider,{value:C},k)},w=function(e){return a.useEffect((function(){e.direction&&(h.default.config({rtl:"rtl"===e.direction}),m.default.config({rtl:"rtl"===e.direction}))}),[e.direction]),a.createElement(f.default,null,(function(t,n,r){return a.createElement(d.ConfigConsumer,null,(function(t){return a.createElement(M,(0,i.default)({parentContext:t,legacyLocale:r},e))}))}))};w.ConfigContext=d.ConfigContext,w.SizeContext=p.default,w.config=function(e){void 0!==e.prefixCls&&(_=e.prefixCls)};var O=w;t.default=O},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(855);t.FixedSizeSet=r.FixedSizeSet;var o=n(856);t.ObjectCache=o.ObjectCache;var i=n(857);t.CompareCache=i.CompareCache;var a=n(858);function c(e,t,n){if(p(e))e.forEach((e,r)=>t.call(n,r,e));else for(const r in e)e.hasOwnProperty(r)&&t.call(n,r,e[r])}function s(e){if(l(e))return e;if(f(e)){const t=[];for(const n of e)t.push(s(n));return t}if(u(e)){const t={};for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];t[n]=s(r)}return t}return e}function l(e){return!!e&&"[object Function]"===Object.prototype.toString.call(e)}function u(e){const t=typeof e;return!!e&&("function"===t||"object"===t)}function f(e){return Array.isArray(e)}function d(e){return e instanceof Set}function p(e){return e instanceof Map}t.Lazy=a.Lazy,t.applyMixin=function(e,t,...n){Object.getOwnPropertyNames(t.prototype).forEach(r=>{if(n.includes(r)){const t=Object.getOwnPropertyDescriptor(e.prototype,r);t&&Object.defineProperty(e.prototype,"_"+r,t)}const o=Object.getOwnPropertyDescriptor(t.prototype,r);o&&Object.defineProperty(e.prototype,r,o)})},t.applyDefaults=function e(t,n,r=!1){const o=s(t||{});return c(n,(t,n)=>{u(n)?o[t]=e(o[t],n):(r||void 0===o[t])&&(o[t]=n)}),o},t.forEachArray=function(e,t,n){e.forEach(t,n)},t.forEachObject=c,t.arrayLength=function(e){return d(e)?e.size:e.length},t.objectLength=function(e){return p(e)?e.size:Object.keys(e).length},t.getObjectValue=function(e,t){return p(e)?e.get(t):e[t]},t.removeObjectValue=function(e,t){p(e)?e.delete(t):delete e[t]},t.clone=s,t.isBoolean=function(e){return"boolean"==typeof e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isFunction=l,t.isObject=u,t.isArray=f,t.isSet=d,t.isMap=p,t.isEmpty=function(e){if(f(e))return!e.length;if(d(e))return!e.size;if(p(e))return!e.size;if(u(e)){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},t.isPlainObject=function(e){if(u(e)){const t=Object.getPrototypeOf(e),n=t.constructor;return t&&n&&"function"==typeof n&&n instanceof n&&Function.prototype.toString.call(n)===Function.prototype.toString.call(Object)}return!1},t.isIterable=function(e){return e&&"function"==typeof e[Symbol.iterator]},t.getValue=function(e){return l(e.valueOf)?e.valueOf():e},t.utf8Encode=function(e){const t=new Uint8Array(4*e.length);let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);if(o<128)t[n++]=o;else{if(o<2048)t[n++]=o>>6|192;else{if(o>55295&&o<56320){if(++r>=e.length)throw new Error("Incomplete surrogate pair.");const i=e.charCodeAt(r);if(i<56320||i>57343)throw new Error("Invalid surrogate character.");o=65536+((1023&o)<<10)+(1023&i),t[n++]=o>>18|240,t[n++]=o>>12&63|128}else t[n++]=o>>12|224;t[n++]=o>>6&63|128}t[n++]=63&o|128}}return t.subarray(0,n)},t.utf8Decode=function(e){let t="",n=0;for(;n<e.length;){var r=e[n++];if(r>127)if(r>191&&r<224){if(n>=e.length)throw new Error("Incomplete 2-byte sequence.");r=(31&r)<<6|63&e[n++]}else if(r>223&&r<240){if(n+1>=e.length)throw new Error("Incomplete 3-byte sequence.");r=(15&r)<<12|(63&e[n++])<<6|63&e[n++]}else{if(!(r>239&&r<248))throw new Error("Unknown multi-byte start.");if(n+2>=e.length)throw new Error("Incomplete 4-byte sequence.");r=(7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++]}if(r<=65535)t+=String.fromCharCode(r);else{if(!(r<=1114111))throw new Error("Code point exceeds UTF-16 limit.");r-=65536,t+=String.fromCharCode(r>>10|55296),t+=String.fromCharCode(1023&r|56320)}}return t}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c}));var r={};function o(e,t){0}function i(e,t){0}function a(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function c(e,t){a(i,e,t)}t.a=function(e,t){a(o,e,t)}},function(e,t,n){"use strict";var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.a=r},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(32)),a=o(n(16)),c=o(n(71)),s=r(n(0)),l=o(n(3)),u=o(n(185)),f=o(n(410)),d=n(678),p=n(190);(0,d.setTwoToneColor)("#1890ff");var h=s.forwardRef((function(e,t){var n,r=e.className,o=e.icon,d=e.spin,h=e.rotate,m=e.tabIndex,v=e.onClick,y=e.twoToneColor,_=(0,c.default)(e,["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"]),g=s.useContext(u.default).prefixCls,b=void 0===g?"anticon":g,M=(0,l.default)(b,(n={},(0,a.default)(n,"".concat(b,"-").concat(o.name),!!o.name),(0,a.default)(n,"".concat(b,"-spin"),!!d||"loading"===o.name),n),r),w=m;void 0===w&&v&&(w=-1);var O=h?{msTransform:"rotate(".concat(h,"deg)"),transform:"rotate(".concat(h,"deg)")}:void 0,S=(0,p.normalizeTwoToneColors)(y),C=(0,i.default)(S,2),x=C[0],k=C[1];return s.createElement("span",Object.assign({role:"img","aria-label":o.name},_,{ref:t,tabIndex:w,onClick:v,className:M}),s.createElement(f.default,{icon:o,primaryColor:x,secondaryColor:k,style:O}))}));h.displayName="AntdIcon",h.getTwoToneColor=d.getTwoToneColor,h.setTwoToneColor=d.setTwoToneColor;var m=h;t.default=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(446);t.AbortController=o.AbortControllerImpl;const i=n(447);t.AbortSignal=i.AbortSignalImpl;const a=n(204);t.AbstractRange=a.AbstractRangeImpl;const c=n(448);t.Attr=c.AttrImpl;const s=n(452);t.CDATASection=s.CDATASectionImpl;const l=n(146);t.CharacterData=l.CharacterDataImpl;const u=n(904),f=n(453);t.Comment=f.CommentImpl;const d=n(454);t.CustomEvent=d.CustomEventImpl;const p=n(208);t.DocumentFragment=p.DocumentFragmentImpl;const h=n(209);t.Document=h.DocumentImpl;const m=n(905),v=n(455);t.DocumentType=v.DocumentTypeImpl;const y=n(906);t.dom=y.dom;const _=n(456);t.DOMImplementation=_.DOMImplementationImpl;const g=n(457);t.DOMTokenList=g.DOMTokenListImpl;const b=n(210);t.Element=b.ElementImpl;const M=n(207);t.Event=M.EventImpl;const w=n(145);t.EventTarget=w.EventTargetImpl;const O=n(458);t.HTMLCollection=O.HTMLCollectionImpl;const S=n(907);t.MutationObserver=S.MutationObserverImpl;const C=n(459);t.MutationRecord=C.MutationRecordImpl;const x=n(460);t.NamedNodeMap=x.NamedNodeMapImpl;const k=n(461);t.NodeFilter=k.NodeFilterImpl;const L=n(96);t.Node=L.NodeImpl;const E=n(462);t.NodeIterator=E.NodeIteratorImpl;const T=n(463);t.NodeList=T.NodeListImpl;const P=n(464);t.NodeListStatic=P.NodeListStaticImpl;const j=n(908),z=n(909),D=n(910),N=n(465);t.ProcessingInstruction=N.ProcessingInstructionImpl;const H=n(466);t.Range=H.RangeImpl;const A=n(467);t.ShadowRoot=A.ShadowRootImpl;const Y=n(911),I=n(912);t.StaticRange=I.StaticRangeImpl;const V=n(206);t.Text=V.TextImpl;const F=n(211);t.Traverser=F.TraverserImpl;const R=n(468);t.TreeWalker=R.TreeWalkerImpl;const W=n(469);t.Window=W.WindowImpl;const U=n(470);t.XMLDocument=U.XMLDocumentImpl,r.applyMixin(b.ElementImpl,u.ChildNodeImpl),r.applyMixin(l.CharacterDataImpl,u.ChildNodeImpl),r.applyMixin(v.DocumentTypeImpl,u.ChildNodeImpl),r.applyMixin(h.DocumentImpl,m.DocumentOrShadowRootImpl),r.applyMixin(A.ShadowRootImpl,m.DocumentOrShadowRootImpl),r.applyMixin(b.ElementImpl,j.NonDocumentTypeChildNodeImpl),r.applyMixin(l.CharacterDataImpl,j.NonDocumentTypeChildNodeImpl),r.applyMixin(h.DocumentImpl,z.NonElementParentNodeImpl),r.applyMixin(p.DocumentFragmentImpl,z.NonElementParentNodeImpl),r.applyMixin(h.DocumentImpl,D.ParentNodeImpl),r.applyMixin(p.DocumentFragmentImpl,D.ParentNodeImpl),r.applyMixin(b.ElementImpl,D.ParentNodeImpl),r.applyMixin(V.TextImpl,Y.SlotableImpl),r.applyMixin(b.ElementImpl,Y.SlotableImpl)},function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r extends Error{constructor(e,t=""){super(t),this.name=e}}t.DOMException=r;t.DOMStringSizeError=class extends r{constructor(e=""){super("DOMStringSizeError",e)}};t.WrongDocumentError=class extends r{constructor(e=""){super("WrongDocumentError","The object is in the wrong document. "+e)}};t.NoDataAllowedError=class extends r{constructor(e=""){super("NoDataAllowedError",e)}};t.NoModificationAllowedError=class extends r{constructor(e=""){super("NoModificationAllowedError","The object can not be modified. "+e)}};t.NotSupportedError=class extends r{constructor(e=""){super("NotSupportedError","The operation is not supported. "+e)}};t.InUseAttributeError=class extends r{constructor(e=""){super("InUseAttributeError",e)}};t.InvalidStateError=class extends r{constructor(e=""){super("InvalidStateError","The object is in an invalid state. "+e)}};t.InvalidModificationError=class extends r{constructor(e=""){super("InvalidModificationError","The object can not be modified in this way. "+e)}};t.NamespaceError=class extends r{constructor(e=""){super("NamespaceError","The operation is not allowed by Namespaces in XML. [XMLNS] "+e)}};t.InvalidAccessError=class extends r{constructor(e=""){super("InvalidAccessError","The object does not support the operation or argument. "+e)}};t.ValidationError=class extends r{constructor(e=""){super("ValidationError",e)}};t.TypeMismatchError=class extends r{constructor(e=""){super("TypeMismatchError",e)}};t.SecurityError=class extends r{constructor(e=""){super("SecurityError","The operation is insecure. "+e)}};t.NetworkError=class extends r{constructor(e=""){super("NetworkError","A network error occurred. "+e)}};t.AbortError=class extends r{constructor(e=""){super("AbortError","The operation was aborted. "+e)}};t.URLMismatchError=class extends r{constructor(e=""){super("URLMismatchError","The given URL does not match another URL. "+e)}};t.QuotaExceededError=class extends r{constructor(e=""){super("QuotaExceededError","The quota has been exceeded. "+e)}};t.TimeoutError=class extends r{constructor(e=""){super("TimeoutError","The operation timed out. "+e)}};t.InvalidNodeTypeError=class extends r{constructor(e=""){super("InvalidNodeTypeError","The supplied node is incorrect or has an incorrect ancestor for this operation. "+e)}};t.DataCloneError=class extends r{constructor(e=""){super("DataCloneError","The object can not be cloned. "+e)}};t.NotImplementedError=class extends r{constructor(e=""){super("NotImplementedError","The DOM method is not implemented by this module. "+e)}};t.HierarchyRequestError=class extends r{constructor(e=""){super("HierarchyRequestError","The operation would yield an incorrect node tree. "+e)}};t.NotFoundError=class extends r{constructor(e=""){super("NotFoundError","The object can not be found here. "+e)}};t.IndexSizeError=class extends r{constructor(e=""){super("IndexSizeError","The index is not in the allowed range. "+e)}};t.SyntaxError=class extends r{constructor(e=""){super("SyntaxError","The string did not match the expected pattern. "+e)}};t.InvalidCharacterError=class extends r{constructor(e=""){super("InvalidCharacterError","The string contains invalid characters. "+e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.convertFieldsError=a,t.format=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=1,o=t[0],a=t.length;if("function"==typeof o)return o.apply(null,t.slice(1));if("string"==typeof o){for(var c=String(o).replace(i,(function(e){if("%%"===e)return"%";if(r>=a)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}})),s=t[r];r<a;s=t[++r])c+=" "+s;return c}return o},t.isEmptyValue=function(e,t){if(null==e)return!0;if("array"===t&&Array.isArray(e)&&!e.length)return!0;if(function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"pattern"===e}(t)&&"string"==typeof e&&!e)return!0;return!1},t.isEmptyObject=function(e){return 0===Object.keys(e).length},t.asyncMap=function(e,t,n,r){if(t.first){return c(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n])})),t}(e),n,r)}var o=t.firstFields||[];!0===o&&(o=Object.keys(e));var i=Object.keys(e),s=i.length,l=0,u=[],f=new Promise((function(t,f){var d=function(e){if(u.push.apply(u,e),++l===s)return r(u),u.length?f({errors:u,fields:a(u)}):t()};i.forEach((function(t){var r=e[t];-1!==o.indexOf(t)?c(r,n,d):function(e,t,n){var r=[],o=0,i=e.length;function a(e){r.push.apply(r,e),++o===i&&n(r)}e.forEach((function(e){t(e,a)}))}(r,n,d)}))}));return f.catch((function(e){return e})),f},t.complementError=function(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:"function"==typeof t?t():t,field:t.field||e.fullField}}},t.deepMerge=function(e,t){if(t)for(var n in t)if(t.hasOwnProperty(n)){var i=t[n];"object"===(void 0===i?"undefined":o(i))&&"object"===o(e[n])?e[n]=r({},e[n],i):e[n]=i}return e};var i=/%[sdj%]/g;t.warning=function(){};function a(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function c(e,t,n){var r=0,o=e.length;!function i(a){if(a&&a.length)n(a);else{var c=r;r+=1,c<o?t(e[c],i):n([])}}([])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ConfigConsumer",{enumerable:!0,get:function(){return c.ConfigConsumer}}),t.default=t.configConsumerProps=void 0;var r,o=l(n(0)),i=l(n(582)),a=(r=n(135))&&r.__esModule?r:{default:r},c=n(585);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var o=y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}t.configConsumerProps=["getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(l,e);var t,n,r,s=m(l);function l(){var e;return d(this,l),(e=s.apply(this,arguments)).getPrefixCls=function(t,n){var r=e.props.prefixCls,o=void 0===r?"ant":r;return n||(t?"".concat(o,"-").concat(t):o)},e.renderProvider=function(t,n){var r=e.props,a=r.children,s=r.getPopupContainer,l=r.renderEmpty,u=r.csp,d=r.autoInsertSpaceInButton,p=r.locale,h=r.pageHeader,m=f(f({},t),{getPrefixCls:e.getPrefixCls,csp:u,autoInsertSpaceInButton:d});return s&&(m.getPopupContainer=s),l&&(m.renderEmpty=l),h&&(m.pageHeader=h),o.createElement(c.ConfigContext.Provider,{value:m},o.createElement(i.default,{locale:p||n,_ANT_MARK__:i.ANT_MARK},a))},e}return t=l,(n=[{key:"render",value:function(){var e=this;return o.createElement(a.default,null,(function(t,n,r){return o.createElement(c.ConfigConsumer,null,(function(t){return e.renderProvider(t,r)}))}))}}])&&p(t.prototype,n),r&&p(t,r),l}(o.Component);t.default=_},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(244),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,i.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(244),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,i.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(867));t.base64=o;const i=r(n(444));t.byte=i;const a=r(n(445));t.byteSequence=a;const c=r(n(202));t.codePoint=c;const s=r(n(871));t.json=s;const l=r(n(872));t.list=l;const u=r(n(873));t.map=u;const f=r(n(874));t.namespace=f;const d=r(n(875));t.queue=d;const p=r(n(876));t.set=p;const h=r(n(877));t.stack=h;const m=r(n(878));t.string=m},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.idl_defineConst=function(e,t,n){Object.defineProperty(e,t,{writable:!1,enumerable:!0,configurable:!1,value:n})}},function(e,t,n){"use strict";function r(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function o(e){this.setState(function(t){var n=this.constructor.getDerivedStateFromProps(e,t);return null!=n?n:null}.bind(this))}function i(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function a(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,a=null,c=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?a="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(a="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?c="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(c="UNSAFE_componentWillUpdate"),null!==n||null!==a||null!==c){var s=e.displayName||e.name,l="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+s+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==a?"\n "+a:"")+(null!==c?"\n "+c:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=r,t.componentWillReceiveProps=o),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=i;var u=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",(function(){return a})),r.__suppressDeprecationWarning=!0,o.__suppressDeprecationWarning=!0,i.__suppressDeprecationWarning=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(486)),o=l(n(1010)),i=l(n(1011)),a=l(n(1012)),c=l(n(1013)),s=l(n(1014));function l(e){return e&&e.__esModule?e:{default:e}}t.default={required:r.default,whitespace:o.default,type:i.default,range:a.default,enum:c.default,pattern:s.default}},function(e,t,n){"use strict";var r=n(68),o=n(15),i=n(11),a=n(25);var c=Object(i.a)((function(e,t){return 1===e?Object(o.a)(t):Object(r.a)(e,function e(t,n,o){return function(){for(var i=[],c=0,s=t,l=0;l<n.length||c<arguments.length;){var u;l<n.length&&(!Object(a.a)(n[l])||c>=arguments.length)?u=n[l]:(u=arguments[c],c+=1),i[l]=u,Object(a.a)(u)||(s-=1),l+=1}return s<=0?o.apply(this,i):Object(r.a)(s,e(t,i,o))}}(e,[],t))}));t.a=c},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=m(n(0)),i=p(n(3)),a=m(n(542)),c=p(n(496)),s=p(n(575)),l=n(576),u=p(n(64)),f=p(n(135)),d=n(581);function p(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var g,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};c.default.add.apply(c.default,function(e){if(Array.isArray(e))return _(e)}(g=Object.keys(a).map((function(e){return a[e]})))||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(g)||function(e,t){if(e){if("string"==typeof e)return _(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_(e,t):void 0}}(g)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),(0,d.setTwoToneColor)("#1890ff");var M,w="outlined";var O=function(e){var t,n=e.className,r=e.type,a=e.component,s=e.viewBox,d=e.spin,p=e.rotate,h=e.tabIndex,m=e.onClick,_=e.children,g=e.theme,O=e.twoToneColor,S=b(e,["className","type","component","viewBox","spin","rotate","tabIndex","onClick","children","theme","twoToneColor"]);(0,u.default)(Boolean(r||a||_),"Icon","Should have `type` prop or `component` prop or `children`.");var C=(0,i.default)((y(t={},"anticon",!0),y(t,"anticon-".concat(r),Boolean(r)),t),n),x=(0,i.default)(y({},"anticon-spin",!!d||"loading"===r)),k=p?{msTransform:"rotate(".concat(p,"deg)"),transform:"rotate(".concat(p,"deg)")}:void 0,L=v(v({},l.svgBaseProps),{className:x,style:k,viewBox:s});s||delete L.viewBox;var E=h;return void 0===E&&m&&(E=-1),o.createElement(f.default,{componentName:"Icon"},(function(e){return o.createElement("i",v({"aria-label":r&&"".concat(e.icon,": ").concat(r)},S,{tabIndex:E,onClick:m,className:C}),function(){if(a)return o.createElement(a,L,_);if(_)return(0,u.default)(Boolean(s)||1===o.Children.count(_)&&o.isValidElement(_)&&"use"===o.Children.only(_).type,"Icon","Make sure that you provide correct `viewBox` prop (default `0 0 1024 1024`) to the icon."),o.createElement("svg",v({},L,{viewBox:s}),_);if("string"==typeof r){var e=r;if(g){var t=(0,l.getThemeFromTypeName)(r);(0,u.default)(!t||g===t,"Icon","The icon name '".concat(r,"' already specify a theme '").concat(t,"',")+" the 'theme' prop '".concat(g,"' will be ignored."))}return e=(0,l.withThemeSuffix)((0,l.removeTypeTheme)((0,l.alias)(e)),M||g||w),o.createElement(c.default,{className:x,type:e,primaryColor:O,style:k})}}())}))};O.createFromIconfontCN=s.default,O.getTwoToneColor=d.getTwoToneColor,O.setTwoToneColor=d.setTwoToneColor;var S=O;t.default=S},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(26),o=n(24);function i(e,t,n=!1){if(n&&r.Guard.isElementNode(t)&&r.Guard.isShadowRoot(t.shadowRoot)&&t.shadowRoot._firstChild)return t.shadowRoot._firstChild;if(t._firstChild)return t._firstChild;if(t===e)return null;if(t._nextSibling)return t._nextSibling;let o=t._parent;for(;o&&o!==e;){if(o._nextSibling)return o._nextSibling;o=o._parent}return null}function a(){return{[Symbol.iterator]:()=>({next:()=>({done:!0,value:null})})}}function c(e,t=!1,n=!1,r){let o=t?e:i(e,e,n);for(;o&&r&&!r(o);)o=i(e,o,n);return o}function s(e,t,n=!1,r=!1,o){let a=i(e,t,r);for(;a&&o&&!o(a);)a=i(e,a,r);return a}function l(e,t=!1,n=!1,r){return t||0!==e._children.size?{[Symbol.iterator]:()=>{let o=t?e:i(e,e,n);return{next:()=>{for(;o&&r&&!r(o);)o=i(e,o,n);if(null===o)return{done:!0,value:null};{const t={done:!1,value:o};return o=i(e,o,n),t}}}}}:a()}function u(e,t=!1,n){let r=t?e:e._parent;for(;r&&n&&!n(r);)r=r._parent;return r}function f(e,t,n=!1,r){let o=t._parent;for(;o&&r&&!r(o);)o=o._parent;return o}function d(e){return r.Guard.isDocumentTypeNode(e)?0:r.Guard.isCharacterDataNode(e)?e._data.length:e._children.size}function p(e,t=!1){if(t){const t=p(e,!1);return r.Guard.isShadowRoot(t)?p(t._host,!0):t}return e._parent?p(e._parent):e}function h(e,t,n=!1,o=!1){let i=n?e:o&&r.Guard.isShadowRoot(e)?e._host:e._parent;for(;null!==i;){if(i===t)return!0;i=o&&r.Guard.isShadowRoot(i)?i._host:i._parent}return!1}function m(e){const t=p(e);let n=0,r=c(t);for(;null!==r;){if(n++,r===e)return n;r=s(t,r)}return-1}t.tree_getFirstDescendantNode=c,t.tree_getNextDescendantNode=s,t.tree_getDescendantNodes=l,t.tree_getDescendantElements=function(e,t=!1,n=!1,o){return t||0!==e._children.size?{[Symbol.iterator]:()=>{const i=l(e,t,n,e=>r.Guard.isElementNode(e))[Symbol.iterator]();let a=i.next().value;return{next(){for(;a&&o&&!o(a);)a=i.next().value;if(null===a)return{done:!0,value:null};{const e={done:!1,value:a};return a=i.next().value,e}}}}}:a()},t.tree_getSiblingNodes=function(e,t=!1,n){return e._parent&&0!==e._parent._children.size?{[Symbol.iterator](){let r=e._parent?e._parent._firstChild:null;return{next(){for(;r&&(n&&!n(r)||!t&&r===e);)r=r._nextSibling;if(null===r)return{done:!0,value:null};{const e={done:!1,value:r};return r=r._nextSibling,e}}}}}:a()},t.tree_getFirstAncestorNode=u,t.tree_getNextAncestorNode=f,t.tree_getAncestorNodes=function(e,t=!1,n){return t||e._parent?{[Symbol.iterator](){let r=u(e,t,n);return{next(){if(null===r)return{done:!0,value:null};{const e={done:!1,value:r};return r=f(0,r,t,n),e}}}}}:a()},t.tree_getCommonAncestor=function(e,t){if(e===t)return e._parent;const n=[],r=[];let o=u(e,!0);for(;null!==o;)n.push(o),o=f(0,o,!0);let i=u(t,!0);for(;null!==i;)r.push(i),i=f(0,i,!0);let a=n.length,c=r.length,s=null;for(let e=Math.min(a,c);e>0;e--){const e=n[--a];if(e!==r[--c])break;s=e}return s},t.tree_getFollowingNode=function(e,t){if(t._firstChild)return t._firstChild;if(t._nextSibling)return t._nextSibling;for(;;){const n=t._parent;if(null===n||n===e)return null;if(n._nextSibling)return n._nextSibling;t=n}},t.tree_getPrecedingNode=function(e,t){return t===e?null:t._previousSibling?(t=t._previousSibling)._lastChild?t._lastChild:t:t._parent},t.tree_isConstrained=function e(t){switch(t._nodeType){case o.NodeType.Document:let e=!1,n=!1;for(const r of t._children)switch(r._nodeType){case o.NodeType.ProcessingInstruction:case o.NodeType.Comment:break;case o.NodeType.DocumentType:if(e||n)return!1;e=!0;break;case o.NodeType.Element:if(n)return!1;n=!0;break;default:return!1}break;case o.NodeType.DocumentFragment:case o.NodeType.Element:for(const e of t._children)switch(e._nodeType){case o.NodeType.Element:case o.NodeType.Text:case o.NodeType.ProcessingInstruction:case o.NodeType.CData:case o.NodeType.Comment:break;default:return!1}break;case o.NodeType.DocumentType:case o.NodeType.Text:case o.NodeType.ProcessingInstruction:case o.NodeType.CData:case o.NodeType.Comment:return!t.hasChildNodes()}for(const n of t._children)if(!e(n))return!1;return!0},t.tree_nodeLength=d,t.tree_isEmpty=function(e){return 0===d(e)},t.tree_rootNode=p,t.tree_isDescendantOf=function(e,t,n=!1,r=!1){let o=c(e,n,r);for(;null!==o;){if(o===t)return!0;o=s(e,o,n,r)}return!1},t.tree_isAncestorOf=h,t.tree_isHostIncludingAncestorOf=function e(t,n,o=!1){if(h(t,n,o))return!0;const i=p(t);return!(!r.Guard.isDocumentFragmentNode(i)||null===i._host||!e(i._host,n,o))},t.tree_isSiblingOf=function(e,t,n=!1){return e!==t?null!==e._parent&&e._parent===t._parent:!!n},t.tree_isPreceding=function(e,t){const n=m(e),r=m(t);return-1!==n&&-1!==r&&(p(e)===p(t)&&r<n)},t.tree_isFollowing=function(e,t){const n=m(e),r=m(t);return-1!==n&&-1!==r&&(p(e)===p(t)&&r>n)},t.tree_isParentOf=function(e,t){return e._parent===t},t.tree_isChildOf=function(e,t){return t._parent===e},t.tree_previousSibling=function(e){return e._previousSibling},t.tree_nextSibling=function(e){return e._nextSibling},t.tree_firstChild=function(e){return e._firstChild},t.tree_lastChild=function(e){return e._lastChild},t.tree_treePosition=m,t.tree_index=function(e){let t=0;for(;null!==e._previousSibling;)t++,e=e._previousSibling;return t},t.tree_retarget=function(e,t){for(;;){if(!e||!r.Guard.isNode(e))return e;const n=p(e);if(!r.Guard.isShadowRoot(n))return e;if(t&&r.Guard.isNode(t)&&h(n,t,!0,!0))return e;e=n.host}}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.r(t);var u=n(505),f=n.n(u);function d(e,t){return!t||"object"!==f()(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=l(e);if(t){var o=l(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return d(this,n)}}var h=n(0),m=n.n(h),v=n(7),y=n.n(v);var _=n(160);var g={};function b(e,t){0}function M(e,t,n){t||g[n]||(e(!1,n),g[n]=!0)}var w=function(e,t){M(b,e,t)};function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t){"function"==typeof e?e(t):"object"===O(e)&&e&&"current"in e&&(e.current=t)}function C(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){S(t,e)}))}}var x=n(75),k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(l,e);var t,n,r,o=p(l);function l(){var e;return a(this,l),(e=o.apply(this,arguments)).resizeObserver=null,e.childNode=null,e.currentElement=null,e.state={width:0,height:0,offsetHeight:0,offsetWidth:0},e.onResize=function(t){var n=e.props.onResize,r=t[0].target,o=r.getBoundingClientRect(),a=o.width,c=o.height,s=r.offsetWidth,l=r.offsetHeight,u=Math.floor(a),f=Math.floor(c);if(e.state.width!==u||e.state.height!==f||e.state.offsetWidth!==s||e.state.offsetHeight!==l){var d={width:u,height:f,offsetWidth:s,offsetHeight:l};e.setState(d),n&&Promise.resolve().then((function(){n(i(i({},d),{},{offsetWidth:s,offsetHeight:l}),r)}))}},e.setChildNode=function(t){e.childNode=t},e}return t=l,(n=[{key:"componentDidMount",value:function(){this.onComponentUpdated()}},{key:"componentDidUpdate",value:function(){this.onComponentUpdated()}},{key:"componentWillUnmount",value:function(){this.destroyObserver()}},{key:"onComponentUpdated",value:function(){if(this.props.disabled)this.destroyObserver();else{var e,t=(e=this.childNode||this)instanceof HTMLElement?e:y.a.findDOMNode(e);t!==this.currentElement&&(this.destroyObserver(),this.currentElement=t),!this.resizeObserver&&t&&(this.resizeObserver=new x.default(this.onResize),this.resizeObserver.observe(t))}}},{key:"destroyObserver",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"render",value:function(){var e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return m.a.Children.forEach(t,(function(t){(null!=t||n.keepEmpty)&&(Array.isArray(t)?r=r.concat(e(t)):Object(_.isFragment)(t)&&t.props?r=r.concat(e(t.props.children,n)):r.push(t))})),r}(this.props.children);if(e.length>1)w(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===e.length)return w(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var t,n,r,o,i=e[0];if(h.isValidElement(i)&&(t=i,("function"!=typeof(o=Object(_.isMemo)(t)?t.type.type:t.type)||(null===(n=o.prototype)||void 0===n?void 0:n.render))&&("function"!=typeof t||(null===(r=t.prototype)||void 0===r?void 0:r.render)))){var a=i.ref;e[0]=h.cloneElement(i,{ref:C(a,this.setChildNode)})}return 1===e.length?e[0]:e.map((function(e,t){return!h.isValidElement(e)||"key"in e&&null!==e.key?e:h.cloneElement(e,{key:"".concat("rc-observer-key","-").concat(t)})}))}}])&&c(t.prototype,n),r&&c(t,r),l}(h.Component);k.displayName="ResizeObserver";t.default=k},function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return a})),n.d(t,"c",(function(){return c}));var r=n(37),o=n(98);function i(e,t){"function"==typeof e?e(t):"object"===Object(r.a)(e)&&e&&"current"in e&&(e.current=t)}function a(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){i(t,e)}))}}function c(e){var t,n,r=Object(o.isMemo)(e)?e.type.type:e.type;return!("function"==typeof r&&!(null===(t=r.prototype)||void 0===t?void 0:t.render))&&!("function"==typeof e&&!(null===(n=e.prototype)||void 0===n?void 0:n.render))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(7),o=n.n(r);function i(e,t,n,r){var i=o.a.unstable_batchedUpdates?function(e){o.a.unstable_batchedUpdates(n,e)}:n;return e.addEventListener&&e.addEventListener(t,i,r),{remove:function(){e.removeEventListener&&e.removeEventListener(t,i)}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=function(e){return+setTimeout(e,16)},o=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(r=function(e){return window.requestAnimationFrame(e)},o=function(e){return window.cancelAnimationFrame(e)});var i=0,a=new Map;function c(e){a.delete(e)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=i+=1;function o(t){if(0===t)c(n),e();else{var i=r((function(){o(t-1)}));a.set(n,i)}}return o(t),n}s.cancel=function(e){var t=a.get(e);return c(t),o(t)}},function(e,t,n){var r=n(16);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(630),o=n(393),i=n(179),a=n(631);e.exports=function(e){return r(e)||o(e)||i(e)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(t),s=0;s<i.length;s++){var l=i[s];if(!c(l))return!1;var u=e[l],f=t[l];if(!1===(o=n?n.call(r,u,f,l):void 0)||void 0===o&&u!==f)return!1}return!0}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}n.r(t),n.d(t,"CSSMotionList",(function(){return ce}));var l=n(0),u=n(7),f=n.n(u);n(509);function d(e,t){"function"==typeof e?e(t):"object"===s(e)&&e&&"current"in e&&(e.current=t)}var p=n(3),h=n.n(p);function m(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}function v(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit".concat(e)]="webkit".concat(t),n["Moz".concat(e)]="moz".concat(t),n["ms".concat(e)]="MS".concat(t),n["O".concat(e)]="o".concat(t.toLowerCase()),n}var y,_,g,b=(y=m(),_="undefined"!=typeof window?window:{},g={animationend:v("Animation","AnimationEnd"),transitionend:v("Transition","TransitionEnd")},y&&("AnimationEvent"in _||delete g.animationend.animation,"TransitionEvent"in _||delete g.transitionend.transition),g),M={};if(m()){var w=document.createElement("div");M=w.style}var O={};function S(e){if(O[e])return O[e];var t=b[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o<r;o+=1){var i=n[o];if(Object.prototype.hasOwnProperty.call(t,i)&&i in M)return O[e]=t[i],O[e]}return""}var C=S("animationend"),x=S("transitionend"),k=!(!C||!x),L=C||"animationend",E=x||"transitionend";function T(e,t){return e?"object"===s(e)?e[t.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))]:"".concat(e,"-").concat(t):null}function P(e){var t=Object(l.useRef)(!1),n=c(Object(l.useState)(e),2),r=n[0],o=n[1];return Object(l.useEffect)((function(){return function(){t.current=!0}}),[]),[r,function(e){t.current||o(e)}]}var j=m()?l.useLayoutEffect:l.useEffect,z=function(e){return+setTimeout(e,16)},D=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(z=function(e){return window.requestAnimationFrame(e)},D=function(e){return window.cancelAnimationFrame(e)});var N=0,H=new Map;function A(e){H.delete(e)}function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=N+=1;function r(t){if(0===t)A(n),e();else{var o=z((function(){r(t-1)}));H.set(n,o)}}return r(t),n}Y.cancel=function(e){var t=H.get(e);return A(t),D(t)};var I=["prepare","start","active","end"];function V(e){return"active"===e||"end"===e}var F=function(e,t){var n=c(l.useState("none"),2),r=n[0],o=n[1],i=c(function(){var e=l.useRef(null);function t(){Y.cancel(e.current)}return l.useEffect((function(){return function(){t()}}),[]),[function n(r){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;t();var i=Y((function(){o<=1?r({isCanceled:function(){return i!==e.current}}):n(r,o-1)}));e.current=i},t]}(),2),a=i[0],s=i[1];return j((function(){if("none"!==r&&"end"!==r){var e=I.indexOf(r),n=I[e+1],i=t(r);!1===i?o(n):a((function(e){function t(){e.isCanceled()||o(n)}!0===i?t():Promise.resolve(i).then(t)}))}}),[e,r]),l.useEffect((function(){return function(){s()}}),[]),[function(){o("prepare")},r]};function R(e,t,n,o){var a=o.motionEnter,s=void 0===a||a,u=o.motionAppear,f=void 0===u||u,d=o.motionLeave,p=void 0===d||d,h=o.motionDeadline,m=o.motionLeaveImmediately,v=o.onAppearPrepare,y=o.onEnterPrepare,_=o.onLeavePrepare,g=o.onAppearStart,b=o.onEnterStart,M=o.onLeaveStart,w=o.onAppearActive,O=o.onEnterActive,S=o.onLeaveActive,C=o.onAppearEnd,x=o.onEnterEnd,k=o.onLeaveEnd,T=o.onVisibleChanged,z=c(P(),2),D=z[0],N=z[1],H=c(P("none"),2),A=H[0],Y=H[1],I=c(P(null),2),R=I[0],W=I[1],U=Object(l.useRef)(!1),B=Object(l.useRef)(null),K=Object(l.useRef)(!1),q=Object(l.useRef)(null);function G(){return n()||q.current}var $=Object(l.useRef)(!1);function J(e){var t,n=G();e&&!e.deadline&&e.target!==n||("appear"===A&&$.current?t=null==C?void 0:C(n,e):"enter"===A&&$.current?t=null==x?void 0:x(n,e):"leave"===A&&$.current&&(t=null==k?void 0:k(n,e)),!1===t||K.current||(Y("none"),W(null)))}var X=c(function(e){var t=Object(l.useRef)(),n=Object(l.useRef)(e);n.current=e;var r=l.useCallback((function(e){n.current(e)}),[]);function o(e){e&&(e.removeEventListener(E,r),e.removeEventListener(L,r))}return l.useEffect((function(){return function(){o(t.current)}}),[]),[function(e){t.current&&t.current!==e&&o(t.current),e&&e!==t.current&&(e.addEventListener(E,r),e.addEventListener(L,r),t.current=e)},o]}(J),1)[0],Q=l.useMemo((function(){var e,t,n;switch(A){case"appear":return r(e={},"prepare",v),r(e,"start",g),r(e,"active",w),e;case"enter":return r(t={},"prepare",y),r(t,"start",b),r(t,"active",O),t;case"leave":return r(n={},"prepare",_),r(n,"start",M),r(n,"active",S),n;default:return{}}}),[A]),Z=c(F(A,(function(e){if("prepare"===e){var t=Q.prepare;return!!t&&t(G())}var n;te in Q&&W((null===(n=Q[te])||void 0===n?void 0:n.call(Q,G(),null))||null);return"active"===te&&(X(G()),h>0&&(clearTimeout(B.current),B.current=setTimeout((function(){J({deadline:!0})}),h))),!0})),2),ee=Z[0],te=Z[1],ne=V(te);$.current=ne,j((function(){N(t);var n,r=U.current;(U.current=!0,e)&&(!r&&t&&f&&(n="appear"),r&&t&&s&&(n="enter"),(r&&!t&&p||!r&&m&&!t&&p)&&(n="leave"),n&&(Y(n),ee()))}),[t]),Object(l.useEffect)((function(){("appear"===A&&!f||"enter"===A&&!s||"leave"===A&&!p)&&Y("none")}),[f,s,p]),Object(l.useEffect)((function(){return function(){clearTimeout(B.current),K.current=!0}}),[]),Object(l.useEffect)((function(){void 0!==D&&"none"===A&&(null==T||T(D))}),[D,A]);var re=R;return Q.prepare&&"start"===te&&(re=i({transition:"none"},re)),[A,te,re,null!=D?D:t]}function W(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function U(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function B(e,t,n){return t&&U(e.prototype,t),n&&U(e,n),e}function K(e,t){return(K=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function q(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&K(e,t)}function G(e){return(G=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var $=n(510),J=n.n($);function X(e,t){return!t||"object"!==J()(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=G(e);if(t){var o=G(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return X(this,n)}}var Z=function(e){q(n,e);var t=Q(n);function n(){return W(this,n),t.apply(this,arguments)}return B(n,[{key:"render",value:function(){return this.props.children}}]),n}(l.Component);var ee=function(e){var t=e;function n(e){return!(!e.motionName||!t)}"object"===s(e)&&(t=e.transitionSupport);var o=l.forwardRef((function(e,t){var o=e.visible,a=void 0===o||o,s=e.removeOnLeave,u=void 0===s||s,p=e.forceRender,m=e.children,v=e.motionName,y=e.leavedClassName,_=e.eventProps,g=n(e),b=Object(l.useRef)(),M=Object(l.useRef)();var w=c(R(g,a,(function(){try{return(e=b.current||M.current)instanceof HTMLElement?e:f.a.findDOMNode(e)}catch(e){return null}var e}),e),4),O=w[0],S=w[1],C=w[2],x=w[3],k=l.useRef(x);x&&(k.current=!0);var L=Object(l.useRef)(t);L.current=t;var E,P=l.useCallback((function(e){b.current=e,d(L.current,e)}),[]),j=i(i({},_),{},{visible:a});if(m)if("none"!==O&&n(e)){var z,D;"prepare"===S?D="prepare":V(S)?D="active":"start"===S&&(D="start"),E=m(i(i({},j),{},{className:h()(T(v,O),(z={},r(z,T(v,"".concat(O,"-").concat(D)),D),r(z,v,"string"==typeof v),z)),style:C}),P)}else E=x?m(i({},j),P):!u&&k.current?m(i(i({},j),{},{className:y}),P):p?m(i(i({},j),{},{style:{display:"none"}}),P):null;else E=null;return l.createElement(Z,{ref:M},E)}));return o.displayName="CSSMotion",o}(k);function te(){return(te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function ne(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function re(e){var t;return i(i({},t=e&&"object"===s(e)&&"key"in e?e:{key:e}),{},{key:String(t.key)})}function oe(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(re)}function ie(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=0,o=t.length,a=oe(e),c=oe(t);a.forEach((function(e){for(var t=!1,a=r;a<o;a+=1){var s=c[a];if(s.key===e.key){r<a&&(n=n.concat(c.slice(r,a).map((function(e){return i(i({},e),{},{status:"add"})}))),r=a),n.push(i(i({},s),{},{status:"keep"})),r+=1,t=!0;break}}t||n.push(i(i({},e),{},{status:"remove"}))})),r<o&&(n=n.concat(c.slice(r).map((function(e){return i(i({},e),{},{status:"add"})}))));var s={};n.forEach((function(e){var t=e.key;s[t]=(s[t]||0)+1}));var l=Object.keys(s).filter((function(e){return s[e]>1}));return l.forEach((function(e){(n=n.filter((function(t){var n=t.key,r=t.status;return n!==e||"remove"!==r}))).forEach((function(t){t.key===e&&(t.status="keep")}))})),n}var ae=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];var ce=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ee,n=function(e){q(r,e);var n=Q(r);function r(){var e;return W(this,r),(e=n.apply(this,arguments)).state={keyEntities:[]},e.removeKey=function(t){e.setState((function(e){return{keyEntities:e.keyEntities.map((function(e){return e.key!==t?e:i(i({},e),{},{status:"removed"})}))}}))},e}return B(r,[{key:"render",value:function(){var e=this,n=this.state.keyEntities,r=this.props,o=r.component,i=r.children,a=r.onVisibleChanged,c=ne(r,["component","children","onVisibleChanged"]),s=o||l.Fragment,u={};return ae.forEach((function(e){u[e]=c[e],delete c[e]})),delete c.keys,l.createElement(s,c,n.map((function(n){var r=n.status,o=ne(n,["status"]),c="add"===r||"keep"===r;return l.createElement(t,te({},u,{key:o.key,visible:c,eventProps:o,onVisibleChanged:function(t){null==a||a(t,{key:o.key}),t||e.removeKey(o.key)}}),i)})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.keys,r=t.keyEntities,o=oe(n);return{keyEntities:ie(r,o).filter((function(e){var t=r.find((function(t){var n=t.key;return e.key===n}));return!t||"removed"!==t.status||"remove"!==e.status}))}}}]),r}(l.Component);return n.defaultProps={component:"div"},n}(k);t.default=ee},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(170)("wks"),o=n(132),i=n(82).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resetWarned",{enumerable:!0,get:function(){return o.resetWarned}}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=o?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(250));function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}t.default=function(e,t,n){(0,o.default)(e,"[antd: ".concat(t,"] ").concat(n))}},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)).createContext(null);t.default=o},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(403),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){"use strict";function r(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,n){return t.apply(this,arguments)};case 3:return function(e,n,r){return t.apply(this,arguments)};case 4:return function(e,n,r,o){return t.apply(this,arguments)};case 5:return function(e,n,r,o,i){return t.apply(this,arguments)};case 6:return function(e,n,r,o,i,a){return t.apply(this,arguments)};case 7:return function(e,n,r,o,i,a,c){return t.apply(this,arguments)};case 8:return function(e,n,r,o,i,a,c,s){return t.apply(this,arguments)};case 9:return function(e,n,r,o,i,a,c,s,l){return t.apply(this,arguments)};case 10:return function(e,n,r,o,i,a,c,s,l,u){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}n.d(t,"a",(function(){return r}))},function(e,t,n){(function(t){for(var r=n(598),o="undefined"==typeof window?t:window,i=["moz","webkit"],a="AnimationFrame",c=o["request"+a],s=o["cancel"+a]||o["cancelRequest"+a],l=0;!c&&l<i.length;l++)c=o[i[l]+"Request"+a],s=o[i[l]+"Cancel"+a]||o[i[l]+"CancelRequest"+a];if(!c||!s){var u=0,f=0,d=[];c=function(e){if(0===d.length){var t=r(),n=Math.max(0,1e3/60-(t-u));u=n+t,setTimeout((function(){var e=d.slice(0);d.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(u)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(n))}return d.push({handle:++f,callback:e,cancelled:!1}),f},s=function(e){for(var t=0;t<d.length;t++)d[t].handle===e&&(d[t].cancelled=!0)}}e.exports=function(e){return c.call(o,e)},e.exports.cancel=function(){s.apply(o,arguments)},e.exports.polyfill=function(e){e||(e=o),e.requestAnimationFrame=c,e.cancelAnimationFrame=s}}).call(this,n(61))},function(e,t,n){"use strict";(function(e){var r;n.d(t,"a",(function(){return B})),n.d(t,"b",(function(){return K})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return U}));var o="undefined"!=typeof Symbol?Symbol("immer-nothing"):((r={})["immer-nothing"]=!0,r),i="undefined"!=typeof Symbol&&Symbol.for?Symbol.for("immer-draftable"):"__$immer_draftable",a="undefined"!=typeof Symbol&&Symbol.for?Symbol.for("immer-state"):"__$immer_state";function c(e){return!!e&&!!e[a]}function s(e){if(!e||"object"!=typeof e)return!1;if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return!t||t===Object.prototype||(!!e[i]||!!e.constructor[i])}function l(e){if(e&&e[a])return e[a].base}var u=Object.assign||function(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return e},f="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames;function d(e,t){if(void 0===t&&(t=!1),Array.isArray(e))return e.slice();var n=Object.create(Object.getPrototypeOf(e));return f(e).forEach((function(r){if(r!==a){var o=Object.getOwnPropertyDescriptor(e,r),i=o.value;o.get&&t&&(i=o.get.call(e)),o.enumerable?n[r]=i:t&&Object.defineProperty(n,r,{value:i,writable:!0,configurable:!0})}})),n}function p(e,t){if(Array.isArray(e))for(var n=0;n<e.length;n++)t(n,e[n],e);else f(e).forEach((function(n){return t(n,e[n],e)}))}function h(e,t){var n=Object.getOwnPropertyDescriptor(e,t);return!!n&&n.enumerable}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function v(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}var y=function(e){this.drafts=[],this.parent=e,this.canAutoFreeze=!0,this.patches=null};function _(e){e[a].revoke()}y.prototype.usePatches=function(e){e&&(this.patches=[],this.inversePatches=[],this.patchListener=e)},y.prototype.revoke=function(){this.leave(),this.drafts.forEach(_),this.drafts=null},y.prototype.leave=function(){this===y.current&&(y.current=this.parent)},y.current=null,y.enter=function(){return this.current=new y(this.current)};var g={};function b(e,t){var n=Array.isArray(e),r=x(e);p(r,(function(t){!function(e,t,n){var r=g[t];r?r.enumerable=n:g[t]=r={configurable:!0,enumerable:n,get:function(){return function(e,t){k(e);var n=O(w(e),t);if(e.finalizing)return n;if(n===O(e.base,t)&&s(n))return C(e),e.copy[t]=b(n,e);return n}(this[a],t)},set:function(e){!function(e,t,n){if(k(e),e.assigned[t]=!0,!e.modified){if(v(n,O(w(e),t)))return;S(e),C(e)}e.copy[t]=n}(this[a],t,e)}};Object.defineProperty(e,t,r)}(r,t,n||h(e,t))}));var o,i,c,l=t?t.scope:y.current;return o=r,i=a,c={scope:l,modified:!1,finalizing:!1,finalized:!1,assigned:{},parent:t,base:e,draft:r,copy:null,revoke:M,revoked:!1},Object.defineProperty(o,i,{value:c,enumerable:!1,writable:!0}),l.drafts.push(r),r}function M(){this.revoked=!0}function w(e){return e.copy||e.base}function O(e,t){var n=e[a];if(n&&!n.finalizing){n.finalizing=!0;var r=e[t];return n.finalizing=!1,r}return e[t]}function S(e){e.modified||(e.modified=!0,e.parent&&S(e.parent))}function C(e){e.copy||(e.copy=x(e.base))}function x(e){var t=e&&e[a];if(t){t.finalizing=!0;var n=d(t.draft,!0);return t.finalizing=!1,n}return d(e)}function k(e){if(!0===e.revoked)throw new Error("Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? "+JSON.stringify(w(e)))}function L(e){for(var t=e.length-1;t>=0;t--){var n=e[t][a];n.modified||(Array.isArray(n.base)?T(n)&&S(n):E(n)&&S(n))}}function E(e){for(var t=e.base,n=e.draft,r=Object.keys(n),o=r.length-1;o>=0;o--){var i=r[o],c=t[i];if(void 0===c&&!m(t,i))return!0;var s=n[i],l=s&&s[a];if(l?l.base!==c:!v(s,c))return!0}return r.length!==Object.keys(t).length}function T(e){var t=e.draft;if(t.length!==e.base.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!n||n.get)}var P=Object.freeze({willFinalize:function(e,t,n){e.drafts.forEach((function(e){e[a].finalizing=!0})),n?c(t)&&t[a].scope===e&&L(e.drafts):(e.patches&&function e(t){if(!t||"object"!=typeof t)return;var n=t[a];if(!n)return;var r=n.base,o=n.draft,i=n.assigned;if(Array.isArray(t)){if(T(n)){if(S(n),i.length=!0,o.length<r.length)for(var c=o.length;c<r.length;c++)i[c]=!1;else for(var s=r.length;s<o.length;s++)i[s]=!0;for(var l=0;l<o.length;l++)void 0===i[l]&&e(o[l])}}else Object.keys(o).forEach((function(t){void 0!==r[t]||m(r,t)?i[t]||e(o[t]):(i[t]=!0,S(n))})),Object.keys(r).forEach((function(e){void 0!==o[e]||m(o,e)||(i[e]=!1,S(n))}))}(e.drafts[0]),L(e.drafts))},createProxy:b});function j(e,t){var n=t?t.scope:y.current,r={scope:n,modified:!1,finalized:!1,assigned:{},parent:t,base:e,draft:null,drafts:{},copy:null,revoke:null},o=Array.isArray(e)?Proxy.revocable([r],D):Proxy.revocable(r,z),i=o.revoke,a=o.proxy;return r.draft=a,r.revoke=i,n.drafts.push(a),a}var z={get:function(e,t){if(t===a)return e;var n=e.drafts;if(!e.modified&&m(n,t))return n[t];var r=N(e)[t];if(e.finalized||!s(r))return r;if(e.modified){if(r!==H(e.base,t))return r;n=e.copy}return n[t]=j(r,e)},has:function(e,t){return t in N(e)},ownKeys:function(e){return Reflect.ownKeys(N(e))},set:function(e,t,n){if(!e.modified){var r=H(e.base,t);if(n?v(r,n)||n===e.drafts[t]:v(r,n)&&t in e.base)return!0;A(e)}return e.assigned[t]=!0,e.copy[t]=n,!0},deleteProperty:function(e,t){(void 0!==H(e.base,t)||t in e.base)&&(e.assigned[t]=!1,A(e));e.copy&&delete e.copy[t];return!0},getOwnPropertyDescriptor:function(e,t){var n=N(e),r=Reflect.getOwnPropertyDescriptor(n,t);r&&(r.writable=!0,r.configurable=!Array.isArray(n)||"length"!==t);return r},defineProperty:function(){throw new Error("Object.defineProperty() cannot be used on an Immer draft")},getPrototypeOf:function(e){return Object.getPrototypeOf(e.base)},setPrototypeOf:function(){throw new Error("Object.setPrototypeOf() cannot be used on an Immer draft")}},D={};function N(e){return e.copy||e.base}function H(e,t){var n=e[a],r=Reflect.getOwnPropertyDescriptor(n?N(n):e,t);return r&&r.value}function A(e){e.modified||(e.modified=!0,e.copy=u(d(e.base),e.drafts),e.drafts=null,e.parent&&A(e.parent))}p(z,(function(e,t){D[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),D.deleteProperty=function(e,t){if(isNaN(parseInt(t)))throw new Error("Immer only supports deleting array indices");return z.deleteProperty.call(this,e[0],t)},D.set=function(e,t,n){if("length"!==t&&isNaN(parseInt(t)))throw new Error("Immer only supports setting array indices and the 'length' property");return z.set.call(this,e[0],t,n)};var Y=Object.freeze({willFinalize:function(){},createProxy:j});function I(e,t,n,r){Array.isArray(e.base)?function(e,t,n,r){var o,i,a=e.base,c=e.copy,s=e.assigned;c.length<a.length&&(a=(o=[c,a])[0],c=o[1],n=(i=[r,n])[0],r=i[1]);var l=c.length-a.length,u=0;for(;a[u]===c[u]&&u<a.length;)++u;var f=a.length;for(;f>u&&a[f-1]===c[f+l-1];)--f;for(var d=u;d<f;++d)if(s[d]&&c[d]!==a[d]){var p=t.concat([d]);n.push({op:"replace",path:p,value:c[d]}),r.push({op:"replace",path:p,value:a[d]})}for(var h=f!=a.length,m=n.length,v=f+l-1;v>=f;--v){var y=t.concat([v]);n[m+v-f]={op:"add",path:y,value:c[v]},h&&r.push({op:"remove",path:y})}h||r.push({op:"replace",path:t.concat(["length"]),value:a.length})}(e,t,n,r):function(e,t,n,r){var o=e.base,i=e.copy;p(e.assigned,(function(e,a){var c=o[e],s=i[e],l=a?e in o?"replace":"add":"remove";if(c!==s||"replace"!==l){var u=t.concat(e);n.push("remove"===l?{op:l,path:u}:{op:l,path:u,value:s}),r.push("add"===l?{op:"remove",path:u}:"remove"===l?{op:"add",path:u,value:c}:{op:"replace",path:u,value:c})}}))}(e,t,n,r)}function V(e,t){for(var n=0;n<t.length;n++){var r=t[n],o=r.path;if(0===o.length&&"replace"===r.op)e=r.value;else{for(var i=e,a=0;a<o.length-1;a++)if(!(i=i[o[a]])||"object"!=typeof i)throw new Error("Cannot apply patch, path doesn't resolve: "+o.join("/"));var c=o[o.length-1];switch(r.op){case"replace":i[c]=r.value;break;case"add":Array.isArray(i)?i.splice(c,0,r.value):i[c]=r.value;break;case"remove":Array.isArray(i)?i.splice(c,1):delete i[c];break;default:throw new Error("Unsupported patch operation: "+r.op)}}}return e}var F={useProxies:"undefined"!=typeof Proxy&&"undefined"!=typeof Reflect,autoFreeze:void 0===e&&"verifyMinified"===function(){}.name,onAssign:null,onDelete:null,onCopy:null},R=function(e){u(this,F,e),this.setUseProxies(this.useProxies),this.produce=this.produce.bind(this)};R.prototype.produce=function(e,t,n){var r,i=this;if("function"==typeof e&&"function"!=typeof t){var a=t;t=e;var c=this;return function(e){var n=this;void 0===e&&(e=a);for(var r=[],o=arguments.length-1;o-- >0;)r[o]=arguments[o+1];return c.produce(e,(function(e){return t.call.apply(t,[n,e].concat(r))}))}}if("function"!=typeof t)throw new Error("The first or second argument to `produce` must be a function");if(void 0!==n&&"function"!=typeof n)throw new Error("The third argument to `produce` must be a function or undefined");if(s(e)){var l=y.enter(),u=this.createProxy(e),f=!0;try{r=t(u),f=!1}finally{f?l.revoke():l.leave()}return r instanceof Promise?r.then((function(e){return l.usePatches(n),i.processResult(e,l)}),(function(e){throw l.revoke(),e})):(l.usePatches(n),this.processResult(r,l))}return void 0===(r=t(e))?e:r!==o?r:void 0},R.prototype.createDraft=function(e){if(!s(e))throw new Error("First argument to `createDraft` must be a plain object, an array, or an immerable object");var t=y.enter(),n=this.createProxy(e);return n[a].isManual=!0,t.leave(),n},R.prototype.finishDraft=function(e,t){var n=e&&e[a];if(!n||!n.isManual)throw new Error("First argument to `finishDraft` must be a draft returned by `createDraft`");if(n.finalized)throw new Error("The given draft is already finalized");var r=n.scope;return r.usePatches(t),this.processResult(void 0,r)},R.prototype.setAutoFreeze=function(e){this.autoFreeze=e},R.prototype.setUseProxies=function(e){this.useProxies=e,u(this,e?Y:P)},R.prototype.applyPatches=function(e,t){return c(e)?V(e,t):this.produce(e,(function(e){return V(e,t)}))},R.prototype.processResult=function(e,t){var n=t.drafts[0],r=void 0!==e&&e!==n;if(this.willFinalize(t,e,r),r){if(n[a].modified)throw t.revoke(),new Error("An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.");s(e)&&(e=this.finalize(e,null,t)),t.patches&&(t.patches.push({op:"replace",path:[],value:e}),t.inversePatches.push({op:"replace",path:[],value:n[a].base}))}else e=this.finalize(n,[],t);return t.revoke(),t.patches&&t.patchListener(t.patches,t.inversePatches),e!==o?e:void 0},R.prototype.finalize=function(e,t,n){var r=this,o=e[a];if(!o)return Object.isFrozen(e)?e:this.finalizeTree(e,null,n);if(o.scope!==n)return e;if(!o.modified)return o.base;if(!o.finalized){if(o.finalized=!0,this.finalizeTree(o.draft,t,n),this.onDelete)if(this.useProxies){var i=o.assigned;for(var c in i)i[c]||this.onDelete(o,c)}else{var s=o.base,l=o.copy;p(s,(function(e){m(l,e)||r.onDelete(o,e)}))}this.onCopy&&this.onCopy(o),this.autoFreeze&&n.canAutoFreeze&&Object.freeze(o.copy),t&&n.patches&&I(o,t,n.patches,n.inversePatches)}return o.copy},R.prototype.finalizeTree=function(e,t,n){var r=this,o=e[a];o&&(this.useProxies||(o.copy=d(o.draft,!0)),e=o.copy);var i=!!t&&!!n.patches,l=function(a,u,f){if(u===f)throw Error("Immer forbids circular references");var d=!!o&&f===e;if(c(u)){var m=d&&i&&!o.assigned[a]?t.concat(a):null;if(c(u=r.finalize(u,m,n))&&(n.canAutoFreeze=!1),Array.isArray(f)||h(f,a)?f[a]=u:Object.defineProperty(f,a,{value:u}),d&&u===o.base[a])return}else{if(d&&v(u,o.base[a]))return;s(u)&&!Object.isFrozen(u)&&p(u,l)}d&&r.onAssign&&r.onAssign(o,a,u)};return p(e,l),e};var W=new R,U=(W.produce,W.setAutoFreeze.bind(W)),B=(W.setUseProxies.bind(W),W.applyPatches.bind(W),W.createDraft.bind(W)),K=W.finishDraft.bind(W)}).call(this,n(114))},function(e,t,n){var r=n(636);e.exports=function(e,t){if(null==e)return{};var n,o,i=r(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(652);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(653),o=n(654),i=n(655);e.exports=function(e){var t=o();return function(){var n,o=r(e);if(t){var a=r(this).constructor;n=Reflect.construct(o,arguments,a)}else n=o.apply(this,arguments);return i(this,n)}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";n.r(t),function(e){var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var o=r[n];e.call(t,o[1],o[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,o=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),i="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(o):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var a=["top","right","bottom","left","width","height","size","weight"],c="undefined"!=typeof MutationObserver,s=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,o=0;function a(){n&&(n=!1,e()),r&&s()}function c(){i(a)}function s(){var e=Date.now();if(n){if(e-o<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);o=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),l=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var o=r[n];Object.defineProperty(e,o,{value:t[o],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||o},f=y(0,0,0,0);function d(e){return parseFloat(e)||0}function p(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function h(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return f;var r=u(e).getComputedStyle(e),o=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var o=r[n],i=e["padding-"+o];t[o]=d(i)}return t}(r),i=o.left+o.right,a=o.top+o.bottom,c=d(r.width),s=d(r.height);if("border-box"===r.boxSizing&&(Math.round(c+i)!==t&&(c-=p(r,"left","right")+i),Math.round(s+a)!==n&&(s-=p(r,"top","bottom")+a)),!function(e){return e===u(e).document.documentElement}(e)){var l=Math.round(c+i)-t,h=Math.round(s+a)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(h)&&(s-=h)}return y(o.left,o.top,c,s)}var m="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function v(e){return r?m(e)?function(e){var t=e.getBBox();return y(0,0,t.width,t.height)}(e):h(e):f}function y(e,t,n,r){return{x:e,y:t,width:n,height:r}}var _=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=v(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),g=function(e,t){var n,r,o,i,a,c,s,u=(r=(n=t).x,o=n.y,i=n.width,a=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(c.prototype),l(s,{x:r,y:o,width:i,height:a,top:o,right:r+i,bottom:a+o,left:r}),s);l(this,{target:e,contentRect:u})},b=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new _(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new g(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),M="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=s.getInstance(),r=new b(t,n,this);M.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=M.get(this))[e].apply(t,arguments)}}));var O=void 0!==o.ResizeObserver?o.ResizeObserver:w;t.default=O}.call(this,n(61))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.create=t.connect=t.Provider=void 0;var r=a(n(610)),o=a(n(611)),i=a(n(613));function a(e){return e&&e.__esModule?e:{default:e}}t.Provider=r.default,t.connect=o.default,t.create=i.default},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),o=n.n(r),i=n(98);function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];return o.a.Children.forEach(e,(function(e){(null!=e||t.keepEmpty)&&(Array.isArray(e)?n=n.concat(a(e)):Object(i.isFragment)(e)&&e.props?n=n.concat(a(e.props.children,t)):n.push(e))})),n}},function(e,t,n){"use strict";var r=n(13),o=n.n(r),i=n(45),a=n.n(i),c=n(17),s=n.n(c),l=n(44),u=n.n(l),f=n(19),d=n.n(f),p=n(22),h=n.n(p),m=n(0),v=n.n(m),y=n(1),_=n.n(y);function g(e){var t=[];return v.a.Children.forEach(e,(function(e){t.push(e)})),t}function b(e,t){var n=null;return e&&e.forEach((function(e){n||e&&e.key===t&&(n=e)})),n}function M(e,t,n){var r=null;return e&&e.forEach((function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for <rc-animate> children");r=e}})),r}var w=n(7),O=n.n(w),S=n(112),C={isAppearSupported:function(e){return e.transitionName&&e.transitionAppear||e.animation.appear},isEnterSupported:function(e){return e.transitionName&&e.transitionEnter||e.animation.enter},isLeaveSupported:function(e){return e.transitionName&&e.transitionLeave||e.animation.leave},allowAppearCallback:function(e){return e.transitionAppear||e.animation.appear},allowEnterCallback:function(e){return e.transitionEnter||e.animation.enter},allowLeaveCallback:function(e){return e.transitionLeave||e.animation.leave}},x={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},k=function(e){function t(){return s()(this,t),d()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return h()(t,e),u()(t,[{key:"componentWillUnmount",value:function(){this.stop()}},{key:"componentWillEnter",value:function(e){C.isEnterSupported(this.props)?this.transition("enter",e):e()}},{key:"componentWillAppear",value:function(e){C.isAppearSupported(this.props)?this.transition("appear",e):e()}},{key:"componentWillLeave",value:function(e){C.isLeaveSupported(this.props)?this.transition("leave",e):e()}},{key:"transition",value:function(e,t){var n=this,r=O.a.findDOMNode(this),o=this.props,i=o.transitionName,a="object"==typeof i;this.stop();var c=function(){n.stopper=null,t()};if((S.b||!o.animation[e])&&i&&o[x[e]]){var s=a?i[e]:i+"-"+e,l=s+"-active";a&&i[e+"Active"]&&(l=i[e+"Active"]),this.stopper=Object(S.a)(r,{name:s,active:l},c)}else this.stopper=o.animation[e](r,c)}},{key:"stop",value:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())}},{key:"render",value:function(){return this.props.children}}]),t}(v.a.Component);k.propTypes={children:_.a.any};var L=k,E="rc_animate_"+Date.now();function T(e){var t=e.children;return v.a.isValidElement(t)&&!t.key?v.a.cloneElement(t,{key:E}):t}function P(){}var j=function(e){function t(e){s()(this,t);var n=d()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return z.call(n),n.currentlyAnimatingKeys={},n.keysToEnter=[],n.keysToLeave=[],n.state={children:g(T(e))},n.childrenRefs={},n}return h()(t,e),u()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.showProp,n=this.state.children;t&&(n=n.filter((function(e){return!!e.props[t]}))),n.forEach((function(t){t&&e.performAppear(t.key)}))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.nextProps=e;var n=g(T(e)),r=this.props;r.exclusive&&Object.keys(this.currentlyAnimatingKeys).forEach((function(e){t.stop(e)}));var o,i,c,s,l=r.showProp,u=this.currentlyAnimatingKeys,f=r.exclusive?g(T(r)):this.state.children,d=[];l?(f.forEach((function(e){var t=e&&b(n,e.key),r=void 0;(r=t&&t.props[l]||!e.props[l]?t:v.a.cloneElement(t||e,a()({},l,!0)))&&d.push(r)})),n.forEach((function(e){e&&b(f,e.key)||d.push(e)}))):(o=n,i=[],c={},s=[],f.forEach((function(e){e&&b(o,e.key)?s.length&&(c[e.key]=s,s=[]):s.push(e)})),o.forEach((function(e){e&&Object.prototype.hasOwnProperty.call(c,e.key)&&(i=i.concat(c[e.key])),i.push(e)})),d=i=i.concat(s)),this.setState({children:d}),n.forEach((function(e){var n=e&&e.key;if(!e||!u[n]){var r=e&&b(f,n);if(l){var o=e.props[l];if(r)!M(f,n,l)&&o&&t.keysToEnter.push(n);else o&&t.keysToEnter.push(n)}else r||t.keysToEnter.push(n)}})),f.forEach((function(e){var r=e&&e.key;if(!e||!u[r]){var o=e&&b(n,r);if(l){var i=e.props[l];if(o)!M(n,r,l)&&i&&t.keysToLeave.push(r);else i&&t.keysToLeave.push(r)}else o||t.keysToLeave.push(r)}}))}},{key:"componentDidUpdate",value:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)}},{key:"isValidChildByKey",value:function(e,t){var n=this.props.showProp;return n?M(e,t,n):b(e,t)}},{key:"stop",value:function(e){delete this.currentlyAnimatingKeys[e];var t=this.childrenRefs[e];t&&t.stop()}},{key:"render",value:function(){var e=this,t=this.props;this.nextProps=t;var n=this.state.children,r=null;n&&(r=n.map((function(n){if(null==n)return n;if(!n.key)throw new Error("must set key for <rc-animate> children");return v.a.createElement(L,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)})));var i=t.component;if(i){var a=t;return"string"==typeof i&&(a=o()({className:t.className,style:t.style},t.componentProps)),v.a.createElement(i,a,r)}return r[0]||null}}]),t}(v.a.Component);j.isAnimate=!0,j.propTypes={component:_.a.any,componentProps:_.a.object,animation:_.a.object,transitionName:_.a.oneOfType([_.a.string,_.a.object]),transitionEnter:_.a.bool,transitionAppear:_.a.bool,exclusive:_.a.bool,transitionLeave:_.a.bool,onEnd:_.a.func,onEnter:_.a.func,onLeave:_.a.func,onAppear:_.a.func,showProp:_.a.string,children:_.a.node},j.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:P,onEnter:P,onLeave:P,onAppear:P};var z=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var o=g(T(r));e.isValidChildByKey(o,t)?"appear"===n?C.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):C.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r,o,i,a,c=g(T(n));if(e.isValidChildByKey(c,t))e.performEnter(t);else{var s=function(){C.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};r=e.state.children,o=c,i=n.showProp,(a=r.length===o.length)&&r.forEach((function(e,t){var n=o[t];e&&n&&(e&&!n||!e&&n||e.key!==n.key||i&&e.props[i]!==n.props[i])&&(a=!1)})),a?s():e.setState({children:c},s)}}}};t.a=j},function(e,t,n){e.exports=n(665)},,function(e,t,n){"use strict";n.r(t);var r=n(13),o=n.n(r);t.default=function(e,t){for(var n=o()({},e),r=0;r<t.length;r++){delete n[t[r]]}return n}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(104),o=n(238),i=n(165),a=Object.defineProperty;t.f=n(84)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(116)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tupleNum=t.tuple=void 0;t.tuple=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t};t.tupleNum=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=o,t.note=i,t.resetWarned=function(){r={}},t.call=a,t.warningOnce=c,t.noteOnce=function(e,t){a(i,e,t)},t.default=void 0;var r={};function o(e,t){0}function i(e,t){0}function a(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function c(e,t){a(o,e,t)}var s=c;t.default=s},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resetWarned",{enumerable:!0,get:function(){return o.resetWarned}}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(86));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}t.default=function(e,t,n){(0,o.default)(e,"[antd: ".concat(t,"] ").concat(n))}},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.replaceElement=c,t.cloneElement=function(e,t){return c(e,e,t)},t.isValidElement=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(0));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}var a=o.isValidElement;function c(e,t,n){return a(e)?o.cloneElement(e,"function"==typeof n?n(e.props||{}):n):t}t.isValidElement=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(52),i=n(26),a=n(147),c=new Map;function s(e,t){if(t!==e._root&&o.tree_isAncestorOf(e._reference,t,!0)){if(e._pointerBeforeReference)for(;;){const n=o.tree_getFollowingNode(e._root,t);if(null!==n&&o.tree_isDescendantOf(e._root,n,!0)&&!o.tree_isDescendantOf(t,n,!0))return void(e._reference=n);if(null===n)return void(e._pointerBeforeReference=!1)}if(null===t._previousSibling)null!==t._parent&&(e._reference=t._parent);else{let n=t._previousSibling,r=o.tree_getFirstDescendantNode(t._previousSibling,!0,!1);for(;null!==r;)null!==r&&(n=r),r=o.tree_getNextDescendantNode(t._previousSibling,r,!0,!1);e._reference=n}}}function l(e,t,n,r,c){if(i.Guard.isSlot(e)&&"name"===t&&null===c){if(r===n)return;if(null===r&&""===n)return;if(""===r&&null===n)return;e._name=null===r||""===r?"":r,a.shadowTree_assignSlotablesForATree(o.tree_rootNode(e))}}function u(e,t,n,r,o){if(i.Guard.isSlotable(e)&&"slot"===t&&null===o){if(r===n)return;if(null===r&&""===n)return;if(""===r&&null===n)return;e._name=null===r||""===r?"":r,a.shadowTree_isAssigned(e)&&a.shadowTree_assignSlotables(e._assignedSlot),a.shadowTree_assignASlot(e)}}function f(e,t,n,r){"id"===t&&null===r&&(e._uniqueIdentifier=n||void 0)}t.dom_runRemovingSteps=function(e,t){},t.dom_runCloningSteps=function(e,t,n,r){},t.dom_runAdoptingSteps=function(e,t){},t.dom_runAttributeChangeSteps=function(e,t,n,o,i){r.dom.features.slots&&(u.call(e,e,t,n,o,i),l.call(e,e,t,n,o,i)),f.call(e,e,t,o,i);for(const r of e._attributeChangeSteps)r.call(e,e,t,n,o,i)},t.dom_runInsertionSteps=function(e){},t.dom_runNodeIteratorPreRemovingSteps=function(e,t){s.call(e,e,t)},t.dom_hasSupportedTokens=function(e){return c.has(e)},t.dom_getSupportedTokens=function(e){return c.get(e)||new Set},t.dom_runEventConstructingSteps=function(e){},t.dom_runChildTextContentChangeSteps=function(e){}},function(e,t,n){"use strict";var r=n(2),o=n(8),i=n(27),a=n(28),c=n(40),s=n(30),l=n(29),u=n(0),f=n.n(u),d=n(7),p=n.n(d),h=n(56);function m(e,t){return!!e&&e.contains(t)}var v=n(54),y=n(55),_=n(161),g=Object(u.forwardRef)((function(e,t){var n=e.didUpdate,r=e.getContainer,o=e.children,i=Object(u.useRef)();Object(u.useImperativeHandle)(t,(function(){return{}}));var a=Object(u.useRef)(!1);return!a.current&&Object(_.a)()&&(i.current=r(),a.current=!0),Object(u.useEffect)((function(){null==n||n(e)})),Object(u.useEffect)((function(){return function(){var e,t;null===(e=i.current)||void 0===e||null===(t=e.parentNode)||void 0===t||t.removeChild(i.current)}}),[]),i.current?p.a.createPortal(o,i.current):null})),b=n(3),M=n.n(b);function w(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}var O=n(10),S=n(21),C=n(162),x=n(60);function k(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function L(e){var t=e.prefixCls,n=e.visible,i=e.zIndex,a=e.mask,c=e.maskMotion,s=e.maskAnimation,l=e.maskTransitionName;if(!a)return null;var f={};return(c||l||s)&&(f=Object(r.a)({motionAppear:!0},k({motion:c,prefixCls:t,transitionName:l,animation:s}))),u.createElement(x.default,Object(o.a)({},f,{visible:n,removeOnLeave:!0}),(function(e){var n=e.className;return u.createElement("div",{style:{zIndex:i},className:M()("".concat(t,"-mask"),n)})}))}var E=n(37),T=n(159),P=n(111),j=n(75);function z(e,t){var n=null,r=null;var o=new j.default((function(e){var o=Object(O.a)(e,1)[0].target;if(document.documentElement.contains(o)){var i=o.getBoundingClientRect(),a=i.width,c=i.height,s=Math.floor(a),l=Math.floor(c);n===s&&r===l||Promise.resolve().then((function(){t({width:s,height:l})})),n=s,r=l}}));return e&&o.observe(e),function(){o.disconnect()}}function D(e){return"function"!=typeof e?null:e()}function N(e){return"object"===Object(E.a)(e)&&e?e:null}var H=f.a.forwardRef((function(e,t){var n=e.children,r=e.disabled,o=e.target,i=e.align,a=e.onAlign,c=e.monitorWindowResize,s=e.monitorBufferTime,l=void 0===s?0:s,u=f.a.useRef({}),d=f.a.useRef(),p=f.a.Children.only(n),h=f.a.useRef({});h.current.disabled=r,h.current.target=o,h.current.onAlign=a;var _=function(e,t){var n=f.a.useRef(!1),r=f.a.useRef(null);function o(){window.clearTimeout(r.current)}return[function i(a){if(n.current&&!0!==a)o(),r.current=window.setTimeout((function(){n.current=!1,i()}),t);else{if(!1===e())return;n.current=!0,o(),r.current=window.setTimeout((function(){n.current=!1}),t)}},function(){n.current=!1,o()}]}((function(){var e=h.current,t=e.disabled,n=e.target,r=e.onAlign;if(!t&&n){var o,a=d.current,c=D(n),s=N(n);u.current.element=c,u.current.point=s;var l=document.activeElement;return c&&Object(T.a)(c)?o=Object(P.a)(a,c,i):s&&(o=Object(P.b)(a,s,i)),function(e,t){e!==document.activeElement&&m(t,e)&&"function"==typeof e.focus&&e.focus()}(l,a),r&&o&&r(a,o),!0}return!1}),l),g=Object(O.a)(_,2),b=g[0],M=g[1],w=f.a.useRef({cancel:function(){}}),S=f.a.useRef({cancel:function(){}});f.a.useEffect((function(){var e,t,n=D(o),r=N(o);d.current!==S.current.element&&(S.current.cancel(),S.current.element=d.current,S.current.cancel=z(d.current,b)),u.current.element===n&&((e=u.current.point)===(t=r)||e&&t&&("pageX"in t&&"pageY"in t?e.pageX===t.pageX&&e.pageY===t.pageY:"clientX"in t&&"clientY"in t&&e.clientX===t.clientX&&e.clientY===t.clientY))||(b(),w.current.element!==n&&(w.current.cancel(),w.current.element=n,w.current.cancel=z(n,b)))})),f.a.useEffect((function(){r?M():b()}),[r]);var C=f.a.useRef(null);return f.a.useEffect((function(){c?C.current||(C.current=Object(y.a)(window,"resize",b)):C.current&&(C.current.remove(),C.current=null)}),[c]),f.a.useEffect((function(){return function(){w.current.cancel(),S.current.cancel(),C.current&&C.current.remove(),M()}}),[]),f.a.useImperativeHandle(t,(function(){return{forceAlign:function(){return b(!0)}}})),f.a.isValidElement(p)&&(p=f.a.cloneElement(p,{ref:Object(v.a)(p.ref,d)})),p}));H.displayName="Align";var A=H,Y=n(101),I=n.n(Y);function V(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,o)}function F(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){V(i,r,o,a,c,"next",e)}function c(e){V(i,r,o,a,c,"throw",e)}a(void 0)}))}}var R=["measure","align",null,"motion"],W=u.forwardRef((function(e,t){var n=e.visible,i=e.prefixCls,a=e.className,c=e.style,s=e.children,l=e.zIndex,f=e.stretch,d=e.destroyPopupOnHide,p=e.forceRender,m=e.align,v=e.point,y=e.getRootDomNode,_=e.getClassNameFromAlign,g=e.onAlign,b=e.onMouseEnter,w=e.onMouseLeave,S=e.onMouseDown,C=e.onTouchStart,L=Object(u.useRef)(),E=Object(u.useRef)(),T=Object(u.useState)(),P=Object(O.a)(T,2),j=P[0],z=P[1],D=function(e){var t=u.useState({width:0,height:0}),n=Object(O.a)(t,2),r=n[0],o=n[1];return[u.useMemo((function(){var t={};if(e){var n=r.width,o=r.height;-1!==e.indexOf("height")&&o?t.height=o:-1!==e.indexOf("minHeight")&&o&&(t.minHeight=o),-1!==e.indexOf("width")&&n?t.width=n:-1!==e.indexOf("minWidth")&&n&&(t.minWidth=n)}return t}),[e,r]),function(e){o({width:e.offsetWidth,height:e.offsetHeight})}]}(f),N=Object(O.a)(D,2),H=N[0],Y=N[1];var V=function(e,t){var n=Object(u.useState)(null),r=Object(O.a)(n,2),o=r[0],i=r[1],a=Object(u.useRef)(),c=Object(u.useRef)(!1);function s(e){c.current||i(e)}function l(){h.a.cancel(a.current)}return Object(u.useEffect)((function(){s("measure")}),[e]),Object(u.useEffect)((function(){switch(o){case"measure":t()}o&&(a.current=Object(h.a)(F(I.a.mark((function e(){var t,n;return I.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=R.indexOf(o),(n=R[t+1])&&-1!==t&&s(n);case 3:case"end":return e.stop()}}),e)})))))}),[o]),Object(u.useEffect)((function(){return function(){c.current=!0,l()}}),[]),[o,function(e){l(),a.current=Object(h.a)((function(){s((function(e){switch(o){case"align":return"motion";case"motion":return"stable"}return e})),null==e||e()}))}]}(n,(function(){f&&Y(y())})),W=Object(O.a)(V,2),U=W[0],B=W[1],K=Object(u.useRef)();function q(){var e;null===(e=L.current)||void 0===e||e.forceAlign()}function G(e,t){if("align"===U){var n=_(t);z(n),j!==n?Promise.resolve().then((function(){q()})):B((function(){var e;null===(e=K.current)||void 0===e||e.call(K)})),null==g||g(e,t)}}var $=Object(r.a)({},k(e));function J(){return new Promise((function(e){K.current=e}))}["onAppearEnd","onEnterEnd","onLeaveEnd"].forEach((function(e){var t=$[e];$[e]=function(e,n){return B(),null==t?void 0:t(e,n)}})),u.useEffect((function(){$.motionName||"motion"!==U||B()}),[$.motionName,U]),u.useImperativeHandle(t,(function(){return{forceAlign:q,getElement:function(){return E.current}}}));var X=Object(r.a)(Object(r.a)({},H),{},{zIndex:l,opacity:"motion"!==U&&"stable"!==U&&n?0:void 0,pointerEvents:"stable"===U?void 0:"none"},c),Q=!0;!(null==m?void 0:m.points)||"align"!==U&&"stable"!==U||(Q=!1);var Z=s;return u.Children.count(s)>1&&(Z=u.createElement("div",{className:"".concat(i,"-content")},s)),u.createElement(x.default,Object(o.a)({visible:n,ref:E,leavedClassName:"".concat(i,"-hidden")},$,{onAppearPrepare:J,onEnterPrepare:J,removeOnLeave:d,forceRender:p}),(function(e,t){var n=e.className,o=e.style,c=M()(i,a,j,n);return u.createElement(A,{target:v||y,key:"popup",ref:L,monitorWindowResize:!0,disabled:Q,align:m,onAlign:G},u.createElement("div",{ref:t,className:c,onMouseEnter:b,onMouseLeave:w,onMouseDownCapture:S,onTouchStartCapture:C,style:Object(r.a)(Object(r.a)({},o),X)},Z))}))}));W.displayName="PopupInner";var U=W,B=u.forwardRef((function(e,t){var n=e.prefixCls,i=e.visible,a=e.zIndex,c=e.children,s=e.mobile,l=(s=void 0===s?{}:s).popupClassName,f=s.popupStyle,d=s.popupMotion,p=void 0===d?{}:d,h=s.popupRender,m=u.useRef();u.useImperativeHandle(t,(function(){return{forceAlign:function(){},getElement:function(){return m.current}}}));var v=Object(r.a)({zIndex:a},f),y=c;return u.Children.count(c)>1&&(y=u.createElement("div",{className:"".concat(n,"-content")},c)),h&&(y=h(y)),u.createElement(x.default,Object(o.a)({visible:i,ref:m,removeOnLeave:!0},p),(function(e,t){var o=e.className,i=e.style,a=M()(n,l,o);return u.createElement("div",{ref:t,className:a,style:Object(r.a)(Object(r.a)({},i),v)},y)}))}));B.displayName="MobilePopupInner";var K=B,q=u.forwardRef((function(e,t){var n=e.visible,i=e.mobile,a=Object(S.a)(e,["visible","mobile"]),c=Object(u.useState)(n),s=Object(O.a)(c,2),l=s[0],f=s[1],d=Object(u.useState)(!1),p=Object(O.a)(d,2),h=p[0],m=p[1],v=Object(r.a)(Object(r.a)({},a),{},{visible:l});Object(u.useEffect)((function(){f(n),n&&i&&m(Object(C.a)())}),[n,i]);var y=h?u.createElement(K,Object(o.a)({},v,{mobile:i,ref:t})):u.createElement(U,Object(o.a)({},v,{ref:t}));return u.createElement("div",null,u.createElement(L,v),y)}));q.displayName="Popup";var G=q,$=u.createContext(null);function J(){}function X(){return""}function Q(e){return e?e.ownerDocument:window.document}var Z=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"];var ee,te;t.a=(ee=g,(te=function(e){Object(s.a)(n,e);var t=Object(l.a)(n);function n(e){var r,a;return Object(i.a)(this,n),(r=t.call(this,e)).popupRef=u.createRef(),r.triggerRef=u.createRef(),r.onMouseEnter=function(e){var t=r.props.mouseEnterDelay;r.fireEvents("onMouseEnter",e),r.delaySetPopupVisible(!0,t,t?null:e)},r.onMouseMove=function(e){r.fireEvents("onMouseMove",e),r.setPoint(e)},r.onMouseLeave=function(e){r.fireEvents("onMouseLeave",e),r.delaySetPopupVisible(!1,r.props.mouseLeaveDelay)},r.onPopupMouseEnter=function(){r.clearDelayTimer()},r.onPopupMouseLeave=function(e){var t;e.relatedTarget&&!e.relatedTarget.setTimeout&&m(null===(t=r.popupRef.current)||void 0===t?void 0:t.getElement(),e.relatedTarget)||r.delaySetPopupVisible(!1,r.props.mouseLeaveDelay)},r.onFocus=function(e){r.fireEvents("onFocus",e),r.clearDelayTimer(),r.isFocusToShow()&&(r.focusTime=Date.now(),r.delaySetPopupVisible(!0,r.props.focusDelay))},r.onMouseDown=function(e){r.fireEvents("onMouseDown",e),r.preClickTime=Date.now()},r.onTouchStart=function(e){r.fireEvents("onTouchStart",e),r.preTouchTime=Date.now()},r.onBlur=function(e){r.fireEvents("onBlur",e),r.clearDelayTimer(),r.isBlurToHide()&&r.delaySetPopupVisible(!1,r.props.blurDelay)},r.onContextMenu=function(e){e.preventDefault(),r.fireEvents("onContextMenu",e),r.setPopupVisible(!0,e)},r.onContextMenuClose=function(){r.isContextMenuToShow()&&r.close()},r.onClick=function(e){if(r.fireEvents("onClick",e),r.focusTime){var t;if(r.preClickTime&&r.preTouchTime?t=Math.min(r.preClickTime,r.preTouchTime):r.preClickTime?t=r.preClickTime:r.preTouchTime&&(t=r.preTouchTime),Math.abs(t-r.focusTime)<20)return;r.focusTime=0}r.preClickTime=0,r.preTouchTime=0,r.isClickToShow()&&(r.isClickToHide()||r.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault();var n=!r.state.popupVisible;(r.isClickToHide()&&!n||n&&r.isClickToShow())&&r.setPopupVisible(!r.state.popupVisible,e)},r.onPopupMouseDown=function(){var e;r.hasPopupMouseDown=!0,clearTimeout(r.mouseDownTimeout),r.mouseDownTimeout=window.setTimeout((function(){r.hasPopupMouseDown=!1}),0),r.context&&(e=r.context).onPopupMouseDown.apply(e,arguments)},r.onDocumentClick=function(e){if(!r.props.mask||r.props.maskClosable){var t=e.target,n=r.getRootDomNode(),o=r.getPopupDomNode();m(n,t)&&!r.isContextMenuOnly()||m(o,t)||r.hasPopupMouseDown||r.close()}},r.getRootDomNode=function(){var e,t=r.props.getTriggerDOMNode;if(t)return t(r.triggerRef.current);try{var n=(e=r.triggerRef.current)instanceof HTMLElement?e:p.a.findDOMNode(e);if(n)return n}catch(e){}return p.a.findDOMNode(Object(c.a)(r))},r.getPopupClassNameFromAlign=function(e){var t=[],n=r.props,o=n.popupPlacement,i=n.builtinPlacements,a=n.prefixCls,c=n.alignPoint,s=n.getPopupClassNameFromAlign;return o&&i&&t.push(function(e,t,n,r){for(var o=n.points,i=Object.keys(e),a=0;a<i.length;a+=1){var c=i[a];if(w(e[c].points,o,r))return"".concat(t,"-placement-").concat(c)}return""}(i,a,e,c)),s&&t.push(s(e)),t.join(" ")},r.getComponent=function(){var e=r.props,t=e.prefixCls,n=e.destroyPopupOnHide,i=e.popupClassName,a=e.onPopupAlign,c=e.popupMotion,s=e.popupAnimation,l=e.popupTransitionName,f=e.popupStyle,d=e.mask,p=e.maskAnimation,h=e.maskTransitionName,m=e.maskMotion,v=e.zIndex,y=e.popup,_=e.stretch,g=e.alignPoint,b=e.mobile,M=e.forceRender,w=r.state,O=w.popupVisible,S=w.point,C=r.getPopupAlign(),x={};return r.isMouseEnterToShow()&&(x.onMouseEnter=r.onPopupMouseEnter),r.isMouseLeaveToHide()&&(x.onMouseLeave=r.onPopupMouseLeave),x.onMouseDown=r.onPopupMouseDown,x.onTouchStart=r.onPopupMouseDown,u.createElement(G,Object(o.a)({prefixCls:t,destroyPopupOnHide:n,visible:O,point:g&&S,className:i,align:C,onAlign:a,animation:s,getClassNameFromAlign:r.getPopupClassNameFromAlign},x,{stretch:_,getRootDomNode:r.getRootDomNode,style:f,mask:d,zIndex:v,transitionName:l,maskAnimation:p,maskTransitionName:h,maskMotion:m,ref:r.popupRef,motion:c,mobile:b,forceRender:M}),"function"==typeof y?y():y)},r.attachParent=function(e){h.a.cancel(r.attachId);var t,n=r.props,o=n.getPopupContainer,i=n.getDocument,a=r.getRootDomNode();o?(a||0===o.length)&&(t=o(a)):t=i(r.getRootDomNode()).body,t?t.appendChild(e):r.attachId=Object(h.a)((function(){r.attachParent(e)}))},r.getContainer=function(){var e=(0,r.props.getDocument)(r.getRootDomNode()).createElement("div");return e.style.position="absolute",e.style.top="0",e.style.left="0",e.style.width="100%",r.attachParent(e),e},r.setPoint=function(e){r.props.alignPoint&&e&&r.setState({point:{pageX:e.pageX,pageY:e.pageY}})},r.handlePortalUpdate=function(){r.state.prevPopupVisible!==r.state.popupVisible&&r.props.afterPopupVisibleChange(r.state.popupVisible)},a="popupVisible"in e?!!e.popupVisible:!!e.defaultPopupVisible,r.state={prevPopupVisible:a,popupVisible:a},Z.forEach((function(e){r["fire".concat(e)]=function(t){r.fireEvents(e,t)}})),r}return Object(a.a)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e,t=this.props;if(this.state.popupVisible)return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(e=t.getDocument(this.getRootDomNode()),this.clickOutsideHandler=Object(y.a)(e,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(e=e||t.getDocument(this.getRootDomNode()),this.touchOutsideHandler=Object(y.a)(e,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(e=e||t.getDocument(this.getRootDomNode()),this.contextMenuOutsideHandler1=Object(y.a)(e,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=Object(y.a)(window,"blur",this.onContextMenuClose)));this.clearOutsideHandler()}},{key:"componentWillUnmount",value:function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),h.a.cancel(this.attachId)}},{key:"getPopupDomNode",value:function(){var e;return(null===(e=this.popupRef.current)||void 0===e?void 0:e.getElement())||null}},{key:"getPopupAlign",value:function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,o=e.builtinPlacements;return t&&o?function(e,t,n){var o=e[t]||{};return Object(r.a)(Object(r.a)({},o),n)}(o,t,n):n}},{key:"setPopupVisible",value:function(e,t){var n=this.props.alignPoint,r=this.state.popupVisible;this.clearDelayTimer(),r!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:r}),this.props.onPopupVisibleChange(e)),n&&t&&e&&this.setPoint(t)}},{key:"delaySetPopupVisible",value:function(e,t,n){var r=this,o=1e3*t;if(this.clearDelayTimer(),o){var i=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=window.setTimeout((function(){r.setPopupVisible(e,i),r.clearDelayTimer()}),o)}else this.setPopupVisible(e,n)}},{key:"clearDelayTimer",value:function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)}},{key:"clearOutsideHandler",value:function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)}},{key:"createTwoChains",value:function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire".concat(e)]:t[e]||n[e]}},{key:"isClickToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isContextMenuOnly",value:function(){var e=this.props.action;return"contextMenu"===e||1===e.length&&"contextMenu"===e[0]}},{key:"isContextMenuToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")}},{key:"isClickToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")}},{key:"isMouseEnterToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")}},{key:"isMouseLeaveToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")}},{key:"isFocusToShow",value:function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")}},{key:"isBlurToHide",value:function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")}},{key:"forcePopupAlign",value:function(){var e;this.state.popupVisible&&(null===(e=this.popupRef.current)||void 0===e||e.forceAlign())}},{key:"fireEvents",value:function(e,t){var n=this.props.children.props[e];n&&n(t);var r=this.props[e];r&&r(t)}},{key:"close",value:function(){this.setPopupVisible(!1)}},{key:"render",value:function(){var e=this.state.popupVisible,t=this.props,n=t.children,o=t.forceRender,i=t.alignPoint,a=t.className,c=t.autoDestroy,s=u.Children.only(n),l={key:"trigger"};this.isContextMenuToShow()?l.onContextMenu=this.onContextMenu:l.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(l.onClick=this.onClick,l.onMouseDown=this.onMouseDown,l.onTouchStart=this.onTouchStart):(l.onClick=this.createTwoChains("onClick"),l.onMouseDown=this.createTwoChains("onMouseDown"),l.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(l.onMouseEnter=this.onMouseEnter,i&&(l.onMouseMove=this.onMouseMove)):l.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?l.onMouseLeave=this.onMouseLeave:l.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(l.onFocus=this.onFocus,l.onBlur=this.onBlur):(l.onFocus=this.createTwoChains("onFocus"),l.onBlur=this.createTwoChains("onBlur"));var f=M()(s&&s.props&&s.props.className,a);f&&(l.className=f);var d=Object(r.a)({},l);Object(v.c)(s)&&(d.ref=Object(v.a)(this.triggerRef,s.ref));var p,h=u.cloneElement(s,d);return(e||this.popupRef.current||o)&&(p=u.createElement(ee,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),!e&&c&&(p=null),u.createElement($.Provider,{value:{onPopupMouseDown:this.onPopupMouseDown}},h,p)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.popupVisible,r={};return void 0!==n&&t.popupVisible!==n&&(r.popupVisible=n,r.prevPopupVisible=t.popupVisible),r}}]),n}(u.Component)).contextType=$,te.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:X,getDocument:Q,onPopupVisibleChange:J,afterPopupVisibleChange:J,onPopupAlign:J,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[],autoDestroy:!1},te)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=g(n(0)),o=g(n(7)),i=g(n(1)),a=y(n(3)),c=y(n(494)),s=y(n(81)),l=y(n(1040)),u=y(n(1046)),f=y(n(51)),d=n(43),p=y(n(64)),h=n(85),m=n(491),v=y(n(492));function y(e){return e&&e.__esModule?e:{default:e}}function _(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return _=function(){return e},e}function g(e){if(e&&e.__esModule)return e;if(null===e||"object"!==b(e)&&"function"!=typeof e)return{default:e};var t=_();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function b(e){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(){return(M=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function O(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function C(e,t){return(C=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function x(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=E(e);if(t){var o=E(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return k(this,n)}}function k(e,t){return!t||"object"!==b(t)&&"function"!=typeof t?L(e):t}function L(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function E(e){return(E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function T(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var j=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},z=(0,h.tuple)("success","warning","error","validating","");(0,h.tuple)("left","right");var D=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&C(e,t)}(y,e);var t,n,i,h=x(y);function y(){var e;return O(this,y),(e=h.apply(this,arguments)).helpShow=!1,e.onLabelClick=function(){var t=e.props.id||e.getId();if(t){var n=o.findDOMNode(L(e)).querySelector('[id="'.concat(t,'"]'));n&&n.focus&&n.focus()}},e.onHelpAnimEnd=function(t,n){e.helpShow=n,n||e.setState({})},e.renderFormItem=function(t){var n,o=t.getPrefixCls,i=e.props,c=i.prefixCls,u=i.style,f=i.className,d=j(i,["prefixCls","style","className"]),p=o("form",c),h=e.renderChildren(p),m=(w(n={},"".concat(p,"-item"),!0),w(n,"".concat(p,"-item-with-help"),e.helpShow),w(n,"".concat(f),!!f),n);return r.createElement(l.default,M({className:(0,a.default)(m),style:u},(0,s.default)(d,["id","htmlFor","label","labelAlign","labelCol","wrapperCol","help","extra","validateStatus","hasFeedback","required","colon"]),{key:"row"}),h)},e}return t=y,(n=[{key:"componentDidMount",value:function(){var e=this.props,t=e.children,n=e.help,r=e.validateStatus,o=e.id;(0,p.default)(this.getControls(t,!0).length<=1||void 0!==n||void 0!==r,"Form.Item","Cannot generate `validateStatus` and `help` automatically, while there are more than one `getFieldDecorator` in it."),(0,p.default)(!o,"Form.Item","`id` is deprecated for its label `htmlFor`. Please use `htmlFor` directly.")}},{key:"getHelpMessage",value:function(){var e=this.props.help;if(void 0===e&&this.getOnlyControl()){var t=this.getField().errors;return t?t.map((function(e,t){var n=null;return r.isValidElement(e)?n=e:r.isValidElement(e.message)&&(n=e.message),n?r.cloneElement(n,{key:t}):e.message})).reduce((function(e,t){return[].concat(T(e),[" ",t])}),[]).slice(1):""}return e}},{key:"getControls",value:function(e,t){for(var n=[],o=r.Children.toArray(e),i=0;i<o.length&&(t||!(n.length>0));i++){var a=o[i];(!a.type||a.type!==y&&"FormItem"!==a.type.displayName)&&a.props&&(m.FIELD_META_PROP in a.props?n.push(a):a.props.children&&(n=n.concat(this.getControls(a.props.children,t))))}return n}},{key:"getOnlyControl",value:function(){var e=this.getControls(this.props.children,!1)[0];return void 0!==e?e:null}},{key:"getChildProp",value:function(e){var t=this.getOnlyControl();return t&&t.props&&t.props[e]}},{key:"getId",value:function(){return this.getChildProp("id")}},{key:"getMeta",value:function(){return this.getChildProp(m.FIELD_META_PROP)}},{key:"getField",value:function(){return this.getChildProp(m.FIELD_DATA_PROP)}},{key:"getValidateStatus",value:function(){if(!this.getOnlyControl())return"";var e=this.getField();if(e.validating)return"validating";if(e.errors)return"error";var t="value"in e?e.value:this.getMeta().initialValue;return null!=t&&""!==t?"success":""}},{key:"isRequired",value:function(){var e=this.props.required;return void 0!==e?e:!!this.getOnlyControl()&&((this.getMeta()||{}).validate||[]).filter((function(e){return!!e.rules})).some((function(e){return e.rules.some((function(e){return e.required}))}))}},{key:"renderHelp",value:function(e){var t=this.getHelpMessage(),n=t?r.createElement("div",{className:"".concat(e,"-explain"),key:"help"},t):null;return n&&(this.helpShow=!!n),r.createElement(c.default,{transitionName:"show-help",component:"",transitionAppear:!0,key:"help",onEnd:this.onHelpAnimEnd},n)}},{key:"renderExtra",value:function(e){var t=this.props.extra;return t?r.createElement("div",{className:"".concat(e,"-extra")},t):null}},{key:"renderValidateWrapper",value:function(e,t,n,o){var i=this.props,c=this.getOnlyControl,s=void 0===i.validateStatus&&c?this.getValidateStatus():i.validateStatus,l="".concat(e,"-item-control");s&&(l=(0,a.default)("".concat(e,"-item-control"),{"has-feedback":s&&i.hasFeedback,"has-success":"success"===s,"has-warning":"warning"===s,"has-error":"error"===s,"is-validating":"validating"===s}));var u="";switch(s){case"success":u="check-circle";break;case"warning":u="exclamation-circle";break;case"error":u="close-circle";break;case"validating":u="loading";break;default:u=""}var d=i.hasFeedback&&u?r.createElement("span",{className:"".concat(e,"-item-children-icon")},r.createElement(f.default,{type:u,theme:"loading"===u?"outlined":"filled"})):null;return r.createElement("div",{className:l},r.createElement("span",{className:"".concat(e,"-item-children")},t,d),n,o)}},{key:"renderWrapper",value:function(e,t){var n=this;return r.createElement(v.default.Consumer,{key:"wrapper"},(function(o){var i=o.wrapperCol,c=o.vertical,s=n.props.wrapperCol,l=("wrapperCol"in n.props?s:i)||{},f=(0,a.default)("".concat(e,"-item-control-wrapper"),l.className);return r.createElement(v.default.Provider,{value:{vertical:c}},r.createElement(u.default,M({},l,{className:f}),t))}))}},{key:"renderLabel",value:function(e){var t=this;return r.createElement(v.default.Consumer,{key:"label"},(function(n){var o,i=n.vertical,c=n.labelAlign,s=n.labelCol,l=n.colon,f=t.props,d=f.label,p=f.labelCol,h=f.labelAlign,m=f.colon,v=f.id,y=f.htmlFor,_=t.isRequired(),g=("labelCol"in t.props?p:s)||{},b="labelAlign"in t.props?h:c,O="".concat(e,"-item-label"),S=(0,a.default)(O,"left"===b&&"".concat(O,"-left"),g.className),C=d,x=!0===m||!1!==l&&!1!==m;x&&!i&&"string"==typeof d&&""!==d.trim()&&(C=d.replace(/[::]\s*$/,""));var k=(0,a.default)((w(o={},"".concat(e,"-item-required"),_),w(o,"".concat(e,"-item-no-colon"),!x),o));return d?r.createElement(u.default,M({},g,{className:S}),r.createElement("label",{htmlFor:y||v||t.getId(),className:k,title:"string"==typeof d?d:"",onClick:t.onLabelClick},C)):null}))}},{key:"renderChildren",value:function(e){var t=this.props.children;return[this.renderLabel(e),this.renderWrapper(e,this.renderValidateWrapper(e,t,this.renderHelp(e),this.renderExtra(e)))]}},{key:"render",value:function(){return r.createElement(d.ConfigConsumer,null,this.renderFormItem)}}])&&S(t.prototype,n),i&&S(t,i),y}(r.Component);t.default=D,D.defaultProps={hasFeedback:!1},D.propTypes={prefixCls:i.string,label:i.oneOfType([i.string,i.node]),labelCol:i.object,help:i.oneOfType([i.node,i.bool]),validateStatus:i.oneOf(z),hasFeedback:i.bool,wrapperCol:i.object,className:i.string,id:i.string,children:i.node,colon:i.bool}},function(e,t,n){"use strict";(function(e){n.d(t,"e",(function(){return f})),n.d(t,"d",(function(){return d})),n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return m})),n.d(t,"c",(function(){return v})),n.d(t,"f",(function(){return y}));var r=n(13),o=n.n(r),i=n(17),a=n.n(i),c=n(44),s=n.n(c),l=n(500),u=n(0);function f(t){e&&e.env||console.error("[@ant-design/icons-react]: "+t+".")}function d(e){return"object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.theme&&("object"==typeof e.icon||"function"==typeof e.icon)}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}var h=function(){function e(){a()(this,e),this.collection={}}return s()(e,[{key:"clear",value:function(){this.collection={}}},{key:"delete",value:function(e){return delete this.collection[e]}},{key:"get",value:function(e){return this.collection[e]}},{key:"has",value:function(e){return Boolean(this.collection[e])}},{key:"set",value:function(e,t){return this.collection[e]=t,this}},{key:"size",get:function(){return Object.keys(this.collection).length}}]),e}();function m(e,t,n){return n?u.createElement(e.tag,o()({key:t},p(e.attrs),n),(e.children||[]).map((function(n,r){return m(n,t+"-"+e.tag+"-"+r)}))):u.createElement(e.tag,o()({key:t},p(e.attrs)),(e.children||[]).map((function(n,r){return m(n,t+"-"+e.tag+"-"+r)})))}function v(e){return Object(l.generate)(e)[0]}function y(e,t){switch(t){case"fill":return e+"-fill";case"outline":return e+"-o";case"twotone":return e+"-twotone";default:throw new TypeError("Unknown theme type: "+t+", name: "+e)}}}).call(this,n(114))},function(e,t,n){var r=n(82),o=n(62),i=n(164),a=n(103),c=n(94),s=function(e,t,n){var l,u,f,d=e&s.F,p=e&s.G,h=e&s.S,m=e&s.P,v=e&s.B,y=e&s.W,_=p?o:o[t]||(o[t]={}),g=_.prototype,b=p?r:h?r[t]:(r[t]||{}).prototype;for(l in p&&(n=t),n)(u=!d&&b&&void 0!==b[l])&&c(_,l)||(f=u?b[l]:n[l],_[l]=p&&"function"!=typeof b[l]?n[l]:v&&u?i(f,r):y&&b[l]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):m&&"function"==typeof f?i(Function.call,f):f,m&&((_.virtual||(_.virtual={}))[l]=f,e&s.R&&g&&!g[l]&&a(g,l,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,e.exports=s},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e);Array.isArray(t)&&t.forEach((function(e){delete n[e]}));return n};var o=r(n(16));function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(24),i=n(145),a=n(26),c=n(41),s=n(20),l=n(449),u=n(47);class f extends i.EventTargetImpl{constructor(){super(),this._parent=null,this._firstChild=null,this._lastChild=null,this._previousSibling=null,this._nextSibling=null}get _childNodes(){return this.__childNodes||(this.__childNodes=s.create_nodeList(this))}get _nodeDocument(){return this._nodeDocumentOverride||r.dom.window._associatedDocument}set _nodeDocument(e){this._nodeDocumentOverride=e}get _registeredObserverList(){return this.__registeredObserverList||(this.__registeredObserverList=[])}get nodeType(){return this._nodeType}get nodeName(){return a.Guard.isElementNode(this)?this._htmlUppercasedQualifiedName:a.Guard.isAttrNode(this)?this._qualifiedName:a.Guard.isExclusiveTextNode(this)?"#text":a.Guard.isCDATASectionNode(this)?"#cdata-section":a.Guard.isProcessingInstructionNode(this)?this._target:a.Guard.isCommentNode(this)?"#comment":a.Guard.isDocumentNode(this)?"#document":a.Guard.isDocumentTypeNode(this)?this._name:a.Guard.isDocumentFragmentNode(this)?"#document-fragment":""}get baseURI(){return l.urlSerializer(this._nodeDocument._URL)}get isConnected(){return a.Guard.isElementNode(this)&&s.shadowTree_isConnected(this)}get ownerDocument(){return this._nodeType===o.NodeType.Document?null:this._nodeDocument}getRootNode(e){return s.tree_rootNode(this,!!e&&e.composed)}get parentNode(){return this._nodeType===o.NodeType.Attribute?null:this._parent}get parentElement(){return this._parent&&a.Guard.isElementNode(this._parent)?this._parent:null}hasChildNodes(){return null!==this._firstChild}get childNodes(){return this._childNodes}get firstChild(){return this._firstChild}get lastChild(){return this._lastChild}get previousSibling(){return this._previousSibling}get nextSibling(){return this._nextSibling}get nodeValue(){return a.Guard.isAttrNode(this)?this._value:a.Guard.isCharacterDataNode(this)?this._data:null}set nodeValue(e){null===e&&(e=""),a.Guard.isAttrNode(this)?s.attr_setAnExistingAttributeValue(this,e):a.Guard.isCharacterDataNode(this)&&s.characterData_replaceData(this,0,this._data.length,e)}get textContent(){return a.Guard.isDocumentFragmentNode(this)||a.Guard.isElementNode(this)?s.text_descendantTextContent(this):a.Guard.isAttrNode(this)?this._value:a.Guard.isCharacterDataNode(this)?this._data:null}set textContent(e){null===e&&(e=""),a.Guard.isDocumentFragmentNode(this)||a.Guard.isElementNode(this)?s.node_stringReplaceAll(e,this):a.Guard.isAttrNode(this)?s.attr_setAnExistingAttributeValue(this,e):a.Guard.isCharacterDataNode(this)&&s.characterData_replaceData(this,0,s.tree_nodeLength(this),e)}normalize(){const e=[];let t=s.tree_getFirstDescendantNode(this,!1,!1,e=>a.Guard.isExclusiveTextNode(e));for(;null!==t;)e.push(t),t=s.tree_getNextDescendantNode(this,t,!1,!1,e=>a.Guard.isExclusiveTextNode(e));for(let t=0;t<e.length;t++){const n=e[t];if(null===n._parent)continue;let o=s.tree_nodeLength(n);if(0===o){s.mutation_remove(n,n._parent);continue}const i=[];let c="";for(const e of s.text_contiguousExclusiveTextNodes(n))i.push(e),c+=e._data;if(s.characterData_replaceData(n,o,0,c),0!==r.dom.rangeList.size){let e=n._nextSibling;for(;null!==e&&a.Guard.isExclusiveTextNode(e);){const t=e,i=s.tree_index(t);for(const e of r.dom.rangeList)e._start[0]===t&&(e._start[0]=n,e._start[1]+=o),e._end[0]===t&&(e._end[0]=n,e._end[1]+=o),e._start[0]===t._parent&&e._start[1]===i&&(e._start[0]=n,e._start[1]=o),e._end[0]===t._parent&&e._end[1]===i&&(e._end[0]=n,e._end[1]=o);o+=s.tree_nodeLength(e),e=e._nextSibling}}for(let e=0;e<i.length;e++){const t=i[e];null!==t._parent&&s.mutation_remove(t,t._parent)}}}cloneNode(e=!1){if(a.Guard.isShadowRoot(this))throw new c.NotSupportedError;return s.node_clone(this,null,e)}isEqualNode(e=null){return null!==e&&s.node_equals(this,e)}isSameNode(e=null){return this===e}compareDocumentPosition(e){if(e===this)return 0;let t=e,n=this,i=null,c=null;if(a.Guard.isAttrNode(t)&&(i=t,t=i._element),a.Guard.isAttrNode(n)&&(c=n,n=c._element,i&&t&&t===n))for(let e=0;e<n._attributeList.length;e++){const t=n._attributeList[e];if(s.node_equals(t,i))return o.Position.ImplementationSpecific|o.Position.Preceding;if(s.node_equals(t,c))return o.Position.ImplementationSpecific|o.Position.Following}return null===t||null===n||s.tree_rootNode(t)!==s.tree_rootNode(n)?o.Position.Disconnected|o.Position.ImplementationSpecific|(r.dom.compareCache.check(this,e)?o.Position.Preceding:o.Position.Following):!i&&s.tree_isAncestorOf(n,t)||c&&t===n?o.Position.Contains|o.Position.Preceding:!c&&s.tree_isDescendantOf(n,t)||i&&t===n?o.Position.ContainedBy|o.Position.Following:s.tree_isPreceding(n,t)?o.Position.Preceding:o.Position.Following}contains(e){return null!==e&&s.tree_isDescendantOf(this,e,!0)}lookupPrefix(e){return e?a.Guard.isElementNode(this)?s.node_locateANamespacePrefix(this,e):a.Guard.isDocumentNode(this)?null===this.documentElement?null:s.node_locateANamespacePrefix(this.documentElement,e):a.Guard.isDocumentTypeNode(this)||a.Guard.isDocumentFragmentNode(this)?null:a.Guard.isAttrNode(this)?null===this._element?null:s.node_locateANamespacePrefix(this._element,e):null!==this._parent&&a.Guard.isElementNode(this._parent)?s.node_locateANamespacePrefix(this._parent,e):null:null}lookupNamespaceURI(e){return s.node_locateANamespace(this,e||null)}isDefaultNamespace(e){e||(e=null);return s.node_locateANamespace(this,null)===e}insertBefore(e,t){return s.mutation_preInsert(e,this,t)}appendChild(e){return s.mutation_append(e,this)}replaceChild(e,t){return s.mutation_replace(t,e,this)}removeChild(e){return s.mutation_preRemove(e,this)}_getTheParent(e){return a.Guard.isSlotable(this)&&s.shadowTree_isAssigned(this)?this._assignedSlot:this._parent}}t.NodeImpl=f,f.ELEMENT_NODE=1,f.ATTRIBUTE_NODE=2,f.TEXT_NODE=3,f.CDATA_SECTION_NODE=4,f.ENTITY_REFERENCE_NODE=5,f.ENTITY_NODE=6,f.PROCESSING_INSTRUCTION_NODE=7,f.COMMENT_NODE=8,f.DOCUMENT_NODE=9,f.DOCUMENT_TYPE_NODE=10,f.DOCUMENT_FRAGMENT_NODE=11,f.NOTATION_NODE=12,f.DOCUMENT_POSITION_DISCONNECTED=1,f.DOCUMENT_POSITION_PRECEDING=2,f.DOCUMENT_POSITION_FOLLOWING=4,f.DOCUMENT_POSITION_CONTAINS=8,f.DOCUMENT_POSITION_CONTAINED_BY=16,f.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32,f.prototype._children=new a.EmptySet,u.idl_defineConst(f.prototype,"ELEMENT_NODE",1),u.idl_defineConst(f.prototype,"ATTRIBUTE_NODE",2),u.idl_defineConst(f.prototype,"TEXT_NODE",3),u.idl_defineConst(f.prototype,"CDATA_SECTION_NODE",4),u.idl_defineConst(f.prototype,"ENTITY_REFERENCE_NODE",5),u.idl_defineConst(f.prototype,"ENTITY_NODE",6),u.idl_defineConst(f.prototype,"PROCESSING_INSTRUCTION_NODE",7),u.idl_defineConst(f.prototype,"COMMENT_NODE",8),u.idl_defineConst(f.prototype,"DOCUMENT_NODE",9),u.idl_defineConst(f.prototype,"DOCUMENT_TYPE_NODE",10),u.idl_defineConst(f.prototype,"DOCUMENT_FRAGMENT_NODE",11),u.idl_defineConst(f.prototype,"NOTATION_NODE",12),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_DISCONNECTED",1),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_PRECEDING",2),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_FOLLOWING",4),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_CONTAINS",8),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_CONTAINED_BY",16),u.idl_defineConst(f.prototype,"DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC",32)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(456),o=n(469),i=n(470),a=n(209),c=n(446),s=n(447),l=n(455),u=n(210),f=n(208),d=n(467),p=n(448),h=n(206),m=n(452),v=n(453),y=n(465),_=n(458),g=n(463),b=n(464),M=n(460),w=n(466),O=n(462),S=n(468),C=n(461),x=n(459),k=n(457);t.create_domImplementation=function(e){return r.DOMImplementationImpl._create(e)},t.create_window=function(){return o.WindowImpl._create()},t.create_xmlDocument=function(){return new i.XMLDocumentImpl},t.create_document=function(){return new a.DocumentImpl},t.create_abortController=function(){return new c.AbortControllerImpl},t.create_abortSignal=function(){return s.AbortSignalImpl._create()},t.create_documentType=function(e,t,n,r){return l.DocumentTypeImpl._create(e,t,n,r)},t.create_element=function(e,t,n,r){return u.ElementImpl._create(e,t,n,r)},t.create_htmlElement=function(e,t,n,r){return u.ElementImpl._create(e,t,n,r)},t.create_htmlUnknownElement=function(e,t,n,r){return u.ElementImpl._create(e,t,n,r)},t.create_documentFragment=function(e){return f.DocumentFragmentImpl._create(e)},t.create_shadowRoot=function(e,t){return d.ShadowRootImpl._create(e,t)},t.create_attr=function(e,t){return p.AttrImpl._create(e,t)},t.create_text=function(e,t){return h.TextImpl._create(e,t)},t.create_cdataSection=function(e,t){return m.CDATASectionImpl._create(e,t)},t.create_comment=function(e,t){return v.CommentImpl._create(e,t)},t.create_processingInstruction=function(e,t,n){return y.ProcessingInstructionImpl._create(e,t,n)},t.create_htmlCollection=function(e,t=(()=>!0)){return _.HTMLCollectionImpl._create(e,t)},t.create_nodeList=function(e){return g.NodeListImpl._create(e)},t.create_nodeListStatic=function(e,t){return b.NodeListStaticImpl._create(e,t)},t.create_namedNodeMap=function(e){return M.NamedNodeMapImpl._create(e)},t.create_range=function(e,t){return w.RangeImpl._create(e,t)},t.create_nodeIterator=function(e,t,n){return O.NodeIteratorImpl._create(e,t,n)},t.create_treeWalker=function(e,t){return S.TreeWalkerImpl._create(e,t)},t.create_nodeFilter=function(){return C.NodeFilterImpl._create()},t.create_mutationRecord=function(e,t,n,r,o,i,a,c,s){return x.MutationRecordImpl._create(e,t,n,r,o,i,a,c,s)},t.create_domTokenList=function(e,t){return k.DOMTokenListImpl._create(e,t)}},function(e,t,n){"use strict";e.exports=n(628)},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";function r(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}n.d(t,"a",(function(){return r}))},function(e,t,n){e.exports=n(693)},function(e,t,n){"use strict";var r=n(13),o=n.n(r),i=n(17),a=n.n(i),c=n(19),s=n.n(c),l=n(22),u=n.n(l),f=n(0),d=n.n(f),p=n(1),h=n.n(p),m=n(7),v=n.n(m),y=n(48),_=n(100),g=n(229),b=n.n(g);function M(e,t,n,r){var o=v.a.unstable_batchedUpdates?function(e){v.a.unstable_batchedUpdates(n,e)}:n;return b()(e,t,o,r)}var w=n(154),O=n(155),S=n(3),C=n.n(S);function x(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function k(e,t){this[e]=t}var L=n(44),E=n.n(L),T=n(111);function P(e){return e&&"object"==typeof e&&e.window===e}function j(e,t){var n=Math.floor(e),r=Math.floor(t);return Math.abs(n-r)<=1}function z(e,t){e!==document.activeElement&&Object(_.a)(t,e)&&e.focus()}function D(e){return"function"==typeof e&&e?e():null}function N(e){return"object"==typeof e&&e?e:null}var H=function(e){function t(){var e,n,r,o;a()(this,t);for(var i=arguments.length,c=Array(i),l=0;l<i;l++)c[l]=arguments[l];return n=r=s()(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(c))),r.forceAlign=function(){var e=r.props,t=e.disabled,n=e.target,o=e.align,i=e.onAlign;if(!t&&n){var a=v.a.findDOMNode(r),c=void 0,s=D(n),l=N(n),u=document.activeElement;s?c=Object(T.a)(a,s,o):l&&(c=Object(T.b)(a,l,o)),z(u,a),i&&i(a,c)}},o=n,s()(r,o)}return u()(t,e),E()(t,[{key:"componentDidMount",value:function(){var e=this.props;this.forceAlign(),!e.disabled&&e.monitorWindowResize&&this.startMonitorWindowResize()}},{key:"componentDidUpdate",value:function(e){var t,n,r=!1,o=this.props;if(!o.disabled){var i=v.a.findDOMNode(this),a=i?i.getBoundingClientRect():null;if(e.disabled)r=!0;else{var c=D(e.target),s=D(o.target),l=N(e.target),u=N(o.target);P(c)&&P(s)?r=!1:(c!==s||c&&!s&&u||l&&u&&s||u&&!((t=l)===(n=u)||t&&n&&("pageX"in n&&"pageY"in n?t.pageX===n.pageX&&t.pageY===n.pageY:"clientX"in n&&"clientY"in n&&t.clientX===n.clientX&&t.clientY===n.clientY)))&&(r=!0);var f=this.sourceRect||{};r||!i||j(f.width,a.width)&&j(f.height,a.height)||(r=!0)}this.sourceRect=a}r&&this.forceAlign(),o.monitorWindowResize&&!o.disabled?this.startMonitorWindowResize():this.stopMonitorWindowResize()}},{key:"componentWillUnmount",value:function(){this.stopMonitorWindowResize()}},{key:"startMonitorWindowResize",value:function(){this.resizeHandler||(this.bufferMonitor=function(e,t){var n=void 0;function r(){n&&(clearTimeout(n),n=null)}function o(){r(),n=setTimeout(e,t)}return o.clear=r,o}(this.forceAlign,this.props.monitorBufferTime),this.resizeHandler=M(window,"resize",this.bufferMonitor))}},{key:"stopMonitorWindowResize",value:function(){this.resizeHandler&&(this.bufferMonitor.clear(),this.resizeHandler.remove(),this.resizeHandler=null)}},{key:"render",value:function(){var e=this,t=this.props,n=t.childrenProps,r=t.children,o=d.a.Children.only(r);if(n){var i={};return Object.keys(n).forEach((function(t){i[t]=e.props[n[t]]})),d.a.cloneElement(o,i)}return o}}]),t}(f.Component);H.propTypes={childrenProps:h.a.object,align:h.a.object.isRequired,target:h.a.oneOfType([h.a.func,h.a.shape({clientX:h.a.number,clientY:h.a.number,pageX:h.a.number,pageY:h.a.number})]),onAlign:h.a.func,monitorBufferTime:h.a.number,monitorWindowResize:h.a.bool,disabled:h.a.bool,children:h.a.any},H.defaultProps={target:function(){return window},monitorBufferTime:50,monitorWindowResize:!1,disabled:!1};var A=H,Y=n(78),I=n(99),V=n.n(I),F=function(e){function t(){return a()(this,t),s()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.shouldComponentUpdate=function(e){return e.hiddenClassName||e.visible},t.prototype.render=function(){var e=this.props,t=e.hiddenClassName,n=e.visible,r=V()(e,["hiddenClassName","visible"]);return t||d.a.Children.count(r.children)>1?(!n&&t&&(r.className+=" "+t),d.a.createElement("div",r)):d.a.Children.only(r.children)},t}(f.Component);F.propTypes={children:h.a.any,className:h.a.string,visible:h.a.bool,hiddenClassName:h.a.string};var R=F,W=function(e){function t(){return a()(this,t),s()(this,e.apply(this,arguments))}return u()(t,e),t.prototype.render=function(){var e=this.props,t=e.className;return e.visible||(t+=" "+e.hiddenClassName),d.a.createElement("div",{className:t,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onMouseDown:e.onMouseDown,onTouchStart:e.onTouchStart,style:e.style},d.a.createElement(R,{className:e.prefixCls+"-content",visible:e.visible},e.children))},t}(f.Component);W.propTypes={hiddenClassName:h.a.string,className:h.a.string,prefixCls:h.a.string,onMouseEnter:h.a.func,onMouseLeave:h.a.func,onMouseDown:h.a.func,onTouchStart:h.a.func,children:h.a.any};var U=W,B=function(e){function t(n){a()(this,t);var r=s()(this,e.call(this,n));return K.call(r),r.state={stretchChecked:!1,targetWidth:void 0,targetHeight:void 0},r.savePopupRef=k.bind(r,"popupInstance"),r.saveAlignRef=k.bind(r,"alignInstance"),r}return u()(t,e),t.prototype.componentDidMount=function(){this.rootNode=this.getPopupDomNode(),this.setStretchSize()},t.prototype.componentDidUpdate=function(){this.setStretchSize()},t.prototype.getPopupDomNode=function(){return v.a.findDOMNode(this.popupInstance)},t.prototype.getMaskTransitionName=function(){var e=this.props,t=e.maskTransitionName,n=e.maskAnimation;return!t&&n&&(t=e.prefixCls+"-"+n),t},t.prototype.getTransitionName=function(){var e=this.props,t=e.transitionName;return!t&&e.animation&&(t=e.prefixCls+"-"+e.animation),t},t.prototype.getClassName=function(e){return this.props.prefixCls+" "+this.props.className+" "+e},t.prototype.getPopupElement=function(){var e=this,t=this.savePopupRef,n=this.state,r=n.stretchChecked,i=n.targetHeight,a=n.targetWidth,c=this.props,s=c.align,l=c.visible,u=c.prefixCls,f=c.style,p=c.getClassNameFromAlign,h=c.destroyPopupOnHide,m=c.stretch,v=c.children,y=c.onMouseEnter,_=c.onMouseLeave,g=c.onMouseDown,b=c.onTouchStart,M=this.getClassName(this.currentAlignClassName||p(s)),w=u+"-hidden";l||(this.currentAlignClassName=null);var O={};m&&(-1!==m.indexOf("height")?O.height=i:-1!==m.indexOf("minHeight")&&(O.minHeight=i),-1!==m.indexOf("width")?O.width=a:-1!==m.indexOf("minWidth")&&(O.minWidth=a),r||(O.visibility="hidden",setTimeout((function(){e.alignInstance&&e.alignInstance.forceAlign()}),0)));var S={className:M,prefixCls:u,ref:t,onMouseEnter:y,onMouseLeave:_,onMouseDown:g,onTouchStart:b,style:o()({},O,f,this.getZIndexStyle())};return h?d.a.createElement(Y.a,{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName()},l?d.a.createElement(A,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,align:s,onAlign:this.onAlign},d.a.createElement(U,o()({visible:!0},S),v)):null):d.a.createElement(Y.a,{component:"",exclusive:!0,transitionAppear:!0,transitionName:this.getTransitionName(),showProp:"xVisible"},d.a.createElement(A,{target:this.getAlignTarget(),key:"popup",ref:this.saveAlignRef,monitorWindowResize:!0,xVisible:l,childrenProps:{visible:"xVisible"},disabled:!l,align:s,onAlign:this.onAlign},d.a.createElement(U,o()({hiddenClassName:w},S),v)))},t.prototype.getZIndexStyle=function(){var e={},t=this.props;return void 0!==t.zIndex&&(e.zIndex=t.zIndex),e},t.prototype.getMaskElement=function(){var e=this.props,t=void 0;if(e.mask){var n=this.getMaskTransitionName();t=d.a.createElement(R,{style:this.getZIndexStyle(),key:"mask",className:e.prefixCls+"-mask",hiddenClassName:e.prefixCls+"-mask-hidden",visible:e.visible}),n&&(t=d.a.createElement(Y.a,{key:"mask",showProp:"visible",transitionAppear:!0,component:"",transitionName:n},t))}return t},t.prototype.render=function(){return d.a.createElement("div",null,this.getMaskElement(),this.getPopupElement())},t}(f.Component);B.propTypes={visible:h.a.bool,style:h.a.object,getClassNameFromAlign:h.a.func,onAlign:h.a.func,getRootDomNode:h.a.func,align:h.a.any,destroyPopupOnHide:h.a.bool,className:h.a.string,prefixCls:h.a.string,onMouseEnter:h.a.func,onMouseLeave:h.a.func,onMouseDown:h.a.func,onTouchStart:h.a.func,stretch:h.a.string,children:h.a.node,point:h.a.shape({pageX:h.a.number,pageY:h.a.number})};var K=function(){var e=this;this.onAlign=function(t,n){var r=e.props,o=r.getClassNameFromAlign(n);e.currentAlignClassName!==o&&(e.currentAlignClassName=o,t.className=e.getClassName(o)),r.onAlign(t,n)},this.setStretchSize=function(){var t=e.props,n=t.stretch,r=t.getRootDomNode,o=t.visible,i=e.state,a=i.stretchChecked,c=i.targetHeight,s=i.targetWidth;if(n&&o){var l=r();if(l){var u=l.offsetHeight,f=l.offsetWidth;c===u&&s===f&&a||e.setState({stretchChecked:!0,targetHeight:u,targetWidth:f})}}else a&&e.setState({stretchChecked:!1})},this.getTargetElement=function(){return e.props.getRootDomNode()},this.getAlignTarget=function(){var t=e.props.point;return t||e.getTargetElement}},q=B;function G(){}var $=["onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur","onContextMenu"],J=!!m.createPortal,X={rcTrigger:h.a.shape({onPopupMouseDown:h.a.func})},Q=function(e){function t(n){a()(this,t);var r=s()(this,e.call(this,n));Z.call(r);var o=void 0;return o="popupVisible"in n?!!n.popupVisible:!!n.defaultPopupVisible,r.state={prevPopupVisible:o,popupVisible:o},$.forEach((function(e){r["fire"+e]=function(t){r.fireEvents(e,t)}})),r}return u()(t,e),t.prototype.getChildContext=function(){return{rcTrigger:{onPopupMouseDown:this.onPopupMouseDown}}},t.prototype.componentDidMount=function(){this.componentDidUpdate({},{popupVisible:this.state.popupVisible})},t.prototype.componentDidUpdate=function(e,t){var n=this.props,r=this.state;if(J||this.renderComponent(null,(function(){t.popupVisible!==r.popupVisible&&n.afterPopupVisibleChange(r.popupVisible)})),r.popupVisible){var o=void 0;return this.clickOutsideHandler||!this.isClickToHide()&&!this.isContextMenuToShow()||(o=n.getDocument(),this.clickOutsideHandler=M(o,"mousedown",this.onDocumentClick)),this.touchOutsideHandler||(o=o||n.getDocument(),this.touchOutsideHandler=M(o,"touchstart",this.onDocumentClick)),!this.contextMenuOutsideHandler1&&this.isContextMenuToShow()&&(o=o||n.getDocument(),this.contextMenuOutsideHandler1=M(o,"scroll",this.onContextMenuClose)),void(!this.contextMenuOutsideHandler2&&this.isContextMenuToShow()&&(this.contextMenuOutsideHandler2=M(window,"blur",this.onContextMenuClose)))}this.clearOutsideHandler()},t.prototype.componentWillUnmount=function(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout)},t.getDerivedStateFromProps=function(e,t){var n=e.popupVisible,r={};return void 0!==n&&t.popupVisible!==n&&(r.popupVisible=n,r.prevPopupVisible=t.popupVisible),r},t.prototype.getPopupDomNode=function(){return this._component&&this._component.getPopupDomNode?this._component.getPopupDomNode():null},t.prototype.getPopupAlign=function(){var e=this.props,t=e.popupPlacement,n=e.popupAlign,r=e.builtinPlacements;return t&&r?function(e,t,n){var r=e[t]||{};return o()({},r,n)}(r,t,n):n},t.prototype.setPopupVisible=function(e,t){var n=this.props.alignPoint,r=this.state.popupVisible;this.clearDelayTimer(),r!==e&&("popupVisible"in this.props||this.setState({popupVisible:e,prevPopupVisible:r}),this.props.onPopupVisibleChange(e)),n&&t&&this.setPoint(t)},t.prototype.delaySetPopupVisible=function(e,t,n){var r=this,o=1e3*t;if(this.clearDelayTimer(),o){var i=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout((function(){r.setPopupVisible(e,i),r.clearDelayTimer()}),o)}else this.setPopupVisible(e,n)},t.prototype.clearDelayTimer=function(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=null)},t.prototype.clearOutsideHandler=function(){this.clickOutsideHandler&&(this.clickOutsideHandler.remove(),this.clickOutsideHandler=null),this.contextMenuOutsideHandler1&&(this.contextMenuOutsideHandler1.remove(),this.contextMenuOutsideHandler1=null),this.contextMenuOutsideHandler2&&(this.contextMenuOutsideHandler2.remove(),this.contextMenuOutsideHandler2=null),this.touchOutsideHandler&&(this.touchOutsideHandler.remove(),this.touchOutsideHandler=null)},t.prototype.createTwoChains=function(e){var t=this.props.children.props,n=this.props;return t[e]&&n[e]?this["fire"+e]:t[e]||n[e]},t.prototype.isClickToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isContextMenuToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("contextMenu")||-1!==n.indexOf("contextMenu")},t.prototype.isClickToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("click")||-1!==n.indexOf("click")},t.prototype.isMouseEnterToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseEnter")},t.prototype.isMouseLeaveToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("hover")||-1!==n.indexOf("mouseLeave")},t.prototype.isFocusToShow=function(){var e=this.props,t=e.action,n=e.showAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("focus")},t.prototype.isBlurToHide=function(){var e=this.props,t=e.action,n=e.hideAction;return-1!==t.indexOf("focus")||-1!==n.indexOf("blur")},t.prototype.forcePopupAlign=function(){this.state.popupVisible&&this._component&&this._component.alignInstance&&this._component.alignInstance.forceAlign()},t.prototype.fireEvents=function(e,t){var n=this.props.children.props[e];n&&n(t);var r=this.props[e];r&&r(t)},t.prototype.close=function(){this.setPopupVisible(!1)},t.prototype.render=function(){var e=this,t=this.state.popupVisible,n=this.props,r=n.children,o=n.forceRender,i=n.alignPoint,a=n.className,c=d.a.Children.only(r),s={key:"trigger"};this.isContextMenuToShow()?s.onContextMenu=this.onContextMenu:s.onContextMenu=this.createTwoChains("onContextMenu"),this.isClickToHide()||this.isClickToShow()?(s.onClick=this.onClick,s.onMouseDown=this.onMouseDown,s.onTouchStart=this.onTouchStart):(s.onClick=this.createTwoChains("onClick"),s.onMouseDown=this.createTwoChains("onMouseDown"),s.onTouchStart=this.createTwoChains("onTouchStart")),this.isMouseEnterToShow()?(s.onMouseEnter=this.onMouseEnter,i&&(s.onMouseMove=this.onMouseMove)):s.onMouseEnter=this.createTwoChains("onMouseEnter"),this.isMouseLeaveToHide()?s.onMouseLeave=this.onMouseLeave:s.onMouseLeave=this.createTwoChains("onMouseLeave"),this.isFocusToShow()||this.isBlurToHide()?(s.onFocus=this.onFocus,s.onBlur=this.onBlur):(s.onFocus=this.createTwoChains("onFocus"),s.onBlur=this.createTwoChains("onBlur"));var l=C()(c&&c.props&&c.props.className,a);l&&(s.className=l);var u=d.a.cloneElement(c,s);if(!J)return d.a.createElement(w.a,{parent:this,visible:t,autoMount:!1,forceRender:o,getComponent:this.getComponent,getContainer:this.getContainer},(function(t){var n=t.renderComponent;return e.renderComponent=n,u}));var f=void 0;return(t||this._component||o)&&(f=d.a.createElement(O.a,{key:"portal",getContainer:this.getContainer,didUpdate:this.handlePortalUpdate},this.getComponent())),[u,f]},t}(d.a.Component);Q.propTypes={children:h.a.any,action:h.a.oneOfType([h.a.string,h.a.arrayOf(h.a.string)]),showAction:h.a.any,hideAction:h.a.any,getPopupClassNameFromAlign:h.a.any,onPopupVisibleChange:h.a.func,afterPopupVisibleChange:h.a.func,popup:h.a.oneOfType([h.a.node,h.a.func]).isRequired,popupStyle:h.a.object,prefixCls:h.a.string,popupClassName:h.a.string,className:h.a.string,popupPlacement:h.a.string,builtinPlacements:h.a.object,popupTransitionName:h.a.oneOfType([h.a.string,h.a.object]),popupAnimation:h.a.any,mouseEnterDelay:h.a.number,mouseLeaveDelay:h.a.number,zIndex:h.a.number,focusDelay:h.a.number,blurDelay:h.a.number,getPopupContainer:h.a.func,getDocument:h.a.func,forceRender:h.a.bool,destroyPopupOnHide:h.a.bool,mask:h.a.bool,maskClosable:h.a.bool,onPopupAlign:h.a.func,popupAlign:h.a.object,popupVisible:h.a.bool,defaultPopupVisible:h.a.bool,maskTransitionName:h.a.oneOfType([h.a.string,h.a.object]),maskAnimation:h.a.string,stretch:h.a.string,alignPoint:h.a.bool},Q.contextTypes=X,Q.childContextTypes=X,Q.defaultProps={prefixCls:"rc-trigger-popup",getPopupClassNameFromAlign:function(){return""},getDocument:function(){return window.document},onPopupVisibleChange:G,afterPopupVisibleChange:G,onPopupAlign:G,popupClassName:"",mouseEnterDelay:0,mouseLeaveDelay:.1,focusDelay:0,blurDelay:.15,popupStyle:{},destroyPopupOnHide:!1,popupAlign:{},defaultPopupVisible:!1,mask:!1,maskClosable:!0,action:[],showAction:[],hideAction:[]};var Z=function(){var e=this;this.onMouseEnter=function(t){var n=e.props.mouseEnterDelay;e.fireEvents("onMouseEnter",t),e.delaySetPopupVisible(!0,n,n?null:t)},this.onMouseMove=function(t){e.fireEvents("onMouseMove",t),e.setPoint(t)},this.onMouseLeave=function(t){e.fireEvents("onMouseLeave",t),e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onPopupMouseEnter=function(){e.clearDelayTimer()},this.onPopupMouseLeave=function(t){t.relatedTarget&&!t.relatedTarget.setTimeout&&e._component&&e._component.getPopupDomNode&&Object(_.a)(e._component.getPopupDomNode(),t.relatedTarget)||e.delaySetPopupVisible(!1,e.props.mouseLeaveDelay)},this.onFocus=function(t){e.fireEvents("onFocus",t),e.clearDelayTimer(),e.isFocusToShow()&&(e.focusTime=Date.now(),e.delaySetPopupVisible(!0,e.props.focusDelay))},this.onMouseDown=function(t){e.fireEvents("onMouseDown",t),e.preClickTime=Date.now()},this.onTouchStart=function(t){e.fireEvents("onTouchStart",t),e.preTouchTime=Date.now()},this.onBlur=function(t){e.fireEvents("onBlur",t),e.clearDelayTimer(),e.isBlurToHide()&&e.delaySetPopupVisible(!1,e.props.blurDelay)},this.onContextMenu=function(t){t.preventDefault(),e.fireEvents("onContextMenu",t),e.setPopupVisible(!0,t)},this.onContextMenuClose=function(){e.isContextMenuToShow()&&e.close()},this.onClick=function(t){if(e.fireEvents("onClick",t),e.focusTime){var n=void 0;if(e.preClickTime&&e.preTouchTime?n=Math.min(e.preClickTime,e.preTouchTime):e.preClickTime?n=e.preClickTime:e.preTouchTime&&(n=e.preTouchTime),Math.abs(n-e.focusTime)<20)return;e.focusTime=0}e.preClickTime=0,e.preTouchTime=0,e.isClickToShow()&&(e.isClickToHide()||e.isBlurToHide())&&t&&t.preventDefault&&t.preventDefault();var r=!e.state.popupVisible;(e.isClickToHide()&&!r||r&&e.isClickToShow())&&e.setPopupVisible(!e.state.popupVisible,t)},this.onPopupMouseDown=function(){var t=e.context.rcTrigger,n=void 0===t?{}:t;e.hasPopupMouseDown=!0,clearTimeout(e.mouseDownTimeout),e.mouseDownTimeout=setTimeout((function(){e.hasPopupMouseDown=!1}),0),n.onPopupMouseDown&&n.onPopupMouseDown.apply(n,arguments)},this.onDocumentClick=function(t){if(!e.props.mask||e.props.maskClosable){var n=t.target,r=Object(m.findDOMNode)(e);Object(_.a)(r,n)||e.hasPopupMouseDown||e.close()}},this.getRootDomNode=function(){return Object(m.findDOMNode)(e)},this.getPopupClassNameFromAlign=function(t){var n=[],r=e.props,o=r.popupPlacement,i=r.builtinPlacements,a=r.prefixCls,c=r.alignPoint,s=r.getPopupClassNameFromAlign;return o&&i&&n.push(function(e,t,n,r){var o=n.points;for(var i in e)if(e.hasOwnProperty(i)&&x(e[i].points,o,r))return t+"-placement-"+i;return""}(i,a,t,c)),s&&n.push(s(t)),n.join(" ")},this.getComponent=function(){var t=e.props,n=t.prefixCls,r=t.destroyPopupOnHide,i=t.popupClassName,a=t.action,c=t.onPopupAlign,s=t.popupAnimation,l=t.popupTransitionName,u=t.popupStyle,f=t.mask,p=t.maskAnimation,h=t.maskTransitionName,m=t.zIndex,v=t.popup,y=t.stretch,_=t.alignPoint,g=e.state,b=g.popupVisible,M=g.point,w=e.getPopupAlign(),O={};return e.isMouseEnterToShow()&&(O.onMouseEnter=e.onPopupMouseEnter),e.isMouseLeaveToHide()&&(O.onMouseLeave=e.onPopupMouseLeave),O.onMouseDown=e.onPopupMouseDown,O.onTouchStart=e.onPopupMouseDown,d.a.createElement(q,o()({prefixCls:n,destroyPopupOnHide:r,visible:b,point:_&&M,className:i,action:a,align:w,onAlign:c,animation:s,getClassNameFromAlign:e.getPopupClassNameFromAlign},O,{stretch:y,getRootDomNode:e.getRootDomNode,style:u,mask:f,zIndex:m,transitionName:l,maskAnimation:p,maskTransitionName:h,ref:e.savePopup}),"function"==typeof v?v():v)},this.getContainer=function(){var t=e.props,n=document.createElement("div");return n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.width="100%",(t.getPopupContainer?t.getPopupContainer(Object(m.findDOMNode)(e)):t.getDocument().body).appendChild(n),n},this.setPoint=function(t){e.props.alignPoint&&t&&e.setState({point:{pageX:t.pageX,pageY:t.pageY}})},this.handlePortalUpdate=function(){e.state.prevPopupVisible!==e.state.popupVisible&&e.props.afterPopupVisibleChange(e.state.popupVisible)},this.savePopup=function(t){e._component=t}};Object(y.polyfill)(Q);t.a=Q},function(e,t,n){var r=n(83),o=n(117);e.exports=n(84)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(105);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(241),o=n(167);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(785),o=n(788);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(41),i=n(24),a=n(26),c=n(34),s=n(46),l=n(148),u=n(52),f=n(471),d=n(147),p=n(124),h=n(89),m=n(213);function v(e,t,n){const r=t._nodeType,a=e._nodeType,c=n?n._nodeType:null;if(r!==i.NodeType.Document&&r!==i.NodeType.DocumentFragment&&r!==i.NodeType.Element)throw new o.HierarchyRequestError(`Only document, document fragment and element nodes can contain child nodes. Parent node is ${t.nodeName}.`);if(u.tree_isHostIncludingAncestorOf(t,e,!0))throw new o.HierarchyRequestError(`The node to be inserted cannot be an inclusive ancestor of parent node. Node is ${e.nodeName}, parent node is ${t.nodeName}.`);if(null!==n&&n._parent!==t)throw new o.NotFoundError(`The reference child node cannot be found under parent node. Child node is ${n.nodeName}, parent node is ${t.nodeName}.`);if(a!==i.NodeType.DocumentFragment&&a!==i.NodeType.DocumentType&&a!==i.NodeType.Element&&a!==i.NodeType.Text&&a!==i.NodeType.ProcessingInstruction&&a!==i.NodeType.CData&&a!==i.NodeType.Comment)throw new o.HierarchyRequestError(`Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is ${e.nodeName}.`);if(a===i.NodeType.Text&&r===i.NodeType.Document)throw new o.HierarchyRequestError(`Cannot insert a text node as a child of a document node. Node is ${e.nodeName}.`);if(a===i.NodeType.DocumentType&&r!==i.NodeType.Document)throw new o.HierarchyRequestError(`A document type node can only be inserted under a document node. Parent node is ${t.nodeName}.`);if(r===i.NodeType.Document)if(a===i.NodeType.DocumentFragment){let r=0;for(const t of e._children)if(t._nodeType===i.NodeType.Element)r++;else if(t._nodeType===i.NodeType.Text)throw new o.HierarchyRequestError(`Cannot insert text a node as a child of a document node. Node is ${t.nodeName}.`);if(r>1)throw new o.HierarchyRequestError(`A document node can only have one document element node. Document fragment to be inserted has ${r} element nodes.`);if(1===r){for(const e of t._children)if(e._nodeType===i.NodeType.Element)throw new o.HierarchyRequestError("The document node already has a document element node.");if(n){if(c===i.NodeType.DocumentType)throw new o.HierarchyRequestError("Cannot insert an element node before a document type node.");let e=n._nextSibling;for(;e;){if(e._nodeType===i.NodeType.DocumentType)throw new o.HierarchyRequestError("Cannot insert an element node before a document type node.");e=e._nextSibling}}}}else if(a===i.NodeType.Element){for(const n of t._children)if(n._nodeType===i.NodeType.Element)throw new o.HierarchyRequestError(`Document already has a document element node. Node is ${e.nodeName}.`);if(n){if(c===i.NodeType.DocumentType)throw new o.HierarchyRequestError(`Cannot insert an element node before a document type node. Node is ${e.nodeName}.`);let t=n._nextSibling;for(;t;){if(t._nodeType===i.NodeType.DocumentType)throw new o.HierarchyRequestError(`Cannot insert an element node before a document type node. Node is ${e.nodeName}.`);t=t._nextSibling}}}else if(a===i.NodeType.DocumentType){for(const n of t._children)if(n._nodeType===i.NodeType.DocumentType)throw new o.HierarchyRequestError(`Document already has a document type node. Node is ${e.nodeName}.`);if(n){let t=n._previousSibling;for(;t;){if(t._nodeType===i.NodeType.Element)throw new o.HierarchyRequestError(`Cannot insert a document type node before an element node. Node is ${e.nodeName}.`);t=t._previousSibling}}else{let n=t._firstChild;for(;n;){if(n._nodeType===i.NodeType.Element)throw new o.HierarchyRequestError(`Cannot insert a document type node before an element node. Node is ${e.nodeName}.`);n=n._nextSibling}}}}function y(e,t,n){v(e,t,n);let r=n;return r===e&&(r=e._nextSibling),m.document_adopt(e,t._nodeDocument),_(e,t,r),e}function _(e,t,n,o){if(null===n&&e._nodeType!==i.NodeType.DocumentFragment)return void function(e,t,n){const o=t._lastChild;a.Guard.isElementNode(e)&&(a.Guard.isDocumentNode(t)&&(t._documentElement=e),e._nodeDocument._hasNamespaces||null===e._namespace&&null===e._namespacePrefix||(e._nodeDocument._hasNamespaces=!0));if(e._parent=t,t._children.add(e),null===t._firstChild)e._previousSibling=null,e._nextSibling=null,t._firstChild=e,t._lastChild=e;else{const n=t._lastChild;e._previousSibling=n,e._nextSibling=null,n&&(n._nextSibling=e),n||(t._firstChild=e),t._lastChild=e}r.dom.features.slots&&null!==t._shadowRoot&&a.Guard.isSlotable(e)&&d.shadowTree_assignASlot(e);r.dom.features.steps&&a.Guard.isTextNode(e)&&h.dom_runChildTextContentChangeSteps(t);r.dom.features.slots&&a.Guard.isShadowRoot(u.tree_rootNode(t))&&a.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&d.shadowTree_signalASlotChange(t);r.dom.features.slots&&d.shadowTree_assignSlotablesForATree(u.tree_rootNode(e));r.dom.features.steps&&h.dom_runInsertionSteps(e);r.dom.features.customElements&&a.Guard.isElementNode(e)&&d.shadowTree_isConnected(e)&&(a.Guard.isCustomElementNode(e)?l.customElement_enqueueACustomElementCallbackReaction(e,"connectedCallback",[]):l.customElement_tryToUpgrade(e));r.dom.features.mutationObservers&&(n||p.observer_queueTreeMutationRecord(t,[e],[],o,null))}(e,t,o);const f=e._nodeType===i.NodeType.DocumentFragment?e._children.size:1;if(null!==n&&0!==r.dom.rangeList.size){const e=u.tree_index(n);for(const n of r.dom.rangeList)n._start[0]===t&&n._start[1]>e&&(n._start[1]+=f),n._end[0]===t&&n._end[1]>e&&(n._end[1]+=f)}const m=e._nodeType===i.NodeType.DocumentFragment?new Array(...e._children):[e];if(e._nodeType===i.NodeType.DocumentFragment)for(;e._firstChild;)g(e._firstChild,e,!0);r.dom.features.mutationObservers&&e._nodeType===i.NodeType.DocumentFragment&&p.observer_queueTreeMutationRecord(e,[],m,null,null);const v=n?n._previousSibling:t._lastChild;let y=null===n?-1:u.tree_index(n);for(let e=0;e<m.length;e++){const o=m[e];if(a.Guard.isElementNode(o)&&(a.Guard.isDocumentNode(t)&&(t._documentElement=o),o._nodeDocument._hasNamespaces||null===o._namespace&&null===o._namespacePrefix||(o._nodeDocument._hasNamespaces=!0)),o._parent=t,null===n?s.set.append(t._children,o):(s.set.insert(t._children,o,y),y++),null===t._firstChild)o._previousSibling=null,o._nextSibling=null,t._firstChild=o,t._lastChild=o;else{const e=n?n._previousSibling:t._lastChild,r=n||null;o._previousSibling=e,o._nextSibling=r,e&&(e._nextSibling=o),r&&(r._previousSibling=o),e||(t._firstChild=o),r||(t._lastChild=o)}r.dom.features.slots&&null!==t._shadowRoot&&a.Guard.isSlotable(o)&&d.shadowTree_assignASlot(o),r.dom.features.steps&&a.Guard.isTextNode(o)&&h.dom_runChildTextContentChangeSteps(t),r.dom.features.slots&&a.Guard.isShadowRoot(u.tree_rootNode(t))&&a.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&d.shadowTree_signalASlotChange(t),r.dom.features.slots&&d.shadowTree_assignSlotablesForATree(u.tree_rootNode(o));let i=u.tree_getFirstDescendantNode(o,!0,!0);for(;null!==i;)r.dom.features.steps&&h.dom_runInsertionSteps(i),r.dom.features.customElements&&a.Guard.isElementNode(i)&&d.shadowTree_isConnected(i)&&(a.Guard.isCustomElementNode(i)?l.customElement_enqueueACustomElementCallbackReaction(i,"connectedCallback",[]):l.customElement_tryToUpgrade(i)),i=u.tree_getNextDescendantNode(o,i,!0,!0)}r.dom.features.mutationObservers&&(o||p.observer_queueTreeMutationRecord(t,m,[],v,n))}function g(e,t,n){if(0!==r.dom.rangeList.size){const n=u.tree_index(e);for(const o of r.dom.rangeList)u.tree_isDescendantOf(e,o._start[0],!0)&&(o._start=[t,n]),u.tree_isDescendantOf(e,o._end[0],!0)&&(o._end=[t,n]),o._start[0]===t&&o._start[1]>n&&o._start[1]--,o._end[0]===t&&o._end[1]>n&&o._end[1]--;for(const e of r.dom.rangeList)e._start[0]===t&&e._start[1]>n&&(e._start[1]-=1),e._end[0]===t&&e._end[1]>n&&(e._end[1]-=1)}if(r.dom.features.steps)for(const t of f.nodeIterator_iteratorList())t._root._nodeDocument===e._nodeDocument&&h.dom_runNodeIteratorPreRemovingSteps(t,e);const o=e._previousSibling,i=e._nextSibling;a.Guard.isDocumentNode(t)&&a.Guard.isElementNode(e)&&(t._documentElement=null),e._parent=null,t._children.delete(e);const s=e._previousSibling,m=e._nextSibling;if(e._previousSibling=null,e._nextSibling=null,s&&(s._nextSibling=m),m&&(m._previousSibling=s),s||(t._firstChild=m),m||(t._lastChild=s),r.dom.features.slots&&a.Guard.isSlotable(e)&&null!==e._assignedSlot&&d.shadowTree_isAssigned(e)&&d.shadowTree_assignSlotables(e._assignedSlot),r.dom.features.slots&&a.Guard.isShadowRoot(u.tree_rootNode(t))&&a.Guard.isSlot(t)&&c.isEmpty(t._assignedNodes)&&d.shadowTree_signalASlotChange(t),r.dom.features.slots){null!==u.tree_getFirstDescendantNode(e,!0,!1,e=>a.Guard.isSlot(e))&&(d.shadowTree_assignSlotablesForATree(u.tree_rootNode(t)),d.shadowTree_assignSlotablesForATree(e))}r.dom.features.steps&&h.dom_runRemovingSteps(e,t),r.dom.features.customElements&&a.Guard.isCustomElementNode(e)&&l.customElement_enqueueACustomElementCallbackReaction(e,"disconnectedCallback",[]);let v=u.tree_getFirstDescendantNode(e,!1,!0);for(;null!==v;)r.dom.features.steps&&h.dom_runRemovingSteps(v,e),r.dom.features.customElements&&a.Guard.isCustomElementNode(v)&&l.customElement_enqueueACustomElementCallbackReaction(v,"disconnectedCallback",[]),v=u.tree_getNextDescendantNode(e,v,!1,!0);if(r.dom.features.mutationObservers){let n=u.tree_getFirstAncestorNode(t,!0);for(;null!==n;){for(const t of n._registeredObserverList)t.options.subtree&&e._registeredObserverList.push({observer:t.observer,options:t.options,source:t});n=u.tree_getNextAncestorNode(t,n,!0)}}r.dom.features.mutationObservers&&(n||p.observer_queueTreeMutationRecord(t,[],[e],o,i)),r.dom.features.steps&&a.Guard.isTextNode(e)&&h.dom_runChildTextContentChangeSteps(t)}t.mutation_ensurePreInsertionValidity=v,t.mutation_preInsert=y,t.mutation_insert=_,t.mutation_append=function(e,t){return y(e,t,null)},t.mutation_replace=function(e,t,n){if(n._nodeType!==i.NodeType.Document&&n._nodeType!==i.NodeType.DocumentFragment&&n._nodeType!==i.NodeType.Element)throw new o.HierarchyRequestError(`Only document, document fragment and element nodes can contain child nodes. Parent node is ${n.nodeName}.`);if(u.tree_isHostIncludingAncestorOf(n,t,!0))throw new o.HierarchyRequestError(`The node to be inserted cannot be an ancestor of parent node. Node is ${t.nodeName}, parent node is ${n.nodeName}.`);if(e._parent!==n)throw new o.NotFoundError(`The reference child node cannot be found under parent node. Child node is ${e.nodeName}, parent node is ${n.nodeName}.`);if(t._nodeType!==i.NodeType.DocumentFragment&&t._nodeType!==i.NodeType.DocumentType&&t._nodeType!==i.NodeType.Element&&t._nodeType!==i.NodeType.Text&&t._nodeType!==i.NodeType.ProcessingInstruction&&t._nodeType!==i.NodeType.CData&&t._nodeType!==i.NodeType.Comment)throw new o.HierarchyRequestError(`Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is ${t.nodeName}.`);if(t._nodeType===i.NodeType.Text&&n._nodeType===i.NodeType.Document)throw new o.HierarchyRequestError(`Cannot insert a text node as a child of a document node. Node is ${t.nodeName}.`);if(t._nodeType===i.NodeType.DocumentType&&n._nodeType!==i.NodeType.Document)throw new o.HierarchyRequestError(`A document type node can only be inserted under a document node. Parent node is ${n.nodeName}.`);if(n._nodeType===i.NodeType.Document)if(t._nodeType===i.NodeType.DocumentFragment){let r=0;for(const e of t._children)if(e._nodeType===i.NodeType.Element)r++;else if(e._nodeType===i.NodeType.Text)throw new o.HierarchyRequestError(`Cannot insert text a node as a child of a document node. Node is ${e.nodeName}.`);if(r>1)throw new o.HierarchyRequestError(`A document node can only have one document element node. Document fragment to be inserted has ${r} element nodes.`);if(1===r){for(const t of n._children)if(t._nodeType===i.NodeType.Element&&t!==e)throw new o.HierarchyRequestError("The document node already has a document element node.");let t=e._nextSibling;for(;t;){if(t._nodeType===i.NodeType.DocumentType)throw new o.HierarchyRequestError("Cannot insert an element node before a document type node.");t=t._nextSibling}}}else if(t._nodeType===i.NodeType.Element){for(const r of n._children)if(r._nodeType===i.NodeType.Element&&r!==e)throw new o.HierarchyRequestError(`Document already has a document element node. Node is ${t.nodeName}.`);let r=e._nextSibling;for(;r;){if(r._nodeType===i.NodeType.DocumentType)throw new o.HierarchyRequestError(`Cannot insert an element node before a document type node. Node is ${t.nodeName}.`);r=r._nextSibling}}else if(t._nodeType===i.NodeType.DocumentType){for(const r of n._children)if(r._nodeType===i.NodeType.DocumentType&&r!==e)throw new o.HierarchyRequestError(`Document already has a document type node. Node is ${t.nodeName}.`);let r=e._previousSibling;for(;r;){if(r._nodeType===i.NodeType.Element)throw new o.HierarchyRequestError(`Cannot insert a document type node before an element node. Node is ${t.nodeName}.`);r=r._previousSibling}}let a=e._nextSibling;a===t&&(a=t._nextSibling);let c=e._previousSibling;m.document_adopt(t,n._nodeDocument);const s=[];null!==e._parent&&(s.push(e),g(e,e._parent,!0));let l=[];return t._nodeType===i.NodeType.DocumentFragment?l=Array.from(t._children):l.push(t),_(t,n,a,!0),r.dom.features.mutationObservers&&p.observer_queueTreeMutationRecord(n,l,s,c,a),e},t.mutation_replaceAll=function(e,t){null!==e&&m.document_adopt(e,t._nodeDocument);const n=Array.from(t._children);let o=[];e&&e._nodeType===i.NodeType.DocumentFragment?o=Array.from(e._children):null!==e&&o.push(e);for(const e of n)g(e,t,!0);null!==e&&_(e,t,null,!0),r.dom.features.mutationObservers&&p.observer_queueTreeMutationRecord(t,o,n,null,null)},t.mutation_preRemove=function(e,t){if(e._parent!==t)throw new o.NotFoundError(`The child node cannot be found under parent node. Child node is ${e.nodeName}, parent node is ${t.nodeName}.`);return g(e,t),e},t.mutation_remove=g},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(129);function o(e,t){if(e){if("string"==typeof e)return Object(r.a)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(e,t):void 0}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return te})),n.d(t,"b",(function(){return re}));var r=void 0,o={Webkit:"-webkit-",Moz:"-moz-",ms:"-ms-",O:"-o-"};function i(){if(void 0!==r)return r;r="";var e=document.createElement("p").style;for(var t in o)t+"Transform"in e&&(r=t);return r}function a(){return i()?i()+"TransitionProperty":"transitionProperty"}function c(){return i()?i()+"Transform":"transform"}function s(e,t){var n=a();n&&(e.style[n]=t,"transitionProperty"!==n&&(e.style.transitionProperty=t))}function l(e,t){var n=c();n&&(e.style[n]=t,"transform"!==n&&(e.style.transform=t))}var u=/matrix\((.*)\)/,f=/matrix3d\((.*)\)/;var d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p=void 0;function h(e){var t=e.style.display;e.style.display="none",e.offsetHeight,e.style.display=t}function m(e,t,n){var r=n;if("object"!==(void 0===t?"undefined":d(t)))return void 0!==r?("number"==typeof r&&(r+="px"),void(e.style[t]=r)):p(e,t);for(var o in t)t.hasOwnProperty(o)&&m(e,o,t[o])}function v(e,t){var n=e["page"+(t?"Y":"X")+"Offset"],r="scroll"+(t?"Top":"Left");if("number"!=typeof n){var o=e.document;"number"!=typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}function y(e){return v(e)}function _(e){return v(e,!0)}function g(e){var t=function(e){var t,n=void 0,r=void 0,o=e.ownerDocument,i=o.body,a=o&&o.documentElement;return n=(t=e.getBoundingClientRect()).left,r=t.top,{left:n-=a.clientLeft||i.clientLeft||0,top:r-=a.clientTop||i.clientTop||0}}(e),n=e.ownerDocument,r=n.defaultView||n.parentWindow;return t.left+=y(r),t.top+=_(r),t}function b(e){return null!=e&&e==e.window}function M(e){return b(e)?e.document:9===e.nodeType?e:e.ownerDocument}var w=new RegExp("^("+/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source+")(?!px)[a-z%]+$","i"),O=/^(top|right|bottom|left)$/,S="left";function C(e,t){return"left"===e?t.useCssRight?"right":e:t.useCssBottom?"bottom":e}function x(e){return"left"===e?"right":"right"===e?"left":"top"===e?"bottom":"bottom"===e?"top":void 0}function k(e,t,n){"static"===m(e,"position")&&(e.style.position="relative");var r=-999,o=-999,i=C("left",n),c=C("top",n),l=x(i),u=x(c);"left"!==i&&(r=999),"top"!==c&&(o=999);var f,d="",p=g(e);("left"in t||"top"in t)&&(d=(f=e).style.transitionProperty||f.style[a()]||"",s(e,"none")),"left"in t&&(e.style[l]="",e.style[i]=r+"px"),"top"in t&&(e.style[u]="",e.style[c]=o+"px"),h(e);var v=g(e),y={};for(var _ in t)if(t.hasOwnProperty(_)){var b=C(_,n),M="left"===_?r:o,w=p[_]-v[_];y[b]=b===_?M+w:M-w}m(e,y),h(e),("left"in t||"top"in t)&&s(e,d);var O={};for(var S in t)if(t.hasOwnProperty(S)){var k=C(S,n),L=t[S]-p[S];O[k]=S===k?y[k]+L:y[k]-L}m(e,O)}function L(e,t){var n=g(e),r=function(e){var t=window.getComputedStyle(e,null),n=t.getPropertyValue("transform")||t.getPropertyValue(c());if(n&&"none"!==n){var r=n.replace(/[^0-9\-.,]/g,"").split(",");return{x:parseFloat(r[12]||r[4],0),y:parseFloat(r[13]||r[5],0)}}return{x:0,y:0}}(e),o={x:r.x,y:r.y};"left"in t&&(o.x=r.x+t.left-n.left),"top"in t&&(o.y=r.y+t.top-n.top),function(e,t){var n=window.getComputedStyle(e,null),r=n.getPropertyValue("transform")||n.getPropertyValue(c());if(r&&"none"!==r){var o=void 0,i=r.match(u);if(i)(o=(i=i[1]).split(",").map((function(e){return parseFloat(e,10)})))[4]=t.x,o[5]=t.y,l(e,"matrix("+o.join(",")+")");else(o=r.match(f)[1].split(",").map((function(e){return parseFloat(e,10)})))[12]=t.x,o[13]=t.y,l(e,"matrix3d("+o.join(",")+")")}else l(e,"translateX("+t.x+"px) translateY("+t.y+"px) translateZ(0)")}(e,o)}function E(e,t){for(var n=0;n<e.length;n++)t(e[n])}function T(e){return"border-box"===p(e,"boxSizing")}"undefined"!=typeof window&&(p=window.getComputedStyle?function(e,t,n){var r=n,o="",i=M(e);return(r=r||i.defaultView.getComputedStyle(e,null))&&(o=r.getPropertyValue(t)||r[t]),o}:function(e,t){var n=e.currentStyle&&e.currentStyle[t];if(w.test(n)&&!O.test(t)){var r=e.style,o=r[S],i=e.runtimeStyle[S];e.runtimeStyle[S]=e.currentStyle[S],r[S]="fontSize"===t?"1em":n||0,n=r.pixelLeft+"px",r[S]=o,e.runtimeStyle[S]=i}return""===n?"auto":n});var P=["margin","border","padding"];function j(e,t,n){var r={},o=e.style,i=void 0;for(i in t)t.hasOwnProperty(i)&&(r[i]=o[i],o[i]=t[i]);for(i in n.call(e),t)t.hasOwnProperty(i)&&(o[i]=r[i])}function z(e,t,n){var r=0,o=void 0,i=void 0,a=void 0;for(i=0;i<t.length;i++)if(o=t[i])for(a=0;a<n.length;a++){var c=void 0;c="border"===o?""+o+n[a]+"Width":o+n[a],r+=parseFloat(p(e,c))||0}return r}var D={};function N(e,t,n){var r=n;if(b(e))return"width"===t?D.viewportWidth(e):D.viewportHeight(e);if(9===e.nodeType)return"width"===t?D.docWidth(e):D.docHeight(e);var o="width"===t?["Left","Right"]:["Top","Bottom"],i="width"===t?e.getBoundingClientRect().width:e.getBoundingClientRect().height,a=(p(e),T(e)),c=0;(null==i||i<=0)&&(i=void 0,(null==(c=p(e,t))||Number(c)<0)&&(c=e.style[t]||0),c=parseFloat(c)||0),void 0===r&&(r=a?1:-1);var s=void 0!==i||a,l=i||c;return-1===r?s?l-z(e,["border","padding"],o):c:s?1===r?l:l+(2===r?-z(e,["border"],o):z(e,["margin"],o)):c+z(e,P.slice(r),o)}E(["Width","Height"],(function(e){D["doc"+e]=function(t){var n=t.document;return Math.max(n.documentElement["scroll"+e],n.body["scroll"+e],D["viewport"+e](n))},D["viewport"+e]=function(t){var n="client"+e,r=t.document,o=r.body,i=r.documentElement[n];return"CSS1Compat"===r.compatMode&&i||o&&o[n]||i}}));var H={position:"absolute",visibility:"hidden",display:"block"};function A(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=void 0,o=t[0];return 0!==o.offsetWidth?r=N.apply(void 0,t):j(o,H,(function(){r=N.apply(void 0,t)})),r}function Y(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}E(["width","height"],(function(e){var t=e.charAt(0).toUpperCase()+e.slice(1);D["outer"+t]=function(t,n){return t&&A(t,e,n?0:1)};var n="width"===e?["Left","Right"]:["Top","Bottom"];D[e]=function(t,r){var o=r;if(void 0===o)return t&&A(t,e,-1);if(t){p(t);return T(t)&&(o+=z(t,["padding","border"],n)),m(t,e,o)}}}));var I={getWindow:function(e){if(e&&e.document&&e.setTimeout)return e;var t=e.ownerDocument||e;return t.defaultView||t.parentWindow},getDocument:M,offset:function(e,t,n){if(void 0===t)return g(e);!function(e,t,n){if(n.ignoreShake){var r=g(e),o=r.left.toFixed(0),i=r.top.toFixed(0),a=t.left.toFixed(0),s=t.top.toFixed(0);if(o===a&&i===s)return}n.useCssRight||n.useCssBottom?k(e,t,n):n.useCssTransform&&c()in document.body.style?L(e,t):k(e,t,n)}(e,t,n||{})},isWindow:b,each:E,css:m,clone:function(e){var t=void 0,n={};for(t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);if(e.overflow)for(t in e)e.hasOwnProperty(t)&&(n.overflow[t]=e.overflow[t]);return n},mix:Y,getWindowScrollLeft:function(e){return y(e)},getWindowScrollTop:function(e){return _(e)},merge:function(){for(var e={},t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];for(var o=0;o<n.length;o++)I.mix(e,n[o]);return e},viewportWidth:0,viewportHeight:0};Y(I,D);var V=I;var F=function(e){if(V.isWindow(e)||9===e.nodeType)return null;var t=V.getDocument(e).body,n=void 0,r=V.css(e,"position");if(!("fixed"===r||"absolute"===r))return"html"===e.nodeName.toLowerCase()?null:e.parentNode;for(n=e.parentNode;n&&n!==t;n=n.parentNode)if("static"!==(r=V.css(n,"position")))return n;return null};var R=function(e){for(var t={left:0,right:1/0,top:0,bottom:1/0},n=F(e),r=V.getDocument(e),o=r.defaultView||r.parentWindow,i=r.body,a=r.documentElement;n;){if(-1!==navigator.userAgent.indexOf("MSIE")&&0===n.clientWidth||n===i||n===a||"visible"===V.css(n,"overflow")){if(n===i||n===a)break}else{var c=V.offset(n);c.left+=n.clientLeft,c.top+=n.clientTop,t.top=Math.max(t.top,c.top),t.right=Math.min(t.right,c.left+n.clientWidth),t.bottom=Math.min(t.bottom,c.top+n.clientHeight),t.left=Math.max(t.left,c.left)}n=F(n)}var s=null;V.isWindow(e)||9===e.nodeType||(s=e.style.position,"absolute"===V.css(e,"position")&&(e.style.position="fixed"));var l=V.getWindowScrollLeft(o),u=V.getWindowScrollTop(o),f=V.viewportWidth(o),d=V.viewportHeight(o),p=a.scrollWidth,h=a.scrollHeight,m=window.getComputedStyle(i);if("hidden"===m.overflowX&&(p=o.innerWidth),"hidden"===m.overflowY&&(h=o.innerHeight),e.style&&(e.style.position=s),function(e){if(V.isWindow(e)||9===e.nodeType)return!1;var t=V.getDocument(e).body,n=null;for(n=e.parentNode;n&&n!==t;n=n.parentNode){if("fixed"===V.css(n,"position"))return!0}return!1}(e))t.left=Math.max(t.left,l),t.top=Math.max(t.top,u),t.right=Math.min(t.right,l+f),t.bottom=Math.min(t.bottom,u+d);else{var v=Math.max(p,l+f);t.right=Math.min(t.right,v);var y=Math.max(h,u+d);t.bottom=Math.min(t.bottom,y)}return t.top>=0&&t.left>=0&&t.bottom>t.top&&t.right>t.left?t:null};var W=function(e,t,n,r){var o=V.clone(e),i={width:t.width,height:t.height};return r.adjustX&&o.left<n.left&&(o.left=n.left),r.resizeWidth&&o.left>=n.left&&o.left+i.width>n.right&&(i.width-=o.left+i.width-n.right),r.adjustX&&o.left+i.width>n.right&&(o.left=Math.max(n.right-i.width,n.left)),r.adjustY&&o.top<n.top&&(o.top=n.top),r.resizeHeight&&o.top>=n.top&&o.top+i.height>n.bottom&&(i.height-=o.top+i.height-n.bottom),r.adjustY&&o.top+i.height>n.bottom&&(o.top=Math.max(n.bottom-i.height,n.top)),V.mix(o,i)};var U=function(e){var t=void 0,n=void 0,r=void 0;if(V.isWindow(e)||9===e.nodeType){var o=V.getWindow(e);t={left:V.getWindowScrollLeft(o),top:V.getWindowScrollTop(o)},n=V.viewportWidth(o),r=V.viewportHeight(o)}else t=V.offset(e),n=V.outerWidth(e),r=V.outerHeight(e);return t.width=n,t.height=r,t};var B=function(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,i=e.height,a=e.left,c=e.top;return"c"===n?c+=i/2:"b"===n&&(c+=i),"c"===r?a+=o/2:"r"===r&&(a+=o),{left:a,top:c}};var K=function(e,t,n,r,o){var i=B(t,n[1]),a=B(e,n[0]),c=[a.left-i.left,a.top-i.top];return{left:Math.round(e.left-c[0]+r[0]-o[0]),top:Math.round(e.top-c[1]+r[1]-o[1])}};function q(e,t,n){return e.left<n.left||e.left+t.width>n.right}function G(e,t,n){return e.top<n.top||e.top+t.height>n.bottom}function $(e,t,n){var r=[];return V.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function J(e,t){return e[t]=-e[t],e}function X(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function Q(e,t){e[0]=X(e[0],t.width),e[1]=X(e[1],t.height)}var Z=function(e,t,n,r){var o=n.points,i=n.offset||[0,0],a=n.targetOffset||[0,0],c=n.overflow,s=n.source||e;i=[].concat(i),a=[].concat(a),c=c||{};var l={},u=0,f=R(s),d=U(s);Q(i,d),Q(a,t);var p=K(d,t,o,i,a),h=V.merge(d,p);if(f&&(c.adjustX||c.adjustY)&&r){if(c.adjustX&&q(p,d,f)){var m=$(o,/[lr]/gi,{l:"r",r:"l"}),v=J(i,0),y=J(a,0);(function(e,t,n){return e.left>n.right||e.left+t.width<n.left})(K(d,t,m,v,y),d,f)||(u=1,o=m,i=v,a=y)}if(c.adjustY&&G(p,d,f)){var _=$(o,/[tb]/gi,{t:"b",b:"t"}),g=J(i,1),b=J(a,1);(function(e,t,n){return e.top>n.bottom||e.top+t.height<n.top})(K(d,t,_,g,b),d,f)||(u=1,o=_,i=g,a=b)}u&&(p=K(d,t,o,i,a),V.mix(h,p));var M=q(p,d,f),w=G(p,d,f);(M||w)&&(o=n.points,i=n.offset||[0,0],a=n.targetOffset||[0,0]),l.adjustX=c.adjustX&&M,l.adjustY=c.adjustY&&w,(l.adjustX||l.adjustY)&&(h=W(p,d,f,l))}return h.width!==d.width&&V.css(s,"width",V.width(s)+h.width-d.width),h.height!==d.height&&V.css(s,"height",V.height(s)+h.height-d.height),V.offset(s,{left:h.left,top:h.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:i,targetOffset:a,overflow:l}};function ee(e,t,n){var r=n.target||t,o=U(r),i=!function(e){var t=R(e),n=U(e);return!t||n.left+n.width<=t.left||n.top+n.height<=t.top||n.left>=t.right||n.top>=t.bottom}(r);return Z(e,o,n,i)}ee.__getOffsetParent=F,ee.__getVisibleRectForElement=R;var te=ee,ne=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var re=function(e,t,n){var r=void 0,o=void 0,i=V.getDocument(e),a=i.defaultView||i.parentWindow,c=V.getWindowScrollLeft(a),s=V.getWindowScrollTop(a),l=V.viewportWidth(a),u=V.viewportHeight(a),f={left:r="pageX"in t?t.pageX:c+t.clientX,top:o="pageY"in t?t.pageY:s+t.clientY,width:0,height:0},d=r>=0&&r<=c+l&&o>=0&&o<=s+u,p=[n.points[0],"cc"];return Z(e,f,ne({},n,{points:p}),d)}},function(e,t,n){"use strict";n.d(t,"b",(function(){return h}));var r=n(153),o=n.n(r),i={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},a={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},c=[],s=[];function l(e,t,n){e.addEventListener(t,n,!1)}function u(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];for(var i in o)if(i in e){n.push(o[i]);break}}}"AnimationEvent"in window||(delete i.animationstart.animation,delete a.animationend.animation),"TransitionEvent"in window||(delete i.transitionstart.transition,delete a.transitionend.transition),t(i,c),t(a,s)}();var f={startEvents:c,addStartEventListener:function(e,t){0!==c.length?c.forEach((function(n){l(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==c.length&&c.forEach((function(n){u(e,n,t)}))},endEvents:s,addEndEventListener:function(e,t){0!==s.length?s.forEach((function(n){l(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==s.length&&s.forEach((function(n){u(e,n,t)}))}},d=n(128),p=n.n(d),h=0!==f.endEvents.length,m=["Webkit","Moz","O","ms"],v=["-webkit-","-moz-","-o-","ms-",""];function y(e,t){for(var n=window.getComputedStyle(e,null),r="",o=0;o<v.length&&!(r=n.getPropertyValue(v[o]+t));o++);return r}function _(e){if(h){var t=parseFloat(y(e,"transition-delay"))||0,n=parseFloat(y(e,"transition-duration"))||0,r=parseFloat(y(e,"animation-delay"))||0,o=parseFloat(y(e,"animation-duration"))||0,i=Math.max(n+t,o+r);e.rcEndAnimTimeout=setTimeout((function(){e.rcEndAnimTimeout=null,e.rcEndListener&&e.rcEndListener()}),1e3*i+200)}}function g(e){e.rcEndAnimTimeout&&(clearTimeout(e.rcEndAnimTimeout),e.rcEndAnimTimeout=null)}var b=function(e,t,n){var r="object"===(void 0===t?"undefined":o()(t)),i=r?t.name:t,a=r?t.active:t+"-active",c=n,s=void 0,l=void 0,u=p()(e);return n&&"[object Object]"===Object.prototype.toString.call(n)&&(c=n.end,s=n.start,l=n.active),e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),g(e),u.remove(i),u.remove(a),f.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,c&&c())},f.addEndEventListener(e,e.rcEndListener),s&&s(),u.add(i),e.rcAnimTimeout=setTimeout((function(){e.rcAnimTimeout=null,u.add(a),l&&setTimeout(l,0),_(e)}),30),{stop:function(){e.rcEndListener&&e.rcEndListener()}}};b.style=function(e,t,n){e.rcEndListener&&e.rcEndListener(),e.rcEndListener=function(t){t&&t.target!==e||(e.rcAnimTimeout&&(clearTimeout(e.rcAnimTimeout),e.rcAnimTimeout=null),g(e),f.removeEndEventListener(e,e.rcEndListener),e.rcEndListener=null,n&&n())},f.addEndEventListener(e,e.rcEndListener),e.rcAnimTimeout=setTimeout((function(){for(var n in t)t.hasOwnProperty(n)&&(e.style[n]=t[n]);e.rcAnimTimeout=null,_(e)}),0)},b.setTransition=function(e,t,n){var r=t,o=n;void 0===n&&(o=r,r=""),r=r||"",m.forEach((function(t){e.style[t+"Transition"+r]=o}))},b.isCssAnimationSupported=h;t.a=b},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT */var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,c,s=a(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))o.call(n,u)&&(s[u]=n[u]);if(r){c=r(n);for(var f=0;f<c.length;f++)i.call(n,c[f])&&(s[c[f]]=n[c[f]])}}return s}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function c(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var s,l=[],u=!1,f=-1;function d(){u&&s&&(u=!1,s.length?l=s.concat(l):f=-1,l.length&&p())}function p(){if(!u){var e=c(d);u=!0;for(var t=l.length;t;){for(s=l,l=[];++f<t;)s&&s[f].run();f=-1,t=l.length}s=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new h(e,t)),1!==l.length||u||c(p)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fixControlledValue=S,t.resolveOnChange=C,t.getInputClassName=x,t.default=t.InputSizes=void 0;var r=h(n(0)),o=h(n(1)),i=n(48),a=d(n(3)),c=d(n(81)),s=n(85),l=h(n(243)),u=n(43),f=d(n(64));function d(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==m(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=M(e);if(t){var o=M(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=(0,s.tuple)("small","default","large");function S(e){return null==e?"":e}function C(e,t,n){if(n){var r=t;if("click"===t.type){(r=Object.create(t)).target=e,r.currentTarget=e;var o=e.value;return e.value="",n(r),void(e.value=o)}n(r)}}function x(e,t,n){var r;return(0,a.default)(e,(w(r={},"".concat(e,"-sm"),"small"===t),w(r,"".concat(e,"-lg"),"large"===t),w(r,"".concat(e,"-disabled"),n),r))}t.InputSizes=O;var k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(s,e);var t,n,o,i=g(s);function s(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(t=i.call(this,e)).saveClearableInput=function(e){t.clearableInput=e},t.saveInput=function(e){t.input=e},t.handleReset=function(e){t.setValue("",(function(){t.focus()})),C(t.input,e,t.props.onChange)},t.renderInput=function(e){var n=t.props,o=n.className,i=n.addonBefore,s=n.addonAfter,l=n.size,u=n.disabled,f=(0,c.default)(t.props,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","size","inputType"]);return r.createElement("input",v({},f,{onChange:t.handleChange,onKeyDown:t.handleKeyDown,className:(0,a.default)(x(e,l,u),w({},o,o&&!i&&!s)),ref:t.saveInput}))},t.clearPasswordValueAttribute=function(){t.removePasswordTimeout=setTimeout((function(){t.input&&"password"===t.input.getAttribute("type")&&t.input.hasAttribute("value")&&t.input.removeAttribute("value")}))},t.handleChange=function(e){t.setValue(e.target.value,t.clearPasswordValueAttribute),C(t.input,e,t.props.onChange)},t.handleKeyDown=function(e){var n=t.props,r=n.onPressEnter,o=n.onKeyDown;13===e.keyCode&&r&&r(e),o&&o(e)},t.renderComponent=function(e){var n=e.getPrefixCls,o=t.state.value,i=n("input",t.props.prefixCls);return r.createElement(l.default,v({},t.props,{prefixCls:i,inputType:"input",value:S(o),element:t.renderInput(i),handleReset:t.handleReset,ref:t.saveClearableInput}))};var n=void 0===e.value?e.defaultValue:e.value;return t.state={value:n},t}return t=s,o=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}],(n=[{key:"componentDidMount",value:function(){this.clearPasswordValueAttribute()}},{key:"componentDidUpdate",value:function(){}},{key:"getSnapshotBeforeUpdate",value:function(e){return(0,l.hasPrefixSuffix)(e)!==(0,l.hasPrefixSuffix)(this.props)&&(0,f.default)(this.input!==document.activeElement,"Input","When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ"),null}},{key:"componentWillUnmount",value:function(){this.removePasswordTimeout&&clearTimeout(this.removePasswordTimeout)}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"select",value:function(){this.input.select()}},{key:"setValue",value:function(e,t){"value"in this.props||this.setState({value:e},t)}},{key:"render",value:function(){return r.createElement(u.ConfigConsumer,null,this.renderComponent)}}])&&y(t.prototype,n),o&&y(t,o),s}(r.Component);k.defaultProps={type:"text"},k.propTypes={type:o.string,id:o.string,size:o.oneOf(O),maxLength:o.number,disabled:o.bool,value:o.any,defaultValue:o.any,className:o.string,addonBefore:o.node,addonAfter:o.node,prefixCls:o.string,onPressEnter:o.func,onKeyDown:o.func,onKeyUp:o.func,onFocus:o.func,onBlur:o.func,prefix:o.node,suffix:o.node,allowClear:o.bool},(0,i.polyfill)(k);var L=k;t.default=L},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.getPathValue=function(e,t){if(!t&&"number"!=typeof t)return e;for(var n=i(t),r=e,o=0;o<n.length;o+=1){if(!r)return null;var a=n[o];r=r[a]}return r},t.getColumnsKey=function(e){var t=[],n={};return e.forEach((function(e){for(var r=e||{},o=r.key,a=r.dataIndex,c=o||i(a).join("-")||"RC_TABLE_KEY";n[c];)c="".concat(c,"_next");n[c]=!0,t.push(c)})),t},t.mergeObject=function(){var e={};function t(e,n){n&&Object.keys(n).forEach((function(r){var i=n[r];i&&"object"===(0,o.default)(i)?(e[r]=e[r]||{},t(e[r],i)):e[r]=i}))}for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return r.forEach((function(n){t(e,n)})),e},t.validateValue=function(e){return null!=e};var o=r(n(9));function i(e){return null==e?[]:Array.isArray(e)?e:[e]}},function(e,t,n){var r=n(184),o=n(662),i=n(663),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.SizeContextProvider=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(0));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}var a=o.createContext(void 0);t.SizeContextProvider=function(e){var t=e.children,n=e.size;return o.createElement(a.Consumer,null,(function(e){return o.createElement(a.Provider,{value:n||e},t)}))};var c=a;t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(888);t.ObjectCache=r.ObjectCache;var o=n(889);function*i(e){if(u(e))yield*e;else for(const t in e)e.hasOwnProperty(t)&&(yield[t,e[t]])}function a(e){if(c(e))return e;if(l(e)){const t=[];for(const n of e)t.push(a(n));return t}if(s(e)){const t={};for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];t[n]=a(r)}return t}return e}function c(e){return!!e&&"[object Function]"===Object.prototype.toString.call(e)}function s(e){const t=typeof e;return!!e&&("function"===t||"object"===t)}function l(e){return Array.isArray(e)}function u(e){return e instanceof Map}t.CompareCache=o.CompareCache,t.applyMixin=function(e,t,...n){Object.getOwnPropertyNames(t.prototype).forEach(r=>{if(n.includes(r)){const t=Object.getOwnPropertyDescriptor(e.prototype,r);t&&Object.defineProperty(e.prototype,"_"+r,t)}const o=Object.getOwnPropertyDescriptor(t.prototype,r);o&&Object.defineProperty(e.prototype,r,o)})},t.applyDefaults=function e(t,n,r=!1){const o=a(t||{});for(const[t,a]of i(n))s(a)?o[t]=e(o[t],a):(r||void 0===o[t])&&(o[t]=a);return o},t.forEachArray=function*(e){yield*e},t.forEachObject=i,t.objectLength=function(e){return u(e)?e.size:Object.keys(e).length},t.getObjectValue=function(e,t){return u(e)?e.get(t):e[t]},t.removeObjectValue=function(e,t){u(e)?e.delete(t):delete e[t]},t.clone=a,t.isBoolean=function(e){return"boolean"==typeof e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isFunction=c,t.isObject=s,t.isArray=l,t.isMap=u,t.isEmpty=function(e){if(l(e))return!e.length;if(s(e)){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},t.isPlainObject=function(e){if(s(e)){const t=Object.getPrototypeOf(e),n=t.constructor;return t&&n&&"function"==typeof n&&n instanceof n&&Function.prototype.toString.call(n)===Function.prototype.toString.call(Object)}return!1},t.isIterable=function(e){return e&&"function"==typeof e[Symbol.iterator]},t.getValue=function(e){return c(e.valueOf)?e.valueOf():e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(46),a=n(97),c=n(52),s=n(203);function l(){const e=r.dom.window;e._mutationObserverMicrotaskQueued||(e._mutationObserverMicrotaskQueued=!0,Promise.resolve().then(()=>{u()}))}function u(){const e=r.dom.window;e._mutationObserverMicrotaskQueued=!1;const t=i.set.clone(e._mutationObservers),n=i.set.clone(e._signalSlots);i.set.empty(e._signalSlots);for(const e of t){const t=i.list.clone(e._recordQueue);i.list.empty(e._recordQueue);for(let t=0;t<e._nodeList.length;t++){const n=e._nodeList[t];i.list.remove(n._registeredObserverList,t=>o.Guard.isTransientRegisteredObserver(t)&&t.observer===e)}if(!i.list.isEmpty(t))try{e._callback.call(e,t,e)}catch(e){}}if(r.dom.features.slots)for(const e of n)s.event_fireAnEvent("slotchange",e,void 0,{bubbles:!0})}function f(e,t,n,r,o,i,s,u,f){const d=new Map;let p=c.tree_getFirstAncestorNode(t,!0);for(;null!==p;){for(let i=0;i<p._registeredObserverList.length;i++){const a=p._registeredObserverList[i],c=a.options;if(p!==t&&!c.subtree)continue;if("attributes"===e&&!c.attributes)continue;if("attributes"===e&&c.attributeFilter&&(!c.attributeFilter.includes(n||"")||null!==r))continue;if("characterData"===e&&!c.characterData)continue;if("childList"===e&&!c.childList)continue;const s=a.observer;d.has(s)||d.set(s,null),("attributes"===e&&c.attributeOldValue||"characterData"===e&&c.characterDataOldValue)&&d.set(s,o)}p=c.tree_getNextAncestorNode(t,p,!0)}for(const[o,c]of d){const l=a.create_mutationRecord(e,t,a.create_nodeListStatic(t,i),a.create_nodeListStatic(t,s),u,f,n,r,c);o._recordQueue.push(l)}l()}t.observer_queueAMutationObserverMicrotask=l,t.observer_notifyMutationObservers=u,t.observer_queueMutationRecord=f,t.observer_queueTreeMutationRecord=function(e,t,n,r,o){f("childList",e,null,null,null,t,n,r,o)},t.observer_queueAttributeMutationRecord=function(e,t,n,r){f("attributes",e,t,n,r,[],[],null,null)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(46),i=n(26),a=n(41),c=n(97),s=n(148),l=n(124),u=n(89),f=n(108),d=n(213);function p(e,t,n){r.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,e._value),r.dom.features.customElements&&i.Guard.isCustomElementNode(t)&&s.customElement_enqueueACustomElementCallbackReaction(t,"attributeChangedCallback",[e._localName,e._value,n,e._namespace]),r.dom.features.steps&&u.dom_runAttributeChangeSteps(t,e._localName,e._value,n,e._namespace),e._value=n}function h(e,t){r.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,null),r.dom.features.customElements&&i.Guard.isCustomElementNode(t)&&s.customElement_enqueueACustomElementCallbackReaction(t,"attributeChangedCallback",[e._localName,null,e._value,e._namespace]),r.dom.features.steps&&u.dom_runAttributeChangeSteps(t,e._localName,null,e._value,e._namespace),t._attributeList._asArray().push(e),e._element=t,t._nodeDocument._hasNamespaces||null===e._namespace&&null===e._namespacePrefix&&"xmlns"!==e._localName||(t._nodeDocument._hasNamespaces=!0)}function m(e,t){r.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(t,e._localName,e._namespace,e._value),r.dom.features.customElements&&i.Guard.isCustomElementNode(t)&&s.customElement_enqueueACustomElementCallbackReaction(t,"attributeChangedCallback",[e._localName,e._value,null,e._namespace]),r.dom.features.steps&&u.dom_runAttributeChangeSteps(t,e._localName,e._value,null,e._namespace);const n=t._attributeList._asArray().indexOf(e);t._attributeList._asArray().splice(n,1),e._element=null}function v(e,t,n){r.dom.features.mutationObservers&&l.observer_queueAttributeMutationRecord(n,e._localName,e._namespace,e._value),r.dom.features.customElements&&i.Guard.isCustomElementNode(n)&&s.customElement_enqueueACustomElementCallbackReaction(n,"attributeChangedCallback",[e._localName,e._value,t._value,e._namespace]),r.dom.features.steps&&u.dom_runAttributeChangeSteps(n,e._localName,e._value,t._value,e._namespace);const o=n._attributeList._asArray().indexOf(e);-1!==o&&(n._attributeList._asArray()[o]=t),e._element=null,t._element=n,n._nodeDocument._hasNamespaces||null===t._namespace&&null===t._namespacePrefix&&"xmlns"!==t._localName||(n._nodeDocument._hasNamespaces=!0)}function y(e,t){return t._namespace===o.namespace.HTML&&"html"===t._nodeDocument._type&&(e=e.toLowerCase()),t._attributeList._asArray().find(t=>t._qualifiedName===e)||null}function _(e,t,n){const r=e||null;return n._attributeList._asArray().find(e=>e._namespace===r&&e._localName===t)||null}t.element_has=function(e,t){return-1!==t._attributeList._asArray().indexOf(e)},t.element_change=p,t.element_append=h,t.element_remove=m,t.element_replace=v,t.element_getAnAttributeByName=y,t.element_getAnAttributeByNamespaceAndLocalName=_,t.element_getAnAttributeValue=function(e,t,n=""){const r=_(n,t,e);return null===r?"":r._value},t.element_setAnAttribute=function(e,t){if(null!==e._element&&e._element!==t)throw new a.InUseAttributeError(`This attribute already exists in the document: ${e._qualifiedName} as a child of ${e._element._qualifiedName}.`);const n=_(e._namespace||"",e._localName,t);return n===e?e:(null!==n?v(n,e,t):h(e,t),n)},t.element_setAnAttributeValue=function(e,t,n,r=null,o=null){const i=_(o||"",t,e);if(null===i){const i=c.create_attr(e._nodeDocument,t);return i._namespace=o,i._namespacePrefix=r,i._value=n,void h(i,e)}p(i,e,n)},t.element_removeAnAttributeByName=function(e,t){const n=y(e,t);return null!==n&&m(n,t),n},t.element_removeAnAttributeByNamespaceAndLocalName=function(e,t,n){const r=_(e,t,n);return null!==r&&m(r,n),r},t.element_createAnElement=function(e,t,n,i=null,l=null,u=!1){let f=null;if(!r.dom.features.customElements)return f=c.create_element(e,t,n,i),f._customElementState="uncustomized",f._customElementDefinition=null,f._is=l,f;const p=s.customElement_lookUpACustomElementDefinition(e,n,t,l);if(null!==p&&p.name!==p.localName){f=new(d.document_elementInterface(t,o.namespace.HTML)),f._localName=t,f._namespace=o.namespace.HTML,f._namespacePrefix=i,f._customElementState="undefined",f._customElementDefinition=null,f._is=l,f._nodeDocument=e,u?s.customElement_upgrade(p,f):s.customElement_enqueueACustomElementUpgradeReaction(f,p)}else if(null!==p)if(u)try{const n=new(0,p.constructor);if(console.assert(void 0!==n._customElementState),console.assert(void 0!==n._customElementDefinition),console.assert(n._namespace===o.namespace.HTML),0!==n._attributeList.length)throw new a.NotSupportedError("Custom element already has attributes.");if(0!==n._children.size)throw new a.NotSupportedError("Custom element already has child nodes.");if(null!==n._parent)throw new a.NotSupportedError("Custom element already has a parent node.");if(n._nodeDocument!==e)throw new a.NotSupportedError("Custom element is already in a document.");if(n._localName!==t)throw new a.NotSupportedError("Custom element has a different local name.");n._namespacePrefix=i,n._is=null}catch(n){f=c.create_htmlUnknownElement(e,t,o.namespace.HTML,i),f._customElementState="failed",f._customElementDefinition=null,f._is=null}else f=c.create_htmlElement(e,t,o.namespace.HTML,i),f._customElementState="undefined",f._customElementDefinition=null,f._is=null,s.customElement_enqueueACustomElementUpgradeReaction(f,p);else{f=new(d.document_elementInterface(t,n)),f._localName=t,f._namespace=n,f._namespacePrefix=i,f._customElementState="uncustomized",f._customElementDefinition=null,f._is=l,f._nodeDocument=e,n!==o.namespace.HTML||null===l&&!s.customElement_isValidCustomElementName(t)||(f._customElementState="undefined")}if(null===f)throw new Error("Unable to create element.");return f},t.element_insertAdjacent=function(e,t,n){switch(t.toLowerCase()){case"beforebegin":return null===e._parent?null:f.mutation_preInsert(n,e._parent,e);case"afterbegin":return f.mutation_preInsert(n,e,e._firstChild);case"beforeend":return f.mutation_preInsert(n,e,null);case"afterend":return null===e._parent?null:f.mutation_preInsert(n,e._parent,e._nextSibling);default:throw new a.SyntaxError('Invalid \'where\' argument. "beforebegin", "afterbegin", "beforeend" or "afterend" expected')}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(595)),o=i(n(599));function i(e){return e&&e.__esModule?e:{default:e}}r.default.Group=o.default;var a=r.default;t.default=a},function(e,t,n){"use strict";e.exports=n(617)},function(e,t,n){try{var r=n(388)}catch(e){r=n(388)}var o=/\s+/,i=Object.prototype.toString;function a(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}e.exports=function(e){return new a(e)},a.prototype.add=function(e){if(this.list)return this.list.add(e),this;var t=this.array();return~r(t,e)||t.push(e),this.el.className=t.join(" "),this},a.prototype.remove=function(e){if("[object RegExp]"==i.call(e))return this.removeMatching(e);if(this.list)return this.list.remove(e),this;var t=this.array(),n=r(t,e);return~n&&t.splice(n,1),this.el.className=t.join(" "),this},a.prototype.removeMatching=function(e){for(var t=this.array(),n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},a.prototype.toggle=function(e,t){return this.list?(void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this):(void 0!==t?t?this.add(e):this.remove(e):this.has(e)?this.remove(e):this.add(e),this)},a.prototype.array=function(){var e=(this.el.getAttribute("class")||"").replace(/^\s+|\s+$/g,"").split(o);return""===e[0]&&e.shift(),e},a.prototype.has=a.prototype.contains=function(e){return this.list?this.list.contains(e):!!~r(this.array(),e)}},function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,"a",(function(){return r}))},function(e,t,n){var r=n(240),o=n(171);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(167);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=s(n(0)),i=s(n(1)),a=(r=n(577))&&r.__esModule?r:{default:r};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=v(e);if(t){var o=v(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return m(this,n)}}function m(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(i,e);var t,n,r,o=h(i);function i(){return f(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||a.default[t||"global"],r=this.context.antLocale,o=t&&r?r[t]:{};return u(u({},"function"==typeof n?n():n),o||{})}},{key:"getLocaleCode",value:function(){var e=this.context.antLocale,t=e&&e.locale;return e&&e.exist&&!t?a.default.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context.antLocale)}}])&&d(t.prototype,n),r&&d(t,r),i}(o.Component);t.default=y,y.defaultProps={componentName:"global"},y.contextTypes={antLocale:i.object}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.fillRef=a,t.composeRef=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){a(t,e)}))}},t.supportRef=function(e){var t,n,r=(0,i.isMemo)(e)?e.type.type:e.type;if("function"==typeof r&&!(null===(t=r.prototype)||void 0===t?void 0:t.render))return!1;if("function"==typeof e&&!(null===(n=e.prototype)||void 0===n?void 0:n.render))return!1;return!0};var o=r(n(9)),i=n(98);function a(e,t){"function"==typeof e?e(t):"object"===(0,o.default)(e)&&e&&"current"in e&&(e.current=t)}},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(16)),a=o(n(57)),c=o(n(71)),s=o(n(9)),l=r(n(0)),u=o(n(3)),f=n(137),d=n(119);function p(e,t){var n,r,o,p,h=e.prefixCls,m=e.className,v=e.record,y=e.index,_=e.dataIndex,g=e.render,b=e.children,M=e.component,w=void 0===M?"td":M,O=e.colSpan,S=e.rowSpan,C=e.fixLeft,x=e.fixRight,k=e.firstFixLeft,L=e.lastFixLeft,E=e.firstFixRight,T=e.lastFixRight,P=e.appendNode,j=e.additionalProps,z=void 0===j?{}:j,D=e.ellipsis,N=e.align,H=e.rowType,A=e.isSticky,Y="".concat(h,"-cell");if(b)o=b;else{var I=(0,d.getPathValue)(v,_);if(o=I,g){var V=g(I,v,y);!(p=V)||"object"!==(0,s.default)(p)||Array.isArray(p)||l.isValidElement(p)?o=V:(o=V.children,r=V.props)}}"object"!==(0,s.default)(o)||Array.isArray(o)||l.isValidElement(o)||(o=null),D&&(L||E)&&(o=l.createElement("span",{className:"".concat(Y,"-content")},o));var F=r||{},R=F.colSpan,W=F.rowSpan,U=F.style,B=F.className,K=(0,c.default)(F,["colSpan","rowSpan","style","className"]),q=void 0!==R?R:O,G=void 0!==W?W:S;if(0===q||0===G)return null;var $={},J="number"==typeof C,X="number"==typeof x;J&&($.position="sticky",$.left=C),X&&($.position="sticky",$.right=x);var Q,Z={};N&&(Z.textAlign=N);var ee=!0===D?{showTitle:!0}:D;ee&&(ee.showTitle||"header"===H)&&("string"==typeof o||"number"==typeof o?Q=o.toString():l.isValidElement(o)&&"string"==typeof o.props.children&&(Q=o.props.children));var te,ne=(0,a.default)((0,a.default)((0,a.default)({title:Q},K),z),{},{colSpan:q&&1!==q?q:null,rowSpan:G&&1!==G?G:null,className:(0,u.default)(Y,m,(n={},(0,i.default)(n,"".concat(Y,"-fix-left"),J),(0,i.default)(n,"".concat(Y,"-fix-left-first"),k),(0,i.default)(n,"".concat(Y,"-fix-left-last"),L),(0,i.default)(n,"".concat(Y,"-fix-right"),X),(0,i.default)(n,"".concat(Y,"-fix-right-first"),E),(0,i.default)(n,"".concat(Y,"-fix-right-last"),T),(0,i.default)(n,"".concat(Y,"-ellipsis"),D),(0,i.default)(n,"".concat(Y,"-with-append"),P),(0,i.default)(n,"".concat(Y,"-fix-sticky"),(J||X)&&A),n),z.className,B),style:(0,a.default)((0,a.default)((0,a.default)((0,a.default)({},z.style),Z),$),U),ref:(te=w,"string"==typeof te||(0,f.supportRef)(te)?t:null)});return l.createElement(w,ne,P,o)}var h=l.forwardRef(p);h.displayName="Cell";var m=l.memo(h,(function(e,t){return!!t.shouldCellUpdate&&!t.shouldCellUpdate(t.record,e.record)}));t.default=m},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tupleNum=t.tuple=void 0;t.tuple=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t};t.tupleNum=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t}},function(e,t,n){var r=n(775),o=n(776),i=n(777),a=n(778),c=n(779);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t,n){var r=n(432);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(107)(Object,"create");e.exports=r},function(e,t,n){var r=n(797);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(41),o=n(26),i=n(20);t.EventTargetImpl=class{constructor(){}get _eventListenerList(){return this.__eventListenerList||(this.__eventListenerList=[])}get _eventHandlerMap(){return this.__eventHandlerMap||(this.__eventHandlerMap={})}addEventListener(e,t,n={passive:!1,once:!1,capture:!1}){const[r,a,c]=i.eventTarget_flattenMore(n);let s;t&&(s=o.Guard.isEventListener(t)?t:{handleEvent:t},i.eventTarget_addEventListener(this,{type:e,callback:s,capture:r,passive:a,once:c,removed:!1}))}removeEventListener(e,t,n={capture:!1}){const r=i.eventTarget_flatten(n);if(t)for(let n=0;n<this._eventListenerList.length;n++){const a=this._eventListenerList[n];if(a.type===e&&a.capture===r){if(o.Guard.isEventListener(t)&&a.callback===t){i.eventTarget_removeEventListener(this,a,n);break}if(t&&a.callback.handleEvent===t){i.eventTarget_removeEventListener(this,a,n);break}}}}dispatchEvent(e){if(e._dispatchFlag||!e._initializedFlag)throw new r.InvalidStateError;return e._isTrusted=!1,i.event_dispatch(e,this)}_getTheParent(e){return null}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(96),o=n(20);class i extends r.NodeImpl{constructor(e){super(),this._data=e}get data(){return this._data}set data(e){o.characterData_replaceData(this,0,this._data.length,e)}get length(){return this._data.length}substringData(e,t){return o.characterData_substringData(this,e,t)}appendData(e){return o.characterData_replaceData(this,this._data.length,0,e)}insertData(e,t){o.characterData_replaceData(this,e,0,t)}deleteData(e,t){o.characterData_replaceData(this,e,t,"")}replaceData(e,t,n){o.characterData_replaceData(this,e,t,n)}get previousElementSibling(){throw new Error("Mixin: NonDocumentTypeChildNode not implemented.")}get nextElementSibling(){throw new Error("Mixin: NonDocumentTypeChildNode not implemented.")}before(...e){throw new Error("Mixin: ChildNode not implemented.")}after(...e){throw new Error("Mixin: ChildNode not implemented.")}replaceWith(...e){throw new Error("Mixin: ChildNode not implemented.")}remove(){throw new Error("Mixin: ChildNode not implemented.")}}t.CharacterDataImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(34),a=n(52),c=n(124);function s(e){r.dom.window._signalSlots.add(e),c.observer_queueAMutationObserverMicrotask()}function l(e,t=!1){const n=o.Cast.asNode(e)._parent;if(null===n)return null;const r=n._shadowRoot||null;if(null===r)return null;if(t&&"open"!==r._mode)return null;let i=a.tree_getFirstDescendantNode(r,!1,!0,e=>o.Guard.isSlot(e));for(;null!==i;){if(i._name===e._name)return i;i=a.tree_getNextDescendantNode(r,i,!1,!0,e=>o.Guard.isSlot(e))}return null}function u(e){const t=[],n=a.tree_rootNode(e);if(!o.Guard.isShadowRoot(n))return t;const r=n._host;for(const n of r._children)if(o.Guard.isSlotable(n)){l(n)===e&&t.push(n)}return t}function f(e){const t=u(e);if(t.length===e._assignedNodes.length){let n=!0;for(let r=0;r<t.length;r++)if(t[r]!==e._assignedNodes[r]){n=!1;break}n||s(e)}e._assignedNodes=t;for(const n of t)n._assignedSlot=e}t.shadowTree_signalASlotChange=s,t.shadowTree_isConnected=function(e){return o.Guard.isDocumentNode(a.tree_rootNode(e,!0))},t.shadowTree_isAssigned=function(e){return null!==e._assignedSlot},t.shadowTree_findASlot=l,t.shadowTree_findSlotables=u,t.shadowTree_findFlattenedSlotables=function e(t){const n=[],r=a.tree_rootNode(t);if(!o.Guard.isShadowRoot(r))return n;const c=u(t);if(i.isEmpty(c))for(const e of t._children)o.Guard.isSlotable(e)&&c.push(e);for(const t of c)if(o.Guard.isSlot(t)&&o.Guard.isShadowRoot(a.tree_rootNode(t))){const r=e(t);n.push(...r)}else n.push(t);return n},t.shadowTree_assignSlotables=f,t.shadowTree_assignSlotablesForATree=function(e){let t=a.tree_getFirstDescendantNode(e,!0,!1,e=>o.Guard.isSlot(e));for(;null!==t;)f(t),t=a.tree_getNextDescendantNode(e,t,!0,!1,e=>o.Guard.isSlot(e))},t.shadowTree_assignASlot=function(e){const t=l(e);null!==t&&f(t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=/[a-z]([\0-\t\x2D\._a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*-([\0-\t\x2D\._a-z\xB7\xC0-\xD6\xD8-\xF6\xF8-\u037D\u037F-\u1FFF\u200C\u200D\u203F\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uDB7F][\uDC00-\uDFFF])*/,o=new Set(["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"]),i=new Set(["article","aside","blockquote","body","div","footer","h1","h2","h3","h4","h5","h6","header","main","nav","p","section","span"]),a=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),c=new Set(["article","aside","blockquote","body","div","footer","h1","h2","h3","h4","h5","h6","header","main","nav","p","section","span"]);t.customElement_isValidCustomElementName=function(e){return!!r.test(e)&&!o.has(e)},t.customElement_isValidElementName=function(e){return i.has(e)},t.customElement_isVoidElementName=function(e){return a.has(e)},t.customElement_isValidShadowHostName=function(e){return c.has(e)},t.customElement_enqueueACustomElementUpgradeReaction=function(e,t){},t.customElement_enqueueACustomElementCallbackReaction=function(e,t,n){},t.customElement_upgrade=function(e,t){},t.customElement_tryToUpgrade=function(e){},t.customElement_lookUpACustomElementDefinition=function(e,t,n,r){return null}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(222)(Object,"create");e.exports=r},function(e,t,n){var r=n(224);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(982);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(545)),o=a(n(556)),i="function"==typeof o.default&&"symbol"==typeof r.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===i(r.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":i(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return v}));var r=n(0),o=n.n(r),i=n(7),a=n.n(i),c=n(1),s=n.n(c);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return h(this,n)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(i,e);var t,n,r,o=p(i);function i(){var e;u(this,i);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=o.call.apply(o,[this].concat(n))).removeContainer=function(){e.container&&(a.a.unmountComponentAtNode(e.container),e.container.parentNode.removeChild(e.container),e.container=null)},e.renderComponent=function(t,n){var r=e.props,o=r.visible,i=r.getComponent,c=r.forceRender,s=r.getContainer,l=r.parent;(o||l._component||c)&&(e.container||(e.container=s()),a.a.unstable_renderSubtreeIntoContainer(l,i(t),e.container,(function(){n&&n.call(this)})))},e}return t=i,(n=[{key:"componentDidMount",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentDidUpdate",value:function(){this.props.autoMount&&this.renderComponent()}},{key:"componentWillUnmount",value:function(){this.props.autoDestroy&&this.removeContainer()}},{key:"render",value:function(){return this.props.children({renderComponent:this.renderComponent,removeContainer:this.removeContainer})}}])&&f(t.prototype,n),r&&f(t,r),i}(o.a.Component);v.propTypes={autoMount:s.a.bool,autoDestroy:s.a.bool,visible:s.a.bool,forceRender:s.a.bool,parent:s.a.any,getComponent:s.a.func.isRequired,getContainer:s.a.func.isRequired,children:s.a.func.isRequired},v.defaultProps={autoMount:!0,autoDestroy:!0,forceRender:!1}},function(e,t,n){"use strict";n.d(t,"a",(function(){return v}));var r=n(0),o=n.n(r),i=n(7),a=n.n(i),c=n(1),s=n.n(c);function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return h(this,n)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(i,e);var t,n,r,o=p(i);function i(){return u(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"componentDidMount",value:function(){this.createContainer()}},{key:"componentDidUpdate",value:function(e){var t=this.props.didUpdate;t&&t(e)}},{key:"componentWillUnmount",value:function(){this.removeContainer()}},{key:"createContainer",value:function(){this._container=this.props.getContainer(),this.forceUpdate()}},{key:"removeContainer",value:function(){this._container&&this._container.parentNode.removeChild(this._container)}},{key:"render",value:function(){return this._container?a.a.createPortal(this.props.children,this._container):null}}])&&f(t.prototype,n),r&&f(t,r),i}(o.a.Component);v.propTypes={getContainer:s.a.func.isRequired,children:s.a.node.isRequired,didUpdate:s.a.func}},function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";t.a=function(e){if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();if(n.width||n.height)return!0}return!1}},function(e,t,n){"use strict";e.exports=n(627)},function(e,t,n){"use strict";function r(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";t.a=function(){if("undefined"==typeof navigator||"undefined"==typeof window)return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return!(!/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)&&!/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(null==e?void 0:e.substr(0,4)))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(440),o=n(34),i=n(26),a=n(861),c=n(477),s=n(932);function l(e,t){const n=f(void 0===e||u(e)?e:r.DefaultBuilderOptions),i=u(e)?t:e;let s;if(void 0===i){const e=c.createDocument();s=new a.XMLBuilderImpl(e),d(e,n)}else if(o.isObject(i)){const e=c.createDocument();s=new a.XMLBuilderImpl(e),d(e,n),s.ele(i)}else if(/^\s*</.test(i)){const e=c.createParser().parseFromString(i,"text/xml");c.throwIfParserError(e),s=new a.XMLBuilderImpl(e),d(e,n)}else{const e=c.createDocument();s=new a.XMLBuilderImpl(e),d(e,n);const t=JSON.parse(i);s.ele(t)}return s}function u(e){if(!o.isPlainObject(e))return!1;for(const t in e)if(e.hasOwnProperty(t)&&!r.XMLBuilderOptionKeys.has(t))return!1;return!0}function f(e={}){const t=o.applyDefaults(e,r.DefaultBuilderOptions);if(0===t.convert.att.length||0===t.convert.ins.length||0===t.convert.text.length||0===t.convert.cdata.length||0===t.convert.comment.length)throw new Error("JS object converter strings cannot be zero length.");return t}function d(e,t){e._xmlBuilderOptions=t}t.builder=function(e,t){const n=f(u(e)?e:r.DefaultBuilderOptions),o=i.Guard.isNode(e)||s.isArray(e)?e:t;if(void 0===o)throw new Error("Invalid arguments.");if(s.isArray(o)){const e=[];for(let t=0;t<o.length;t++){const r=new a.XMLBuilderImpl(o[t]);r.set(n),e.push(r)}return e}{const e=new a.XMLBuilderImpl(o);return e.set(n),e}},t.create=l,t.fragment=function(e,t){const n=f(void 0===e||u(e)?e:r.DefaultBuilderOptions),i=u(e)?t:e;let s;if(void 0===i){const e=c.createDocument();d(e,n),s=new a.XMLBuilderImpl(e.createDocumentFragment())}else if(o.isObject(i)){const e=c.createDocument();d(e,n),s=new a.XMLBuilderImpl(e.createDocumentFragment()),s.ele(i)}else if(/^\s*</.test(i)){const e=c.createParser().parseFromString("<TEMP_ROOT>"+i+"</TEMP_ROOT>","text/xml");if(c.throwIfParserError(e),d(e,n),null===e.documentElement)throw new Error("Document element is null.");const t=e.createDocumentFragment();for(const n of e.documentElement.childNodes){const r=e.importNode(n,!0);t.appendChild(r)}s=new a.XMLBuilderImpl(t)}else{const e=c.createDocument();d(e,n),s=new a.XMLBuilderImpl(e.createDocumentFragment());const t=JSON.parse(i);s.ele(t)}return s},t.convert=function(e,t,n){let o,i,a;return u(e)&&void 0!==t?(o=e,i=t,a=n):(o=r.DefaultBuilderOptions,i=e,a=t||void 0),l(o,i).end(a)}},function(e,t,n){var r=n(538);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(105);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(170)("keys"),o=n(132);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(62),o=n(82),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(131)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(104),o=n(549),i=n(171),a=n(169)("IE_PROTO"),c=function(){},s=function(){var e,t=n(239)("iframe"),r=i.length;for(t.style.display="none",n(550).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[i[r]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(c.prototype=r(e),n=new c,c.prototype=null,n[a]=e):n=s(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(83).f,o=n(94),i=n(63)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){t.f=n(63)},function(e,t,n){var r=n(82),o=n(62),i=n(131),a=n(175),c=n(83).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||c(t,e,{value:a.f(e)})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.changeConfirmLocale=function(e){a=e?i(i({},a),e):i({},o.default.Modal)},t.getConfirmLocale=function(){return a};var r,o=(r=n(251))&&r.__esModule?r:{default:r};function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var a=i({},o.default.Modal)},function(e,t,n){"use strict";t.__esModule=!0;var r=i(n(0)),o=i(n(586));function i(e){return e&&e.__esModule?e:{default:e}}t.default=r.default.createContext||o.default,e.exports=t.default},function(e,t,n){var r=n(391);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.getExpandableProps=function(e){var t=e.expandable,n=(0,i.default)(e,["expandable"]);if("expandable"in e)return(0,o.default)((0,o.default)({},n),t);0;return n},t.getDataAndAriaProps=function(e){return Object.keys(e).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)||(t[n]=e[n]),t}),{})},t.INTERNAL_COL_DEFINE=void 0;var o=r(n(57)),i=r(n(71));r(n(86));t.INTERNAL_COL_DEFINE="RC_TABLE_INTERNAL_COL_DEFINE"},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)).createContext(null);t.default=o},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return o.default.Children.forEach(t,(function(t){(null!=t||n.keepEmpty)&&(Array.isArray(t)?r=r.concat(e(t)):(0,i.isFragment)(t)&&t.props?r=r.concat(e(t.props.children,n)):r.push(t))})),r};var o=r(n(0)),i=n(98)},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(67).Symbol;e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=(0,n(0).createContext)({});t.default=r},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(404)),i=r(n(405)),a=r(n(406)),c=r(n(670)),s="${label} is not a valid ${type}",l={locale:"en",Pagination:o.default,DatePicker:i.default,TimePicker:a.default,Calendar:c.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:s,method:s,array:s,object:s,number:s,date:s,boolean:s,integer:s,float:s,regexp:s,email:s,url:s,hex:s},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"}};t.default=l},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.useLocaleReceiver=function(e,t){var n=u.useContext(d.default);return[u.useMemo((function(){var r=t||f.default[e||"global"],o=e&&n?n[e]:{};return(0,i.default)((0,i.default)({},"function"==typeof r?r():r),o||{})}),[e,t,n])]},t.default=void 0;var i=r(n(14)),a=r(n(66)),c=r(n(72)),s=r(n(73)),l=r(n(74)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),f=r(n(671)),d=r(n(407));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var h=function(e){(0,s.default)(n,e);var t=(0,l.default)(n);function n(){return(0,a.default)(this,n),t.apply(this,arguments)}return(0,c.default)(n,[{key:"getLocale",value:function(){var e=this.props,t=e.componentName,n=e.defaultLocale||f.default[t||"global"],r=this.context,o=t&&r?r[t]:{};return(0,i.default)((0,i.default)({},"function"==typeof n?n():n),o||{})}},{key:"getLocaleCode",value:function(){var e=this.context,t=e&&e.locale;return e&&e.exist&&!t?f.default.locale:t}},{key:"render",value:function(){return this.props.children(this.getLocale(),this.getLocaleCode(),this.context)}}]),n}(u.Component);t.default=h,h.defaultProps={componentName:"global"},h.contextType=d.default},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.withConfigConsumer=function(e){return function(t){var n=function(n){return a.createElement(u,null,(function(r){var o=e.prefixCls,c=(0,r.getPrefixCls)(o,n.prefixCls);return a.createElement(t,(0,i.default)({},r,n,{prefixCls:c}))}))},r=t.constructor,o=r&&r.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(o,")"),n}},t.ConfigConsumer=t.ConfigContext=void 0;var i=r(n(14)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),c=r(n(672));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var l=a.createContext({getPrefixCls:function(e,t){return t||(e?"ant-".concat(e):"ant")},renderEmpty:c.default});t.ConfigContext=l;var u=l.Consumer;t.ConfigConsumer=u},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(676))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.warning=function(e,t){(0,l.default)(e,"[@ant-design/icons] ".concat(t))},t.isIconDefinition=function(e){return"object"===(0,a.default)(e)&&"string"==typeof e.name&&"string"==typeof e.theme&&("object"===(0,a.default)(e.icon)||"function"==typeof e.icon)},t.normalizeAttrs=d,t.generate=function e(t,n,r){if(!r)return s.default.createElement(t.tag,(0,i.default)({key:n},d(t.attrs)),(t.children||[]).map((function(r,o){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(o))})));return s.default.createElement(t.tag,(0,i.default)((0,i.default)({key:n},d(t.attrs)),r),(t.children||[]).map((function(r,o){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(o))})))},t.getSecondaryColor=function(e){return(0,c.generate)(e)[0]},t.normalizeTwoToneColors=function(e){if(!e)return[];return Array.isArray(e)?e:[e]},t.useInsertStyles=t.iconStyles=t.svgBaseProps=void 0;var i=o(n(57)),a=o(n(9)),c=n(1053),s=r(n(0)),l=o(n(86)),u=n(411),f=o(n(185));function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}t.svgBaseProps={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"};var p="\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n";t.iconStyles=p;t.useInsertStyles=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,t=(0,s.useContext)(f.default),n=t.csp;(0,s.useEffect)((function(){(0,u.updateCSS)(e,"@ant-design-icons",{prepend:!0,csp:n})}),[])}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(713))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.getTransitionName=void 0;var r=function(){return{height:0,opacity:0}},o=function(e){return{height:e.scrollHeight,opacity:1}},i=function(e,t){return"height"===t.propertyName},a={motionName:"ant-motion-collapse",onAppearStart:r,onEnterStart:r,onAppearActive:o,onEnterActive:o,onLeaveStart:function(e){return{height:e.offsetHeight}},onLeaveActive:r,onAppearEnd:i,onEnterEnd:i,onLeaveEnd:i,motionDeadline:500};t.getTransitionName=function(e,t,n){return void 0!==n?n:"".concat(e,"-").concat(t)};var c=a;t.default=c},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.arrDel=function(e,t){var n=e.slice(),r=n.indexOf(t);r>=0&&n.splice(r,1);return n},t.arrAdd=function(e,t){var n=e.slice();-1===n.indexOf(t)&&n.push(t);return n},t.posToArr=u,t.getPosition=function(e,t){return"".concat(e,"-").concat(t)},t.isTreeNode=function(e){return e&&e.type&&e.type.isTreeNode},t.getDragChildrenKeys=function(e,t){var n=[];return function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.forEach((function(t){var r=t.key,o=t.children;n.push(r),e(o)}))}(t[e].children),n},t.isLastChild=f,t.isFirstChild=d,t.calcDropPosition=function(e,t,n,r,o,i,a,c,s,l){var u,p=e.clientX,h=e.clientY,m=e.target.getBoundingClientRect(),v=m.top,y=m.height,_=(("rtl"===l?-1:1)*(((null==o?void 0:o.x)||0)-p)-12)/r,g=c[n.props.eventKey];if(h<v+y/2){var b=a.findIndex((function(e){return e.data.key===g.key})),M=a[b<=0?0:b-1].data.key;g=c[M]}var w=g.key,O=g,S=g.key,C=0,x=0;if(!s.includes(w))for(var k=0;k<_&&f(g);k+=1)g=g.parent,x+=1;var L=g.node,E=!0;d(g)&&0===g.level&&h<v+y/2&&i({dropNode:L,dropPosition:-1})&&g.key===n.props.eventKey?C=-1:(O.children||[]).length&&s.includes(S)?i({dropNode:L,dropPosition:0})?C=0:E=!1:0===x?_>-1.5?i({dropNode:L,dropPosition:1})?C=1:E=!1:i({dropNode:L,dropPosition:0})?C=0:i({dropNode:L,dropPosition:1})?C=1:E=!1:i({dropNode:L,dropPosition:1})?C=1:E=!1;return{dropPosition:C,dropLevelOffset:x,dropTargetKey:g.key,dropTargetPos:g.pos,dragOverNodeKey:S,dropContainerKey:0===C?null:(null===(u=g.parent)||void 0===u?void 0:u.key)||null,dropAllowed:E}},t.calcSelectedKeys=function(e,t){if(!e)return;if(t.multiple)return e.slice();if(e.length)return[e[0]];return e},t.convertDataToTree=function e(t,n){if(!t)return[];var r=(n||{}).processProps,o=void 0===r?p:r;return(Array.isArray(t)?t:[t]).map((function(t){var r=t.children,i=(0,a.default)(t,["children"]),s=e(r,n);return c.default.createElement(l.default,o(i),s)}))},t.parseCheckedKeys=function(e){if(!e)return null;var t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else{if("object"!==(0,i.default)(e))return(0,s.default)(!1,"`checkedKeys` is not an array or an object"),null;t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0}}return t},t.conductExpandParent=function(e,t){var n=new Set;return(e||[]).forEach((function(e){!function e(r){if(n.has(r))return;var o=t[r];if(!o)return;n.add(r);var i=o.parent;if(o.node.disabled)return;i&&e(i.key)}(e)})),(0,o.default)(n)},t.getDataAndAria=function(e){var t={};return Object.keys(e).forEach((function(n){(n.startsWith("data-")||n.startsWith("aria-"))&&(t[n]=e[n])})),t};var o=r(n(58)),i=r(n(9)),a=r(n(71)),c=r(n(0)),s=r(n(86)),l=r(n(736));function u(e){return e.split("-")}function f(e){if(e.parent){var t=u(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function d(e){var t=u(e.pos);return 0===Number(t[t.length-1])}var p=function(e){return e}},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t||{},r=n.defaultValue,o=n.value,c=n.onChange,s=n.postState,l=a.useState((function(){return void 0!==o?o:void 0!==r?"function"==typeof r?r():r:"function"==typeof e?e():e})),u=(0,i.default)(l,2),f=u[0],d=u[1],p=void 0!==o?o:f;s&&(p=s(p));var h=a.useRef(!0);return a.useEffect((function(){h.current?h.current=!1:void 0===o&&d(o)}),[o]),[p,function(e){d(e),p!==e&&c&&c(e,p)}]};var i=o(n(32)),a=r(n(0))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=(0,n(0).createContext)({inlineCollapsed:!1});t.default=r},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(14)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(422)),l=r(n(3)),u=n(137),f=n(33),d=r(n(197)),p=r(n(87));function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}var m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},v=function(e,t){var n,r=c.useContext(d.default),o=c.useContext(f.ConfigContext),h=o.getPrefixCls,v=o.direction,y=c.useRef(),_=(0,u.composeRef)(t,y);c.useEffect((function(){(0,p.default)(!("optionType"in e),"Radio","`optionType` is only support in Radio.Group.")}),[]);var g=e.prefixCls,b=e.className,M=e.children,w=e.style,O=m(e,["prefixCls","className","children","style"]),S=h("radio",g),C=(0,a.default)({},O);r&&(C.name=r.name,C.onChange=function(t){var n,o;null===(n=e.onChange)||void 0===n||n.call(e,t),null===(o=null==r?void 0:r.onChange)||void 0===o||o.call(r,t)},C.checked=e.value===r.value,C.disabled=e.disabled||r.disabled);var x=(0,l.default)("".concat(S,"-wrapper"),(n={},(0,i.default)(n,"".concat(S,"-wrapper-checked"),C.checked),(0,i.default)(n,"".concat(S,"-wrapper-disabled"),C.disabled),(0,i.default)(n,"".concat(S,"-wrapper-rtl"),"rtl"===v),n),b);return c.createElement("label",{className:x,style:w,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave},c.createElement(s.default,(0,a.default)({},C,{prefixCls:S,ref:_})),void 0!==M?c.createElement("span",null,M):null)},y=c.forwardRef(v);y.displayName="Radio",y.defaultProps={type:"radio"};var _=y;t.default=_},function(e,t,n){"use strict";var r=n(9);function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.RadioGroupContextProvider=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(i,c,s):i[c]=e[c]}i.default=e,n&&n.set(e,i);return i}(n(0)).createContext(null),a=i.Provider;t.RadioGroupContextProvider=a;var c=i;t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getColumnKey=function(e,t){if("key"in e&&void 0!==e.key&&null!==e.key)return e.key;if(e.dataIndex)return Array.isArray(e.dataIndex)?e.dataIndex.join("."):e.dataIndex;return t},t.getColumnPos=function(e,t){return t?"".concat(t,"-").concat(e):"".concat(e)},t.renderColumnTitle=function(e,t){if("function"==typeof e)return e(t);return e}},function(e,t,n){var r=n(107)(n(67),"Map");e.exports=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(24),i=n(442);t.ObjectWriterImpl=class{constructor(e){this._builderOptions=e}serialize(e,t){const n=r.applyDefaults(t,{format:"object",wellFormed:!1});let o=[],a=0,c=[o];const s=new i.PreSerializer;return s.setCallbacks({beginElement:e=>{const t=this._addElement(o,e);a++,c.length>a?c[a]=t:c.push(t),o=t},endElement:()=>{o=c[--a]},attribute:(e,t)=>{this._addAttr(o,e,t)},comment:e=>{this._addComment(o,e)},text:e=>{this._addText(o,e)},instruction:(e,t)=>{this._addInstruction(o,e+" "+t)},cdata:e=>{this._addCDATA(o,e)}}),s.serialize(e,n.wellFormed),this._process(o)}_process(e){if(0===e.length)return{};const t={};let n=!1,i=0,a=0,c=0,s=0;for(let r=0;r<e.length;r++){const o=e[r],l=Object.keys(o)[0];switch(l){case"@":continue;case"#":i++;break;case"!":a++;break;case"?":c++;break;case"$":s++;break;default:t[l]?n=!0:t[l]=!0}}if(1===i&&1===e.length&&r.isString(e[0]["#"]))return e[0]["#"];if(n){const t=[],n={"#":t};for(let n=0;n<e.length;n++){const i=e[n],a=Object.keys(i)[0];switch(a){case"@":const e=i["@"],n=Object.keys(e);1===n.length?t.push({[this._getAttrKey()+n[0]]:e[n[0]]}):t.push({[this._getAttrKey()]:i["@"]});break;case"#":const c=this._getNodeKey(o.NodeType.Text);t.push({[c]:i["#"]});break;case"!":const s=this._getNodeKey(o.NodeType.Comment);t.push({[s]:i["!"]});break;case"?":const l=this._getNodeKey(o.NodeType.ProcessingInstruction);t.push({[l]:i["?"]});break;case"$":const u=this._getNodeKey(o.NodeType.CData);t.push({[u]:i.$});break;default:const f=i;if(0!==f[a].length&&r.isArray(f[a][0])){const e=[],n=f[a];for(let t=0;t<n.length;t++)e.push(this._process(n[t]));t.push({[a]:e})}else t.push({[a]:this._process(f[a])})}}return n}{let t=1,n=1,l=1,u=1;const f={};for(let d=0;d<e.length;d++){const p=e[d],h=Object.keys(p)[0];switch(h){case"@":const e=p["@"],d=Object.keys(e);1===d.length?f[this._getAttrKey()+d[0]]=e[d[0]]:f[this._getAttrKey()]=p["@"];break;case"#":f[i>1?this._getNodeKey(o.NodeType.Text)+(t++).toString():this._getNodeKey(o.NodeType.Text)]=p["#"];break;case"!":f[a>1?this._getNodeKey(o.NodeType.Comment)+(n++).toString():this._getNodeKey(o.NodeType.Comment)]=p["!"];break;case"?":f[c>1?this._getNodeKey(o.NodeType.ProcessingInstruction)+(l++).toString():this._getNodeKey(o.NodeType.ProcessingInstruction)]=p["?"];break;case"$":f[s>1?this._getNodeKey(o.NodeType.CData)+(u++).toString():this._getNodeKey(o.NodeType.CData)]=p.$;break;default:const m=p;if(0!==m[h].length&&r.isArray(m[h][0])){const e=[],t=m[h];for(let n=0;n<t.length;n++)e.push(this._process(t[n]));f[h]=e}else f[h]=this._process(m[h])}}return f}}_addAttr(e,t,n){if(0===e.length)e.push({"@":{[t]:n}});else{const r=e[e.length-1];this._isAttrNode(r)?r["@"][t]=n:e.push({"@":{[t]:n}})}}_addText(e,t){if(0===e.length)e.push({"#":t});else{const n=e[e.length-1];this._isTextNode(n)?r.isArray(n["#"])?n["#"].push(t):n["#"]=[n["#"],t]:e.push({"#":t})}}_addComment(e,t){if(0===e.length)e.push({"!":t});else{const n=e[e.length-1];this._isCommentNode(n)?r.isArray(n["!"])?n["!"].push(t):n["!"]=[n["!"],t]:e.push({"!":t})}}_addInstruction(e,t){if(0===e.length)e.push({"?":t});else{const n=e[e.length-1];this._isInstructionNode(n)?r.isArray(n["?"])?n["?"].push(t):n["?"]=[n["?"],t]:e.push({"?":t})}}_addCDATA(e,t){if(0===e.length)e.push({$:t});else{const n=e[e.length-1];this._isCDATANode(n)?r.isArray(n.$)?n.$.push(t):n.$=[n.$,t]:e.push({$:t})}}_addElement(e,t){const n=[];if(0===e.length)e.push({[t]:n});else{const o=e[e.length-1];if(this._isElementNode(o,t))if(0!==o[t].length&&r.isArray(o[t][0])){o[t].push(n)}else o[t]=[o[t],n];else e.push({[t]:n})}return n}_isAttrNode(e){return"@"in e}_isTextNode(e){return"#"in e}_isCommentNode(e){return"!"in e}_isInstructionNode(e){return"?"in e}_isCDATANode(e){return"$"in e}_isElementNode(e,t){return t in e}_getAttrKey(){return this._builderOptions.convert.att}_getNodeKey(e){switch(e){case o.NodeType.Comment:return this._builderOptions.convert.comment;case o.NodeType.Text:return this._builderOptions.convert.text;case o.NodeType.ProcessingInstruction:return this._builderOptions.convert.ins;case o.NodeType.CData:return this._builderOptions.convert.cdata;default:throw new Error("Invalid node type.")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Surrogate=/[\uD800-\uDFFF]/,t.ScalarValue=/[\uD800-\uDFFF]/,t.NonCharacter=/[\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]/,t.ASCIICodePoint=/[\u0000-\u007F]/,t.ASCIITabOrNewLine=/[\t\n\r]/,t.ASCIIWhiteSpace=/[\t\n\f\r ]/,t.C0Control=/[\u0000-\u001F]/,t.C0ControlOrSpace=/[\u0000-\u001F ]/,t.Control=/[\u0000-\u001F\u007F-\u009F]/,t.ASCIIDigit=/[0-9]/,t.ASCIIUpperHexDigit=/[0-9A-F]/,t.ASCIILowerHexDigit=/[0-9a-f]/,t.ASCIIHexDigit=/[0-9A-Fa-f]/,t.ASCIIUpperAlpha=/[A-Z]/,t.ASCIILowerAlpha=/[a-z]/,t.ASCIIAlpha=/[A-Za-z]/,t.ASCIIAlphanumeric=/[0-9A-Za-z]/},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(24),i=n(26),a=n(454),c=n(207),s=n(41),l=n(52),u=n(147),f=n(89);function d(e,t){void 0===t&&(t=null);const n=p(e,t,new Date,{});return n._isTrusted=!0,n}function p(e,t,n,o){const i=new e("");return i._initializedFlag=!0,i._timeStamp=n.getTime(),Object.assign(i,o),r.dom.features.steps&&f.dom_runEventConstructingSteps(i),i}function h(e,t,n=!1,r={value:!1}){let a=!1;e._dispatchFlag=!0;let c=t;if(n){const e=t._associatedDocument;i.Guard.isDocumentNode(e)&&(c=e)}let s=null,f=l.tree_retarget(e._relatedTarget,t);if(t!==f||t===e._relatedTarget){let n=[];for(const r of e._touchTargetList)n.push(l.tree_retarget(r,t));m(e,t,c,f,n,!1);const d=i.Guard.isMouseEvent(e)&&"click"===e._type;d&&void 0!==t._activationBehavior&&(s=t);let p=i.Guard.isSlotable(t)&&u.shadowTree_isAssigned(t)?t:null,h=!1,y=t._getTheParent(e);for(;null!==y&&i.Guard.isNode(y);){if(null!==p){if(!i.Guard.isSlot(y))throw new Error("Parent node of a slotable should be a slot.");p=null;const e=l.tree_rootNode(y,!0);i.Guard.isShadowRoot(e)&&"closed"===e._mode&&(h=!0)}i.Guard.isSlotable(y)&&u.shadowTree_isAssigned(y)&&(p=y),f=l.tree_retarget(e._relatedTarget,y),n=[];for(const t of e._touchTargetList)n.push(l.tree_retarget(t,y));i.Guard.isWindow(y)||i.Guard.isNode(y)&&i.Guard.isNode(t)&&l.tree_isAncestorOf(l.tree_rootNode(t,!0),y,!0,!0)?(d&&e._bubbles&&null===s&&y._activationBehavior&&(s=y),m(e,y,null,f,n,h)):y===f?y=null:(t=y,d&&null===s&&t._activationBehavior&&(s=t),m(e,y,t,f,n,h)),null!==y&&(y=y._getTheParent(e)),h=!1}let _=null;const g=e._path;for(let e=g.length-1;e>=0;e--){const t=g[e];if(null!==t.shadowAdjustedTarget){_=t;break}}if(null!==_)if(i.Guard.isNode(_.shadowAdjustedTarget)&&i.Guard.isShadowRoot(l.tree_rootNode(_.shadowAdjustedTarget,!0)))a=!0;else if(i.Guard.isNode(_.relatedTarget)&&i.Guard.isShadowRoot(l.tree_rootNode(_.relatedTarget,!0)))a=!0;else for(let e=0;e<_.touchTargetList.length;e++){const t=_.touchTargetList[e];if(i.Guard.isNode(t)&&i.Guard.isShadowRoot(l.tree_rootNode(t,!0))){a=!0;break}}null!==s&&void 0!==s._legacyPreActivationBehavior&&s._legacyPreActivationBehavior(e);for(let t=g.length-1;t>=0;t--){const n=g[t];null!==n.shadowAdjustedTarget?e._eventPhase=o.EventPhase.AtTarget:e._eventPhase=o.EventPhase.Capturing,v(n,e,"capturing",r)}for(let t=0;t<g.length;t++){const n=g[t];if(null!==n.shadowAdjustedTarget)e._eventPhase=o.EventPhase.AtTarget;else{if(!e._bubbles)continue;e._eventPhase=o.EventPhase.Bubbling}v(n,e,"bubbling",r)}}return e._eventPhase=o.EventPhase.None,e._currentTarget=null,e._path=[],e._dispatchFlag=!1,e._stopPropagationFlag=!1,e._stopImmediatePropagationFlag=!1,a&&(e._target=null,e._relatedTarget=null,e._touchTargetList=[]),null!==s&&(e._canceledFlag||void 0===s._activationBehavior?void 0!==s._legacyCanceledActivationBehavior&&s._legacyCanceledActivationBehavior(e):s._activationBehavior(e)),!e._canceledFlag}function m(e,t,n,r,o,a){let c=!1;i.Guard.isNode(t)&&i.Guard.isShadowRoot(l.tree_rootNode(t))&&(c=!0);let s=!1;i.Guard.isShadowRoot(t)&&"closed"===t._mode&&(s=!0),e._path.push({invocationTarget:t,invocationTargetInShadowTree:c,shadowAdjustedTarget:n,relatedTarget:r,touchTargetList:o,rootOfClosedTree:s,slotInClosedTree:a})}function v(e,t,n,r={value:!1}){const o=t._path;let i=-1;for(let t=0;t<o.length;t++)if(o[t]===e){i=t;break}if(-1!==i){let e=o[i];null!==e.shadowAdjustedTarget?t._target=e.shadowAdjustedTarget:i>0&&(e=o[i-1],null!==e.shadowAdjustedTarget&&(t._target=e.shadowAdjustedTarget))}if(t._relatedTarget=e.relatedTarget,t._touchTargetList=e.touchTargetList,t._stopPropagationFlag)return;t._currentTarget=e.invocationTarget;const a=t._currentTarget._eventListenerList;let c=new Array(...a);if(!y(t,c,n,e,r)&&t._isTrusted){const o=t._type;"animationend"===o?t._type="webkitAnimationEnd":"animationiteration"===o?t._type="webkitAnimationIteration":"animationstart"===o?t._type="webkitAnimationStart":"transitionend"===o&&(t._type="webkitTransitionEnd"),y(t,c,n,e,r),t._type=o}}function y(e,t,n,r,o={value:!1}){let a=!1;for(let c=0;c<t.length;c++){const s=t[c];if(!s.removed){if(e._type!==s.type)continue;if(a=!0,"capturing"===n&&!s.capture)continue;if("bubbling"===n&&s.capture)continue;if(s.once&&null!==e._currentTarget){const t=e._currentTarget;let n=-1;for(let e=0;e<t._eventListenerList.length;e++)if(t._eventListenerList[e]===s){n=e;break}-1!==n&&t._eventListenerList.splice(n,1)}const t=void 0;let c=void 0;i.Guard.isWindow(t)&&(c=t._currentEvent,!1===r.invocationTargetInShadowTree&&(t._currentEvent=e)),s.passive&&(e._inPassiveListenerFlag=!0);try{s.callback.handleEvent.call(e._currentTarget,e)}catch(e){o.value=!0}if(s.passive&&(e._inPassiveListenerFlag=!1),i.Guard.isWindow(t)&&(t._currentEvent=c),e._stopImmediatePropagationFlag)return a}}return a}function _(e,t){return null}function g(e,t){return null}function b(e,t){}function M(e,t){}t.event_setTheCanceledFlag=function(e){e._cancelable&&!e._inPassiveListenerFlag&&(e._canceledFlag=!0)},t.event_initialize=function(e,t,n,r){e._initializedFlag=!0,e._stopPropagationFlag=!1,e._stopImmediatePropagationFlag=!1,e._canceledFlag=!1,e._isTrusted=!1,e._target=null,e._type=t,e._bubbles=n,e._cancelable=r},t.event_createAnEvent=d,t.event_innerEventCreationSteps=p,t.event_dispatch=h,t.event_appendToAnEventPath=m,t.event_invoke=v,t.event_innerInvoke=y,t.event_fireAnEvent=function(e,t,n,r,o){void 0===n&&(n=c.EventImpl);const i=d(n);if(i._type=e,r)for(const e in r){i[e]=r[e]}return h(i,t,o)},t.event_createLegacyEvent=function(e){let t=null;switch(e.toLowerCase()){case"beforeunloadevent":case"compositionevent":break;case"customevent":t=a.CustomEventImpl;break;case"devicemotionevent":case"deviceorientationevent":case"dragevent":break;case"event":case"events":t=c.EventImpl}if(null===t)throw new s.NotSupportedError(`Event constructor not found for interface ${e}.`);const n=new t("");return n._type="",n._timeStamp=(new Date).getTime(),n._isTrusted=!1,n._initializedFlag=!1,n},t.event_getterEventHandlerIDLAttribute=function(e,t){return null},t.event_setterEventHandlerIDLAttribute=function(e,t,n){},t.event_determineTheTargetOfAnEventHandler=_,t.event_getTheCurrentValueOfAnEventHandler=g,t.event_activateAnEventHandler=b,t.event_deactivateAnEventHandler=M},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.AbstractRangeImpl=class{get _startNode(){return this._start[0]}get _startOffset(){return this._start[1]}get _endNode(){return this._end[0]}get _endOffset(){return this._end[1]}get _collapsed(){return this._start[0]===this._end[0]&&this._start[1]===this._end[1]}get startContainer(){return this._startNode}get startOffset(){return this._startOffset}get endContainer(){return this._endNode}get endOffset(){return this._endOffset}get collapsed(){return this._collapsed}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Surrogate=/[\uD800-\uDFFF]/,t.ScalarValue=/[\uD800-\uDFFF]/,t.NonCharacter=/[\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]/,t.ASCIICodePoint=/[\u0000-\u007F]/,t.ASCIITabOrNewLine=/[\t\n\r]/,t.ASCIIWhiteSpace=/[\t\n\f\r ]/,t.C0Control=/[\u0000-\u001F]/,t.C0ControlOrSpace=/[\u0000-\u001F ]/,t.Control=/[\u0000-\u001F\u007F-\u009F]/,t.ASCIIDigit=/[0-9]/,t.ASCIIUpperHexDigit=/[0-9A-F]/,t.ASCIILowerHexDigit=/[0-9a-f]/,t.ASCIIHexDigit=/[0-9A-Fa-f]/,t.ASCIIUpperAlpha=/[A-Z]/,t.ASCIILowerAlpha=/[a-z]/,t.ASCIIAlpha=/[A-Za-z]/,t.ASCIIAlphanumeric=/[0-9A-Za-z]/},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(146),i=n(20),a=n(47);class c extends o.CharacterDataImpl{constructor(e=""){super(e),this._name="",this._assignedSlot=null}get wholeText(){let e="";for(const t of i.text_contiguousTextNodes(this,!0))e+=t._data;return e}splitText(e){return i.text_split(this,e)}get assignedSlot(){throw new Error("Mixin: Slotable not implemented.")}static _create(e,t=""){const n=new c(t);return n._nodeDocument=e,n}}t.TextImpl=c,a.idl_defineConst(c.prototype,"_nodeType",r.NodeType.Text)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(20),i=n(47);class a{constructor(e,t){this._target=null,this._relatedTarget=null,this._touchTargetList=[],this._path=[],this._currentTarget=null,this._eventPhase=r.EventPhase.None,this._stopPropagationFlag=!1,this._stopImmediatePropagationFlag=!1,this._canceledFlag=!1,this._inPassiveListenerFlag=!1,this._composedFlag=!1,this._initializedFlag=!1,this._dispatchFlag=!1,this._isTrusted=!1,this._bubbles=!1,this._cancelable=!1,this._type=e,t&&(this._bubbles=t.bubbles||!1,this._cancelable=t.cancelable||!1,this._composedFlag=t.composed||!1),this._initializedFlag=!0,this._timeStamp=(new Date).getTime()}get type(){return this._type}get target(){return this._target}get srcElement(){return this._target}get currentTarget(){return this._currentTarget}composedPath(){const e=[],t=this._path;if(0===t.length)return e;const n=this._currentTarget;if(null===n)throw new Error("Event currentTarget is null.");e.push(n);let r=0,o=0,i=t.length-1;for(;i>=0;){if(t[i].rootOfClosedTree&&o++,t[i].invocationTarget===n){r=i;break}t[i].slotInClosedTree&&o--,i--}let a=o,c=o;for(i=r-1;i>=0;)t[i].rootOfClosedTree&&a++,a<=c&&e.unshift(t[i].invocationTarget),t[i].slotInClosedTree&&(a--,a<c&&(c=a)),i--;for(a=o,c=o,i=r+1;i<t.length;)t[i].slotInClosedTree&&a++,a<=c&&e.push(t[i].invocationTarget),t[i].rootOfClosedTree&&(a--,a<c&&(c=a)),i++;return e}get eventPhase(){return this._eventPhase}stopPropagation(){this._stopPropagationFlag=!0}get cancelBubble(){return this._stopPropagationFlag}set cancelBubble(e){e&&this.stopPropagation()}stopImmediatePropagation(){this._stopPropagationFlag=!0,this._stopImmediatePropagationFlag=!0}get bubbles(){return this._bubbles}get cancelable(){return this._cancelable}get returnValue(){return!this._canceledFlag}set returnValue(e){e||o.event_setTheCanceledFlag(this)}preventDefault(){o.event_setTheCanceledFlag(this)}get defaultPrevented(){return this._canceledFlag}get composed(){return this._composedFlag}get isTrusted(){return this._isTrusted}get timeStamp(){return this._timeStamp}initEvent(e,t=!1,n=!1){this._dispatchFlag||o.event_initialize(this,e,t,n)}}t.EventImpl=a,a.NONE=0,a.CAPTURING_PHASE=1,a.AT_TARGET=2,a.BUBBLING_PHASE=3,i.idl_defineConst(a.prototype,"NONE",0),i.idl_defineConst(a.prototype,"CAPTURING_PHASE",1),i.idl_defineConst(a.prototype,"AT_TARGET",2),i.idl_defineConst(a.prototype,"BUBBLING_PHASE",3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(96),i=n(47);class a extends o.NodeImpl{constructor(e=null){super(),this._children=new Set,this._host=e}getElementById(e){throw new Error("Mixin: NonElementParentNode not implemented.")}get children(){throw new Error("Mixin: ParentNode not implemented.")}get firstElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get lastElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get childElementCount(){throw new Error("Mixin: ParentNode not implemented.")}prepend(...e){throw new Error("Mixin: ParentNode not implemented.")}append(...e){throw new Error("Mixin: ParentNode not implemented.")}querySelector(e){throw new Error("Mixin: ParentNode not implemented.")}querySelectorAll(e){throw new Error("Mixin: ParentNode not implemented.")}static _create(e,t=null){const n=new a(t);return n._nodeDocument=e,n}}t.DocumentFragmentImpl=a,i.idl_defineConst(a.prototype,"_nodeType",r.NodeType.DocumentFragment)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(24),i=n(41),a=n(96),c=n(26),s=n(34),l=n(46),u=n(449),f=n(20),d=n(47);class p extends a.NodeImpl{constructor(){super(),this._children=new Set,this._encoding={name:"UTF-8",labels:["unicode-1-1-utf-8","utf-8","utf8"]},this._contentType="application/xml",this._URL={scheme:"about",username:"",password:"",host:null,port:null,path:["blank"],query:null,fragment:null,_cannotBeABaseURLFlag:!0,_blobURLEntry:null},this._origin=null,this._type="xml",this._mode="no-quirks",this._documentElement=null,this._hasNamespaces=!1,this._nodeDocumentOverwrite=null}get _nodeDocument(){return this._nodeDocumentOverwrite||this}set _nodeDocument(e){this._nodeDocumentOverwrite=e}get implementation(){return this._implementation||(this._implementation=f.create_domImplementation(this))}get URL(){return u.urlSerializer(this._URL)}get documentURI(){return this.URL}get origin(){return"null"}get compatMode(){return"quirks"===this._mode?"BackCompat":"CSS1Compat"}get characterSet(){return this._encoding.name}get charset(){return this._encoding.name}get inputEncoding(){return this._encoding.name}get contentType(){return this._contentType}get doctype(){for(const e of this._children)if(c.Guard.isDocumentTypeNode(e))return e;return null}get documentElement(){return this._documentElement}getElementsByTagName(e){return f.node_listOfElementsWithQualifiedName(e,this)}getElementsByTagNameNS(e,t){return f.node_listOfElementsWithNamespace(e,t,this)}getElementsByClassName(e){return f.node_listOfElementsWithClassNames(e,this)}createElement(e,t){if(!f.xml_isName(e))throw new i.InvalidCharacterError;"html"===this._type&&(e=e.toLowerCase());let n=null;void 0!==t&&(n=s.isString(t)?t:t.is);const r="html"===this._type||"application/xhtml+xml"===this._contentType?l.namespace.HTML:null;return f.element_createAnElement(this,e,r,null,n,!0)}createElementNS(e,t,n){return f.document_internalCreateElementNS(this,e,t,n)}createDocumentFragment(){return f.create_documentFragment(this)}createTextNode(e){return f.create_text(this,e)}createCDATASection(e){if("html"===this._type)throw new i.NotSupportedError;if(-1!==e.indexOf("]]>"))throw new i.InvalidCharacterError;return f.create_cdataSection(this,e)}createComment(e){return f.create_comment(this,e)}createProcessingInstruction(e,t){if(!f.xml_isName(e))throw new i.InvalidCharacterError;if(-1!==t.indexOf("?>"))throw new i.InvalidCharacterError;return f.create_processingInstruction(this,e,t)}importNode(e,t=!1){if(c.Guard.isDocumentNode(e)||c.Guard.isShadowRoot(e))throw new i.NotSupportedError;return f.node_clone(e,this,t)}adoptNode(e){if(c.Guard.isDocumentNode(e))throw new i.NotSupportedError;if(c.Guard.isShadowRoot(e))throw new i.HierarchyRequestError;return f.document_adopt(e,this),e}createAttribute(e){if(!f.xml_isName(e))throw new i.InvalidCharacterError;"html"===this._type&&(e=e.toLowerCase());return f.create_attr(this,e)}createAttributeNS(e,t){const[n,r,o]=f.namespace_validateAndExtract(e,t),i=f.create_attr(this,o);return i._namespace=n,i._namespacePrefix=r,i}createEvent(e){return f.event_createLegacyEvent(e)}createRange(){const e=f.create_range();return e._start=[this,0],e._end=[this,0],e}createNodeIterator(e,t=o.WhatToShow.All,n=null){const r=f.create_nodeIterator(e,e,!0);return r._whatToShow=t,r._iteratorCollection=f.create_nodeList(e),s.isFunction(n)?(r._filter=f.create_nodeFilter(),r._filter.acceptNode=n):r._filter=n,r}createTreeWalker(e,t=o.WhatToShow.All,n=null){const r=f.create_treeWalker(e,e);return r._whatToShow=t,s.isFunction(n)?(r._filter=f.create_nodeFilter(),r._filter.acceptNode=n):r._filter=n,r}_getTheParent(e){return"load"===e._type?null:r.dom.window}getElementById(e){throw new Error("Mixin: NonElementParentNode not implemented.")}get children(){throw new Error("Mixin: ParentNode not implemented.")}get firstElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get lastElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get childElementCount(){throw new Error("Mixin: ParentNode not implemented.")}prepend(...e){throw new Error("Mixin: ParentNode not implemented.")}append(...e){throw new Error("Mixin: ParentNode not implemented.")}querySelector(e){throw new Error("Mixin: ParentNode not implemented.")}querySelectorAll(e){throw new Error("Mixin: ParentNode not implemented.")}}t.DocumentImpl=p,d.idl_defineConst(p.prototype,"_nodeType",o.NodeType.Document)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(96),i=n(41),a=n(46),c=n(20),s=n(47);class l extends o.NodeImpl{constructor(){super(),this._children=new Set,this._namespace=null,this._namespacePrefix=null,this._localName="",this._customElementState="undefined",this._customElementDefinition=null,this._is=null,this._shadowRoot=null,this._attributeList=c.create_namedNodeMap(this),this._attributeChangeSteps=[],this._name="",this._assignedSlot=null}get namespaceURI(){return this._namespace}get prefix(){return this._namespacePrefix}get localName(){return this._localName}get tagName(){return this._htmlUppercasedQualifiedName}get id(){return c.element_getAnAttributeValue(this,"id")}set id(e){c.element_setAnAttributeValue(this,"id",e)}get className(){return c.element_getAnAttributeValue(this,"class")}set className(e){c.element_setAnAttributeValue(this,"class",e)}get classList(){let e=c.element_getAnAttributeByName("class",this);return null===e&&(e=c.create_attr(this._nodeDocument,"class")),c.create_domTokenList(this,e)}get slot(){return c.element_getAnAttributeValue(this,"slot")}set slot(e){c.element_setAnAttributeValue(this,"slot",e)}hasAttributes(){return 0!==this._attributeList.length}get attributes(){return this._attributeList}getAttributeNames(){const e=[];for(const t of this._attributeList)e.push(t._qualifiedName);return e}getAttribute(e){const t=c.element_getAnAttributeByName(e,this);return t?t._value:null}getAttributeNS(e,t){const n=c.element_getAnAttributeByNamespaceAndLocalName(e,t,this);return n?n._value:null}setAttribute(e,t){if(!c.xml_isName(e))throw new i.InvalidCharacterError;this._namespace===a.namespace.HTML&&"html"===this._nodeDocument._type&&(e=e.toLowerCase());let n=null;for(let t=0;t<this._attributeList.length;t++){const r=this._attributeList[t];if(r._qualifiedName===e){n=r;break}}if(null===n)return n=c.create_attr(this._nodeDocument,e),n._value=t,void c.element_append(n,this);c.element_change(n,this,t)}setAttributeNS(e,t,n){const[r,o,i]=c.namespace_validateAndExtract(e,t);c.element_setAnAttributeValue(this,i,n,o,r)}removeAttribute(e){c.element_removeAnAttributeByName(e,this)}removeAttributeNS(e,t){c.element_removeAnAttributeByNamespaceAndLocalName(e,t,this)}hasAttribute(e){this._namespace===a.namespace.HTML&&"html"===this._nodeDocument._type&&(e=e.toLowerCase());for(let t=0;t<this._attributeList.length;t++){if(this._attributeList[t]._qualifiedName===e)return!0}return!1}toggleAttribute(e,t){if(!c.xml_isName(e))throw new i.InvalidCharacterError;this._namespace===a.namespace.HTML&&"html"===this._nodeDocument._type&&(e=e.toLowerCase());let n=null;for(let t=0;t<this._attributeList.length;t++){const r=this._attributeList[t];if(r._qualifiedName===e){n=r;break}}return null===n?(void 0===t||!0===t)&&(n=c.create_attr(this._nodeDocument,e),n._value="",c.element_append(n,this),!0):void 0!==t&&!1!==t||(c.element_removeAnAttributeByName(e,this),!1)}hasAttributeNS(e,t){const n=e||null;for(let e=0;e<this._attributeList.length;e++){const r=this._attributeList[e];if(r._namespace===n&&r._localName===t)return!0}return!1}getAttributeNode(e){return c.element_getAnAttributeByName(e,this)}getAttributeNodeNS(e,t){return c.element_getAnAttributeByNamespaceAndLocalName(e,t,this)}setAttributeNode(e){return c.element_setAnAttribute(e,this)}setAttributeNodeNS(e){return c.element_setAnAttribute(e,this)}removeAttributeNode(e){let t=!1;for(let n=0;n<this._attributeList.length;n++){if(this._attributeList[n]===e){t=!0;break}}if(!t)throw new i.NotFoundError;return c.element_remove(e,this),e}attachShadow(e){if(this._namespace!==a.namespace.HTML)throw new i.NotSupportedError;if(!c.customElement_isValidCustomElementName(this._localName)&&!c.customElement_isValidShadowHostName(this._localName))throw new i.NotSupportedError;if(c.customElement_isValidCustomElementName(this._localName)||null!==this._is){const e=c.customElement_lookUpACustomElementDefinition(this._nodeDocument,this._namespace,this._localName,this._is);if(null!==e&&!0===e.disableShadow)throw new i.NotSupportedError}if(null!==this._shadowRoot)throw new i.NotSupportedError;const t=c.create_shadowRoot(this._nodeDocument,this);return t._mode=e.mode,this._shadowRoot=t,t}get shadowRoot(){const e=this._shadowRoot;return null===e||"closed"===e.mode?null:e}closest(e){throw new i.NotImplementedError}matches(e){throw new i.NotImplementedError}webkitMatchesSelector(e){return this.matches(e)}getElementsByTagName(e){return c.node_listOfElementsWithQualifiedName(e,this)}getElementsByTagNameNS(e,t){return c.node_listOfElementsWithNamespace(e,t,this)}getElementsByClassName(e){return c.node_listOfElementsWithClassNames(e,this)}insertAdjacentElement(e,t){return c.element_insertAdjacent(this,e,t)}insertAdjacentText(e,t){const n=c.create_text(this._nodeDocument,t);c.element_insertAdjacent(this,e,n)}get _qualifiedName(){return this._namespacePrefix?this._namespacePrefix+":"+this._localName:this._localName}get _htmlUppercasedQualifiedName(){let e=this._qualifiedName;return this._namespace===a.namespace.HTML&&"html"===this._nodeDocument._type&&(e=e.toUpperCase()),e}get children(){throw new Error("Mixin: ParentNode not implemented.")}get firstElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get lastElementChild(){throw new Error("Mixin: ParentNode not implemented.")}get childElementCount(){throw new Error("Mixin: ParentNode not implemented.")}prepend(...e){throw new Error("Mixin: ParentNode not implemented.")}append(...e){throw new Error("Mixin: ParentNode not implemented.")}querySelector(e){throw new Error("Mixin: ParentNode not implemented.")}querySelectorAll(e){throw new Error("Mixin: ParentNode not implemented.")}get previousElementSibling(){throw new Error("Mixin: NonDocumentTypeChildNode not implemented.")}get nextElementSibling(){throw new Error("Mixin: NonDocumentTypeChildNode not implemented.")}before(...e){throw new Error("Mixin: ChildNode not implemented.")}after(...e){throw new Error("Mixin: ChildNode not implemented.")}replaceWith(...e){throw new Error("Mixin: ChildNode not implemented.")}remove(){throw new Error("Mixin: ChildNode not implemented.")}get assignedSlot(){throw new Error("Mixin: Slotable not implemented.")}static _create(e,t,n=null,r=null){const o=new l;return o._localName=t,o._namespace=n,o._namespacePrefix=r,o._nodeDocument=e,o}}t.ElementImpl=l,s.idl_defineConst(l.prototype,"_nodeType",r.NodeType.Element)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24);t.TraverserImpl=class{constructor(e){this._activeFlag=!1,this._root=e,this._whatToShow=r.WhatToShow.All,this._filter=null}get root(){return this._root}get whatToShow(){return this._whatToShow}get filter(){return this._filter}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(41);t.traversal_filter=function(e,t){if(e._activeFlag)throw new o.InvalidStateError;const n=1<<t._nodeType-1;if(0==(e.whatToShow&n))return r.FilterResult.Skip;if(!e.filter)return r.FilterResult.Accept;e._activeFlag=!0;let i=r.FilterResult.Reject;try{i=e.filter.acceptNode(t)}catch(t){throw e._activeFlag=!1,t}return e._activeFlag=!1,i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(34),a=n(210),c=n(148),s=n(52),l=n(472),u=n(89),f=n(125),d=n(108);t.document_elementInterface=function(e,t){return a.ElementImpl},t.document_internalCreateElementNS=function(e,t,n,r){const[o,a,c]=l.namespace_validateAndExtract(t,n);let s=null;return void 0!==r&&(s=i.isString(r)?r:r.is),f.element_createAnElement(e,c,o,a,s,!0)},t.document_adopt=function(e,t){if(e._nodeDocument===t&&null===e._parent)return;const n=e._nodeDocument;if(e._parent&&d.mutation_remove(e,e._parent),t!==n){let i=s.tree_getFirstDescendantNode(e,!0,!0);for(;null!==i;){if(i._nodeDocument=t,o.Guard.isElementNode(i))for(const e of i._attributeList._asArray())e._nodeDocument=t;r.dom.features.customElements&&o.Guard.isElementNode(i)&&"custom"===i._customElementState&&c.customElement_enqueueACustomElementCallbackReaction(i,"adoptedCallback",[n,t]),r.dom.features.steps&&u.dom_runAdoptingSteps(i,n),i=s.tree_getNextDescendantNode(e,i,!0,!0)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(41),a=n(52),c=n(124),s=n(89);t.characterData_replaceData=function(e,t,n,l){const u=a.tree_nodeLength(e);if(t>u)throw new i.IndexSizeError(`Offset exceeds character data length. Offset: ${t}, Length: ${u}, Node is ${e.nodeName}.`);t+n>u&&(n=u-t),r.dom.features.mutationObservers&&c.observer_queueMutationRecord("characterData",e,null,null,e._data,[],[],null,null);const f=e._data.substring(0,t)+l+e._data.substring(t+n);e._data=f;for(const o of r.dom.rangeList)o._start[0]===e&&o._start[1]>t&&o._start[1]<=t+n&&(o._start[1]=t),o._end[0]===e&&o._end[1]>t&&o._end[1]<=t+n&&(o._end[1]=t),o._start[0]===e&&o._start[1]>t+n&&(o._start[1]+=l.length-n),o._end[0]===e&&o._end[1]>t+n&&(o._end[1]+=l.length-n);r.dom.features.steps&&o.Guard.isTextNode(e)&&null!==e._parent&&s.dom_runChildTextContentChangeSteps(e._parent)},t.characterData_substringData=function(e,t,n){const r=a.tree_nodeLength(e);if(t>r)throw new i.IndexSizeError(`Offset exceeds character data length. Offset: ${t}, Length: ${r}, Node is ${e.nodeName}.`);return t+n>r?e._data.substr(t):e._data.substr(t,n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(46);function o(e){const t=r.string.splitAStringOnASCIIWhitespace(e);return new Set(t)}function i(e){return[...e].join(" ")}t.orderedSet_parse=o,t.orderedSet_serialize=i,t.orderedSet_sanitize=function(e){return i(o(e))},t.orderedSet_contains=function(e,t,n){for(const r of t){let t=!1;for(const o of e)if(n){if(o===r){t=!0;break}}else if(o.toUpperCase()===r.toUpperCase()){t=!0;break}if(!t)return!1}return!0}},function(e,t,n){var r=n(149),o=n(953),i=n(957),a=n(986);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(218),o=n(221);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(219),o=n(955),i=n(956),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(220).Symbol;e.exports=r},function(e,t,n){var r=n(954),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){var r=n(964),o=n(969);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(217);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(13));t.argumentContainer=function(e,t){return e.displayName="Form("+function(e){return e.displayName||e.name||"WrappedComponent"}(t)+")",e.WrappedComponent=t,(0,o.default)(e,t)},t.identity=function(e){return e},t.flattenArray=function(e){return Array.prototype.concat.apply([],e)},t.treeTraverse=c,t.flattenFields=function(e,t,n){var r={};return c(void 0,e,t,n,(function(e,t){r[e]=t})),r},t.normalizeValidateRules=function(e,t,n){var o=e.map((function(e){var t=(0,r.default)({},e,{trigger:e.trigger||[]});return"string"==typeof t.trigger&&(t.trigger=[t.trigger]),t}));t&&o.push({trigger:n?[].concat(n):[],rules:t});return o},t.getValidateTriggers=function(e){return e.filter((function(e){return!!e.rules&&e.rules.length})).map((function(e){return e.trigger})).reduce((function(e,t){return e.concat(t)}),[])},t.getValueFromEvent=function(e){if(!e||!e.target)return e;var t=e.target;return"checkbox"===t.type?t.checked:t.value},t.getErrorStrs=function(e){if(e)return e.map((function(e){return e&&e.message?e.message:e}));return e},t.getParams=function(e,t,n){var r=e,o=t,i=n;void 0===n&&("function"==typeof r?(i=r,o={},r=void 0):Array.isArray(r)?"function"==typeof o?(i=o,o={}):o=o||{}:(i=o,o=r||{},r=void 0));return{names:r,options:o,callback:i}},t.isEmptyObject=function(e){return 0===Object.keys(e).length},t.hasRules=function(e){if(e)return e.some((function(e){return e.rules&&e.rules.length}));return!1},t.startsWith=function(e,t){return 0===e.lastIndexOf(t,0)};var o=a(n(1036)),i=a(n(109));function a(e){return e&&e.__esModule?e:{default:e}}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments[1],n=arguments[2],r=arguments[3],o=arguments[4];if(n(e,t))o(e,t);else if(null==t);else if(Array.isArray(t))t.forEach((function(t,i){return c(e+"["+i+"]",t,n,r,o)}));else{if("object"!=typeof t)return void(0,i.default)(!1,r);Object.keys(t).forEach((function(i){var a=t[i];c(e+(e?".":"")+i,a,n,r,o)}))}}},function(e,t,n){"use strict";n.r(t),n.d(t,"SubMenu",(function(){return ge})),n.d(t,"Item",(function(){return ze})),n.d(t,"MenuItem",(function(){return ze})),n.d(t,"MenuItemGroup",(function(){return Ne})),n.d(t,"ItemGroup",(function(){return Ne})),n.d(t,"Divider",(function(){return Ae}));var r,o=n(8),i=n(2),a=n(27),c=n(28),s=n(40),l=n(30),u=n(29),f=n(0),d=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),p=f.createContext(null),h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return d(t,e),t.prototype.render=function(){return f.createElement(p.Provider,{value:this.props.store},this.props.children)},t}(f.Component),m=n(59),v=n.n(m),y=n(233),_=n.n(y),g=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),b=function(){return(b=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var M=function(){return{}};function w(e,t){void 0===t&&(t={});var n=!!e,r=e||M;return function(o){var i=function(t){function i(e,n){var o=t.call(this,e,n)||this;return o.unsubscribe=null,o.handleChange=function(){if(o.unsubscribe){var e=r(o.store.getState(),o.props);o.setState({subscribed:e})}},o.store=o.context,o.state={subscribed:r(o.store.getState(),e),store:o.store,props:e},o}return g(i,t),i.getDerivedStateFromProps=function(t,n){return e&&2===e.length&&t!==n.props?{subscribed:r(n.store.getState(),t),props:t}:{props:t}},i.prototype.componentDidMount=function(){this.trySubscribe()},i.prototype.componentWillUnmount=function(){this.tryUnsubscribe()},i.prototype.shouldComponentUpdate=function(e,t){return!v()(this.props,e)||!v()(this.state.subscribed,t.subscribed)},i.prototype.trySubscribe=function(){n&&(this.unsubscribe=this.store.subscribe(this.handleChange),this.handleChange())},i.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},i.prototype.render=function(){var e=b(b(b({},this.props),this.state.subscribed),{store:this.store});return f.createElement(o,b({},e,{ref:this.props.miniStoreForwardedRef}))},i.displayName="Connect("+function(e){return e.displayName||e.name||"Component"}(o)+")",i.contextType=p,i}(f.Component);if(t.forwardRef){var a=f.forwardRef((function(e,t){return f.createElement(i,b({},e,{miniStoreForwardedRef:t}))}));return _()(a,o)}return _()(i,o)}}var O=function(){return(O=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};var S=n(6);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e,t){var n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){Object(S.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e);return Array.isArray(t)&&t.forEach((function(e){delete n[e]})),n}var k=n(23);function L(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t<e.length;t++)e[t]&&e[t].apply&&e[t].apply(this,arguments)}}var E=n(77),T=n(3),P=n.n(T),j=n(37),z=n(10),D=/iPhone/i,N=/iPod/i,H=/iPad/i,A=/\bAndroid(?:.+)Mobile\b/i,Y=/Android/i,I=/\bAndroid(?:.+)SD4930UR\b/i,V=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,F=/Windows Phone/i,R=/\bWindows(?:.+)ARM\b/i,W=/BlackBerry/i,U=/BB10/i,B=/Opera Mini/i,K=/\b(CriOS|Chrome)(?:.+)Mobile/i,q=/Mobile(?:.+)Firefox\b/i;function G(e,t){return e.test(t)}function $(e){var t=e||("undefined"!=typeof navigator?navigator.userAgent:""),n=t.split("[FBAN");if(void 0!==n[1]){var r=n;t=Object(z.a)(r,1)[0]}if(void 0!==(n=t.split("Twitter"))[1]){var o=n;t=Object(z.a)(o,1)[0]}var i={apple:{phone:G(D,t)&&!G(F,t),ipod:G(N,t),tablet:!G(D,t)&&G(H,t)&&!G(F,t),device:(G(D,t)||G(N,t)||G(H,t))&&!G(F,t)},amazon:{phone:G(I,t),tablet:!G(I,t)&&G(V,t),device:G(I,t)||G(V,t)},android:{phone:!G(F,t)&&G(I,t)||!G(F,t)&&G(A,t),tablet:!G(F,t)&&!G(I,t)&&!G(A,t)&&(G(V,t)||G(Y,t)),device:!G(F,t)&&(G(I,t)||G(V,t)||G(A,t)||G(Y,t))||G(/\bokhttp\b/i,t)},windows:{phone:G(F,t),tablet:G(R,t),device:G(F,t)||G(R,t)},other:{blackberry:G(W,t),blackberry10:G(U,t),opera:G(B,t),firefox:G(q,t),chrome:G(K,t),device:G(W,t)||G(U,t)||G(B,t)||G(q,t)||G(K,t)},any:null,phone:null,tablet:null};return i.any=i.apple.device||i.android.device||i.windows.device||i.other.device,i.phone=i.apple.phone||i.android.phone||i.windows.phone,i.tablet=i.apple.tablet||i.android.tablet||i.windows.tablet,i}var J=Object(i.a)(Object(i.a)({},$()),{},{isMobile:$});function X(){}function Q(e,t,n){var r=t||"";return e.key||"".concat(r,"item_").concat(n)}function Z(e){return"".concat(e,"-menu-")}function ee(e,t){var n=-1;f.Children.forEach(e,(function(e){n+=1,e&&e.type&&e.type.isMenuItemGroup?f.Children.forEach(e.props.children,(function(e){t(e,n+=1)})):t(e,n)}))}var te=["defaultSelectedKeys","selectedKeys","defaultOpenKeys","openKeys","mode","getPopupContainer","onSelect","onDeselect","onDestroy","openTransitionName","openAnimation","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","triggerSubMenuAction","level","selectable","multiple","onOpenChange","visible","focusable","defaultActiveFirst","prefixCls","inlineIndent","parentMenu","title","rootPrefixCls","eventKey","active","onItemHover","onTitleMouseEnter","onTitleMouseLeave","onTitleClick","popupAlign","popupOffset","isOpen","renderMenuItem","manualRef","subMenuKey","disabled","index","isSelected","store","activeKey","builtinPlacements","overflowedIndicator","motion","attribute","value","popupClassName","inlineCollapsed","menu","theme","itemIcon","expandIcon"],ne=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e&&"function"==typeof e.getBoundingClientRect&&e.getBoundingClientRect().width;if(n){if(t){var r=getComputedStyle(e),o=r.marginLeft,i=r.marginRight;n+=+o.replace("px","")+ +i.replace("px","")}n=+n.toFixed(6)}return n||0},re=function(e,t,n){e&&"object"===Object(j.a)(e.style)&&(e.style[t]=n)},oe=n(18),ie=n(21),ae=n(75),ce=n(7),se=n(90),le=n(56),ue=n(60),fe={adjustX:1,adjustY:1},de={topLeft:{points:["bl","tl"],overflow:fe,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:fe,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:fe,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:fe,offset:[4,0]}},pe={topLeft:{points:["bl","tl"],overflow:fe,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:fe,offset:[0,7]},rightTop:{points:["tr","tl"],overflow:fe,offset:[-4,0]},leftTop:{points:["tl","tr"],overflow:fe,offset:[4,0]}},he=0,me={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},ve=function(e,t,n){var r=Z(t),o=e.getState();e.setState({defaultActiveFirst:Object(i.a)(Object(i.a)({},o.defaultActiveFirst),{},Object(S.a)({},r,n))})},ye=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var r;Object(a.a)(this,n),(r=t.call(this,e)).onDestroy=function(e){r.props.onDestroy(e)},r.onKeyDown=function(e){var t=e.keyCode,n=r.menuInstance,o=r.props.store,i=r.getVisible();if(t===k.a.ENTER)return r.onTitleClick(e),ve(o,r.props.eventKey,!0),!0;if(t===k.a.RIGHT)return i?n.onKeyDown(e):(r.triggerOpenChange(!0),ve(o,r.props.eventKey,!0)),!0;if(t===k.a.LEFT){var a;if(!i)return;return(a=n.onKeyDown(e))||(r.triggerOpenChange(!1),a=!0),a}return!i||t!==k.a.UP&&t!==k.a.DOWN?void 0:n.onKeyDown(e)},r.onOpenChange=function(e){r.props.onOpenChange(e)},r.onPopupVisibleChange=function(e){r.triggerOpenChange(e,e?"mouseenter":"mouseleave")},r.onMouseEnter=function(e){var t=r.props,n=t.eventKey,o=t.onMouseEnter,i=t.store;ve(i,r.props.eventKey,!1),o({key:n,domEvent:e})},r.onMouseLeave=function(e){var t=r.props,n=t.parentMenu,o=t.eventKey,i=t.onMouseLeave;n.subMenuInstance=Object(s.a)(r),i({key:o,domEvent:e})},r.onTitleMouseEnter=function(e){var t=r.props,n=t.eventKey,o=t.onItemHover,i=t.onTitleMouseEnter;o({key:n,hover:!0}),i({key:n,domEvent:e})},r.onTitleMouseLeave=function(e){var t=r.props,n=t.parentMenu,o=t.eventKey,i=t.onItemHover,a=t.onTitleMouseLeave;n.subMenuInstance=Object(s.a)(r),i({key:o,hover:!1}),a({key:o,domEvent:e})},r.onTitleClick=function(e){var t=Object(s.a)(r).props;t.onTitleClick({key:t.eventKey,domEvent:e}),"hover"!==t.triggerSubMenuAction&&(r.triggerOpenChange(!r.getVisible(),"click"),ve(t.store,r.props.eventKey,!1))},r.onSubMenuClick=function(e){"function"==typeof r.props.onClick&&r.props.onClick(r.addKeyPath(e))},r.onSelect=function(e){r.props.onSelect(e)},r.onDeselect=function(e){r.props.onDeselect(e)},r.getPrefixCls=function(){return"".concat(r.props.rootPrefixCls,"-submenu")},r.getActiveClassName=function(){return"".concat(r.getPrefixCls(),"-active")},r.getDisabledClassName=function(){return"".concat(r.getPrefixCls(),"-disabled")},r.getSelectedClassName=function(){return"".concat(r.getPrefixCls(),"-selected")},r.getOpenClassName=function(){return"".concat(r.props.rootPrefixCls,"-submenu-open")},r.getVisible=function(){return r.state.isOpen},r.getMode=function(){return r.state.mode},r.saveMenuInstance=function(e){r.menuInstance=e},r.addKeyPath=function(e){return Object(i.a)(Object(i.a)({},e),{},{keyPath:(e.keyPath||[]).concat(r.props.eventKey)})},r.triggerOpenChange=function(e,t){var n=r.props.eventKey,o=function(){r.onOpenChange({key:n,item:Object(s.a)(r),trigger:t,open:e})};"mouseenter"===t?r.mouseenterTimeout=setTimeout((function(){o()}),0):o()},r.isChildrenSelected=function(){var e={find:!1};return function e(t,n,r){t&&!r.find&&f.Children.forEach(t,(function(t){if(t){var o=t.type;if(!o||!(o.isSubMenu||o.isMenuItem||o.isMenuItemGroup))return;-1!==n.indexOf(t.key)?r.find=!0:t.props.children&&e(t.props.children,n,r)}}))}(r.props.children,r.props.selectedKeys,e),e.find},r.isInlineMode=function(){return"inline"===r.getMode()},r.adjustWidth=function(){if(r.subMenuTitle&&r.menuInstance){var e=ce.findDOMNode(r.menuInstance);e.offsetWidth>=r.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(r.subMenuTitle.offsetWidth,"px"))}},r.saveSubMenuTitle=function(e){r.subMenuTitle=e},r.getBaseProps=function(){var e=Object(s.a)(r).props,t=r.getMode();return{mode:"horizontal"===t?"vertical":t,visible:r.getVisible(),level:e.level+1,inlineIndent:e.inlineIndent,focusable:!1,onClick:r.onSubMenuClick,onSelect:r.onSelect,onDeselect:r.onDeselect,onDestroy:r.onDestroy,selectedKeys:e.selectedKeys,eventKey:"".concat(e.eventKey,"-menu-"),openKeys:e.openKeys,motion:e.motion,onOpenChange:r.onOpenChange,subMenuOpenDelay:e.subMenuOpenDelay,parentMenu:Object(s.a)(r),subMenuCloseDelay:e.subMenuCloseDelay,forceSubMenuRender:e.forceSubMenuRender,triggerSubMenuAction:e.triggerSubMenuAction,builtinPlacements:e.builtinPlacements,defaultActiveFirst:e.store.getState().defaultActiveFirst[Z(e.eventKey)],multiple:e.multiple,prefixCls:e.rootPrefixCls,id:r.internalMenuId,manualRef:r.saveMenuInstance,itemIcon:e.itemIcon,expandIcon:e.expandIcon,direction:e.direction}},r.getMotion=function(e,t){var n=Object(s.a)(r).haveRendered,o=r.props,a=o.motion,c=o.rootPrefixCls;return Object(i.a)(Object(i.a)({},a),{},{leavedClassName:"".concat(c,"-hidden"),removeOnLeave:!1,motionAppear:n||!t||"inline"!==e})};var o=e.store,c=e.eventKey,l=o.getState().defaultActiveFirst;r.isRootMenu=!1;var u=!1;return l&&(u=l[c]),ve(o,c,u),r.state={mode:e.mode,isOpen:e.isOpen},r}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,r=t.parentMenu,o=t.manualRef,i=t.isOpen,a=function(){e.setState({mode:n,isOpen:i})},c=i!==this.state.isOpen,s=n!==this.state.mode;(s||c)&&(le.a.cancel(this.updateStateRaf),s?this.updateStateRaf=Object(le.a)(a):a()),o&&o(this),"horizontal"===n&&(null==r?void 0:r.isRootMenu)&&i&&(this.minWidthTimeout=setTimeout((function(){return e.adjustWidth()}),0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout),le.a.cancel(this.updateStateRaf)}},{key:"renderPopupMenu",value:function(e,t){var n=this.getBaseProps();return f.createElement(ke,Object(o.a)({},n,{id:this.internalMenuId,className:e,style:t}),this.props.children)}},{key:"renderChildren",value:function(){var e=this,t=this.getBaseProps(),n=t.mode,r=t.visible,i=t.forceSubMenuRender,a=t.direction,c=this.getMotion(n,r);if(this.haveRendered=!0,this.haveOpened=this.haveOpened||r||i,!this.haveOpened)return f.createElement("div",null);var s=P()("".concat(t.prefixCls,"-sub"),Object(S.a)({},"".concat(t.prefixCls,"-rtl"),"rtl"===a));return this.isInlineMode()?f.createElement(ue.default,Object(o.a)({visible:t.visible},c),(function(t){var n=t.className,r=t.style,o=P()(s,n);return e.renderPopupMenu(o,r)})):this.renderPopupMenu(s)}},{key:"render",value:function(){var e,t,n,r=Object(i.a)({},this.props),a=this.getVisible(),c=this.getPrefixCls(),s=this.isInlineMode(),l=this.getMode(),u=P()(c,"".concat(c,"-").concat(l),(e={},Object(S.a)(e,r.className,!!r.className),Object(S.a)(e,this.getOpenClassName(),a),Object(S.a)(e,this.getActiveClassName(),r.active||a&&!s),Object(S.a)(e,this.getDisabledClassName(),r.disabled),Object(S.a)(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(r.eventKey?this.internalMenuId="".concat(r.eventKey,"$Menu"):(he+=1,this.internalMenuId="$__$".concat(he,"$Menu")));var d={},p={},h={};r.disabled||(d={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},p={onClick:this.onTitleClick},h={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var m={},v="rtl"===r.direction;s&&(v?m.paddingRight=r.inlineIndent*r.level:m.paddingLeft=r.inlineIndent*r.level);var y={};this.getVisible()&&(y={"aria-owns":this.internalMenuId});var _=null;"horizontal"!==l&&(_=this.props.expandIcon,"function"==typeof this.props.expandIcon&&(_=f.createElement(this.props.expandIcon,Object(i.a)({},this.props))));var g=f.createElement("div",Object(o.a)({ref:this.saveSubMenuTitle,style:m,className:"".concat(c,"-title"),role:"button"},h,p,{"aria-expanded":a},y,{"aria-haspopup":"true",title:"string"==typeof r.title?r.title:void 0}),r.title,_||f.createElement("i",{className:"".concat(c,"-arrow")})),b=this.renderChildren(),M=(null===(t=r.parentMenu)||void 0===t?void 0:t.isRootMenu)?r.parentMenu.props.getPopupContainer:function(e){return e.parentNode},w=me[l],O=r.popupOffset?{offset:r.popupOffset}:{},C=P()((n={},Object(S.a)(n,r.popupClassName,r.popupClassName&&!s),Object(S.a)(n,"".concat(c,"-rtl"),v),n)),x=r.disabled,k=r.triggerSubMenuAction,L=r.subMenuOpenDelay,E=r.forceSubMenuRender,T=r.subMenuCloseDelay,j=r.builtinPlacements;te.forEach((function(e){return delete r[e]})),delete r.onClick;var z=v?Object(i.a)(Object(i.a)({},pe),j):Object(i.a)(Object(i.a)({},de),j);delete r.direction;var D=this.getBaseProps(),N=s?null:this.getMotion(D.mode,D.visible);return f.createElement("li",Object(o.a)({},r,d,{className:u,role:"menuitem"}),f.createElement(se.a,{prefixCls:c,popupClassName:P()("".concat(c,"-popup"),C),getPopupContainer:M,builtinPlacements:z,popupPlacement:w,popupVisible:!s&&a,popupAlign:O,popup:s?null:b,action:x||s?[]:[k],mouseEnterDelay:L,mouseLeaveDelay:T,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:E,popupMotion:N},g),s?b:null)}}]),n}(f.Component);ye.defaultProps={onMouseEnter:X,onMouseLeave:X,onTitleMouseEnter:X,onTitleMouseLeave:X,onTitleClick:X,manualRef:X,mode:"vertical",title:""};var _e=w((function(e,t){var n=e.openKeys,r=e.activeKey,o=e.selectedKeys,i=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(i)>-1,active:r[a]===i,selectedKeys:o}}))(ye);_e.isSubMenu=!0;var ge=_e,be=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){var e;return Object(a.a)(this,n),(e=t.apply(this,arguments)).resizeObserver=null,e.mutationObserver=null,e.originalTotalWidth=0,e.overflowedItems=[],e.menuItemSizes=[],e.cancelFrameId=null,e.state={lastVisibleIndex:void 0},e.childRef=f.createRef(),e.getMenuItemNodes=function(){var t=e.props.prefixCls,n=e.childRef.current;return n?[].slice.call(n.children).filter((function(e){return e.className.split(" ").indexOf("".concat(t,"-overflowed-submenu"))<0})):[]},e.getOverflowedSubMenuItem=function(t,n,r){var a=e.props,c=a.overflowedIndicator,s=a.level,l=a.mode,u=a.prefixCls,d=a.theme;if(1!==s||"horizontal"!==l)return null;var p=e.props.children[0].props,h=(p.children,p.title,p.style),m=Object(ie.a)(p,["children","title","style"]),v=Object(i.a)({},h),y="".concat(t,"-overflowed-indicator"),_="".concat(t,"-overflowed-indicator");0===n.length&&!0!==r?v=Object(i.a)(Object(i.a)({},v),{},{display:"none"}):r&&(v=Object(i.a)(Object(i.a)({},v),{},{visibility:"hidden",position:"absolute"}),y="".concat(y,"-placeholder"),_="".concat(_,"-placeholder"));var g=d?"".concat(u,"-").concat(d):"",b={};return te.forEach((function(e){void 0!==m[e]&&(b[e]=m[e])})),f.createElement(ge,Object(o.a)({title:c,className:"".concat(u,"-overflowed-submenu"),popupClassName:g},b,{key:y,eventKey:_,disabled:!1,style:v}),n)},e.setChildrenWidthAndResize=function(){if("horizontal"===e.props.mode){var t=e.childRef.current;if(t){var n=t.children;if(n&&0!==n.length){var r=t.children[n.length-1];re(r,"display","inline-block");var o=e.getMenuItemNodes(),i=o.filter((function(e){return e.className.split(" ").indexOf("menuitem-overflowed")>=0}));i.forEach((function(e){re(e,"display","inline-block")})),e.menuItemSizes=o.map((function(e){return ne(e,!0)})),i.forEach((function(e){re(e,"display","none")})),e.overflowedIndicatorWidth=ne(t.children[t.children.length-1],!0),e.originalTotalWidth=e.menuItemSizes.reduce((function(e,t){return e+t}),0),e.handleResize(),re(r,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=e.childRef.current;if(t){var n=ne(t);e.overflowedItems=[];var r,o=0;e.originalTotalWidth>n+.5&&(r=-1,e.menuItemSizes.forEach((function(t){(o+=t)+e.overflowedIndicatorWidth<=n&&(r+=1)}))),e.setState({lastVisibleIndex:r})}}},e}return Object(c.a)(n,[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=this.childRef.current;if(!t)return;this.resizeObserver=new ae.default((function(t){t.forEach((function(){var t=e.cancelFrameId;cancelAnimationFrame(t),e.cancelFrameId=requestAnimationFrame(e.setChildrenWidthAndResize)}))})),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver((function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),e.setChildrenWidthAndResize()})),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect(),cancelAnimationFrame(this.cancelFrameId)}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce((function(r,o,i){var a=o;if("horizontal"===t.props.mode){var c=t.getOverflowedSubMenuItem(o.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(i>n&&(a=f.cloneElement(o,{style:{display:"none"},eventKey:"".concat(o.props.eventKey,"-hidden"),className:"".concat("menuitem-overflowed")})),i===n+1&&(t.overflowedItems=e.slice(n+1).map((function(e){return f.cloneElement(e,{key:e.props.eventKey,mode:"vertical-left"})})),c=t.getOverflowedSubMenuItem(o.props.eventKey,t.overflowedItems)));var s=[].concat(Object(oe.a)(r),[c,a]);return i===e.length-1&&s.push(t.getOverflowedSubMenuItem(o.props.eventKey,[],!0)),s}return[].concat(Object(oe.a)(r),[a])}),[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,r=(e.theme,Object(ie.a)(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),i=t;return f.createElement(i,Object(o.a)({ref:this.childRef},r),this.renderChildren(n))}}]),n}(f.Component);be.defaultProps={tag:"div",className:""};var Me=be;function we(e,t,n){var r=e.getState();e.setState({activeKey:Object(i.a)(Object(i.a)({},r.activeKey),{},Object(S.a)({},t,n))})}function Oe(e){return e.eventKey||"0-menu-"}function Se(e,t){var n,r=t,o=e.children,i=e.eventKey;if(r&&(ee(o,(function(e,t){e&&e.props&&!e.props.disabled&&r===Q(e,i,t)&&(n=!0)})),n))return r;return r=null,e.defaultActiveFirst?(ee(o,(function(e,t){r||!e||e.props.disabled||(r=Q(e,i,t))})),r):r}function Ce(e){if(e){var t=this.instanceArray.indexOf(e);-1!==t?this.instanceArray[t]=e:this.instanceArray.push(e)}}var xe=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var r;return Object(a.a)(this,n),(r=t.call(this,e)).onKeyDown=function(e,t){var n,o=e.keyCode;if(r.getFlatInstanceArray().forEach((function(t){t&&t.props.active&&t.onKeyDown&&(n=t.onKeyDown(e))})),n)return 1;var i=null;return o!==k.a.UP&&o!==k.a.DOWN||(i=r.step(o===k.a.UP?-1:1)),i?(e.preventDefault(),we(r.props.store,Oe(r.props),i.props.eventKey),"function"==typeof t&&t(i),1):void 0},r.onItemHover=function(e){var t=e.key,n=e.hover;we(r.props.store,Oe(r.props),n?t:null)},r.onDeselect=function(e){r.props.onDeselect(e)},r.onSelect=function(e){r.props.onSelect(e)},r.onClick=function(e){r.props.onClick(e)},r.onOpenChange=function(e){r.props.onOpenChange(e)},r.onDestroy=function(e){r.props.onDestroy(e)},r.getFlatInstanceArray=function(){return r.instanceArray},r.step=function(e){var t=r.getFlatInstanceArray(),n=r.props.store.getState().activeKey[Oe(r.props)],o=t.length;if(!o)return null;e<0&&(t=t.concat().reverse());var i=-1;if(t.every((function(e,t){return!e||e.props.eventKey!==n||(i=t,!1)})),r.props.defaultActiveFirst||-1===i||(a=t.slice(i,o-1)).length&&!a.every((function(e){return!!e.props.disabled}))){var a,c=(i+1)%o,s=c;do{var l=t[s];if(l&&!l.props.disabled)return l;s=(s+1)%o}while(s!==c);return null}},r.renderCommonMenuItem=function(e,t,n){var o=r.props.store.getState(),a=Object(s.a)(r).props,c=Q(e,a.eventKey,t),l=e.props;if(!l||"string"==typeof e.type)return e;var u=c===o.activeKey,d=Object(i.a)(Object(i.a)({mode:l.mode||a.mode,level:a.level,inlineIndent:a.inlineIndent,renderMenuItem:r.renderMenuItem,rootPrefixCls:a.prefixCls,index:t,parentMenu:a.parentMenu,manualRef:l.disabled?void 0:L(e.ref,Ce.bind(Object(s.a)(r))),eventKey:c,active:!l.disabled&&u,multiple:a.multiple,onClick:function(e){(l.onClick||X)(e),r.onClick(e)},onItemHover:r.onItemHover,motion:a.motion,subMenuOpenDelay:a.subMenuOpenDelay,subMenuCloseDelay:a.subMenuCloseDelay,forceSubMenuRender:a.forceSubMenuRender,onOpenChange:r.onOpenChange,onDeselect:r.onDeselect,onSelect:r.onSelect,builtinPlacements:a.builtinPlacements,itemIcon:l.itemIcon||r.props.itemIcon,expandIcon:l.expandIcon||r.props.expandIcon},n),{},{direction:a.direction});return("inline"===a.mode||J.any)&&(d.triggerSubMenuAction="click"),f.cloneElement(e,Object(i.a)(Object(i.a)({},d),{},{key:c||t}))},r.renderMenuItem=function(e,t,n){if(!e)return null;var o=r.props.store.getState(),i={openKeys:o.openKeys,selectedKeys:o.selectedKeys,triggerSubMenuAction:r.props.triggerSubMenuAction,subMenuKey:n};return r.renderCommonMenuItem(e,t,i)},e.store.setState({activeKey:Object(i.a)(Object(i.a)({},e.store.getState().activeKey),{},Object(S.a)({},e.eventKey,Se(e,e.activeKey)))}),r.instanceArray=[],r}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"shouldComponentUpdate",value:function(e){return this.props.visible||e.visible||this.props.className!==e.className||!v()(this.props.style,e.style)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n="activeKey"in t?t.activeKey:t.store.getState().activeKey[Oe(t)],r=Se(t,n);if(r!==n)we(t.store,Oe(t),r);else if("activeKey"in e){r!==Se(e,e.activeKey)&&we(t.store,Oe(t),r)}}},{key:"render",value:function(){var e=this,t=Object(o.a)({},this.props);this.instanceArray=[];var n={className:P()(t.prefixCls,t.className,"".concat(t.prefixCls,"-").concat(t.mode)),role:t.role||"menu"};t.id&&(n.id=t.id),t.focusable&&(n.tabIndex=0,n.onKeyDown=this.onKeyDown);var r=t.prefixCls,i=t.eventKey,a=t.visible,c=t.level,s=t.mode,l=t.overflowedIndicator,u=t.theme;return te.forEach((function(e){return delete t[e]})),delete t.onClick,f.createElement(Me,Object(o.a)({},t,{prefixCls:r,mode:s,tag:"ul",level:c,theme:u,visible:a,overflowedIndicator:l},n),Object(E.a)(t.children).map((function(t,n){return e.renderMenuItem(t,n,i||"0-menu-")})))}}]),n}(f.Component);xe.defaultProps={prefixCls:"rc-menu",className:"",mode:"vertical",level:1,inlineIndent:24,visible:!0,focusable:!0,style:{},manualRef:X};var ke=w()(xe),Le=n(35);function Ee(e,t,n){var r=e.prefixCls,o=e.motion,i=e.defaultMotions,a=void 0===i?{}:i,c=e.openAnimation,s=e.openTransitionName,l=t.switchingModeFromInline;if(o)return o;if("object"===Object(j.a)(c)&&c)Object(Le.a)(!1,"Object type of `openAnimation` is removed. Please use `motion` instead.");else if("string"==typeof c)return{motionName:"".concat(r,"-open-").concat(c)};if(s)return{motionName:s};var u=a[n];return u||(l?null:a.other)}var Te=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var r;Object(a.a)(this,n),(r=t.call(this,e)).onSelect=function(e){var t=Object(s.a)(r).props;if(t.selectable){var n=r.store.getState().selectedKeys,o=e.key;n=t.multiple?n.concat([o]):[o],"selectedKeys"in t||r.store.setState({selectedKeys:n}),t.onSelect(Object(i.a)(Object(i.a)({},e),{},{selectedKeys:n}))}},r.onClick=function(e){var t=r.getRealMenuMode(),n=Object(s.a)(r),o=n.store,i=n.props.onOpenChange;"inline"===t||"openKeys"in r.props||(o.setState({openKeys:[]}),i([])),r.props.onClick(e)},r.onKeyDown=function(e,t){r.innerMenu.getWrappedInstance().onKeyDown(e,t)},r.onOpenChange=function(e){var t=Object(s.a)(r).props,n=r.store.getState().openKeys.concat(),o=!1,i=function(e){var t=!1;if(e.open)(t=-1===n.indexOf(e.key))&&n.push(e.key);else{var r=n.indexOf(e.key);(t=-1!==r)&&n.splice(r,1)}o=o||t};Array.isArray(e)?e.forEach(i):i(e),o&&("openKeys"in r.props||r.store.setState({openKeys:n}),t.onOpenChange(n))},r.onDeselect=function(e){var t=Object(s.a)(r).props;if(t.selectable){var n=r.store.getState().selectedKeys.concat(),o=e.key,a=n.indexOf(o);-1!==a&&n.splice(a,1),"selectedKeys"in t||r.store.setState({selectedKeys:n}),t.onDeselect(Object(i.a)(Object(i.a)({},e),{},{selectedKeys:n}))}},r.onMouseEnter=function(e){r.restoreModeVerticalFromInline();var t=r.props.onMouseEnter;t&&t(e)},r.onTransitionEnd=function(e){var t="width"===e.propertyName&&e.target===e.currentTarget,n=e.target.className,o="[object SVGAnimatedString]"===Object.prototype.toString.call(n)?n.animVal:n,i="font-size"===e.propertyName&&o.indexOf("anticon")>=0;(t||i)&&r.restoreModeVerticalFromInline()},r.setInnerMenu=function(e){r.innerMenu=e},r.isRootMenu=!0;var o,c,l,u=e.defaultSelectedKeys,f=e.defaultOpenKeys;return"selectedKeys"in e&&(u=e.selectedKeys||[]),"openKeys"in e&&(f=e.openKeys||[]),r.store=(o={selectedKeys:u,openKeys:f,activeKey:{"0-menu-":Se(e,e.activeKey)}},c=o,l=[],{setState:function(e){c=O(O({},c),e);for(var t=0;t<l.length;t++)l[t]()},getState:function(){return c},subscribe:function(e){return l.push(e),function(){var t=l.indexOf(e);l.splice(t,1)}}}),r.state={switchingModeFromInline:!1,prevProps:e,inlineOpenKeys:[],store:r.store},r}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.updateMiniStore(),this.updateMenuDisplay()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.siderCollapsed,r=t.inlineCollapsed,o=t.onOpenChange;(!e.inlineCollapsed&&r||!e.siderCollapsed&&n)&&o([]),this.updateMiniStore(),this.updateMenuDisplay()}},{key:"updateMenuDisplay",value:function(){var e=this.props.collapsedWidth,t=this.store,n=this.prevOpenKeys;this.getInlineCollapsed()&&(0===e||"0"===e||"0px"===e)?(this.prevOpenKeys=t.getState().openKeys.concat(),this.store.setState({openKeys:[]})):n&&(this.store.setState({openKeys:n}),this.prevOpenKeys=null)}},{key:"getRealMenuMode",value:function(){var e=this.props.mode,t=this.state.switchingModeFromInline,n=this.getInlineCollapsed();return t&&n?"inline":n?"vertical":e}},{key:"getInlineCollapsed",value:function(){var e=this.props,t=e.inlineCollapsed,n=e.siderCollapsed;return void 0!==n?n:t}},{key:"restoreModeVerticalFromInline",value:function(){this.state.switchingModeFromInline&&this.setState({switchingModeFromInline:!1})}},{key:"updateMiniStore",value:function(){"selectedKeys"in this.props&&this.store.setState({selectedKeys:this.props.selectedKeys||[]}),"openKeys"in this.props&&this.store.setState({openKeys:this.props.openKeys||[]})}},{key:"render",value:function(){var e=Object(i.a)({},x(this.props,["collapsedWidth","siderCollapsed","defaultMotions"])),t=this.getRealMenuMode();return e.className+=" ".concat(e.prefixCls,"-root"),"rtl"===e.direction&&(e.className+=" ".concat(e.prefixCls,"-rtl")),delete(e=Object(i.a)(Object(i.a)({},e),{},{mode:t,onClick:this.onClick,onOpenChange:this.onOpenChange,onDeselect:this.onDeselect,onSelect:this.onSelect,onMouseEnter:this.onMouseEnter,onTransitionEnd:this.onTransitionEnd,parentMenu:this,motion:Ee(this.props,this.state,t)})).openAnimation,delete e.openTransitionName,f.createElement(h,{store:this.store},f.createElement(ke,Object(o.a)({},e,{ref:this.setInnerMenu}),this.props.children))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.store,o=r.getState(),i={},a={prevProps:e};return"inline"===n.mode&&"inline"!==e.mode&&(a.switchingModeFromInline=!0),"openKeys"in e?i.openKeys=e.openKeys||[]:((e.inlineCollapsed&&!n.inlineCollapsed||e.siderCollapsed&&!n.siderCollapsed)&&(a.switchingModeFromInline=!0,a.inlineOpenKeys=o.openKeys,i.openKeys=[]),(!e.inlineCollapsed&&n.inlineCollapsed||!e.siderCollapsed&&n.siderCollapsed)&&(i.openKeys=t.inlineOpenKeys,a.inlineOpenKeys=[])),Object.keys(i).length&&r.setState(i),a}}]),n}(f.Component);Te.defaultProps={selectable:!0,onClick:X,onSelect:X,onOpenChange:X,onDeselect:X,defaultSelectedKeys:[],defaultOpenKeys:[],subMenuOpenDelay:.1,subMenuCloseDelay:.1,triggerSubMenuAction:"hover",prefixCls:"rc-menu",className:"",mode:"vertical",style:{},builtinPlacements:{},overflowedIndicator:f.createElement("span",null,"···")};var Pe=Te,je=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){var e;return Object(a.a)(this,n),(e=t.apply(this,arguments)).onKeyDown=function(t){if(t.keyCode===k.a.ENTER)return e.onClick(t),!0},e.onMouseLeave=function(t){var n=e.props,r=n.eventKey,o=n.onItemHover,i=n.onMouseLeave;o({key:r,hover:!1}),i({key:r,domEvent:t})},e.onMouseEnter=function(t){var n=e.props,r=n.eventKey,o=n.onItemHover,i=n.onMouseEnter;o({key:r,hover:!0}),i({key:r,domEvent:t})},e.onClick=function(t){var n=e.props,r=n.eventKey,o=n.multiple,i=n.onClick,a=n.onSelect,c=n.onDeselect,l=n.isSelected,u={key:r,keyPath:[r],item:Object(s.a)(e),domEvent:t};i(u),o?l?c(u):a(u):l||a(u)},e.saveNode=function(t){e.node=t},e}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.callRef()}},{key:"componentDidUpdate",value:function(){this.callRef()}},{key:"componentWillUnmount",value:function(){var e=this.props;e.onDestroy&&e.onDestroy(e.eventKey)}},{key:"getPrefixCls",value:function(){return"".concat(this.props.rootPrefixCls,"-item")}},{key:"getActiveClassName",value:function(){return"".concat(this.getPrefixCls(),"-active")}},{key:"getSelectedClassName",value:function(){return"".concat(this.getPrefixCls(),"-selected")}},{key:"getDisabledClassName",value:function(){return"".concat(this.getPrefixCls(),"-disabled")}},{key:"callRef",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"render",value:function(){var e,t=Object(i.a)({},this.props),n=P()(this.getPrefixCls(),t.className,(e={},Object(S.a)(e,this.getActiveClassName(),!t.disabled&&t.active),Object(S.a)(e,this.getSelectedClassName(),t.isSelected),Object(S.a)(e,this.getDisabledClassName(),t.disabled),e)),r=Object(i.a)(Object(i.a)({},t.attribute),{},{title:"string"==typeof t.title?t.title:void 0,className:n,role:t.role||"menuitem","aria-disabled":t.disabled});"option"===t.role?r=Object(i.a)(Object(i.a)({},r),{},{role:"option","aria-selected":t.isSelected}):null!==t.role&&"none"!==t.role||(r.role="none");var a={onClick:t.disabled?null:this.onClick,onMouseLeave:t.disabled?null:this.onMouseLeave,onMouseEnter:t.disabled?null:this.onMouseEnter},c=Object(i.a)({},t.style);"inline"===t.mode&&("rtl"===t.direction?c.paddingRight=t.inlineIndent*t.level:c.paddingLeft=t.inlineIndent*t.level),te.forEach((function(e){return delete t[e]})),delete t.direction;var s=this.props.itemIcon;return"function"==typeof this.props.itemIcon&&(s=f.createElement(this.props.itemIcon,this.props)),f.createElement("li",Object(o.a)({},x(t,["onClick","onMouseEnter","onMouseLeave","onSelect"]),r,a,{style:c,ref:this.saveNode}),t.children,s)}}]),n}(f.Component);je.isMenuItem=!0,je.defaultProps={onSelect:X,onMouseEnter:X,onMouseLeave:X,manualRef:X};var ze=w((function(e,t){var n=e.activeKey,r=e.selectedKeys,o=t.eventKey;return{active:n[t.subMenuKey]===o,isSelected:Array.isArray(r)?-1!==r.indexOf(o):r===o}}))(je),De=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(){var e;return Object(a.a)(this,n),(e=t.apply(this,arguments)).renderInnerMenuItem=function(t){var n=e.props;return(0,n.renderMenuItem)(t,n.index,e.props.subMenuKey)},e}return Object(c.a)(n,[{key:"render",value:function(){var e=Object(o.a)({},this.props),t=e.className,n=void 0===t?"":t,r=e.rootPrefixCls,i="".concat(r,"-item-group-title"),a="".concat(r,"-item-group-list"),c=e.title,s=e.children;return te.forEach((function(t){return delete e[t]})),delete e.direction,f.createElement("li",Object(o.a)({},e,{onClick:function(e){return e.stopPropagation()},className:"".concat(n," ").concat(r,"-item-group")}),f.createElement("div",{className:i,title:"string"==typeof c?c:void 0},c),f.createElement("ul",{className:a},f.Children.map(s,this.renderInnerMenuItem)))}}]),n}(f.Component);De.isMenuItemGroup=!0,De.defaultProps={disabled:!0};var Ne=De,He=function(e){var t=e.className,n=e.rootPrefixCls,r=e.style;return f.createElement("li",{className:"".concat(t," ").concat(n,"-item-divider"),style:r})};He.defaultProps={disabled:!0,className:"",style:{}};var Ae=He;t.default=Pe},function(e,t,n){"use strict";e.exports=n(605)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){function o(t){var r=new i.default(t);n.call(e,r)}if(e.addEventListener){var a=(c=!1,"object"==typeof r?c=r.capture||!1:"boolean"==typeof r&&(c=r),e.addEventListener(t,o,r||!1),{v:{remove:function(){e.removeEventListener(t,o,c)}}});if("object"==typeof a)return a.v}else if(e.attachEvent)return e.attachEvent("on"+t,o),{remove:function(){e.detachEvent("on"+t,o)}};var c};var r,o=n(614),i=(r=o)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){e.exports=function e(t,n,r){function o(a,c){if(!n[a]){if(!t[a]){if(i)return i(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var l=n[a]={exports:{}};t[a][0].call(l.exports,(function(e){var n=t[a][1][e];return o(n||e)}),l,l.exports,e,t,n,r)}return n[a].exports}for(var i=!1,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){t.exports=function(t){return"function"!=typeof Map||t?new(e("./similar")):new Map}},{"./similar":2}],2:[function(e,t,n){function r(){return this.list=[],this.lastItem=void 0,this.size=0,this}r.prototype.get=function(e){var t;return this.lastItem&&this.isEqual(this.lastItem.key,e)?this.lastItem.val:(t=this.indexOf(e))>=0?(this.lastItem=this.list[t],this.list[t].val):void 0},r.prototype.set=function(e,t){var n;return this.lastItem&&this.isEqual(this.lastItem.key,e)?(this.lastItem.val=t,this):(n=this.indexOf(e))>=0?(this.lastItem=this.list[n],this.list[n].val=t,this):(this.lastItem={key:e,val:t},this.list.push(this.lastItem),this.size++,this)},r.prototype.delete=function(e){var t;if(this.lastItem&&this.isEqual(this.lastItem.key,e)&&(this.lastItem=void 0),(t=this.indexOf(e))>=0)return this.size--,this.list.splice(t,1)[0]},r.prototype.has=function(e){var t;return!(!this.lastItem||!this.isEqual(this.lastItem.key,e))||(t=this.indexOf(e))>=0&&(this.lastItem=this.list[t],!0)},r.prototype.forEach=function(e,t){var n;for(n=0;n<this.size;n++)e.call(t||this,this.list[n].val,this.list[n].key,this)},r.prototype.indexOf=function(e){var t;for(t=0;t<this.size;t++)if(this.isEqual(this.list[t].key,e))return t;return-1},r.prototype.isEqual=function(e,t){return e===t||e!=e&&t!=t},t.exports=r},{}],3:[function(e,t,n){var r=e("map-or-similar");function o(e,t){var n,r,o,i,a,c=e.length,s=t.length;for(r=0;r<c;r++){for(n=!0,o=0;o<s;o++)if(i=e[r][o].arg,a=t[o].arg,i!==a&&(i==i||a==a)){n=!1;break}if(n)break}e.push(e.splice(r,1)[0])}function i(e){var t,n,r=e.length,o=e[r-1];for(o.cacheItem.delete(o.arg),n=r-2;n>=0&&(!(t=(o=e[n]).cacheItem.get(o.arg))||!t.size);n--)o.cacheItem.delete(o.arg)}t.exports=function(e){var t=new r(!1),n=[];return function(a){var c=function(){var s,l,u,f=t,d=arguments.length-1,p=Array(d+1),h=!0;if((c.numArgs||0===c.numArgs)&&c.numArgs!==d+1)throw new Error("Memoizerific functions should always be called with the same number of arguments");for(u=0;u<d;u++)p[u]={cacheItem:f,arg:arguments[u]},f.has(arguments[u])?f=f.get(arguments[u]):(h=!1,s=new r(!1),f.set(arguments[u],s),f=s);return h&&(f.has(arguments[d])?l=f.get(arguments[d]):h=!1),h||(l=a.apply(null,arguments),f.set(arguments[d],l)),e>0&&(p[d]={cacheItem:f,arg:arguments[d]},h?o(n,p):n.push(p),n.length>e&&i(n.shift())),c.wasMemoized=h,c.numArgs=d+1,l};return c.limit=e,c.wasMemoized=!1,c.cache=t,c.lru=n,c}}},{"map-or-similar":1}]},{},[3])(3)},function(e,t,n){"use strict";(function(e,r){var o,i=n(498);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:r;var a=Object(i.a)(o);t.a=a}).call(this,n(61),n(532)(e))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(0)),o=h(n(1)),i=h(n(1050)),a=d(n(3)),c=d(n(81)),s=n(43),l=d(n(64)),u=d(n(51)),f=n(85);function d(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==m(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(){return(v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=w(e);if(t){var o=w(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return M(this,n)}}function M(e,t){return!t||"object"!==m(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var O=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},S=(0,f.tuple)("default","large","small"),C=((0,f.tuple)("default","multiple","tags","combobox","SECRET_COMBOBOX_MODE_DO_NOT_USE"),{prefixCls:o.string,className:o.string,size:o.oneOf(S),notFoundContent:o.any,showSearch:o.bool,optionLabelProp:o.string,transitionName:o.string,choiceTransitionName:o.string,id:o.string}),x=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&g(e,t)}(d,e);var t,n,o,f=b(d);function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),(t=f.call(this,e)).saveSelect=function(e){t.rcSelect=e},t.renderSelect=function(e){var n,o=e.getPopupContainer,s=e.getPrefixCls,l=e.renderEmpty,f=t.props,d=f.prefixCls,p=f.className,h=void 0===p?"":p,m=f.size,_=f.mode,g=f.getPopupContainer,b=f.removeIcon,M=f.clearIcon,w=f.menuItemSelectedIcon,S=f.showArrow,C=O(f,["prefixCls","className","size","mode","getPopupContainer","removeIcon","clearIcon","menuItemSelectedIcon","showArrow"]),x=(0,c.default)(C,["inputIcon"]),k=s("select",d),L=(0,a.default)((y(n={},"".concat(k,"-lg"),"large"===m),y(n,"".concat(k,"-sm"),"small"===m),y(n,"".concat(k,"-show-arrow"),S),n),h),E=t.props.optionLabelProp;t.isCombobox()&&(E=E||"value");var T={multiple:"multiple"===_,tags:"tags"===_,combobox:t.isCombobox()},P=b&&(r.isValidElement(b)?r.cloneElement(b,{className:(0,a.default)(b.props.className,"".concat(k,"-remove-icon"))}):b)||r.createElement(u.default,{type:"close",className:"".concat(k,"-remove-icon")}),j=M&&(r.isValidElement(M)?r.cloneElement(M,{className:(0,a.default)(M.props.className,"".concat(k,"-clear-icon"))}):M)||r.createElement(u.default,{type:"close-circle",theme:"filled",className:"".concat(k,"-clear-icon")}),z=w&&(r.isValidElement(w)?r.cloneElement(w,{className:(0,a.default)(w.props.className,"".concat(k,"-selected-icon"))}):w)||r.createElement(u.default,{type:"check",className:"".concat(k,"-selected-icon")});return r.createElement(i.default,v({inputIcon:t.renderSuffixIcon(k),removeIcon:P,clearIcon:j,menuItemSelectedIcon:z,showArrow:S},x,T,{prefixCls:k,className:L,optionLabelProp:E||"children",notFoundContent:t.getNotFoundContent(l),getPopupContainer:g||o,ref:t.saveSelect}))},(0,l.default)("combobox"!==e.mode,"Select","The combobox mode is deprecated, it will be removed in next major version, please use AutoComplete instead"),t}return t=d,(n=[{key:"getNotFoundContent",value:function(e){var t=this.props.notFoundContent;return void 0!==t?t:this.isCombobox()?null:e("Select")}},{key:"focus",value:function(){this.rcSelect.focus()}},{key:"blur",value:function(){this.rcSelect.blur()}},{key:"isCombobox",value:function(){var e=this.props.mode;return"combobox"===e||e===d.SECRET_COMBOBOX_MODE_DO_NOT_USE}},{key:"renderSuffixIcon",value:function(e){var t=this.props,n=t.loading,o=t.suffixIcon;return o?r.isValidElement(o)?r.cloneElement(o,{className:(0,a.default)(o.props.className,"".concat(e,"-arrow-icon"))}):o:n?r.createElement(u.default,{type:"loading"}):r.createElement(u.default,{type:"down",className:"".concat(e,"-arrow-icon")})}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderSelect)}}])&&_(t.prototype,n),o&&_(t,o),d}(r.Component);t.default=x,x.Option=i.Option,x.OptGroup=i.OptGroup,x.SECRET_COMBOBOX_MODE_DO_NOT_USE="SECRET_COMBOBOX_MODE_DO_NOT_USE",x.defaultProps={showSearch:!1,transitionName:"slide-up",choiceTransitionName:"zoom"},x.propTypes=C},function(e,t,n){"use strict";var r=n(98),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?a:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=a;var l=Object.defineProperty,u=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=u(n);f&&(a=a.concat(f(n)));for(var c=s(t),m=s(n),v=0;v<a.length;++v){var y=a[v];if(!(i[y]||r&&r[y]||m&&m[y]||c&&c[y])){var _=d(n,y);try{l(t,y,_)}catch(e){}}}}return t}},function(e,t,n){"use strict";(function(e){n.d(t,"b",(function(){return v})),n.d(t,"a",(function(){return g}));var r=n(16),o=n.n(r),i=n(512),a=n.n(i),c=n(101),s=n.n(c),l=n(516),u=n(50),f=n(1057),d=n(513),p=n.n(d);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){o()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}e.WPML_core=e.WPML_core||{},WPML_core.ajaxInProgress=0;var v=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.method,n=void 0===t?"POST":t,r=e.contentType,o=void 0===r?"application/x-www-form-urlencoded; charset=utf-8":r;return Object(l.a)({url:ajaxurl,method:n,init:{headers:{"Content-Type":o}}})},y=(Object(u.a)(2,(function(e,t){var n=e.nonce,r=e.endpoint;return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.method,r=void 0===n?"POST":n,o=t.contentType,i=void 0===o?"application/x-www-form-urlencoded; charset=utf-8":o;return WPML_core.ajaxInProgress++,fetch(ajaxurl,{method:r,headers:{"Content-Type":i},credentials:"same-origin",body:_(e)}).then(function(){var e=a()(s.a.mark((function e(t){var n;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.ok){e.next=5;break}return e.next=3,t.json();case 3:return n=e.sent,e.abrupt("return",m(m({},t),{},{data:n}));case 5:return e.abrupt("return",m(m({},t),{},{data:{success:!1,data:{type:"ajaxError",message:t.statusText}}}));case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).finally((function(){WPML_core.ajaxInProgress--}))}(y(n,r,t))})),function(e,t,n){return{action:"wpml_action",nonce:e,endpoint:t,data:JSON.stringify(n)}}),_=Object(f.a)(p.a.stringify)({arrayFormat:"bracket"}),g=Object(u.a)(3,(function(e,t,n){return{body:_({action:"wpml_action",nonce:e,endpoint:t,data:JSON.stringify(n)})}}))}).call(this,n(61))},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=((r=n(948))&&r.__esModule?r:{default:r}).default;t.default=o},function(e,t,n){var r=n(237);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){e.exports=!n(84)&&!n(116)((function(){return 7!=Object.defineProperty(n(239)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(105),o=n(82).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(94),o=n(106),i=n(540)(!1),a=n(169)("IE_PROTO");e.exports=function(e,t){var n,c=o(e),s=0,l=[];for(n in c)n!=a&&r(c,n)&&l.push(n);for(;t.length>s;)r(c,n=t[s++])&&(~i(l,n)||l.push(n));return l}},function(e,t,n){var r=n(166);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(168),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasPrefixSuffix=b,t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(48),i=l(n(3)),a=l(n(51)),c=n(85),s=n(115);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var o=_(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=(0,c.tuple)("text","input");function b(e){return!!(e.prefix||e.suffix||e.allowClear)}var M=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(l,e);var t,n,o,c=v(l);function l(){return p(this,l),c.apply(this,arguments)}return t=l,(n=[{key:"renderClearIcon",value:function(e){var t=this.props,n=t.allowClear,o=t.value,i=t.disabled,c=t.readOnly,s=t.inputType,l=t.handleReset;if(!n||i||c||null==o||""===o)return null;var u=s===g[0]?"".concat(e,"-textarea-clear-icon"):"".concat(e,"-clear-icon");return r.createElement(a.default,{type:"close-circle",theme:"filled",onClick:l,className:u,role:"button"})}},{key:"renderSuffix",value:function(e){var t=this.props,n=t.suffix,o=t.allowClear;return n||o?r.createElement("span",{className:"".concat(e,"-suffix")},this.renderClearIcon(e),n):null}},{key:"renderLabeledIcon",value:function(e,t){var n,o=this.props,a=this.renderSuffix(e);if(!b(o))return r.cloneElement(t,{value:o.value});var c=o.prefix?r.createElement("span",{className:"".concat(e,"-prefix")},o.prefix):null,l=(0,i.default)(o.className,"".concat(e,"-affix-wrapper"),(d(n={},"".concat(e,"-affix-wrapper-sm"),"small"===o.size),d(n,"".concat(e,"-affix-wrapper-lg"),"large"===o.size),d(n,"".concat(e,"-affix-wrapper-input-with-clear-btn"),o.suffix&&o.allowClear&&this.props.value),n));return r.createElement("span",{className:l,style:o.style},c,r.cloneElement(t,{style:null,value:o.value,className:(0,s.getInputClassName)(e,o.size,o.disabled)}),a)}},{key:"renderInputWithLabel",value:function(e,t){var n,o=this.props,a=o.addonBefore,c=o.addonAfter,s=o.style,l=o.size,u=o.className;if(!a&&!c)return t;var f="".concat(e,"-group"),p="".concat(f,"-addon"),h=a?r.createElement("span",{className:p},a):null,m=c?r.createElement("span",{className:p},c):null,v=(0,i.default)("".concat(e,"-wrapper"),d({},f,a||c)),y=(0,i.default)(u,"".concat(e,"-group-wrapper"),(d(n={},"".concat(e,"-group-wrapper-sm"),"small"===l),d(n,"".concat(e,"-group-wrapper-lg"),"large"===l),n));return r.createElement("span",{className:y,style:s},r.createElement("span",{className:v},h,r.cloneElement(t,{style:null}),m))}},{key:"renderTextAreaWithClearIcon",value:function(e,t){var n=this.props,o=n.value,a=n.allowClear,c=n.className,s=n.style;if(!a)return r.cloneElement(t,{value:o});var l=(0,i.default)(c,"".concat(e,"-affix-wrapper"),"".concat(e,"-affix-wrapper-textarea-with-clear-btn"));return r.createElement("span",{className:l,style:s},r.cloneElement(t,{style:null,value:o}),this.renderClearIcon(e))}},{key:"renderClearableLabeledInput",value:function(){var e=this.props,t=e.prefixCls,n=e.inputType,r=e.element;return n===g[0]?this.renderTextAreaWithClearIcon(t,r):this.renderInputWithLabel(t,this.renderLabeledIcon(t,r))}},{key:"render",value:function(){return this.renderClearableLabeledInput()}}])&&h(t.prototype,n),o&&h(t,o),l}(r.Component);(0,o.polyfill)(M);var w=M;t.default=w},function(e,t,n){e.exports={default:n(543),__esModule:!0}},function(e,t,n){"use strict";var r=n(547)(!0);n(246)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){"use strict";var r=n(131),o=n(93),i=n(247),a=n(103),c=n(118),s=n(548),l=n(174),u=n(551),f=n(63)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,m,v,y){s(n,t,h);var _,g,b,M=function(e){if(!d&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},w=t+" Iterator",O="values"==m,S=!1,C=e.prototype,x=C[f]||C["@@iterator"]||m&&C[m],k=x||M(m),L=m?O?M("entries"):k:void 0,E="Array"==t&&C.entries||x;if(E&&(b=u(E.call(new e)))!==Object.prototype&&b.next&&(l(b,w,!0),r||"function"==typeof b[f]||a(b,f,p)),O&&x&&"values"!==x.name&&(S=!0,k=function(){return x.call(this)}),r&&!y||!d&&!S&&C[f]||a(C,f,k),c[t]=k,c[w]=p,m)if(_={values:O?k:M("values"),keys:v?k:M("keys"),entries:L},y)for(g in _)g in C||i(C,g,_[g]);else o(o.P+o.F*(d||S),t,_);return _}},function(e,t,n){e.exports=n(103)},function(e,t,n){var r=n(240),o=n(171).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(133),o=n(117),i=n(106),a=n(165),c=n(94),s=n(238),l=Object.getOwnPropertyDescriptor;t.f=n(84)?l:function(e,t){if(e=i(e),t=a(t,!0),s)try{return l(e,t)}catch(e){}if(c(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.warning=o,t.note=i,t.resetWarned=function(){r={}},t.call=a,t.warningOnce=c,t.noteOnce=function(e,t){a(i,e,t)},t.default=void 0;var r={};function o(e,t){0}function i(e,t){0}function a(e,t,n){t||r[n]||(e(!1,n),r[n]=!0)}function c(e,t){a(o,e,t)}var s=c;t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=c(n(578)),o=c(n(252)),i=c(n(253)),a=c(n(580));function c(e){return e&&e.__esModule?e:{default:e}}var s={locale:"en",Pagination:r.default,DatePicker:o.default,TimePicker:i.default,Calendar:a.default,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",selectAll:"Select current page",selectInvert:"Invert current page",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"}};t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(579)),o=i(n(253));function i(e){return e&&e.__esModule?e:{default:e}}function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var c={lang:a({placeholder:"Select date",rangePlaceholder:["Start date","End date"]},r.default),timePickerLocale:a({},o.default)};t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={placeholder:"Select time"};t.default=r},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},o={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(t,n,i,a){var c=r(t),s=o[e][r(t)];return 2===c&&(s=s[n?0:1]),s.replace(/%d/i,t)}},a=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,o,i,a){var c=t(r),s=n[e][t(r)];return 2===c&&(s=s[o?0:1]),s.replace(/%d/i,r)}},o=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},o=function(e){return function(t,o,i,a){var c=n(t),s=r[e][n(t)];return 2===c&&(s=s[o?0:1]),s.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:o("s"),ss:o("s"),m:o("m"),mm:o("m"),h:o("h"),hh:o("h"),d:o("d"),dd:o("d"),M:o("M"),MM:o("M"),y:o("y"),yy:o("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,o;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,o={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?o[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?o[1]:o[2])}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var n=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],r=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,o=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:o,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:o,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(function e(t){return t>9?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],o=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(e){return e>1&&e<5&&1!=~~(e/10)}function a(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?o+(i(e)?"sekundy":"sekund"):o+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?o+(i(e)?"minuty":"minut"):o+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?o+(i(e)?"hodiny":"hodin"):o+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?o+(i(e)?"dny":"dní"):o+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?o+(i(e)?"měsíce":"měsíců"):o+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?o+(i(e)?"roky":"let"):o+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?o[n][0]:o[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?o[n][0]:o[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?o[n][0]:o[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n,r=this._calendarEl[e],o=t&&t.hours();return n=r,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(t)),r.replace("{}",o%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],o=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha invalida"})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],o=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],o=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?o[n][2]?o[n][2]:o[n][1]:r?o[n][0]:o[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysShort:"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,r,o,i){var a="";switch(o){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":a=i?"sekunnin":"sekuntia";break;case"m":return i?"minuutin":"minuutti";case"mm":a=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":a=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":a=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":a=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":a=i?"vuoden":"vuotta"}return a=function(e,r){return e<10?r?n[e]:t[e]:e}(e,i)+" "+a}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,n=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?o[n][0]:o[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){switch(t){case"D":return e+"वेर";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?o[n][0]:o[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var o=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return o+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return o+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return o+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return o+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return o+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return o+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e){return e%100==11||e%10!=1}function n(e,n,r,o){var i=e+" ";switch(r){case"s":return n||o?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?i+(n||o?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?i+(n||o?"mínútur":"mínútum"):n?i+"mínúta":i+"mínútu";case"hh":return t(e)?i+(n||o?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return n?"dagur":o?"dag":"degi";case"dd":return t(e)?n?i+"dagar":i+(o?"daga":"dögum"):n?i+"dagur":i+(o?"dag":"degi");case"M":return n?"mánuður":o?"mánuð":"mánuði";case"MM":return t(e)?n?i+"mánuðir":i+(o?"mánuði":"mánuðum"):n?i+"mánuður":i+(o?"mánuð":"mánuði");case"y":return n||o?"ár":"ári";case"yy":return t(e)?i+(n||o?"ár":"árum"):i+(n||o?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه".split("_"),weekdaysShort:"یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره|بهیانی/,isPM:function(e){return/ئێواره/.test(e)},meridiem:function(e,t,n){return e<12?"بهیانی":"ئێواره"},calendar:{sameDay:"[ئهمرۆ كاتژمێر] LT",nextDay:"[بهیانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له %s",past:"%s",s:"چهند چركهیهك",ss:"چركه %d",m:"یهك خولهك",mm:"%d خولهك",h:"یهك كاتژمێر",hh:"%d كاتژمێر",d:"یهك ڕۆژ",dd:"%d ڕۆژ",M:"یهك مانگ",MM:"%d مانگ",y:"یهك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?o[n][0]:o[n][1]}function n(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return n(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?o(n)[0]:r?o(n)[1]:o(n)[2]}function r(e){return e%10==0||e>10&&e<20}function o(e){return t[e].split("_")}function i(e,t,i,a){var c=e+" ";return 1===e?c+n(0,t,i[0],a):t?c+(r(e)?o(i)[1]:o(i)[0]):a?c+o(i)[1]:c+(r(e)?o(i)[1]:o(i)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,o){return e+" "+n(t[o],e,r)}function o(e,r,o){return n(t[o],e,r)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:r,m:o,mm:r,h:o,hh:r,d:o,dd:r,M:o,MM:r,y:o,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var o=t.words[r];return 1===r.length?n?o[0]:o[1]:e+" "+t.correctGrammaticalCase(e,o)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var o="";if(t)switch(n){case"s":o="काही सेकंद";break;case"ss":o="%d सेकंद";break;case"m":o="एक मिनिट";break;case"mm":o="%d मिनिटे";break;case"h":o="एक तास";break;case"hh":o="%d तास";break;case"d":o="एक दिवस";break;case"dd":o="%d दिवस";break;case"M":o="एक महिना";break;case"MM":o="%d महिने";break;case"y":o="एक वर्ष";break;case"yy":o="%d वर्षे"}else switch(n){case"s":o="काही सेकंदां";break;case"ss":o="%d सेकंदां";break;case"m":o="एका मिनिटा";break;case"mm":o="%d मिनिटां";break;case"h":o="एका तासा";break;case"hh":o="%d तासां";break;case"d":o="एका दिवसा";break;case"dd":o="%d दिवसां";break;case"M":o="एका महिन्या";break;case"MM":o="%d महिन्यां";break;case"y":o="एका वर्षा";break;case"yy":o="%d वर्षां"}return o.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],o=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],o=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:o,monthsShortRegex:o,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function r(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function o(e,t,n){var o=e+" ";switch(n){case"ss":return o+(r(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return o+(r(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return o+(r(e)?"godziny":"godzin");case"MM":return o+(r(e)?"miesiące":"miesięcy");case"yy":return o+(r(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?""===r?"("+n[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:o,m:o,mm:o,h:o,hh:o,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:o,y:"rok",yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,o;return"m"===n?t?"минута":"минуту":e+" "+(r=+e,o={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?o[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?o[1]:o[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(e){return e>1&&e<5}function o(e,t,n,o){var i=e+" ";switch(n){case"s":return t||o?"pár sekúnd":"pár sekundami";case"ss":return t||o?i+(r(e)?"sekundy":"sekúnd"):i+"sekundami";case"m":return t?"minúta":o?"minútu":"minútou";case"mm":return t||o?i+(r(e)?"minúty":"minút"):i+"minútami";case"h":return t?"hodina":o?"hodinu":"hodinou";case"hh":return t||o?i+(r(e)?"hodiny":"hodín"):i+"hodinami";case"d":return t||o?"deň":"dňom";case"dd":return t||o?i+(r(e)?"dni":"dní"):i+"dňami";case"M":return t||o?"mesiac":"mesiacom";case"MM":return t||o?i+(r(e)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return t||o?"rok":"rokom";case"yy":return t||o?i+(r(e)?"roky":"rokov"):i+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return o+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return o+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return o+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return o+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return o+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return o+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var o=t.words[r];return 1===r.length?n?o[0]:o[1]:e+" "+t.correctGrammaticalCase(e,o)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var o=t.words[r];return 1===r.length?n?o[0]:o[1]:e+" "+t.correctGrammaticalCase(e,o)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,r,o){var i=function(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),o=e%10,i="";return n>0&&(i+=t[n]+"vatlh"),r>0&&(i+=(""!==i?" ":"")+t[r]+"maH"),o>0&&(i+=(""!==i?" ":"")+t[o]),""===i?"pagh":i}(e);switch(r){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n,r){var o={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?o[n][0]:o[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js language configuration e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration function t(e,t,n){var r,o;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,o={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?o[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?o[1]:o[2])}function n(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(4))},function(e,t,n){!function(e){"use strict"; //! moment.js locale configuration e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(4))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var r,o=(r=n(69))&&r.__esModule?r:{default:r};var i=0,a={};function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=i++,r=t;function c(){(r-=1)<=0?(e(),delete a[n]):a[n]=(0,o.default)(c)}return a[n]=(0,o.default)(c),n}c.cancel=function(e){void 0!==e&&(o.default.cancel(a[e]),delete a[e])},c.ids=a},function(e,t){e.exports=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;++n)if(e[n]===t)return n;return-1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storeShape=void 0;var r,o=n(1),i=(r=o)&&r.__esModule?r:{default:r};t.storeShape=i.default.shape({subscribe:i.default.func.isRequired,setState:i.default.func.isRequired,getState:i.default.func.isRequired})},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if("undefined"==typeof document)return 0;if(e||void 0===r){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),o=n.style;o.position="absolute",o.top=0,o.left=0,o.pointerEvents="none",o.visibility="hidden",o.width="200px",o.height="150px",o.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var i=t.offsetWidth;n.style.overflow="scroll";var a=t.offsetWidth;i===a&&(a=n.clientWidth),document.body.removeChild(n),r=i-a}return r}},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(637)),c=r(n(65));var s=function(e){var t=e.stickyOffsets,n=e.columns,r=e.flattenColumns,o=e.onHeaderRow,s=i.useContext(c.default),l=s.prefixCls,u=s.getComponent,f=i.useMemo((function(){return function(e){var t=[];!function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t[o]=t[o]||[];var i=r,a=n.filter(Boolean).map((function(n){var r={key:n.key,className:n.className||"",children:n.title,column:n,colStart:i},a=1,c=n.children;return c&&c.length>0&&(a=e(c,i,o+1).reduce((function(e,t){return e+t}),0),r.hasSubColumns=!0),"colSpan"in n&&(a=n.colSpan),"rowSpan"in n&&(r.rowSpan=n.rowSpan),r.colSpan=a,r.colEnd=r.colStart+a-1,t[o].push(r),i+=a,a}));return a}(e,0);for(var n=t.length,r=function(e){t[e].forEach((function(t){"rowSpan"in t||t.hasSubColumns||(t.rowSpan=n-e)}))},o=0;o<n;o+=1)r(o);return t}(n)}),[n]),d=u(["header","wrapper"],"thead"),p=u(["header","row"],"tr"),h=u(["header","cell"],"th");return i.createElement(d,{className:"".concat(l,"-thead")},f.map((function(e,n){return i.createElement(a.default,{key:n,flattenColumns:r,cells:e,stickyOffsets:t,rowComponent:p,cellComponent:h,onHeaderRow:o,index:n})})))};t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getCellFixedInfo=function(e,t,n,r,o){var i,a,c=n[e]||{},s=n[t]||{};"left"===c.fixed?i=r.left[e]:"right"===s.fixed&&(a=r.right[t]);var l=!1,u=!1,f=!1,d=!1,p=n[t+1],h=n[e-1];if("rtl"===o){if(void 0!==i){var m=h&&"left"===h.fixed;d=!m}else if(void 0!==a){var v=p&&"right"===p.fixed;f=!v}}else if(void 0!==i){var y=p&&"left"===p.fixed;l=!y}else if(void 0!==a){var _=h&&"right"===h.fixed;u=!_}return{fixLeft:i,fixRight:a,lastFixLeft:l,firstFixRight:u,lastFixRight:f,firstFixLeft:d,isSticky:r.isSticky}}},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(14)),a=r(n(0)),c=n(180);var s=function(e){for(var t=e.colWidths,n=e.columns,r=[],o=!1,s=(e.columCount||n.length)-1;s>=0;s-=1){var l=t[s],u=n&&n[s],f=u&&u[c.INTERNAL_COL_DEFINE];(l||f||o)&&(r.unshift(a.createElement("col",(0,i.default)({key:s,style:{width:l,minWidth:l}},f))),o=!0)}return a.createElement("colgroup",null,r)};t.default=s},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(138)),c=r(n(65));var s=function(e){var t=e.prefixCls,n=e.children,r=e.component,o=e.cellComponent,s=e.fixHeader,l=e.fixColumn,u=e.horizonScroll,f=e.className,d=e.expanded,p=e.componentWidth,h=e.colSpan,m=i.useContext(c.default).scrollbarSize;return i.useMemo((function(){var e=n;return l&&(e=i.createElement("div",{style:{width:p-(s?m:0),position:"sticky",left:0,overflow:"hidden"},className:"".concat(t,"-expanded-row-fixed")},e)),i.createElement(r,{className:f,style:{display:d?null:"none"}},i.createElement(a.default,{component:o,prefixCls:t,colSpan:h},e))}),[n,r,s,u,f,d,p,h,m])};t.default=s},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)).createContext(null);t.default=o},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.convertChildrenToColumns=d,t.default=void 0;var i=o(n(16)),a=o(n(58)),c=o(n(57)),s=o(n(71)),l=r(n(0)),u=(o(n(86)),o(n(182))),f=n(180);function d(e){return(0,u.default)(e).filter((function(e){return l.isValidElement(e)})).map((function(e){var t=e.key,n=e.props,r=n.children,o=(0,s.default)(n,["children"]),i=(0,c.default)({key:t},o);return r&&(i.children=d(r)),i}))}function p(e){return e.reduce((function(e,t){var n=t.fixed,r=!0===n?"left":n,o=t.children;return o&&o.length>0?[].concat((0,a.default)(e),(0,a.default)(p(o).map((function(e){return(0,c.default)({fixed:r},e)})))):[].concat((0,a.default)(e),[(0,c.default)((0,c.default)({},t),{},{fixed:r})])}),[])}var h=function(e,t){var n=e.prefixCls,r=e.columns,o=e.children,a=e.expandable,u=e.expandedKeys,h=e.getRowKey,m=e.onTriggerExpand,v=e.expandIcon,y=e.rowExpandable,_=e.expandIconColumnIndex,g=e.direction,b=e.expandRowByClick,M=e.columnWidth,w=l.useMemo((function(){return r||d(o)}),[r,o]),O=l.useMemo((function(){if(a){var e,t=_||0,r=w[t],o=(e={},(0,i.default)(e,f.INTERNAL_COL_DEFINE,{className:"".concat(n,"-expand-icon-col")}),(0,i.default)(e,"title",""),(0,i.default)(e,"fixed",r?r.fixed:null),(0,i.default)(e,"className","".concat(n,"-row-expand-icon-cell")),(0,i.default)(e,"width",M),(0,i.default)(e,"render",(function(e,t,r){var o=h(t,r),i=u.has(o),a=!y||y(t),c=v({prefixCls:n,expanded:i,expandable:a,record:t,onExpand:m});return b?l.createElement("span",{onClick:function(e){return e.stopPropagation()}},c):c})),e),c=w.slice();return t>=0&&c.splice(t,0,o),c}return w}),[a,w,h,u,v,g]),S=l.useMemo((function(){var e=O;return t&&(e=t(e)),e.length||(e=[{render:function(){return null}}]),e}),[t,O,g]),C=l.useMemo((function(){return"rtl"===g?function(e){return e.map((function(e){var t=e.fixed,n=(0,s.default)(e,["fixed"]),r=t;return"left"===t?r="right":"right"===t&&(r="left"),(0,c.default)({fixed:r},n)}))}(p(S)):p(S)}),[S,g]);return[S,C]};t.default=h},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.useLayoutState=function(e){var t=(0,i.useRef)(e),n=(0,i.useState)({}),r=(0,o.default)(n,2)[1],a=(0,i.useRef)(null),c=(0,i.useRef)([]);return(0,i.useEffect)((function(){return function(){a.current=null}}),[]),[t.current,function(e){c.current.push(e);var n=Promise.resolve();a.current=n,n.then((function(){if(a.current===n){var e=c.current,o=t.current;c.current=[],e.forEach((function(e){t.current=e(t.current)})),a.current=null,o!==t.current&&r({})}}))}]},t.useTimeoutLock=function(e){var t=(0,i.useRef)(e||null),n=(0,i.useRef)();function r(){window.clearTimeout(n.current)}return(0,i.useEffect)((function(){return r}),[]),[function(e){t.current=e,r(),n.current=window.setTimeout((function(){t.current=null,n.current=void 0}),100)},function(){return t.current}]};var o=r(n(32)),i=n(0)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return!("undefined"==typeof window||!window.document||!window.document.createElement)}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(61))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(14)),i=r(n(669)),a=r(n(406)),c={lang:(0,o.default)({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},i.default),timePickerLocale:(0,o.default)({},a.default)};t.default=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={placeholder:"Select time",rangePlaceholder:["Start time","End time"]};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=(0,n(0).createContext)(void 0);t.default=r},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=n(33),u=r(n(187)),f=r(n(673)),d=r(n(674));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=c.createElement(f.default,null),v=c.createElement(d.default,null),y=function(e){var t=e.className,n=e.prefixCls,r=e.image,o=void 0===r?m:r,f=e.description,d=e.children,p=e.imageStyle,y=h(e,["className","prefixCls","image","description","children","imageStyle"]),_=c.useContext(l.ConfigContext),g=_.getPrefixCls,b=_.direction;return c.createElement(u.default,{componentName:"Empty"},(function(e){var r,l=g("empty",n),u=void 0!==f?f:e.description,h="string"==typeof u?u:"empty",m=null;return m="string"==typeof o?c.createElement("img",{alt:h,src:o}):o,c.createElement("div",(0,i.default)({className:(0,s.default)(l,(r={},(0,a.default)(r,"".concat(l,"-normal"),o===v),(0,a.default)(r,"".concat(l,"-rtl"),"rtl"===b),r),t)},y),c.createElement("div",{className:"".concat(l,"-image"),style:p},m),u&&c.createElement("div",{className:"".concat(l,"-description")},u),d&&c.createElement("div",{className:"".concat(l,"-footer")},d))}))};y.PRESENTED_IMAGE_DEFAULT=m,y.PRESENTED_IMAGE_SIMPLE=v;var _=y;t.default=_},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.getKeyThenIncreaseKey=function(){return O++},t.attachTypeApi=j,t.default=t.getInstance=void 0;var i,a=r(n(14)),c=r(n(16)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=_(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),l=r(n(3)),u=r(n(495)),f=r(n(189)),d=r(n(679)),p=r(n(412)),h=r(n(684)),m=r(n(687)),v=r(n(690)),y=n(33);function _(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(_=function(e){return e?n:t})(e)}var g,b,M,w=3,O=1,S="",C="move-up",x=!1,k=!1;function L(e,t){var n=e.prefixCls,r=(0,y.globalConfig)(),o=r.getPrefixCls,a=r.getRootPrefixCls,c=o("message",n||S),s=a(e.rootPrefixCls,c);if(i)t({prefixCls:c,rootPrefixCls:s,instance:i});else{var l={prefixCls:c,transitionName:x?C:"".concat(s,"-").concat(C),style:{top:g},getContainer:b,maxCount:M};u.default.newInstance(l,(function(e){i?t({prefixCls:c,rootPrefixCls:s,instance:i}):(i=e,t({prefixCls:c,rootPrefixCls:s,instance:e}))}))}}var E={info:m.default,success:h.default,error:p.default,warning:d.default,loading:f.default};function T(e,t){var n,r=void 0!==e.duration?e.duration:w,o=E[e.type],i=(0,l.default)("".concat(t,"-custom-content"),(n={},(0,c.default)(n,"".concat(t,"-").concat(e.type),e.type),(0,c.default)(n,"".concat(t,"-rtl"),!0===k),n));return{key:e.key,duration:r,style:e.style||{},className:e.className,content:s.createElement("div",{className:i},e.icon||o&&s.createElement(o,null),s.createElement("span",null,e.content)),onClose:e.onClose,onClick:e.onClick}}var P={open:function(e){var t=e.key||O++,n=new Promise((function(n){var r=function(){return"function"==typeof e.onClose&&e.onClose(),n(!0)};L(e,(function(n){var o=n.prefixCls;n.instance.notice(T((0,a.default)((0,a.default)({},e),{key:t,onClose:r}),o))}))})),r=function(){i&&i.removeNotice(t)};return r.then=function(e,t){return n.then(e,t)},r.promise=n,r},config:function(e){void 0!==e.top&&(g=e.top,i=null),void 0!==e.duration&&(w=e.duration),void 0!==e.prefixCls&&(S=e.prefixCls),void 0!==e.getContainer&&(b=e.getContainer),void 0!==e.transitionName&&(C=e.transitionName,i=null,x=!0),void 0!==e.maxCount&&(M=e.maxCount,i=null),void 0!==e.rtl&&(k=e.rtl)},destroy:function(e){if(i)if(e){(0,i.removeNotice)(e)}else{var t=i.destroy;t(),i=null}}};function j(e,t){e[t]=function(n,r,o){return function(e){return"[object Object]"===Object.prototype.toString.call(e)&&!!e.content}(n)?e.open((0,a.default)((0,a.default)({},n),{type:t})):("function"==typeof r&&(o=r,r=void 0),e.open({content:n,duration:r,type:t,onClose:o}))}}["success","info","warning","error","loading"].forEach((function(e){return j(P,e)})),P.warn=P.warning,P.useMessage=(0,v.default)(L,T);t.getInstance=function(){return null};var z=P;t.default=z},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(71)),i=r(n(57)),a=n(190),c={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};var s=function(e){var t=e.icon,n=e.className,r=e.onClick,s=e.style,l=e.primaryColor,u=e.secondaryColor,f=(0,o.default)(e,["icon","className","onClick","style","primaryColor","secondaryColor"]),d=c;if(l&&(d={primaryColor:l,secondaryColor:u||(0,a.getSecondaryColor)(l)}),(0,a.useInsertStyles)(),(0,a.warning)((0,a.isIconDefinition)(t),"icon should be icon definiton, but got ".concat(t)),!(0,a.isIconDefinition)(t))return null;var p=t;return p&&"function"==typeof p.icon&&(p=(0,i.default)((0,i.default)({},p),{},{icon:p.icon(d.primaryColor,d.secondaryColor)})),(0,a.generate)(p.icon,"svg-".concat(p.name),(0,i.default)({className:n,onClick:r,style:s,"data-icon":p.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},f))};s.displayName="IconReact",s.getTwoToneColors=function(){return(0,i.default)({},c)},s.setTwoToneColors=function(e){var t=e.primaryColor,n=e.secondaryColor;c.primaryColor=t,c.secondaryColor=n||(0,a.getSecondaryColor)(t),c.calculated=!!n};var l=s;t.default=l},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.injectCSS=a,t.updateCSS=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=i(n);if(!c.has(r)){var o=a("",n),s=o.parentNode;c.set(r,s),s.removeChild(o)}var l=Array.from(c.get(r).children).find((function(e){return"STYLE"===e.tagName&&e["rc-util-key"]===t}));if(l){var u,f,d;if((null===(u=n.csp)||void 0===u?void 0:u.nonce)&&l.nonce!==(null===(f=n.csp)||void 0===f?void 0:f.nonce))l.nonce=null===(d=n.csp)||void 0===d?void 0:d.nonce;return l.innerHTML!==e&&(l.innerHTML=e),l}var p=a(e,n);return p["rc-util-key"]=t,p};var o=r(n(402));function i(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function a(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,o.default)())return null;var r,a=document.createElement("style");(null===(t=n.csp)||void 0===t?void 0:t.nonce)&&(a.nonce=null===(r=n.csp)||void 0===r?void 0:r.nonce);a.innerHTML=e;var c=i(n),s=c.firstChild;return n.prepend&&c.prepend?c.prepend(a):n.prepend&&s?c.insertBefore(a,s):c.appendChild(a),a}var c=new Map},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(682))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=s.useRef({}),n=s.useState([]),r=(0,c.default)(n,2),o=r[0],u=r[1];return[function(n){var r=!0;e.add(n,(function(e,n){var o=n.key;if(e&&(!t.current[o]||r)){var c=s.createElement(l.default,(0,a.default)({},n,{holder:e}));t.current[o]=c,u((function(e){var t=e.findIndex((function(e){return e.key===n.key}));if(-1===t)return[].concat((0,i.default)(e),[c]);var r=(0,i.default)(e);return r[t]=c,r}))}r=!1}))},s.createElement(s.Fragment,null,o)]};var i=o(n(58)),a=o(n(14)),c=o(n(32)),s=r(n(0)),l=o(n(691))},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(694))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(711))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(14)),c=v(n(0)),s=r(n(95)),l=r(n(3)),u=v(n(1048)),f=n(33),d=r(n(722)),p=r(n(122)),h=n(192);function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(m=function(e){return e?n:t})(e)}function v(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=m(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}var y=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},_=function(e,t){var n,r,o=e.prefixCls,m=e.bordered,v=void 0===m||m,_=e.className,g=e.getPopupContainer,b=e.dropdownClassName,M=e.listHeight,w=void 0===M?256:M,O=e.listItemHeight,S=void 0===O?24:O,C=e.size,x=e.notFoundContent,k=y(e,["prefixCls","bordered","className","getPopupContainer","dropdownClassName","listHeight","listItemHeight","size","notFoundContent"]),L=c.useContext(f.ConfigContext),E=L.getPopupContainer,T=L.getPrefixCls,P=L.renderEmpty,j=L.direction,z=L.virtual,D=L.dropdownMatchSelectWidth,N=c.useContext(p.default),H=T("select",o),A=T(),Y=c.useMemo((function(){var e=k.mode;if("combobox"!==e)return"SECRET_COMBOBOX_MODE_DO_NOT_USE"===e?"combobox":e}),[k.mode]),I="multiple"===Y||"tags"===Y;r=void 0!==x?x:"combobox"===Y?null:P("Select");var V=(0,d.default)((0,a.default)((0,a.default)({},k),{multiple:I,prefixCls:H})),F=V.suffixIcon,R=V.itemIcon,W=V.removeIcon,U=V.clearIcon,B=(0,s.default)(k,["suffixIcon","itemIcon"]),K=(0,l.default)(b,(0,i.default)({},"".concat(H,"-dropdown-").concat(j),"rtl"===j)),q=C||N,G=(0,l.default)((n={},(0,i.default)(n,"".concat(H,"-lg"),"large"===q),(0,i.default)(n,"".concat(H,"-sm"),"small"===q),(0,i.default)(n,"".concat(H,"-rtl"),"rtl"===j),(0,i.default)(n,"".concat(H,"-borderless"),!v),n),_);return c.createElement(u.default,(0,a.default)({ref:t,virtual:z,dropdownMatchSelectWidth:D},B,{transitionName:(0,h.getTransitionName)(A,"slide-up",k.transitionName),listHeight:w,listItemHeight:S,mode:Y,prefixCls:H,direction:j,inputIcon:F,menuItemSelectedIcon:R,removeIcon:W,clearIcon:U,notFoundContent:r,className:G,getPopupContainer:g||E,dropdownClassName:K}))},g=c.forwardRef(_);g.SECRET_COMBOBOX_MODE_DO_NOT_USE="SECRET_COMBOBOX_MODE_DO_NOT_USE",g.Option=u.Option,g.OptGroup=u.OptGroup;var b=g;t.default=b},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(723))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(32)),i=n(0),a=r(n(731));var c=function(){var e=(0,i.useState)({}),t=(0,o.default)(e,2),n=t[0],r=t[1];return(0,i.useEffect)((function(){var e=a.default.subscribe((function(e){r(e)}));return function(){return a.default.unsubscribe(e)}}),[]),n};t.default=c},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.getKey=f,t.warningWithoutKey=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Map;function n(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(e||[]).forEach((function(e){var o=e.key,i=e.children;(0,l.default)(null!=o,"Tree node must have a certain key: [".concat(r).concat(o,"]"));var a=String(o);(0,l.default)(!t.has(a)||null==o,"Same 'key' exist in the Tree: ".concat(a)),t.set(a,!0),n(i,"".concat(r).concat(a," > "))}))}n(e)},t.convertTreeToData=function(e){return function e(t){return(0,s.default)(t).map((function(t){if(!(0,u.isTreeNode)(t))return(0,l.default)(!t,"Tree/TreeNode can only accept TreeNode as children."),null;var n=t.key,r=t.props,o=r.children,i=(0,c.default)(r,["children"]),s=(0,a.default)({key:n},i),f=e(o);return f.length&&(s.children=f),s})).filter((function(e){return e}))}(e)},t.flattenTreeData=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=new Set(!0===t?[]:t),r=[];function o(e){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e.map((function(s,l){var d=(0,u.getPosition)(c?c.pos:"0",l),p=f(s.key,d),h=(0,a.default)((0,a.default)({},s),{},{parent:c,pos:d,children:null,data:s,isStart:[].concat((0,i.default)(c?c.isStart:[]),[0===l]),isEnd:[].concat((0,i.default)(c?c.isEnd:[]),[l===e.length-1])});return r.push(h),!0===t||n.has(p)?h.children=o(s.children||[],h):h.children=[],h}))}return o(e),r},t.traverseDataNodes=d,t.convertDataToEntities=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initWrapper,r=t.processEntity,o=t.onProcessFinished,i=t.externalGetKey,a=t.childrenPropName,c=arguments.length>2?arguments[2]:void 0,s=i||c,l={},u={},p={posEntities:l,keyEntities:u};n&&(p=n(p)||p);d(e,(function(e){var t=e.node,n=e.index,o=e.pos,i=e.key,a=e.parentPos,c={node:t,index:n,key:i,pos:o,level:e.level},s=f(i,o);l[o]=c,u[s]=c,c.parent=l[a],c.parent&&(c.parent.children=c.parent.children||[],c.parent.children.push(c)),r&&r(c,p)}),{externalGetKey:s,childrenPropName:a}),o&&o(p);return p},t.getTreeNodeProps=function(e,t){var n=t.expandedKeys,r=t.selectedKeys,o=t.loadedKeys,i=t.loadingKeys,a=t.checkedKeys,c=t.halfCheckedKeys,s=t.dragOverNodeKey,l=t.dropPosition,u=t.keyEntities[e];return{eventKey:e,expanded:-1!==n.indexOf(e),selected:-1!==r.indexOf(e),loaded:-1!==o.indexOf(e),loading:-1!==i.indexOf(e),checked:-1!==a.indexOf(e),halfChecked:-1!==c.indexOf(e),pos:String(u?u.pos:""),dragOver:s===e&&0===l,dragOverGapTop:s===e&&-1===l,dragOverGapBottom:s===e&&1===l}},t.convertNodePropsToEventData=function(e){var t=e.data,n=e.expanded,r=e.selected,o=e.checked,i=e.loaded,c=e.loading,s=e.halfChecked,u=e.dragOver,f=e.dragOverGapTop,d=e.dragOverGapBottom,p=e.pos,h=e.active,m=(0,a.default)((0,a.default)({},t),{},{expanded:n,selected:r,checked:o,loaded:i,loading:c,halfChecked:s,dragOver:u,dragOverGapTop:f,dragOverGapBottom:d,pos:p,active:h});"props"in m||Object.defineProperty(m,"props",{get:function(){return(0,l.default)(!1,"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`."),e}});return m};var o=r(n(9)),i=r(n(58)),a=r(n(57)),c=r(n(71)),s=r(n(182)),l=r(n(86)),u=n(193);function f(e,t){return null!=e?e:t}function d(e,t,n){var r,i,a=null,c=(0,o.default)(n);"function"===c||"string"===c?a=n:n&&"object"===c&&(r=n.childrenPropName,a=n.externalGetKey),r=r||"children",a?"string"==typeof a?i=function(e){return e[a]}:"function"==typeof a&&(i=function(e){return a(e)}):i=function(e,t){return f(e.key,t)},function n(o,a,c){var s=o?o[r]:e,l=o?(0,u.getPosition)(c.pos,a):"0";if(o){var f=i(o,l),d={node:o,index:a,pos:l,key:f,parentPos:c.node?c.pos:null,level:c.level+1};t(d)}s&&s.forEach((function(e,t){n(e,t,{node:o,pos:l,level:c?c.level+1:-1})}))}(null)}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(421)),i=r(n(423)),a=o.default;a.Group=i.default,a.__ANT_CHECKBOX=!0;var c=a;t.default=c},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(14)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=r(n(422)),u=n(423),f=n(33),d=r(n(87));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=function(e,t){var n,r=e.prefixCls,o=e.className,p=e.children,m=e.indeterminate,v=void 0!==m&&m,y=e.style,_=e.onMouseEnter,g=e.onMouseLeave,b=e.skipGroup,M=void 0!==b&&b,w=h(e,["prefixCls","className","children","indeterminate","style","onMouseEnter","onMouseLeave","skipGroup"]),O=c.useContext(f.ConfigContext),S=O.getPrefixCls,C=O.direction,x=c.useContext(u.GroupContext),k=c.useRef(w.value);c.useEffect((function(){null==x||x.registerValue(w.value),(0,d.default)("checked"in w||!!x||!("value"in w),"Checkbox","`value` is not a valid prop, do you mean `checked`?")}),[]),c.useEffect((function(){if(!M)return w.value!==k.current&&(null==x||x.cancelValue(k.current),null==x||x.registerValue(w.value)),function(){return null==x?void 0:x.cancelValue(w.value)}}),[w.value]);var L=S("checkbox",r),E=(0,a.default)({},w);x&&!M&&(E.onChange=function(){w.onChange&&w.onChange.apply(w,arguments),x.toggleOption&&x.toggleOption({label:p,value:w.value})},E.name=x.name,E.checked=-1!==x.value.indexOf(w.value),E.disabled=w.disabled||x.disabled);var T=(0,s.default)((n={},(0,i.default)(n,"".concat(L,"-wrapper"),!0),(0,i.default)(n,"".concat(L,"-rtl"),"rtl"===C),(0,i.default)(n,"".concat(L,"-wrapper-checked"),E.checked),(0,i.default)(n,"".concat(L,"-wrapper-disabled"),E.disabled),n),o),P=(0,s.default)((0,i.default)({},"".concat(L,"-indeterminate"),v));return c.createElement("label",{className:T,style:y,onMouseEnter:_,onMouseLeave:g},c.createElement(l.default,(0,a.default)({},E,{prefixCls:L,className:P,ref:t})),void 0!==p&&c.createElement("span",null,p))},v=c.forwardRef(m);v.displayName="Checkbox";var y=v;t.default=y},function(e,t,n){"use strict";n.r(t);var r=n(8),o=n(6),i=n(21),a=n(2),c=n(27),s=n(28),l=n(30),u=n(29),f=n(0),d=n.n(f),p=n(3),h=n.n(p),m=function(e){Object(l.a)(n,e);var t=Object(u.a)(n);function n(e){var r;Object(c.a)(this,n),(r=t.call(this,e)).handleChange=function(e){var t=r.props,n=t.disabled,o=t.onChange;n||("checked"in r.props||r.setState({checked:e.target.checked}),o&&o({target:Object(a.a)(Object(a.a)({},r.props),{},{checked:e.target.checked}),stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},nativeEvent:e.nativeEvent}))},r.saveInput=function(e){r.input=e};var o="checked"in e?e.checked:e.defaultChecked;return r.state={checked:o},r}return Object(s.a)(n,[{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"render",value:function(){var e,t=this.props,n=t.prefixCls,a=t.className,c=t.style,s=t.name,l=t.id,u=t.type,f=t.disabled,p=t.readOnly,m=t.tabIndex,v=t.onClick,y=t.onFocus,_=t.onBlur,g=t.onKeyDown,b=t.onKeyPress,M=t.onKeyUp,w=t.autoFocus,O=t.value,S=t.required,C=Object(i.a)(t,["prefixCls","className","style","name","id","type","disabled","readOnly","tabIndex","onClick","onFocus","onBlur","onKeyDown","onKeyPress","onKeyUp","autoFocus","value","required"]),x=Object.keys(C).reduce((function(e,t){return"aria-"!==t.substr(0,5)&&"data-"!==t.substr(0,5)&&"role"!==t||(e[t]=C[t]),e}),{}),k=this.state.checked,L=h()(n,a,(e={},Object(o.a)(e,"".concat(n,"-checked"),k),Object(o.a)(e,"".concat(n,"-disabled"),f),e));return d.a.createElement("span",{className:L,style:c},d.a.createElement("input",Object(r.a)({name:s,id:l,type:u,required:S,readOnly:p,disabled:f,tabIndex:m,className:"".concat(n,"-input"),checked:!!k,onClick:v,onFocus:y,onBlur:_,onKeyUp:M,onKeyDown:g,onKeyPress:b,onChange:this.handleChange,autoFocus:w,ref:this.saveInput,value:O},x)),d.a.createElement("span",{className:"".concat(n,"-inner")}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return"checked"in e?Object(a.a)(Object(a.a)({},t),{},{checked:e.checked}):null}}]),n}(f.Component);m.defaultProps={prefixCls:"rc-checkbox",className:"",style:{},type:"checkbox",defaultChecked:!1,onFocus:function(){},onBlur:function(){},onChange:function(){},onKeyDown:function(){},onKeyPress:function(){},onKeyUp:function(){}},t.default=m},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.GroupContext=void 0;var i=r(n(14)),a=r(n(16)),c=r(n(58)),s=r(n(32)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),u=r(n(3)),f=r(n(95)),d=r(n(421)),p=n(33);function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}var m=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},v=l.createContext(null);t.GroupContext=v;var y=function(e,t){var n=e.defaultValue,r=e.children,o=e.options,h=void 0===o?[]:o,y=e.prefixCls,_=e.className,g=e.style,b=e.onChange,M=m(e,["defaultValue","children","options","prefixCls","className","style","onChange"]),w=l.useContext(p.ConfigContext),O=w.getPrefixCls,S=w.direction,C=l.useState(M.value||n||[]),x=(0,s.default)(C,2),k=x[0],L=x[1],E=l.useState([]),T=(0,s.default)(E,2),P=T[0],j=T[1];l.useEffect((function(){"value"in M&&L(M.value||[])}),[M.value]);var z=function(){return h.map((function(e){return"string"==typeof e?{label:e,value:e}:e}))},D=O("checkbox",y),N="".concat(D,"-group"),H=(0,f.default)(M,["value","disabled"]);h&&h.length>0&&(r=z().map((function(e){return l.createElement(d.default,{prefixCls:D,key:e.value.toString(),disabled:"disabled"in e?e.disabled:M.disabled,value:e.value,checked:-1!==k.indexOf(e.value),onChange:e.onChange,className:"".concat(N,"-item"),style:e.style},e.label)})));var A={toggleOption:function(e){var t=k.indexOf(e.value),n=(0,c.default)(k);-1===t?n.push(e.value):n.splice(t,1),"value"in M||L(n);var r=z();null==b||b(n.filter((function(e){return-1!==P.indexOf(e)})).sort((function(e,t){return r.findIndex((function(t){return t.value===e}))-r.findIndex((function(e){return e.value===t}))})))},value:k,disabled:M.disabled,name:M.name,registerValue:function(e){j((function(t){return[].concat((0,c.default)(t),[e])}))},cancelValue:function(e){j((function(t){return t.filter((function(t){return t!==e}))}))}},Y=(0,u.default)(N,(0,a.default)({},"".concat(N,"-rtl"),"rtl"===S),_);return l.createElement("div",(0,i.default)({className:Y,style:g},H,{ref:t}),l.createElement(v.Provider,{value:A},r))},_=l.forwardRef(y),g=l.memo(_);t.default=g},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(425)).default;t.default=o},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(1056)),l=r(n(3)),u=r(n(191)),f=r(n(740)),d=n(33),p=r(n(87)),h=n(140),m=n(88);function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}(0,h.tuple)("topLeft","topCenter","topRight","bottomLeft","bottomCenter","bottomRight");var y=function(e){var t,n,r,o,f,h=c.useContext(d.ConfigContext),v=h.getPopupContainer,y=h.getPrefixCls,_=h.direction,g=e.arrow,b=e.prefixCls,M=e.children,w=e.trigger,O=e.disabled,S=e.getPopupContainer,C=e.overlayClassName,x=y("dropdown",b),k=c.Children.only(M),L=(0,m.cloneElement)(k,{className:(0,l.default)("".concat(x,"-trigger"),(0,a.default)({},"".concat(x,"-rtl"),"rtl"===_),k.props.className),disabled:O}),E=(0,l.default)(C,(0,a.default)({},"".concat(x,"-rtl"),"rtl"===_)),T=O?[]:w;return T&&-1!==T.indexOf("contextMenu")&&(t=!0),c.createElement(s.default,(0,i.default)({arrow:g,alignPoint:t},e,{overlayClassName:E,prefixCls:x,getPopupContainer:S||v,transitionName:(n=y(),r=e.placement,o=void 0===r?"":r,f=e.transitionName,void 0!==f?f:o.indexOf("top")>=0?"".concat(n,"-slide-down"):"".concat(n,"-slide-up")),trigger:T,overlay:function(){return function(t){var n,r=e.overlay;n="function"==typeof r?r():r;var o=(n=c.Children.only("string"==typeof n?c.createElement("span",null,n):n)).props;(0,p.default)(!o.mode||"vertical"===o.mode,"Dropdown",'mode="'.concat(o.mode,"\" is not supported for Dropdown's Menu."));var i=o.selectable,a=void 0!==i&&i,s=o.focusable,l=void 0===s||s,f=o.expandIcon,d=void 0!==f&&c.isValidElement(f)?f:c.createElement("span",{className:"".concat(t,"-menu-submenu-arrow")},c.createElement(u.default,{className:"".concat(t,"-menu-submenu-arrow-icon")}));return"string"==typeof n.type?n:(0,m.cloneElement)(n,{mode:"vertical",selectable:a,focusable:l,expandIcon:d})}(x)},placement:function(){var t=e.placement;return void 0!==t?t:"rtl"===_?"bottomRight":"bottomLeft"}()}),L)};y.Button=f.default,y.defaultProps={mouseEnterDelay:.15,mouseLeaveDelay:.1};var _=y;t.default=_},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(744)).default;t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=s;var r=function(e){return+setTimeout(e,16)},o=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(r=function(e){return window.requestAnimationFrame(e)},o=function(e){return window.cancelAnimationFrame(e)});var i=0,a=new Map;function c(e){a.delete(e)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=i+=1;function o(t){if(0===t)c(n),e();else{var i=r((function(){o(t-1)}));a.set(n,i)}}return o(t),n}s.cancel=function(e){var t=a.get(e);return c(t),o(t)}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=r(n(66)),s=r(n(72)),l=r(n(73)),u=r(n(74)),f=O(n(0)),d=O(n(227)),p=r(n(3)),h=r(n(750)),m=r(n(751)),v=n(33),y=r(n(87)),_=n(430),g=r(n(192)),b=n(88),M=r(n(195));function w(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(w=function(e){return e?n:t})(e)}function O(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=w(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}var S=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(e){var r;return(0,c.default)(this,n),(r=t.call(this,e)).renderMenu=function(e){var t=e.getPopupContainer,n=e.getPrefixCls,o=e.direction,c=n(),s=r.props,l=s.prefixCls,u=s.className,h=s.theme,m=s.expandIcon,v={horizontal:{motionName:"".concat(c,"-slide-up")},inline:g.default,other:{motionName:"".concat(c,"-zoom-big")}},y=n("menu",l),_=(0,p.default)("".concat(y,"-").concat(h),(0,a.default)({},"".concat(y,"-inline-collapsed"),r.getInlineCollapsed()),u);return f.createElement(M.default.Provider,{value:{inlineCollapsed:r.getInlineCollapsed()||!1,antdMenuTheme:h,direction:o}},f.createElement(d.default,(0,i.default)({getPopupContainer:t},r.props,{className:_,prefixCls:y,direction:o,defaultMotions:v,expandIcon:(0,b.cloneElement)(m,{className:"".concat(y,"-submenu-expand-icon")})})))},(0,y.default)(!("inlineCollapsed"in e&&"inline"!==e.mode),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),(0,y.default)(!(void 0!==e.siderCollapsed&&"inlineCollapsed"in e),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead."),r}return(0,s.default)(n,[{key:"getInlineCollapsed",value:function(){var e=this.props,t=e.inlineCollapsed,n=e.siderCollapsed;return void 0!==n?n:t}},{key:"render",value:function(){return f.createElement(v.ConfigConsumer,null,this.renderMenu)}}]),n}(f.Component);S.defaultProps={className:"",theme:"light",focusable:!1};var C=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(){return(0,c.default)(this,n),t.apply(this,arguments)}return(0,s.default)(n,[{key:"render",value:function(){var e=this;return f.createElement(_.SiderContext.Consumer,null,(function(t){return f.createElement(S,(0,i.default)({},e.props,t))}))}}]),n}(f.Component);C.Divider=d.Divider,C.Item=m.default,C.SubMenu=h.default,C.ItemGroup=d.ItemGroup;var x=C;t.default=x},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(32)),c=r(n(14)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),l=r(n(1055)),u=r(n(194)),f=r(n(3)),d=r(n(752)),p=n(88),h=n(33),m=n(754),v=n(192);function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}var _=new RegExp("^(".concat(m.PresetColorTypes.join("|"),")(-inverse)?$"));function g(e,t){var n=e.type;if((!0===n.__ANT_BUTTON||!0===n.__ANT_SWITCH||!0===n.__ANT_CHECKBOX||"button"===e.type)&&e.props.disabled){var r=function(e,t){var n={},r=(0,c.default)({},e);return t.forEach((function(t){e&&t in e&&(n[t]=e[t],delete r[t])})),{picked:n,omitted:r}}(e.props.style,["position","left","right","top","bottom","float","display","zIndex"]),o=r.picked,i=r.omitted,a=(0,c.default)((0,c.default)({display:"inline-block"},o),{cursor:"not-allowed",width:e.props.block?"100%":null}),l=(0,c.default)((0,c.default)({},i),{pointerEvents:"none"}),u=(0,p.cloneElement)(e,{style:l,className:null});return s.createElement("span",{style:a,className:(0,f.default)(e.props.className,"".concat(t,"-disabled-compatible-wrapper"))},u)}return e}var b=s.forwardRef((function(e,t){var n,r=s.useContext(h.ConfigContext),o=r.getPopupContainer,m=r.getPrefixCls,y=r.direction,b=(0,u.default)(!1,{value:e.visible,defaultValue:e.defaultVisible}),M=(0,a.default)(b,2),w=M[0],O=M[1],S=function(){var t=e.title,n=e.overlay;return!t&&!n&&0!==t},C=function(){var t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||(0,d.default)({arrowPointAtCenter:n,autoAdjustOverflow:r})},x=e.prefixCls,k=e.openClassName,L=e.getPopupContainer,E=e.getTooltipContainer,T=e.overlayClassName,P=e.color,j=e.overlayInnerStyle,z=e.children,D=m("tooltip",x),N=m(),H=w;!("visible"in e)&&S()&&(H=!1);var A,Y,I,V=g((0,p.isValidElement)(z)?z:s.createElement("span",null,z),D),F=V.props,R=(0,f.default)(F.className,(0,i.default)({},k||"".concat(D,"-open"),!0)),W=(0,f.default)(T,(n={},(0,i.default)(n,"".concat(D,"-rtl"),"rtl"===y),(0,i.default)(n,"".concat(D,"-").concat(P),P&&_.test(P)),n)),U=j;return P&&!_.test(P)&&(U=(0,c.default)((0,c.default)({},j),{background:P}),A={background:P}),s.createElement(l.default,(0,c.default)({},e,{prefixCls:D,overlayClassName:W,getTooltipContainer:L||E||o,ref:t,builtinPlacements:C(),overlay:(Y=e.title,I=e.overlay,0===Y?Y:I||Y||""),visible:H,onVisibleChange:function(t){var n;O(!S()&&t),S()||null===(n=e.onVisibleChange)||void 0===n||n.call(e,t)},onPopupAlign:function(e,t){var n=C(),r=Object.keys(n).filter((function(e){return n[e].points[0]===t.points[0]&&n[e].points[1]===t.points[1]}))[0];if(r){var o=e.getBoundingClientRect(),i={top:"50%",left:"50%"};r.indexOf("top")>=0||r.indexOf("Bottom")>=0?i.top="".concat(o.height-t.offset[1],"px"):(r.indexOf("Top")>=0||r.indexOf("bottom")>=0)&&(i.top="".concat(-t.offset[1],"px")),r.indexOf("left")>=0||r.indexOf("Right")>=0?i.left="".concat(o.width-t.offset[0],"px"):(r.indexOf("right")>=0||r.indexOf("Left")>=0)&&(i.left="".concat(-t.offset[0],"px")),e.style.transformOrigin="".concat(i.left," ").concat(i.top)}},overlayInnerStyle:U,arrowContent:s.createElement("span",{className:"".concat(D,"-arrow-content"),style:A}),motion:{motionName:(0,v.getTransitionName)(N,"zoom-big-fast",e.transitionName),motionDeadline:1e3}}),H?(0,p.cloneElement)(V,{className:R}):V)}));b.displayName="Tooltip",b.defaultProps={placement:"top",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0};var M=b;t.default=M},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.SiderContext=void 0;var i=r(n(16)),a=r(n(14)),c=r(n(32)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),l=r(n(3)),u=r(n(95)),f=r(n(755)),d=r(n(191)),p=r(n(415)),h=n(758),m=n(33),v=r(n(759));function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}var _=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},g={xs:"479.98px",sm:"575.98px",md:"767.98px",lg:"991.98px",xl:"1199.98px",xxl:"1599.98px"},b=s.createContext({});t.SiderContext=b;var M,w=(M=0,function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return M+=1,"".concat(e).concat(M)}),O=s.forwardRef((function(e,t){var n=e.prefixCls,r=e.className,o=e.trigger,y=e.children,M=e.defaultCollapsed,O=void 0!==M&&M,S=e.theme,C=void 0===S?"dark":S,x=e.style,k=void 0===x?{}:x,L=e.collapsible,E=void 0!==L&&L,T=e.reverseArrow,P=void 0!==T&&T,j=e.width,z=void 0===j?200:j,D=e.collapsedWidth,N=void 0===D?80:D,H=e.zeroWidthTriggerStyle,A=e.breakpoint,Y=e.onCollapse,I=e.onBreakpoint,V=_(e,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),F=(0,s.useContext)(h.LayoutContext).siderHook,R=(0,s.useState)("collapsed"in V?V.collapsed:O),W=(0,c.default)(R,2),U=W[0],B=W[1],K=(0,s.useState)(!1),q=(0,c.default)(K,2),G=q[0],$=q[1];(0,s.useEffect)((function(){"collapsed"in V&&B(V.collapsed)}),[V.collapsed]);var J=function(e,t){"collapsed"in V||B(e),null==Y||Y(e,t)},X=(0,s.useRef)();X.current=function(e){$(e.matches),null==I||I(e.matches),U!==e.matches&&J(e.matches,"responsive")},(0,s.useEffect)((function(){function e(e){return X.current(e)}var t;if("undefined"!=typeof window){var n=window.matchMedia;if(n&&A&&A in g){t=n("(max-width: ".concat(g[A],")"));try{t.addEventListener("change",e)}catch(n){t.addListener(e)}e(t)}}return function(){try{null==t||t.removeEventListener("change",e)}catch(n){null==t||t.removeListener(e)}}}),[]),(0,s.useEffect)((function(){var e=w("ant-sider-");return F.addSider(e),function(){return F.removeSider(e)}}),[]);var Q,Z,ee,te,ne,re,oe,ie,ae,ce,se=function(){J(!U,"clickTrigger")},le=(0,s.useContext)(m.ConfigContext).getPrefixCls;return s.createElement(b.Provider,{value:{siderCollapsed:U,collapsedWidth:N}},(Z=le("layout-sider",n),ee=(0,u.default)(V,["collapsed"]),te=U?N:z,ne=(0,v.default)(te)?"".concat(te,"px"):String(te),re=0===parseFloat(String(N||0))?s.createElement("span",{onClick:se,className:(0,l.default)("".concat(Z,"-zero-width-trigger"),"".concat(Z,"-zero-width-trigger-").concat(P?"right":"left")),style:H},o||s.createElement(f.default,null)):null,oe={expanded:P?s.createElement(d.default,null):s.createElement(p.default,null),collapsed:P?s.createElement(p.default,null):s.createElement(d.default,null)}[U?"collapsed":"expanded"],ie=null!==o?re||s.createElement("div",{className:"".concat(Z,"-trigger"),onClick:se,style:{width:ne}},o||oe):null,ae=(0,a.default)((0,a.default)({},k),{flex:"0 0 ".concat(ne),maxWidth:ne,minWidth:ne,width:ne}),ce=(0,l.default)(Z,"".concat(Z,"-").concat(C),(Q={},(0,i.default)(Q,"".concat(Z,"-collapsed"),!!U),(0,i.default)(Q,"".concat(Z,"-has-trigger"),E&&null!==o&&!re),(0,i.default)(Q,"".concat(Z,"-below"),!!G),(0,i.default)(Q,"".concat(Z,"-zero-width"),0===parseFloat(ne)),Q),r),s.createElement("aside",(0,a.default)({className:ce},ee,{style:ae,ref:t}),s.createElement("div",{className:"".concat(Z,"-children")},y),E||G&&re?ie:null)))}));O.displayName="Sider";var S=O;t.default=S},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Group",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return a.default}}),t.default=void 0;var o=r(n(196)),i=r(n(760)),a=r(n(761)),c=o.default;c.Button=a.default,c.Group=i.default;var s=c;t.default=s},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){var r=n(120),o=n(139);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(789),o=n(796),i=n(798),a=n(799),c=n(800);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t,n){var r=n(801),o=n(804),i=n(805);e.exports=function(e,t,n,a,c,s){var l=1&n,u=e.length,f=t.length;if(u!=f&&!(l&&f>u))return!1;var d=s.get(e),p=s.get(t);if(d&&p)return d==t&&p==e;var h=-1,m=!0,v=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h<u;){var y=e[h],_=t[h];if(a)var g=l?a(_,y,h,t,e,s):a(y,_,h,e,t,s);if(void 0!==g){if(g)continue;m=!1;break}if(v){if(!o(t,(function(e,t){if(!i(v,t)&&(y===e||c(y,e,n,a,s)))return v.push(t)}))){m=!1;break}}else if(y!==_&&!c(y,_,n,a,s)){m=!1;break}}return s.delete(e),s.delete(t),m}},function(e,t,n){(function(e){var r=n(67),o=n(822),i=t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,c=a&&a.exports===i?r.Buffer:void 0,s=(c?c.isBuffer:void 0)||o;e.exports=s}).call(this,n(136)(e))},function(e,t,n){var r=n(824),o=n(825),i=n(826),a=i&&i.isTypedArray,c=a?o(a):r;e.exports=c},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.XMLBuilderOptionKeys=new Set(["version","encoding","standalone","keepNullNodes","keepNullAttributes","ignoreConverters","convert","defaultNamespace","namespaceAlias"]),t.DefaultBuilderOptions={version:"1.0",keepNullNodes:!1,keepNullAttributes:!1,ignoreConverters:!1,convert:{att:"@",ins:"?",text:"#",cdata:"$",comment:"!"},defaultNamespace:{ele:void 0,att:void 0},namespaceAlias:{html:"http://www.w3.org/1999/xhtml",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg",xlink:"http://www.w3.org/1999/xlink"}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24);class o{static isNode(e){return!!e&&void 0!==e._nodeType}static isDocumentNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.Document}static isDocumentTypeNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.DocumentType}static isDocumentFragmentNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.DocumentFragment}static isAttrNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.Attribute}static isCharacterDataNode(e){if(!o.isNode(e))return!1;const t=e._nodeType;return t===r.NodeType.Text||t===r.NodeType.ProcessingInstruction||t===r.NodeType.Comment||t===r.NodeType.CData}static isTextNode(e){return o.isNode(e)&&(e._nodeType===r.NodeType.Text||e._nodeType===r.NodeType.CData)}static isExclusiveTextNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.Text}static isCDATASectionNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.CData}static isCommentNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.Comment}static isProcessingInstructionNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.ProcessingInstruction}static isElementNode(e){return o.isNode(e)&&e._nodeType===r.NodeType.Element}static isCustomElementNode(e){return o.isElementNode(e)&&"custom"===e._customElementState}static isShadowRoot(e){return!!e&&void 0!==e.host}static isMouseEvent(e){return!!e&&void 0!==e.screenX&&null!=e.screenY}static isSlotable(e){return!!e&&void 0!==e._name&&void 0!==e._assignedSlot&&(o.isTextNode(e)||o.isElementNode(e))}static isSlot(e){return!!e&&void 0!==e._name&&void 0!==e._assignedNodes&&o.isElementNode(e)}static isWindow(e){return!!e&&void 0!==e.navigator}static isEventListener(e){return!!e&&void 0!==e.handleEvent}static isRegisteredObserver(e){return!!e&&void 0!==e.observer&&void 0!==e.options}static isTransientRegisteredObserver(e){return!!e&&void 0!==e.source&&o.isRegisteredObserver(e)}}t.Guard=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(865),i=n(866),a=n(41),c=n(46),s=n(20);class l{constructor(){this.level=0}setCallbacks(e){this._docType=e.docType,this._comment=e.comment,this._text=e.text,this._instruction=e.instruction,this._cdata=e.cdata,this._openTagBegin=e.openTagBegin,this._openTagEnd=e.openTagEnd,this._closeTag=e.closeTag,this._attribute=e.attribute,this._beginElement=e.beginElement,this._endElement=e.endElement}serialize(e,t){const n=void 0!==e._nodeDocument&&e._nodeDocument._hasNamespaces;if(this.level=0,this.currentNode=e,n){const n=null,r=new i.NamespacePrefixMap;r.set("xml",c.namespace.XML);const o={value:1};try{this._serializeNodeNS(e,n,r,o,t)}catch(e){throw new a.InvalidStateError}}else try{this._serializeNode(e,t)}catch(e){throw new a.InvalidStateError}}_serializeNodeNS(e,t,n,o,i){switch(this.currentNode=e,e.nodeType){case r.NodeType.Element:this._serializeElementNS(e,t,n,o,i);break;case r.NodeType.Document:this._serializeDocumentNS(e,t,n,o,i);break;case r.NodeType.Comment:this._serializeComment(e,i);break;case r.NodeType.Text:this._serializeText(e,i);break;case r.NodeType.DocumentFragment:this._serializeDocumentFragmentNS(e,t,n,o,i);break;case r.NodeType.DocumentType:this._serializeDocumentType(e,i);break;case r.NodeType.ProcessingInstruction:this._serializeProcessingInstruction(e,i);break;case r.NodeType.CData:this._serializeCData(e,i);break;default:throw new Error("Unknown node type: "+e.nodeType)}}_serializeNode(e,t){switch(this.currentNode=e,e.nodeType){case r.NodeType.Element:this._serializeElement(e,t);break;case r.NodeType.Document:this._serializeDocument(e,t);break;case r.NodeType.Comment:this._serializeComment(e,t);break;case r.NodeType.Text:this._serializeText(e,t);break;case r.NodeType.DocumentFragment:this._serializeDocumentFragment(e,t);break;case r.NodeType.DocumentType:this._serializeDocumentType(e,t);break;case r.NodeType.ProcessingInstruction:this._serializeProcessingInstruction(e,t);break;case r.NodeType.CData:this._serializeCData(e,t);break;default:throw new Error("Unknown node type: "+e.nodeType)}}_serializeElementNS(e,t,n,r,o){if(o&&(-1!==e.localName.indexOf(":")||!s.xml_isName(e.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");let i="",a=!1,u=!1,f=n.copy(),d={},p=this._recordNamespaceInformation(e,f,d),h=t,m=e.namespaceURI;if(h===m)null!==p&&(u=!0),i=m===c.namespace.XML?"xml:"+e.localName:e.localName,this._beginElement&&this._beginElement(i),this._openTagBegin&&this._openTagBegin(i);else{let t=e.prefix,n=f.get(t,m);if("xmlns"===t){if(o)throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");n=t}null!==n?(i=n+":"+e.localName,null!==p&&p!==c.namespace.XML&&(h=p||null),this._beginElement&&this._beginElement(i),this._openTagBegin&&this._openTagBegin(i)):null!==t?(t in d&&(t=this._generatePrefix(m,f,r)),f.set(t,m),i+=t+":"+e.localName,this._beginElement&&this._beginElement(i),this._openTagBegin&&this._openTagBegin(i),this._attribute&&this._attribute("xmlns:"+t,this._serializeAttributeValue(m,o)),null!==p&&(h=p||null)):null===p||null!==p&&p!==m?(u=!0,i+=e.localName,h=m,this._beginElement&&this._beginElement(i),this._openTagBegin&&this._openTagBegin(i),this._attribute&&this._attribute("xmlns",this._serializeAttributeValue(m,o))):(i+=e.localName,h=m,this._beginElement&&this._beginElement(i),this._openTagBegin&&this._openTagBegin(i))}this._serializeAttributesNS(e,f,r,d,u,o);const v=m===c.namespace.HTML;if(v&&0===e.childNodes.length&&l._VoidElementNames.has(e.localName)?(this._endElement&&this._endElement(i),this._openTagEnd&&this._openTagEnd(i,!0,!0),a=!0):v||0!==e.childNodes.length?this._openTagEnd&&this._openTagEnd(i,!1,!1):(this._endElement&&this._endElement(i),this._openTagEnd&&this._openTagEnd(i,!0,!1),a=!0),!a){if(v&&"template"===e.localName);else for(const t of e.childNodes)this.level++,this._serializeNodeNS(t,h,f,r,o),this.level--;this._endElement&&this._endElement(i),this._closeTag&&this._closeTag(i)}}_serializeElement(e,t){if(t&&(-1!==e.localName.indexOf(":")||!s.xml_isName(e.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");let n=!1;const r=e.localName;if(this._beginElement&&this._beginElement(r),this._openTagBegin&&this._openTagBegin(r),this._serializeAttributes(e,t),e.hasChildNodes()?this._openTagEnd&&this._openTagEnd(r,!1,!1):(this._endElement&&this._endElement(r),this._openTagEnd&&this._openTagEnd(r,!0,!1),n=!0),!n){for(const n of e._children)this.level++,this._serializeNode(n,t),this.level--;this._endElement&&this._endElement(r),this._closeTag&&this._closeTag(r)}}_serializeDocumentNS(e,t,n,r,o){if(o&&null===e.documentElement)throw new Error("Missing document element (well-formed required).");for(const i of e.childNodes)this._serializeNodeNS(i,t,n,r,o)}_serializeDocument(e,t){if(t&&null===e.documentElement)throw new Error("Missing document element (well-formed required).");for(const n of e._children)this._serializeNode(n,t)}_serializeComment(e,t){if(t&&(!s.xml_isLegalChar(e.data)||-1!==e.data.indexOf("--")||e.data.endsWith("-")))throw new Error("Comment data contains invalid characters (well-formed required).");this._comment&&this._comment(e.data)}_serializeText(e,t){if(t&&!s.xml_isLegalChar(e.data))throw new Error("Text data contains invalid characters (well-formed required).");let n="";for(let t=0;t<e.data.length;t++){const r=e.data[t];n+="&"===r?"&":"<"===r?"<":">"===r?">":r}this._text&&this._text(n)}_serializeDocumentFragmentNS(e,t,n,r,o){for(const i of e.childNodes)this._serializeNodeNS(i,t,n,r,o)}_serializeDocumentFragment(e,t){for(const n of e._children)this._serializeNode(n,t)}_serializeDocumentType(e,t){if(t&&!s.xml_isPubidChar(e.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(t&&(!s.xml_isLegalChar(e.systemId)||-1!==e.systemId.indexOf('"')&&-1!==e.systemId.indexOf("'")))throw new Error("DocType system identifier contains invalid characters (well-formed required).");this._docType&&this._docType(e.name,e.publicId,e.systemId)}_serializeProcessingInstruction(e,t){if(t&&(-1!==e.target.indexOf(":")||/^xml$/i.test(e.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(t&&(!s.xml_isLegalChar(e.data)||-1!==e.data.indexOf("?>")))throw new Error("Processing instruction data contains invalid characters (well-formed required).");this._instruction&&this._instruction(e.target,e.data)}_serializeCData(e,t){if(t&&-1!==e.data.indexOf("]]>"))throw new Error("CDATA contains invalid characters (well-formed required).");this._cdata&&this._cdata(e.data)}_serializeAttributesNS(e,t,n,r,i,a){const l=a?new o.LocalNameSet:void 0;for(const o of e.attributes){if(!a&&null===o.namespaceURI){this._attribute&&this._attribute(o.localName,this._serializeAttributeValue(o.value,a));continue}if(a&&l&&l.has(o.namespaceURI,o.localName))throw new Error("Element contains duplicate attributes (well-formed required).");a&&l&&l.set(o.namespaceURI,o.localName);let e=o.namespaceURI,u=null;if(null!==e)if(u=t.get(o.prefix,e),e===c.namespace.XMLNS){if(o.value===c.namespace.XML||null===o.prefix&&i||null!==o.prefix&&(!(o.localName in r)||r[o.localName]!==o.value)&&t.has(o.localName,o.value))continue;if(a&&o.value===c.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(a&&""===o.value)throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");"xmlns"===o.prefix&&(u="xmlns")}else null===u&&(u=null===o.prefix||t.hasPrefix(o.prefix)&&!t.has(o.prefix,e)?this._generatePrefix(e,t,n):o.prefix,this._attribute&&this._attribute("xmlns:"+u,this._serializeAttributeValue(e,a)));let f="";if(null!==u&&(f=u+":"),a&&(-1!==o.localName.indexOf(":")||!s.xml_isName(o.localName)||"xmlns"===o.localName&&null===e))throw new Error("Attribute local name contains invalid characters (well-formed required).");f+=o.localName,this._attribute&&this._attribute(f,this._serializeAttributeValue(o.value,a))}}_serializeAttributes(e,t){const n=t?{}:void 0;for(const r of e.attributes)if(t){if(t&&n&&r.localName in n)throw new Error("Element contains duplicate attributes (well-formed required).");if(t&&n&&(n[r.localName]=!0),t&&(-1!==r.localName.indexOf(":")||!s.xml_isName(r.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");this._attribute&&this._attribute(r.localName,this._serializeAttributeValue(r.value,t))}else this._attribute&&this._attribute(r.localName,this._serializeAttributeValue(r.value,t))}_recordNamespaceInformation(e,t,n){let r=null;for(const o of e.attributes){let e=o.namespaceURI,i=o.prefix;if(e===c.namespace.XMLNS){if(null===i){r=o.value;continue}{let e=o.localName,r=o.value;if(r===c.namespace.XML)continue;if(""===r&&(r=null),t.has(e,r))continue;t.set(e,r),n[e]=r||""}}}return r}_generatePrefix(e,t,n){let r="ns"+n.value;return n.value++,t.set(r,e),r}_serializeAttributeValue(e,t){if(t&&null!==e&&!s.xml_isLegalChar(e))throw new Error("Invalid characters in attribute value.");if(null===e)return"";let n="";for(let t=0;t<e.length;t++){const r=e[t];n+='"'===r?""":"&"===r?"&":"<"===r?"<":">"===r?">":r}return n}}t.PreSerializer=l,l._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"])},function(e,t,n){"use strict";(function(e){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> * @license MIT */ var r=n(868),o=n(869),i=n(870);function a(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function c(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=s.prototype:(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,n){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);s.TYPED_ARRAY_SUPPORT?(e=t).__proto__=s.prototype:e=d(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!s.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|h(t,n),o=(e=c(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(s.isBuffer(t)){var n=0|p(t.length);return 0===(e=c(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?c(e,0):d(e,t);if("Buffer"===t.type&&i(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(u(t),e=c(e,t<0?0:0|p(t)),!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|p(t.length);e=c(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function p(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return F(e).length;default:if(r)return V(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return E(this,t,n);case"utf8":case"utf-8":return x(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return L(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:_(e,t,n,r,o);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):_(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function _(e,t,n,r,o){var i,a=1,c=e.length,s=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,c/=2,s/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var u=-1;for(i=n;i<c;i++)if(l(e,i)===l(t,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===s)return u*a}else-1!==u&&(i-=i-u),u=-1}else for(n+s>c&&(n=c-s),i=n;i>=0;i--){for(var f=!0,d=0;d<s;d++)if(l(e,i+d)!==l(t,d)){f=!1;break}if(f)return i}return-1}function g(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var c=parseInt(t.substr(2*a,2),16);if(isNaN(c))return a;e[n+a]=c}return a}function b(e,t,n,r){return R(V(t,e.length-n),e,n,r)}function M(e,t,n,r){return R(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function w(e,t,n,r){return M(e,t,n,r)}function O(e,t,n,r){return R(F(t),e,n,r)}function S(e,t,n,r){return R(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function x(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,c,s,l=e[o],u=null,f=l>239?4:l>223?3:l>191?2:1;if(o+f<=n)switch(f){case 1:l<128&&(u=l);break;case 2:128==(192&(i=e[o+1]))&&(s=(31&l)<<6|63&i)>127&&(u=s);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(s=(15&l)<<12|(63&i)<<6|63&a)>2047&&(s<55296||s>57343)&&(u=s);break;case 4:i=e[o+1],a=e[o+2],c=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&c)&&(s=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&c)>65535&&s<1114112&&(u=s)}null===u?(u=65533,f=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=s,t.SlowBuffer=function(e){+e!=e&&(e=0);return s.alloc(+e)},t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return l(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return function(e,t,n,r){return u(t),t<=0?c(e,t):void 0!==n?"string"==typeof r?c(e,t).fill(n,r):c(e,t).fill(n):c(e,t)}(null,e,t,n)},s.allocUnsafe=function(e){return f(null,e)},s.allocUnsafeSlow=function(e){return f(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=s.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},s.byteLength=h,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?x(this,0,e):m.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,n,r,o){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),c=Math.min(i,a),l=this.slice(r,o),u=e.slice(t,n),f=0;f<c;++f)if(l[f]!==u[f]){i=l[f],a=u[f];break}return i<a?-1:a<i?1:0},s.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},s.prototype.indexOf=function(e,t,n){return y(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return y(this,e,t,n,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return g(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return M(this,e,t,n);case"latin1":case"binary":return w(this,e,t,n);case"base64":return O(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function L(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function E(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=I(e[i]);return o}function T(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function P(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,o,i){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function z(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function D(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function N(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function H(e,t,n,r,i){return i||N(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function A(e,t,n,r,i){return i||N(e,0,n,8),o.write(e,t,n,r,52,8),n+8}s.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),s.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=s.prototype;else{var o=t-e;n=new s(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},s.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},s.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},s.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},s.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),o.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),o.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),o.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),o.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||j(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},s.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||j(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):D(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);j(this,e,t,n,o-1,-o)}var i=0,a=1,c=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===c&&0!==this[t+i-1]&&(c=1),this[t+i]=(e/a>>0)-c&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);j(this,e,t,n,o-1,-o)}var i=n-1,a=1,c=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===c&&0!==this[t+i+1]&&(c=1),this[t+i]=(e/a>>0)-c&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):z(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):z(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):D(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):D(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return H(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return H(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return A(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return A(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!s.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},s.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=s.isBuffer(e)?e:V(new s(e,r).toString()),c=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%c]}return this};var Y=/[^+\/0-9A-Za-z-_]/g;function I(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function F(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function R(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(61))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isASCIIByte=function(e){return e>=0&&e<=127}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.length=function(e){return e.length},t.byteLowercase=function(e){for(let t=0;t<e.length;t++){const n=e[t];n>=65&&n<=90&&(e[t]=n+32)}},t.byteUppercase=function(e){for(let t=0;t<e.length;t++){const n=e[t];n>=97&&n<=122&&(e[t]=n-32)}},t.byteCaseInsensitiveMatch=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r>=65&&r<=90&&(r+=32),o>=65&&o<=90&&(o+=32),r!==o)return!1}return!0},t.startsWith=function(e,t){let n=0;for(;;){if(n>=e.length)return!1;if(n>=t.length)return!0;if(e[n]!==t[n])return!1;n++}},t.byteLessThan=function(e,t){let n=0;for(;;){if(n>=e.length)return!1;if(n>=t.length)return!0;const r=e[n],o=t[n];if(r<o)return!0;if(r>o)return!1;n++}},t.isomorphicDecode=function(e){return String.fromCodePoint(...e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(20);t.AbortControllerImpl=class{constructor(){this._signal=r.create_abortSignal()}get signal(){return this._signal}abort(){r.abort_signalAbort(this._signal)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(145),o=n(20);class i extends r.EventTargetImpl{constructor(){super(),this._abortedFlag=!1,this._abortAlgorithms=new Set}get aborted(){return this._abortedFlag}get onabort(){return o.event_getterEventHandlerIDLAttribute(this,"onabort")}set onabort(e){o.event_setterEventHandlerIDLAttribute(this,"onabort",e)}static _create(){return new i}}t.AbortSignalImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(96),i=n(20),a=n(47);class c extends o.NodeImpl{constructor(e){super(),this._namespace=null,this._namespacePrefix=null,this._element=null,this._value="",this._localName=e}get ownerElement(){return this._element}get namespaceURI(){return this._namespace}get prefix(){return this._namespacePrefix}get localName(){return this._localName}get name(){return this._qualifiedName}get value(){return this._value}set value(e){i.attr_setAnExistingAttributeValue(this,e)}get _qualifiedName(){return null!==this._namespacePrefix?this._namespacePrefix+":"+this._localName:this._localName}static _create(e,t){const n=new c(t);return n._nodeDocument=e,n}}t.AttrImpl=c,a.idl_defineConst(c.prototype,"_nodeType",r.NodeType.Attribute),a.idl_defineConst(c.prototype,"specified",!0)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(880),o=n(884),i=n(885),a=n(898);let c;const s={ftp:21,file:null,http:80,https:443,ws:80,wss:443},l=/[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[ "<>`]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,f=/[ "<>`#?{}]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d=/[ "<>`#?{}/:;=@\[\]\\\^\|]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,p=/[0-9A-Za-z!\$&-\/:;=\?@_~\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uD83E\uD840-\uD87E\uD880-\uD8BE\uD8C0-\uD8FE\uD900-\uD93E\uD940-\uD97E\uD980-\uD9BE\uD9C0-\uD9FE\uDA00-\uDA3E\uDA40-\uDA7E\uDA80-\uDABE\uDAC0-\uDAFE\uDB00-\uDB3E\uDB40-\uDB7E\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDC00-\uDFFD]/,h=/[\0\t\f\r #%/:?@\[\\\]]/;function m(e){void 0!==c&&c.call(null,"Validation Error: "+e)}function v(){return{scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null}}function y(e){return e in s}function _(e){return y(e.scheme)}function g(e){return s[e]||null}function b(e){return""!==e.username||""!==e.password}function M(e,t=!1){let n=e.scheme+":";if(null!==e.host?(n+="//",b(e)&&(n+=e.username,""!==e.password&&(n+=":"+e.password),n+="@"),n+=w(e.host),null!==e.port&&(n+=":"+e.port)):null===e.host&&"file"===e.scheme&&(n+="//"),e._cannotBeABaseURLFlag)n+=e.path[0];else for(const t of e.path)n+="/"+t;return null!==e.query&&(n+="?"+e.query),t||null===e.fragment||(n+="#"+e.fragment),n}function w(e){return r.isNumber(e)?O(e):r.isArray(e)?"["+S(e)+"]":e}function O(e){let t="",n=e;for(let e=1;e<=4;e++)t=(n%256).toString()+t,4!==e&&(t="."+t),n=Math.floor(n/256);return t}function S(e){let t="",n=null,r=-1,o=0,i=0;for(let t=0;t<8;t++)if(0===e[t]){o=1;for(let n=t+1;n<8&&0===e[n];n++)o++;o>i&&(i=o,r=t)}i>1&&(n=r);let a=!1;for(let r=0;r<8;r++)a&&0===e[r]||(a&&(a=!1),n!==r?(t+=e[r].toString(16),7!==r&&(t+=":")):(t+=0===r?"::":":",a=!0));return t}function C(e,t,n,a,c){if(void 0===a){a={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null};const t=/^[\u0000-\u001F\u0020]+/,n=/[\u0000-\u001F\u0020]+$/;(t.test(e)||n.test(e))&&m("Input string contains leading or trailing control characters or space."),e=(e=e.replace(t,"")).replace(n,"")}const s=/[\u0009\u000A\u000D]/g;s.test(e)&&m("Input string contains tab or newline characters."),e=e.replace(s,"");let h=void 0===c?o.ParserState.SchemeStart:c;void 0===t&&(t=null);let v=void 0===n||"replacement"===n||"UTF-16BE"===n||"UTF-16LE"===n?"UTF-8":n,M="",w=!1,O=!1,S=!1;const C=new r.StringWalker(e);for(;;){switch(h){case o.ParserState.SchemeStart:if(i.codePoint.ASCIIAlpha.test(C.c()))M+=C.c().toLowerCase(),h=o.ParserState.Scheme;else{if(void 0!==c)return m("Invalid scheme start character."),null;h=o.ParserState.NoScheme,C.pointer--}break;case o.ParserState.Scheme:if(i.codePoint.ASCIIAlphanumeric.test(C.c())||"+"===C.c()||"-"===C.c()||"."===C.c())M+=C.c().toLowerCase();else{if(":"!==C.c()){if(void 0===c){M="",h=o.ParserState.NoScheme,C.pointer=0;continue}return m("Invalid input string."),null}if(void 0!==c){if(y(a.scheme)&&!y(M))return a;if(!y(a.scheme)&&y(M))return a;if((b(a)||null!==a.port)&&"file"===M)return a;if("file"===a.scheme&&(""===a.host||null===a.host))return a}if(a.scheme=M,void 0!==c)return a.port===g(a.scheme)&&(a.port=null),a;M="","file"===a.scheme?(C.remaining().startsWith("//")||m("Invalid file URL scheme, '//' expected."),h=o.ParserState.File):_(a)&&null!==t&&t.scheme===a.scheme?h=o.ParserState.SpecialRelativeOrAuthority:_(a)?h=o.ParserState.SpecialAuthoritySlashes:C.remaining().startsWith("/")?(h=o.ParserState.PathOrAuthority,C.pointer++):(a._cannotBeABaseURLFlag=!0,a.path.push(""),h=o.ParserState.CannotBeABaseURLPath)}break;case o.ParserState.NoScheme:if(null===t||t._cannotBeABaseURLFlag&&"#"!==C.c())return m("Invalid input string."),null;t._cannotBeABaseURLFlag&&"#"===C.c()?(a.scheme=t.scheme,a.path=i.list.clone(t.path),a.query=t.query,a.fragment="",a._cannotBeABaseURLFlag=!0,h=o.ParserState.Fragment):"file"!==t.scheme?(h=o.ParserState.Relative,C.pointer--):(h=o.ParserState.File,C.pointer--);break;case o.ParserState.SpecialRelativeOrAuthority:"/"===C.c()&&C.remaining().startsWith("/")?(h=o.ParserState.SpecialAuthorityIgnoreSlashes,C.pointer++):(m("Invalid input string."),h=o.ParserState.Relative,C.pointer--);break;case o.ParserState.PathOrAuthority:"/"===C.c()?h=o.ParserState.Authority:(h=o.ParserState.Path,C.pointer--);break;case o.ParserState.Relative:if(null===t)throw new Error("Invalid parser state. Base URL is null.");switch(a.scheme=t.scheme,C.c()){case"":a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=i.list.clone(t.path),a.query=t.query;break;case"/":h=o.ParserState.RelativeSlash;break;case"?":a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=i.list.clone(t.path),a.query="",h=o.ParserState.Query;break;case"#":a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=i.list.clone(t.path),a.query=t.query,a.fragment="",h=o.ParserState.Fragment;break;default:_(a)&&"\\"===C.c()?(m("Invalid input string."),h=o.ParserState.RelativeSlash):(a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=i.list.clone(t.path),0!==a.path.length&&a.path.splice(a.path.length-1,1),h=o.ParserState.Path,C.pointer--)}break;case o.ParserState.RelativeSlash:if(!_(a)||"/"!==C.c()&&"\\"!==C.c())if("/"===C.c())h=o.ParserState.Authority;else{if(null===t)throw new Error("Invalid parser state. Base URL is null.");a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,h=o.ParserState.Path,C.pointer--}else"\\"===C.c()&&m("Invalid input string."),h=o.ParserState.SpecialAuthorityIgnoreSlashes;break;case o.ParserState.SpecialAuthoritySlashes:"/"===C.c()&&C.remaining().startsWith("/")?(h=o.ParserState.SpecialAuthorityIgnoreSlashes,C.pointer++):(m("Expected '//'."),h=o.ParserState.SpecialAuthorityIgnoreSlashes,C.pointer--);break;case o.ParserState.SpecialAuthorityIgnoreSlashes:"/"!==C.c()&&"\\"!==C.c()?(h=o.ParserState.Authority,C.pointer--):m("Unexpected '/' or '\\'.");break;case o.ParserState.Authority:if("@"===C.c()){m("Unexpected '@'."),w&&(M="%40"+M),w=!0;for(const e of M){if(":"===e&&!S){S=!0;continue}const t=F(e,d);S?a.password+=t:a.username+=t}M=""}else if(""===C.c()||"/"===C.c()||"?"===C.c()||"#"===C.c()||_(a)&&"\\"===C.c()){if(w&&""===M)return m("Invalid input string."),null;C.pointer-=M.length+1,M="",h=o.ParserState.Host}else M+=C.c();break;case o.ParserState.Host:case o.ParserState.Hostname:if(void 0!==c&&"file"===a.scheme)C.pointer--,h=o.ParserState.FileHost;else if(":"!==C.c()||O)if(""===C.c()||"/"===C.c()||"?"===C.c()||"#"===C.c()||_(a)&&"\\"===C.c()){if(C.pointer--,_(a)&&""===M)return m("Invalid input string."),null;if(void 0!==c&&""===M&&(b(a)||null!==a.port))return m("Invalid input string."),a;const e=j(M,!_(a));if(null===e)return null;if(a.host=e,M="",h=o.ParserState.PathStart,void 0!==c)return a}else"["===C.c()&&(O=!0),"]"===C.c()&&(O=!1),M+=C.c();else{if(""===M)return m("Invalid input string."),null;const e=j(M,!_(a));if(null===e)return null;if(a.host=e,M="",h=o.ParserState.Port,c===o.ParserState.Hostname)return a}break;case o.ParserState.Port:if(i.codePoint.ASCIIDigit.test(C.c()))M+=C.c();else{if(!(""===C.c()||"/"===C.c()||"?"===C.c()||"#"===C.c()||_(a)&&"\\"===C.c()||c))return m("Invalid input string."),null;if(""!==M&&""!==M){const e=parseInt(M,10);if(e>Math.pow(2,16)-1)return m("Invalid port number."),null;a.port=e===g(a.scheme)?null:e,M=""}if(void 0!==c)return a;h=o.ParserState.PathStart,C.pointer--}break;case o.ParserState.File:if(a.scheme="file","/"===C.c()||"\\"===C.c())"\\"===C.c()&&m("Invalid input string."),h=o.ParserState.FileSlash;else if(null!==t&&"file"===t.scheme)switch(C.c()){case"":a.host=t.host,a.path=i.list.clone(t.path),a.query=t.query;break;case"?":a.host=t.host,a.path=i.list.clone(t.path),a.query="",h=o.ParserState.Query;break;case"#":a.host=t.host,a.path=i.list.clone(t.path),a.query=t.query,a.fragment="",h=o.ParserState.Fragment;break;default:P(C.substring())?m("Unexpected windows drive letter in input string."):(a.host=t.host,a.path=i.list.clone(t.path),L(a)),h=o.ParserState.Path,C.pointer--}else h=o.ParserState.Path,C.pointer--;break;case o.ParserState.FileSlash:"/"===C.c()||"\\"===C.c()?("\\"===C.c()&&m("Invalid input string."),h=o.ParserState.FileHost):(null===t||"file"!==t.scheme||P(C.substring())||(E(t.path[0])?a.path.push(t.path[0]):a.host=t.host),h=o.ParserState.Path,C.pointer--);break;case o.ParserState.FileHost:if(""===C.c()||"/"===C.c()||"\\"===C.c()||"?"===C.c()||"#"===C.c())if(C.pointer--,void 0===c&&T(M))m("Unexpected windows drive letter in input string."),h=o.ParserState.Path;else if(""===M){if(a.host="",void 0!==c)return a;h=o.ParserState.PathStart}else{let e=j(M,!_(a));if(null===e)return null;if("localhost"===e&&(e=""),a.host=e,void 0!==c)return a;M="",h=o.ParserState.PathStart}else M+=C.c();break;case o.ParserState.PathStart:_(a)?("\\"===C.c()&&m("Invalid input string."),h=o.ParserState.Path,"/"!==C.c()&&"\\"!==C.c()&&C.pointer--):void 0===c&&"?"===C.c()?(a.query="",h=o.ParserState.Query):void 0===c&&"#"===C.c()?(a.fragment="",h=o.ParserState.Fragment):""!==C.c()&&(h=o.ParserState.Path,"/"!==C.c()&&C.pointer--);break;case o.ParserState.Path:if(""===C.c()||"/"===C.c()||_(a)&&"\\"===C.c()||void 0===c&&("?"===C.c()||"#"===C.c())){if(_(a)&&"\\"===C.c()&&m("Invalid input string."),k(M))L(a),"/"===C.c()||_(a)&&"\\"===C.c()||a.path.push("");else if(!x(M)||"/"===C.c()||_(a)&&"\\"===C.c()){if(!x(M)){if("file"===a.scheme&&0===a.path.length&&T(M)){null!==a.host&&""!==a.host&&(m("Invalid input string."),a.host="");const e=Array.from(M);M=e.slice(0,1)+":"+e.slice(2)}a.path.push(M)}}else a.path.push("");if(M="","file"===a.scheme&&(""===C.c()||"?"===C.c()||"#"===C.c()))for(;a.path.length>1&&""===a.path[0];)m("Invalid input string."),a.path.splice(0,1);"?"===C.c()&&(a.query="",h=o.ParserState.Query),"#"===C.c()&&(a.fragment="",h=o.ParserState.Fragment)}else p.test(C.c())||"%"===C.c()||m("Character is not a URL code point or a percent encoded character."),"%"!==C.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(C.remaining())||m("Percent encoded character must be followed by two hex digits."),M+=F(C.c(),f);break;case o.ParserState.CannotBeABaseURLPath:"?"===C.c()?(a.query="",h=o.ParserState.Query):"#"===C.c()?(a.fragment="",h=o.ParserState.Fragment):(""===C.c()||p.test(C.c())||"%"===C.c()||m("Character is not a URL code point or a percent encoded character."),"%"!==C.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(C.remaining())||m("Percent encoded character must be followed by two hex digits."),""!==C.c()&&(a.path[0]+=F(C.c(),l)));break;case o.ParserState.Query:if("UTF-8"===v||_(a)&&"ws"!==a.scheme&&"wss"!==a.scheme||(v="UTF-8"),void 0===c&&"#"===C.c())a.fragment="",h=o.ParserState.Fragment;else if(""!==C.c()){if(p.test(C.c())||"%"===C.c()||m("Character is not a URL code point or a percent encoded character."),"%"!==C.c()||/^[0-9a-fA-F][0-9a-fA-F]/.test(C.remaining())||m("Percent encoded character must be followed by two hex digits."),"UTF-8"!==v.toUpperCase())throw new Error("Only UTF-8 encoding is supported.");let e=r.utf8Encode(C.c());if(e.length>=3&&38===e[0]&&35===e[1]&&59===e[e.length-1])e=e.subarray(2,e.length-1),a.query+="%26%23"+i.byteSequence.isomorphicDecode(e)+"%3B";else for(const t of e)t<33||t>126||34===t||35===t||60===t||62===t||39===t&&_(a)?a.query+=Y(t):a.query+=String.fromCharCode(t)}break;case o.ParserState.Fragment:""===C.c()||("\0"===C.c()?m("NULL character in input string."):(p.test(C.c())||"%"===C.c()||m("Unexpected character in fragment string."),"%"!==C.c()||/^[A-Za-z0-9][A-Za-z0-9]/.test(C.remaining())||m("Unexpected character in fragment string."),a.fragment+=F(C.c(),u)))}if(C.eof)break;C.pointer++}return a}function x(e){return"."===e||"%2e"===e.toLowerCase()}function k(e){const t=e.toLowerCase();return".."===t||".%2e"===t||"%2e."===t||"%2e%2e"===t}function L(e){const t=e.path;0!==t.length&&("file"===e.scheme&&1===t.length&&E(t[0])||e.path.splice(e.path.length-1,1))}function E(e){return e.length>=2&&i.codePoint.ASCIIAlpha.test(e[0])&&":"===e[1]}function T(e){return e.length>=2&&i.codePoint.ASCIIAlpha.test(e[0])&&(":"===e[1]||"|"===e[1])}function P(e){return e.length>=2&&T(e)&&(2===e.length||"/"===e[2]||"\\"===e[2]||"?"===e[2]||"#"===e[2])}function j(e,t=!1){if(e.startsWith("["))return e.endsWith("]")?N(e.substring(1,e.length-1)):(m("Expected ']' after '['."),null);if(t)return H(e);const n=U(r.utf8Decode(V(e)));if(null===n)return m("Invalid domain."),null;if(h.test(n))return m("Invalid domain."),null;const o=D(n);return null===o||r.isNumber(o)?o:n}function z(e,t={value:!1}){let n=10;if(e.startsWith("0x")||e.startsWith("0X")?(t.value=!0,e=e.substr(2),n=16):e.length>=2&&"0"===e[0]&&(t.value=!0,e=e.substr(1),n=8),""===e)return 0;return(10===n?/^[0-9]+$/:16===n?/^[0-9A-Fa-f]+$/:/^[0-7]+$/).test(e)?parseInt(e,n):null}function D(e){const t={value:!1},n=e.split(".");if(""===n[n.length-1]&&(t.value=!0,n.length>1&&n.pop()),n.length>4)return e;const r=[];for(const o of n){if(""===o)return e;const n=z(o,t);if(null===n)return e;r.push(n)}t.value&&m("Invalid IP v4 address.");for(let e=0;e<r.length;e++){if(r[e]>255&&(m("Invalid IP v4 address."),e<r.length-1))return null}if(r[r.length-1]>=Math.pow(256,5-r.length))return m("Invalid IP v4 address."),null;let o=r[r.length-1];r.pop();let i=0;for(const e of r)o+=e*Math.pow(256,3-i),i++;return o}function N(e){const t=[0,0,0,0,0,0,0,0];let n=0,o=null;const a=new r.StringWalker(e);if(":"===a.c()){if(!a.remaining().startsWith(":"))return m("Invalid IP v6 address."),null;a.pointer+=2,n+=1,o=n}for(;""!==a.c();){if(8===n)return m("Invalid IP v6 address."),null;if(":"===a.c()){if(null!==o)return m("Invalid IP v6 address."),null;a.pointer++,n++,o=n;continue}let e=0,r=0;for(;r<4&&i.codePoint.ASCIIHexDigit.test(a.c());)e=16*e+parseInt(a.c(),16),a.pointer++,r++;if("."===a.c()){if(0===r)return m("Invalid IP v6 address."),null;if(a.pointer-=r,n>6)return m("Invalid IP v6 address."),null;let e=0;for(;""!==a.c();){let r=null;if(e>0){if(!("."===a.c()&&e<4))return m("Invalid IP v6 address."),null;a.pointer++}if(!i.codePoint.ASCIIDigit.test(a.c()))return m("Invalid IP v6 address."),null;for(;i.codePoint.ASCIIDigit.test(a.c());){const e=parseInt(a.c(),10);if(null===r)r=e;else{if(0===r)return m("Invalid IP v6 address."),null;r=10*r+e}if(r>255)return m("Invalid IP v6 address."),null;a.pointer++}if(null===r)return m("Invalid IP v6 address."),null;t[n]=256*t[n]+r,e++,2!==e&&4!==e||n++}if(4!==e)return m("Invalid IP v6 address."),null;break}if(":"===a.c()){if(a.pointer++,""===a.c())return m("Invalid IP v6 address."),null}else if(""!==a.c())return m("Invalid IP v6 address."),null;t[n]=e,n++}if(null!==o){let e=n-o;for(n=7;0!==n&&e>0;)[t[n],t[o+e-1]]=[t[o+e-1],t[n]],n--,e--}else if(null===o&&8!==n)return m("Invalid IP v6 address."),null;return t}function H(e){if(/[\x00\t\f\r #/:?@\[\\\]]/.test(e))return m("Invalid host string."),null;let t="";for(const n of e)t+=F(n,l);return t}function A(e){return null}function Y(e){return"%"+("00"+e.toString(16).toUpperCase()).slice(-2)}function I(e){const t=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,n=new Uint8Array(e.length);let o=0;for(let i=0;i<e.length;i++){const a=e[i];if(37!==a)n[o]=a,o++;else if(37===a&&i>=e.length-2)n[o]=a,o++;else if(37!==a||t(e[i+1])&&t(e[i+2])){const t=parseInt(r.utf8Decode(Uint8Array.of(e[i+1],e[i+2])),16);n[o]=t,o++,i+=2}else n[o]=a,o++}return n.subarray(0,o)}function V(e){return I(r.utf8Encode(e))}function F(e,t){if(!t.test(e))return e;const n=r.utf8Encode(e);let o="";for(const e of n)o+=Y(e);return o}function R(e){const t=[];let n=[];for(const r of e)38===r?(t.push(Uint8Array.from(n)),n=[]):n.push(r);0!==n.length&&t.push(Uint8Array.from(n));const o=[];for(const e of t){if(0===e.length)continue;const t=e.indexOf(61),n=-1!==t?e.slice(0,t):e,i=-1!==t?e.slice(t+1):new Uint8Array;for(let e=0;e<n.length;e++)43===n[e]&&(n[e]=32);for(let e=0;e<i.length;e++)43===i[e]&&(i[e]=32);const a=r.utf8Decode(n),c=r.utf8Decode(i);o.push([a,c])}return o}function W(e){let t="";for(const n of e)t+=32===n?"+":42===n||45===n||46===n||n>=48&&n<=57||n>=65&&n<=90||95===n||n>=97&&n<=122?String.fromCodePoint(n):Y(n);return t}function U(e,t=!1){const n=a.domainToASCII(e);return""===n?(m("Invalid domain name."),null):n}t.setValidationErrorCallback=function(e){c=e},t.newURL=v,t.isSpecialScheme=y,t.isSpecial=_,t.defaultPort=g,t.includesCredentials=b,t.cannotHaveAUsernamePasswordPort=function(e){return null===e.host||""===e.host||e._cannotBeABaseURLFlag||"file"===e.scheme},t.urlSerializer=M,t.hostSerializer=w,t.iPv4Serializer=O,t.iPv6Serializer=S,t.urlParser=function(e,t,n){const r=C(e,t,n);return null===r?null:("blob"!==r.scheme||(r._blobURLEntry=null),r)},t.basicURLParser=C,t.setTheUsername=function(e,t){let n="";for(const e of t)n+=F(e,d);e.username=n},t.setThePassword=function(e,t){let n="";for(const e of t)n+=F(e,d);e.password=n},t.isSingleDotPathSegment=x,t.isDoubleDotPathSegment=k,t.shorten=L,t.isNormalizedWindowsDriveLetter=E,t.isWindowsDriveLetter=T,t.startsWithAWindowsDriveLetter=P,t.hostParser=j,t.iPv4NumberParser=z,t.iPv4Parser=D,t.iPv6Parser=N,t.opaqueHostParser=H,t.resolveABlobURL=A,t.percentEncode=Y,t.percentDecode=I,t.stringPercentDecode=V,t.utf8PercentEncode=F,t.hostEquals=function(e,t){return e===t},t.urlEquals=function(e,t,n=!1){return M(e,n)===M(t,n)},t.urlEncodedStringParser=function(e){return R(r.utf8Encode(e))},t.urlEncodedParser=R,t.urlEncodedByteSerializer=W,t.urlEncodedSerializer=function(e,t){if("UTF-8"!==(void 0===t||"replacement"===t||"UTF-16BE"===t||"UTF-16LE"===t?"UTF-8":t).toUpperCase())throw new Error("Only UTF-8 encoding is supported.");let n="";for(const t of e){const e=W(r.utf8Encode(t[0]));let o=t[1];o=W(r.utf8Encode(o)),""!==n&&(n+="&"),n+=e+"="+o}return n},t.origin=function e(t){switch(t.scheme){case"blob":t._blobURLEntry;const n=C(t.path[0]);return null===n?o.OpaqueOrigin:e(n);case"ftp":case"http":case"https":case"ws":case"wss":return[t.scheme,null===t.host?"":t.host,t.port,null];case"file":default:return o.OpaqueOrigin}},t.domainToASCII=U,t.domainToUnicode=function(e,t=!1){const n=a.domainToUnicode(e);return""===n&&m("Invalid domain name."),n},t.asciiSerializationOfAnOrigin=function(e){if(""===e[0]&&""===e[1]&&null===e[2]&&null===e[3])return"null";let t=e[0]+"://"+w(e[1]);return null!==e[2]&&(t+=":"+e[2].toString()),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isASCIIByte=function(e){return e>=0&&e<=127}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.length=function(e){return e.length},t.byteLowercase=function(e){for(let t=0;t<e.length;t++){const n=e[t];n>=65&&n<=90&&(e[t]=n+32)}},t.byteUppercase=function(e){for(let t=0;t<e.length;t++){const n=e[t];n>=97&&n<=122&&(e[t]=n-32)}},t.byteCaseInsensitiveMatch=function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){let r=e[n],o=t[n];if(r>=65&&r<=90&&(r+=32),o>=65&&o<=90&&(o+=32),r!==o)return!1}return!0},t.startsWith=function(e,t){let n=0;for(;;){if(n>=e.length)return!1;if(n>=t.length)return!0;if(e[n]!==t[n])return!1;n++}},t.byteLessThan=function(e,t){let n=0;for(;;){if(n>=e.length)return!1;if(n>=t.length)return!0;const r=e[n],o=t[n];if(r<o)return!0;if(r>o)return!1;n++}},t.isomorphicDecode=function(e){return String.fromCodePoint(...e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(206),o=n(24),i=n(47);class a extends r.TextImpl{constructor(e){super(e)}static _create(e,t=""){const n=new a(t);return n._nodeDocument=e,n}}t.CDATASectionImpl=a,i.idl_defineConst(a.prototype,"_nodeType",o.NodeType.CData)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(146),i=n(47);class a extends o.CharacterDataImpl{constructor(e=""){super(e)}static _create(e,t=""){const n=new a(t);return n._nodeDocument=e,n}}t.CommentImpl=a,i.idl_defineConst(a.prototype,"_nodeType",r.NodeType.Comment)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(207),o=n(20);class i extends r.EventImpl{constructor(e,t){super(e,t),this._detail=null,this._detail=t&&t.detail||null}get detail(){return this._detail}initCustomEvent(e,t=!1,n=!1,r=null){this._dispatchFlag||(o.event_initialize(this,e,t,n),this._detail=r)}}t.CustomEventImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(96),i=n(47);class a extends o.NodeImpl{constructor(e,t,n){super(),this._name="",this._publicId="",this._systemId="",this._name=e,this._publicId=t,this._systemId=n}get name(){return this._name}get publicId(){return this._publicId}get systemId(){return this._systemId}before(...e){throw new Error("Mixin: ChildNode not implemented.")}after(...e){throw new Error("Mixin: ChildNode not implemented.")}replaceWith(...e){throw new Error("Mixin: ChildNode not implemented.")}remove(){throw new Error("Mixin: ChildNode not implemented.")}static _create(e,t,n="",r=""){const o=new a(t,n,r);return o._nodeDocument=e,o}}t.DocumentTypeImpl=a,i.idl_defineConst(a.prototype,"_nodeType",r.NodeType.DocumentType)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(46),i=n(20),a=n(47);class c{constructor(e){this._associatedDocument=e||r.dom.window.document}createDocumentType(e,t,n){return i.namespace_validate(e),i.create_documentType(this._associatedDocument,e,t,n)}createDocument(e,t,n=null){const r=i.create_xmlDocument();let a=null;return t&&(a=i.document_internalCreateElementNS(r,e,t)),n&&r.appendChild(n),a&&r.appendChild(a),r._origin=this._associatedDocument._origin,e===o.namespace.HTML?r._contentType="application/xhtml+xml":e===o.namespace.SVG?r._contentType="image/svg+xml":r._contentType="application/xml",r}createHTMLDocument(e){const t=i.create_document();t._type="html",t._contentType="text/html",t.appendChild(i.create_documentType(t,"html","",""));const n=i.element_createAnElement(t,"html",o.namespace.HTML);t.appendChild(n);const r=i.element_createAnElement(t,"head",o.namespace.HTML);if(n.appendChild(r),void 0!==e){const n=i.element_createAnElement(t,"title",o.namespace.HTML);r.appendChild(n);const a=i.create_text(t,e);n.appendChild(a)}const a=i.element_createAnElement(t,"body",o.namespace.HTML);return n.appendChild(a),t._origin=this._associatedDocument._origin,t}hasFeature(){return!0}static _create(e){return new c(e)}}t.DOMImplementationImpl=c,a.idl_defineConst(c.prototype,"_ID","@oozcitak/dom")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(41),i=n(46),a=n(20);class c{constructor(e,t){this._element=e,this._attribute=t,this._tokenSet=new Set;const n=t._localName,o=a.element_getAnAttributeValue(e,n),i=this;this._element._attributeChangeSteps.push((function(e,t,n,r,o){t===i._attribute._localName&&null===o&&(r?i._tokenSet=a.orderedSet_parse(r):i._tokenSet.clear())})),r.dom.features.steps&&a.dom_runAttributeChangeSteps(e,n,o,o,null)}get length(){return this._tokenSet.size}item(e){let t=0;for(const n of this._tokenSet){if(t===e)return n;t++}return null}contains(e){return this._tokenSet.has(e)}add(...e){for(const t of e){if(""===t)throw new o.SyntaxError("Cannot add an empty token.");if(i.codePoint.ASCIIWhiteSpace.test(t))throw new o.InvalidCharacterError("Token cannot contain whitespace.");this._tokenSet.add(t)}a.tokenList_updateSteps(this)}remove(...e){for(const t of e){if(""===t)throw new o.SyntaxError("Cannot remove an empty token.");if(i.codePoint.ASCIIWhiteSpace.test(t))throw new o.InvalidCharacterError("Token cannot contain whitespace.");this._tokenSet.delete(t)}a.tokenList_updateSteps(this)}toggle(e,t){if(""===e)throw new o.SyntaxError("Cannot toggle an empty token.");if(i.codePoint.ASCIIWhiteSpace.test(e))throw new o.InvalidCharacterError("Token cannot contain whitespace.");return this._tokenSet.has(e)?void 0!==t&&!1!==t||(this._tokenSet.delete(e),a.tokenList_updateSteps(this),!1):(void 0===t||!0===t)&&(this._tokenSet.add(e),a.tokenList_updateSteps(this),!0)}replace(e,t){if(""===e||""===t)throw new o.SyntaxError("Cannot replace an empty token.");if(i.codePoint.ASCIIWhiteSpace.test(e)||i.codePoint.ASCIIWhiteSpace.test(t))throw new o.InvalidCharacterError("Token cannot contain whitespace.");return!!this._tokenSet.has(e)&&(i.set.replace(this._tokenSet,e,t),a.tokenList_updateSteps(this),!0)}supports(e){return a.tokenList_validationSteps(this,e)}get value(){return a.tokenList_serializeSteps(this)}set value(e){a.element_setAnAttributeValue(this._element,this._attribute._localName,e)}[Symbol.iterator](){const e=this._tokenSet[Symbol.iterator]();return{next:()=>e.next()}}static _create(e,t){return new c(e,t)}}t.DOMTokenListImpl=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(46),o=n(20),i=n(26),a=n(34);class c{constructor(e,t){return this._live=!0,this._root=e,this._filter=t,new Proxy(this,this)}get length(){let e=0,t=o.tree_getFirstDescendantNode(this._root,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e));for(;null!==t;)e++,t=o.tree_getNextDescendantNode(this._root,t,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e));return e}item(e){let t=0,n=o.tree_getFirstDescendantNode(this._root,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e));for(;null!==n;){if(t===e)return n;t++,n=o.tree_getNextDescendantNode(this._root,n,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e))}return null}namedItem(e){if(""===e)return null;let t=o.tree_getFirstDescendantNode(this._root,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e));for(;null!=t;){if(t._uniqueIdentifier===e)return t;if(t._namespace===r.namespace.HTML)for(let n=0;n<t._attributeList.length;n++){const r=t._attributeList[n];if("name"===r._localName&&null===r._namespace&&null===r._namespacePrefix&&r._value===e)return t}t=o.tree_getNextDescendantNode(this._root,t,!1,!1,e=>i.Guard.isElementNode(e)&&this._filter(e))}return null}[Symbol.iterator](){const e=this._root,t=this._filter;let n=o.tree_getFirstDescendantNode(e,!1,!1,e=>i.Guard.isElementNode(e)&&t(e));return{next(){if(null===n)return{done:!0,value:null};{const r={done:!1,value:n};return n=o.tree_getNextDescendantNode(e,n,!1,!1,e=>i.Guard.isElementNode(e)&&t(e)),r}}}}get(e,t,n){if(!a.isString(t)||-1!==c.reservedNames.indexOf(t))return Reflect.get(e,t,n);const r=Number(t);return isNaN(r)?e.namedItem(t)||void 0:e.item(r)||void 0}set(e,t,n,r){if(!a.isString(t)||-1!==c.reservedNames.indexOf(t))return Reflect.set(e,t,n,r);const i=Number(t),s=isNaN(i)?e.namedItem(t)||void 0:e.item(i)||void 0;return!(!s||!s._parent)&&(o.mutation_replace(s,n,s._parent),!0)}static _create(e,t=(()=>!0)){return new c(e,t)}}t.HTMLCollectionImpl=c,c.reservedNames=["_root","_live","_filter","length","item","namedItem","get","set"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e,t,n,r,o,i,a,c,s){this._type=e,this._target=t,this._addedNodes=n,this._removedNodes=r,this._previousSibling=o,this._nextSibling=i,this._attributeName=a,this._attributeNamespace=c,this._oldValue=s}get type(){return this._type}get target(){return this._target}get addedNodes(){return this._addedNodes}get removedNodes(){return this._removedNodes}get previousSibling(){return this._previousSibling}get nextSibling(){return this._nextSibling}get attributeName(){return this._attributeName}get attributeNamespace(){return this._attributeNamespace}get oldValue(){return this._oldValue}static _create(e,t,n,o,i,a,c,s,l){return new r(e,t,n,o,i,a,c,s,l)}}t.MutationRecordImpl=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(41),o=n(20);class i extends Array{constructor(e){super(),this._element=e}_asArray(){return this}item(e){return this[e]||null}getNamedItem(e){return o.element_getAnAttributeByName(e,this._element)}getNamedItemNS(e,t){return o.element_getAnAttributeByNamespaceAndLocalName(e||"",t,this._element)}setNamedItem(e){return o.element_setAnAttribute(e,this._element)}setNamedItemNS(e){return o.element_setAnAttribute(e,this._element)}removeNamedItem(e){const t=o.element_removeAnAttributeByName(e,this._element);if(null===t)throw new r.NotFoundError;return t}removeNamedItemNS(e,t){const n=o.element_removeAnAttributeByNamespaceAndLocalName(e||"",t,this._element);if(null===n)throw new r.NotFoundError;return n}static _create(e){return new i(e)}}t.NamedNodeMapImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(47);class i{constructor(){}acceptNode(e){return r.FilterResult.Accept}static _create(){return new i}}t.NodeFilterImpl=i,i.FILTER_ACCEPT=1,i.FILTER_REJECT=2,i.FILTER_SKIP=3,i.SHOW_ALL=4294967295,i.SHOW_ELEMENT=1,i.SHOW_ATTRIBUTE=2,i.SHOW_TEXT=4,i.SHOW_CDATA_SECTION=8,i.SHOW_ENTITY_REFERENCE=16,i.SHOW_ENTITY=32,i.SHOW_PROCESSING_INSTRUCTION=64,i.SHOW_COMMENT=128,i.SHOW_DOCUMENT=256,i.SHOW_DOCUMENT_TYPE=512,i.SHOW_DOCUMENT_FRAGMENT=1024,i.SHOW_NOTATION=2048,o.idl_defineConst(i.prototype,"FILTER_ACCEPT",1),o.idl_defineConst(i.prototype,"FILTER_REJECT",2),o.idl_defineConst(i.prototype,"FILTER_SKIP",3),o.idl_defineConst(i.prototype,"SHOW_ALL",4294967295),o.idl_defineConst(i.prototype,"SHOW_ELEMENT",1),o.idl_defineConst(i.prototype,"SHOW_ATTRIBUTE",2),o.idl_defineConst(i.prototype,"SHOW_TEXT",4),o.idl_defineConst(i.prototype,"SHOW_CDATA_SECTION",8),o.idl_defineConst(i.prototype,"SHOW_ENTITY_REFERENCE",16),o.idl_defineConst(i.prototype,"SHOW_ENTITY",32),o.idl_defineConst(i.prototype,"SHOW_PROCESSING_INSTRUCTION",64),o.idl_defineConst(i.prototype,"SHOW_COMMENT",128),o.idl_defineConst(i.prototype,"SHOW_DOCUMENT",256),o.idl_defineConst(i.prototype,"SHOW_DOCUMENT_TYPE",512),o.idl_defineConst(i.prototype,"SHOW_DOCUMENT_FRAGMENT",1024),o.idl_defineConst(i.prototype,"SHOW_NOTATION",2048)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(211),o=n(20);class i extends r.TraverserImpl{constructor(e,t,n){super(e),this._iteratorCollection=void 0,this._reference=t,this._pointerBeforeReference=n,o.nodeIterator_iteratorList().add(this)}get referenceNode(){return this._reference}get pointerBeforeReferenceNode(){return this._pointerBeforeReference}nextNode(){return o.nodeIterator_traverse(this,!0)}previousNode(){return o.nodeIterator_traverse(this,!1)}detach(){o.nodeIterator_iteratorList().delete(this)}static _create(e,t,n){return new i(e,t,n)}}t.NodeIteratorImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(34),i=n(20);class a{constructor(e){return this._live=!0,this._filter=null,this._length=0,this._root=e,new Proxy(this,this)}get length(){return this._root._children.size}item(e){if(e<0||e>this.length-1)return null;if(e<this.length/2){let t=0,n=this._root._firstChild;for(;null!==n&&t!==e;)n=n._nextSibling,t++;return n}{let t=this.length-1,n=this._root._lastChild;for(;null!==n&&t!==e;)n=n._previousSibling,t--;return n}}keys(){return{[Symbol.iterator]:function(){let e=0;return{next:function(){return e===this.length?{done:!0,value:null}:{done:!1,value:e++}}.bind(this)}}.bind(this)}}values(){return{[Symbol.iterator]:function(){const e=this[Symbol.iterator]();return{next:()=>e.next()}}.bind(this)}}entries(){return{[Symbol.iterator]:function(){const e=this[Symbol.iterator]();let t=0;return{next(){const n=e.next();return n.done?{done:!0,value:null}:{done:!1,value:[t++,n.value]}}}}.bind(this)}}[Symbol.iterator](){return this._root._children[Symbol.iterator]()}forEach(e,t){void 0===t&&(t=r.dom.window);let n=0;for(const r of this._root._children)e.call(t,r,n++,this)}get(e,t,n){if(!o.isString(t))return Reflect.get(e,t,n);const r=Number(t);return isNaN(r)?Reflect.get(e,t,n):e.item(r)||void 0}set(e,t,n,r){if(!o.isString(t))return Reflect.set(e,t,n,r);const a=Number(t);if(isNaN(a))return Reflect.set(e,t,n,r);const c=e.item(a)||void 0;return!!c&&(!!c._parent&&(i.mutation_replace(c,n,c._parent),!0))}static _create(e){return new a(e)}}t.NodeListImpl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(34);class i{constructor(e){return this._live=!1,this._items=[],this._length=0,this._root=e,this._items=[],this._filter=function(e){return!0},new Proxy(this,this)}get length(){return this._items.length}item(e){return e<0||e>this.length-1?null:this._items[e]}keys(){return{[Symbol.iterator]:function(){let e=0;return{next:function(){return e===this.length?{done:!0,value:null}:{done:!1,value:e++}}.bind(this)}}.bind(this)}}values(){return{[Symbol.iterator]:function(){const e=this[Symbol.iterator]();return{next:()=>e.next()}}.bind(this)}}entries(){return{[Symbol.iterator]:function(){const e=this[Symbol.iterator]();let t=0;return{next(){const n=e.next();return n.done?{done:!0,value:null}:{done:!1,value:[t++,n.value]}}}}.bind(this)}}[Symbol.iterator](){const e=this._items[Symbol.iterator]();return{next:()=>e.next()}}forEach(e,t){void 0===t&&(t=r.dom.window);let n=0;for(const r of this._items)e.call(t,r,n++,this)}get(e,t,n){if(!o.isString(t))return Reflect.get(e,t,n);const r=Number(t);return isNaN(r)?Reflect.get(e,t,n):e._items[r]||void 0}set(e,t,n,r){if(!o.isString(t))return Reflect.set(e,t,n,r);const i=Number(t);return isNaN(i)?Reflect.set(e,t,n,r):i>=0&&i<e._items.length&&(e._items[i]=n,!0)}static _create(e,t){const n=new i(e);return n._items=t,n}}t.NodeListStaticImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(146),i=n(47);class a extends o.CharacterDataImpl{constructor(e,t){super(t),this._target=e}get target(){return this._target}static _create(e,t,n){const r=new a(t,n);return r._nodeDocument=e,r}}t.ProcessingInstructionImpl=a,i.idl_defineConst(a.prototype,"_nodeType",r.NodeType.ProcessingInstruction)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(24),i=n(204),a=n(41),c=n(20),s=n(47),l=n(26);class u extends i.AbstractRangeImpl{constructor(){super();const e=r.dom.window._associatedDocument;this._start=[e,0],this._end=[e,0],r.dom.rangeList.add(this)}get commonAncestorContainer(){let e=this._start[0];for(;!c.tree_isAncestorOf(this._end[0],e,!0);){if(null===e._parent)throw new Error("Parent node is null.");e=e._parent}return e}setStart(e,t){c.range_setTheStart(this,e,t)}setEnd(e,t){c.range_setTheEnd(this,e,t)}setStartBefore(e){let t=e._parent;if(null===t)throw new a.InvalidNodeTypeError;c.range_setTheStart(this,t,c.tree_index(e))}setStartAfter(e){let t=e._parent;if(null===t)throw new a.InvalidNodeTypeError;c.range_setTheStart(this,t,c.tree_index(e)+1)}setEndBefore(e){let t=e._parent;if(null===t)throw new a.InvalidNodeTypeError;c.range_setTheEnd(this,t,c.tree_index(e))}setEndAfter(e){let t=e._parent;if(null===t)throw new a.InvalidNodeTypeError;c.range_setTheEnd(this,t,c.tree_index(e)+1)}collapse(e){e?this._end=this._start:this._start=this._end}selectNode(e){c.range_select(e,this)}selectNodeContents(e){if(l.Guard.isDocumentTypeNode(e))throw new a.InvalidNodeTypeError;const t=c.tree_nodeLength(e);this._start=[e,0],this._end=[e,t]}compareBoundaryPoints(e,t){if(e!==o.HowToCompare.StartToStart&&e!==o.HowToCompare.StartToEnd&&e!==o.HowToCompare.EndToEnd&&e!==o.HowToCompare.EndToStart)throw new a.NotSupportedError;if(c.range_root(this)!==c.range_root(t))throw new a.WrongDocumentError;let n,r;switch(e){case o.HowToCompare.StartToStart:n=this._start,r=t._start;break;case o.HowToCompare.StartToEnd:n=this._end,r=t._start;break;case o.HowToCompare.EndToEnd:n=this._end,r=t._end;break;case o.HowToCompare.EndToStart:n=this._start,r=t._end;break;default:throw new a.NotSupportedError}const i=c.boundaryPoint_position(n,r);return i===o.BoundaryPosition.Before?-1:i===o.BoundaryPosition.After?1:0}deleteContents(){if(c.range_collapsed(this))return;const e=this._startNode,t=this._startOffset,n=this._endNode,r=this._endOffset;if(e===n&&l.Guard.isCharacterDataNode(e))return void c.characterData_replaceData(e,t,r-t,"");const o=[];for(const e of c.range_getContainedNodes(this)){const t=e._parent;null!==t&&c.range_isContained(t,this)||o.push(e)}let i,a;if(c.tree_isAncestorOf(n,e,!0))i=e,a=t;else{let t=e;for(;null!==t._parent&&!c.tree_isAncestorOf(n,t._parent,!0);)t=t._parent;if(null===t._parent)throw new Error("Parent node is null.");i=t._parent,a=c.tree_index(t)+1}l.Guard.isCharacterDataNode(e)&&c.characterData_replaceData(e,t,c.tree_nodeLength(e)-t,"");for(const e of o)e._parent&&c.mutation_remove(e,e._parent);l.Guard.isCharacterDataNode(n)&&c.characterData_replaceData(n,0,r,""),this._start=[i,a],this._end=[i,a]}extractContents(){return c.range_extract(this)}cloneContents(){return c.range_cloneTheContents(this)}insertNode(e){return c.range_insert(e,this)}surroundContents(e){for(const e of c.range_getPartiallyContainedNodes(this))if(!l.Guard.isTextNode(e))throw new a.InvalidStateError;if(l.Guard.isDocumentNode(e)||l.Guard.isDocumentTypeNode(e)||l.Guard.isDocumentFragmentNode(e))throw new a.InvalidNodeTypeError;const t=c.range_extract(this);0!==e._children.size&&c.mutation_replaceAll(null,e),c.range_insert(e,this),c.mutation_append(t,e),c.range_select(e,this)}cloneRange(){return c.create_range(this._start,this._end)}detach(){r.dom.rangeList.delete(this)}isPointInRange(e,t){if(c.tree_rootNode(e)!==c.range_root(this))return!1;if(l.Guard.isDocumentTypeNode(e))throw new a.InvalidNodeTypeError;if(t>c.tree_nodeLength(e))throw new a.IndexSizeError;const n=[e,t];return c.boundaryPoint_position(n,this._start)!==o.BoundaryPosition.Before&&c.boundaryPoint_position(n,this._end)!==o.BoundaryPosition.After}comparePoint(e,t){if(c.tree_rootNode(e)!==c.range_root(this))throw new a.WrongDocumentError;if(l.Guard.isDocumentTypeNode(e))throw new a.InvalidNodeTypeError;if(t>c.tree_nodeLength(e))throw new a.IndexSizeError;const n=[e,t];return c.boundaryPoint_position(n,this._start)===o.BoundaryPosition.Before?-1:c.boundaryPoint_position(n,this._end)===o.BoundaryPosition.After?1:0}intersectsNode(e){if(c.tree_rootNode(e)!==c.range_root(this))return!1;const t=e._parent;if(null===t)return!0;const n=c.tree_index(e);return c.boundaryPoint_position([t,n],this._end)===o.BoundaryPosition.Before&&c.boundaryPoint_position([t,n+1],this._start)===o.BoundaryPosition.After}toString(){let e="";if(this._startNode===this._endNode&&l.Guard.isTextNode(this._startNode))return this._startNode._data.substring(this._startOffset,this._endOffset);l.Guard.isTextNode(this._startNode)&&(e+=this._startNode._data.substring(this._startOffset));for(const t of c.range_getContainedNodes(this))l.Guard.isTextNode(t)&&(e+=t._data);return l.Guard.isTextNode(this._endNode)&&(e+=this._endNode._data.substring(0,this._endOffset)),e}static _create(e,t){const n=new u;return e&&(n._start=e),t&&(n._end=t),n}}t.RangeImpl=u,u.START_TO_START=0,u.START_TO_END=1,u.END_TO_END=2,u.END_TO_START=3,s.idl_defineConst(u.prototype,"START_TO_START",0),s.idl_defineConst(u.prototype,"START_TO_END",1),s.idl_defineConst(u.prototype,"END_TO_END",2),s.idl_defineConst(u.prototype,"END_TO_START",3)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(208),o=n(34),i=n(20);class a extends r.DocumentFragmentImpl{constructor(e,t="closed"){super(),this._host=e,this._mode=t}get mode(){return this._mode}get host(){return this._host}_getTheParent(e){return e._composedFlag||o.isEmpty(e._path)||i.tree_rootNode(e._path[0].invocationTarget)!==this?this._host:null}static _create(e,t){return new a(t,"closed")}}t.ShadowRootImpl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(211),i=n(20);class a extends o.TraverserImpl{constructor(e,t){super(e),this._current=t}get currentNode(){return this._current}set currentNode(e){this._current=e}parentNode(){let e=this._current;for(;null!==e&&e!==this._root;)if(e=e._parent,null!==e&&i.traversal_filter(this,e)===r.FilterResult.Accept)return this._current=e,e;return null}firstChild(){return i.treeWalker_traverseChildren(this,!0)}lastChild(){return i.treeWalker_traverseChildren(this,!1)}nextSibling(){return i.treeWalker_traverseSiblings(this,!0)}previousNode(){let e=this._current;for(;e!==this._root;){let t=e._previousSibling;for(;t;){e=t;let n=i.traversal_filter(this,e);for(;n!==r.FilterResult.Reject&&e._lastChild;)e=e._lastChild,n=i.traversal_filter(this,e);if(n===r.FilterResult.Accept)return this._current=e,e;t=e._previousSibling}if(e===this._root||null===e._parent)return null;if(e=e._parent,i.traversal_filter(this,e)===r.FilterResult.Accept)return this._current=e,e}return null}previousSibling(){return i.treeWalker_traverseSiblings(this,!1)}nextNode(){let e=this._current,t=r.FilterResult.Accept;for(;;){for(;t!==r.FilterResult.Reject&&e._firstChild;)if(e=e._firstChild,t=i.traversal_filter(this,e),t===r.FilterResult.Accept)return this._current=e,e;let n=null,o=e;for(;null!==o;){if(o===this._root)return null;if(n=o._nextSibling,null!==n){e=n;break}o=o._parent}if(t=i.traversal_filter(this,e),t===r.FilterResult.Accept)return this._current=e,e}}static _create(e,t){return new a(e,t)}}t.TreeWalkerImpl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(145),o=n(34),i=n(20);class a extends r.EventTargetImpl{constructor(){super(),this._signalSlots=new Set,this._mutationObserverMicrotaskQueued=!1,this._mutationObservers=new Set,this._iteratorList=new o.FixedSizeSet,this._associatedDocument=i.create_document()}get document(){return this._associatedDocument}get event(){return this._currentEvent}static _create(){return new a}}t.WindowImpl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(209);class o extends r.DocumentImpl{constructor(){super()}}t.XMLDocumentImpl=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(24),i=n(212),a=n(52);t.nodeIterator_traverse=function(e,t){let n=e._reference,r=e._pointerBeforeReference;for(;;){if(t)if(r)r=!1;else{const t=a.tree_getFollowingNode(e._root,n);if(!t)return null;n=t}else if(r){const t=a.tree_getPrecedingNode(e.root,n);if(!t)return null;n=t}else r=!0;if(i.traversal_filter(e,n)===o.FilterResult.Accept)break}return e._reference=n,e._pointerBeforeReference=r,n},t.nodeIterator_iteratorList=function(){return r.dom.window._iteratorList}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(41),o=n(46),i=n(473);function a(e){if(!i.xml_isName(e))throw new r.InvalidCharacterError("Invalid XML name: "+e);if(!i.xml_isQName(e))throw new r.InvalidCharacterError(`Invalid XML qualified name: ${e}.`)}t.namespace_validate=a,t.namespace_validateAndExtract=function(e,t){e||(e=null),a(t);const n=t.split(":"),i=2===n.length?n[0]:null,c=2===n.length?n[1]:t;if(i&&null===e)throw new r.NamespaceError("Qualified name includes a prefix but the namespace is null.");if("xml"===i&&e!==o.namespace.XML)throw new r.NamespaceError('Qualified name includes the "xml" prefix but the namespace is not the XML namespace.');if(e!==o.namespace.XMLNS&&("xmlns"===i||"xmlns"===t))throw new r.NamespaceError('Qualified name includes the "xmlns" prefix but the namespace is not the XMLNS namespace.');if(e===o.namespace.XMLNS&&"xmlns"!==i&&"xmlns"!==t)throw new r.NamespaceError('Qualified name does not include the "xmlns" prefix but the namespace is the XMLNS namespace.');return[e,i,c]},t.namespace_extractQName=function(e){a(e);const t=e.split(":");return[2===t.length?t[0]:null,2===t.length?t[1]:e]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.xml_isName=function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n>=97&&n<=122||n>=65&&n<=90||58===n||95===n||n>=192&&n<=214||n>=216&&n<=246||n>=248&&n<=767||n>=880&&n<=893||n>=895&&n<=8191||n>=8204&&n<=8205||n>=8304&&n<=8591||n>=11264&&n<=12271||n>=12289&&n<=55295||n>=63744&&n<=64975||n>=65008&&n<=65533)&&(0===t||!(45===n||46===n||n>=48&&n<=57||183===n||n>=768&&n<=879||n>=8255&&n<=8256))){if(n>=55296&&n<=56319&&t<e.length-1){const r=e.charCodeAt(t+1);if(r>=56320&&r<=57343&&(n=1024*(n-55296)+r-56320+65536,t++,n>=65536&&n<=983039))continue}return!1}}return!0},t.xml_isQName=function(e){let t=!1;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(!(r>=97&&r<=122||r>=65&&r<=90||95===r||r>=192&&r<=214||r>=216&&r<=246||r>=248&&r<=767||r>=880&&r<=893||r>=895&&r<=8191||r>=8204&&r<=8205||r>=8304&&r<=8591||r>=11264&&r<=12271||r>=12289&&r<=55295||r>=63744&&r<=64975||r>=65008&&r<=65533)&&(0===n||!(45===r||46===r||r>=48&&r<=57||183===r||r>=768&&r<=879||r>=8255&&r<=8256))){if(0===n||58!==r){if(r>=55296&&r<=56319&&n<e.length-1){const t=e.charCodeAt(n+1);if(t>=56320&&t<=57343&&(r=1024*(r-55296)+t-56320+65536,n++,r>=65536&&r<=983039))continue}return!1}if(t)return!1;if(n===e.length-1)return!1;t=!0}}return!0},t.xml_isLegalChar=function(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(9===n||10===n||13===n||n>=32&&n<=55295||n>=57344&&n<=65533)){if(n>=55296&&n<=56319&&t<e.length-1){const r=e.charCodeAt(t+1);if(r>=56320&&r<=57343&&(n=1024*(n-55296)+r-56320+65536,t++,n>=65536&&n<=1114111))continue}return!1}}return!0},t.xml_isPubidChar=function(e){for(let t=0;t<e.length;t++){const n=e.charCodeAt(t);if(!(n>=97&&n<=122||n>=65&&n<=90||n>=39&&n<=59||32===n||13===n||10===n||n>=35&&n<=37||33===n||61===n||63===n||64===n||95===n))return!1}return!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(52);t.boundaryPoint_position=function e(t,n){const i=t[0],a=t[1],c=n[0],s=n[1];if(console.assert(o.tree_rootNode(i)===o.tree_rootNode(c),"Boundary points must share the same root node."),i===c)return a===s?r.BoundaryPosition.Equal:a<s?r.BoundaryPosition.Before:r.BoundaryPosition.After;if(o.tree_isFollowing(c,i)){const t=e([c,s],[i,a]);if(t===r.BoundaryPosition.Before)return r.BoundaryPosition.After;if(t===r.BoundaryPosition.After)return r.BoundaryPosition.Before}if(o.tree_isAncestorOf(c,i)){let e=c;for(;!o.tree_isChildOf(i,e);)null!==e._parent&&(e=e._parent);if(o.tree_index(e)<a)return r.BoundaryPosition.After}return r.BoundaryPosition.Before}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(46),a=n(97),c=n(215),s=n(89),l=n(108),u=n(125);t.node_stringReplaceAll=function(e,t){let n=null;""!==e&&(n=a.create_text(t._nodeDocument,e)),l.mutation_replaceAll(n,t)},t.node_clone=function e(t,n=null,i=!1){let c;if(null===n&&(n=t._nodeDocument),o.Guard.isElementNode(t)){c=u.element_createAnElement(n,t._localName,t._namespace,t._namespacePrefix,t._is,!1);for(const r of t._attributeList){const t=e(r,n);u.element_append(t,c)}}else if(o.Guard.isDocumentNode(t)){const e=a.create_document();e._encoding=t._encoding,e._contentType=t._contentType,e._URL=t._URL,e._origin=t._origin,e._type=t._type,e._mode=t._mode,c=e}else if(o.Guard.isDocumentTypeNode(t)){c=a.create_documentType(n,t._name,t._publicId,t._systemId)}else if(o.Guard.isAttrNode(t)){const e=a.create_attr(n,t.localName);e._namespace=t._namespace,e._namespacePrefix=t._namespacePrefix,e._value=t._value,c=e}else c=o.Guard.isExclusiveTextNode(t)?a.create_text(n,t._data):o.Guard.isCDATASectionNode(t)?a.create_cdataSection(n,t._data):o.Guard.isCommentNode(t)?a.create_comment(n,t._data):o.Guard.isProcessingInstructionNode(t)?a.create_processingInstruction(n,t._target,t._data):o.Guard.isDocumentFragmentNode(t)?a.create_documentFragment(n):Object.create(t);if(o.Guard.isDocumentNode(c)?(c._nodeDocument=c,n=c):c._nodeDocument=n,r.dom.features.steps&&s.dom_runCloningSteps(c,t,n,i),i)for(const r of t._children){const t=e(r,n,!0);l.mutation_append(t,c)}return c},t.node_equals=function e(t,n){if(t._nodeType!==n._nodeType)return!1;if(o.Guard.isDocumentTypeNode(t)&&o.Guard.isDocumentTypeNode(n)){if(t._name!==n._name||t._publicId!==n._publicId||t._systemId!==n._systemId)return!1}else if(o.Guard.isElementNode(t)&&o.Guard.isElementNode(n)){if(t._namespace!==n._namespace||t._namespacePrefix!==n._namespacePrefix||t._localName!==n._localName||t._attributeList.length!==n._attributeList.length)return!1}else if(o.Guard.isAttrNode(t)&&o.Guard.isAttrNode(n)){if(t._namespace!==n._namespace||t._localName!==n._localName||t._value!==n._value)return!1}else if(o.Guard.isProcessingInstructionNode(t)&&o.Guard.isProcessingInstructionNode(n)){if(t._target!==n._target||t._data!==n._data)return!1}else if(o.Guard.isCharacterDataNode(t)&&o.Guard.isCharacterDataNode(n)&&t._data!==n._data)return!1;if(o.Guard.isElementNode(t)&&o.Guard.isElementNode(n)){if(t._attributeList.length!==n._attributeList.length)return!1;const r=new Map;for(const e of t._attributeList)r.set((e._namespace||"")+e._localName+e._value,e);for(let t=0;t<n._attributeList.length;t++){const o=n._attributeList[t],i=r.get((o._namespace||"")+o._localName+o._value);if(!i)return!1;if(!e(i,o))return!1}}if(t._children.size!==n._children.size)return!1;const r=t._children[Symbol.iterator](),i=n._children[Symbol.iterator]();let a=r.next(),c=i.next();for(;!a.done&&!c.done;){if(!e(a.value,c.value))return!1;a=r.next(),c=i.next()}return!0},t.node_listOfElementsWithQualifiedName=function(e,t){return"*"===e?a.create_htmlCollection(t):"html"===t._nodeDocument._type?a.create_htmlCollection(t,(function(t){return t._namespace===i.namespace.HTML&&t._qualifiedName===e.toLowerCase()||t._namespace!==i.namespace.HTML&&t._qualifiedName===e})):a.create_htmlCollection(t,(function(t){return t._qualifiedName===e}))},t.node_listOfElementsWithNamespace=function(e,t,n){return""===e&&(e=null),"*"===e&&"*"===t?a.create_htmlCollection(n):"*"===e?a.create_htmlCollection(n,(function(e){return e._localName===t})):"*"===t?a.create_htmlCollection(n,(function(t){return t._namespace===e})):a.create_htmlCollection(n,(function(n){return n._localName===t&&n._namespace===e}))},t.node_listOfElementsWithClassNames=function(e,t){const n=c.orderedSet_parse(e);if(0===n.size)return a.create_htmlCollection(t,()=>!1);const r="quirks"!==t._nodeDocument._mode;return a.create_htmlCollection(t,(function(e){const t=e.classList;return c.orderedSet_contains(t._tokenSet,n,r)}))},t.node_locateANamespacePrefix=function e(t,n){if(t._namespace===n&&null!==t._namespacePrefix)return t._namespacePrefix;for(let e=0;e<t._attributeList.length;e++){const r=t._attributeList[e];if("xmlns"===r._namespacePrefix&&r._value===n)return r._localName}return t._parent&&o.Guard.isElementNode(t._parent)?e(t._parent,n):null},t.node_locateANamespace=function e(t,n){if(o.Guard.isElementNode(t)){if(null!==t._namespace&&t._namespacePrefix===n)return t._namespace;for(let e=0;e<t._attributeList.length;e++){const r=t._attributeList[e];if(r._namespace===i.namespace.XMLNS&&"xmlns"===r._namespacePrefix&&r._localName===n)return r._value||null;if(null===n&&r._namespace===i.namespace.XMLNS&&null===r._namespacePrefix&&"xmlns"===r._localName)return r._value||null}return null===t.parentElement?null:e(t.parentElement,n)}return o.Guard.isDocumentNode(t)?null===t.documentElement?null:e(t.documentElement,n):o.Guard.isDocumentTypeNode(t)||o.Guard.isDocumentFragmentNode(t)?null:o.Guard.isAttrNode(t)?null===t._element?null:e(t._element,n):t._parent&&o.Guard.isElementNode(t._parent)?e(t._parent,n):null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(41),a=n(97),c=n(52),s=n(214),l=n(108);t.text_contiguousTextNodes=function(e,t=!1){return{[Symbol.iterator](){let n=e;for(;n&&o.Guard.isTextNode(n._previousSibling);)n=n._previousSibling;return{next(){if(n&&!t&&n===e&&(n=o.Guard.isTextNode(n._nextSibling)?n._nextSibling:null),null===n)return{done:!0,value:null};{const e={done:!1,value:n};return n=o.Guard.isTextNode(n._nextSibling)?n._nextSibling:null,e}}}}}},t.text_contiguousExclusiveTextNodes=function(e,t=!1){return{[Symbol.iterator](){let n=e;for(;n&&o.Guard.isExclusiveTextNode(n._previousSibling);)n=n._previousSibling;return{next(){if(n&&!t&&n===e&&(n=o.Guard.isExclusiveTextNode(n._nextSibling)?n._nextSibling:null),null===n)return{done:!0,value:null};{const e={done:!1,value:n};return n=o.Guard.isExclusiveTextNode(n._nextSibling)?n._nextSibling:null,e}}}}}},t.text_descendantTextContent=function(e){let t="",n=c.tree_getFirstDescendantNode(e,!1,!1,e=>o.Guard.isTextNode(e));for(;null!==n;)t+=n._data,n=c.tree_getNextDescendantNode(e,n,!1,!1,e=>o.Guard.isTextNode(e));return t},t.text_split=function(e,t){const n=e._data.length;if(t>n)throw new i.IndexSizeError;const o=n-t,u=s.characterData_substringData(e,t,o),f=a.create_text(e._nodeDocument,u),d=e._parent;if(null!==d){l.mutation_insert(f,d,e._nextSibling);for(const n of r.dom.rangeList){n._start[0]===e&&n._start[1]>t&&(n._start[0]=f,n._start[1]-=t),n._end[0]===e&&n._end[1]>t&&(n._end[0]=f,n._end[1]-=t);const r=c.tree_index(e);n._start[0]===d&&n._start[1]===r+1&&n._start[1]++,n._end[0]===d&&n._end[1]===r+1&&n._end[1]++}}return s.characterData_replaceData(e,t,o,""),f}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(922);n(39).dom.setFeatures(!1),t.throwIfParserError=function(e){const t=e.documentElement;if(null!==t&&"parsererror"===t.localName&&"http://www.mozilla.org/newlayout/xml/parsererror.xml"===t.namespaceURI){const e=t.firstElementChild;if(null===e)throw new Error("Error parsing XML string.");const n=e.getAttribute("message");if(null===n)throw new Error("Error parsing XML string.");throw new Error(n)}},t.createDocument=function(){const e=(new r.DOMImplementation).createDocument(null,"root",null);return e.documentElement&&e.removeChild(e.documentElement),e},t.createParser=function(){return new r.DOMParser}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.EOF=0]="EOF",e[e.Declaration=1]="Declaration",e[e.DocType=2]="DocType",e[e.Element=3]="Element",e[e.Text=4]="Text",e[e.CDATA=5]="CDATA",e[e.PI=6]="PI",e[e.Comment=7]="Comment",e[e.ClosingTag=8]="ClosingTag"}(t.TokenType||(t.TokenType={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LocalNameSet=class{constructor(){this._items={},this._nullItems={}}set(e,t){null===e?this._nullItems[t]=!0:(this._items[e]||(this._items[e]={}),this._items[e][t]=!0)}has(e,t){return null===e?!0===this._nullItems[t]:!!this._items[e]&&!0===this._items[e][t]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.destroyFns=void 0;var r=m(n(0)),o=p(n(1051)),i=m(n(1)),a=p(n(3)),c=p(n(935)),s=n(177),l=p(n(51)),u=p(n(126)),f=p(n(135)),d=n(43);function p(e){return e&&e.__esModule?e:{default:e}}function h(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return h=function(){return e},e}function m(e){if(e&&e.__esModule)return e;if(null===e||"object"!==v(e)&&"function"!=typeof e)return{default:e};var t=h();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function M(e,t){return(M=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=S(e);if(t){var o=S(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return O(this,n)}}function O(e,t){return!t||"object"!==v(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var C,x=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};t.destroyFns=[];"undefined"!=typeof window&&window.document&&window.document.documentElement&&(0,c.default)(document.documentElement,"click",(function(e){C={x:e.pageX,y:e.pageY},setTimeout((function(){return C=null}),100)}));var k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&M(e,t)}(p,e);var t,n,i,c=w(p);function p(){var e;return g(this,p),(e=c.apply(this,arguments)).handleCancel=function(t){var n=e.props.onCancel;n&&n(t)},e.handleOk=function(t){var n=e.props.onOk;n&&n(t)},e.renderFooter=function(t){var n=e.props,o=n.okText,i=n.okType,a=n.cancelText,c=n.confirmLoading;return r.createElement("div",null,r.createElement(u.default,_({onClick:e.handleCancel},e.props.cancelButtonProps),a||t.cancelText),r.createElement(u.default,_({type:i,loading:c,onClick:e.handleOk},e.props.okButtonProps),o||t.okText))},e.renderModal=function(t){var n=t.getPopupContainer,i=t.getPrefixCls,c=e.props,u=c.prefixCls,d=c.footer,p=c.visible,h=c.wrapClassName,m=c.centered,v=c.getContainer,g=c.closeIcon,b=x(c,["prefixCls","footer","visible","wrapClassName","centered","getContainer","closeIcon"]),M=i("modal",u),w=r.createElement(f.default,{componentName:"Modal",defaultLocale:(0,s.getConfirmLocale)()},e.renderFooter),O=r.createElement("span",{className:"".concat(M,"-close-x")},g||r.createElement(l.default,{className:"".concat(M,"-close-icon"),type:"close"}));return r.createElement(o.default,_({},b,{getContainer:void 0===v?n:v,prefixCls:M,wrapClassName:(0,a.default)(y({},"".concat(M,"-centered"),!!m),h),footer:void 0===d?w:d,visible:p,mousePosition:C,onClose:e.handleCancel,closeIcon:O}))},e}return t=p,(n=[{key:"render",value:function(){return r.createElement(d.ConfigConsumer,null,this.renderModal)}}])&&b(t.prototype,n),i&&b(t,i),p}(r.Component);t.default=k,k.defaultProps={width:520,transitionName:"zoom",maskTransitionName:"fade",confirmLoading:!1,visible:!1,okType:"primary"},k.propTypes={prefixCls:i.string,onOk:i.func,onCancel:i.func,okText:i.node,cancelText:i.node,centered:i.bool,width:i.oneOfType([i.number,i.string]),confirmLoading:i.bool,visible:i.bool,footer:i.node,title:i.node,closable:i.bool,closeIcon:i.node}},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){var r=n(940),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){var r=n(482).Symbol;e.exports=r},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=v(n(99)),o=v(n(45)),i=v(n(13)),a=v(n(992)),c=v(n(0)),s=v(n(1002)),l=v(n(1006)),u=v(n(1007)),f=(v(n(109)),v(n(1029))),d=v(n(487)),p=v(n(224)),h=v(n(1035)),m=n(226);function v(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e.validateMessages,v=e.onFieldsChange,y=e.onValuesChange,_=e.mapProps,g=void 0===_?m.identity:_,b=e.mapPropsToFields,M=e.fieldNameProp,w=e.fieldMetaProp,O=e.fieldDataProp,S=e.formPropName,C=void 0===S?"form":S,x=e.name,k=e.withRef;return function(e){var _=(0,s.default)({displayName:"Form",mixins:t,getInitialState:function(){var e=this,t=b&&b(this.props);return this.fieldsStore=(0,h.default)(t||{}),this.instances={},this.cachedBind={},this.clearedFieldMetaCache={},this.renderFields={},this.domFields={},["getFieldsValue","getFieldValue","setFieldsInitialValue","getFieldsError","getFieldError","isFieldValidating","isFieldsValidating","isFieldsTouched","isFieldTouched"].forEach((function(t){e[t]=function(){var n;return(n=e.fieldsStore)[t].apply(n,arguments)}})),{submitting:!1}},componentDidMount:function(){this.cleanUpUselessFields()},componentWillReceiveProps:function(e){b&&this.fieldsStore.updateFields(b(e))},componentDidUpdate:function(){this.cleanUpUselessFields()},onCollectCommon:function(e,t,n){var r=this.fieldsStore.getFieldMeta(e);if(r[t])r[t].apply(r,(0,a.default)(n));else if(r.originalProps&&r.originalProps[t]){var c;(c=r.originalProps)[t].apply(c,(0,a.default)(n))}var s=r.getValueFromEvent?r.getValueFromEvent.apply(r,(0,a.default)(n)):m.getValueFromEvent.apply(void 0,(0,a.default)(n));if(y&&s!==this.fieldsStore.getFieldValue(e)){var l=this.fieldsStore.getAllValues(),u={};l[e]=s,Object.keys(l).forEach((function(e){return(0,d.default)(u,e,l[e])})),y((0,i.default)((0,o.default)({},C,this.getForm()),this.props),(0,d.default)({},e,s),u)}var f=this.fieldsStore.getField(e);return{name:e,field:(0,i.default)({},f,{value:s,touched:!0}),fieldMeta:r}},onCollect:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];var c=this.onCollectCommon(e,t,r),s=c.name,l=c.field,u=c.fieldMeta,f=u.validate;this.fieldsStore.setFieldsAsDirty();var d=(0,i.default)({},l,{dirty:(0,m.hasRules)(f)});this.setFields((0,o.default)({},s,d))},onCollectValidate:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var a=this.onCollectCommon(e,t,r),c=a.field,s=a.fieldMeta,l=(0,i.default)({},c,{dirty:!0});this.fieldsStore.setFieldsAsDirty(),this.validateFieldsInternal([l],{action:t,options:{firstFields:!!s.validateFirst}})},getCacheBind:function(e,t,n){this.cachedBind[e]||(this.cachedBind[e]={});var r=this.cachedBind[e];return r[t]&&r[t].oriFn===n||(r[t]={fn:n.bind(this,e,t),oriFn:n}),r[t].fn},getFieldDecorator:function(e,t){var n=this,r=this.getFieldProps(e,t);return function(t){n.renderFields[e]=!0;var o=n.fieldsStore.getFieldMeta(e),a=t.props;return o.originalProps=a,o.ref=t.ref,c.default.cloneElement(t,(0,i.default)({},r,n.fieldsStore.getFieldValuePropValue(o)))}},getFieldProps:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Must call `getFieldProps` with valid name string!");delete this.clearedFieldMetaCache[e];var r=(0,i.default)({name:e,trigger:"onChange",valuePropName:"value",validate:[]},n),o=r.rules,a=r.trigger,c=r.validateTrigger,s=void 0===c?a:c,l=r.validate,u=this.fieldsStore.getFieldMeta(e);"initialValue"in r&&(u.initialValue=r.initialValue);var f=(0,i.default)({},this.fieldsStore.getFieldValuePropValue(r),{ref:this.getCacheBind(e,e+"__ref",this.saveRef)});M&&(f[M]=x?x+"_"+e:e);var d=(0,m.normalizeValidateRules)(l,o,s),p=(0,m.getValidateTriggers)(d);p.forEach((function(n){f[n]||(f[n]=t.getCacheBind(e,n,t.onCollectValidate))})),a&&-1===p.indexOf(a)&&(f[a]=this.getCacheBind(e,a,this.onCollect));var h=(0,i.default)({},u,r,{validate:d});return this.fieldsStore.setFieldMeta(e,h),w&&(f[w]=h),O&&(f[O]=this.fieldsStore.getField(e)),this.renderFields[e]=!0,f},getFieldInstance:function(e){return this.instances[e]},getRules:function(e,t){var n=e.validate.filter((function(e){return!t||e.trigger.indexOf(t)>=0})).map((function(e){return e.rules}));return(0,m.flattenArray)(n)},setFields:function(e,t){var n=this,r=this.fieldsStore.flattenRegisteredFields(e);if(this.fieldsStore.setFields(r),v){var a=Object.keys(r).reduce((function(e,t){return(0,d.default)(e,t,n.fieldsStore.getField(t))}),{});v((0,i.default)((0,o.default)({},C,this.getForm()),this.props),a,this.fieldsStore.getNestedAllFields())}this.forceUpdate(t)},setFieldsValue:function(e,t){var n=this.fieldsStore.fieldsMeta,r=this.fieldsStore.flattenRegisteredFields(e),a=Object.keys(r).reduce((function(e,t){if(n[t]){var o=r[t];e[t]={value:o}}return e}),{});if(this.setFields(a,t),y){var c=this.fieldsStore.getAllValues();y((0,i.default)((0,o.default)({},C,this.getForm()),this.props),e,c)}},saveRef:function(e,t,n){if(!n){var r=this.fieldsStore.getFieldMeta(e);return r.preserve||(this.clearedFieldMetaCache[e]={field:this.fieldsStore.getField(e),meta:r},this.clearField(e)),void delete this.domFields[e]}this.domFields[e]=!0,this.recoverClearedField(e);var o=this.fieldsStore.getFieldMeta(e);if(o){var i=o.ref;if(i){if("string"==typeof i)throw new Error("can not set ref string for "+e);"function"==typeof i?i(n):Object.prototype.hasOwnProperty.call(i,"current")&&(i.current=n)}}this.instances[e]=n},cleanUpUselessFields:function(){var e=this,t=this.fieldsStore.getAllFieldsName().filter((function(t){var n=e.fieldsStore.getFieldMeta(t);return!e.renderFields[t]&&!e.domFields[t]&&!n.preserve}));t.length&&t.forEach(this.clearField),this.renderFields={}},clearField:function(e){this.fieldsStore.clearField(e),delete this.instances[e],delete this.cachedBind[e]},resetFields:function(e){var t=this,n=this.fieldsStore.resetFields(e);(Object.keys(n).length>0&&this.setFields(n),e)?(Array.isArray(e)?e:[e]).forEach((function(e){return delete t.clearedFieldMetaCache[e]})):this.clearedFieldMetaCache={}},recoverClearedField:function(e){this.clearedFieldMetaCache[e]&&(this.fieldsStore.setFields((0,o.default)({},e,this.clearedFieldMetaCache[e].field)),this.fieldsStore.setFieldMeta(e,this.clearedFieldMetaCache[e].meta),delete this.clearedFieldMetaCache[e])},validateFieldsInternal:function(e,t,r){var o=this,a=t.fieldNames,c=t.action,s=t.options,l=void 0===s?{}:s,h={},v={},y={},_={};if(e.forEach((function(e){var t=e.name;if(!0===l.force||!1!==e.dirty){var n=o.fieldsStore.getFieldMeta(t),r=(0,i.default)({},e);r.errors=void 0,r.validating=!0,r.dirty=!0,h[t]=o.getRules(n,c),v[t]=r.value,y[t]=r}else e.errors&&(0,d.default)(_,t,{errors:e.errors})})),this.setFields(y),Object.keys(v).forEach((function(e){v[e]=o.fieldsStore.getFieldValue(e)})),r&&(0,m.isEmptyObject)(y))r((0,m.isEmptyObject)(_)?null:_,this.fieldsStore.getFieldsValue(a));else{var g=new u.default(h);n&&g.messages(n),g.validate(v,l,(function(e){var t=(0,i.default)({},_);e&&e.length&&e.forEach((function(e){var n=e.field,r=n;Object.keys(h).some((function(e){var t=h[e]||[];if(e===n)return r=e,!0;if(t.every((function(e){return"array"!==e.type}))||0!==n.indexOf(e+"."))return!1;var o=n.slice(e.length+1);return!!/^\d+$/.test(o)&&(r=e,!0)}));var o=(0,f.default)(t,r);("object"!=typeof o||Array.isArray(o))&&(0,d.default)(t,r,{errors:[]}),(0,f.default)(t,r.concat(".errors")).push(e)}));var n=[],c={};Object.keys(h).forEach((function(e){var r=(0,f.default)(t,e),i=o.fieldsStore.getField(e);(0,p.default)(i.value,v[e])?(i.errors=r&&r.errors,i.value=v[e],i.validating=!1,i.dirty=!1,c[e]=i):n.push({name:e})})),o.setFields(c),r&&(n.length&&n.forEach((function(e){var n=e.name,r=[{message:n+" need to revalidate",field:n}];(0,d.default)(t,n,{expired:!0,errors:r})})),r((0,m.isEmptyObject)(t)?null:t,o.fieldsStore.getFieldsValue(a)))}))}},validateFields:function(e,t,n){var r=this,o=new Promise((function(o,i){var a=(0,m.getParams)(e,t,n),c=a.names,s=a.options,l=(0,m.getParams)(e,t,n).callback;if(!l||"function"==typeof l){var u=l;l=function(e,t){u&&u(e,t),e?i({errors:e,values:t}):o(t)}}var f=c?r.fieldsStore.getValidFieldsFullName(c):r.fieldsStore.getValidFieldsName(),d=f.filter((function(e){var t=r.fieldsStore.getFieldMeta(e);return(0,m.hasRules)(t.validate)})).map((function(e){var t=r.fieldsStore.getField(e);return t.value=r.fieldsStore.getFieldValue(e),t}));d.length?("firstFields"in s||(s.firstFields=f.filter((function(e){return!!r.fieldsStore.getFieldMeta(e).validateFirst}))),r.validateFieldsInternal(d,{fieldNames:f,options:s},l)):l(null,r.fieldsStore.getFieldsValue(f))}));return o.catch((function(e){return console.error,e})),o},isSubmitting:function(){return this.state.submitting},submit:function(e){var t=this;this.setState({submitting:!0}),e((function(){t.setState({submitting:!1})}))},render:function(){var t=this.props,n=t.wrappedComponentRef,a=(0,r.default)(t,["wrappedComponentRef"]),s=(0,o.default)({},C,this.getForm());k?s.ref="wrappedComponent":n&&(s.ref=n);var l=g.call(this,(0,i.default)({},s,a));return c.default.createElement(e,l)}});return(0,m.argumentContainer)((0,l.default)(_),e)}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42));t.default=function(e,t,n,o,i,a){!e.required||n.hasOwnProperty(e.field)&&!r.isEmptyValue(t,a||e.type)||o.push(r.format(i.messages.required,e.fullField))}},function(e,t,n){var r=n(1031);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(13)),o=i(n(17));function i(e){return e&&e.__esModule?e:{default:e}}t.isFormField=c,t.default=function(e){if(c(e))return e;return new a(e)};var a=function e(t){(0,o.default)(this,e),(0,r.default)(this,t)};function c(e){return e instanceof a}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(0,((r=n(178))&&r.__esModule?r:{default:r}).default)({});t.default=o},function(e,t){e.exports={isFunction:function(e){return"function"==typeof e},isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},each:function(e,t){for(var n=0,r=e.length;n<r&&!1!==t(e[n],n);n++);}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FIELD_DATA_PROP=t.FIELD_META_PROP=void 0;t.FIELD_META_PROP="data-__meta";t.FIELD_DATA_PROP="data-__field"},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(0,((r=n(178))&&r.__esModule?r:{default:r}).default)({labelAlign:"right",vertical:!1});t.default=o},function(e,t,n){"use strict";n.r(t),n.d(t,"Summary",(function(){return te})),n.d(t,"Column",(function(){return b})),n.d(t,"ColumnGroup",(function(){return g})),n.d(t,"INTERNAL_COL_DEFINE",(function(){return N}));var r,o=n(6),i=n(8),a=n(2),c=n(18),s=n(37),l=n(10),u=n(0),f=n(159),d=n(3),p=n.n(d),h=n(59),m=n.n(h),v=n(35),y=n(53);function _(e){if("undefined"==typeof document)return 0;if(e||void 0===r){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),o=n.style;o.position="absolute",o.top=0,o.left=0,o.pointerEvents="none",o.visibility="hidden",o.width="200px",o.height="150px",o.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var i=t.offsetWidth;n.style.overflow="scroll";var a=t.offsetWidth;i===a&&(a=n.clientWidth),document.body.removeChild(n),r=i-a}return r}var g=function(e){return null};var b=function(e){return null},M=n(21),w=n(54);function O(e){return null==e?[]:Array.isArray(e)?e:[e]}function S(e,t){if(!t&&"number"!=typeof t)return e;for(var n=O(t),r=e,o=0;o<n.length;o+=1){if(!r)return null;r=r[n[o]]}return r}function C(e){var t=[],n={};return e.forEach((function(e){for(var r=e||{},o=r.key,i=r.dataIndex,a=o||O(i).join("-")||"RC_TABLE_KEY";n[a];)a="".concat(a,"_next");n[a]=!0,t.push(a)})),t}function x(e){return null!=e}function k(e,t){var n,r,i,c,l=e.prefixCls,f=e.className,d=e.record,h=e.index,m=e.dataIndex,v=e.render,y=e.children,_=e.component,g=void 0===_?"td":_,b=e.colSpan,O=e.rowSpan,C=e.fixLeft,x=e.fixRight,k=e.firstFixLeft,L=e.lastFixLeft,E=e.firstFixRight,T=e.lastFixRight,P=e.appendNode,j=e.additionalProps,z=void 0===j?{}:j,D=e.ellipsis,N=e.align,H=e.rowType,A=e.isSticky,Y="".concat(l,"-cell");if(y)i=y;else{var I=S(d,m);if(i=I,v){var V=v(I,d,h);!(c=V)||"object"!==Object(s.a)(c)||Array.isArray(c)||u.isValidElement(c)?i=V:(i=V.children,r=V.props)}}"object"!==Object(s.a)(i)||Array.isArray(i)||u.isValidElement(i)||(i=null),D&&(L||E)&&(i=u.createElement("span",{className:"".concat(Y,"-content")},i));var F=r||{},R=F.colSpan,W=F.rowSpan,U=F.style,B=F.className,K=Object(M.a)(F,["colSpan","rowSpan","style","className"]),q=void 0!==R?R:b,G=void 0!==W?W:O;if(0===q||0===G)return null;var $={},J="number"==typeof C,X="number"==typeof x;J&&($.position="sticky",$.left=C),X&&($.position="sticky",$.right=x);var Q,Z={};N&&(Z.textAlign=N);var ee=!0===D?{showTitle:!0}:D;ee&&(ee.showTitle||"header"===H)&&("string"==typeof i||"number"==typeof i?Q=i.toString():u.isValidElement(i)&&"string"==typeof i.props.children&&(Q=i.props.children));var te,ne=Object(a.a)(Object(a.a)(Object(a.a)({title:Q},K),z),{},{colSpan:q&&1!==q?q:null,rowSpan:G&&1!==G?G:null,className:p()(Y,f,(n={},Object(o.a)(n,"".concat(Y,"-fix-left"),J),Object(o.a)(n,"".concat(Y,"-fix-left-first"),k),Object(o.a)(n,"".concat(Y,"-fix-left-last"),L),Object(o.a)(n,"".concat(Y,"-fix-right"),X),Object(o.a)(n,"".concat(Y,"-fix-right-first"),E),Object(o.a)(n,"".concat(Y,"-fix-right-last"),T),Object(o.a)(n,"".concat(Y,"-ellipsis"),D),Object(o.a)(n,"".concat(Y,"-with-append"),P),Object(o.a)(n,"".concat(Y,"-fix-sticky"),(J||X)&&A),n),z.className,B),style:Object(a.a)(Object(a.a)(Object(a.a)(Object(a.a)({},z.style),Z),$),U),ref:(te=g,"string"==typeof te||Object(w.c)(te)?t:null)});return u.createElement(g,ne,P,i)}var L=u.forwardRef(k);L.displayName="Cell";var E=u.memo(L,(function(e,t){return!!t.shouldCellUpdate&&!t.shouldCellUpdate(t.record,e.record)})),T=u.createContext(null);function P(e,t,n,r,o){var i,a,c=n[e]||{},s=n[t]||{};"left"===c.fixed?i=r.left[e]:"right"===s.fixed&&(a=r.right[t]);var l=!1,u=!1,f=!1,d=!1,p=n[t+1],h=n[e-1];if("rtl"===o){if(void 0!==i)d=!(h&&"left"===h.fixed);else if(void 0!==a){f=!(p&&"right"===p.fixed)}}else if(void 0!==i){l=!(p&&"left"===p.fixed)}else if(void 0!==a){u=!(h&&"right"===h.fixed)}return{fixLeft:i,fixRight:a,lastFixLeft:l,firstFixRight:u,lastFixRight:f,firstFixLeft:d,isSticky:r.isSticky}}function j(e){var t,n=e.cells,r=e.stickyOffsets,o=e.flattenColumns,a=e.rowComponent,c=e.cellComponent,s=e.onHeaderRow,l=e.index,f=u.useContext(T),d=f.prefixCls,p=f.direction;s&&(t=s(n.map((function(e){return e.column})),l));var h=C(n.map((function(e){return e.column})));return u.createElement(a,t,n.map((function(e,t){var n,a=e.column,s=P(e.colStart,e.colEnd,o,r,p);return a&&a.onHeaderCell&&(n=e.column.onHeaderCell(a)),u.createElement(E,Object(i.a)({},e,{ellipsis:a.ellipsis,align:a.align,component:c,prefixCls:d,key:h[t]},s,{additionalProps:n,rowType:"header"}))})))}j.displayName="HeaderRow";var z=j;var D=function(e){var t=e.stickyOffsets,n=e.columns,r=e.flattenColumns,o=e.onHeaderRow,i=u.useContext(T),a=i.prefixCls,c=i.getComponent,s=u.useMemo((function(){return function(e){var t=[];!function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t[o]=t[o]||[];var i=r,a=n.filter(Boolean).map((function(n){var r={key:n.key,className:n.className||"",children:n.title,column:n,colStart:i},a=1,c=n.children;return c&&c.length>0&&(a=e(c,i,o+1).reduce((function(e,t){return e+t}),0),r.hasSubColumns=!0),"colSpan"in n&&(a=n.colSpan),"rowSpan"in n&&(r.rowSpan=n.rowSpan),r.colSpan=a,r.colEnd=r.colStart+a-1,t[o].push(r),i+=a,a}));return a}(e,0);for(var n=t.length,r=function(e){t[e].forEach((function(t){"rowSpan"in t||t.hasSubColumns||(t.rowSpan=n-e)}))},o=0;o<n;o+=1)r(o);return t}(n)}),[n]),l=c(["header","wrapper"],"thead"),f=c(["header","row"],"tr"),d=c(["header","cell"],"th");return u.createElement(l,{className:"".concat(a,"-thead")},s.map((function(e,n){return u.createElement(z,{key:n,flattenColumns:r,cells:e,stickyOffsets:t,rowComponent:f,cellComponent:d,onHeaderRow:o,index:n})})))},N="RC_TABLE_INTERNAL_COL_DEFINE";var H=function(e){for(var t=e.colWidths,n=e.columns,r=[],o=!1,a=(e.columCount||n.length)-1;a>=0;a-=1){var c=t[a],s=n&&n[a],l=s&&s[N];(c||l||o)&&(r.unshift(u.createElement("col",Object(i.a)({key:a,style:{width:c,minWidth:c}},l))),o=!0)}return u.createElement("colgroup",null,r)};var A=u.forwardRef((function(e,t){var n=e.noData,r=e.columns,s=e.flattenColumns,l=e.colWidths,f=e.columCount,d=e.stickyOffsets,h=e.direction,m=e.fixHeader,v=e.offsetHeader,y=e.stickyClassName,_=e.onScroll,g=e.maxContentScroll,b=Object(M.a)(e,["noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","offsetHeader","stickyClassName","onScroll","maxContentScroll"]),O=u.useContext(T),S=O.prefixCls,C=O.scrollbarSize,x=O.isSticky,k=x&&!m?0:C,L=u.useRef(null),E=u.useCallback((function(e){Object(w.b)(t,e),Object(w.b)(L,e)}),[]);u.useEffect((function(){var e;function t(e){var t=e.currentTarget,n=e.deltaX;n&&(_({currentTarget:t,scrollLeft:t.scrollLeft+n}),e.preventDefault())}return null===(e=L.current)||void 0===e||e.addEventListener("wheel",t),function(){var e;null===(e=L.current)||void 0===e||e.removeEventListener("wheel",t)}}),[]);var P=u.useMemo((function(){return s.every((function(e){return e.width>=0}))}),[s]),j=s[s.length-1],z={fixed:j?j.fixed:null,onHeaderCell:function(){return{className:"".concat(S,"-cell-scrollbar")}}},N=Object(u.useMemo)((function(){return k?[].concat(Object(c.a)(r),[z]):r}),[k,r]),A=Object(u.useMemo)((function(){return k?[].concat(Object(c.a)(s),[z]):s}),[k,s]),Y=Object(u.useMemo)((function(){var e=d.right,t=d.left;return Object(a.a)(Object(a.a)({},d),{},{left:"rtl"===h?[].concat(Object(c.a)(t.map((function(e){return e+k}))),[0]):t,right:"rtl"===h?e:[].concat(Object(c.a)(e.map((function(e){return e+k}))),[0]),isSticky:x})}),[k,d,x]),I=function(e,t){return Object(u.useMemo)((function(){for(var n=[],r=0;r<t;r+=1){var o=e[r];if(void 0===o)return null;n[r]=o}return n}),[e.join("_"),t])}(l,f);return u.createElement("div",{style:Object(a.a)({overflow:"hidden"},x?{top:v}:{}),ref:E,className:p()("".concat(S,"-header"),Object(o.a)({},y,!!y))},u.createElement("table",{style:{tableLayout:"fixed",visibility:n||I?null:"hidden"}},(!n||!g||P)&&u.createElement(H,{colWidths:I?[].concat(Object(c.a)(I),[k]):[],columCount:f+1,columns:A}),u.createElement(D,Object(i.a)({},b,{stickyOffsets:Y,columns:N,flattenColumns:A}))))}));A.displayName="FixedHeader";var Y=A,I=u.createContext(null);var V=function(e){var t=e.prefixCls,n=e.children,r=e.component,o=e.cellComponent,i=e.fixHeader,a=e.fixColumn,c=e.horizonScroll,s=e.className,l=e.expanded,f=e.componentWidth,d=e.colSpan,p=u.useContext(T).scrollbarSize;return u.useMemo((function(){var e=n;return a&&(e=u.createElement("div",{style:{width:f-(i?p:0),position:"sticky",left:0,overflow:"hidden"},className:"".concat(t,"-expanded-row-fixed")},e)),u.createElement(r,{className:s,style:{display:l?null:"none"}},u.createElement(E,{component:o,prefixCls:t,colSpan:d},e))}),[n,r,i,c,s,l,f,d,p])};function F(e){var t=e.className,n=e.style,r=e.record,o=e.index,c=e.rowKey,s=e.getRowKey,f=e.rowExpandable,d=e.expandedKeys,h=e.onRow,m=e.indent,v=void 0===m?0:m,y=e.rowComponent,_=e.cellComponent,g=e.childrenColumnName,b=u.useContext(T),M=b.prefixCls,w=b.fixedInfoList,O=u.useContext(I),S=O.fixHeader,x=O.fixColumn,k=O.horizonScroll,L=O.componentWidth,P=O.flattenColumns,j=O.expandableType,z=O.expandRowByClick,D=O.onTriggerExpand,N=O.rowClassName,H=O.expandedRowClassName,A=O.indentSize,Y=O.expandIcon,R=O.expandedRowRender,W=O.expandIconColumnIndex,U=u.useState(!1),B=Object(l.a)(U,2),K=B[0],q=B[1],G=d&&d.has(e.recordKey);u.useEffect((function(){G&&q(!0)}),[G]);var $,J="row"===j&&(!f||f(r)),X="nest"===j,Q=g&&r&&r[g],Z=J||X;h&&($=h(r,o));var ee;"string"==typeof N?ee=N:"function"==typeof N&&(ee=N(r,o,v));var te,ne,re=C(P),oe=u.createElement(y,Object(i.a)({},$,{"data-row-key":c,className:p()(t,"".concat(M,"-row"),"".concat(M,"-row-level-").concat(v),ee,$&&$.className),style:Object(a.a)(Object(a.a)({},n),$?$.style:null),onClick:function(e){if(z&&Z&&D(r,e),$&&$.onClick){for(var t,n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];(t=$).onClick.apply(t,[e].concat(o))}}}),P.map((function(e,t){var n,a,c=e.render,s=e.dataIndex,l=e.className,f=re[t],d=w[t];return t===(W||0)&&X&&(n=u.createElement(u.Fragment,null,u.createElement("span",{style:{paddingLeft:"".concat(A*v,"px")},className:"".concat(M,"-row-indent indent-level-").concat(v)}),Y({prefixCls:M,expanded:G,expandable:Q,record:r,onExpand:D}))),e.onCell&&(a=e.onCell(r,o)),u.createElement(E,Object(i.a)({className:l,ellipsis:e.ellipsis,align:e.align,component:_,prefixCls:M,key:f,record:r,index:o,dataIndex:s,render:c,shouldCellUpdate:e.shouldCellUpdate},d,{appendNode:n,additionalProps:a}))})));if(J&&(K||G)){var ie=R(r,o,v+1,G),ae=H&&H(r,o,v);te=u.createElement(V,{expanded:G,className:p()("".concat(M,"-expanded-row"),"".concat(M,"-expanded-row-level-").concat(v+1),ae),prefixCls:M,fixHeader:S,fixColumn:x,horizonScroll:k,component:y,componentWidth:L,cellComponent:_,colSpan:P.length},ie)}return Q&&G&&(ne=(r[g]||[]).map((function(t,n){var r=s(t,n);return u.createElement(F,Object(i.a)({},e,{key:r,rowKey:r,record:t,recordKey:r,index:n,indent:v+1}))}))),u.createElement(u.Fragment,null,oe,te,ne)}F.displayName="BodyRow";var R=F,W=u.createContext(null);function U(e){var t=e.columnKey,n=e.onColumnResize,r=u.useRef();return u.useEffect((function(){r.current&&n(t,r.current.offsetWidth)}),[]),u.createElement(y.default,{onResize:function(e){var r=e.offsetWidth;n(t,r)}},u.createElement("td",{ref:r,style:{padding:0,border:0,height:0}},u.createElement("div",{style:{height:0,overflow:"hidden"}}," ")))}function B(e){var t=e.data,n=e.getRowKey,r=e.measureColumnWidth,o=e.expandedKeys,i=e.onRow,a=e.rowExpandable,c=e.emptyNode,s=e.childrenColumnName,l=u.useContext(W).onColumnResize,f=u.useContext(T),d=f.prefixCls,p=f.getComponent,h=u.useContext(I),m=h.fixHeader,v=h.horizonScroll,y=h.flattenColumns,_=h.componentWidth;return u.useMemo((function(){var e,f=p(["body","wrapper"],"tbody"),h=p(["body","row"],"tr"),g=p(["body","cell"],"td");e=t.length?t.map((function(e,t){var r=n(e,t);return u.createElement(R,{key:r,rowKey:r,record:e,recordKey:r,index:t,rowComponent:h,cellComponent:g,expandedKeys:o,onRow:i,getRowKey:n,rowExpandable:a,childrenColumnName:s})})):u.createElement(V,{expanded:!0,className:"".concat(d,"-placeholder"),prefixCls:d,fixHeader:m,fixColumn:v,horizonScroll:v,component:h,componentWidth:_,cellComponent:g,colSpan:y.length},c);var b=C(y);return u.createElement(f,{className:"".concat(d,"-tbody")},r&&u.createElement("tr",{"aria-hidden":"true",className:"".concat(d,"-measure-row"),style:{height:0,fontSize:0}},b.map((function(e){return u.createElement(U,{key:e,columnKey:e,onColumnResize:l})}))),e)}),[t,d,i,r,o,n,p,_,c,y])}var K=u.memo(B);K.displayName="Body";var q=K,G=n(77);function $(e){return e.reduce((function(e,t){var n=t.fixed,r=!0===n?"left":n,o=t.children;return o&&o.length>0?[].concat(Object(c.a)(e),Object(c.a)($(o).map((function(e){return Object(a.a)({fixed:r},e)})))):[].concat(Object(c.a)(e),[Object(a.a)(Object(a.a)({},t),{},{fixed:r})])}),[])}var J=function(e,t){var n=e.prefixCls,r=e.columns,i=e.children,c=e.expandable,s=e.expandedKeys,l=e.getRowKey,f=e.onTriggerExpand,d=e.expandIcon,p=e.rowExpandable,h=e.expandIconColumnIndex,m=e.direction,v=e.expandRowByClick,y=e.columnWidth,_=u.useMemo((function(){return r||function e(t){return Object(G.a)(t).filter((function(e){return u.isValidElement(e)})).map((function(t){var n=t.key,r=t.props,o=r.children,i=Object(M.a)(r,["children"]),c=Object(a.a)({key:n},i);return o&&(c.children=e(o)),c}))}(i)}),[r,i]),g=u.useMemo((function(){if(c){var e,t=h||0,r=_[t],i=(e={},Object(o.a)(e,N,{className:"".concat(n,"-expand-icon-col")}),Object(o.a)(e,"title",""),Object(o.a)(e,"fixed",r?r.fixed:null),Object(o.a)(e,"className","".concat(n,"-row-expand-icon-cell")),Object(o.a)(e,"width",y),Object(o.a)(e,"render",(function(e,t,r){var o=l(t,r),i=s.has(o),a=!p||p(t),c=d({prefixCls:n,expanded:i,expandable:a,record:t,onExpand:f});return v?u.createElement("span",{onClick:function(e){return e.stopPropagation()}},c):c})),e),a=_.slice();return t>=0&&a.splice(t,0,i),a}return _}),[c,_,l,s,d,m]),b=u.useMemo((function(){var e=g;return t&&(e=t(e)),e.length||(e=[{render:function(){return null}}]),e}),[t,g,m]),w=u.useMemo((function(){return"rtl"===m?function(e){return e.map((function(e){var t=e.fixed,n=Object(M.a)(e,["fixed"]),r=t;return"left"===t?r="right":"right"===t&&(r="left"),Object(a.a)({fixed:r},n)}))}($(b)):$(b)}),[b,m]);return[b,w]};function X(e){var t=Object(u.useRef)(e),n=Object(u.useState)({}),r=Object(l.a)(n,2)[1],o=Object(u.useRef)(null),i=Object(u.useRef)([]);return Object(u.useEffect)((function(){return function(){o.current=null}}),[]),[t.current,function(e){i.current.push(e);var n=Promise.resolve();o.current=n,n.then((function(){if(o.current===n){var e=i.current,a=t.current;i.current=[],e.forEach((function(e){t.current=e(t.current)})),o.current=null,a!==t.current&&r({})}}))}]}var Q=function(e,t,n){return Object(u.useMemo)((function(){for(var r=[],o=[],i=0,a=0,c=0;c<t;c+=1)if("rtl"===n){o[c]=a,a+=e[c]||0;var s=t-c-1;r[s]=i,i+=e[s]||0}else{r[c]=i,i+=e[c]||0;var l=t-c-1;o[l]=a,a+=e[l]||0}return{left:r,right:o}}),[e,t,n])};var Z=function(e){var t=e.className,n=e.children;return u.createElement("div",{className:t},n)};var ee=function(e){var t=e.children,n=u.useContext(T).prefixCls;return u.createElement("tfoot",{className:"".concat(n,"-summary")},t)},te={Cell:function(e){var t=e.className,n=e.index,r=e.children,o=e.colSpan,a=e.rowSpan,c=e.align,s=u.useContext(T),l=s.prefixCls,f=s.fixedInfoList[n];return u.createElement(E,Object(i.a)({className:t,index:n,component:"td",prefixCls:l,record:null,dataIndex:null,align:c,render:function(){return{children:r,props:{colSpan:o,rowSpan:a}}}},f))},Row:function(e){return u.createElement("tr",e)}};function ne(e){var t,n=e.prefixCls,r=e.record,i=e.onExpand,a=e.expanded,c=e.expandable,s="".concat(n,"-row-expand-icon");if(!c)return u.createElement("span",{className:p()(s,"".concat(n,"-row-spaced"))});return u.createElement("span",{className:p()(s,(t={},Object(o.a)(t,"".concat(n,"-row-expanded"),a),Object(o.a)(t,"".concat(n,"-row-collapsed"),!a),t)),onClick:function(e){i(r,e),e.stopPropagation()}})}var re=n(55);function oe(e){var t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.pageXOffset||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.pageYOffset||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}var ie=function(e,t){var n,r,i=e.scrollBodyRef,c=e.onScroll,s=e.offsetScroll,f=e.container,d=u.useContext(T).prefixCls,h=(null===(n=i.current)||void 0===n?void 0:n.scrollWidth)||0,m=(null===(r=i.current)||void 0===r?void 0:r.clientWidth)||0,v=h&&m*(m/h),y=u.useRef(),g=X({scrollLeft:0,isHiddenScrollBar:!1}),b=Object(l.a)(g,2),M=b[0],w=b[1],O=u.useRef({delta:0,x:0}),S=u.useState(!1),C=Object(l.a)(S,2),x=C[0],k=C[1],L=function(){k(!1)},E=function(e){var t,n=(e||(null===(t=window)||void 0===t?void 0:t.event)).buttons;if(x&&0!==n){var r=O.current.x+e.pageX-O.current.x-O.current.delta;r<=0&&(r=0),r+v>=m&&(r=m-v),c({scrollLeft:r/m*(h+2)}),O.current.x=e.pageX}else x&&k(!1)},P=function(){var e=oe(i.current).top,t=e+i.current.offsetHeight,n=f===window?document.documentElement.scrollTop+window.innerHeight:oe(f).top+f.clientHeight;t-_()<=n||e>=n-s?w((function(e){return Object(a.a)(Object(a.a)({},e),{},{isHiddenScrollBar:!0})})):w((function(e){return Object(a.a)(Object(a.a)({},e),{},{isHiddenScrollBar:!1})}))},j=function(e){w((function(t){return Object(a.a)(Object(a.a)({},t),{},{scrollLeft:e/h*m||0})}))};return u.useImperativeHandle(t,(function(){return{setScrollLeft:j}})),u.useEffect((function(){var e=Object(re.a)(document.body,"mouseup",L,!1),t=Object(re.a)(document.body,"mousemove",E,!1);return P(),function(){e.remove(),t.remove()}}),[v,x]),u.useEffect((function(){var e=Object(re.a)(f,"scroll",P,!1),t=Object(re.a)(window,"resize",P,!1);return function(){e.remove(),t.remove()}}),[f]),u.useEffect((function(){M.isHiddenScrollBar||w((function(e){var t=i.current;return t?Object(a.a)(Object(a.a)({},e),{},{scrollLeft:t.scrollLeft/t.scrollWidth*t.clientWidth}):e}))}),[M.isHiddenScrollBar]),h<=m||!v||M.isHiddenScrollBar?null:u.createElement("div",{style:{height:_(),width:m,bottom:s},className:"".concat(d,"-sticky-scroll")},u.createElement("div",{onMouseDown:function(e){e.persist(),O.current.delta=e.pageX-M.scrollLeft,O.current.x=0,k(!0),e.preventDefault()},ref:y,className:p()("".concat(d,"-sticky-scroll-bar"),Object(o.a)({},"".concat(d,"-sticky-scroll-bar-active"),x)),style:{width:"".concat(v,"px"),transform:"translate3d(".concat(M.scrollLeft,"px, 0, 0)")}}))},ae=u.forwardRef(ie),ce=n(161),se=Object(ce.a)()?window:null;var le=[],ue={},fe=u.memo((function(e){return e.children}),(function(e,t){return!!m()(e.props,t.props)&&(e.pingLeft!==t.pingLeft||e.pingRight!==t.pingRight)}));function de(e){var t,n=e.prefixCls,r=e.className,d=e.rowClassName,h=e.style,m=e.data,g=e.rowKey,b=e.scroll,w=e.tableLayout,O=e.direction,k=e.title,L=e.footer,E=e.summary,j=e.id,z=e.showHeader,N=e.components,A=e.emptyText,V=e.onRow,F=e.onHeaderRow,R=e.internalHooks,U=e.transformColumns,B=e.internalRefs,K=e.sticky,G=m||le,$=!!G.length,te=u.useState(0),re=Object(l.a)(te,2),oe=re[0],ie=re[1];u.useEffect((function(){ie(_())}));var ce,de,pe,he=u.useMemo((function(){return function(){var e={};function t(e,n){n&&Object.keys(n).forEach((function(r){var o=n[r];o&&"object"===Object(s.a)(o)?(e[r]=e[r]||{},t(e[r],o)):e[r]=o}))}for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return r.forEach((function(n){t(e,n)})),e}(N,{})}),[N]),me=u.useCallback((function(e,t){return S(he,e)||t}),[he]),ve=u.useMemo((function(){return"function"==typeof g?g:function(e){return e&&e[g]}}),[g]),ye=function(e){var t=e.expandable,n=Object(M.a)(e,["expandable"]);return"expandable"in e?Object(a.a)(Object(a.a)({},n),t):n}(e),_e=ye.expandIcon,ge=ye.expandedRowKeys,be=ye.defaultExpandedRowKeys,Me=ye.defaultExpandAllRows,we=ye.expandedRowRender,Oe=ye.onExpand,Se=ye.onExpandedRowsChange,Ce=ye.expandRowByClick,xe=ye.rowExpandable,ke=ye.expandIconColumnIndex,Le=ye.expandedRowClassName,Ee=ye.childrenColumnName,Te=ye.indentSize,Pe=_e||ne,je=Ee||"children",ze=u.useMemo((function(){return we?"row":!!(e.expandable&&"rc-table-internal-hook"===R&&e.expandable.__PARENT_RENDER_ICON__||G.some((function(e){return e&&"object"===Object(s.a)(e)&&e[je]})))&&"nest"}),[!!we,G]),De=u.useState((function(){return be||(Me?function(e,t,n){var r=[];return function e(o){(o||[]).forEach((function(o,i){r.push(t(o,i)),e(o[n])}))}(e),r}(G,ve,je):[])})),Ne=Object(l.a)(De,2),He=Ne[0],Ae=Ne[1],Ye=u.useMemo((function(){return new Set(ge||He||[])}),[ge,He]),Ie=u.useCallback((function(e){var t,n=ve(e,G.indexOf(e)),r=Ye.has(n);r?(Ye.delete(n),t=Object(c.a)(Ye)):t=[].concat(Object(c.a)(Ye),[n]),Ae(t),Oe&&Oe(!r,e),Se&&Se(t)}),[ve,Ye,G,Oe,Se]),Ve=u.useState(0),Fe=Object(l.a)(Ve,2),Re=Fe[0],We=Fe[1],Ue=J(Object(a.a)(Object(a.a)(Object(a.a)({},e),ye),{},{expandable:!!we,expandedKeys:Ye,getRowKey:ve,onTriggerExpand:Ie,expandIcon:Pe,expandIconColumnIndex:ke,direction:O}),"rc-table-internal-hook"===R?U:null),Be=Object(l.a)(Ue,2),Ke=Be[0],qe=Be[1],Ge=u.useMemo((function(){return{columns:Ke,flattenColumns:qe}}),[Ke,qe]),$e=u.useRef(),Je=u.useRef(),Xe=u.useRef(),Qe=u.useState(!1),Ze=Object(l.a)(Qe,2),et=Ze[0],tt=Ze[1],nt=u.useState(!1),rt=Object(l.a)(nt,2),ot=rt[0],it=rt[1],at=X(new Map),ct=Object(l.a)(at,2),st=ct[0],lt=ct[1],ut=C(qe).map((function(e){return st.get(e)})),ft=u.useMemo((function(){return ut}),[ut.join("_")]),dt=Q(ft,qe.length,O),pt=b&&x(b.y),ht=b&&x(b.x),mt=ht&&qe.some((function(e){return e.fixed})),vt=u.useRef(),yt=function(e,t){var n="object"===Object(s.a)(e)?e:{},r=n.offsetHeader,o=void 0===r?0:r,i=n.offsetScroll,a=void 0===i?0:i,c=n.getContainer,l=(void 0===c?function(){return se}:c)()||se;return u.useMemo((function(){var n=!!e;return{isSticky:n,stickyClassName:n?"".concat(t,"-sticky-header"):"",offsetHeader:o,offsetScroll:a,container:l}}),[a,o,t,l])}(K,n),_t=yt.isSticky,gt=yt.offsetHeader,bt=yt.offsetScroll,Mt=yt.stickyClassName,wt=yt.container;pt&&(de={overflowY:"scroll",maxHeight:b.y}),ht&&(ce={overflowX:"auto"},pt||(de={overflowY:"hidden"}),pe={width:!0===b.x?"auto":b.x,minWidth:"100%"});var Ot=u.useCallback((function(e,t){Object(f.a)($e.current)&<((function(n){if(n.get(e)!==t){var r=new Map(n);return r.set(e,t),r}return n}))}),[]),St=function(e){var t=Object(u.useRef)(e||null),n=Object(u.useRef)();function r(){window.clearTimeout(n.current)}return Object(u.useEffect)((function(){return r}),[]),[function(e){t.current=e,r(),n.current=window.setTimeout((function(){t.current=null,n.current=void 0}),100)},function(){return t.current}]}(null),Ct=Object(l.a)(St,2),xt=Ct[0],kt=Ct[1];function Lt(e,t){t&&("function"==typeof t?t(e):t.scrollLeft!==e&&(t.scrollLeft=e))}var Et=function(e){var t,n=e.currentTarget,r=e.scrollLeft,o="rtl"===O,i="number"==typeof r?r:n.scrollLeft,a=n||ue;kt()&&kt()!==a||(xt(a),Lt(i,Je.current),Lt(i,Xe.current),Lt(i,null===(t=vt.current)||void 0===t?void 0:t.setScrollLeft));if(n){var c=n.scrollWidth,s=n.clientWidth;o?(tt(-i<c-s),it(-i>0)):(tt(i>0),it(i<c-s))}},Tt=function(){Xe.current&&Et({currentTarget:Xe.current})};u.useEffect((function(){return Tt}),[]),u.useEffect((function(){ht&&Tt()}),[ht]),u.useEffect((function(){"rc-table-internal-hook"===R&&B&&(B.body.current=Xe.current)}));var Pt,jt,zt=me(["table"],"table"),Dt=u.useMemo((function(){return w||(mt?"max-content"===b.x?"auto":"fixed":pt||_t||qe.some((function(e){return e.ellipsis}))?"fixed":"auto")}),[pt,mt,qe,w,_t]),Nt={colWidths:ft,columCount:qe.length,stickyOffsets:dt,onHeaderRow:F,fixHeader:pt,scroll:b},Ht=u.useMemo((function(){return $?null:"function"==typeof A?A():A}),[$,A]),At=u.createElement(q,{data:G,measureColumnWidth:pt||ht||_t,expandedKeys:Ye,rowExpandable:xe,getRowKey:ve,onRow:V,emptyNode:Ht,childrenColumnName:je}),Yt=u.createElement(H,{colWidths:qe.map((function(e){return e.width})),columns:qe}),It=E&&u.createElement(ee,null,E(G)),Vt=me(["body"]);pt||_t?("function"==typeof Vt?(jt=Vt(G,{scrollbarSize:oe,ref:Xe,onScroll:Et}),Nt.colWidths=qe.map((function(e,t){var n=e.width,r=t===Ke.length-1?n-oe:n;return"number"!=typeof r||Number.isNaN(r)?(Object(v.a)(!1,"When use `components.body` with render props. Each column should have a fixed `width` value."),0):r}))):jt=u.createElement("div",{style:Object(a.a)(Object(a.a)({},ce),de),onScroll:Et,ref:Xe,className:p()("".concat(n,"-body"))},u.createElement(zt,{style:Object(a.a)(Object(a.a)({},pe),{},{tableLayout:Dt})},Yt,At,It)),Pt=u.createElement(u.Fragment,null,!1!==z&&u.createElement(Y,Object(i.a)({noData:!G.length,maxContentScroll:ht&&"max-content"===b.x},Nt,Ge,{direction:O,offsetHeader:gt,stickyClassName:Mt,ref:Je,onScroll:Et})),jt,_t&&u.createElement(ae,{ref:vt,offsetScroll:bt,scrollBodyRef:Xe,onScroll:Et,container:wt}))):Pt=u.createElement("div",{style:Object(a.a)(Object(a.a)({},ce),de),className:p()("".concat(n,"-content")),onScroll:Et,ref:Xe},u.createElement(zt,{style:Object(a.a)(Object(a.a)({},pe),{},{tableLayout:Dt})},Yt,!1!==z&&u.createElement(D,Object(i.a)({},Nt,Ge)),At,It));var Ft=function(e){return Object.keys(e).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)||(t[n]=e[n]),t}),{})}(e),Rt=u.createElement("div",Object(i.a)({className:p()(n,r,(t={},Object(o.a)(t,"".concat(n,"-rtl"),"rtl"===O),Object(o.a)(t,"".concat(n,"-ping-left"),et),Object(o.a)(t,"".concat(n,"-ping-right"),ot),Object(o.a)(t,"".concat(n,"-layout-fixed"),"fixed"===w),Object(o.a)(t,"".concat(n,"-fixed-header"),pt),Object(o.a)(t,"".concat(n,"-fixed-column"),mt),Object(o.a)(t,"".concat(n,"-scroll-horizontal"),ht),Object(o.a)(t,"".concat(n,"-has-fix-left"),qe[0]&&qe[0].fixed),Object(o.a)(t,"".concat(n,"-has-fix-right"),qe[qe.length-1]&&"right"===qe[qe.length-1].fixed),t)),style:h,id:j,ref:$e},Ft),u.createElement(fe,{pingLeft:et,pingRight:ot,props:Object(a.a)(Object(a.a)({},e),{},{stickyOffsets:dt,mergedExpandedKeys:Ye})},k&&u.createElement(Z,{className:"".concat(n,"-title")},k(G)),u.createElement("div",{className:"".concat(n,"-container")},Pt),L&&u.createElement(Z,{className:"".concat(n,"-footer")},L(G))));ht&&(Rt=u.createElement(y.default,{onResize:function(e){var t=e.width;Tt(),We($e.current?$e.current.offsetWidth:t)}},Rt));var Wt=u.useMemo((function(){return{prefixCls:n,getComponent:me,scrollbarSize:oe,direction:O,fixedInfoList:qe.map((function(e,t){return P(t,t,qe,dt,O)})),isSticky:_t}}),[n,me,oe,O,qe,dt,O,_t]),Ut=u.useMemo((function(){return Object(a.a)(Object(a.a)({},Ge),{},{tableLayout:Dt,rowClassName:d,expandedRowClassName:Le,componentWidth:Re,fixHeader:pt,fixColumn:mt,horizonScroll:ht,expandIcon:Pe,expandableType:ze,expandRowByClick:Ce,expandedRowRender:we,onTriggerExpand:Ie,expandIconColumnIndex:ke,indentSize:Te})}),[Ge,Dt,d,Le,Re,pt,mt,ht,Pe,ze,Ce,we,Ie,ke,Te]),Bt=u.useMemo((function(){return{onColumnResize:Ot}}),[Ot]);return u.createElement(T.Provider,{value:Wt},u.createElement(I.Provider,{value:Ut},u.createElement(W.Provider,{value:Bt},Rt)))}de.Column=b,de.ColumnGroup=g,de.Summary=te,de.defaultProps={rowKey:"key",prefixCls:"rc-table",emptyText:function(){return"No Data"}};var pe=de;t.default=pe},function(e,t,n){"use strict";n.r(t);var r=n(13),o=n.n(r),i=n(45),a=n.n(i),c=n(17),s=n.n(c),l=n(44),u=n.n(l),f=n(19),d=n.n(f),p=n(22),h=n.n(p),m=n(0),v=n.n(m),y=n(1),_=n.n(y),g=function(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");return"function"!=typeof t.componentWillReceiveProps?e:v.a.Profiler?(t.UNSAFE_componentWillReceiveProps=t.componentWillReceiveProps,delete t.componentWillReceiveProps,e):e};function b(e){var t=[];return v.a.Children.forEach(e,(function(e){t.push(e)})),t}function M(e,t){var n=null;return e&&e.forEach((function(e){n||e&&e.key===t&&(n=e)})),n}function w(e,t,n){var r=null;return e&&e.forEach((function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for <rc-animate> children");r=e}})),r}var O=n(7),S=n.n(O),C=n(112),x={isAppearSupported:function(e){return e.transitionName&&e.transitionAppear||e.animation.appear},isEnterSupported:function(e){return e.transitionName&&e.transitionEnter||e.animation.enter},isLeaveSupported:function(e){return e.transitionName&&e.transitionLeave||e.animation.leave},allowAppearCallback:function(e){return e.transitionAppear||e.animation.appear},allowEnterCallback:function(e){return e.transitionEnter||e.animation.enter},allowLeaveCallback:function(e){return e.transitionLeave||e.animation.leave}},k={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},L=function(e){function t(){return s()(this,t),d()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return h()(t,e),u()(t,[{key:"componentWillUnmount",value:function(){this.stop()}},{key:"componentWillEnter",value:function(e){x.isEnterSupported(this.props)?this.transition("enter",e):e()}},{key:"componentWillAppear",value:function(e){x.isAppearSupported(this.props)?this.transition("appear",e):e()}},{key:"componentWillLeave",value:function(e){x.isLeaveSupported(this.props)?this.transition("leave",e):e()}},{key:"transition",value:function(e,t){var n=this,r=S.a.findDOMNode(this),o=this.props,i=o.transitionName,a="object"==typeof i;this.stop();var c=function(){n.stopper=null,t()};if((C.b||!o.animation[e])&&i&&o[k[e]]){var s=a?i[e]:i+"-"+e,l=s+"-active";a&&i[e+"Active"]&&(l=i[e+"Active"]),this.stopper=Object(C.a)(r,{name:s,active:l},c)}else this.stopper=o.animation[e](r,c)}},{key:"stop",value:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())}},{key:"render",value:function(){return this.props.children}}]),t}(v.a.Component);L.propTypes={children:_.a.any,animation:_.a.any,transitionName:_.a.any};var E=L,T="rc_animate_"+Date.now();function P(e){var t=e.children;return v.a.isValidElement(t)&&!t.key?v.a.cloneElement(t,{key:T}):t}function j(){}var z=function(e){function t(e){s()(this,t);var n=d()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return D.call(n),n.currentlyAnimatingKeys={},n.keysToEnter=[],n.keysToLeave=[],n.state={children:b(P(e))},n.childrenRefs={},n}return h()(t,e),u()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.showProp,n=this.state.children;t&&(n=n.filter((function(e){return!!e.props[t]}))),n.forEach((function(t){t&&e.performAppear(t.key)}))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.nextProps=e;var n=b(P(e)),r=this.props;r.exclusive&&Object.keys(this.currentlyAnimatingKeys).forEach((function(e){t.stop(e)}));var o,i,c,s,l=r.showProp,u=this.currentlyAnimatingKeys,f=r.exclusive?b(P(r)):this.state.children,d=[];l?(f.forEach((function(e){var t=e&&M(n,e.key),r=void 0;(r=t&&t.props[l]||!e.props[l]?t:v.a.cloneElement(t||e,a()({},l,!0)))&&d.push(r)})),n.forEach((function(e){e&&M(f,e.key)||d.push(e)}))):(o=n,i=[],c={},s=[],f.forEach((function(e){e&&M(o,e.key)?s.length&&(c[e.key]=s,s=[]):s.push(e)})),o.forEach((function(e){e&&Object.prototype.hasOwnProperty.call(c,e.key)&&(i=i.concat(c[e.key])),i.push(e)})),d=i=i.concat(s)),this.setState({children:d}),n.forEach((function(e){var n=e&&e.key;if(!e||!u[n]){var r=e&&M(f,n);if(l){var o=e.props[l];if(r)!w(f,n,l)&&o&&t.keysToEnter.push(n);else o&&t.keysToEnter.push(n)}else r||t.keysToEnter.push(n)}})),f.forEach((function(e){var r=e&&e.key;if(!e||!u[r]){var o=e&&M(n,r);if(l){var i=e.props[l];if(o)!w(n,r,l)&&i&&t.keysToLeave.push(r);else i&&t.keysToLeave.push(r)}else o||t.keysToLeave.push(r)}}))}},{key:"componentDidUpdate",value:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)}},{key:"isValidChildByKey",value:function(e,t){var n=this.props.showProp;return n?w(e,t,n):M(e,t)}},{key:"stop",value:function(e){delete this.currentlyAnimatingKeys[e];var t=this.childrenRefs[e];t&&t.stop()}},{key:"render",value:function(){var e=this,t=this.props;this.nextProps=t;var n=this.state.children,r=null;n&&(r=n.map((function(n){if(null==n)return n;if(!n.key)throw new Error("must set key for <rc-animate> children");return v.a.createElement(E,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)})));var i=t.component;if(i){var a=t;return"string"==typeof i&&(a=o()({className:t.className,style:t.style},t.componentProps)),v.a.createElement(i,a,r)}return r[0]||null}}]),t}(v.a.Component);z.isAnimate=!0,z.propTypes={className:_.a.string,style:_.a.object,component:_.a.any,componentProps:_.a.object,animation:_.a.object,transitionName:_.a.oneOfType([_.a.string,_.a.object]),transitionEnter:_.a.bool,transitionAppear:_.a.bool,exclusive:_.a.bool,transitionLeave:_.a.bool,onEnd:_.a.func,onEnter:_.a.func,onLeave:_.a.func,onAppear:_.a.func,showProp:_.a.string,children:_.a.node},z.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:j,onEnter:j,onLeave:j,onAppear:j};var D=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var o=b(P(r));e.isValidChildByKey(o,t)?"appear"===n?x.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):x.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r,o,i,a,c=b(P(n));if(e.isValidChildByKey(c,t))e.performEnter(t);else{var s=function(){x.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};r=e.state.children,o=c,i=n.showProp,(a=r.length===o.length)&&r.forEach((function(e,t){var n=o[t];e&&n&&(e&&!n||!e&&n||e.key!==n.key||i&&e.props[i]!==n.props[i])&&(a=!1)})),a?s():e.setState({children:c},s)}}}};t.default=g(z)},function(e,t,n){"use strict";n.r(t);var r=n(21),o=n(8),i=n(2),a=n(27),c=n(28),s=n(30),l=n(29),u=n(0),f=n(7),d=n.n(f),p=n(3),h=n.n(p),m=n(60),v=n(6),y=function(e){Object(s.a)(n,e);var t=Object(l.a)(n);function n(){var e;return Object(a.a)(this,n),(e=t.apply(this,arguments)).closeTimer=null,e.close=function(t){t&&t.stopPropagation(),e.clearCloseTimer();var n=e.props,r=n.onClose,o=n.noticeKey;r&&r(o)},e.startCloseTimer=function(){e.props.duration&&(e.closeTimer=window.setTimeout((function(){e.close()}),1e3*e.props.duration))},e.clearCloseTimer=function(){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null)},e}return Object(c.a)(n,[{key:"componentDidMount",value:function(){this.startCloseTimer()}},{key:"componentDidUpdate",value:function(e){this.props.duration===e.duration&&this.props.updateMark===e.updateMark||this.restartCloseTimer()}},{key:"componentWillUnmount",value:function(){this.clearCloseTimer()}},{key:"restartCloseTimer",value:function(){this.clearCloseTimer(),this.startCloseTimer()}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.className,i=t.closable,a=t.closeIcon,c=t.style,s=t.onClick,l=t.children,f=t.holder,p="".concat(n,"-notice"),m=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{}),y=u.createElement("div",Object(o.a)({className:h()(p,r,Object(v.a)({},"".concat(p,"-closable"),i)),style:c,onMouseEnter:this.clearCloseTimer,onMouseLeave:this.startCloseTimer,onClick:s},m),u.createElement("div",{className:"".concat(p,"-content")},l),i?u.createElement("a",{tabIndex:0,onClick:this.close,className:"".concat(p,"-close")},a||u.createElement("span",{className:"".concat(p,"-close-x")})):null);return f?d.a.createPortal(y,f):y}}]),n}(u.Component);y.defaultProps={onClose:function(){},duration:1.5};var _=n(18),g=n(10);var b=0,M=Date.now();function w(){var e=b;return b+=1,"rcNotification_".concat(M,"_").concat(e)}var O=function(e){Object(s.a)(n,e);var t=Object(l.a)(n);function n(){var e;return Object(a.a)(this,n),(e=t.apply(this,arguments)).state={notices:[]},e.hookRefs=new Map,e.add=function(t,n){var r=t.key||w(),o=Object(i.a)(Object(i.a)({},t),{},{key:r}),a=e.props.maxCount;e.setState((function(e){var t=e.notices,i=t.map((function(e){return e.notice.key})).indexOf(r),c=t.concat();return-1!==i?c.splice(i,1,{notice:o,holderCallback:n}):(a&&t.length>=a&&(o.key=c[0].notice.key,o.updateMark=w(),o.userPassKey=r,c.shift()),c.push({notice:o,holderCallback:n})),{notices:c}}))},e.remove=function(t){e.setState((function(e){return{notices:e.notices.filter((function(e){var n=e.notice,r=n.key;return(n.userPassKey||r)!==t}))}}))},e.noticePropsMap={},e}return Object(c.a)(n,[{key:"getTransitionName",value:function(){var e=this.props,t=e.prefixCls,n=e.animation,r=this.props.transitionName;return!r&&n&&(r="".concat(t,"-").concat(n)),r}},{key:"render",value:function(){var e=this,t=this.state.notices,n=this.props,r=n.prefixCls,a=n.className,c=n.closeIcon,s=n.style,l=[];return t.forEach((function(n,o){var a=n.notice,s=n.holderCallback,u=o===t.length-1?a.updateMark:void 0,f=a.key,d=a.userPassKey,p=Object(i.a)(Object(i.a)(Object(i.a)({prefixCls:r,closeIcon:c},a),a.props),{},{key:f,noticeKey:d||f,updateMark:u,onClose:function(t){var n;e.remove(t),null===(n=a.onClose)||void 0===n||n.call(a)},onClick:a.onClick,children:a.content});l.push(f),e.noticePropsMap[f]={props:p,holderCallback:s}})),u.createElement("div",{className:h()(r,a),style:s},u.createElement(m.CSSMotionList,{keys:l,motionName:this.getTransitionName(),onVisibleChanged:function(t,n){var r=n.key;t||delete e.noticePropsMap[r]}},(function(t){var n=t.key,a=t.className,c=t.style,s=e.noticePropsMap[n],l=s.props,f=s.holderCallback;return f?u.createElement("div",{key:n,className:h()(a,"".concat(r,"-hook-holder")),style:Object(i.a)({},c),ref:function(t){void 0!==n&&(t?(e.hookRefs.set(n,t),f(t,l)):e.hookRefs.delete(n))}}):u.createElement(y,Object(o.a)({},l,{className:h()(a,null==l?void 0:l.className),style:Object(i.a)(Object(i.a)({},c),null==l?void 0:l.style)}))})))}}]),n}(u.Component);O.defaultProps={prefixCls:"rc-notification",animation:"fade",style:{top:65,left:"50%"}},O.newInstance=function(e,t){var n=e||{},i=n.getContainer,a=Object(r.a)(n,["getContainer"]),c=document.createElement("div");i?i().appendChild(c):document.body.appendChild(c);var s=!1;d.a.render(u.createElement(O,Object(o.a)({},a,{ref:function(e){s||(s=!0,t({notice:function(t){e.add(t)},removeNotice:function(t){e.remove(t)},component:e,destroy:function(){d.a.unmountComponentAtNode(c),c.parentNode&&c.parentNode.removeChild(c)},useNotification:function(){return t=e,n=u.useRef({}),r=u.useState([]),i=Object(g.a)(r,2),a=i[0],c=i[1],[function(e){var r=!0;t.add(e,(function(e,t){var i=t.key;if(e&&(!n.current[i]||r)){var a=u.createElement(y,Object(o.a)({},t,{holder:e}));n.current[i]=a,c((function(e){var n=e.findIndex((function(e){return e.key===t.key}));if(-1===n)return[].concat(Object(_.a)(e),[a]);var r=Object(_.a)(e);return r[n]=a,r}))}r=!1}))},u.createElement(u.Fragment,null,a)];var t,n,r,i,a,c}}))}})),c)};var S=O;t.default=S},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return M}));var r=n(45),o=n.n(r),i=n(13),a=n.n(i),c=n(99),s=n.n(c),l=n(17),u=n.n(l),f=n(44),d=n.n(f),p=n(19),h=n.n(p),m=n(22),v=n.n(m),y=n(0),_=n(92),g={primaryColor:"#333",secondaryColor:"#E6E6E6"},b=function(e){function t(){return u()(this,t),h()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return v()(t,e),d()(t,[{key:"render",value:function(){var e,n=this.props,r=n.type,i=n.className,c=n.onClick,l=n.style,u=n.primaryColor,f=n.secondaryColor,d=s()(n,["type","className","onClick","style","primaryColor","secondaryColor"]),p=void 0,h=g;if(u&&(h={primaryColor:u,secondaryColor:f||Object(_.c)(u)}),Object(_.d)(r))p=r;else if("string"==typeof r&&!(p=t.get(r,h)))return null;return p?(p&&"function"==typeof p.icon&&(p=a()({},p,{icon:p.icon(h.primaryColor,h.secondaryColor)})),Object(_.b)(p.icon,"svg-"+p.name,a()((e={className:i,onClick:c,style:l},o()(e,"data-icon",p.name),o()(e,"width","1em"),o()(e,"height","1em"),o()(e,"fill","currentColor"),o()(e,"aria-hidden","true"),o()(e,"focusable","false"),e),d))):(Object(_.e)("type should be string or icon definiton, but got "+r),null)}}],[{key:"add",value:function(){for(var e=this,t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];n.forEach((function(t){e.definitions.set(Object(_.f)(t.name,t.theme),t)}))}},{key:"clear",value:function(){this.definitions.clear()}},{key:"get",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;if(e){var n=this.definitions.get(e);return n&&"function"==typeof n.icon&&(n=a()({},n,{icon:n.icon(t.primaryColor,t.secondaryColor)})),n}}},{key:"setTwoToneColors",value:function(e){var t=e.primaryColor,n=e.secondaryColor;g.primaryColor=t,g.secondaryColor=n||Object(_.c)(t)}},{key:"getTwoToneColors",value:function(){return a()({},g)}}]),t}(y.Component);b.displayName="IconReact",b.definitions=new _.a;var M=b},function(e,t){function n(e,t,n){var r,o,i,a,c;function s(){var l=Date.now()-a;l<t&&l>=0?r=setTimeout(s,t-l):(r=null,n||(c=e.apply(i,o),i=o=null))}null==t&&(t=100);var l=function(){i=this,o=arguments,a=Date.now();var l=n&&!r;return r||(r=setTimeout(s,t)),l&&(c=e.apply(i,o),i=o=null),c};return l.clear=function(){r&&(clearTimeout(r),r=null)},l.flush=function(){r&&(c=e.apply(i,o),i=o=null,clearTimeout(r),r=null)},l}n.debounce=n,e.exports=n},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(115)),o=s(n(592)),i=s(n(593)),a=s(n(600)),c=s(n(609));function s(e){return e&&e.__esModule?e:{default:e}}r.default.Group=o.default,r.default.Search=i.default,r.default.TextArea=a.default,r.default.Password=c.default;var l=r.default;t.default=l},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(573));t.generate=o.default;var i={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"};t.presetPrimaryColors=i;var a={};t.presetPalettes=a,Object.keys(i).forEach((function(e){a[e]=o.default(i[e]),a[e].primary=a[e][6]}));var c=a.red;t.red=c;var s=a.volcano;t.volcano=s;var l=a.gold;t.gold=l;var u=a.yellow;t.yellow=u;var f=a.lime;t.lime=f;var d=a.green;t.green=d;var p=a.cyan;t.cyan=p;var h=a.blue;t.blue=h;var m=a.geekblue;t.geekblue=m;var v=a.purple;t.purple=v;var y=a.magenta;t.magenta=y;var _=a.grey;t.grey=_},function(e,t,n){var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return c(l(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}function c(e,t){var n,r,a,c,s,l,u,f,d,p=1,h=e.length,m="";for(r=0;r<h;r++)if("string"==typeof e[r])m+=e[r];else if("object"==typeof e[r]){if((c=e[r]).keys)for(n=t[p],a=0;a<c.keys.length;a++){if(null==n)throw new Error(i('[sprintf] Cannot access property "%s" of undefined value "%s"',c.keys[a],c.keys[a-1]));n=n[c.keys[a]]}else n=c.param_no?t[c.param_no]:t[p++];if(o.not_type.test(c.type)&&o.not_primitive.test(c.type)&&n instanceof Function&&(n=n()),o.numeric_arg.test(c.type)&&"number"!=typeof n&&isNaN(n))throw new TypeError(i("[sprintf] expecting number but found %T",n));switch(o.number.test(c.type)&&(f=n>=0),c.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,c.width?parseInt(c.width):0);break;case"e":n=c.precision?parseFloat(n).toExponential(c.precision):parseFloat(n).toExponential();break;case"f":n=c.precision?parseFloat(n).toFixed(c.precision):parseFloat(n);break;case"g":n=c.precision?String(Number(n.toPrecision(c.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=c.precision?n.substring(0,c.precision):n;break;case"t":n=String(!!n),n=c.precision?n.substring(0,c.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=c.precision?n.substring(0,c.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=c.precision?n.substring(0,c.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(c.type)?m+=n:(!o.number.test(c.type)||f&&!c.sign?d="":(d=f?"+":"-",n=n.toString().replace(o.sign,"")),l=c.pad_char?"0"===c.pad_char?"0":c.pad_char.charAt(1):" ",u=c.width-(d+n).length,s=c.width&&u>0?l.repeat(u):"",m+=c.align?d+n+s:"0"===l?d+s+n:s+d+n)}return m}var s=Object.create(null);function l(e){if(s[e])return s[e];for(var t,n=e,r=[],i=0;n;){if(null!==(t=o.text.exec(n)))r.push(t[0]);else if(null!==(t=o.modulo.exec(n)))r.push("%");else{if(null===(t=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],c=t[2],l=[];if(null===(l=o.key.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(l[1]);""!==(c=c.substring(l[0].length));)if(null!==(l=o.key_access.exec(c)))a.push(l[1]);else{if(null===(l=o.index_access.exec(c)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(l[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}n=n.substring(t[0].length)}return s[e]=r}t.sprintf=i,t.vsprintf=a,"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(t,n,t,e))||(e.exports=r))}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=p(n(0)),o=p(n(7)),i=f(n(494)),a=f(n(3)),c=f(n(51)),s=n(43),l=f(n(619)),u=f(n(64));function f(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function p(e){if(e&&e.__esModule)return e;if(null===e||"object"!==h(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=w(e);if(t){var o=w(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?M(e):t}function M(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function O(){}var S=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(p,e);var t,n,f,d=g(p);function p(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),(t=d.call(this,e)).handleClose=function(e){e.preventDefault();var n=o.findDOMNode(M(t));n.style.height="".concat(n.offsetHeight,"px"),n.style.height="".concat(n.offsetHeight,"px"),t.setState({closing:!0}),(t.props.onClose||O)(e)},t.animationEnd=function(){t.setState({closing:!1,closed:!0}),(t.props.afterClose||O)()},t.renderAlert=function(e){var n,o=e.getPrefixCls,s=t.props,u=s.description,f=s.prefixCls,d=s.message,p=s.closeText,h=s.banner,y=s.className,_=void 0===y?"":y,g=s.style,b=s.icon,M=t.props,w=M.closable,O=M.type,S=M.showIcon,C=M.iconType,x=t.state,k=x.closing,L=x.closed,E=o("alert",f);S=!(!h||void 0!==S)||S,O=h&&void 0===O?"warning":O||"info";var T="filled";if(!C){switch(O){case"success":C="check-circle";break;case"info":C="info-circle";break;case"error":C="close-circle";break;case"warning":C="exclamation-circle";break;default:C="default"}u&&(T="outlined")}p&&(w=!0);var P=(0,a.default)(E,"".concat(E,"-").concat(O),(v(n={},"".concat(E,"-closing"),k),v(n,"".concat(E,"-with-description"),!!u),v(n,"".concat(E,"-no-icon"),!S),v(n,"".concat(E,"-banner"),!!h),v(n,"".concat(E,"-closable"),w),n),_),j=w?r.createElement("button",{type:"button",onClick:t.handleClose,className:"".concat(E,"-close-icon"),tabIndex:0},p?r.createElement("span",{className:"".concat(E,"-close-text")},p):r.createElement(c.default,{type:"close"})):null,z=(0,l.default)(t.props),D=b&&(r.isValidElement(b)?r.cloneElement(b,{className:(0,a.default)("".concat(E,"-icon"),v({},b.props.className,b.props.className))}):r.createElement("span",{className:"".concat(E,"-icon")},b))||r.createElement(c.default,{className:"".concat(E,"-icon"),type:C,theme:T});return L?null:r.createElement(i.default,{component:"",showProp:"data-show",transitionName:"".concat(E,"-slide-up"),onEnd:t.animationEnd},r.createElement("div",m({"data-show":!k,className:P,style:g},z),S?D:null,r.createElement("span",{className:"".concat(E,"-message")},d),r.createElement("span",{className:"".concat(E,"-description")},u),j))},(0,u.default)(!("iconType"in e),"Alert","`iconType` is deprecated. Please use `icon` instead."),t.state={closing:!1,closed:!1},t}return t=p,(n=[{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderAlert)}}])&&y(t.prototype,n),f&&y(t,f),p}(r.Component);t.default=S},function(e,t,n){var r=n(620),o=n(621),i=n(236),a=n(622);e.exports=function(e){return r(e)||o(e)||i(e)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(625)).default;t.default=o},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";e.exports=n(664)},function(e,t,n){"use strict";(function(e){function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function a(e,t,n){return(a=i()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&o(i,n.prototype),i}).apply(null,arguments)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return a(e,arguments,r(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),o(i,e)})(e)}var s=/%[sdj%]/g,l=function(){};function u(e){if(!e||!e.length)return null;var t={};return e.forEach((function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)})),t}function f(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=1,o=t[0],i=t.length;if("function"==typeof o)return o.apply(null,t.slice(1));if("string"==typeof o){var a=String(o).replace(s,(function(e){if("%%"===e)return"%";if(r>=i)return e;switch(e){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(e){return"[Circular]"}break;default:return e}}));return a}return o}function d(e,t){return null==e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"date"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function p(e,t,n){var r=0,o=e.length;!function i(a){if(a&&a.length)n(a);else{var c=r;r+=1,c<o?t(e[c],i):n([])}}([])}void 0!==e&&e.env;var h=function(e){var t,n;function r(t,n){var r;return(r=e.call(this,"Async Validation Error")||this).errors=t,r.fields=n,r}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,o(t,n),r}(c(Error));function m(e,t,n,r){if(t.first){var o=new Promise((function(t,o){p(function(e){var t=[];return Object.keys(e).forEach((function(n){t.push.apply(t,e[n])})),t}(e),n,(function(e){return r(e),e.length?o(new h(e,u(e))):t()}))}));return o.catch((function(e){return e})),o}var i=t.firstFields||[];!0===i&&(i=Object.keys(e));var a=Object.keys(e),c=a.length,s=0,l=[],f=new Promise((function(t,o){var f=function(e){if(l.push.apply(l,e),++s===c)return r(l),l.length?o(new h(l,u(l))):t()};a.length||(r(l),t()),a.forEach((function(t){var r=e[t];-1!==i.indexOf(t)?p(r,n,f):function(e,t,n){var r=[],o=0,i=e.length;function a(e){r.push.apply(r,e),++o===i&&n(r)}e.forEach((function(e){t(e,a)}))}(r,n,f)}))}));return f.catch((function(e){return e})),f}function v(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:"function"==typeof t?t():t,field:t.field||e.fullField}}}function y(e,t){if(t)for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];"object"==typeof o&&"object"==typeof e[r]?e[r]=n({},e[r],o):e[r]=o}return e}function _(e,t,n,r,o,i){!e.required||n.hasOwnProperty(e.field)&&!d(t,i||e.type)||r.push(f(o.messages.required,e.fullField))}var g={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},b={integer:function(e){return b.number(e)&&parseInt(e,10)===e},float:function(e){return b.number(e)&&!b.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear&&!isNaN(e.getTime())},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"==typeof e&&!b.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(g.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(g.url)},hex:function(e){return"string"==typeof e&&!!e.match(g.hex)}};var M={required:_,whitespace:function(e,t,n,r,o){(/^\s+$/.test(t)||""===t)&&r.push(f(o.messages.whitespace,e.fullField))},type:function(e,t,n,r,o){if(e.required&&void 0===t)_(e,t,n,r,o);else{var i=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(i)>-1?b[i](t)||r.push(f(o.messages.types[i],e.fullField,e.type)):i&&typeof t!==e.type&&r.push(f(o.messages.types[i],e.fullField,e.type))}},range:function(e,t,n,r,o){var i="number"==typeof e.len,a="number"==typeof e.min,c="number"==typeof e.max,s=t,l=null,u="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(u?l="number":d?l="string":p&&(l="array"),!l)return!1;p&&(s=t.length),d&&(s=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),i?s!==e.len&&r.push(f(o.messages[l].len,e.fullField,e.len)):a&&!c&&s<e.min?r.push(f(o.messages[l].min,e.fullField,e.min)):c&&!a&&s>e.max?r.push(f(o.messages[l].max,e.fullField,e.max)):a&&c&&(s<e.min||s>e.max)&&r.push(f(o.messages[l].range,e.fullField,e.min,e.max))},enum:function(e,t,n,r,o){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&r.push(f(o.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,n,r,o){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(f(o.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||r.push(f(o.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};function w(e,t,n,r,o){var i=e.type,a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,i)&&!e.required)return n();M.required(e,t,r,a,o,i),d(t,i)||M.type(e,t,r,a,o)}n(a)}var O={string:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"string")&&!e.required)return n();M.required(e,t,r,i,o,"string"),d(t,"string")||(M.type(e,t,r,i,o),M.range(e,t,r,i,o),M.pattern(e,t,r,i,o),!0===e.whitespace&&M.whitespace(e,t,r,i,o))}n(i)},method:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&M.type(e,t,r,i,o)}n(i)},number:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(""===t&&(t=void 0),d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&(M.type(e,t,r,i,o),M.range(e,t,r,i,o))}n(i)},boolean:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&M.type(e,t,r,i,o)}n(i)},regexp:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),d(t)||M.type(e,t,r,i,o)}n(i)},integer:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&(M.type(e,t,r,i,o),M.range(e,t,r,i,o))}n(i)},float:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&(M.type(e,t,r,i,o),M.range(e,t,r,i,o))}n(i)},array:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(null==t&&!e.required)return n();M.required(e,t,r,i,o,"array"),null!=t&&(M.type(e,t,r,i,o),M.range(e,t,r,i,o))}n(i)},object:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&M.type(e,t,r,i,o)}n(i)},enum:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o),void 0!==t&&M.enum(e,t,r,i,o)}n(i)},pattern:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"string")&&!e.required)return n();M.required(e,t,r,i,o),d(t,"string")||M.pattern(e,t,r,i,o)}n(i)},date:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t,"date")&&!e.required)return n();var a;if(M.required(e,t,r,i,o),!d(t,"date"))a=t instanceof Date?t:new Date(t),M.type(e,a,r,i,o),a&&M.range(e,a.getTime(),r,i,o)}n(i)},url:w,hex:w,email:w,required:function(e,t,n,r,o){var i=[],a=Array.isArray(t)?"array":typeof t;M.required(e,t,r,i,o,a),n(i)},any:function(e,t,n,r,o){var i=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(d(t)&&!e.required)return n();M.required(e,t,r,i,o)}n(i)}};function S(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var C=S();function x(e){this.rules=null,this._messages=C,this.define(e)}x.prototype={messages:function(e){return e&&(this._messages=y(S(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");var t,n;for(t in this.rules={},e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e,t,r){var o=this;void 0===t&&(t={}),void 0===r&&(r=function(){});var i,a,c=e,s=t,l=r;if("function"==typeof s&&(l=s,s={}),!this.rules||0===Object.keys(this.rules).length)return l&&l(),Promise.resolve();if(s.messages){var d=this.messages();d===C&&(d=S()),y(d,s.messages),s.messages=d}else s.messages=this.messages();var p={};(s.keys||Object.keys(this.rules)).forEach((function(t){i=o.rules[t],a=c[t],i.forEach((function(r){var i=r;"function"==typeof i.transform&&(c===e&&(c=n({},c)),a=c[t]=i.transform(a)),(i="function"==typeof i?{validator:i}:n({},i)).validator=o.getValidationMethod(i),i.field=t,i.fullField=i.fullField||t,i.type=o.getType(i),i.validator&&(p[t]=p[t]||[],p[t].push({rule:i,value:a,source:c,field:t}))}))}));var h={};return m(p,s,(function(e,t){var r,o=e.rule,i=!("object"!==o.type&&"array"!==o.type||"object"!=typeof o.fields&&"object"!=typeof o.defaultField);function a(e,t){return n({},t,{fullField:o.fullField+"."+e})}function c(r){void 0===r&&(r=[]);var c=r;if(Array.isArray(c)||(c=[c]),!s.suppressWarning&&c.length&&x.warning("async-validator:",c),c.length&&void 0!==o.message&&(c=[].concat(o.message)),c=c.map(v(o)),s.first&&c.length)return h[o.field]=1,t(c);if(i){if(o.required&&!e.value)return void 0!==o.message?c=[].concat(o.message).map(v(o)):s.error&&(c=[s.error(o,f(s.messages.required,o.field))]),t(c);var l={};if(o.defaultField)for(var u in e.value)e.value.hasOwnProperty(u)&&(l[u]=o.defaultField);for(var d in l=n({},l,e.rule.fields))if(l.hasOwnProperty(d)){var p=Array.isArray(l[d])?l[d]:[l[d]];l[d]=p.map(a.bind(null,d))}var m=new x(l);m.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),m.validate(e.value,e.rule.options||s,(function(e){var n=[];c&&c.length&&n.push.apply(n,c),e&&e.length&&n.push.apply(n,e),t(n.length?n:null)}))}else t(c)}i=i&&(o.required||!o.required&&e.value),o.field=e.field,o.asyncValidator?r=o.asyncValidator(o,e.value,c,e.source,s):o.validator&&(!0===(r=o.validator(o,e.value,c,e.source,s))?c():!1===r?c(o.message||o.field+" fails"):r instanceof Array?c(r):r instanceof Error&&c(r.message)),r&&r.then&&r.then((function(){return c()}),(function(e){return c(e)}))}),(function(e){!function(e){var t,n,r,o=[],i={};for(t=0;t<e.length;t++)n=e[t],r=void 0,Array.isArray(n)?o=(r=o).concat.apply(r,n):o.push(n);o.length?i=u(o):(o=null,i=null),l(o,i)}(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!O.hasOwnProperty(e.type))throw new Error(f("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?O.required:O[this.getType(e)]||!1}},x.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");O[e]=t},x.warning=l,x.messages=C,x.validators=O,t.a=x}).call(this,n(114))},function(e,t,n){"use strict";e.exports=n(675)},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(48),i=l(n(1054)),a=l(n(3)),c=l(n(851)),s=n(43);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var o=y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return m(this,n)}}function m(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?v(e):t}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(){return(_=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function g(e){var t=e.type;if((!0===t.__ANT_BUTTON||!0===t.__ANT_SWITCH||!0===t.__ANT_CHECKBOX||"button"===e.type)&&e.props.disabled){var n=function(e,t){var n={},r=_({},e);return t.forEach((function(t){e&&t in e&&(n[t]=e[t],delete r[t])})),{picked:n,omitted:r}}(e.props.style,["position","left","right","top","bottom","float","display","zIndex"]),o=n.picked,i=n.omitted,a=_(_({display:"inline-block"},o),{cursor:"not-allowed",width:e.props.block?"100%":null}),c=_(_({},i),{pointerEvents:"none"}),s=r.cloneElement(e,{style:c,className:null});return r.createElement("span",{style:a,className:e.props.className},s)}return e}var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(u,e);var t,n,o,l=h(u);function u(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=l.call(this,e)).onVisibleChange=function(e){var n=t.props.onVisibleChange;"visible"in t.props||t.setState({visible:!t.isNoTitle()&&e}),n&&!t.isNoTitle()&&n(e)},t.saveTooltip=function(e){t.tooltip=e},t.onPopupAlign=function(e,n){var r=t.getPlacements(),o=Object.keys(r).filter((function(e){return r[e].points[0]===n.points[0]&&r[e].points[1]===n.points[1]}))[0];if(o){var i=e.getBoundingClientRect(),a={top:"50%",left:"50%"};o.indexOf("top")>=0||o.indexOf("Bottom")>=0?a.top="".concat(i.height-n.offset[1],"px"):(o.indexOf("Top")>=0||o.indexOf("bottom")>=0)&&(a.top="".concat(-n.offset[1],"px")),o.indexOf("left")>=0||o.indexOf("Right")>=0?a.left="".concat(i.width-n.offset[0],"px"):(o.indexOf("right")>=0||o.indexOf("Left")>=0)&&(a.left="".concat(-n.offset[0],"px")),e.style.transformOrigin="".concat(a.left," ").concat(a.top)}},t.renderTooltip=function(e){var n=e.getPopupContainer,o=e.getPrefixCls,c=v(t),s=c.props,l=c.state,u=s.prefixCls,f=s.openClassName,d=s.getPopupContainer,p=s.getTooltipContainer,h=s.children,m=o("tooltip",u),y=l.visible;!("visible"in s)&&t.isNoTitle()&&(y=!1);var b,M,w,O=g(r.isValidElement(h)?h:r.createElement("span",null,h)),S=O.props,C=(0,a.default)(S.className,(b={},M=f||"".concat(m,"-open"),w=!0,M in b?Object.defineProperty(b,M,{value:w,enumerable:!0,configurable:!0,writable:!0}):b[M]=w,b));return r.createElement(i.default,_({},t.props,{prefixCls:m,getTooltipContainer:d||p||n,ref:t.saveTooltip,builtinPlacements:t.getPlacements(),overlay:t.getOverlay(),visible:y,onVisibleChange:t.onVisibleChange,onPopupAlign:t.onPopupAlign}),y?r.cloneElement(O,{className:C}):O)},t.state={visible:!!e.visible||!!e.defaultVisible},t}return t=u,o=[{key:"getDerivedStateFromProps",value:function(e){return"visible"in e?{visible:e.visible}:null}}],(n=[{key:"getPopupDomNode",value:function(){return this.tooltip.getPopupDomNode()}},{key:"getPlacements",value:function(){var e=this.props,t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||(0,c.default)({arrowPointAtCenter:n,verticalArrowShift:8,autoAdjustOverflow:r})}},{key:"isNoTitle",value:function(){var e=this.props,t=e.title,n=e.overlay;return!t&&!n&&0!==t}},{key:"getOverlay",value:function(){var e=this.props,t=e.title,n=e.overlay;return 0===t?t:n||t||""}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderTooltip)}}])&&d(t.prototype,n),o&&d(t,o),u}(r.Component);b.defaultProps={placement:"top",transitionName:"zoom-big-fast",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0},(0,o.polyfill)(b);var M=b;t.default=M},function(e,t){function n(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,o)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(o,i){var a=e.apply(t,r);function c(e){n(a,o,i,c,s,"next",e)}function s(e){n(a,o,i,c,s,"throw",e)}c(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(853),o=n(113),i=n(854);function a(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e){var t=e.indexOf("?");return-1===t?"":e.slice(t+1)}function s(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=o({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^[?#&]/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),o=t.shift(),a=t.length>0?t.join("="):void 0;a=void 0===a?null:i(a),n(i(o),a,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r}t.extract=c,t.parse=s,t.stringify=function(e,t){!1===(t=o({encode:!0,strict:!0,arrayFormat:"none"},t)).sort&&(t.sort=function(){});var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[a(t,e),"[",r,"]"].join(""):[a(t,e),"[",a(r,e),"]=",a(n,e)].join("")};case"bracket":return function(t,n){return null===n?a(t,e):[a(t,e),"[]=",a(n,e)].join("")};default:return function(t,n){return null===n?a(t,e):[a(t,e),"=",a(n,e)].join("")}}}(t);return e?Object.keys(e).sort(t.sort).map((function(r){var o=e[r];if(void 0===o)return"";if(null===o)return a(r,t);if(Array.isArray(o)){var i=[];return o.slice().forEach((function(e){void 0!==e&&i.push(n(r,e,i.length))})),i.join("&")}return a(r,t)+"="+a(o,t)})).filter((function(e){return e.length>0})).join("&"):""},t.parseUrl=function(e,t){return{url:e.split("?")[0]||"",query:s(c(e),t)}}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=u(n(0)),i=u(n(480)),a=s(n(936)),c=s(n(51));function s(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e){var t=f({type:"warning",icon:o.createElement(c.default,{type:"exclamation-circle"}),okCancel:!1},e);return(0,a.default)(t)}i.default.info=function(e){var t=f({type:"info",icon:o.createElement(c.default,{type:"info-circle"}),okCancel:!1},e);return(0,a.default)(t)},i.default.success=function(e){var t=f({type:"success",icon:o.createElement(c.default,{type:"check-circle"}),okCancel:!1},e);return(0,a.default)(t)},i.default.error=function(e){var t=f({type:"error",icon:o.createElement(c.default,{type:"close-circle"}),okCancel:!1},e);return(0,a.default)(t)},i.default.warning=d,i.default.warn=d,i.default.confirm=function(e){var t=f({type:"confirm",okCancel:!0},e);return(0,a.default)(t)},i.default.destroyAll=function(){for(;i.destroyFns.length;){var e=i.destroyFns.pop();e&&e()}};var p=i.default;t.default=p},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(0)),o=d(n(1)),i=u(n(3)),a=u(n(81)),c=u(n(938)),s=n(43),l=n(85);function u(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=(0,l.tuple)("small","default","large"),O=null;var S=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(u,e);var t,n,o,l=_(u);function u(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=l.call(this,e)).debouncifyUpdateSpinning=function(e){var n=(e||t.props).delay;n&&(t.cancelExistingSpin(),t.updateSpinning=(0,c.default)(t.originalUpdateSpinning,n))},t.updateSpinning=function(){var e=t.props.spinning;t.state.spinning!==e&&t.setState({spinning:e})},t.renderSpin=function(e){var n,o=e.getPrefixCls,c=t.props,s=c.prefixCls,l=c.className,u=c.size,f=c.tip,d=c.wrapperClassName,p=c.style,v=M(c,["prefixCls","className","size","tip","wrapperClassName","style"]),y=t.state.spinning,_=o("spin",s),g=(0,i.default)(_,(m(n={},"".concat(_,"-sm"),"small"===u),m(n,"".concat(_,"-lg"),"large"===u),m(n,"".concat(_,"-spinning"),y),m(n,"".concat(_,"-show-text"),!!f),n),l),b=(0,a.default)(v,["spinning","delay","indicator"]),w=r.createElement("div",h({},b,{style:p,className:g}),function(e,t){var n=t.indicator,o="".concat(e,"-dot");return null===n?null:r.isValidElement(n)?r.cloneElement(n,{className:(0,i.default)(n.props.className,o)}):r.isValidElement(O)?r.cloneElement(O,{className:(0,i.default)(O.props.className,o)}):r.createElement("span",{className:(0,i.default)(o,"".concat(e,"-dot-spin"))},r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}),r.createElement("i",{className:"".concat(e,"-dot-item")}))}(_,t.props),f?r.createElement("div",{className:"".concat(_,"-text")},f):null);if(t.isNestedPattern()){var S=(0,i.default)("".concat(_,"-container"),m({},"".concat(_,"-blur"),y));return r.createElement("div",h({},b,{className:(0,i.default)("".concat(_,"-nested-loading"),d)}),y&&r.createElement("div",{key:"loading"},w),r.createElement("div",{className:S,key:"container"},t.props.children))}return w};var n=e.spinning,o=function(e,t){return!!e&&!!t&&!isNaN(Number(t))}(n,e.delay);return t.state={spinning:n&&!o},t.originalUpdateSpinning=t.updateSpinning,t.debouncifyUpdateSpinning(e),t}return t=u,o=[{key:"setDefaultIndicator",value:function(e){O=e}}],(n=[{key:"componentDidMount",value:function(){this.updateSpinning()}},{key:"componentDidUpdate",value:function(){this.debouncifyUpdateSpinning(),this.updateSpinning()}},{key:"componentWillUnmount",value:function(){this.cancelExistingSpin()}},{key:"cancelExistingSpin",value:function(){var e=this.updateSpinning;e&&e.cancel&&e.cancel()}},{key:"isNestedPattern",value:function(){return!(!this.props||!this.props.children)}},{key:"render",value:function(){return r.createElement(s.ConfigConsumer,null,this.renderSpin)}}])&&v(t.prototype,n),o&&v(t,o),u}(r.Component);S.defaultProps={spinning:!0,size:"default",wrapperClassName:""},S.propTypes={prefixCls:o.string,className:o.string,spinning:o.bool,size:o.oneOf(w),wrapperClassName:o.string,indicator:o.element};var C=S;t.default=C},function(e,t,n){"use strict";n.d(t,"a",(function(){return M}));var r=n(0),o=n.n(r),i={};function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,n=void 0===t?"":t,r=e.method,o=void 0===r?"":r,i=e.responseType,a=void 0===i?"":i,c=e.body,s=void 0===c?"":c;return[n,o.toUpperCase(),a,s].join("||")}function c(e){var t=e.requestKey,n=e.res,r=e.err;(i[t]||[]).forEach((function(e){n?e.resolve(n):e.reject(r)})),i[t]=null}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2],r=void 0,o=void 0;n?(r=n,o=t):t.responseType?(r=t,o={}):(r={},o=t);var s=r,l=s.requestKey,u=s.responseType,f=void 0===u?"":u,d=s.dedupe,p=void 0===d||d,h=l||a({url:e.url||e,method:o.method||e.method||"",body:o.body||e.body||""}),m=void 0;if(p){i[h]||(i[h]=[]);var v=i[h],y=Boolean(v.length),_={};if(m=new Promise((function(e,t){_.resolve=e,_.reject=t})),v.push(_),y)return m}var g=fetch(e,o).then((function(e){var t=void 0;return t=f instanceof Function?f(e):f||(204===e.status?"text":"json"),e[t]().then((function(t){if(e.data=t,!p)return e;c({requestKey:h,res:e})}),(function(){if(e.data=null,!p)return e;c({requestKey:h,res:e})}))}),(function(e){if(!p)return Promise.reject(e);c({requestKey:h,err:e})}));return p?m:g}var l=o.a.createContext(null);var u=function(e){var t=function(e,t){if(!e)return null;if(e instanceof Headers)return e.get(t);var n=t.toLowerCase(),r=Object.keys(e).find((function(e){return e.toLowerCase()===n}));return r?e[r]:null}(e.headers,"Content-Type");return t&&-1!==t.indexOf("application/json")?JSON.stringify(e.body):e.body},f=function(e){return"GET"===(e=e.toUpperCase())||"HEAD"===e||"OPTIONS"===e},d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p="network-only",h="cache-and-network",m="exact-cache-and-network",v="cache-first",y=function(e){return console.error(e)},_=function(){return null};function g(e,t){switch(t.type){case"in-flight":return!0===e.fetching?e:d({},e,{fetching:!0});case"response":return d({},e,{error:null,fetching:t.payload.fetching,response:t.payload.response});case"error":return d({},e,{fetching:!1,error:t.payload.error});default:return e}}var b=function(e){return e};function M(e){var t=e.url,n=e.method,o=void 0===n?"GET":n,i=e.lazy,c=void 0===i?null:i,M=e.requestKey,w=void 0===M?null:M,O=e.init,S=void 0===O?{}:O,C=e.dedupeOptions,x=void 0===C?{}:C,k=e.cachePolicy,L=void 0===k?null:k,E=e.cacheResponse,T=void 0===E?null:E,P=e.onError,j=void 0===P?y:P,z=e.onSuccess,D=void 0===z?_:z,N=e.refreshDoFetch,H=void 0===N?b:N,A=Object(r.useContext)(l),Y=Object(r.useRef)(),I=null==c?!f(o):c,V=null===L?function(e){return"GET"===(e=e.toUpperCase())||"HEAD"===e||"OPTIONS"===e?v:p}(o):L,F=Object(r.useReducer)(g,{response:null,fetching:!I,error:null}),R=F[0],W=F[1],U=w||a(d({url:t,method:o.toUpperCase()},S));function B(){W({type:"in-flight"})}function K(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];W({type:"response",payload:{response:e,fetching:t}})}function q(e){W({type:"error",payload:{error:e}})}function G(){Y.current&&Y.current.abort()}function $(){return null!==T?T:f(o)}var J=Object(r.useCallback)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};G(),Y.current=new AbortController,B();var r=d({},S,e),i=d({},x,n);return s(r.url||t,d({},r,{method:o,signal:Y.current.signal,body:r.body?u(r):void 0}),i).then((function(e){return e.ok?($()&&A.set(U,e),K(e),D(e)):(q(e),j(e)),e})).catch((function(e){return Y.current.signal.aborted||q(e),j(e),e})).finally((function(){Y.current=null}))}),[H(U)]);return Object(r.useEffect)((function(){if(!0!==I){var e=A.get(U);if(V===v&&e)return D(e),K(e);V===h&&e&&(D(e),K(e,!0)),V===m&&(e?(D(e),K(e,!0)):K(null)),V===p&&K(null),J(S)}}),[U,I]),Object(r.useEffect)((function(){return function(){G()}}),[]),{response:R.response,data:R.response?R.response.data:null,fetching:R.fetching,error:R.error,requestKey:U,doFetch:J}}},function(e,t,n){e.exports=n(1047)},function(e,t,n){"use strict"; /** @license React v16.9.0 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(113),o="function"==typeof Symbol&&Symbol.for,i=o?Symbol.for("react.element"):60103,a=o?Symbol.for("react.portal"):60106,c=o?Symbol.for("react.fragment"):60107,s=o?Symbol.for("react.strict_mode"):60108,l=o?Symbol.for("react.profiler"):60114,u=o?Symbol.for("react.provider"):60109,f=o?Symbol.for("react.context"):60110,d=o?Symbol.for("react.forward_ref"):60112,p=o?Symbol.for("react.suspense"):60113,h=o?Symbol.for("react.suspense_list"):60120,m=o?Symbol.for("react.memo"):60115,v=o?Symbol.for("react.lazy"):60116;o&&Symbol.for("react.fundamental"),o&&Symbol.for("react.responder");var y="function"==typeof Symbol&&Symbol.iterator;function _(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b={};function M(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}function w(){}function O(e,t,n){this.props=e,this.context=t,this.refs=b,this.updater=n||g}M.prototype.isReactComponent={},M.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw _(Error(85));this.updater.enqueueSetState(this,e,t,"setState")},M.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},w.prototype=M.prototype;var S=O.prototype=new w;S.constructor=O,r(S,M.prototype),S.isPureReactComponent=!0;var C={current:null},x={suspense:null},k={current:null},L=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function T(e,t,n){var r=void 0,o={},a=null,c=null;if(null!=t)for(r in void 0!==t.ref&&(c=t.ref),void 0!==t.key&&(a=""+t.key),t)L.call(t,r)&&!E.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(1<s){for(var l=Array(s),u=0;u<s;u++)l[u]=arguments[u+2];o.children=l}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===o[r]&&(o[r]=s[r]);return{$$typeof:i,type:e,key:a,ref:c,props:o,_owner:k.current}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}var j=/\/+/g,z=[];function D(e,t,n,r){if(z.length){var o=z.pop();return o.result=e,o.keyPrefix=t,o.func=n,o.context=r,o.count=0,o}return{result:e,keyPrefix:t,func:n,context:r,count:0}}function N(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>z.length&&z.push(e)}function H(e,t,n){return null==e?0:function e(t,n,r,o){var c=typeof t;"undefined"!==c&&"boolean"!==c||(t=null);var s=!1;if(null===t)s=!0;else switch(c){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case i:case a:s=!0}}if(s)return r(o,t,""===n?"."+A(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var l=0;l<t.length;l++){var u=n+A(c=t[l],l);s+=e(c,u,r,o)}else if(null===t||"object"!=typeof t?u=null:u="function"==typeof(u=y&&t[y]||t["@@iterator"])?u:null,"function"==typeof u)for(t=u.call(t),l=0;!(c=t.next()).done;)s+=e(c=c.value,u=n+A(c,l++),r,o);else if("object"===c)throw r=""+t,_(Error(31),"[object Object]"===r?"object with keys {"+Object.keys(t).join(", ")+"}":r,"");return s}(e,"",t,n)}function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return t[e]}))}(e.key):t.toString(36)}function Y(e,t){e.func.call(e.context,t,e.count++)}function I(e,t,n){var r=e.result,o=e.keyPrefix;e=e.func.call(e.context,t,e.count++),Array.isArray(e)?V(e,r,n,(function(e){return e})):null!=e&&(P(e)&&(e=function(e,t){return{$$typeof:i,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||t&&t.key===e.key?"":(""+e.key).replace(j,"$&/")+"/")+n)),r.push(e))}function V(e,t,n,r,o){var i="";null!=n&&(i=(""+n).replace(j,"$&/")+"/"),H(e,I,t=D(t,i,r,o)),N(t)}function F(){var e=C.current;if(null===e)throw _(Error(321));return e}var R={Children:{map:function(e,t,n){if(null==e)return e;var r=[];return V(e,r,null,t,n),r},forEach:function(e,t,n){if(null==e)return e;H(e,Y,t=D(null,null,t,n)),N(t)},count:function(e){return H(e,(function(){return null}),null)},toArray:function(e){var t=[];return V(e,t,null,(function(e){return e})),t},only:function(e){if(!P(e))throw _(Error(143));return e}},createRef:function(){return{current:null}},Component:M,PureComponent:O,createContext:function(e,t){return void 0===t&&(t=null),(e={$$typeof:f,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:u,_context:e},e.Consumer=e},forwardRef:function(e){return{$$typeof:d,render:e}},lazy:function(e){return{$$typeof:v,_ctor:e,_status:-1,_result:null}},memo:function(e,t){return{$$typeof:m,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return F().useCallback(e,t)},useContext:function(e,t){return F().useContext(e,t)},useEffect:function(e,t){return F().useEffect(e,t)},useImperativeHandle:function(e,t,n){return F().useImperativeHandle(e,t,n)},useDebugValue:function(){},useLayoutEffect:function(e,t){return F().useLayoutEffect(e,t)},useMemo:function(e,t){return F().useMemo(e,t)},useReducer:function(e,t,n){return F().useReducer(e,t,n)},useRef:function(e){return F().useRef(e)},useState:function(e){return F().useState(e)},Fragment:c,Profiler:l,StrictMode:s,Suspense:p,unstable_SuspenseList:h,createElement:T,cloneElement:function(e,t,n){if(null==e)throw _(Error(267),e);var o=void 0,a=r({},e.props),c=e.key,s=e.ref,l=e._owner;if(null!=t){void 0!==t.ref&&(s=t.ref,l=k.current),void 0!==t.key&&(c=""+t.key);var u=void 0;for(o in e.type&&e.type.defaultProps&&(u=e.type.defaultProps),t)L.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=void 0===t[o]&&void 0!==u?u[o]:t[o])}if(1===(o=arguments.length-2))a.children=n;else if(1<o){u=Array(o);for(var f=0;f<o;f++)u[f]=arguments[f+2];a.children=u}return{$$typeof:i,type:e.type,key:c,ref:s,props:a,_owner:l}},createFactory:function(e){var t=T.bind(null,e);return t.type=e,t},isValidElement:P,version:"16.9.0",unstable_withSuspenseConfig:function(e,t){var n=x.suspense;x.suspense=void 0===t?null:t;try{e()}finally{x.suspense=n}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentDispatcher:C,ReactCurrentBatchConfig:x,ReactCurrentOwner:k,IsSomeRendererActing:{current:!1},assign:r}},W={default:R},U=W&&R||W;e.exports=U.default||U},function(e,t,n){"use strict"; /** @license React v16.9.0 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r=n(0),o=n(113),i=n(520);function a(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r<arguments.length;r++)n+="&args[]="+encodeURIComponent(arguments[r]);return e.message="Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. ",e}if(!r)throw a(Error(227));var c=null,s={};function l(){if(c)for(var e in s){var t=s[e],n=c.indexOf(e);if(!(-1<n))throw a(Error(96),e);if(!f[n]){if(!t.extractEvents)throw a(Error(97),e);for(var r in f[n]=t,n=t.eventTypes){var o=void 0,i=n[r],l=t,p=r;if(d.hasOwnProperty(p))throw a(Error(99),p);d[p]=i;var h=i.phasedRegistrationNames;if(h){for(o in h)h.hasOwnProperty(o)&&u(h[o],l,p);o=!0}else i.registrationName?(u(i.registrationName,l,p),o=!0):o=!1;if(!o)throw a(Error(98),r,e)}}}}function u(e,t,n){if(p[e])throw a(Error(100),e);p[e]=t,h[e]=t.eventTypes[n].dependencies}var f=[],d={},p={},h={};function m(e,t,n,r,o,i,a,c,s){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(e){this.onError(e)}}var v=!1,y=null,_=!1,g=null,b={onError:function(e){v=!0,y=e}};function M(e,t,n,r,o,i,a,c,s){v=!1,y=null,m.apply(b,arguments)}var w=null,O=null,S=null;function C(e,t,n){var r=e.type||"unknown-event";e.currentTarget=S(n),function(e,t,n,r,o,i,c,s,l){if(M.apply(this,arguments),v){if(!v)throw a(Error(198));var u=y;v=!1,y=null,_||(_=!0,g=u)}}(r,t,void 0,e),e.currentTarget=null}function x(e,t){if(null==t)throw a(Error(30));return null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}function k(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}var L=null;function E(e){if(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t))for(var r=0;r<t.length&&!e.isPropagationStopped();r++)C(e,t[r],n[r]);else t&&C(e,t,n);e._dispatchListeners=null,e._dispatchInstances=null,e.isPersistent()||e.constructor.release(e)}}function T(e){if(null!==e&&(L=x(L,e)),e=L,L=null,e){if(k(e,E),L)throw a(Error(95));if(_)throw e=g,_=!1,g=null,e}}var P={injectEventPluginOrder:function(e){if(c)throw a(Error(101));c=Array.prototype.slice.call(e),l()},injectEventPluginsByName:function(e){var t,n=!1;for(t in e)if(e.hasOwnProperty(t)){var r=e[t];if(!s.hasOwnProperty(t)||s[t]!==r){if(s[t])throw a(Error(102),t);s[t]=r,n=!0}}n&&l()}};function j(e,t){var n=e.stateNode;if(!n)return null;var r=w(n);if(!r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw a(Error(231),t,typeof n);return n}var z=Math.random().toString(36).slice(2),D="__reactInternalInstance$"+z,N="__reactEventHandlers$"+z;function H(e){if(e[D])return e[D];for(;!e[D];){if(!e.parentNode)return null;e=e.parentNode}return 5===(e=e[D]).tag||6===e.tag?e:null}function A(e){return!(e=e[D])||5!==e.tag&&6!==e.tag?null:e}function Y(e){if(5===e.tag||6===e.tag)return e.stateNode;throw a(Error(33))}function I(e){return e[N]||null}function V(e){do{e=e.return}while(e&&5!==e.tag);return e||null}function F(e,t,n){(t=j(e,n.dispatchConfig.phasedRegistrationNames[t]))&&(n._dispatchListeners=x(n._dispatchListeners,t),n._dispatchInstances=x(n._dispatchInstances,e))}function R(e){if(e&&e.dispatchConfig.phasedRegistrationNames){for(var t=e._targetInst,n=[];t;)n.push(t),t=V(t);for(t=n.length;0<t--;)F(n[t],"captured",e);for(t=0;t<n.length;t++)F(n[t],"bubbled",e)}}function W(e,t,n){e&&n&&n.dispatchConfig.registrationName&&(t=j(e,n.dispatchConfig.registrationName))&&(n._dispatchListeners=x(n._dispatchListeners,t),n._dispatchInstances=x(n._dispatchInstances,e))}function U(e){e&&e.dispatchConfig.registrationName&&W(e._targetInst,null,e)}function B(e){k(e,R)}var K=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement);function q(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var G={animationend:q("Animation","AnimationEnd"),animationiteration:q("Animation","AnimationIteration"),animationstart:q("Animation","AnimationStart"),transitionend:q("Transition","TransitionEnd")},$={},J={};function X(e){if($[e])return $[e];if(!G[e])return e;var t,n=G[e];for(t in n)if(n.hasOwnProperty(t)&&t in J)return $[e]=n[t];return e}K&&(J=document.createElement("div").style,"AnimationEvent"in window||(delete G.animationend.animation,delete G.animationiteration.animation,delete G.animationstart.animation),"TransitionEvent"in window||delete G.transitionend.transition);var Q=X("animationend"),Z=X("animationiteration"),ee=X("animationstart"),te=X("transitionend"),ne="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),re=null,oe=null,ie=null;function ae(){if(ie)return ie;var e,t,n=oe,r=n.length,o="value"in re?re.value:re.textContent,i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);return ie=o.slice(e,1<t?1-t:void 0)}function ce(){return!0}function se(){return!1}function le(e,t,n,r){for(var o in this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n,e=this.constructor.Interface)e.hasOwnProperty(o)&&((t=e[o])?this[o]=t(n):"target"===o?this.target=r:this[o]=n[o]);return this.isDefaultPrevented=(null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue)?ce:se,this.isPropagationStopped=se,this}function ue(e,t,n,r){if(this.eventPool.length){var o=this.eventPool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}function fe(e){if(!(e instanceof this))throw a(Error(279));e.destructor(),10>this.eventPool.length&&this.eventPool.push(e)}function de(e){e.eventPool=[],e.getPooled=ue,e.release=fe}o(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ce)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ce)},persist:function(){this.isPersistent=ce},isPersistent:se,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=se,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var i=new t;return o(i,n.prototype),n.prototype=i,n.prototype.constructor=n,n.Interface=o({},r.Interface,e),n.extend=r.extend,de(n),n},de(le);var pe=le.extend({data:null}),he=le.extend({data:null}),me=[9,13,27,32],ve=K&&"CompositionEvent"in window,ye=null;K&&"documentMode"in document&&(ye=document.documentMode);var _e=K&&"TextEvent"in window&&!ye,ge=K&&(!ve||ye&&8<ye&&11>=ye),be=String.fromCharCode(32),Me={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},we=!1;function Oe(e,t){switch(e){case"keyup":return-1!==me.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Se(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Ce=!1;var xe={eventTypes:Me,extractEvents:function(e,t,n,r){var o=void 0,i=void 0;if(ve)e:{switch(e){case"compositionstart":o=Me.compositionStart;break e;case"compositionend":o=Me.compositionEnd;break e;case"compositionupdate":o=Me.compositionUpdate;break e}o=void 0}else Ce?Oe(e,n)&&(o=Me.compositionEnd):"keydown"===e&&229===n.keyCode&&(o=Me.compositionStart);return o?(ge&&"ko"!==n.locale&&(Ce||o!==Me.compositionStart?o===Me.compositionEnd&&Ce&&(i=ae()):(oe="value"in(re=r)?re.value:re.textContent,Ce=!0)),o=pe.getPooled(o,t,n,r),i?o.data=i:null!==(i=Se(n))&&(o.data=i),B(o),i=o):i=null,(e=_e?function(e,t){switch(e){case"compositionend":return Se(t);case"keypress":return 32!==t.which?null:(we=!0,be);case"textInput":return(e=t.data)===be&&we?null:e;default:return null}}(e,n):function(e,t){if(Ce)return"compositionend"===e||!ve&&Oe(e,t)?(e=ae(),ie=oe=re=null,Ce=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return ge&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))?((t=he.getPooled(Me.beforeInput,t,n,r)).data=e,B(t)):t=null,null===i?t:null===t?i:[i,t]}},ke=null,Le=null,Ee=null;function Te(e){if(e=O(e)){if("function"!=typeof ke)throw a(Error(280));var t=w(e.stateNode);ke(e.stateNode,e.type,t)}}function Pe(e){Le?Ee?Ee.push(e):Ee=[e]:Le=e}function je(){if(Le){var e=Le,t=Ee;if(Ee=Le=null,Te(e),t)for(e=0;e<t.length;e++)Te(t[e])}}function ze(e,t){return e(t)}function De(e,t,n,r){return e(t,n,r)}function Ne(){}var He=ze,Ae=!1;function Ye(){null===Le&&null===Ee||(Ne(),je())}var Ie={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ve(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Ie[e.type]:"textarea"===t}function Fe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}function Re(e){if(!K)return!1;var t=(e="on"+e)in document;return t||((t=document.createElement("div")).setAttribute(e,"return;"),t="function"==typeof t[e]),t}function We(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Ue(e){e._valueTracker||(e._valueTracker=function(e){var t=We(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Be(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=We(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}var Ke=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Ke.hasOwnProperty("ReactCurrentDispatcher")||(Ke.ReactCurrentDispatcher={current:null}),Ke.hasOwnProperty("ReactCurrentBatchConfig")||(Ke.ReactCurrentBatchConfig={suspense:null});var qe=/^(.*)[\\\/]/,Ge="function"==typeof Symbol&&Symbol.for,$e=Ge?Symbol.for("react.element"):60103,Je=Ge?Symbol.for("react.portal"):60106,Xe=Ge?Symbol.for("react.fragment"):60107,Qe=Ge?Symbol.for("react.strict_mode"):60108,Ze=Ge?Symbol.for("react.profiler"):60114,et=Ge?Symbol.for("react.provider"):60109,tt=Ge?Symbol.for("react.context"):60110,nt=Ge?Symbol.for("react.concurrent_mode"):60111,rt=Ge?Symbol.for("react.forward_ref"):60112,ot=Ge?Symbol.for("react.suspense"):60113,it=Ge?Symbol.for("react.suspense_list"):60120,at=Ge?Symbol.for("react.memo"):60115,ct=Ge?Symbol.for("react.lazy"):60116;Ge&&Symbol.for("react.fundamental"),Ge&&Symbol.for("react.responder");var st="function"==typeof Symbol&&Symbol.iterator;function lt(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=st&&e[st]||e["@@iterator"])?e:null}function ut(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case Xe:return"Fragment";case Je:return"Portal";case Ze:return"Profiler";case Qe:return"StrictMode";case ot:return"Suspense";case it:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case tt:return"Context.Consumer";case et:return"Context.Provider";case rt:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case at:return ut(e.type);case ct:if(e=1===e._status?e._result:null)return ut(e)}return null}function ft(e){var t="";do{e:switch(e.tag){case 3:case 4:case 6:case 7:case 10:case 9:var n="";break e;default:var r=e._debugOwner,o=e._debugSource,i=ut(e.type);n=null,r&&(n=ut(r.type)),r=i,i="",o?i=" (at "+o.fileName.replace(qe,"")+":"+o.lineNumber+")":n&&(i=" (created by "+n+")"),n="\n in "+(r||"Unknown")+i}t+=n,e=e.return}while(e);return t}var dt=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pt=Object.prototype.hasOwnProperty,ht={},mt={};function vt(e,t,n,r,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i}var yt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){yt[e]=new vt(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];yt[t]=new vt(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){yt[e]=new vt(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){yt[e]=new vt(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){yt[e]=new vt(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){yt[e]=new vt(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){yt[e]=new vt(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){yt[e]=new vt(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){yt[e]=new vt(e,5,!1,e.toLowerCase(),null,!1)}));var _t=/[\-:]([a-z])/g;function gt(e){return e[1].toUpperCase()}function bt(e,t,n,r){var o=yt.hasOwnProperty(t)?yt[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!pt.call(mt,e)||!pt.call(ht,e)&&(dt.test(e)?mt[e]=!0:(ht[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function Mt(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function wt(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Ot(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Mt(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function St(e,t){null!=(t=t.checked)&&bt(e,"checked",t,!1)}function Ct(e,t){St(e,t);var n=Mt(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?kt(e,t.type,n):t.hasOwnProperty("defaultValue")&&kt(e,t.type,Mt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function xt(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function kt(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(_t,gt);yt[t]=new vt(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(_t,gt);yt[t]=new vt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(_t,gt);yt[t]=new vt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){yt[e]=new vt(e,1,!1,e.toLowerCase(),null,!1)})),yt.xlinkHref=new vt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){yt[e]=new vt(e,1,!1,e.toLowerCase(),null,!0)}));var Lt={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Et(e,t,n){return(e=le.getPooled(Lt.change,e,t,n)).type="change",Pe(n),B(e),e}var Tt=null,Pt=null;function jt(e){T(e)}function zt(e){if(Be(Y(e)))return e}function Dt(e,t){if("change"===e)return t}var Nt=!1;function Ht(){Tt&&(Tt.detachEvent("onpropertychange",At),Pt=Tt=null)}function At(e){if("value"===e.propertyName&&zt(Pt))if(e=Et(Pt,e,Fe(e)),Ae)T(e);else{Ae=!0;try{ze(jt,e)}finally{Ae=!1,Ye()}}}function Yt(e,t,n){"focus"===e?(Ht(),Pt=n,(Tt=t).attachEvent("onpropertychange",At)):"blur"===e&&Ht()}function It(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return zt(Pt)}function Vt(e,t){if("click"===e)return zt(t)}function Ft(e,t){if("input"===e||"change"===e)return zt(t)}K&&(Nt=Re("input")&&(!document.documentMode||9<document.documentMode));var Rt={eventTypes:Lt,_isInputEventSupported:Nt,extractEvents:function(e,t,n,r){var o=t?Y(t):window,i=void 0,a=void 0,c=o.nodeName&&o.nodeName.toLowerCase();if("select"===c||"input"===c&&"file"===o.type?i=Dt:Ve(o)?Nt?i=Ft:(i=It,a=Yt):(c=o.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===o.type||"radio"===o.type)&&(i=Vt),i&&(i=i(e,t)))return Et(i,n,r);a&&a(e,o,t),"blur"===e&&(e=o._wrapperState)&&e.controlled&&"number"===o.type&&kt(o,"number",o.value)}},Wt=le.extend({view:null,detail:null}),Ut={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Bt(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Ut[e])&&!!t[e]}function Kt(){return Bt}var qt=0,Gt=0,$t=!1,Jt=!1,Xt=Wt.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Kt,button:null,buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},movementX:function(e){if("movementX"in e)return e.movementX;var t=qt;return qt=e.screenX,$t?"mousemove"===e.type?e.screenX-t:0:($t=!0,0)},movementY:function(e){if("movementY"in e)return e.movementY;var t=Gt;return Gt=e.screenY,Jt?"mousemove"===e.type?e.screenY-t:0:(Jt=!0,0)}}),Qt=Xt.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Zt={mouseEnter:{registrationName:"onMouseEnter",dependencies:["mouseout","mouseover"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["mouseout","mouseover"]},pointerEnter:{registrationName:"onPointerEnter",dependencies:["pointerout","pointerover"]},pointerLeave:{registrationName:"onPointerLeave",dependencies:["pointerout","pointerover"]}},en={eventTypes:Zt,extractEvents:function(e,t,n,r){var o="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e;if(o&&(n.relatedTarget||n.fromElement)||!i&&!o)return null;if(o=r.window===r?r:(o=r.ownerDocument)?o.defaultView||o.parentWindow:window,i?(i=t,t=(t=n.relatedTarget||n.toElement)?H(t):null):i=null,i===t)return null;var a=void 0,c=void 0,s=void 0,l=void 0;"mouseout"===e||"mouseover"===e?(a=Xt,c=Zt.mouseLeave,s=Zt.mouseEnter,l="mouse"):"pointerout"!==e&&"pointerover"!==e||(a=Qt,c=Zt.pointerLeave,s=Zt.pointerEnter,l="pointer");var u=null==i?o:Y(i);if(o=null==t?o:Y(t),(e=a.getPooled(c,i,n,r)).type=l+"leave",e.target=u,e.relatedTarget=o,(n=a.getPooled(s,t,n,r)).type=l+"enter",n.target=o,n.relatedTarget=u,r=t,i&&r)e:{for(o=r,l=0,a=t=i;a;a=V(a))l++;for(a=0,s=o;s;s=V(s))a++;for(;0<l-a;)t=V(t),l--;for(;0<a-l;)o=V(o),a--;for(;l--;){if(t===o||t===o.alternate)break e;t=V(t),o=V(o)}t=null}else t=null;for(o=t,t=[];i&&i!==o&&(null===(l=i.alternate)||l!==o);)t.push(i),i=V(i);for(i=[];r&&r!==o&&(null===(l=r.alternate)||l!==o);)i.push(r),r=V(r);for(r=0;r<t.length;r++)W(t[r],"bubbled",e);for(r=i.length;0<r--;)W(i[r],"captured",n);return[e,n]}};function tn(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t}var nn=Object.prototype.hasOwnProperty;function rn(e,t){if(tn(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!nn.call(t,n[r])||!tn(e[n[r]],t[n[r]]))return!1;return!0}function on(e,t){return{responder:e,props:t}}function an(e){var t=e;if(e.alternate)for(;t.return;)t=t.return;else{if(0!=(2&t.effectTag))return 1;for(;t.return;)if(0!=(2&(t=t.return).effectTag))return 1}return 3===t.tag?2:3}function cn(e){if(2!==an(e))throw a(Error(188))}function sn(e){if(!(e=function(e){var t=e.alternate;if(!t){if(3===(t=an(e)))throw a(Error(188));return 1===t?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return cn(o),e;if(i===r)return cn(o),t;i=i.sibling}throw a(Error(188))}if(n.return!==r.return)n=o,r=i;else{for(var c=!1,s=o.child;s;){if(s===n){c=!0,n=o,r=i;break}if(s===r){c=!0,r=o,n=i;break}s=s.sibling}if(!c){for(s=i.child;s;){if(s===n){c=!0,n=i,r=o;break}if(s===r){c=!0,r=i,n=o;break}s=s.sibling}if(!c)throw a(Error(189))}}if(n.alternate!==r)throw a(Error(190))}if(3!==n.tag)throw a(Error(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}new Map,new Map,new Set,new Map;var ln=le.extend({animationName:null,elapsedTime:null,pseudoElement:null}),un=le.extend({clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),fn=Wt.extend({relatedTarget:null});function dn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}for(var pn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},hn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},mn=Wt.extend({key:function(e){if(e.key){var t=pn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=dn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?hn[e.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Kt,charCode:function(e){return"keypress"===e.type?dn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?dn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),vn=Xt.extend({dataTransfer:null}),yn=Wt.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Kt}),_n=le.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),gn=Xt.extend({deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),bn=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd",0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel",0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort",2],[Q,"animationEnd",2],[Z,"animationIteration",2],[ee,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress","progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[te,"transitionEnd",2],["waiting","waiting",2]],Mn={},wn={},On=0;On<bn.length;On++){var Sn=bn[On],Cn=Sn[0],xn=Sn[1],kn=Sn[2],Ln="on"+(xn[0].toUpperCase()+xn.slice(1)),En={phasedRegistrationNames:{bubbled:Ln,captured:Ln+"Capture"},dependencies:[Cn],eventPriority:kn};Mn[xn]=En,wn[Cn]=En}var Tn={eventTypes:Mn,getEventPriority:function(e){return void 0!==(e=wn[e])?e.eventPriority:2},extractEvents:function(e,t,n,r){var o=wn[e];if(!o)return null;switch(e){case"keypress":if(0===dn(n))return null;case"keydown":case"keyup":e=mn;break;case"blur":case"focus":e=fn;break;case"click":if(2===n.button)return null;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":e=Xt;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":e=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":e=yn;break;case Q:case Z:case ee:e=ln;break;case te:e=_n;break;case"scroll":e=Wt;break;case"wheel":e=gn;break;case"copy":case"cut":case"paste":e=un;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":e=Qt;break;default:e=le}return B(t=e.getPooled(o,t,n,r)),t}},Pn=Tn.getEventPriority,jn=[];function zn(e){var t=e.targetInst,n=t;do{if(!n){e.ancestors.push(n);break}var r;for(r=n;r.return;)r=r.return;if(!(r=3!==r.tag?null:r.stateNode.containerInfo))break;e.ancestors.push(n),n=H(r)}while(n);for(n=0;n<e.ancestors.length;n++){t=e.ancestors[n];var o=Fe(e.nativeEvent);r=e.topLevelType;for(var i=e.nativeEvent,a=null,c=0;c<f.length;c++){var s=f[c];s&&(s=s.extractEvents(r,t,i,o))&&(a=x(a,s))}T(a)}}var Dn=!0;function Nn(e,t){Hn(t,e,!1)}function Hn(e,t,n){switch(Pn(t)){case 0:var r=An.bind(null,t,1);break;case 1:r=Yn.bind(null,t,1);break;default:r=In.bind(null,t,1)}n?e.addEventListener(t,r,!0):e.addEventListener(t,r,!1)}function An(e,t,n){Ae||Ne();var r=In,o=Ae;Ae=!0;try{De(r,e,t,n)}finally{(Ae=o)||Ye()}}function Yn(e,t,n){In(e,t,n)}function In(e,t,n){if(Dn){if(null===(t=H(t=Fe(n)))||"number"!=typeof t.tag||2===an(t)||(t=null),jn.length){var r=jn.pop();r.topLevelType=e,r.nativeEvent=n,r.targetInst=t,e=r}else e={topLevelType:e,nativeEvent:n,targetInst:t,ancestors:[]};try{if(n=e,Ae)zn(n);else{Ae=!0;try{He(zn,n,void 0)}finally{Ae=!1,Ye()}}}finally{e.topLevelType=null,e.nativeEvent=null,e.targetInst=null,e.ancestors.length=0,10>jn.length&&jn.push(e)}}}var Vn=new("function"==typeof WeakMap?WeakMap:Map);function Fn(e){var t=Vn.get(e);return void 0===t&&(t=new Set,Vn.set(e,t)),t}function Rn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Wn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Un(e,t){var n,r=Wn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Wn(r)}}function Bn(){for(var e=window,t=Rn();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Rn((e=t.contentWindow).document)}return t}function Kn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var qn=K&&"documentMode"in document&&11>=document.documentMode,Gn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},$n=null,Jn=null,Xn=null,Qn=!1;function Zn(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return Qn||null==$n||$n!==Rn(n)?null:("selectionStart"in(n=$n)&&Kn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Xn&&rn(Xn,n)?null:(Xn=n,(e=le.getPooled(Gn.select,Jn,e,t)).type="select",e.target=$n,B(e),e))}var er={eventTypes:Gn,extractEvents:function(e,t,n,r){var o,i=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!i)){e:{i=Fn(i),o=h.onSelect;for(var a=0;a<o.length;a++)if(!i.has(o[a])){i=!1;break e}i=!0}o=!i}if(o)return null;switch(i=t?Y(t):window,e){case"focus":(Ve(i)||"true"===i.contentEditable)&&($n=i,Jn=t,Xn=null);break;case"blur":Xn=Jn=$n=null;break;case"mousedown":Qn=!0;break;case"contextmenu":case"mouseup":case"dragend":return Qn=!1,Zn(n,r);case"selectionchange":if(qn)break;case"keydown":case"keyup":return Zn(n,r)}return null}};function tr(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function nr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Mt(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function rr(e,t){if(null!=t.dangerouslySetInnerHTML)throw a(Error(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function or(e,t){var n=t.value;if(null==n){if(n=t.defaultValue,null!=(t=t.children)){if(null!=n)throw a(Error(92));if(Array.isArray(t)){if(!(1>=t.length))throw a(Error(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:Mt(n)}}function ir(e,t){var n=Mt(t.value),r=Mt(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ar(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}P.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),w=I,O=A,S=Y,P.injectEventPluginsByName({SimpleEventPlugin:Tn,EnterLeaveEventPlugin:en,ChangeEventPlugin:Rt,SelectEventPlugin:er,BeforeInputEventPlugin:xe});var cr="http://www.w3.org/1999/xhtml",sr="http://www.w3.org/2000/svg";function lr(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ur(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?lr(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var fr=void 0,dr=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==sr||"innerHTML"in e)e.innerHTML=t;else{for((fr=fr||document.createElement("div")).innerHTML="<svg>"+t+"</svg>",t=fr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function pr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var hr={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},mr=["Webkit","ms","Moz","O"];function vr(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||hr.hasOwnProperty(e)&&hr[e]?(""+t).trim():t+"px"}function yr(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=vr(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(hr).forEach((function(e){mr.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),hr[t]=hr[e]}))}));var _r=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function gr(e,t){if(t){if(_r[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw a(Error(137),e,"");if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw a(Error(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw a(Error(61))}if(null!=t.style&&"object"!=typeof t.style)throw a(Error(62),"")}}function br(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Mr(e,t){var n=Fn(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=h[t];for(var r=0;r<t.length;r++){var o=t[r];if(!n.has(o)){switch(o){case"scroll":Hn(e,"scroll",!0);break;case"focus":case"blur":Hn(e,"focus",!0),Hn(e,"blur",!0),n.add("blur"),n.add("focus");break;case"cancel":case"close":Re(o)&&Hn(e,o,!0);break;case"invalid":case"submit":case"reset":break;default:-1===ne.indexOf(o)&&Nn(o,e)}n.add(o)}}}function wr(){}var Or=null,Sr=null;function Cr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function xr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var kr="function"==typeof setTimeout?setTimeout:void 0,Lr="function"==typeof clearTimeout?clearTimeout:void 0;function Er(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}new Set;var Tr=[],Pr=-1;function jr(e){0>Pr||(e.current=Tr[Pr],Tr[Pr]=null,Pr--)}function zr(e,t){Pr++,Tr[Pr]=e.current,e.current=t}var Dr={},Nr={current:Dr},Hr={current:!1},Ar=Dr;function Yr(e,t){var n=e.type.contextTypes;if(!n)return Dr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ir(e){return null!=(e=e.childContextTypes)}function Vr(e){jr(Hr),jr(Nr)}function Fr(e){jr(Hr),jr(Nr)}function Rr(e,t,n){if(Nr.current!==Dr)throw a(Error(168));zr(Nr,t),zr(Hr,n)}function Wr(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw a(Error(108),ut(t)||"Unknown",i);return o({},n,r)}function Ur(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Dr,Ar=Nr.current,zr(Nr,t),zr(Hr,Hr.current),!0}function Br(e,t,n){var r=e.stateNode;if(!r)throw a(Error(169));n?(t=Wr(e,t,Ar),r.__reactInternalMemoizedMergedChildContext=t,jr(Hr),jr(Nr),zr(Nr,t)):jr(Hr),zr(Hr,n)}var Kr=i.unstable_runWithPriority,qr=i.unstable_scheduleCallback,Gr=i.unstable_cancelCallback,$r=i.unstable_shouldYield,Jr=i.unstable_requestPaint,Xr=i.unstable_now,Qr=i.unstable_getCurrentPriorityLevel,Zr=i.unstable_ImmediatePriority,eo=i.unstable_UserBlockingPriority,to=i.unstable_NormalPriority,no=i.unstable_LowPriority,ro=i.unstable_IdlePriority,oo={},io=void 0!==Jr?Jr:function(){},ao=null,co=null,so=!1,lo=Xr(),uo=1e4>lo?Xr:function(){return Xr()-lo};function fo(){switch(Qr()){case Zr:return 99;case eo:return 98;case to:return 97;case no:return 96;case ro:return 95;default:throw a(Error(332))}}function po(e){switch(e){case 99:return Zr;case 98:return eo;case 97:return to;case 96:return no;case 95:return ro;default:throw a(Error(332))}}function ho(e,t){return e=po(e),Kr(e,t)}function mo(e,t,n){return e=po(e),qr(e,t,n)}function vo(e){return null===ao?(ao=[e],co=qr(Zr,_o)):ao.push(e),oo}function yo(){null!==co&&Gr(co),_o()}function _o(){if(!so&&null!==ao){so=!0;var e=0;try{var t=ao;ho(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),ao=null}catch(t){throw null!==ao&&(ao=ao.slice(e+1)),qr(Zr,yo),t}finally{so=!1}}}function go(e,t){return 1073741823===t?99:1===t?95:0>=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function bo(e,t){if(e&&e.defaultProps)for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var Mo={current:null},wo=null,Oo=null,So=null;function Co(){So=Oo=wo=null}function xo(e,t){var n=e.type._context;zr(Mo,n._currentValue),n._currentValue=t}function ko(e){var t=Mo.current;jr(Mo),e.type._context._currentValue=t}function Lo(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime<t)e.childExpirationTime=t,null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t);else{if(!(null!==n&&n.childExpirationTime<t))break;n.childExpirationTime=t}e=e.return}}function Eo(e,t){wo=e,So=Oo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(e.expirationTime>=t&&(ta=!0),e.firstContext=null)}function To(e,t){if(So!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(So=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Oo){if(null===wo)throw a(Error(308));Oo=t,wo.dependencies={expirationTime:0,firstContext:t,responders:null}}else Oo=Oo.next=t;return e._currentValue}var Po=!1;function jo(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function zo(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Do(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function No(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Ho(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,o=null;null===r&&(r=e.updateQueue=jo(e.memoizedState))}else r=e.updateQueue,o=n.updateQueue,null===r?null===o?(r=e.updateQueue=jo(e.memoizedState),o=n.updateQueue=jo(n.memoizedState)):r=e.updateQueue=zo(o):null===o&&(o=n.updateQueue=zo(r));null===o||r===o?No(r,t):null===r.lastUpdate||null===o.lastUpdate?(No(r,t),No(o,t)):(No(r,t),o.lastUpdate=t)}function Ao(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=jo(e.memoizedState):Yo(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Yo(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=zo(t)),t}function Io(e,t,n,r,i,a){switch(n.tag){case 1:return"function"==typeof(e=n.payload)?e.call(a,r,i):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null==(i="function"==typeof(e=n.payload)?e.call(a,r,i):e))break;return o({},r,i);case 2:Po=!0}return r}function Vo(e,t,n,r,o){Po=!1;for(var i=(t=Yo(e,t)).baseState,a=null,c=0,s=t.firstUpdate,l=i;null!==s;){var u=s.expirationTime;u<o?(null===a&&(a=s,i=l),c<u&&(c=u)):(Mc(u,s.suspenseConfig),l=Io(e,0,s,l,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastEffect?t.firstEffect=t.lastEffect=s:(t.lastEffect.nextEffect=s,t.lastEffect=s))),s=s.next}for(u=null,s=t.firstCapturedUpdate;null!==s;){var f=s.expirationTime;f<o?(null===u&&(u=s,null===a&&(i=l)),c<f&&(c=f)):(l=Io(e,0,s,l,n,r),null!==s.callback&&(e.effectTag|=32,s.nextEffect=null,null===t.lastCapturedEffect?t.firstCapturedEffect=t.lastCapturedEffect=s:(t.lastCapturedEffect.nextEffect=s,t.lastCapturedEffect=s))),s=s.next}null===a&&(t.lastUpdate=null),null===u?t.lastCapturedUpdate=null:e.effectTag|=32,null===a&&null===u&&(i=l),t.baseState=i,t.firstUpdate=a,t.firstCapturedUpdate=u,e.expirationTime=c,e.memoizedState=l}function Fo(e,t,n){null!==t.firstCapturedUpdate&&(null!==t.lastUpdate&&(t.lastUpdate.next=t.firstCapturedUpdate,t.lastUpdate=t.lastCapturedUpdate),t.firstCapturedUpdate=t.lastCapturedUpdate=null),Ro(t.firstEffect,n),t.firstEffect=t.lastEffect=null,Ro(t.firstCapturedEffect,n),t.firstCapturedEffect=t.lastCapturedEffect=null}function Ro(e,t){for(;null!==e;){var n=e.callback;if(null!==n){e.callback=null;var r=t;if("function"!=typeof n)throw a(Error(191),n);n.call(r)}e=e.nextEffect}}var Wo=Ke.ReactCurrentBatchConfig,Uo=(new r.Component).refs;function Bo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,null!==(r=e.updateQueue)&&0===e.expirationTime&&(r.baseState=n)}var Ko={isMounted:function(e){return!!(e=e._reactInternalFiber)&&2===an(e)},enqueueSetState:function(e,t,n){e=e._reactInternalFiber;var r=sc(),o=Wo.suspense;(o=Do(r=lc(r,e,o),o)).payload=t,null!=n&&(o.callback=n),Ho(e,o),fc(e,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternalFiber;var r=sc(),o=Wo.suspense;(o=Do(r=lc(r,e,o),o)).tag=1,o.payload=t,null!=n&&(o.callback=n),Ho(e,o),fc(e,r)},enqueueForceUpdate:function(e,t){e=e._reactInternalFiber;var n=sc(),r=Wo.suspense;(r=Do(n=lc(n,e,r),r)).tag=2,null!=t&&(r.callback=t),Ho(e,r),fc(e,n)}};function qo(e,t,n,r,o,i,a){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,a):!t.prototype||!t.prototype.isPureReactComponent||(!rn(n,r)||!rn(o,i))}function Go(e,t,n){var r=!1,o=Dr,i=t.contextType;return"object"==typeof i&&null!==i?i=To(i):(o=Ir(t)?Ar:Nr.current,i=(r=null!=(r=t.contextTypes))?Yr(e,o):Dr),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ko,e.stateNode=t,t._reactInternalFiber=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function $o(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ko.enqueueReplaceState(t,t.state,null)}function Jo(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=Uo;var i=t.contextType;"object"==typeof i&&null!==i?o.context=To(i):(i=Ir(t)?Ar:Nr.current,o.context=Yr(e,i)),null!==(i=e.updateQueue)&&(Vo(e,i,n,o,r),o.state=e.memoizedState),"function"==typeof(i=t.getDerivedStateFromProps)&&(Bo(e,t,i,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Ko.enqueueReplaceState(o,o.state,null),null!==(i=e.updateQueue)&&(Vo(e,i,n,o,r),o.state=e.memoizedState)),"function"==typeof o.componentDidMount&&(e.effectTag|=4)}var Xo=Array.isArray;function Qo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){n=n._owner;var r=void 0;if(n){if(1!==n.tag)throw a(Error(309));r=n.stateNode}if(!r)throw a(Error(147),e);var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:((t=function(e){var t=r.refs;t===Uo&&(t=r.refs={}),null===e?delete t[o]:t[o]=e})._stringRef=o,t)}if("string"!=typeof e)throw a(Error(284));if(!n._owner)throw a(Error(290),e)}return e}function Zo(e,t){if("textarea"!==e.type)throw a(Error(31),"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t,"")}function ei(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.effectTag=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t,n){return(e=Yc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.effectTag=2,n):r:(t.effectTag=2,n):n}function c(t){return e&&null===t.alternate&&(t.effectTag=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function l(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Qo(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Qo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Rc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,i){return null===t||7!==t.tag?((t=Vc(n,e.mode,r,i)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case $e:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Qo(e,null,t),n.return=e,n;case Je:return(t=Rc(t,e.mode,n)).return=e,t}if(Xo(t)||lt(t))return(t=Vc(t,e.mode,n,null)).return=e,t;Zo(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case $e:return n.key===o?n.type===Xe?f(e,t,n.props.children,r,o):l(e,t,n,r):null;case Je:return n.key===o?u(e,t,n,r):null}if(Xo(n)||lt(n))return null!==o?null:f(e,t,n,r,null);Zo(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case $e:return e=e.get(null===r.key?n:r.key)||null,r.type===Xe?f(t,e,r.props.children,o,r.key):l(t,e,r,o);case Je:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Xo(r)||lt(r))return f(t,e=e.get(n)||null,r,o,null);Zo(t,r)}return null}function m(o,a,c,s){for(var l=null,u=null,f=a,m=a=0,v=null;null!==f&&m<c.length;m++){f.index>m?(v=f,f=null):v=f.sibling;var y=p(o,f,c[m],s);if(null===y){null===f&&(f=v);break}e&&f&&null===y.alternate&&t(o,f),a=i(y,a,m),null===u?l=y:u.sibling=y,u=y,f=v}if(m===c.length)return n(o,f),l;if(null===f){for(;m<c.length;m++)null!==(f=d(o,c[m],s))&&(a=i(f,a,m),null===u?l=f:u.sibling=f,u=f);return l}for(f=r(o,f);m<c.length;m++)null!==(v=h(f,o,m,c[m],s))&&(e&&null!==v.alternate&&f.delete(null===v.key?m:v.key),a=i(v,a,m),null===u?l=v:u.sibling=v,u=v);return e&&f.forEach((function(e){return t(o,e)})),l}function v(o,c,s,l){var u=lt(s);if("function"!=typeof u)throw a(Error(150));if(null==(s=u.call(s)))throw a(Error(151));for(var f=u=null,m=c,v=c=0,y=null,_=s.next();null!==m&&!_.done;v++,_=s.next()){m.index>v?(y=m,m=null):y=m.sibling;var g=p(o,m,_.value,l);if(null===g){null===m&&(m=y);break}e&&m&&null===g.alternate&&t(o,m),c=i(g,c,v),null===f?u=g:f.sibling=g,f=g,m=y}if(_.done)return n(o,m),u;if(null===m){for(;!_.done;v++,_=s.next())null!==(_=d(o,_.value,l))&&(c=i(_,c,v),null===f?u=_:f.sibling=_,f=_);return u}for(m=r(o,m);!_.done;v++,_=s.next())null!==(_=h(m,o,v,_.value,l))&&(e&&null!==_.alternate&&m.delete(null===_.key?v:_.key),c=i(_,c,v),null===f?u=_:f.sibling=_,f=_);return e&&m.forEach((function(e){return t(o,e)})),u}return function(e,r,i,s){var l="object"==typeof i&&null!==i&&i.type===Xe&&null===i.key;l&&(i=i.props.children);var u="object"==typeof i&&null!==i;if(u)switch(i.$$typeof){case $e:e:{for(u=i.key,l=r;null!==l;){if(l.key===u){if(7===l.tag?i.type===Xe:l.elementType===i.type){n(e,l.sibling),(r=o(l,i.type===Xe?i.props.children:i.props)).ref=Qo(e,l,i),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}i.type===Xe?((r=Vc(i.props.children,e.mode,s,i.key)).return=e,e=r):((s=Ic(i.type,i.key,i.props,null,e.mode,s)).ref=Qo(e,r,i),s.return=e,e=s)}return c(e);case Je:e:{for(l=i.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),(r=o(r,i.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Rc(i,e.mode,s)).return=e,e=r}return c(e)}if("string"==typeof i||"number"==typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,i)).return=e,e=r):(n(e,r),(r=Fc(i,e.mode,s)).return=e,e=r),c(e);if(Xo(i))return m(e,r,i,s);if(lt(i))return v(e,r,i,s);if(u&&Zo(e,i),void 0===i&&!l)switch(e.tag){case 1:case 0:throw e=e.type,a(Error(152),e.displayName||e.name||"Component")}return n(e,r)}}var ti=ei(!0),ni=ei(!1),ri={},oi={current:ri},ii={current:ri},ai={current:ri};function ci(e){if(e===ri)throw a(Error(174));return e}function si(e,t){zr(ai,t),zr(ii,e),zr(oi,ri);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ur(null,"");break;default:t=ur(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}jr(oi),zr(oi,t)}function li(e){jr(oi),jr(ii),jr(ai)}function ui(e){ci(ai.current);var t=ci(oi.current),n=ur(t,e.type);t!==n&&(zr(ii,e),zr(oi,n))}function fi(e){ii.current===e&&(jr(oi),jr(ii))}var di={current:0};function pi(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var hi=Ke.ReactCurrentDispatcher,mi=0,vi=null,yi=null,_i=null,gi=null,bi=null,Mi=null,wi=0,Oi=null,Si=0,Ci=!1,xi=null,ki=0;function Li(){throw a(Error(321))}function Ei(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!tn(e[n],t[n]))return!1;return!0}function Ti(e,t,n,r,o,i){if(mi=i,vi=t,_i=null!==e?e.memoizedState:null,hi.current=null===_i?Wi:Ui,t=n(r,o),Ci){do{Ci=!1,ki+=1,_i=null!==e?e.memoizedState:null,Mi=gi,Oi=bi=yi=null,hi.current=Ui,t=n(r,o)}while(Ci);xi=null,ki=0}if(hi.current=Ri,(e=vi).memoizedState=gi,e.expirationTime=wi,e.updateQueue=Oi,e.effectTag|=Si,e=null!==yi&&null!==yi.next,mi=0,Mi=bi=gi=_i=yi=vi=null,wi=0,Oi=null,Si=0,e)throw a(Error(300));return t}function Pi(){hi.current=Ri,mi=0,Mi=bi=gi=_i=yi=vi=null,wi=0,Oi=null,Si=0,Ci=!1,xi=null,ki=0}function ji(){var e={memoizedState:null,baseState:null,queue:null,baseUpdate:null,next:null};return null===bi?gi=bi=e:bi=bi.next=e,bi}function zi(){if(null!==Mi)Mi=(bi=Mi).next,_i=null!==(yi=_i)?yi.next:null;else{if(null===_i)throw a(Error(310));var e={memoizedState:(yi=_i).memoizedState,baseState:yi.baseState,queue:yi.queue,baseUpdate:yi.baseUpdate,next:null};bi=null===bi?gi=e:bi.next=e,_i=yi.next}return bi}function Di(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=zi(),n=t.queue;if(null===n)throw a(Error(311));if(n.lastRenderedReducer=e,0<ki){var r=n.dispatch;if(null!==xi){var o=xi.get(n);if(void 0!==o){xi.delete(n);var i=t.memoizedState;do{i=e(i,o.action),o=o.next}while(null!==o);return tn(i,t.memoizedState)||(ta=!0),t.memoizedState=i,t.baseUpdate===n.last&&(t.baseState=i),n.lastRenderedState=i,[i,r]}}return[t.memoizedState,r]}r=n.last;var c=t.baseUpdate;if(i=t.baseState,null!==c?(null!==r&&(r.next=null),r=c.next):r=null!==r?r.next:null,null!==r){var s=o=null,l=r,u=!1;do{var f=l.expirationTime;f<mi?(u||(u=!0,s=c,o=i),f>wi&&(wi=f)):(Mc(f,l.suspenseConfig),i=l.eagerReducer===e?l.eagerState:e(i,l.action)),c=l,l=l.next}while(null!==l&&l!==r);u||(s=c,o=i),tn(i,t.memoizedState)||(ta=!0),t.memoizedState=i,t.baseUpdate=s,t.baseState=o,n.lastRenderedState=i}return[t.memoizedState,n.dispatch]}function Hi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Oi?(Oi={lastEffect:null}).lastEffect=e.next=e:null===(t=Oi.lastEffect)?Oi.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Oi.lastEffect=e),e}function Ai(e,t,n,r){var o=ji();Si|=e,o.memoizedState=Hi(t,n,void 0,void 0===r?null:r)}function Yi(e,t,n,r){var o=zi();r=void 0===r?null:r;var i=void 0;if(null!==yi){var a=yi.memoizedState;if(i=a.destroy,null!==r&&Ei(r,a.deps))return void Hi(0,n,i,r)}Si|=e,o.memoizedState=Hi(t,n,i,r)}function Ii(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Vi(){}function Fi(e,t,n){if(!(25>ki))throw a(Error(301));var r=e.alternate;if(e===vi||null!==r&&r===vi)if(Ci=!0,e={expirationTime:mi,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===xi&&(xi=new Map),void 0===(n=xi.get(t)))xi.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var o=sc(),i=Wo.suspense;i={expirationTime:o=lc(o,e,i),suspenseConfig:i,action:n,eagerReducer:null,eagerState:null,next:null};var c=t.last;if(null===c)i.next=i;else{var s=c.next;null!==s&&(i.next=s),c.next=i}if(t.last=i,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=r(l,n);if(i.eagerReducer=r,i.eagerState=u,tn(u,l))return}catch(e){}fc(e,o)}}var Ri={readContext:To,useCallback:Li,useContext:Li,useEffect:Li,useImperativeHandle:Li,useLayoutEffect:Li,useMemo:Li,useReducer:Li,useRef:Li,useState:Li,useDebugValue:Li,useResponder:Li},Wi={readContext:To,useCallback:function(e,t){return ji().memoizedState=[e,void 0===t?null:t],e},useContext:To,useEffect:function(e,t){return Ai(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ai(4,36,Ii.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ai(4,36,e,t)},useMemo:function(e,t){var n=ji();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ji();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Fi.bind(null,vi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},ji().memoizedState=e},useState:function(e){var t=ji();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:Di,lastRenderedState:e}).dispatch=Fi.bind(null,vi,e),[t.memoizedState,e]},useDebugValue:Vi,useResponder:on},Ui={readContext:To,useCallback:function(e,t){var n=zi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ei(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:To,useEffect:function(e,t){return Yi(516,192,e,t)},useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Yi(4,36,Ii.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Yi(4,36,e,t)},useMemo:function(e,t){var n=zi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Ei(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:Ni,useRef:function(){return zi().memoizedState},useState:function(e){return Ni(Di)},useDebugValue:Vi,useResponder:on},Bi=null,Ki=null,qi=!1;function Gi(e,t){var n=Hc(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function $i(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Ji(e){if(qi){var t=Ki;if(t){var n=t;if(!$i(e,t)){if(!(t=Er(n.nextSibling))||!$i(e,t))return e.effectTag|=2,qi=!1,void(Bi=e);Gi(Bi,n)}Bi=e,Ki=Er(t.firstChild)}else e.effectTag|=2,qi=!1,Bi=e}}function Xi(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;Bi=e}function Qi(e){if(e!==Bi)return!1;if(!qi)return Xi(e),qi=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!xr(t,e.memoizedProps))for(t=Ki;t;)Gi(e,t),t=Er(t.nextSibling);return Xi(e),Ki=Bi?Er(e.stateNode.nextSibling):null,!0}function Zi(){Ki=Bi=null,qi=!1}var ea=Ke.ReactCurrentOwner,ta=!1;function na(e,t,n,r){t.child=null===e?ni(t,null,n,r):ti(t,e.child,n,r)}function ra(e,t,n,r,o){n=n.render;var i=t.ref;return Eo(t,o),r=Ti(e,t,n,r,i,o),null===e||ta?(t.effectTag|=1,na(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),ma(e,t,o))}function oa(e,t,n,r,o,i){if(null===e){var a=n.type;return"function"!=typeof a||Ac(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,null,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,ia(e,t,a,r,o,i))}return a=e.child,o<i&&(o=a.memoizedProps,(n=null!==(n=n.compare)?n:rn)(o,r)&&e.ref===t.ref)?ma(e,t,i):(t.effectTag|=1,(e=Yc(a,r)).ref=t.ref,e.return=t,t.child=e)}function ia(e,t,n,r,o,i){return null!==e&&rn(e.memoizedProps,r)&&e.ref===t.ref&&(ta=!1,o<i)?ma(e,t,i):ca(e,t,n,r,i)}function aa(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.effectTag|=128)}function ca(e,t,n,r,o){var i=Ir(n)?Ar:Nr.current;return i=Yr(t,i),Eo(t,o),n=Ti(e,t,n,r,i,o),null===e||ta?(t.effectTag|=1,na(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=o&&(e.expirationTime=0),ma(e,t,o))}function sa(e,t,n,r,o){if(Ir(n)){var i=!0;Ur(t)}else i=!1;if(Eo(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),Go(t,n,r),Jo(t,n,r,o),r=!0;else if(null===e){var a=t.stateNode,c=t.memoizedProps;a.props=c;var s=a.context,l=n.contextType;"object"==typeof l&&null!==l?l=To(l):l=Yr(t,l=Ir(n)?Ar:Nr.current);var u=n.getDerivedStateFromProps,f="function"==typeof u||"function"==typeof a.getSnapshotBeforeUpdate;f||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(c!==r||s!==l)&&$o(t,a,r,l),Po=!1;var d=t.memoizedState;s=a.state=d;var p=t.updateQueue;null!==p&&(Vo(t,p,r,a,o),s=t.memoizedState),c!==r||d!==s||Hr.current||Po?("function"==typeof u&&(Bo(t,n,u,r),s=t.memoizedState),(c=Po||qo(t,n,c,r,d,s,l))?(f||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(t.effectTag|=4)):("function"==typeof a.componentDidMount&&(t.effectTag|=4),t.memoizedProps=r,t.memoizedState=s),a.props=r,a.state=s,a.context=l,r=c):("function"==typeof a.componentDidMount&&(t.effectTag|=4),r=!1)}else a=t.stateNode,c=t.memoizedProps,a.props=t.type===t.elementType?c:bo(t.type,c),s=a.context,"object"==typeof(l=n.contextType)&&null!==l?l=To(l):l=Yr(t,l=Ir(n)?Ar:Nr.current),(f="function"==typeof(u=n.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(c!==r||s!==l)&&$o(t,a,r,l),Po=!1,s=t.memoizedState,d=a.state=s,null!==(p=t.updateQueue)&&(Vo(t,p,r,a,o),d=t.memoizedState),c!==r||s!==d||Hr.current||Po?("function"==typeof u&&(Bo(t,n,u,r),d=t.memoizedState),(u=Po||qo(t,n,c,r,s,d,l))?(f||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,d,l),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,d,l)),"function"==typeof a.componentDidUpdate&&(t.effectTag|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(t.effectTag|=256)):("function"!=typeof a.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof a.getSnapshotBeforeUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),t.memoizedProps=r,t.memoizedState=d),a.props=r,a.state=d,a.context=l,r=u):("function"!=typeof a.componentDidUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=4),"function"!=typeof a.getSnapshotBeforeUpdate||c===e.memoizedProps&&s===e.memoizedState||(t.effectTag|=256),r=!1);return la(e,t,n,r,i,o)}function la(e,t,n,r,o,i){aa(e,t);var a=0!=(64&t.effectTag);if(!r&&!a)return o&&Br(t,n,!1),ma(e,t,i);r=t.stateNode,ea.current=t;var c=a&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.effectTag|=1,null!==e&&a?(t.child=ti(t,e.child,null,i),t.child=ti(t,null,c,i)):na(e,t,c,i),t.memoizedState=r.state,o&&Br(t,n,!0),t.child}function ua(e){var t=e.stateNode;t.pendingContext?Rr(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Rr(0,t.context,!1),si(e,t.containerInfo)}var fa={};function da(e,t,n){var r,o=t.mode,i=t.pendingProps,a=di.current,c=null,s=!1;if((r=0!=(64&t.effectTag))||(r=0!=(2&a)&&(null===e||null!==e.memoizedState)),r?(c=fa,s=!0,t.effectTag&=-65):null!==e&&null===e.memoizedState||void 0===i.fallback||!0===i.unstable_avoidThisFallback||(a|=1),zr(di,a&=1),null===e)if(s){if(i=i.fallback,(e=Vc(null,o,0,null)).return=t,0==(2&t.mode))for(s=null!==t.memoizedState?t.child.child:t.child,e.child=s;null!==s;)s.return=e,s=s.sibling;(n=Vc(i,o,n,null)).return=t,e.sibling=n,o=e}else o=n=ni(t,null,i.children,n);else{if(null!==e.memoizedState)if(o=(a=e.child).sibling,s){if(i=i.fallback,(n=Yc(a,a.pendingProps)).return=t,0==(2&t.mode)&&(s=null!==t.memoizedState?t.child.child:t.child)!==a.child)for(n.child=s;null!==s;)s.return=n,s=s.sibling;(i=Yc(o,i,o.expirationTime)).return=t,n.sibling=i,o=n,n.childExpirationTime=0,n=i}else o=n=ti(t,a.child,i.children,n);else if(a=e.child,s){if(s=i.fallback,(i=Vc(null,o,0,null)).return=t,i.child=a,null!==a&&(a.return=i),0==(2&t.mode))for(a=null!==t.memoizedState?t.child.child:t.child,i.child=a;null!==a;)a.return=i,a=a.sibling;(n=Vc(s,o,n,null)).return=t,i.sibling=n,n.effectTag|=2,o=i,i.childExpirationTime=0}else n=o=ti(t,a,i.children,n);t.stateNode=e.stateNode}return t.memoizedState=c,t.child=o,n}function pa(e,t,n,r,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,last:r,tail:n,tailExpiration:0,tailMode:o}:(i.isBackwards=t,i.rendering=null,i.last=r,i.tail=n,i.tailExpiration=0,i.tailMode=o)}function ha(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(na(e,t,r.children,n),0!=(2&(r=di.current)))r=1&r|2,t.effectTag|=64;else{if(null!==e&&0!=(64&e.effectTag))e:for(e=t.child;null!==e;){if(13===e.tag){if(null!==e.memoizedState){e.expirationTime<n&&(e.expirationTime=n);var a=e.alternate;null!==a&&a.expirationTime<n&&(a.expirationTime=n),Lo(e.return,n)}}else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(zr(di,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(r=n.alternate)&&null===pi(r)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),pa(t,!1,o,n,i);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(r=o.alternate)&&null===pi(r)){t.child=o;break}r=o.sibling,o.sibling=n,n=o,o=r}pa(t,!0,n,null,i);break;case"together":pa(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ma(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),t.childExpirationTime<n)return null;if(null!==e&&t.child!==e.child)throw a(Error(153));if(null!==t.child){for(n=Yc(e=t.child,e.pendingProps,e.expirationTime),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Yc(e,e.pendingProps,e.expirationTime)).return=t;n.sibling=null}return t.child}function va(e){e.effectTag|=4}var ya,_a,ga;function ba(e,t){switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ma(e){switch(e.tag){case 1:Ir(e.type)&&Vr();var t=e.effectTag;return 2048&t?(e.effectTag=-2049&t|64,e):null;case 3:if(li(),Fr(),0!=(64&(t=e.effectTag)))throw a(Error(285));return e.effectTag=-2049&t|64,e;case 5:return fi(e),null;case 13:return jr(di),2048&(t=e.effectTag)?(e.effectTag=-2049&t|64,e):null;case 18:return null;case 19:return jr(di),null;case 4:return li(),null;case 10:return ko(e),null;default:return null}}function wa(e,t){return{value:e,source:t,stack:ft(t)}}ya=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(20===n.tag)e.appendChild(n.stateNode.instance);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},_a=function(e,t,n,r,i){var a=e.memoizedProps;if(a!==r){var c=t.stateNode;switch(ci(oi.current),e=null,n){case"input":a=wt(c,a),r=wt(c,r),e=[];break;case"option":a=tr(c,a),r=tr(c,r),e=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),e=[];break;case"textarea":a=rr(c,a),r=rr(c,r),e=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(c.onclick=wr)}gr(n,r),c=n=void 0;var s=null;for(n in a)if(!r.hasOwnProperty(n)&&a.hasOwnProperty(n)&&null!=a[n])if("style"===n){var l=a[n];for(c in l)l.hasOwnProperty(c)&&(s||(s={}),s[c]="")}else"dangerouslySetInnerHTML"!==n&&"children"!==n&&"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&"autoFocus"!==n&&(p.hasOwnProperty(n)?e||(e=[]):(e=e||[]).push(n,null));for(n in r){var u=r[n];if(l=null!=a?a[n]:void 0,r.hasOwnProperty(n)&&u!==l&&(null!=u||null!=l))if("style"===n)if(l){for(c in l)!l.hasOwnProperty(c)||u&&u.hasOwnProperty(c)||(s||(s={}),s[c]="");for(c in u)u.hasOwnProperty(c)&&l[c]!==u[c]&&(s||(s={}),s[c]=u[c])}else s||(e||(e=[]),e.push(n,s)),s=u;else"dangerouslySetInnerHTML"===n?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(e=e||[]).push(n,""+u)):"children"===n?l===u||"string"!=typeof u&&"number"!=typeof u||(e=e||[]).push(n,""+u):"suppressContentEditableWarning"!==n&&"suppressHydrationWarning"!==n&&(p.hasOwnProperty(n)?(null!=u&&Mr(i,n),e||l===u||(e=[])):(e=e||[]).push(n,u))}s&&(e=e||[]).push("style",s),i=e,(t.updateQueue=i)&&va(t)}},ga=function(e,t,n,r){n!==r&&va(t)};var Oa="function"==typeof WeakSet?WeakSet:Set;function Sa(e,t){var n=t.source,r=t.stack;null===r&&null!==n&&(r=ft(n)),null!==n&&ut(n.type),t=t.value,null!==e&&1===e.tag&&ut(e.type);try{console.error(t)}catch(e){setTimeout((function(){throw e}))}}function Ca(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Ec(e,t)}else t.current=null}function xa(e,t,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var r=n=n.next;do{if(0!=(r.tag&e)){var o=r.destroy;r.destroy=void 0,void 0!==o&&o()}0!=(r.tag&t)&&(o=r.create,r.destroy=o()),r=r.next}while(r!==n)}}function ka(e,t){switch("function"==typeof Dc&&Dc(e),e.tag){case 0:case 11:case 14:case 15:var n=e.updateQueue;if(null!==n&&null!==(n=n.lastEffect)){var r=n.next;ho(97<t?97:t,(function(){var t=r;do{var n=t.destroy;if(void 0!==n){var o=e;try{n()}catch(e){Ec(o,e)}}t=t.next}while(t!==r)}))}break;case 1:Ca(e),"function"==typeof(t=e.stateNode).componentWillUnmount&&function(e,t){try{t.props=e.memoizedProps,t.state=e.memoizedState,t.componentWillUnmount()}catch(t){Ec(e,t)}}(e,t);break;case 5:Ca(e);break;case 4:Pa(e,t)}}function La(e,t){for(var n=e;;)if(ka(n,t),null!==n.child&&4!==n.tag)n.child.return=n,n=n.child;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Ea(e){return 5===e.tag||3===e.tag||4===e.tag}function Ta(e){e:{for(var t=e.return;null!==t;){if(Ea(t)){var n=t;break e}t=t.return}throw a(Error(160))}switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw a(Error(161))}16&n.effectTag&&(pr(t,""),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Ea(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var o=e;;){var i=5===o.tag||6===o.tag;if(i||20===o.tag){var c=i?o.stateNode:o.stateNode.instance;if(n)if(r){var s=c;c=n,8===(i=t).nodeType?i.parentNode.insertBefore(s,c):i.insertBefore(s,c)}else t.insertBefore(c,n);else r?(8===(s=t).nodeType?(i=s.parentNode).insertBefore(c,s):(i=s).appendChild(c),null!=(s=s._reactRootContainer)||null!==i.onclick||(i.onclick=wr)):t.appendChild(c)}else if(4!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===e)break;for(;null===o.sibling;){if(null===o.return||o.return===e)return;o=o.return}o.sibling.return=o.return,o=o.sibling}}function Pa(e,t){for(var n=e,r=!1,o=void 0,i=void 0;;){if(!r){r=n.return;e:for(;;){if(null===r)throw a(Error(160));switch(o=r.stateNode,r.tag){case 5:i=!1;break e;case 3:case 4:o=o.containerInfo,i=!0;break e}r=r.return}r=!0}if(5===n.tag||6===n.tag)if(La(n,t),i){var c=o,s=n.stateNode;8===c.nodeType?c.parentNode.removeChild(s):c.removeChild(s)}else o.removeChild(n.stateNode);else if(20===n.tag)s=n.stateNode.instance,La(n,t),i?8===(c=o).nodeType?c.parentNode.removeChild(s):c.removeChild(s):o.removeChild(s);else if(4===n.tag){if(null!==n.child){o=n.stateNode.containerInfo,i=!0,n.child.return=n,n=n.child;continue}}else if(ka(n,t),null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;4===(n=n.return).tag&&(r=!1)}n.sibling.return=n.return,n=n.sibling}}function ja(e,t){switch(t.tag){case 0:case 11:case 14:case 15:xa(4,8,t);break;case 1:break;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps,o=null!==e?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,null!==i){for(n[N]=r,"input"===e&&"radio"===r.type&&null!=r.name&&St(n,r),br(e,o),t=br(e,r),o=0;o<i.length;o+=2){var c=i[o],s=i[o+1];"style"===c?yr(n,s):"dangerouslySetInnerHTML"===c?dr(n,s):"children"===c?pr(n,s):bt(n,c,s,t)}switch(e){case"input":Ct(n,r);break;case"textarea":ir(n,r);break;case"select":t=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(e=r.value)?nr(n,!!r.multiple,e,!1):t!==!!r.multiple&&(null!=r.defaultValue?nr(n,!!r.multiple,r.defaultValue,!0):nr(n,!!r.multiple,r.multiple?[]:"",!1))}}}break;case 6:if(null===t.stateNode)throw a(Error(162));t.stateNode.nodeValue=t.memoizedProps;break;case 3:case 12:break;case 13:if(n=t,null===t.memoizedState?r=!1:(r=!0,n=t.child,$a=uo()),null!==n)e:for(e=n;;){if(5===e.tag)i=e.stateNode,r?"function"==typeof(i=i.style).setProperty?i.setProperty("display","none","important"):i.display="none":(i=e.stateNode,o=null!=(o=e.memoizedProps.style)&&o.hasOwnProperty("display")?o.display:null,i.style.display=vr("display",o));else if(6===e.tag)e.stateNode.nodeValue=r?"":e.memoizedProps;else{if(13===e.tag&&null!==e.memoizedState){(i=e.child.sibling).return=e,e=i;continue}if(null!==e.child){e.child.return=e,e=e.child;continue}}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}za(t);break;case 19:za(t);break;case 17:case 20:break;default:throw a(Error(163))}}function za(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Oa),t.forEach((function(t){var r=Pc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}var Da="function"==typeof WeakMap?WeakMap:Map;function Na(e,t,n){(n=Do(n,null)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Xa||(Xa=!0,Qa=r),Sa(e,t)},n}function Ha(e,t,n){(n=Do(n,null)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return Sa(e,t),r(o)}}var i=e.stateNode;return null!==i&&"function"==typeof i.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Za?Za=new Set([this]):Za.add(this),Sa(e,t));var n=t.stack;this.componentDidCatch(t.value,{componentStack:null!==n?n:""})}),n}var Aa=Math.ceil,Ya=Ke.ReactCurrentDispatcher,Ia=Ke.ReactCurrentOwner,Va=0,Fa=null,Ra=null,Wa=0,Ua=0,Ba=1073741823,Ka=1073741823,qa=null,Ga=!1,$a=0,Ja=null,Xa=!1,Qa=null,Za=null,ec=!1,tc=null,nc=90,rc=0,oc=null,ic=0,ac=null,cc=0;function sc(){return 0!=(48&Va)?1073741821-(uo()/10|0):0!==cc?cc:cc=1073741821-(uo()/10|0)}function lc(e,t,n){if(0==(2&(t=t.mode)))return 1073741823;var r=fo();if(0==(4&t))return 99===r?1073741823:1073741822;if(0!=(16&Va))return Wa;if(null!==n)e=1073741821-25*(1+((1073741821-e+(0|n.timeoutMs||5e3)/10)/25|0));else switch(r){case 99:e=1073741823;break;case 98:e=1073741821-10*(1+((1073741821-e+15)/10|0));break;case 97:case 96:e=1073741821-25*(1+((1073741821-e+500)/25|0));break;case 95:e=1;break;default:throw a(Error(326))}return null!==Fa&&e===Wa&&--e,e}var uc=0;function fc(e,t){if(50<ic)throw ic=0,ac=null,a(Error(185));if(null!==(e=dc(e,t))){e.pingTime=0;var n=fo();if(1073741823===t)if(0!=(8&Va)&&0==(48&Va))for(var r=bc(e,1073741823,!0);null!==r;)r=r(!0);else pc(e,99,1073741823),0===Va&&yo();else pc(e,n,t);0==(4&Va)||98!==n&&99!==n||(null===oc?oc=new Map([[e,t]]):(void 0===(n=oc.get(e))||n>t)&&oc.set(e,t))}}function dc(e,t){e.expirationTime<t&&(e.expirationTime=t);var n=e.alternate;null!==n&&n.expirationTime<t&&(n.expirationTime=t);var r=e.return,o=null;if(null===r&&3===e.tag)o=e.stateNode;else for(;null!==r;){if(n=r.alternate,r.childExpirationTime<t&&(r.childExpirationTime=t),null!==n&&n.childExpirationTime<t&&(n.childExpirationTime=t),null===r.return&&3===r.tag){o=r.stateNode;break}r=r.return}return null!==o&&(t>o.firstPendingTime&&(o.firstPendingTime=t),0===(e=o.lastPendingTime)||t<e)&&(o.lastPendingTime=t),o}function pc(e,t,n){if(e.callbackExpirationTime<n){var r=e.callbackNode;null!==r&&r!==oo&&Gr(r),e.callbackExpirationTime=n,1073741823===n?e.callbackNode=vo(hc.bind(null,e,bc.bind(null,e,n))):(r=null,1!==n&&(r={timeout:10*(1073741821-n)-uo()}),e.callbackNode=mo(t,hc.bind(null,e,bc.bind(null,e,n)),r))}}function hc(e,t,n){var r=e.callbackNode,o=null;try{return null!==(o=t(n))?hc.bind(null,e,o):null}finally{null===o&&r===e.callbackNode&&(e.callbackNode=null,e.callbackExpirationTime=0)}}function mc(){0==(49&Va)&&(function(){if(null!==oc){var e=oc;oc=null,e.forEach((function(e,t){vo(bc.bind(null,t,e))})),yo()}}(),xc())}function vc(e,t){var n=Va;Va|=1;try{return e(t)}finally{0===(Va=n)&&yo()}}function yc(e,t,n,r){var o=Va;Va|=4;try{return ho(98,e.bind(null,t,n,r))}finally{0===(Va=o)&&yo()}}function _c(e,t){var n=Va;Va&=-2,Va|=8;try{return e(t)}finally{0===(Va=n)&&yo()}}function gc(e,t){e.finishedWork=null,e.finishedExpirationTime=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Lr(n)),null!==Ra)for(n=Ra.return;null!==n;){var r=n;switch(r.tag){case 1:var o=r.type.childContextTypes;null!=o&&Vr();break;case 3:li(),Fr();break;case 5:fi(r);break;case 4:li();break;case 13:case 19:jr(di);break;case 10:ko(r)}n=n.return}Fa=e,Ra=Yc(e.current,null),Wa=t,Ua=0,Ka=Ba=1073741823,qa=null,Ga=!1}function bc(e,t,n){if(0!=(48&Va))throw a(Error(327));if(e.firstPendingTime<t)return null;if(n&&e.finishedExpirationTime===t)return Sc.bind(null,e);if(xc(),e!==Fa||t!==Wa)gc(e,t);else if(3===Ua)if(Ga)gc(e,t);else{var r=e.lastPendingTime;if(r<t)return bc.bind(null,e,r)}if(null!==Ra){r=Va,Va|=16;var o=Ya.current;if(null===o&&(o=Ri),Ya.current=Ri,n){if(1073741823!==t){var i=sc();if(i<t)return Va=r,Co(),Ya.current=o,bc.bind(null,e,i)}}else cc=0;for(;;)try{if(n)for(;null!==Ra;)Ra=wc(Ra);else for(;null!==Ra&&!$r();)Ra=wc(Ra);break}catch(n){if(Co(),Pi(),null===(i=Ra)||null===i.return)throw gc(e,t),Va=r,n;e:{var c=e,s=i.return,l=i,u=n,f=Wa;if(l.effectTag|=1024,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var d=u,p=0!=(1&di.current);u=s;do{var h;if((h=13===u.tag)&&(null!==u.memoizedState?h=!1:h=void 0!==(h=u.memoizedProps).fallback&&(!0!==h.unstable_avoidThisFallback||!p)),h){if(null===(s=u.updateQueue)?((s=new Set).add(d),u.updateQueue=s):s.add(d),0==(2&u.mode)){u.effectTag|=64,l.effectTag&=-1957,1===l.tag&&(null===l.alternate?l.tag=17:((f=Do(1073741823,null)).tag=2,Ho(l,f))),l.expirationTime=1073741823;break e}l=c,c=f,null===(p=l.pingCache)?(p=l.pingCache=new Da,s=new Set,p.set(d,s)):void 0===(s=p.get(d))&&(s=new Set,p.set(d,s)),s.has(c)||(s.add(c),l=Tc.bind(null,l,d,c),d.then(l,l)),u.effectTag|=2048,u.expirationTime=f;break e}u=u.return}while(null!==u);u=Error((ut(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display."+ft(l))}4!==Ua&&(Ua=1),u=wa(u,l),l=s;do{switch(l.tag){case 3:l.effectTag|=2048,l.expirationTime=f,Ao(l,f=Na(l,u,f));break e;case 1:if(d=u,c=l.type,s=l.stateNode,0==(64&l.effectTag)&&("function"==typeof c.getDerivedStateFromError||null!==s&&"function"==typeof s.componentDidCatch&&(null===Za||!Za.has(s)))){l.effectTag|=2048,l.expirationTime=f,Ao(l,f=Ha(l,d,f));break e}}l=l.return}while(null!==l)}Ra=Oc(i)}if(Va=r,Co(),Ya.current=o,null!==Ra)return bc.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,function(e,t){var n=e.firstBatch;return!!(null!==n&&n._defer&&n._expirationTime>=t)&&(mo(97,(function(){return n._onComplete(),null})),!0)}(e,t))return null;switch(Fa=null,Ua){case 0:throw a(Error(328));case 1:return(r=e.lastPendingTime)<t?bc.bind(null,e,r):n?Sc.bind(null,e):(gc(e,t),vo(bc.bind(null,e,t)),null);case 2:return 1073741823===Ba&&!n&&10<(n=$a+500-uo())?Ga?(gc(e,t),bc.bind(null,e,t)):(r=e.lastPendingTime)<t?bc.bind(null,e,r):(e.timeoutHandle=kr(Sc.bind(null,e),n),null):Sc.bind(null,e);case 3:if(!n){if(Ga)return gc(e,t),bc.bind(null,e,t);if((n=e.lastPendingTime)<t)return bc.bind(null,e,n);if(1073741823!==Ka?n=10*(1073741821-Ka)-uo():1073741823===Ba?n=0:(n=10*(1073741821-Ba)-5e3,0>(n=(r=uo())-n)&&(n=0),(t=10*(1073741821-t)-r)<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Aa(n/1960))-n)&&(n=t)),10<n)return e.timeoutHandle=kr(Sc.bind(null,e),n),null}return Sc.bind(null,e);case 4:return!n&&1073741823!==Ba&&null!==qa&&(r=Ba,0>=(t=0|(o=qa).busyMinDurationMs)?t=0:(n=0|o.busyDelayMs,t=(r=uo()-(10*(1073741821-r)-(0|o.timeoutMs||5e3)))<=n?0:n+t-r),10<t)?(e.timeoutHandle=kr(Sc.bind(null,e),t),null):Sc.bind(null,e);default:throw a(Error(329))}}function Mc(e,t){e<Ba&&1<e&&(Ba=e),null!==t&&e<Ka&&1<e&&(Ka=e,qa=t)}function wc(e){var t=jc(e.alternate,e,Wa);return e.memoizedProps=e.pendingProps,null===t&&(t=Oc(e)),Ia.current=null,t}function Oc(e){Ra=e;do{var t=Ra.alternate;if(e=Ra.return,0==(1024&Ra.effectTag)){e:{var n=t,r=Wa,i=(t=Ra).pendingProps;switch(t.tag){case 2:case 16:break;case 15:case 0:break;case 1:Ir(t.type)&&Vr();break;case 3:li(),Fr(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==n&&null!==n.child||(Qi(t),t.effectTag&=-3);break;case 5:fi(t),r=ci(ai.current);var c=t.type;if(null!==n&&null!=t.stateNode)_a(n,t,c,i,r),n.ref!==t.ref&&(t.effectTag|=128);else if(i){var s=ci(oi.current);if(Qi(t)){i=void 0,c=(n=t).stateNode;var l=n.type,u=n.memoizedProps;switch(c[D]=n,c[N]=u,l){case"iframe":case"object":case"embed":Nn("load",c);break;case"video":case"audio":for(var f=0;f<ne.length;f++)Nn(ne[f],c);break;case"source":Nn("error",c);break;case"img":case"image":case"link":Nn("error",c),Nn("load",c);break;case"form":Nn("reset",c),Nn("submit",c);break;case"details":Nn("toggle",c);break;case"input":Ot(c,u),Nn("invalid",c),Mr(r,"onChange");break;case"select":c._wrapperState={wasMultiple:!!u.multiple},Nn("invalid",c),Mr(r,"onChange");break;case"textarea":or(c,u),Nn("invalid",c),Mr(r,"onChange")}for(i in gr(l,u),f=null,u)u.hasOwnProperty(i)&&(s=u[i],"children"===i?"string"==typeof s?c.textContent!==s&&(f=["children",s]):"number"==typeof s&&c.textContent!==""+s&&(f=["children",""+s]):p.hasOwnProperty(i)&&null!=s&&Mr(r,i));switch(l){case"input":Ue(c),xt(c,u,!0);break;case"textarea":Ue(c),ar(c);break;case"select":case"option":break;default:"function"==typeof u.onClick&&(c.onclick=wr)}r=f,n.updateQueue=r,null!==r&&va(t)}else{u=c,n=i,l=t,f=9===r.nodeType?r:r.ownerDocument,s===cr&&(s=lr(u)),s===cr?"script"===u?((u=f.createElement("div")).innerHTML="<script><\/script>",f=u.removeChild(u.firstChild)):"string"==typeof n.is?f=f.createElement(u,{is:n.is}):(f=f.createElement(u),"select"===u&&(u=f,n.multiple?u.multiple=!0:n.size&&(u.size=n.size))):f=f.createElementNS(s,u),(u=f)[D]=l,u[N]=n,ya(n=u,t),l=n;var d=r,h=br(c,i);switch(c){case"iframe":case"object":case"embed":Nn("load",l),r=i;break;case"video":case"audio":for(r=0;r<ne.length;r++)Nn(ne[r],l);r=i;break;case"source":Nn("error",l),r=i;break;case"img":case"image":case"link":Nn("error",l),Nn("load",l),r=i;break;case"form":Nn("reset",l),Nn("submit",l),r=i;break;case"details":Nn("toggle",l),r=i;break;case"input":Ot(l,i),r=wt(l,i),Nn("invalid",l),Mr(d,"onChange");break;case"option":r=tr(l,i);break;case"select":l._wrapperState={wasMultiple:!!i.multiple},r=o({},i,{value:void 0}),Nn("invalid",l),Mr(d,"onChange");break;case"textarea":or(l,i),r=rr(l,i),Nn("invalid",l),Mr(d,"onChange");break;default:r=i}gr(c,r),u=void 0,f=c,s=l;var m=r;for(u in m)if(m.hasOwnProperty(u)){var v=m[u];"style"===u?yr(s,v):"dangerouslySetInnerHTML"===u?null!=(v=v?v.__html:void 0)&&dr(s,v):"children"===u?"string"==typeof v?("textarea"!==f||""!==v)&&pr(s,v):"number"==typeof v&&pr(s,""+v):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(p.hasOwnProperty(u)?null!=v&&Mr(d,u):null!=v&&bt(s,u,v,h))}switch(c){case"input":Ue(l),xt(l,i,!1);break;case"textarea":Ue(l),ar(l);break;case"option":null!=i.value&&l.setAttribute("value",""+Mt(i.value));break;case"select":r=l,l=i,r.multiple=!!l.multiple,null!=(u=l.value)?nr(r,!!l.multiple,u,!1):null!=l.defaultValue&&nr(r,!!l.multiple,l.defaultValue,!0);break;default:"function"==typeof r.onClick&&(l.onclick=wr)}Cr(c,i)&&va(t),t.stateNode=n}null!==t.ref&&(t.effectTag|=128)}else if(null===t.stateNode)throw a(Error(166));break;case 6:if(n&&null!=t.stateNode)ga(0,t,n.memoizedProps,i);else{if("string"!=typeof i&&null===t.stateNode)throw a(Error(166));n=ci(ai.current),ci(oi.current),Qi(t)?(r=t.stateNode,n=t.memoizedProps,r[D]=t,r.nodeValue!==n&&va(t)):(r=t,(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(i))[D]=t,r.stateNode=n)}break;case 11:break;case 13:if(jr(di),i=t.memoizedState,0!=(64&t.effectTag)){t.expirationTime=r;break e}r=null!==i,i=!1,null===n?Qi(t):(i=null!==(c=n.memoizedState),r||null===c||null!==(c=n.child.sibling)&&(null!==(l=t.firstEffect)?(t.firstEffect=c,c.nextEffect=l):(t.firstEffect=t.lastEffect=c,c.nextEffect=null),c.effectTag=8)),r&&!i&&0!=(2&t.mode)&&(null===n&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&di.current)?0===Ua&&(Ua=2):0!==Ua&&2!==Ua||(Ua=3)),(r||i)&&(t.effectTag|=4);break;case 7:case 8:case 12:break;case 4:li();break;case 10:ko(t);break;case 9:case 14:break;case 17:Ir(t.type)&&Vr();break;case 18:break;case 19:if(jr(di),null===(i=t.memoizedState))break;if(c=0!=(64&t.effectTag),null===(l=i.rendering)){if(c)ba(i,!1);else if(0!==Ua||null!==n&&0!=(64&n.effectTag))for(n=t.child;null!==n;){if(null!==(l=pi(n))){for(t.effectTag|=64,ba(i,!1),null!==(n=l.updateQueue)&&(t.updateQueue=n,t.effectTag|=4),t.firstEffect=t.lastEffect=null,n=t.child;null!==n;)c=r,(i=n).effectTag&=2,i.nextEffect=null,i.firstEffect=null,i.lastEffect=null,null===(l=i.alternate)?(i.childExpirationTime=0,i.expirationTime=c,i.child=null,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null):(i.childExpirationTime=l.childExpirationTime,i.expirationTime=l.expirationTime,i.child=l.child,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,c=l.dependencies,i.dependencies=null===c?null:{expirationTime:c.expirationTime,firstContext:c.firstContext,responders:c.responders}),n=n.sibling;zr(di,1&di.current|2),t=t.child;break e}n=n.sibling}}else{if(!c)if(null!==(n=pi(l))){if(t.effectTag|=64,c=!0,ba(i,!0),null===i.tail&&"hidden"===i.tailMode){null!==(r=n.updateQueue)&&(t.updateQueue=r,t.effectTag|=4),null!==(t=t.lastEffect=i.lastEffect)&&(t.nextEffect=null);break}}else uo()>i.tailExpiration&&1<r&&(t.effectTag|=64,c=!0,ba(i,!1),t.expirationTime=t.childExpirationTime=r-1);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=i.last)?r.sibling=l:t.child=l,i.last=l)}if(null!==i.tail){0===i.tailExpiration&&(i.tailExpiration=uo()+500),r=i.tail,i.rendering=r,i.tail=r.sibling,i.lastEffect=t.lastEffect,r.sibling=null,n=di.current,zr(di,n=c?1&n|2:1&n),t=r;break e}break;case 20:break;default:throw a(Error(156))}t=null}if(r=Ra,1===Wa||1!==r.childExpirationTime){for(n=0,i=r.child;null!==i;)(c=i.expirationTime)>n&&(n=c),(l=i.childExpirationTime)>n&&(n=l),i=i.sibling;r.childExpirationTime=n}if(null!==t)return t;null!==e&&0==(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=Ra.firstEffect),null!==Ra.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=Ra.firstEffect),e.lastEffect=Ra.lastEffect),1<Ra.effectTag&&(null!==e.lastEffect?e.lastEffect.nextEffect=Ra:e.firstEffect=Ra,e.lastEffect=Ra))}else{if(null!==(t=Ma(Ra)))return t.effectTag&=1023,t;null!==e&&(e.firstEffect=e.lastEffect=null,e.effectTag|=1024)}if(null!==(t=Ra.sibling))return t;Ra=e}while(null!==Ra);return 0===Ua&&(Ua=4),null}function Sc(e){var t=fo();return ho(99,Cc.bind(null,e,t)),null!==tc&&mo(97,(function(){return xc(),null})),null}function Cc(e,t){if(xc(),0!=(48&Va))throw a(Error(327));var n=e.finishedWork,r=e.finishedExpirationTime;if(null===n)return null;if(e.finishedWork=null,e.finishedExpirationTime=0,n===e.current)throw a(Error(177));e.callbackNode=null,e.callbackExpirationTime=0;var o=n.expirationTime,i=n.childExpirationTime;if(o=i>o?i:o,e.firstPendingTime=o,o<e.lastPendingTime&&(e.lastPendingTime=o),e===Fa&&(Ra=Fa=null,Wa=0),1<n.effectTag?null!==n.lastEffect?(n.lastEffect.nextEffect=n,o=n.firstEffect):o=n:o=n.firstEffect,null!==o){i=Va,Va|=32,Ia.current=null,Or=Dn;var c=Bn();if(Kn(c)){if("selectionStart"in c)var s={start:c.selectionStart,end:c.selectionEnd};else e:{var l=(s=(s=c.ownerDocument)&&s.defaultView||window).getSelection&&s.getSelection();if(l&&0!==l.rangeCount){s=l.anchorNode;var u=l.anchorOffset,f=l.focusNode;l=l.focusOffset;try{s.nodeType,f.nodeType}catch(e){s=null;break e}var d=0,p=-1,h=-1,m=0,v=0,y=c,_=null;t:for(;;){for(var g;y!==s||0!==u&&3!==y.nodeType||(p=d+u),y!==f||0!==l&&3!==y.nodeType||(h=d+l),3===y.nodeType&&(d+=y.nodeValue.length),null!==(g=y.firstChild);)_=y,y=g;for(;;){if(y===c)break t;if(_===s&&++m===u&&(p=d),_===f&&++v===l&&(h=d),null!==(g=y.nextSibling))break;_=(y=_).parentNode}y=g}s=-1===p||-1===h?null:{start:p,end:h}}else s=null}s=s||{start:0,end:0}}else s=null;Sr={focusedElem:c,selectionRange:s},Dn=!1,Ja=o;do{try{for(;null!==Ja;){if(0!=(256&Ja.effectTag)){var b=Ja.alternate;switch((c=Ja).tag){case 0:case 11:case 15:xa(2,0,c);break;case 1:if(256&c.effectTag&&null!==b){var M=b.memoizedProps,w=b.memoizedState,O=c.stateNode,S=O.getSnapshotBeforeUpdate(c.elementType===c.type?M:bo(c.type,M),w);O.__reactInternalSnapshotBeforeUpdate=S}break;case 3:case 5:case 6:case 4:case 17:break;default:throw a(Error(163))}}Ja=Ja.nextEffect}}catch(e){if(null===Ja)throw a(Error(330));Ec(Ja,e),Ja=Ja.nextEffect}}while(null!==Ja);Ja=o;do{try{for(b=t;null!==Ja;){var C=Ja.effectTag;if(16&C&&pr(Ja.stateNode,""),128&C){var x=Ja.alternate;if(null!==x){var k=x.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(14&C){case 2:Ta(Ja),Ja.effectTag&=-3;break;case 6:Ta(Ja),Ja.effectTag&=-3,ja(Ja.alternate,Ja);break;case 4:ja(Ja.alternate,Ja);break;case 8:Pa(M=Ja,b),M.return=null,M.child=null,M.memoizedState=null,M.updateQueue=null,M.dependencies=null;var L=M.alternate;null!==L&&(L.return=null,L.child=null,L.memoizedState=null,L.updateQueue=null,L.dependencies=null)}Ja=Ja.nextEffect}}catch(e){if(null===Ja)throw a(Error(330));Ec(Ja,e),Ja=Ja.nextEffect}}while(null!==Ja);if(k=Sr,x=Bn(),C=k.focusedElem,b=k.selectionRange,x!==C&&C&&C.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(C.ownerDocument.documentElement,C)){null!==b&&Kn(C)&&(x=b.start,void 0===(k=b.end)&&(k=x),"selectionStart"in C?(C.selectionStart=x,C.selectionEnd=Math.min(k,C.value.length)):(k=(x=C.ownerDocument||document)&&x.defaultView||window).getSelection&&(k=k.getSelection(),M=C.textContent.length,L=Math.min(b.start,M),b=void 0===b.end?L:Math.min(b.end,M),!k.extend&&L>b&&(M=b,b=L,L=M),M=Un(C,L),w=Un(C,b),M&&w&&(1!==k.rangeCount||k.anchorNode!==M.node||k.anchorOffset!==M.offset||k.focusNode!==w.node||k.focusOffset!==w.offset)&&((x=x.createRange()).setStart(M.node,M.offset),k.removeAllRanges(),L>b?(k.addRange(x),k.extend(w.node,w.offset)):(x.setEnd(w.node,w.offset),k.addRange(x))))),x=[];for(k=C;k=k.parentNode;)1===k.nodeType&&x.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof C.focus&&C.focus(),C=0;C<x.length;C++)(k=x[C]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Sr=null,Dn=!!Or,Or=null,e.current=n,Ja=o;do{try{for(C=r;null!==Ja;){var E=Ja.effectTag;if(36&E){var T=Ja.alternate;switch(k=C,(x=Ja).tag){case 0:case 11:case 15:xa(16,32,x);break;case 1:var P=x.stateNode;if(4&x.effectTag)if(null===T)P.componentDidMount();else{var j=x.elementType===x.type?T.memoizedProps:bo(x.type,T.memoizedProps);P.componentDidUpdate(j,T.memoizedState,P.__reactInternalSnapshotBeforeUpdate)}var z=x.updateQueue;null!==z&&Fo(0,z,P);break;case 3:var D=x.updateQueue;if(null!==D){if(L=null,null!==x.child)switch(x.child.tag){case 5:L=x.child.stateNode;break;case 1:L=x.child.stateNode}Fo(0,D,L)}break;case 5:var N=x.stateNode;null===T&&4&x.effectTag&&(k=N,Cr(x.type,x.memoizedProps)&&k.focus());break;case 6:case 4:case 12:break;case 13:case 19:case 17:case 20:break;default:throw a(Error(163))}}if(128&E){var H=Ja.ref;if(null!==H){var A=Ja.stateNode;switch(Ja.tag){case 5:var Y=A;break;default:Y=A}"function"==typeof H?H(Y):H.current=Y}}512&E&&(ec=!0),Ja=Ja.nextEffect}}catch(e){if(null===Ja)throw a(Error(330));Ec(Ja,e),Ja=Ja.nextEffect}}while(null!==Ja);Ja=null,io(),Va=i}else e.current=n;if(ec)ec=!1,tc=e,rc=r,nc=t;else for(Ja=o;null!==Ja;)t=Ja.nextEffect,Ja.nextEffect=null,Ja=t;if(0!==(t=e.firstPendingTime)?pc(e,E=go(E=sc(),t),t):Za=null,"function"==typeof zc&&zc(n.stateNode,r),1073741823===t?e===ac?ic++:(ic=0,ac=e):ic=0,Xa)throw Xa=!1,e=Qa,Qa=null,e;return 0!=(8&Va)||yo(),null}function xc(){if(null===tc)return!1;var e=tc,t=rc,n=nc;return tc=null,rc=0,nc=90,ho(97<n?97:n,kc.bind(null,e,t))}function kc(e){if(0!=(48&Va))throw a(Error(331));var t=Va;for(Va|=32,e=e.current.firstEffect;null!==e;){try{var n=e;if(0!=(512&n.effectTag))switch(n.tag){case 0:case 11:case 15:xa(128,0,n),xa(0,64,n)}}catch(t){if(null===e)throw a(Error(330));Ec(e,t)}n=e.nextEffect,e.nextEffect=null,e=n}return Va=t,yo(),!0}function Lc(e,t,n){Ho(e,t=Na(e,t=wa(n,t),1073741823)),null!==(e=dc(e,1073741823))&&pc(e,99,1073741823)}function Ec(e,t){if(3===e.tag)Lc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Lc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Za||!Za.has(r))){Ho(n,e=Ha(n,e=wa(t,e),1073741823)),null!==(n=dc(n,1073741823))&&pc(n,99,1073741823);break}}n=n.return}}function Tc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),Fa===e&&Wa===n?3===Ua||2===Ua&&1073741823===Ba&&uo()-$a<500?gc(e,Wa):Ga=!0:e.lastPendingTime<n||(0!==(t=e.pingTime)&&t<n||(e.pingTime=n,e.finishedExpirationTime===n&&(e.finishedExpirationTime=0,e.finishedWork=null),pc(e,t=go(t=sc(),n),n)))}function Pc(e,t){var n=e.stateNode;null!==n&&n.delete(t),n=go(n=sc(),t=lc(n,e,null)),null!==(e=dc(e,t))&&pc(e,n,t)}var jc=void 0;jc=function(e,t,n){var r=t.expirationTime;if(null!==e){var o=t.pendingProps;if(e.memoizedProps!==o||Hr.current)ta=!0;else if(r<n){switch(ta=!1,t.tag){case 3:ua(t),Zi();break;case 5:if(ui(t),4&t.mode&&1!==n&&o.hidden)return t.expirationTime=t.childExpirationTime=1,null;break;case 1:Ir(t.type)&&Ur(t);break;case 4:si(t,t.stateNode.containerInfo);break;case 10:xo(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!==(r=t.child.childExpirationTime)&&r>=n?da(e,t,n):(zr(di,1&di.current),null!==(t=ma(e,t,n))?t.sibling:null);zr(di,1&di.current);break;case 19:if(r=t.childExpirationTime>=n,0!=(64&e.effectTag)){if(r)return ha(e,t,n);t.effectTag|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null),zr(di,di.current),!r)return null}return ma(e,t,n)}}else ta=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,o=Yr(t,Nr.current),Eo(t,n),o=Ti(null,t,r,e,o,n),t.effectTag|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,Pi(),Ir(r)){var i=!0;Ur(t)}else i=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null;var c=r.getDerivedStateFromProps;"function"==typeof c&&Bo(t,r,c,e),o.updater=Ko,t.stateNode=o,o._reactInternalFiber=t,Jo(t,r,e,n),t=la(null,t,r,!0,i,n)}else t.tag=0,na(null,t,o,n),t=t.child;return t;case 16:switch(o=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,o=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)})),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(o),t.type=o,i=t.tag=function(e){if("function"==typeof e)return Ac(e)?1:0;if(null!=e){if((e=e.$$typeof)===rt)return 11;if(e===at)return 14}return 2}(o),e=bo(o,e),i){case 0:t=ca(null,t,o,e,n);break;case 1:t=sa(null,t,o,e,n);break;case 11:t=ra(null,t,o,e,n);break;case 14:t=oa(null,t,o,bo(o.type,e),r,n);break;default:throw a(Error(306),o,"")}return t;case 0:return r=t.type,o=t.pendingProps,ca(e,t,r,o=t.elementType===r?o:bo(r,o),n);case 1:return r=t.type,o=t.pendingProps,sa(e,t,r,o=t.elementType===r?o:bo(r,o),n);case 3:if(ua(t),null===(r=t.updateQueue))throw a(Error(282));return o=null!==(o=t.memoizedState)?o.element:null,Vo(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===o?(Zi(),t=ma(e,t,n)):(o=t.stateNode,(o=(null===e||null===e.child)&&o.hydrate)&&(Ki=Er(t.stateNode.containerInfo.firstChild),Bi=t,o=qi=!0),o?(t.effectTag|=2,t.child=ni(t,null,r,n)):(na(e,t,r,n),Zi()),t=t.child),t;case 5:return ui(t),null===e&&Ji(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,c=o.children,xr(r,o)?c=null:null!==i&&xr(r,i)&&(t.effectTag|=16),aa(e,t),4&t.mode&&1!==n&&o.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(na(e,t,c,n),t=t.child),t;case 6:return null===e&&Ji(t),null;case 13:return da(e,t,n);case 4:return si(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ti(t,null,r,n):na(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ra(e,t,r,o=t.elementType===r?o:bo(r,o),n);case 7:return na(e,t,t.pendingProps,n),t.child;case 8:case 12:return na(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,c=t.memoizedProps,xo(t,i=o.value),null!==c){var s=c.value;if(0===(i=tn(s,i)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,i):1073741823))){if(c.children===o.children&&!Hr.current){t=ma(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var l=s.dependencies;if(null!==l){c=s.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&i)){1===s.tag&&((u=Do(n,null)).tag=2,Ho(s,u)),s.expirationTime<n&&(s.expirationTime=n),null!==(u=s.alternate)&&u.expirationTime<n&&(u.expirationTime=n),Lo(s.return,n),l.expirationTime<n&&(l.expirationTime=n);break}u=u.next}}else c=10===s.tag&&s.type===t.type?null:s.child;if(null!==c)c.return=s;else for(c=s;null!==c;){if(c===t){c=null;break}if(null!==(s=c.sibling)){s.return=c.return,c=s;break}c=c.return}s=c}}na(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(i=t.pendingProps).children,Eo(t,n),r=r(o=To(o,i.unstable_observedBits)),t.effectTag|=1,na(e,t,r,n),t.child;case 14:return i=bo(o=t.type,t.pendingProps),oa(e,t,o,i=bo(o.type,i),r,n);case 15:return ia(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:bo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),t.tag=1,Ir(r)?(e=!0,Ur(t)):e=!1,Eo(t,n),Go(t,r,o),Jo(t,r,o,n),la(null,t,r,!0,e,n);case 19:return ha(e,t,n)}throw a(Error(156))};var zc=null,Dc=null;function Nc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Hc(e,t,n,r){return new Nc(e,t,n,r)}function Ac(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Yc(e,t){var n=e.alternate;return null===n?((n=Hc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.effectTag=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childExpirationTime=e.childExpirationTime,n.expirationTime=e.expirationTime,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{expirationTime:t.expirationTime,firstContext:t.firstContext,responders:t.responders},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ic(e,t,n,r,o,i){var c=2;if(r=e,"function"==typeof e)Ac(e)&&(c=1);else if("string"==typeof e)c=5;else e:switch(e){case Xe:return Vc(n.children,o,i,t);case nt:c=8,o|=7;break;case Qe:c=8,o|=1;break;case Ze:return(e=Hc(12,n,t,8|o)).elementType=Ze,e.type=Ze,e.expirationTime=i,e;case ot:return(e=Hc(13,n,t,o)).type=ot,e.elementType=ot,e.expirationTime=i,e;case it:return(e=Hc(19,n,t,o)).elementType=it,e.expirationTime=i,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case et:c=10;break e;case tt:c=9;break e;case rt:c=11;break e;case at:c=14;break e;case ct:c=16,r=null;break e}throw a(Error(130),null==e?e:typeof e,"")}return(t=Hc(c,n,t,o)).elementType=e,t.type=r,t.expirationTime=i,t}function Vc(e,t,n,r){return(e=Hc(7,e,r,t)).expirationTime=n,e}function Fc(e,t,n){return(e=Hc(6,e,null,t)).expirationTime=n,e}function Rc(e,t,n){return(t=Hc(4,null!==e.children?e.children:[],e.key,t)).expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Wc(e,t,n){this.tag=t,this.current=null,this.containerInfo=e,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=this.firstBatch=null,this.pingTime=this.lastPendingTime=this.firstPendingTime=this.callbackExpirationTime=0}function Uc(e,t,n){return e=new Wc(e,t,n),t=Hc(3,null,null,2===t?7:1===t?3:0),e.current=t,t.stateNode=e}function Bc(e,t,n,r,o,i){var c=t.current;e:if(n){t:{if(2!==an(n=n._reactInternalFiber)||1!==n.tag)throw a(Error(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(Ir(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw a(Error(171))}if(1===n.tag){var l=n.type;if(Ir(l)){n=Wr(n,l,s);break e}}n=s}else n=Dr;return null===t.context?t.context=n:t.pendingContext=n,t=i,(o=Do(r,o)).payload={element:e},null!==(t=void 0===t?null:t)&&(o.callback=t),Ho(c,o),fc(c,r),r}function Kc(e,t,n,r){var o=t.current,i=sc(),a=Wo.suspense;return Bc(e,t,n,o=lc(i,o,a),a,r)}function qc(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Gc(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Je,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function $c(e){var t=1073741821-25*(1+((1073741821-sc()+500)/25|0));t<=uc&&--t,this._expirationTime=uc=t,this._root=e,this._callbacks=this._next=null,this._hasChildren=this._didComplete=!1,this._children=null,this._defer=!0}function Jc(){this._callbacks=null,this._didCommit=!1,this._onCommit=this._onCommit.bind(this)}function Xc(e,t,n){this._internalRoot=Uc(e,t,n)}function Qc(e,t){this._internalRoot=Uc(e,2,t)}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function es(e,t,n,r,o){var i=n._reactRootContainer,a=void 0;if(i){if(a=i._internalRoot,"function"==typeof o){var c=o;o=function(){var e=qc(a);c.call(e)}}Kc(t,a,e,o)}else{if(i=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Xc(e,0,t)}(n,r),a=i._internalRoot,"function"==typeof o){var s=o;o=function(){var e=qc(a);s.call(e)}}_c((function(){Kc(t,a,e,o)}))}return qc(a)}function ts(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(t))throw a(Error(200));return Gc(e,t,null,n)}ke=function(e,t,n){switch(t){case"input":if(Ct(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=I(r);if(!o)throw a(Error(90));Be(r),Ct(r,o)}}}break;case"textarea":ir(e,n);break;case"select":null!=(t=n.value)&&nr(e,!!n.multiple,t,!1)}},$c.prototype.render=function(e){if(!this._defer)throw a(Error(250));this._hasChildren=!0,this._children=e;var t=this._root._internalRoot,n=this._expirationTime,r=new Jc;return Bc(e,t,null,n,null,r._onCommit),r},$c.prototype.then=function(e){if(this._didComplete)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},$c.prototype.commit=function(){var e=this._root._internalRoot,t=e.firstBatch;if(!this._defer||null===t)throw a(Error(251));if(this._hasChildren){var n=this._expirationTime;if(t!==this){this._hasChildren&&(n=this._expirationTime=t._expirationTime,this.render(this._children));for(var r=null,o=t;o!==this;)r=o,o=o._next;if(null===r)throw a(Error(251));r._next=o._next,this._next=t,e.firstBatch=this}if(this._defer=!1,t=n,0!=(48&Va))throw a(Error(253));vo(bc.bind(null,e,t)),yo(),t=this._next,this._next=null,null!==(t=e.firstBatch=t)&&t._hasChildren&&t.render(t._children)}else this._next=null,this._defer=!1},$c.prototype._onComplete=function(){if(!this._didComplete){this._didComplete=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++)(0,e[t])()}},Jc.prototype.then=function(e){if(this._didCommit)e();else{var t=this._callbacks;null===t&&(t=this._callbacks=[]),t.push(e)}},Jc.prototype._onCommit=function(){if(!this._didCommit){this._didCommit=!0;var e=this._callbacks;if(null!==e)for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)throw a(Error(191),n);n()}}},Qc.prototype.render=Xc.prototype.render=function(e,t){var n=this._internalRoot,r=new Jc;return null!==(t=void 0===t?null:t)&&r.then(t),Kc(e,n,null,r._onCommit),r},Qc.prototype.unmount=Xc.prototype.unmount=function(e){var t=this._internalRoot,n=new Jc;return null!==(e=void 0===e?null:e)&&n.then(e),Kc(null,t,null,n._onCommit),n},Qc.prototype.createBatch=function(){var e=new $c(this),t=e._expirationTime,n=this._internalRoot,r=n.firstBatch;if(null===r)n.firstBatch=e,e._next=null;else{for(n=null;null!==r&&r._expirationTime>=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},ze=vc,De=yc,Ne=mc,He=function(e,t){var n=Va;Va|=2;try{return e(t)}finally{0===(Va=n)&&yo()}};var ns,rs,os={createPortal:ts,findDOMNode:function(e){if(null==e)e=null;else if(1!==e.nodeType){var t=e._reactInternalFiber;if(void 0===t){if("function"==typeof e.render)throw a(Error(188));throw a(Error(268),Object.keys(e))}e=null===(e=sn(t))?null:e.stateNode}return e},hydrate:function(e,t,n){if(!Zc(t))throw a(Error(200));return es(null,e,t,!0,n)},render:function(e,t,n){if(!Zc(t))throw a(Error(200));return es(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!Zc(n))throw a(Error(200));if(null==e||void 0===e._reactInternalFiber)throw a(Error(38));return es(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!Zc(e))throw a(Error(40));return!!e._reactRootContainer&&(_c((function(){es(null,null,e,!1,(function(){e._reactRootContainer=null}))})),!0)},unstable_createPortal:function(){return ts.apply(void 0,arguments)},unstable_batchedUpdates:vc,unstable_interactiveUpdates:function(e,t,n,r){return mc(),yc(e,t,n,r)},unstable_discreteUpdates:yc,unstable_flushDiscreteUpdates:mc,flushSync:function(e,t){if(0!=(48&Va))throw a(Error(187));var n=Va;Va|=1;try{return ho(99,e.bind(null,t))}finally{Va=n,yo()}},unstable_createRoot:function(e,t){if(!Zc(e))throw a(Error(299),"unstable_createRoot");return new Qc(e,null!=t&&!0===t.hydrate)},unstable_createSyncRoot:function(e,t){if(!Zc(e))throw a(Error(299),"unstable_createRoot");return new Xc(e,1,null!=t&&!0===t.hydrate)},unstable_flushControlled:function(e){var t=Va;Va|=1;try{ho(99,e)}finally{0===(Va=t)&&yo()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[A,Y,I,P.injectEventPluginsByName,d,B,function(e){k(e,U)},Pe,je,In,T,xc,{current:!1}]}};rs=(ns={findFiberByHostInstance:H,bundleType:0,version:"16.9.0",rendererPackageName:"react-dom"}).findFiberByHostInstance,function(e){if("undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);zc=function(e){try{t.onCommitFiberRoot(n,e,void 0,64==(64&e.current.effectTag))}catch(e){}},Dc=function(e){try{t.onCommitFiberUnmount(n,e)}catch(e){}}}catch(e){}}(o({},ns,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Ke.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=sn(e))?null:e.stateNode},findFiberByHostInstance:function(e){return rs?rs(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}));var is={default:os},as=is&&os||is;e.exports=as.default||as},function(e,t,n){"use strict";e.exports=n(521)},function(e,t,n){"use strict"; /** @license React v0.15.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Object.defineProperty(t,"__esModule",{value:!0});var r=void 0,o=void 0,i=void 0,a=void 0,c=void 0;if(t.unstable_now=void 0,t.unstable_forceFrameRate=void 0,"undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,l=null,u=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(e){throw setTimeout(u,0),e}};t.unstable_now=function(){return Date.now()},r=function(e){null!==s?setTimeout(r,0,e):(s=e,setTimeout(u,0))},o=function(e,t){l=setTimeout(e,t)},i=function(){clearTimeout(l)},a=function(){return!1},c=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,d=window.Date,p=window.setTimeout,h=window.clearTimeout,m=window.requestAnimationFrame,v=window.cancelAnimationFrame;"undefined"!=typeof console&&("function"!=typeof m&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof v&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),t.unstable_now="object"==typeof f&&"function"==typeof f.now?function(){return f.now()}:function(){return d.now()};var y=!1,_=null,g=-1,b=-1,M=33.33,w=-1,O=-1,S=0,C=!1;a=function(){return t.unstable_now()>=S},c=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported"):0<e?(M=Math.floor(1e3/e),C=!0):(M=33.33,C=!1)};var x=function(){if(null!==_){var e=t.unstable_now(),n=0<S-e;try{_(n,e)||(_=null)}catch(e){throw L.postMessage(null),e}}},k=new MessageChannel,L=k.port2;k.port1.onmessage=x;var E=function(e){if(null===_)O=w=-1,y=!1;else{y=!0,m((function(e){h(g),E(e)}));var n=function(){S=t.unstable_now()+M/2,x(),g=p(n,3*M)};if(g=p(n,3*M),-1!==w&&.1<e-w){var r=e-w;!C&&-1!==O&&r<M&&O<M&&(8.33>(M=r<O?O:r)&&(M=8.33)),O=r}w=e,S=e+M,L.postMessage(null)}};r=function(e){_=e,y||(y=!0,m((function(e){E(e)})))},o=function(e,n){b=p((function(){e(t.unstable_now())}),n)},i=function(){h(b),b=-1}}var T=null,P=null,j=null,z=3,D=!1,N=!1,H=!1;function A(e,t){var n=e.next;if(n===e)T=null;else{e===T&&(T=n);var r=e.previous;r.next=n,n.previous=r}e.next=e.previous=null,n=e.callback,r=z;var o=j;z=e.priorityLevel,j=e;try{var i=e.expirationTime<=t;switch(z){case 1:var a=n(i);break;case 2:case 3:case 4:a=n(i);break;case 5:a=n(i)}}catch(e){throw e}finally{z=r,j=o}if("function"==typeof a)if(t=e.expirationTime,e.callback=a,null===T)T=e.next=e.previous=e;else{a=null,i=T;do{if(t<=i.expirationTime){a=i;break}i=i.next}while(i!==T);null===a?a=T:a===T&&(T=e),(t=a.previous).next=a.previous=e,e.next=a,e.previous=t}}function Y(e){if(null!==P&&P.startTime<=e)do{var t=P,n=t.next;if(t===n)P=null;else{P=n;var r=t.previous;r.next=n,n.previous=r}t.next=t.previous=null,R(t,t.expirationTime)}while(null!==P&&P.startTime<=e)}function I(e){H=!1,Y(e),N||(null!==T?(N=!0,r(V)):null!==P&&o(I,P.startTime-e))}function V(e,n){N=!1,H&&(H=!1,i()),Y(n),D=!0;try{if(e){if(null!==T)do{A(T,n),Y(n=t.unstable_now())}while(null!==T&&!a())}else for(;null!==T&&T.expirationTime<=n;)A(T,n),Y(n=t.unstable_now());return null!==T||(null!==P&&o(I,P.startTime-n),!1)}finally{D=!1}}function F(e){switch(e){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}function R(e,t){if(null===T)T=e.next=e.previous=e;else{var n=null,r=T;do{if(t<r.expirationTime){n=r;break}r=r.next}while(r!==T);null===n?n=T:n===T&&(T=e),(t=n.previous).next=n.previous=e,e.next=n,e.previous=t}}var W=c;t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=z;z=e;try{return t()}finally{z=n}},t.unstable_next=function(e){switch(z){case 1:case 2:case 3:var t=3;break;default:t=z}var n=z;z=t;try{return e()}finally{z=n}},t.unstable_scheduleCallback=function(e,n,a){var c=t.unstable_now();if("object"==typeof a&&null!==a){var s=a.delay;s="number"==typeof s&&0<s?c+s:c,a="number"==typeof a.timeout?a.timeout:F(e)}else a=F(e),s=c;if(e={callback:n,priorityLevel:e,startTime:s,expirationTime:a=s+a,next:null,previous:null},s>c){if(a=s,null===P)P=e.next=e.previous=e;else{n=null;var l=P;do{if(a<l.startTime){n=l;break}l=l.next}while(l!==P);null===n?n=P:n===P&&(P=e),(a=n.previous).next=n.previous=e,e.next=n,e.previous=a}null===T&&P===e&&(H?i():H=!0,o(I,s-c))}else R(e,a),N||D||(N=!0,r(V));return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(e===t)e===T?T=null:e===P&&(P=null);else{e===T?T=t:e===P&&(P=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var t=z;return function(){var n=z;z=t;try{return e.apply(this,arguments)}finally{z=n}}},t.unstable_getCurrentPriorityLevel=function(){return z},t.unstable_shouldYield=function(){var e=t.unstable_now();return Y(e),null!==j&&null!==T&&T.startTime<=e&&T.expirationTime<j.expirationTime||a()},t.unstable_requestPaint=W,t.unstable_continueExecution=function(){N||D||(N=!0,r(V))},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return T}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";var r=n(534);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){e.exports={default:n(536),__esModule:!0}},function(e,t,n){n(537),e.exports=n(62).Object.assign},function(e,t,n){var r=n(93);r(r.S+r.F,"Object",{assign:n(539)})},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=n(84),o=n(130),i=n(172),a=n(133),c=n(134),s=n(241),l=Object.assign;e.exports=!l||n(116)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=r}))?function(e,t){for(var n=c(e),l=arguments.length,u=1,f=i.f,d=a.f;l>u;)for(var p,h=s(arguments[u++]),m=f?o(h).concat(f(h)):o(h),v=m.length,y=0;v>y;)p=m[y++],r&&!d.call(h,p)||(n[p]=h[p]);return n}:l},function(e,t,n){var r=n(106),o=n(242),i=n(541);e.exports=function(e){return function(t,n,a){var c,s=r(t),l=o(s.length),u=i(a,l);if(e&&n!=n){for(;l>u;)if((c=s[u++])!=c)return!0}else for(;l>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(168),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="0 0 1024 1024",o="64 64 896 896",i="fill",a="outline",c="twotone";function s(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return{tag:"svg",attrs:{viewBox:e,focusable:!1},children:t.map((function(e){return Array.isArray(e)?{tag:"path",attrs:{fill:e[0],d:e[1]}}:{tag:"path",attrs:{d:e}}}))}}function l(e,t,n){return{name:e,theme:t,icon:n}}t.AccountBookFill=l("account-book",i,s(o,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.AlertFill=l("alert",i,s(o,"M512 244c176.18 0 319 142.82 319 319v233a32 32 0 0 1-32 32H225a32 32 0 0 1-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 0 1 8 8v96a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8V76a8 8 0 0 1 8-8zM177.25 191.66a8 8 0 0 1 11.32 0l67.88 67.88a8 8 0 0 1 0 11.31l-39.6 39.6a8 8 0 0 1-11.31 0l-67.88-67.88a8 8 0 0 1 0-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 0 1 0 11.3l-67.88 67.9a8 8 0 0 1-11.32 0l-39.6-39.6a8 8 0 0 1 0-11.32l67.89-67.88a8 8 0 0 1 11.31 0zM192 892h640a32 32 0 0 1 32 32v24a8 8 0 0 1-8 8H168a8 8 0 0 1-8-8v-24a32 32 0 0 1 32-32zm148-317v253h64V575h-64z")),t.AlipaySquareFill=l("alipay-square",i,s(o,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z")),t.AliwangwangFill=l("aliwangwang",i,s(o,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z")),t.AlipayCircleFill=l("alipay-circle",i,s(o,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AmazonCircleFill=l("amazon-circle",i,s(o,"M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z")),t.AndroidFill=l("android",i,s(o,"M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm208.4 0a26.9 26.9 0 1 1 26.9-26.9 26.97 26.97 0 0 1-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z")),t.AmazonSquareFill=l("amazon-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 0 0-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0 1 25.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 0 1 7.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 0 1-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z")),t.ApiFill=l("api",i,s(o,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z")),t.AppstoreFill=l("appstore",i,s(o,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z")),t.AudioFill=l("audio",i,s(o,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z")),t.AppleFill=l("apple",i,s(o,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardFill=l("backward",i,s(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankFill=l("bank",i,s(o,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z")),t.BehanceCircleFill=l("behance-circle",i,s(o,"M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0 0 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z")),t.BellFill=l("bell",i,s(o,"M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z")),t.BehanceSquareFill=l("behance-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookFill=l("book",i,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z")),t.BoxPlotFill=l("box-plot",i,s(o,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z")),t.BugFill=l("bug",i,s(o,"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 0 0 123.2-149.5A120.4 120.4 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.CalculatorFill=l("calculator",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z")),t.BulbFill=l("bulb",i,s(o,"M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z")),t.BuildFill=l("build",i,s(o,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarFill=l("calendar",i,s(o,"M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z")),t.CameraFill=l("camera",i,s(o,"M864 260H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 1 0 192 0 96 96 0 1 0-192 0z")),t.CarFill=l("car",i,s(o,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z")),t.CaretDownFill=l("caret-down",i,s(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftFill=l("caret-left",i,s(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightFill=l("caret-right",i,s(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutFill=l("carry-out",i,s(o,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.CaretUpFill=l("caret-up",i,s(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckCircleFill=l("check-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z")),t.CheckSquareFill=l("check-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z")),t.ChromeFill=l("chrome",i,s(o,"M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0 0 96 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z")),t.CiCircleFill=l("ci-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z")),t.ClockCircleFill=l("clock-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z")),t.CloseCircleFill=l("close-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 0 1-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z")),t.CloudFill=l("cloud",i,s(o,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z")),t.CloseSquareFill=l("close-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z")),t.CodeSandboxSquareFill=l("code-sandbox-square",i,s(o,"M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z")),t.CodeSandboxCircleFill=l("code-sandbox-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z")),t.CodeFill=l("code",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z")),t.CompassFill=l("compass",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z")),t.CodepenCircleFill=l("codepen-circle",i,s(o,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CodepenSquareFill=l("codepen-square",i,s(o,"M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z")),t.ContactsFill=l("contacts",i,s(o,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z")),t.ControlFill=l("control",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z")),t.ContainerFill=l("container",i,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z")),t.CopyFill=l("copy",i,s(o,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z")),t.CopyrightCircleFill=l("copyright-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z")),t.CreditCardFill=l("credit-card",i,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z")),t.CrownFill=l("crown",i,s(o,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z")),t.CustomerServiceFill=l("customer-service",i,s(o,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z")),t.DashboardFill=l("dashboard",i,s(o,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 0 1-11.3 0L261.7 352a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z")),t.DeleteFill=l("delete",i,s(o,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z")),t.DiffFill=l("diff",i,s(o,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z")),t.DingtalkCircleFill=l("dingtalk-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DatabaseFill=l("database",i,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z")),t.DingtalkSquareFill=l("dingtalk-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z")),t.DislikeFill=l("dislike",i,s(o,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z")),t.DollarCircleFill=l("dollar-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z")),t.DownCircleFill=l("down-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DownSquareFill=l("down-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z")),t.DribbbleCircleFill=l("dribbble-circle",i,s(o,"M675.1 328.3a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z")),t.DribbbleSquareFill=l("dribbble-square",i,s(o,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.DropboxCircleFill=l("dropbox-circle",i,s(o,"M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z")),t.DropboxSquareFill=l("dropbox-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z")),t.EnvironmentFill=l("environment",i,s(o,"M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 0 0 400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 0 0 512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.EditFill=l("edit",i,s(o,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z")),t.ExclamationCircleFill=l("exclamation-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.EuroCircleFill=l("euro-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z")),t.ExperimentFill=l("experiment",i,s(o,"M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0 0 94.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 0 1 164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0 0 36.6-82.5z")),t.EyeInvisibleFill=l("eye-invisible",i,s(o,"M508 624a112 112 0 0 0 112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 0 0-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 0 0 0 11.31L155.25 889a8 8 0 0 0 11.31 0l712.16-712.12a8 8 0 0 0 0-11.32zM332 512a176 176 0 0 1 258.88-155.28l-48.62 48.62a112.08 112.08 0 0 0-140.92 140.92l-48.62 48.62A175.09 175.09 0 0 1 332 512z","M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 0 1 445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z")),t.EyeFill=l("eye",i,s(o,"M396 512a112 112 0 1 0 224 0 112 112 0 1 0-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z")),t.FacebookFill=l("facebook",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z")),t.FastBackwardFill=l("fast-backward",i,s(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardFill=l("fast-forward",i,s(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddFill=l("file-add",i,s(o,"M480 580H372a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h108v108a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8V644h108a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H544V472a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FileExcelFill=l("file-excel",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 0 0-10.27-5.79h-38.44a12 12 0 0 0-6.4 1.85 12 12 0 0 0-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 0 0-1.84 6.39 12 12 0 0 0 12 12h34.46a12 12 0 0 0 10.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0 0 10.23 5.72h37.48a12 12 0 0 0 6.48-1.9 12 12 0 0 0 3.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 0 0 1.9-6.5 12 12 0 0 0-12-12h-35.7a12 12 0 0 0-10.29 5.84z")),t.FileExclamationFill=l("file-exclamation",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 1 0 0-80 40 40 0 0 0 0 80zm32-152V448a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v184a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8z")),t.FileImageFill=l("file-image",i,s(o,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8 8 0 0 1 12.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z")),t.FileMarkdownFill=l("file-markdown",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0 0 14.62 9.5h24.06a16 16 0 0 0 14.63-9.51l59.1-133.35V758a16 16 0 0 0 16.01 16H641a16 16 0 0 0 16-16V486a16 16 0 0 0-16-16h-34.75a16 16 0 0 0-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 0 0-14.67-9.61H383a16 16 0 0 0-16 16v272a16 16 0 0 0 16 16h27.13a16 16 0 0 0 16-16V600.93z")),t.FilePdfFill=l("file-pdf",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 0 1 5.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 0 1-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 0 1-1.12-.15 2.07 2.07 0 0 1-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 0 1-1.36 6.31 6.7 6.7 0 0 1-2.17 1.28z")),t.FilePptFill=l("file-ppt",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 0 0-12 12v276a12 12 0 0 0 12 12h32.53a12 12 0 0 0 12-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z")),t.FileTextFill=l("file-text",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h384a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320zm0 136a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h184a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8H320z")),t.FileWordFill=l("file-word",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0 0 11.6 8.9h31.77a12 12 0 0 0 11.6-8.88l74.37-276a12 12 0 0 0 .4-3.12 12 12 0 0 0-12-12h-35.57a12 12 0 0 0-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 0 0 528.1 472h-32.2a12 12 0 0 0-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 0 0-11.68-9.29h-35.39a12 12 0 0 0-3.11.41 12 12 0 0 0-8.47 14.7l74.17 276A12 12 0 0 0 415.6 772h31.99a12 12 0 0 0 11.59-8.9l52.81-197z")),t.FileUnknownFill=l("file-unknown",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 1 0 0-64 32 32 0 0 0 0 64z")),t.FileZipFill=l("file-zip",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z")),t.FileFill=l("file",i,s(o,"M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z")),t.FilterFill=l("filter",i,s(o,"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z")),t.FireFill=l("fire",i,s(o,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9z")),t.FlagFill=l("flag",i,s(o,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z")),t.FolderAddFill=l("folder-add",i,s(o,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z")),t.FolderFill=l("folder",i,s(o,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z")),t.FolderOpenFill=l("folder-open",i,s(o,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z")),t.ForwardFill=l("forward",i,s(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownFill=l("frown",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FundFill=l("fund",i,s(o,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 0 1-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 0 1-11.3 0l-36.8-36.8a8.03 8.03 0 0 1 0-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z")),t.FunnelPlotFill=l("funnel-plot",i,s(o,"M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z")),t.GiftFill=l("gift",i,s(o,"M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z")),t.GithubFill=l("github",i,s(o,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabFill=l("gitlab",i,s(o,"M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z")),t.GoldenFill=l("golden",i,s(o,"M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z")),t.GoogleCircleFill=l("google-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.GooglePlusCircleFill=l("google-plus-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GooglePlusSquareFill=l("google-plus-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z")),t.GoogleSquareFill=l("google-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 0 1 272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z")),t.HddFill=l("hdd",i,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z")),t.HeartFill=l("heart",i,s(o,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z")),t.HighlightFill=l("highlight",i,s(o,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z")),t.HomeFill=l("home",i,s(o,"M946.5 505L534.6 93.4a31.93 31.93 0 0 0-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z")),t.HourglassFill=l("hourglass",i,s(o,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z")),t.Html5Fill=l("html5",i,s(o,"M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z")),t.IdcardFill=l("idcard",i,s(o,"M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 0 1-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 0 1-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z")),t.IeCircleFill=l("ie-circle",i,s(o,"M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.IeSquareFill=l("ie-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z")),t.InfoCircleFill=l("info-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.InstagramFill=l("instagram",i,s(o,"M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 0 1-47.9 47.9z")),t.InsuranceFill=l("insurance",i,s(o,"M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 0 1-8.9-1.4L430 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z")),t.InteractionFill=l("interaction",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.InterationFill=l("interation",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z")),t.LayoutFill=l("layout",i,s(o,"M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z")),t.LeftCircleFill=l("left-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178a8 8 0 0 1 12.7 6.5v46.8z")),t.LeftSquareFill=l("left-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z")),t.LikeFill=l("like",i,s(o,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z")),t.LockFill=l("lock",i,s(o,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z")),t.LinkedinFill=l("linkedin",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1 1 68.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z")),t.MailFill=l("mail",i,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 0 1 194 256h648.8a7.2 7.2 0 0 1 4.4 12.9z")),t.MedicineBoxFill=l("medicine-box",i,s(o,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z")),t.MediumCircleFill=l("medium-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MediumSquareFill=l("medium-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 0 0 7-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z")),t.MehFill=l("meh",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.MessageFill=l("message",i,s(o,"M924.3 338.4a447.57 447.57 0 0 0-96.1-143.3 443.09 443.09 0 0 0-143-96.3A443.91 443.91 0 0 0 512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 0 0-141.7 96.5 445 445 0 0 0-95 142.8A449.89 449.89 0 0 0 65 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 0 0 199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 0 0 827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z")),t.MinusCircleFill=l("minus-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MinusSquareFill=l("minus-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z")),t.MobileFill=l("mobile",i,s(o,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.MoneyCollectFill=l("money-collect",i,s(o,"M911.5 699.7a8 8 0 0 0-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z")),t.PauseCircleFill=l("pause-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z")),t.PayCircleFill=l("pay-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 0 1 7-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 0 1 7.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z")),t.NotificationFill=l("notification",i,s(o,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z")),t.PhoneFill=l("phone",i,s(o,"M885.6 230.2L779.1 123.8a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 0 0-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 0 1 553.1 553 395.34 395.34 0 0 1 437 633.8L353.2 550a80.83 80.83 0 0 0-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 0 0-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z")),t.PictureFill=l("picture",i,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 0 1-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z")),t.PieChartFill=l("pie-chart",i,s(o,"M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 0 0-282.5 117 397.47 397.47 0 0 0-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 0 0 155.6 31.5 398.57 398.57 0 0 0 282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0 0 31.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 0 0 588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z")),t.PlayCircleFill=l("play-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 0 1-12.7-6.5V353.7a8 8 0 0 1 12.7-6.5L656.1 506a7.9 7.9 0 0 1 0 12.9z")),t.PlaySquareFill=l("play-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6z")),t.PlusCircleFill=l("plus-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PlusSquareFill=l("plus-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z")),t.PoundCircleFill=l("pound-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z")),t.PrinterFill=l("printer",i,s(o,"M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z")),t.ProfileFill=l("profile",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z")),t.ProjectFill=l("project",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z")),t.PushpinFill=l("pushpin",i,s(o,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z")),t.PropertySafetyFill=l("property-safety",i,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 0 1 8.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z")),t.QqCircleFill=l("qq-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QqSquareFill=l("qq-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z")),t.QuestionCircleFill=l("question-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z")),t.ReadFill=l("read",i,s(o,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z")),t.ReconciliationFill=l("reconciliation",i,s(o,"M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z")),t.RedEnvelopeFill=l("red-envelope",i,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 0 1 7.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z")),t.RedditCircleFill=l("reddit-circle",i,s(o,"M584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm72 108a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RedditSquareFill=l("reddit-square",i,s(o,"M296 440a35.98 35.98 0 0 0-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 0 0 296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 0 0-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 0 1 296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 0 1 101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0zm144-108a35.9 35.9 0 0 0-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 0 0 728 440zM368 548a36 36 0 1 0 72 0 36 36 0 1 0-72 0z")),t.RestFill=l("rest",i,s(o,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 1 0 160 0 80 80 0 1 0-160 0z")),t.RightCircleFill=l("right-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.RocketFill=l("rocket",i,s(o,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 0 1 0 96 48.01 48.01 0 0 1 0-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z")),t.RightSquareFill=l("right-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z")),t.SafetyCertificateFill=l("safety-certificate",i,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z")),t.SaveFill=l("save",i,s(o,"M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z")),t.ScheduleFill=l("schedule",i,s(o,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z")),t.SecurityScanFill=l("security-scan",i,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 1 0 113.27-113.28 80.1 80.1 0 1 0-113.27 113.28z")),t.SettingFill=l("setting",i,s(o,"M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 0 0-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a442.5 442.5 0 0 0-79.6-137.7l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.3a353.44 353.44 0 0 0-98.9 57.3l-81.8-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a445.93 445.93 0 0 0-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0 0 25.8 25.7l2.7.5a448.27 448.27 0 0 0 158.8 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z")),t.ShopFill=l("shop",i,s(o,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z")),t.ShoppingFill=l("shopping",i,s(o,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z")),t.SketchCircleFill=l("sketch-circle",i,s(o,"M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z")),t.SketchSquareFill=l("sketch-square",i,s(o,"M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 0 1-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 0 1 0 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z")),t.SkinFill=l("skin",i,s(o,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44z")),t.SlackCircleFill=l("slack-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlackSquareFill=l("slack-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SkypeFill=l("skype",i,s(o,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z")),t.SlidersFill=l("sliders",i,s(o,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z")),t.SmileFill=l("smile",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.SnippetsFill=l("snippets",i,s(o,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundFill=l("sound",i,s(o,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z")),t.StarFill=l("star",i,s(o,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z")),t.StepBackwardFill=l("step-backward",i,s(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardFill=l("step-forward",i,s(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopFill=l("stop",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z")),t.SwitcherFill=l("switcher",i,s(o,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z")),t.TabletFill=l("tablet",i,s(o,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z")),t.TagFill=l("tag",i,s(o,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z")),t.TagsFill=l("tags",i,s(o,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleFill=l("taobao-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.TaobaoSquareFill=l("taobao-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolFill=l("tool",i,s(o,"M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 0 0 419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z")),t.ThunderboltFill=l("thunderbolt",i,s(o,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z")),t.TrademarkCircleFill=l("trademark-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z")),t.TwitterCircleFill=l("twitter-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.TrophyFill=l("trophy",i,s(o,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z")),t.TwitterSquareFill=l("twitter-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 0 1-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 0 1-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 0 0 229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z")),t.UnlockFill=l("unlock",i,s(o,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1 1 56 0z")),t.UpCircleFill=l("up-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UpSquareFill=l("up-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z")),t.UsbFill=l("usb",i,s(o,"M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletFill=l("wallet",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.VideoCameraFill=l("video-camera",i,s(o,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z")),t.WarningFill=l("warning",i,s(o,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.WeiboCircleFill=l("weibo-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WechatFill=l("wechat",i,s(o,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WindowsFill=l("windows",i,s(o,"M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z")),t.YahooFill=l("yahoo",i,s(o,"M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z")),t.WeiboSquareFill=l("weibo-square",i,s(o,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueFill=l("yuque",i,s(o,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z")),t.YoutubeFill=l("youtube",i,s(o,"M941.3 296.1a112.3 112.3 0 0 0-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0 0 82.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z")),t.ZhihuSquareFill=l("zhihu-square",i,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.ZhihuCircleFill=l("zhihu-circle",i,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z")),t.AccountBookOutline=l("account-book",a,s(o,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z")),t.AlertOutline=l("alert",a,s(o,"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z")),t.AlipayCircleOutline=l("alipay-circle",a,s(o,"M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 0 0 960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z")),t.AliwangwangOutline=l("aliwangwang",a,s(o,"M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 0 0-120.5-81.2A375.65 375.65 0 0 0 519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 0 0-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0 0 29.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 0 1-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 0 1-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 0 1 217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z")),t.AndroidOutline=l("android",a,s(o,"M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z")),t.ApiOutline=l("api",a,s(o,"M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 0 1-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z")),t.AppstoreOutline=l("appstore",a,s(o,"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z")),t.AudioOutline=l("audio",a,s(o,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z")),t.AppleOutline=l("apple",a,s(o,"M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z")),t.BackwardOutline=l("backward",a,s(r,"M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 0 0-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z")),t.BankOutline=l("bank",a,s(o,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z")),t.BellOutline=l("bell",a,s(o,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z")),t.BehanceSquareOutline=l("behance-square",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 0 1-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 0 1-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 0 1-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0 1 38.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 0 0-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 0 0-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z")),t.BookOutline=l("book",a,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z")),t.BoxPlotOutline=l("box-plot",a,s(o,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z")),t.BulbOutline=l("bulb",a,s(o,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z")),t.BugOutline=l("bug",a,s(o,"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 0 0-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 0 0-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z","M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 0 1-63 63H232a63 63 0 0 1-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0 0 22.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 0 0 123.2-149.5A120 120 0 0 1 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 0 1 308 680V412h408v268z")),t.CalculatorOutline=l("calculator",a,s(o,"M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z")),t.BuildOutline=l("build",a,s(o,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z")),t.CalendarOutline=l("calendar",a,s(o,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z")),t.CameraOutline=l("camera",a,s(o,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z")),t.CarOutline=l("car",a,s(o,"M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm239-167.6L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CaretDownOutline=l("caret-down",a,s(r,"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z")),t.CaretLeftOutline=l("caret-left",a,s(r,"M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z")),t.CaretRightOutline=l("caret-right",a,s(r,"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z")),t.CarryOutOutline=l("carry-out",a,s(o,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z")),t.CheckCircleOutline=l("check-circle",a,s(o,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CaretUpOutline=l("caret-up",a,s(r,"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z")),t.CheckSquareOutline=l("check-square",a,s(o,"M433.1 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ChromeOutline=l("chrome",a,s(o,"M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z")),t.ClockCircleOutline=l("clock-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z")),t.CloseCircleOutline=l("close-circle",a,s(o,"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z","M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.CloudOutline=l("cloud",a,s(o,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z")),t.CloseSquareOutline=l("close-square",a,s(o,"M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodeOutline=l("code",a,s(o,"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.CodepenCircleOutline=l("codepen-circle",a,s(o,"M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 0 1-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 0 1-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 0 1 .8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z")),t.CompassOutline=l("compass",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 0 0-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 0 0-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z")),t.ContactsOutline=l("contacts",a,s(o,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z")),t.ContainerOutline=l("container",a,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.ControlOutline=l("control",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 0 1 5.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z")),t.CopyOutline=l("copy",a,s(o,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z")),t.CreditCardOutline=l("credit-card",a,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z")),t.CrownOutline=l("crown",a,s(o,"M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z")),t.CustomerServiceOutline=l("customer-service",a,s(o,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z")),t.DashboardOutline=l("dashboard",a,s(o,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z")),t.DeleteOutline=l("delete",a,s(o,"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z")),t.DiffOutline=l("diff",a,s(o,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z")),t.DatabaseOutline=l("database",a,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.DislikeOutline=l("dislike",a,s(o,"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z")),t.DownCircleOutline=l("down-circle",a,s(o,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.DownSquareOutline=l("down-square",a,s(o,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.DribbbleSquareOutline=l("dribbble-square",a,s(o,"M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 0 0-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z")),t.EnvironmentOutline=l("environment",a,s(o,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z")),t.EditOutline=l("edit",a,s(o,"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z")),t.ExclamationCircleOutline=l("exclamation-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z")),t.ExperimentOutline=l("experiment",a,s(o,"M512 472a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z")),t.EyeInvisibleOutline=l("eye-invisible",a,s(o,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zm-63.57-320.64L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z","M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z")),t.EyeOutline=l("eye",a,s(o,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FacebookOutline=l("facebook",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z")),t.FastBackwardOutline=l("fast-backward",a,s(r,"M517.6 273.5L230.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 0 0 0 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FastForwardOutline=l("fast-forward",a,s(r,"M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 0 0 0-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z")),t.FileAddOutline=l("file-add",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z")),t.FileExcelOutline=l("file-excel",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z")),t.FileExclamationOutline=l("file-exclamation",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM472 744a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z")),t.FileImageOutline=l("file-image",a,s(o,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileMarkdownOutline=l("file-markdown",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z")),t.FilePptOutline=l("file-ppt",a,s(o,"M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileTextOutline=l("file-text",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z")),t.FilePdfOutline=l("file-pdf",a,s(o,"M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FileZipOutline=l("file-zip",a,s(o,"M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z")),t.FileOutline=l("file",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494z")),t.FilterOutline=l("filter",a,s(o,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z")),t.FileWordOutline=l("file-word",a,s(o,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z")),t.FireOutline=l("fire",a,s(o,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z")),t.FileUnknownOutline=l("file-unknown",a,s(o,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0 0 42 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1 0 64 0 32 32 0 1 0-64 0z")),t.FlagOutline=l("flag",a,s(o,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z")),t.FolderAddOutline=l("folder-add",a,s(o,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOutline=l("folder",a,s(o,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z")),t.FolderOpenOutline=l("folder-open",a,s(o,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z")),t.ForwardOutline=l("forward",a,s(r,"M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z")),t.FrownOutline=l("frown",a,s(o,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533z")),t.FundOutline=l("fund",a,s(o,"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L531 565 416.6 450.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z")),t.FunnelPlotOutline=l("funnel-plot",a,s(o,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z")),t.GiftOutline=l("gift",a,s(o,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z")),t.GithubOutline=l("github",a,s(o,"M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0 1 38.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z")),t.GitlabOutline=l("gitlab",a,s(o,"M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z")),t.HeartOutline=l("heart",a,s(o,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z")),t.HddOutline=l("hdd",a,s(o,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.HighlightOutline=l("highlight",a,s(o,"M957.6 507.4L603.2 158.2a7.9 7.9 0 0 0-11.2 0L353.3 393.4a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z")),t.HomeOutline=l("home",a,s(o,"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.9 63.9 0 0 0-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0 0 18.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z")),t.HourglassOutline=l("hourglass",a,s(o,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z")),t.Html5Outline=l("html5",a,s(o,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z")),t.IdcardOutline=l("idcard",a,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z")),t.InfoCircleOutline=l("info-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z")),t.InstagramOutline=l("instagram",a,s(o,"M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 0 0-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z")),t.InsuranceOutline=l("insurance",a,s(o,"M441.6 306.8L403 288.6a6.1 6.1 0 0 0-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 0 0-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0 0 33.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z")),t.InteractionOutline=l("interaction",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.InterationOutline=l("interation",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z")),t.LayoutOutline=l("layout",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z")),t.LeftCircleOutline=l("left-circle",a,s(o,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.LeftSquareOutline=l("left-square",a,s(o,"M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 0 0 0 13z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.LikeOutline=l("like",a,s(o,"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 0 0-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 0 0 471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0 1 42.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z")),t.LinkedinOutline=l("linkedin",a,s(o,"M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 1 0-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z")),t.LockOutline=l("lock",a,s(o,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.MedicineBoxOutline=l("medicine-box",a,s(o,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MehOutline=l("meh",a,s(o,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.MailOutline=l("mail",a,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z")),t.MessageOutline=l("message",a,s(o,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm200 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z")),t.MinusCircleOutline=l("minus-circle",a,s(o,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.MinusSquareOutline=l("minus-square",a,s(o,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.MobileOutline=l("mobile",a,s(o,"M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.MoneyCollectOutline=l("money-collect",a,s(o,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z")),t.PauseCircleOutline=l("pause-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z")),t.PayCircleOutline=l("pay-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 0 0-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z")),t.NotificationOutline=l("notification",a,s(o,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z")),t.PhoneOutline=l("phone",a,s(o,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z")),t.PictureOutline=l("picture",a,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z")),t.PieChartOutline=l("pie-chart",a,s(o,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552a398.46 398.46 0 0 0 117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952a398.46 398.46 0 0 0 282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z")),t.PlaySquareOutline=l("play-square",a,s(o,"M442.3 677.6l199.4-156.7a11.3 11.3 0 0 0 0-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PlayCircleOutline=l("play-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M719.4 499.1l-296.1-215A15.9 15.9 0 0 0 398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 0 0 0-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z")),t.PlusCircleOutline=l("plus-circle",a,s(o,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.PrinterOutline=l("printer",a,s(o,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z")),t.PlusSquareOutline=l("plus-square",a,s(o,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.ProfileOutline=l("profile",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 144a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ProjectOutline=l("project",a,s(o,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.PushpinOutline=l("pushpin",a,s(o,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z")),t.PropertySafetyOutline=l("property-safety",a,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 0 0-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 0 0-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z")),t.QuestionCircleOutline=l("question-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z","M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ReadOutline=l("read",a,s(o,"M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 0 0 324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z")),t.ReconciliationOutline=l("reconciliation",a,s(o,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.RedEnvelopeOutline=l("red-envelope",a,s(o,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z")),t.RestOutline=l("rest",a,s(o,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z","M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z")),t.RightCircleOutline=l("right-circle",a,s(o,"M666.7 505.5l-246-178A8 8 0 0 0 408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.RocketOutline=l("rocket",a,s(o,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0 1 62.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z")),t.RightSquareOutline=l("right-square",a,s(o,"M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.SafetyCertificateOutline=l("safety-certificate",a,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z")),t.ScheduleOutline=l("schedule",a,s(o,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z")),t.SaveOutline=l("save",a,s(o,"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z")),t.SecurityScanOutline=l("security-scan",a,s(o,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z")),t.SettingOutline=l("setting",a,s(o,"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z")),t.ShoppingOutline=l("shopping",a,s(o,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z")),t.SkinOutline=l("skin",a,s(o,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z")),t.SkypeOutline=l("skype",a,s(o,"M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 0 0-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 0 0 335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 0 0 112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 0 1-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 0 1-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0 1 71.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z")),t.SlackSquareOutline=l("slack-square",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0 1 50.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 0 1-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z")),t.SlidersOutline=l("sliders",a,s(o,"M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74z")),t.SmileOutline=l("smile",a,s(o,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm352 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 0 1 248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 0 1 249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 0 1 775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 0 1 775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4z")),t.SnippetsOutline=l("snippets",a,s(o,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z")),t.SoundOutline=l("sound",a,s(o,"M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344z")),t.StarOutline=l("star",a,s(o,"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0 0 46.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z")),t.StepBackwardOutline=l("step-backward",a,s(r,"M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 0 0 0 33.9M330 864h-64a8 8 0 0 1-8-8V168a8 8 0 0 1 8-8h64a8 8 0 0 1 8 8v688a8 8 0 0 1-8 8")),t.StepForwardOutline=l("step-forward",a,s(r,"M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 0 1 0 33.9M694 864h64a8 8 0 0 0 8-8V168a8 8 0 0 0-8-8h-64a8 8 0 0 0-8 8v688a8 8 0 0 0 8 8")),t.StopOutline=l("stop",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z")),t.SwitcherOutline=l("switcher",a,s(o,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z")),t.TagOutline=l("tag",a,s(o,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z")),t.TabletOutline=l("tablet",a,s(o,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.ShopOutline=l("shop",a,s(o,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z")),t.TagsOutline=l("tags",a,s(o,"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1 0 67.88-67.89 48 48 0 1 0-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z")),t.TaobaoCircleOutline=l("taobao-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 1 1 0-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z")),t.ToolOutline=l("tool",a,s(o,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z")),t.ThunderboltOutline=l("thunderbolt",a,s(o,"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z")),t.TrophyOutline=l("trophy",a,s(o,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM184 352V232h64v207.6a91.99 91.99 0 0 1-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z")),t.UnlockOutline=l("unlock",a,s(o,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z")),t.UpCircleOutline=l("up-circle",a,s(o,"M518.5 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z","M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z")),t.UpSquareOutline=l("up-square",a,s(o,"M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246A7.96 7.96 0 0 0 334 624z","M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.UsbOutline=l("usb",a,s(o,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.VideoCameraOutline=l("video-camera",a,s(o,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z")),t.WalletOutline=l("wallet",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.WarningOutline=l("warning",a,s(o,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z")),t.WechatOutline=l("wechat",a,s(o,"M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 0 1 9.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 0 0 6.4-2.6 9 9 0 0 0 2.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 0 1-36 35.9z")),t.WeiboCircleOutline=l("weibo-circle",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.WindowsOutline=l("windows",a,s(o,"M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z")),t.YahooOutline=l("yahoo",a,s(o,"M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z")),t.WeiboSquareOutline=l("weibo-square",a,s(o,"M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 0 0-7.2-34.1 34.68 34.68 0 0 0-33.1-10.7 18.24 18.24 0 0 1-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 0 1-22.9 11.7 18.18 18.18 0 0 1-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 0 1-26.6 13.7 21.19 21.19 0 0 1-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 0 0-98.9-32.1 21.14 21.14 0 0 1-25.1-16.3 21.07 21.07 0 0 1 16.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z")),t.YuqueOutline=l("yuque",a,s(o,"M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z")),t.YoutubeOutline=l("youtube",a,s(o,"M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 0 0-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0 0 82.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z")),t.AlibabaOutline=l("alibaba",a,s(o,"M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z")),t.AlignCenterOutline=l("align-center",a,s(o,"M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignLeftOutline=l("align-left",a,s(o,"M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlignRightOutline=l("align-right",a,s(o,"M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.AlipayOutline=l("alipay",a,s(o,"M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 0 1-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z")),t.AliyunOutline=l("aliyun",a,s(o,"M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0 1 32.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 0 1-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 0 1-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z")),t.AmazonOutline=l("amazon",a,s(o,"M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 0 0-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z")),t.AntCloudOutline=l("ant-cloud",a,s(o,"M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0 1 22.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 0 1-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-65.7 61.3a24 24 0 1 0 48 0 24 24 0 1 0-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z")),t.ApartmentOutline=l("apartment",a,s(o,"M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z")),t.AntDesignOutline=l("ant-design",a,s(o,"M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 0 0 0 76.4L474.6 944a54.14 54.14 0 0 0 76.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 0 0-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 1 0 212.6 0 106.3 106.2 0 1 0-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 0 0 0 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 0 0 0 68.6 48.7 48.7 0 0 0 68.7 0l121.8-121.7a53.93 53.93 0 0 0-.1-76.4z")),t.AreaChartOutline=l("area-chart",a,s(o,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 0 0-11.3 0l-189 189.6a7.87 7.87 0 0 0-2.3 5.6V720c0 4.4 3.6 8 8 8z")),t.ArrowLeftOutline=l("arrow-left",a,s(o,"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 0 0 0 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.ArrowDownOutline=l("arrow-down",a,s(o,"M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0 0 48.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z")),t.ArrowUpOutline=l("arrow-up",a,s(o,"M868 545.5L536.1 163a31.96 31.96 0 0 0-48.3 0L156 545.5a7.97 7.97 0 0 0 6 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z")),t.ArrowsAltOutline=l("arrows-alt",a,s(o,"M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L863.9 169a7.9 7.9 0 0 0-8.9-8.9zM416.6 562.3a8.03 8.03 0 0 0-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z")),t.ArrowRightOutline=l("arrow-right",a,s(o,"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 0 0 0-48.4z")),t.AuditOutline=l("audit",a,s(o,"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z")),t.BarChartOutline=l("bar-chart",a,s(o,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z")),t.BarcodeOutline=l("barcode",a,s(o,"M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.BarsOutline=l("bars",a,s(r,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.BgColorsOutline=l("bg-colors",a,s(o,"M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 0 0-12.8 0l-48 48a9.11 9.11 0 0 0 0 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z")),t.BehanceOutline=l("behance",a,s(o,"M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z")),t.BlockOutline=l("block",a,s(o,"M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z")),t.BoldOutline=l("bold",a,s(o,"M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z")),t.BorderBottomOutline=l("border-bottom",a,s(o,"M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderLeftOutline=l("border-left",a,s(o,"M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOuterOutline=l("border-outer",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.BorderInnerOutline=l("border-inner",a,s(o,"M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderRightOutline=l("border-right",a,s(o,"M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderHorizontalOutline=l("border-horizontal",a,s(o,"M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderTopOutline=l("border-top",a,s(o,"M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderVerticleOutline=l("border-verticle",a,s(o,"M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.BorderOutline=l("border",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z")),t.BranchesOutline=l("branches",a,s(o,"M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0 0 34.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm408-491a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.CheckOutline=l("check",a,s(o,"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z")),t.CiOutline=l("ci",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z")),t.CloseOutline=l("close",a,s(o,"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 0 0 203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z")),t.CloudDownloadOutline=l("cloud-download",a,s(o,"M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.CloudServerOutline=l("cloud-server",a,s(o,"M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z","M424 748a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm0-178a32 32 0 1 0 64 0 32 32 0 1 0-64 0z","M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z")),t.CloudSyncOutline=l("cloud-sync",a,s(o,"M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z","M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 0 0 3 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 0 0-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z")),t.CloudUploadOutline=l("cloud-upload",a,s(o,"M518.3 459a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z","M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 0 1-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z")),t.ClusterOutline=l("cluster",a,s(o,"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1 0 80 0 40 40 0 1 0-80 0z")),t.CodepenOutline=l("codepen",a,s(o,"M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 0 0-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z")),t.CodeSandboxOutline=l("code-sandbox",a,s(o,"M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z")),t.ColumHeightOutline=l("colum-height",a,s(o,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.ColumnWidthOutline=l("column-width",a,s(o,"M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 0 0-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z")),t.ColumnHeightOutline=l("column-height",a,s(o,"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z")),t.CoffeeOutline=l("coffee",a,s(r,"M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z")),t.CopyrightOutline=l("copyright",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z")),t.DashOutline=l("dash",a,s(o,"M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z")),t.DeploymentUnitOutline=l("deployment-unit",a,s(o,"M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 0 1-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0 1 65.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z")),t.DesktopOutline=l("desktop",a,s(o,"M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z")),t.DingdingOutline=l("dingding",a,s(o,"M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z")),t.DisconnectOutline=l("disconnect",a,s(o,"M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 0 0-11.3 0L209.4 249a8.03 8.03 0 0 0 0 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z")),t.DollarOutline=l("dollar",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z")),t.DoubleRightOutline=l("double-right",a,s(o,"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 0 0 188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 0 0 492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z")),t.DotChartOutline=l("dot-chart",a,s(o,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm118-224a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm158 228a96 96 0 1 0 192 0 96 96 0 1 0-192 0zm148-314a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.DoubleLeftOutline=l("double-left",a,s(o,"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 0 0 0 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z")),t.DownloadOutline=l("download",a,s(o,"M505.7 661a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.DribbbleOutline=l("dribbble",a,s(o,"M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 0 1 512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z")),t.DropboxOutline=l("dropbox",a,s(o,"M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z")),t.EllipsisOutline=l("ellipsis",a,s(o,"M176 511a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm280 0a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.EnterOutline=l("enter",a,s(o,"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z")),t.EuroOutline=l("euro",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z")),t.ExceptionOutline=l("exception",a,s(o,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ExclamationOutline=l("exclamation",a,s(o,"M448 804a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.ExportOutline=l("export",a,s(o,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.FallOutline=l("fall",a,s(o,"M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 0 0-11.3 0l-45 45.2a8.03 8.03 0 0 0 0 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 0 0 4.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z")),t.FileDoneOutline=l("file-done",a,s(o,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 0 0-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.FileSyncOutline=l("file-sync",a,s(o,"M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 0 0 3 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 0 0-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 0 0-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0 0 12.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z")),t.FileProtectOutline=l("file-protect",a,s(o,"M644.7 669.2a7.92 7.92 0 0 0-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 0 0-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z")),t.FileSearchOutline=l("file-search",a,s(o,"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 0 0 0-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z")),t.FileJpgOutline=l("file-jpg",a,s(r,"M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z")),t.FontColorsOutline=l("font-colors",a,s(o,"M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 0 0 6-12.4L573.6 118.6a9.9 9.9 0 0 0-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z")),t.FontSizeOutline=l("font-size",a,s(o,"M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z")),t.ForkOutline=l("fork",a,s(o,"M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm336 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm192-552a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z")),t.FormOutline=l("form",a,s(o,"M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z","M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 0 0-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z")),t.FullscreenExitOutline=l("fullscreen-exit",a,s(o,"M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 0 0 0 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 0 0 391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 0 0-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z")),t.FullscreenOutline=l("fullscreen",a,s(o,"M290 236.4l43.9-43.9a8.01 8.01 0 0 0-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0 0 13.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 0 0 0 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 0 0-11.3 0l-42.4 42.3a8.03 8.03 0 0 0 0 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 0 0 4.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 0 0-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 0 0-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z")),t.GatewayOutline=l("gateway",a,s(o,"M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z")),t.DownOutline=l("down",a,s(o,"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z")),t.DragOutline=l("drag",a,s(o,"M909.3 506.3L781.7 405.6a7.23 7.23 0 0 0-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 0 0-11.3 0L405.6 242.3a7.23 7.23 0 0 0 5.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 0 0 .1-11.4z")),t.GlobalOutline=l("global",a,s(o,"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0 0 10-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 0 0 3.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 0 0-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 0 1 887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 0 1-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 0 1 115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 0 1 540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 0 0 540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 0 1-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 0 0-81.5 55.9A373.86 373.86 0 0 1 137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 0 1-107.6 69.2z")),t.GooglePlusOutline=l("google-plus",a,s(o,"M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z")),t.GoogleOutline=l("google",a,s(o,"M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z")),t.HeatMapOutline=l("heat-map",a,s(o,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z")),t.GoldOutline=l("gold",a,s(o,"M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z")),t.HistoryOutline=l("history",a,s(o,"M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 0 0 3 14.1zm167.7 301.1l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 0 1-112.5 75.9 352.18 352.18 0 0 1-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 0 1-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 0 1 171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 0 1 112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 0 1 775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z")),t.IeOutline=l("ie",a,s(o,"M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z")),t.InboxOutline=l("inbox",a,s(r,"M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0 0 60.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z")),t.ImportOutline=l("import",a,s(o,"M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 0 0 0 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.InfoOutline=l("info",a,s(o,"M448 224a64 64 0 1 0 128 0 64 64 0 1 0-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z")),t.ItalicOutline=l("italic",a,s(o,"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.IssuesCloseOutline=l("issues-close",a,s(o,"M464 688a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 0 0-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0 0 26 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 0 1-49.8 62.2A355.92 355.92 0 0 1 651.1 840a355 355 0 0 1-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 0 1-113.3-76.3A353.06 353.06 0 0 1 184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 0 1 138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 0 0 892 694z")),t.KeyOutline=l("key",a,s(o,"M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 0 0-11.4 0l-39.8 39.8a8.15 8.15 0 0 0 0 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 0 0 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z")),t.LaptopOutline=l("laptop",a,s(o,"M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z")),t.LeftOutline=l("left",a,s(o,"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z")),t.LinkOutline=l("link",a,s(o,"M574 665.4a8.03 8.03 0 0 0-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 0 0-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 0 0 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 0 0 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 0 0-11.3 0L372.3 598.7a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z")),t.LineChartOutline=l("line-chart",a,s(o,"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 0 0-11.3 0L266.3 586.7a8.03 8.03 0 0 0 0 11.3l39.5 39.7z")),t.LineHeightOutline=l("line-height",a,s(o,"M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 0 0-11.3 0L713.6 306.3a7.23 7.23 0 0 0 5.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 0 0-5.6-11.7z")),t.LineOutline=l("line",a,s(o,"M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.Loading3QuartersOutline=l("loading-3-quarters",a,s(r,"M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z")),t.LoadingOutline=l("loading",a,s(r,"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 0 0-94.3-139.9 437.71 437.71 0 0 0-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z")),t.LoginOutline=l("login",a,s(o,"M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 0 1 520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 0 1 270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 0 1 0 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z")),t.LogoutOutline=l("logout",a,s(o,"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 0 1-112.7 75.9A352.8 352.8 0 0 1 512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 0 1-112.7-75.9 353.28 353.28 0 0 1-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 0 0 0-12.6z")),t.ManOutline=l("man",a,s(o,"M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z")),t.MediumOutline=l("medium",a,s(o,"M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 0 1-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 0 1 6.8-17.2z")),t.MediumWorkmarkOutline=l("medium-workmark",a,s(r,"M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 0 1-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0 1 34.61 21.67v-56.19a6.99 6.99 0 0 0-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 0 0-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0 0 19.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 0 0-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 0 1-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 0 0-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0 0 19.35-12.2v-80.85a7.65 7.65 0 0 0-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 0 0-21.19 11.64 99.68 99.68 0 0 1 2.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 0 0 2.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 0 0-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0 1 44.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 0 0 2.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 0 0 2.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 0 0 2.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 0 0 2.96-17.78V457.97A19.71 19.71 0 0 0 24 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 0 0-2.72 6.8v139.37a6.5 6.5 0 0 0 2.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0 0 40.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z")),t.MenuUnfoldOutline=l("menu-unfold",a,s(o,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z")),t.MenuFoldOutline=l("menu-fold",a,s(o,"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z")),t.MenuOutline=l("menu",a,s(o,"M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z")),t.MinusOutline=l("minus",a,s(o,"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.MonitorOutline=l("monitor",a,s(o,"M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 0 0-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 0 0-11.2-1.4l-37.9 29.7a7.97 7.97 0 0 0-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 0 0 0 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z")),t.MoreOutline=l("more",a,s(o,"M456 231a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 280a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.OrderedListOutline=l("ordered-list",a,s(o,"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 0 0-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 0 0 2.1-5.4V432c0-2.2-1.8-4-4-4z")),t.NumberOutline=l("number",a,s(o,"M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z")),t.PauseOutline=l("pause",a,s(o,"M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z")),t.PercentageOutline=l("percentage",a,s(o,"M855.7 210.8l-42.4-42.4a8.03 8.03 0 0 0-11.3 0L168.3 801.9a8.03 8.03 0 0 0 0 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z")),t.PaperClipOutline=l("paper-clip",a,s(o,"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0 0 12.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 0 0 174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z")),t.PicCenterOutline=l("pic-center",a,s(o,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z")),t.PicLeftOutline=l("pic-left",a,s(o,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PlusOutline=l("plus",a,s(o,"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z","M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z")),t.PicRightOutline=l("pic-right",a,s(o,"M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z")),t.PoundOutline=l("pound",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z")),t.PoweroffOutline=l("poweroff",a,s(o,"M705.6 124.9a8 8 0 0 0-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0 1 62.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0 1 27.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 0 1-76.3 113.3 353.06 353.06 0 0 1-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 0 1-113.2-76.4A355.92 355.92 0 0 1 184 650.4a355 355 0 0 1-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z")),t.PullRequestOutline=l("pull-request",a,s(o,"M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 0 0 0 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm96 600a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0z")),t.QqOutline=l("qq",a,s(o,"M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z")),t.QuestionOutline=l("question",a,s(o,"M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 0 0-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z")),t.RadarChartOutline=l("radar-chart",a,s(o,"M926.8 397.1l-396-288a31.81 31.81 0 0 0-37.6 0l-396 288a31.99 31.99 0 0 0-11.6 35.8l151.3 466a32 32 0 0 0 30.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z")),t.QrcodeOutline=l("qrcode",a,s(o,"M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z")),t.RadiusBottomleftOutline=l("radius-bottomleft",a,s(o,"M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusBottomrightOutline=l("radius-bottomright",a,s(o,"M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z")),t.RadiusUpleftOutline=l("radius-upleft",a,s(o,"M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.RadiusUprightOutline=l("radius-upright",a,s(o,"M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z")),t.RadiusSettingOutline=l("radius-setting",a,s(o,"M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z")),t.RedditOutline=l("reddit",a,s(o,"M288 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 1 0-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 0 0-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 0 0 176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 1 1 0 63 31.5 31.5 0 0 1 0-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0 1 50.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 0 1-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.RedoOutline=l("redo",a,s(o,"M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 0 0-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z")),t.ReloadOutline=l("reload",a,s(o,"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 0 0-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 0 1 655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 0 1 279 755.2a342.16 342.16 0 0 1-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 0 1 109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z")),t.RetweetOutline=l("retweet",a,s(r,"M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0 0 11.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 0 0-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 0 0-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z")),t.RightOutline=l("right",a,s(o,"M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z")),t.RiseOutline=l("rise",a,s(o,"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 0 0 0 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0 0 13.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z")),t.RollbackOutline=l("rollback",a,s(o,"M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 0 0 0 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z")),t.SafetyOutline=l("safety",a,s(r,"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z","M378.4 475.1a35.91 35.91 0 0 0-50.9 0 35.91 35.91 0 0 0 0 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0 0 48.1 0L730.6 434a33.98 33.98 0 0 0 0-48.1l-2.8-2.8a33.98 33.98 0 0 0-48.1 0L483 579.7 378.4 475.1z")),t.RobotOutline=l("robot",a,s(o,"M300 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 1 0 120 0 60 60 0 1 0-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SearchOutline=l("search",a,s(o,"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0 0 11.6 0l43.6-43.5a8.2 8.2 0 0 0 0-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z")),t.ScanOutline=l("scan",a,s(o,"M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.ScissorOutline=l("scissor",a,s(o,"M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 0 0 288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z")),t.SelectOutline=l("select",a,s(o,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 0 0-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z")),t.ShakeOutline=l("shake",a,s(o,"M324 666a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 0 0 0 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0 0 11.2 0L373.7 164a7.9 7.9 0 0 0 0-11.2l-38.4-38.4a7.9 7.9 0 0 0-11.2 0L114.3 323.9a7.9 7.9 0 0 0 0 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 0 0-11.2 0L650.3 860.1a7.9 7.9 0 0 0 0 11.2l38.4 38.4a7.9 7.9 0 0 0 11.2 0L909.7 700a7.9 7.9 0 0 0 0-11.2l-38.3-38.5z")),t.ShareAltOutline=l("share-alt",a,s(o,"M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z")),t.ShoppingCartOutline=l("shopping-cart",a,s(r,"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 0 0-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 1 0 0 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 0 0-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 0 0-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 0 0-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 0 1-31.6 31.6z")),t.ShrinkOutline=l("shrink",a,s(o,"M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z")),t.SlackOutline=l("slack",a,s(o,"M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 0 0-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0 0 54.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z")),t.SmallDashOutline=l("small-dash",a,s(o,"M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z")),t.SolutionOutline=l("solution",a,s(o,"M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z")),t.SketchOutline=l("sketch",a,s(o,"M925.6 405.1l-203-253.7a6.5 6.5 0 0 0-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 0 0 .2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 0 0 .2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z")),t.SortDescendingOutline=l("sort-descending",a,s(o,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM310.3 167.1a8 8 0 0 0-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z")),t.SortAscendingOutline=l("sort-ascending",a,s(o,"M839.6 433.8L749 150.5a9.24 9.24 0 0 0-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 0 0-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 0 0-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0 0 12.6 0l112-141.9c4.1-5.2.4-13-6.3-13z")),t.StockOutline=l("stock",a,s(o,"M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0 0 45.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 0 0-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 0 0-45.2 0L165.7 610.5a7.94 7.94 0 0 0 0 11.3z")),t.SwapLeftOutline=l("swap-left",a,s(r,"M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SwapRightOutline=l("swap-right",a,s(r,"M873.1 596.2l-164-208A32 32 0 0 0 684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z")),t.StrikethroughOutline=l("strikethrough",a,s(o,"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 0 0-8-7.9z")),t.SwapOutline=l("swap",a,s(o,"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z")),t.SyncOutline=l("sync",a,s(o,"M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 0 1 755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 0 0 3 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 0 1 512.1 856a342.24 342.24 0 0 1-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 0 0-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 0 0-8-8.2z")),t.TableOutline=l("table",a,s(o,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z")),t.TeamOutline=l("team",a,s(o,"M824.2 699.9a301.55 301.55 0 0 0-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 0 1 612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 0 0 8-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 0 1 612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z")),t.TaobaoOutline=l("taobao",a,s(o,"M168.5 273.7a68.7 68.7 0 1 0 137.4 0 68.7 68.7 0 1 0-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z")),t.ToTopOutline=l("to-top",a,s(o,"M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z")),t.TrademarkOutline=l("trademark",a,s(o,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 0 0 7.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z")),t.TransactionOutline=l("transaction",a,s(o,"M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 0 1 103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 0 0 3 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 0 0 8 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 0 1-103.5 242.4 352.57 352.57 0 0 1-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 0 1-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 0 0-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 0 0-8-8.2z")),t.TwitterOutline=l("twitter",a,s(o,"M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0 0 75-94 336.64 336.64 0 0 1-108.2 41.2A170.1 170.1 0 0 0 672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 0 0-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 0 1-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 0 1-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z")),t.UnderlineOutline=l("underline",a,s(o,"M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z")),t.UndoOutline=l("undo",a,s(o,"M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 0 0-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 0 1-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 0 1-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 0 0-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z")),t.UnorderedListOutline=l("unordered-list",a,s(o,"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0zm0 284a56 56 0 1 0 112 0 56 56 0 1 0-112 0z")),t.UpOutline=l("up",a,s(o,"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 0 0 140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z")),t.UploadOutline=l("upload",a,s(o,"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 0 0-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z")),t.UserAddOutline=l("user-add",a,s(o,"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 888.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupAddOutline=l("usergroup-add",a,s(o,"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.UserOutline=l("user",a,s(o,"M858.5 763.6a374 374 0 0 0-80.6-119.5 375.63 375.63 0 0 0-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 0 0-80.6 119.5A371.7 371.7 0 0 0 136 901.8a8 8 0 0 0 8 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 0 0 8-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z")),t.UserDeleteOutline=l("user-delete",a,s(o,"M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 0 0-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 0 0-80.4 119.5A373.6 373.6 0 0 0 137 901.8a8 8 0 0 0 8 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 0 0 8.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 0 1 340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 0 1 683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z")),t.UsergroupDeleteOutline=l("usergroup-delete",a,s(o,"M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 0 1-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 0 0 8 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 0 0-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 0 0 8 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 0 1-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z")),t.VerticalAlignBottomOutline=l("vertical-align-bottom",a,s(o,"M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0 0 12.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z")),t.VerticalAlignMiddleOutline=l("vertical-align-middle",a,s(o,"M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 0 0-11.3 0L405.6 752.3a7.23 7.23 0 0 0 5.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z")),t.VerticalAlignTopOutline=l("vertical-align-top",a,s(o,"M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 0 0-12.6 0l-112 141.7a7.98 7.98 0 0 0 6.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z")),t.VerticalRightOutline=l("vertical-right",a,s(o,"M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z")),t.VerticalLeftOutline=l("vertical-left",a,s(o,"M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 0 0 254 164z")),t.WifiOutline=l("wifi",a,s(o,"M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 0 0-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 0 0-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 0 0-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 1 0 128 0 64 64 0 1 0-128 0z")),t.ZhihuOutline=l("zhihu",a,s(o,"M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z")),t.WeiboOutline=l("weibo",a,s(o,"M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 0 0-106-34.3 28.45 28.45 0 0 0-21.9 33.8 28.39 28.39 0 0 0 33.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0 1 11.3 53.3 28.45 28.45 0 0 0 18.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 0 0-25.4 39.3 33.12 33.12 0 0 0 39.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z")),t.WomanOutline=l("woman",a,s(o,"M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z")),t.ZoomInOutline=l("zoom-in",a,s(o,"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AccountBookTwoTone=l("account-book",c,(function(e,t){return s(o,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 0 1 7.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z"],[e,"M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 0 0-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"])})),t.ZoomOutOutline=l("zoom-out",a,s(o,"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z")),t.AlertTwoTone=l("alert",c,(function(e,t){return s(o,[t,"M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z"],[e,"M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 0 0-11.3 0l-39.6 39.6a8.03 8.03 0 0 0 0 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 0 0-11.3 0l-67.9 67.9a8.03 8.03 0 0 0 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z"])})),t.ApiTwoTone=l("api",c,(function(e,t){return s(o,[t,"M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z"],[e,"M578.9 546.7a8.03 8.03 0 0 0-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 0 0-11.3 0L363 475.3l-43-43a7.85 7.85 0 0 0-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 0 0-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 0 0 0 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 0 1-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 0 0-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 0 0 0 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z"])})),t.AppstoreTwoTone=l("appstore",c,(function(e,t){return s(o,[e,"M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"],[t,"M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z"])})),t.BankTwoTone=l("bank",c,(function(e,t){return s(o,[t,"M240.9 393.9h542.2L512 196.7z"],[e,"M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 0 0-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z"])})),t.AudioTwoTone=l("audio",c,(function(e,t){return s(o,[t,"M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z"],[e,"M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z"],[e,"M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z"])})),t.BellTwoTone=l("bell",c,(function(e,t){return s(o,[t,"M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z"],[e,"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z"])})),t.BookTwoTone=l("book",c,(function(e,t){return s(o,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0 0 22.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z"],[t,"M668 345.9V136h-96v211.4l49.5-35.4z"],[t,"M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 0 1-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z"])})),t.BoxPlotTwoTone=l("box-plot",c,(function(e,t){return s(o,[t,"M296 368h88v288h-88zm152 0h280v288H448z"],[e,"M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z"])})),t.BugTwoTone=l("bug",c,(function(e,t){return s(o,[e,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 0 1-22.66 49.02 281.39 281.39 0 0 1-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 0 1-100.45-100.45 278.63 278.63 0 0 1-22.66-49.02A119.95 119.95 0 0 0 188 876a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 0 1 232 680v-96H84a8 8 0 0 1-8-8v-56a8 8 0 0 1 8-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 0 1 8-8h60a8 8 0 0 1 8 8 63 63 0 0 0 63 63h560a63 63 0 0 0 63-63 8 8 0 0 1 8-8h60a8 8 0 0 1 8 8c0 76.77-62.23 139-139 139v100h148a8 8 0 0 1 8 8v56a8 8 0 0 1-8 8H792zM368 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0 1 74.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0 1 74.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 0 1-8 8h-56a8 8 0 0 1-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 0 0-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 0 0-45.4 45.39C373.95 218.85 368 243.67 368 272z"],[t,"M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0 0 73.3 73.3A202.68 202.68 0 0 0 512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0 0 73.3-73.3A202.68 202.68 0 0 0 716 680V412H308z"])})),t.BulbTwoTone=l("bulb",c,(function(e,t){return s(o,[t,"M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z"],[e,"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"])})),t.CalculatorTwoTone=l("calculator",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 0 1-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z"],[e,"M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 0 0-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z"])})),t.BuildTwoTone=l("build",c,(function(e,t){return s(o,[t,"M144 546h200v200H144zm268-268h200v200H412z"],[e,"M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z"])})),t.CalendarTwoTone=l("calendar",c,(function(e,t){return s(o,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])})),t.CameraTwoTone=l("camera",c,(function(e,t){return s(o,[t,"M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z"],[e,"M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"],[e,"M864 248H728l-32.4-90.8a32.07 32.07 0 0 0-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z"])})),t.CarTwoTone=l("car",c,(function(e,t){return s(o,[t,"M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M720 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M959 413.4L935.3 372a8 8 0 0 0-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 0 0-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 0 0-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 0 0 3-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z"],[e,"M224 581a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z"])})),t.CarryOutTwoTone=l("carry-out",c,(function(e,t){return s(o,[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z"],[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z"],[e,"M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z"])})),t.CheckCircleTwoTone=l("check-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0 0 51.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"])})),t.CheckSquareTwoTone=l("check-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 0 1-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M432.2 657.7a31.8 31.8 0 0 0 51.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z"])})),t.ClockCircleTwoTone=l("clock-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 0 1-11.2 1.7L483.3 569.8a7.92 7.92 0 0 1-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z"],[e,"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z"])})),t.CloseCircleTwoTone=l("close-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 0 1-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z"],[e,"M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 0 0-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"])})),t.CloudTwoTone=l("cloud",c,(function(e,t){return s(o,[t,"M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 0 0-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 0 0-52.4 49.9 240.47 240.47 0 0 0-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 0 0-66.1 43.7A123.1 123.1 0 0 0 140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 0 0 884 612c0-56.2-37.8-105.5-92.1-120z"],[e,"M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 0 1-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 0 1 140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0 1 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0 1 52.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z"])})),t.CloseSquareTwoTone=l("close-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 0 1 354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z"],[e,"M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 0 0 354 671z"])})),t.CodeTwoTone=l("code",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 0 1-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z"],[e,"M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 0 0 308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 0 0-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z"])})),t.CompassTwoTone=l("compass",c,(function(e,t){return s(o,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z"],[e,"M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"])})),t.ContactsTwoTone=l("contacts",c,(function(e,t){return s(o,[t,"M460.3 526a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 0 1-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 0 1-8 8.4z"],[e,"M594.3 601.5a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1 8 8 0 0 0 8 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"])})),t.ContainerTwoTone=l("container",c,(function(e,t){return s(o,[t,"M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 0 1-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z"],[e,"M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z"],[e,"M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ControlTwoTone=l("control",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M616 440a36 36 0 1 0 72 0 36 36 0 1 0-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 0 0-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z"],[t,"M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z"],[e,"M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 0 1 408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z"])})),t.CopyTwoTone=l("copy",c,(function(e,t){return s(o,[t,"M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z"],[e,"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z"],[e,"M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"])})),t.CreditCardTwoTone=l("credit-card",c,(function(e,t){return s(o,[t,"M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z"],[e,"M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z"])})),t.CrownTwoTone=l("crown",c,(function(e,t){return s(o,[t,"M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z"],[t,"M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z"],[e,"M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z"],[e,"M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 0 0-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z"])})),t.CustomerServiceTwoTone=l("customer-service",c,(function(e,t){return s(o,[t,"M696 632h128v192H696zm-496 0h128v192H200z"],[e,"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z"])})),t.DashboardTwoTone=l("dashboard",c,(function(e,t){return s(o,[t,"M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 0 0 884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 0 1-11.3 0l-56.6-56.6a8.03 8.03 0 0 1 0-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 0 1-79.2 0 55.95 55.95 0 0 1 0-79.2 55.87 55.87 0 0 1 54.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 0 1 0-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 0 1-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z"],[e,"M623.5 421.5a8.03 8.03 0 0 0-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 0 0 0 79.2 55.95 55.95 0 0 0 79.2 0 55.87 55.87 0 0 0 14.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z"],[e,"M924.8 385.6a446.7 446.7 0 0 0-96-142.4 446.7 446.7 0 0 0-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 0 0-142.4 96 446.7 446.7 0 0 0-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 0 1 140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z"],[e,"M762.7 340.8l-31.1-31.1a8.03 8.03 0 0 0-11.3 0l-56.6 56.6a8.03 8.03 0 0 0 0 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 0 0-11.3 0l-31.1 31.1a8.03 8.03 0 0 0 0 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z"])})),t.DeleteTwoTone=l("delete",c,(function(e,t){return s(o,[t,"M292.7 840h438.6l24.2-512h-487z"],[e,"M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z"])})),t.DiffTwoTone=l("diff",c,(function(e,t){return s(o,[t,"M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z"],[e,"M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z"],[e,"M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z"],[e,"M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z"])})),t.DatabaseTwoTone=l("database",c,(function(e,t){return s(o,[t,"M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M304 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0 272a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-544a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"])})),t.DislikeTwoTone=l("dislike",c,(function(e,t){return s(o,[t,"M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 0 0 6.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0 0 42.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z"],[e,"M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 0 0-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 0 1-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0 1 33.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0 1 19.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0 1 19.6 43c0 19.1-11 37.5-28.8 48.4z"])})),t.DownCircleTwoTone=l("down-circle",c,(function(e,t){return s(o,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z"])})),t.DownSquareTwoTone=l("down-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 0 1-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z"],[e,"M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z"])})),t.EnvironmentTwoTone=l("environment",c,(function(e,t){return s(o,[t,"M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z"],[e,"M854.6 289.1a362.49 362.49 0 0 0-79.9-115.7 370.83 370.83 0 0 0-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 0 0 169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0 0 22.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z"])})),t.EditTwoTone=l("edit",c,(function(e,t){return s(o,[t,"M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z"],[e,"M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 0 0 0-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 0 0 9.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z"])})),t.ExclamationCircleTwoTone=l("exclamation-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.ExperimentTwoTone=l("experiment",c,(function(e,t){return s(o,[t,"M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 0 1 552 512a40 40 0 0 1-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 0 1-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z"],[e,"M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 0 1-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z"],[e,"M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0 0 40 39.4z"])})),t.EyeInvisibleTwoTone=l("eye-invisible",c,(function(e,t){return s(o,[t,"M254.89 758.85l125.57-125.57a176 176 0 0 1 248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 0 1-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5z"],[e,"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 0 0 0-51.5zM878.63 165.56L836 122.88a8 8 0 0 0-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 0 0 0 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 0 0 0 11.31L155.17 889a8 8 0 0 0 11.31 0l712.15-712.12a8 8 0 0 0 0-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 0 0-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 0 1 146.2-106.69L401.31 546.2A112 112 0 0 1 396 512z"],[e,"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 0 0 227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 0 1-112 112z"])})),t.EyeTwoTone=l("eye",c,(function(e,t){return s(o,[t,"M81.8 537.8a60.3 60.3 0 0 1 0-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z"],[t,"M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z"],[e,"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 0 0 0 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z"],[e,"M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"])})),t.FileAddTwoTone=l("file-add",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z"])})),t.FileExclamationTwoTone=l("file-exclamation",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileImageTwoTone=l("file-image",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0 1 12.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0 1 12.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 0 0-12.6 0l-99.8 127.2a7.98 7.98 0 0 0 6.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 0 0-12.7 0zM360 442a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.FileExcelTwoTone=l("file-excel",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm51.6 120h35.7a12.04 12.04 0 0 1 10.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 0 1-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0 0 10.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 0 0-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z"])})),t.FileMarkdownTwoTone=l("file-markdown",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 0 1-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0 0 11 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z"])})),t.FilePdfTwoTone=l("file-pdf",c,(function(e,t){return s(o,[t,"M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z"],[t,"M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z"])})),t.FilePptTwoTone=l("file-ppt",c,(function(e,t){return s(o,[t,"M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z"],[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z"])})),t.FileTextTwoTone=l("file-text",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.FileUnknownTwoTone=l("file-unknown",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z"],[e,"M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M480 744a32 32 0 1 0 64 0 32 32 0 1 0-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z"])})),t.FileZipTwoTone=l("file-zip",c,(function(e,t){return s(o,[t,"M344 630h32v2h-32z"],[t,"M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0 0 42 42h216v494z"],[e,"M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z"])})),t.FileWordTwoTone=l("file-word",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0 1 11.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0 1 11.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"],[e,"M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 0 0-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 0 0-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z"])})),t.FileTwoTone=l("file",c,(function(e,t){return s(o,[t,"M534 352V136H232v752h560V394H576a42 42 0 0 1-42-42z"],[e,"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0 0 42 42h216v494z"])})),t.FilterTwoTone=l("filter",c,(function(e,t){return s(o,[t,"M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z"])})),t.FireTwoTone=l("fire",c,(function(e,t){return s(o,[t,"M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 0 1-51 24.4 73.36 73.36 0 0 1-53.4-18.8 74.01 74.01 0 0 1-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 0 1-12.1 46.5 354.26 354.26 0 0 1-58.2 101 349.6 349.6 0 0 1-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 0 0-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z"],[e,"M834.1 469.2A347.49 347.49 0 0 0 751.2 354l-29.1-26.7a8.09 8.09 0 0 0-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 0 1-47.5 46.1 352.6 352.6 0 0 0-100.3 121.5A347.75 347.75 0 0 0 160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0 0 75.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 0 0 760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0 0 27.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0 0 58.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0 0 12.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0 0 24.4 59.8 73.36 73.36 0 0 0 53.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z"])})),t.FolderAddTwoTone=l("folder-add",c,(function(e,t){return s(o,[t,"M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z"],[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[e,"M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z"])})),t.FlagTwoTone=l("flag",c,(function(e,t){return s(o,[t,"M184 232h368v336H184z"],[t,"M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z"],[e,"M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z"])})),t.FolderTwoTone=l("folder",c,(function(e,t){return s(o,[e,"M880 298.4H521L403.7 186.2a8.15 8.15 0 0 0-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z"],[t,"M372.5 256H184v512h656V370.4H492.1z"])})),t.FolderOpenTwoTone=l("folder-open",c,(function(e,t){return s(o,[t,"M159 768h612.3l103.4-256H262.3z"],[e,"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"])})),t.FrownTwoTone=l("frown",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 0 1-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 0 1-8 8.4zm24-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 0 0 8 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 0 0 8-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.FundTwoTone=l("fund",c,(function(e,t){return s(o,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 0 1-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 0 1-11.3 0l-36.7-36.9a8.03 8.03 0 0 1 0-11.3z"],[e,"M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 0 0-11.3 0L533 561 418.6 446.5a8.03 8.03 0 0 0-11.3 0l-214.9 215a8.03 8.03 0 0 0 0 11.3l36.7 36.9z"])})),t.FunnelPlotTwoTone=l("funnel-plot",c,(function(e,t){return s(o,[t,"M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z"],[e,"M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z"])})),t.GiftTwoTone=l("gift",c,(function(e,t){return s(o,[t,"M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z"],[e,"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z"])})),t.HddTwoTone=l("hdd",c,(function(e,t){return s(o,[t,"M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z"],[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z"],[e,"M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.HeartTwoTone=l("heart",c,(function(e,t){return s(o,[e,"M923 283.6a260.04 260.04 0 0 0-56.9-82.8 264.4 264.4 0 0 0-84-55.5A265.34 265.34 0 0 0 679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 0 0-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z"],[t,"M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z"])})),t.HighlightTwoTone=l("highlight",c,(function(e,t){return s(o,[t,"M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z"],[e,"M957.6 507.5L603.2 158.3a7.9 7.9 0 0 0-11.2 0L353.3 393.5a8.03 8.03 0 0 0-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 0 0-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0 0 11.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0 0 11.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z"])})),t.HomeTwoTone=l("home",c,(function(e,t){return s(o,[t,"M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z"],[e,"M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 0 0-44.4 0L77.5 505a63.6 63.6 0 0 0-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0 0 18.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z"])})),t.HourglassTwoTone=l("hourglass",c,(function(e,t){return s(o,[t,"M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 0 0 354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 0 0 512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z"],[e,"M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 0 1 354 318V184h316v134z"])})),t.Html5TwoTone=l("html5",c,(function(e,t){return s(o,[e,"M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z"],[t,"M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z"],[e,"M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z"])})),t.IdcardTwoTone=l("idcard",c,(function(e,t){return s(o,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z"],[t,"M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 0 1-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z"],[t,"M321.3 463a51.7 52 0 1 0 103.4 0 51.7 52 0 1 0-103.4 0z"],[e,"M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 0 0 8-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0 0 29.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 0 0-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z"])})),t.InfoCircleTwoTone=l("info-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M464 336a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"])})),t.InsuranceTwoTone=l("insurance",c,(function(e,t){return s(o,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M521.9 358.8h97.9v41.6h-97.9z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 0 1-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 0 1-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 0 1-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 0 1-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 0 1 1.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z"],[e,"M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 0 0-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0 0 33.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 0 0-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z"])})),t.InteractionTwoTone=l("interaction",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.InterationTwoTone=l("interation",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z"],[e,"M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z"])})),t.LayoutTwoTone=l("layout",c,(function(e,t){return s(o,[t,"M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z"],[e,"M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z"])})),t.LeftCircleTwoTone=l("left-circle",c,(function(e,t){return s(o,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 0 1 0-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M603.3 327.5l-246 178a7.95 7.95 0 0 0 0 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z"])})),t.LeftSquareTwoTone=l("left-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 0 1 0-12.9z"],[e,"M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 0 0 0 12.9z"])})),t.LikeTwoTone=l("like",c,(function(e,t){return s(o,[t,"M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0 0 33.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0 0 19.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0 0 19.6-43c0-19.1-11-37.5-28.8-48.4z"],[e,"M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 0 0-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 0 0-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 0 1 6.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0 1 42.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z"])})),t.LockTwoTone=l("lock",c,(function(e,t){return s(o,[e,"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z"],[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"])})),t.MailTwoTone=l("mail",c,(function(e,t){return s(o,[t,"M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 0 1-68.7 0z"],[t,"M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z"],[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0 0 68.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z"])})),t.MedicineBoxTwoTone=l("medicine-box",c,(function(e,t){return s(o,[t,"M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z"],[e,"M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M839.2 278.1a32 32 0 0 0-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 0 0-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z"])})),t.MehTwoTone=l("meh",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MessageTwoTone=l("message",c,(function(e,t){return s(o,[t,"M775.3 248.9a369.62 369.62 0 0 0-119-80A370.2 370.2 0 0 0 512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 0 0-80-119zM312 560a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96zm200 0a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M664 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm-400 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"],[e,"M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 0 0-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 0 0-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 0 0 112 714v152a46 46 0 0 0 46 46h152.1A449.4 449.4 0 0 0 510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 0 0 142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"],[e,"M464 512a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.MinusCircleTwoTone=l("minus-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.MinusSquareTwoTone=l("minus-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.MobileTwoTone=l("mobile",c,(function(e,t){return s(o,[e,"M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z"],[t,"M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 786a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.PauseCircleTwoTone=l("pause-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z"],[e,"M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"])})),t.MoneyCollectTwoTone=l("money-collect",c,(function(e,t){return s(o,[t,"M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 0 1 7.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z"],[e,"M911.5 700.7a8 8 0 0 0-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z"],[e,"M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 0 0-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z"])})),t.NotificationTwoTone=l("notification",c,(function(e,t){return s(o,[t,"M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z"],[e,"M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z"])})),t.PhoneTwoTone=l("phone",c,(function(e,t){return s(o,[t,"M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 0 1 438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z"],[e,"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 0 1-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 0 0-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 0 0 285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z"])})),t.PictureTwoTone=l("picture",c,(function(e,t){return s(o,[e,"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z"],[t,"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z"],[t,"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 1 1 0 176 88 88 0 0 1 0-176z"],[t,"M276 368a28 28 0 1 0 56 0 28 28 0 1 0-56 0z"],[e,"M304 456a88 88 0 1 0 0-176 88 88 0 0 0 0 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z"])})),t.PlayCircleTwoTone=l("play-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 0 1-12.7-6.5V353a8 8 0 0 1 12.7-6.5l218.4 158.8a7.9 7.9 0 0 1 0 12.9z"],[e,"M676.1 505.3L457.7 346.5A8 8 0 0 0 445 353v317.6a8.02 8.02 0 0 0 12.7 6.5l218.4-158.9a7.9 7.9 0 0 0 0-12.9z"])})),t.PlaySquareTwoTone=l("play-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 0 1 0 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z"],[e,"M442.3 677.6l199.4-156.8a11.2 11.2 0 0 0 0-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z"])})),t.PieChartTwoTone=l("pie-chart",c,(function(e,t){return s(o,[t,"M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 0 1-85.7-127.1A397.12 397.12 0 0 1 72 552.2v.2a398.57 398.57 0 0 0 117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 0 0 471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z"],[t,"M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 0 0-166.4-89.8z"],[t,"M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z"],[e,"M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 0 0-282.8 117.1 398.19 398.19 0 0 0-85.7 127.1A397.61 397.61 0 0 0 72 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 0 0 472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 0 0 872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 0 1 470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z"],[e,"M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 0 0 589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 0 0-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 0 0 4.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 0 1 166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z"])})),t.PlusCircleTwoTone=l("plus-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z"],[e,"M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.PlusSquareTwoTone=l("plus-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z"],[e,"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.PoundCircleTwoTone=l("pound-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 0 1-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z"],[e,"M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0 0 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z"])})),t.PrinterTwoTone=l("printer",c,(function(e,t){return s(o,[t,"M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z"],[e,"M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z"],[e,"M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z"])})),t.ProfileTwoTone=l("profile",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M340 656a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm0-144a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.ProjectTwoTone=l("project",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z"],[e,"M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z"])})),t.PushpinTwoTone=l("pushpin",c,(function(e,t){return s(o,[t,"M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0 0 30.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z"],[e,"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 0 0-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 0 0-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 0 1-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z"])})),t.PropertySafetyTwoTone=l("property-safety",c,(function(e,t){return s(o,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 0 1 8.9-5.5z"],[e,"M438.9 323.5a9.88 9.88 0 0 0-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 0 0-8.9 5.5l-73.2 144.3-72.9-144.3z"])})),t.QuestionCircleTwoTone=l("question-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 0 0-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z"],[e,"M472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z"])})),t.ReconciliationTwoTone=l("reconciliation",c,(function(e,t){return s(o,[t,"M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[t,"M642 657a34 34 0 1 0 68 0 34 34 0 1 0-68 0z"],[e,"M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"],[e,"M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z"],[e,"M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z"])})),t.RedEnvelopeTwoTone=l("red-envelope",c,(function(e,t){return s(o,[e,"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z"],[t,"M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 0 1-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 0 1 7.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 0 1 3.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 0 1 7.5-4.6z"],[t,"M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z"],[e,"M440.6 462.6a8.38 8.38 0 0 0-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 0 0-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 0 0-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z"])})),t.RestTwoTone=l("rest",c,(function(e,t){return s(o,[t,"M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z"],[e,"M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z"],[e,"M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0 0 31.9 29.3h429.2a32 32 0 0 0 31.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z"])})),t.RightCircleTwoTone=l("right-circle",c,(function(e,t){return s(o,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z"])})),t.RocketTwoTone=l("rocket",c,(function(e,t){return s(o,[t,"M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 0 0-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 0 0-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0 0 43.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0 0 43.1-30.5 97.52 97.52 0 0 0 21.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 0 1-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0 1 62.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z"],[e,"M464 400a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.RightSquareTwoTone=l("right-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z"],[e,"M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z"])})),t.SafetyCertificateTwoTone=l("safety-certificate",c,(function(e,t){return s(o,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 0 1-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z"],[e,"M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0 0 26 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z"])})),t.SaveTwoTone=l("save",c,(function(e,t){return s(o,[t,"M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z"],[e,"M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"],[e,"M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 0 0-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z"])})),t.ScheduleTwoTone=l("schedule",c,(function(e,t){return s(o,[t,"M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 0 1-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z"],[e,"M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0 0 25.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z"],[e,"M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"])})),t.SecurityScanTwoTone=l("security-scan",c,(function(e,t){return s(o,[e,"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z"],[t,"M460.7 451.1a80.1 80.1 0 1 0 160.2 0 80.1 80.1 0 1 0-160.2 0z"],[t,"M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 0 1-11.3 0l-34-34a8.03 8.03 0 0 1 0-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z"],[e,"M418.8 527.8l-77.5 77.5a8.03 8.03 0 0 0 0 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 0 1 113.3 0 80.1 80.1 0 0 1 0 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z"])})),t.SettingTwoTone=l("setting",c,(function(e,t){return s(o,[t,"M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 0 0-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z"],[t,"M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 0 1-79.7 137.9l-1.8 2.1a32 32 0 0 1-35.1 9.5l-81.3-28.9a350 350 0 0 1-99.7 57.6l-15.7 85a32.05 32.05 0 0 1-25.8 25.7l-2.7.5a445.2 445.2 0 0 1-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z"],[e,"M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502z"],[e,"M594.1 952.2a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 0 0-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6a32.09 32.09 0 0 0 7.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z"])})),t.ShopTwoTone=l("shop",c,(function(e,t){return s(o,[t,"M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z"],[e,"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0 0 14.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0 0 15.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0 0 38.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 0 1 512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 0 1-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z"])})),t.ShoppingTwoTone=l("shopping",c,(function(e,t){return s(o,[t,"M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z"],[e,"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z"])})),t.SkinTwoTone=l("skin",c,(function(e,t){return s(o,[t,"M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z"],[e,"M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 0 0-37-29.3H154a44 44 0 0 0-44 44v252a44 44 0 0 0 44 44h75v388a44 44 0 0 0 44 44h478a44 44 0 0 0 44-44V466h75a44 44 0 0 0 44-44V170a44 44 0 0 0-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z"])})),t.SlidersTwoTone=l("sliders",c,(function(e,t){return s(o,[t,"M180 292h80v440h-80zm369 180h-74a3 3 0 0 0-3 3v74a3 3 0 0 0 3 3h74a3 3 0 0 0 3-3v-74a3 3 0 0 0-3-3zm215-108h80v296h-80z"],[e,"M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 0 1-3 3h-74a3 3 0 0 1-3-3v-74a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z"])})),t.SmileTwoTone=l("smile",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0 1 96 0 48.01 48.01 0 0 1-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 0 1 8-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 0 1 8 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 0 1 0-96 48.01 48.01 0 0 1 0 96z"],[e,"M288 421a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 0 0-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 0 0-8-8.4zm-24-112a48 48 0 1 0 96 0 48 48 0 1 0-96 0z"])})),t.SnippetsTwoTone=l("snippets",c,(function(e,t){return s(o,[t,"M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z"],[e,"M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z"])})),t.SoundTwoTone=l("sound",c,(function(e,t){return s(o,[t,"M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z"],[e,"M892.1 737.8l-110.3-63.7a15.9 15.9 0 0 0-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0 0 21.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0 0 21.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 0 0-21.7-5.9L746 287.8a15.99 15.99 0 0 0-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z"])})),t.StarTwoTone=l("star",c,(function(e,t){return s(o,[t,"M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z"],[e,"M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 0 0 .6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0 0 46.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z"])})),t.StopTwoTone=l("stop",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z"])})),t.SwitcherTwoTone=l("switcher",c,(function(e,t){return s(o,[t,"M184 840h528V312H184v528zm116-290h296v64H300v-64z"],[e,"M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z"],[e,"M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z"],[e,"M300 550h296v64H300z"])})),t.TabletTwoTone=l("tablet",c,(function(e,t){return s(o,[e,"M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z"],[t,"M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M472 784a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"])})),t.TagTwoTone=l("tag",c,(function(e,t){return s(o,[t,"M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z"],[e,"M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],[e,"M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 0 0 0 14.1l363.8 363.8a9.9 9.9 0 0 0 7.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z"])})),t.TagsTwoTone=l("tags",c,(function(e,t){return s(o,[t,"M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0 1 33.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0 1 12.4 46.4 47.81 47.81 0 0 1-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 0 1-12.4-46.4z"],[t,"M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 0 1 0-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z"],[e,"M889.7 539.8l-39.6-39.5a8.03 8.03 0 0 0-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 0 0-11.3 0l-39.6 39.5a8.03 8.03 0 0 0 0 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0 0 33.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 0 0-46.4-12.4 47.81 47.81 0 0 0-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0 0 46.4 12.4z"],[e,"M137.7 444.8a8.03 8.03 0 0 0 0 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z"])})),t.ToolTwoTone=l("tool",c,(function(e,t){return s(o,[t,"M706.8 488.7a32.05 32.05 0 0 1-45.3 0L537 364.2a32.05 32.05 0 0 1 0-45.3l132.9-132.8a184.2 184.2 0 0 0-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z"],[e,"M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 0 1 144-53.5L537 318.9a32.05 32.05 0 0 0 0 45.3l124.5 124.5a32.05 32.05 0 0 0 45.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z"])})),t.TrademarkCircleTwoTone=l("trademark-circle",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z"],[t,"M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z"],[e,"M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z"])})),t.UnlockTwoTone=l("unlock",c,(function(e,t){return s(o,[t,"M232 840h560V536H232v304zm280-226a48.01 48.01 0 0 1 28 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0 1 28-87z"],[e,"M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z"],[e,"M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z"])})),t.TrophyTwoTone=l("trophy",c,(function(e,t){return s(o,[t,"M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z"],[e,"M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 0 0-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 0 0-44-44zM248 439.6a91.99 91.99 0 0 1-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z"])})),t.UpCircleTwoTone=l("up-circle",c,(function(e,t){return s(o,[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z"],[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[e,"M518.4 360.3a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z"])})),t.ThunderboltTwoTone=l("thunderbolt",c,(function(e,t){return s(o,[t,"M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z"],[e,"M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z"])})),t.UpSquareTwoTone=l("up-square",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"],[t,"M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z"],[e,"M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 0 0-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z"])})),t.UsbTwoTone=l("usb",c,(function(e,t){return s(o,[t,"M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z"],[e,"M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"],[e,"M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z"])})),t.VideoCameraTwoTone=l("video-camera",c,(function(e,t){return s(o,[t,"M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z"],[e,"M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z"],[e,"M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z"])})),t.WalletTwoTone=l("wallet",c,(function(e,t){return s(o,[e,"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z"],[t,"M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z"],[e,"M580 512a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"],[t,"M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z"])})),t.WarningTwoTone=l("warning",c,(function(e,t){return s(o,[e,"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z"],[t,"M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 0 1-96 0 48.01 48.01 0 0 1 96 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z"],[e,"M464 720a48 48 0 1 0 96 0 48 48 0 1 0-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z"])})),t.CiTwoTone=l("ci",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z"],[e,"M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z"])})),t.CopyrightTwoTone=l("copyright",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z"],[e,"M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z"])})),t.DollarTwoTone=l("dollar",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 0 1-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z"],[e,"M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z"])})),t.EuroTwoTone=l("euro",c,(function(e,t){return s(o,[e,"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"],[t,"M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 0 1-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z"],[e,"M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 0 0 9.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z"])})),t.GoldTwoTone=l("gold",c,(function(e,t){return s(o,[e,"M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z"],[t,"M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z"])})),t.CanlendarTwoTone=l("canlendar",c,(function(e,t){return s(o,[t,"M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z"],[e,"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z"])}))},function(e,t,n){n(544);var r=n(62).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(93);r(r.S+r.F*!n(84),"Object",{defineProperty:n(83).f})},function(e,t,n){e.exports={default:n(546),__esModule:!0}},function(e,t,n){n(245),n(552),e.exports=n(175).f("iterator")},function(e,t,n){var r=n(168),o=n(167);e.exports=function(e){return function(t,n){var i,a,c=String(o(t)),s=r(n),l=c.length;return s<0||s>=l?e?"":void 0:(i=c.charCodeAt(s))<55296||i>56319||s+1===l||(a=c.charCodeAt(s+1))<56320||a>57343?e?c.charAt(s):i:e?c.slice(s,s+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(173),o=n(117),i=n(174),a={};n(103)(a,n(63)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(83),o=n(104),i=n(130);e.exports=n(84)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),c=a.length,s=0;c>s;)r.f(e,n=a[s++],t[n]);return e}},function(e,t,n){var r=n(82).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(94),o=n(134),i=n(169)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){n(553);for(var r=n(82),o=n(103),i=n(118),a=n(63)("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<c.length;s++){var l=c[s],u=r[l],f=u&&u.prototype;f&&!f[a]&&o(f,a,l),i[l]=i.Array}},function(e,t,n){"use strict";var r=n(554),o=n(555),i=n(118),a=n(106);e.exports=n(246)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(557),__esModule:!0}},function(e,t,n){n(558),n(563),n(564),n(565),e.exports=n(62).Symbol},function(e,t,n){"use strict";var r=n(82),o=n(94),i=n(84),a=n(93),c=n(247),s=n(559).KEY,l=n(116),u=n(170),f=n(174),d=n(132),p=n(63),h=n(175),m=n(176),v=n(560),y=n(561),_=n(104),g=n(105),b=n(134),M=n(106),w=n(165),O=n(117),S=n(173),C=n(562),x=n(249),k=n(172),L=n(83),E=n(130),T=x.f,P=L.f,j=C.f,z=r.Symbol,D=r.JSON,N=D&&D.stringify,H=p("_hidden"),A=p("toPrimitive"),Y={}.propertyIsEnumerable,I=u("symbol-registry"),V=u("symbols"),F=u("op-symbols"),R=Object.prototype,W="function"==typeof z&&!!k.f,U=r.QObject,B=!U||!U.prototype||!U.prototype.findChild,K=i&&l((function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=T(R,t);r&&delete R[t],P(e,t,n),r&&e!==R&&P(R,t,r)}:P,q=function(e){var t=V[e]=S(z.prototype);return t._k=e,t},G=W&&"symbol"==typeof z.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof z},$=function(e,t,n){return e===R&&$(F,t,n),_(e),t=w(t,!0),_(n),o(V,t)?(n.enumerable?(o(e,H)&&e[H][t]&&(e[H][t]=!1),n=S(n,{enumerable:O(0,!1)})):(o(e,H)||P(e,H,O(1,{})),e[H][t]=!0),K(e,t,n)):P(e,t,n)},J=function(e,t){_(e);for(var n,r=v(t=M(t)),o=0,i=r.length;i>o;)$(e,n=r[o++],t[n]);return e},X=function(e){var t=Y.call(this,e=w(e,!0));return!(this===R&&o(V,e)&&!o(F,e))&&(!(t||!o(this,e)||!o(V,e)||o(this,H)&&this[H][e])||t)},Q=function(e,t){if(e=M(e),t=w(t,!0),e!==R||!o(V,t)||o(F,t)){var n=T(e,t);return!n||!o(V,t)||o(e,H)&&e[H][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=j(M(e)),r=[],i=0;n.length>i;)o(V,t=n[i++])||t==H||t==s||r.push(t);return r},ee=function(e){for(var t,n=e===R,r=j(n?F:M(e)),i=[],a=0;r.length>a;)!o(V,t=r[a++])||n&&!o(R,t)||i.push(V[t]);return i};W||(c((z=function(){if(this instanceof z)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),t=function(n){this===R&&t.call(F,n),o(this,H)&&o(this[H],e)&&(this[H][e]=!1),K(this,e,O(1,n))};return i&&B&&K(R,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),x.f=Q,L.f=$,n(248).f=C.f=Z,n(133).f=X,k.f=ee,i&&!n(131)&&c(R,"propertyIsEnumerable",X,!0),h.f=function(e){return q(p(e))}),a(a.G+a.W+a.F*!W,{Symbol:z});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)p(te[ne++]);for(var re=E(p.store),oe=0;re.length>oe;)m(re[oe++]);a(a.S+a.F*!W,"Symbol",{for:function(e){return o(I,e+="")?I[e]:I[e]=z(e)},keyFor:function(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in I)if(I[t]===e)return t},useSetter:function(){B=!0},useSimple:function(){B=!1}}),a(a.S+a.F*!W,"Object",{create:function(e,t){return void 0===t?S(e):J(S(e),t)},defineProperty:$,defineProperties:J,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:ee});var ie=l((function(){k.f(1)}));a(a.S+a.F*ie,"Object",{getOwnPropertySymbols:function(e){return k.f(b(e))}}),D&&a(a.S+a.F*(!W||l((function(){var e=z();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(g(t)||void 0!==e)&&!G(e))return y(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!G(t))return t}),r[1]=t,N.apply(D,r)}}),z.prototype[A]||n(103)(z.prototype,A,z.prototype.valueOf),f(z,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(e,t,n){var r=n(132)("meta"),o=n(105),i=n(94),a=n(83).f,c=0,s=Object.isExtensible||function(){return!0},l=!n(116)((function(){return s(Object.preventExtensions({}))})),u=function(e){a(e,r,{value:{i:"O"+ ++c,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return l&&f.NEED&&s(e)&&!i(e,r)&&u(e),e}}},function(e,t,n){var r=n(130),o=n(172),i=n(133);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,c=n(e),s=i.f,l=0;c.length>l;)s.call(e,a=c[l++])&&t.push(a);return t}},function(e,t,n){var r=n(166);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(106),o=n(248).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(e){return a.slice()}}(e):o(r(e))}},function(e,t){},function(e,t,n){n(176)("asyncIterator")},function(e,t,n){n(176)("observable")},function(e,t,n){e.exports={default:n(567),__esModule:!0}},function(e,t,n){n(568),e.exports=n(62).Object.setPrototypeOf},function(e,t,n){var r=n(93);r(r.S,"Object",{setPrototypeOf:n(569).set})},function(e,t,n){var r=n(105),o=n(104),i=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(164)(Function.call,n(249).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},function(e,t,n){e.exports={default:n(571),__esModule:!0}},function(e,t,n){n(572);var r=n(62).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(93);r(r.S,"Object",{create:n(173)})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(574));function i(e,t,n){var r;return(r=Math.round(e.h)>=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function a(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?Math.round(100*e.s)-16*t:4===t?Math.round(100*e.s)+16:Math.round(100*e.s)+5*t)>100&&(r=100),n&&5===t&&r>10&&(r=10),r<6&&(r=6),r);var r}function c(e,t,n){return n?Math.round(100*e.v)+5*t:Math.round(100*e.v)-15*t}t.default=function(e){for(var t=[],n=o.default(e),r=5;r>0;r-=1){var s=n.toHsv(),l=o.default({h:i(s,r,!0),s:a(s,r,!0),v:c(s,r,!0)}).toHexString();t.push(l)}for(t.push(n.toHexString()),r=1;r<=4;r+=1){s=n.toHsv(),l=o.default({h:i(s,r),s:a(s,r),v:c(s,r)}).toHexString();t.push(l)}return t}},function(e,t,n){var r;!function(o){var i=/^\s+/,a=/\s+$/,c=0,s=o.round,l=o.min,u=o.max,f=o.random;function d(e,t){if(t=t||{},(e=e||"")instanceof d)return e;if(!(this instanceof d))return new d(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,r=null,c=null,s=null,f=!1,d=!1;"string"==typeof e&&(e=function(e){e=e.replace(i,"").replace(a,"").toLowerCase();var t,n=!1;if(T[e])e=T[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=W.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=W.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=W.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=W.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=W.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=W.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=W.hex8.exec(e))return{r:N(t[1]),g:N(t[2]),b:N(t[3]),a:I(t[4]),format:n?"name":"hex8"};if(t=W.hex6.exec(e))return{r:N(t[1]),g:N(t[2]),b:N(t[3]),format:n?"name":"hex"};if(t=W.hex4.exec(e))return{r:N(t[1]+""+t[1]),g:N(t[2]+""+t[2]),b:N(t[3]+""+t[3]),a:I(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=W.hex3.exec(e))return{r:N(t[1]+""+t[1]),g:N(t[2]+""+t[2]),b:N(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==typeof e&&(U(e.r)&&U(e.g)&&U(e.b)?(p=e.r,h=e.g,m=e.b,t={r:255*z(p,255),g:255*z(h,255),b:255*z(m,255)},f=!0,d="%"===String(e.r).substr(-1)?"prgb":"rgb"):U(e.h)&&U(e.s)&&U(e.v)?(r=A(e.s),c=A(e.v),t=function(e,t,n){e=6*z(e,360),t=z(t,100),n=z(n,100);var r=o.floor(e),i=e-r,a=n*(1-t),c=n*(1-i*t),s=n*(1-(1-i)*t),l=r%6;return{r:255*[n,c,a,a,s,n][l],g:255*[s,n,n,c,a,a][l],b:255*[a,a,s,n,n,c][l]}}(e.h,r,c),f=!0,d="hsv"):U(e.h)&&U(e.s)&&U(e.l)&&(r=A(e.s),s=A(e.l),t=function(e,t,n){var r,o,i;function a(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=z(e,360),t=z(t,100),n=z(n,100),0===t)r=o=i=n;else{var c=n<.5?n*(1+t):n+t-n*t,s=2*n-c;r=a(s,c,e+1/3),o=a(s,c,e),i=a(s,c,e-1/3)}return{r:255*r,g:255*o,b:255*i}}(e.h,r,s),f=!0,d="hsl"),e.hasOwnProperty("a")&&(n=e.a));var p,h,m;return n=j(n),{ok:f,format:e.format||d,r:l(255,u(t.r,0)),g:l(255,u(t.g,0)),b:l(255,u(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=s(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=n.ok,this._tc_id=c++}function p(e,t,n){e=z(e,255),t=z(t,255),n=z(n,255);var r,o,i=u(e,t,n),a=l(e,t,n),c=(i+a)/2;if(i==a)r=o=0;else{var s=i-a;switch(o=c>.5?s/(2-i-a):s/(i+a),i){case e:r=(t-n)/s+(t<n?6:0);break;case t:r=(n-e)/s+2;break;case n:r=(e-t)/s+4}r/=6}return{h:r,s:o,l:c}}function h(e,t,n){e=z(e,255),t=z(t,255),n=z(n,255);var r,o,i=u(e,t,n),a=l(e,t,n),c=i,s=i-a;if(o=0===i?0:s/i,i==a)r=0;else{switch(i){case e:r=(t-n)/s+(t<n?6:0);break;case t:r=(n-e)/s+2;break;case n:r=(e-t)/s+4}r/=6}return{h:r,s:o,v:c}}function m(e,t,n,r){var o=[H(s(e).toString(16)),H(s(t).toString(16)),H(s(n).toString(16))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function v(e,t,n,r){return[H(Y(r)),H(s(e).toString(16)),H(s(t).toString(16)),H(s(n).toString(16))].join("")}function y(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.s-=t/100,n.s=D(n.s),d(n)}function _(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.s+=t/100,n.s=D(n.s),d(n)}function g(e){return d(e).desaturate(100)}function b(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.l+=t/100,n.l=D(n.l),d(n)}function M(e,t){t=0===t?0:t||10;var n=d(e).toRgb();return n.r=u(0,l(255,n.r-s(-t/100*255))),n.g=u(0,l(255,n.g-s(-t/100*255))),n.b=u(0,l(255,n.b-s(-t/100*255))),d(n)}function w(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.l-=t/100,n.l=D(n.l),d(n)}function O(e,t){var n=d(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,d(n)}function S(e){var t=d(e).toHsl();return t.h=(t.h+180)%360,d(t)}function C(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+120)%360,s:t.s,l:t.l}),d({h:(n+240)%360,s:t.s,l:t.l})]}function x(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+90)%360,s:t.s,l:t.l}),d({h:(n+180)%360,s:t.s,l:t.l}),d({h:(n+270)%360,s:t.s,l:t.l})]}function k(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+72)%360,s:t.s,l:t.l}),d({h:(n+216)%360,s:t.s,l:t.l})]}function L(e,t,n){t=t||6,n=n||30;var r=d(e).toHsl(),o=360/n,i=[d(e)];for(r.h=(r.h-(o*t>>1)+720)%360;--t;)r.h=(r.h+o)%360,i.push(d(r));return i}function E(e,t){t=t||6;for(var n=d(e).toHsv(),r=n.h,o=n.s,i=n.v,a=[],c=1/t;t--;)a.push(d({h:r,s:o,v:i})),i=(i+c)%1;return a}d.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:o.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:o.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:o.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=j(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=h(this._r,this._g,this._b),t=s(360*e.h),n=s(100*e.s),r=s(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=p(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=p(this._r,this._g,this._b),t=s(360*e.h),n=s(100*e.s),r=s(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return m(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,o){var i=[H(s(e).toString(16)),H(s(t).toString(16)),H(s(n).toString(16)),H(Y(r))];if(o&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1))return i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0);return i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*z(this._r,255))+"%",g:s(100*z(this._g,255))+"%",b:s(100*z(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*z(this._r,255))+"%, "+s(100*z(this._g,255))+"%, "+s(100*z(this._b,255))+"%)":"rgba("+s(100*z(this._r,255))+"%, "+s(100*z(this._g,255))+"%, "+s(100*z(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(P[m(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+v(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=d(e);n="#"+v(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return d(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(M,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(_,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(O,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(L,arguments)},complement:function(){return this._applyCombination(S,arguments)},monochromatic:function(){return this._applyCombination(E,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(C,arguments)},tetrad:function(){return this._applyCombination(x,arguments)}},d.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:A(e[r]));e=n}return d(e,t)},d.equals=function(e,t){return!(!e||!t)&&d(e).toRgbString()==d(t).toRgbString()},d.random=function(){return d.fromRatio({r:f(),g:f(),b:f()})},d.mix=function(e,t,n){n=0===n?0:n||50;var r=d(e).toRgb(),o=d(t).toRgb(),i=n/100;return d({r:(o.r-r.r)*i+r.r,g:(o.g-r.g)*i+r.g,b:(o.b-r.b)*i+r.b,a:(o.a-r.a)*i+r.a})},d.readability=function(e,t){var n=d(e),r=d(t);return(o.max(n.getLuminance(),r.getLuminance())+.05)/(o.min(n.getLuminance(),r.getLuminance())+.05)},d.isReadable=function(e,t,n){var r,o,i=d.readability(e,t);switch(o=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":o=i>=4.5;break;case"AAlarge":o=i>=3;break;case"AAAsmall":o=i>=7}return o},d.mostReadable=function(e,t,n){var r,o,i,a,c=null,s=0;o=(n=n||{}).includeFallbackColors,i=n.level,a=n.size;for(var l=0;l<t.length;l++)(r=d.readability(e,t[l]))>s&&(s=r,c=d(t[l]));return d.isReadable(e,c,{level:i,size:a})||!o?c:(n.includeFallbackColors=!1,d.mostReadable(e,["#fff","#000"],n))};var T=d.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},P=d.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(T);function j(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function z(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=l(t,u(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),o.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function D(e){return l(1,u(0,e))}function N(e){return parseInt(e,16)}function H(e){return 1==e.length?"0"+e:""+e}function A(e){return e<=1&&(e=100*e+"%"),e}function Y(e){return o.round(255*parseFloat(e)).toString(16)}function I(e){return N(e)/255}var V,F,R,W=(F="[\\s|\\(]+("+(V="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?",R="[\\s|\\(]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?",{CSS_UNIT:new RegExp(V),rgb:new RegExp("rgb"+F),rgba:new RegExp("rgba"+R),hsl:new RegExp("hsl"+F),hsla:new RegExp("hsla"+R),hsv:new RegExp("hsv"+F),hsva:new RegExp("hsva"+R),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(e){return!!W.CSS_UNIT.exec(e)}e.exports?e.exports=d:void 0===(r=function(){return d}.call(t,n,t,e))||(e.exports=r)}(Math)},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.scriptUrl,n=e.extraCommonProps,r=void 0===n?{}:n;if("undefined"!=typeof document&&"undefined"!=typeof window&&"function"==typeof document.createElement&&"string"==typeof t&&t.length&&!u.has(t)){var o=document.createElement("script");o.setAttribute("src",t),o.setAttribute("data-namespace",t),u.add(t),document.body.appendChild(o)}var c=function(e){var t=e.type,n=e.children,o=l(e,["type","children"]),c=null;return e.type&&(c=i.createElement("use",{xlinkHref:"#".concat(t)})),n&&(c=n),i.createElement(a.default,s({},r,o),c)};return c.displayName="Iconfont",c};var o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=(o=n(51))&&o.__esModule?o:{default:o};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},u=new Set},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getThemeFromTypeName=function(e){var t=null;i.test(e)?t="filled":a.test(e)?t="outlined":c.test(e)&&(t="twoTone");return t},t.removeTypeTheme=function(e){return e.replace(i,"").replace(a,"").replace(c,"")},t.withThemeSuffix=function(e,t){var n=e;"filled"===t?n+="-fill":"outlined"===t?n+="-o":"twoTone"===t?n+="-twotone":(0,o.default)(!1,"Icon","This icon '".concat(e,"' has unknown theme '").concat(t,"'"));return n},t.alias=function(e){var t=e;switch(e){case"cross":t="close";break;case"interation":t="interaction";break;case"canlendar":t="calendar";break;case"colum-height":t="column-height"}return(0,o.default)(t===e,"Icon","Icon '".concat(e,"' was a typo and is now deprecated, please use '").concat(t,"' instead.")),t},t.svgBaseProps=void 0;var r,o=(r=n(64))&&r.__esModule?r:{default:r};t.svgBaseProps={width:"1em",height:"1em",fill:"currentColor","aria-hidden":!0,focusable:"false"};var i=/-fill$/,a=/-o$/,c=/-twotone$/},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=((r=n(251))&&r.__esModule?r:{default:r}).default;t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default={today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},e.exports=t.default},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=((r=n(252))&&r.__esModule?r:{default:r}).default;t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=function(e){return o.default.setTwoToneColors({primaryColor:e})},t.getTwoToneColor=function(){return o.default.getTwoToneColors().primaryColor};var r,o=(r=n(496))&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ANT_MARK=void 0;var r=f(n(0)),o=f(n(1)),i=f(n(4)),a=l(n(584)),c=n(177),s=l(n(64));function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function f(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var o=_(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e){e&&e.locale?(0,a.default)(i).locale(e.locale):(0,a.default)(i).locale("en")}t.ANT_MARK="internalMark";var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(i,e);var t,n,r,o=v(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),t=o.call(this,e),g(e.locale),(0,c.changeConfirmLocale)(e.locale&&e.locale.Modal),(0,s.default)("internalMark"===e._ANT_MARK__,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),t}return t=i,(n=[{key:"getChildContext",value:function(){return{antLocale:p(p({},this.props.locale),{exist:!0})}}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(g(t),(0,c.changeConfirmLocale)(t&&t.Modal))}},{key:"componentWillUnmount",value:function(){(0,c.changeConfirmLocale)()}},{key:"render",value:function(){return this.props.children}}])&&h(t.prototype,n),r&&h(t,r),i}(r.Component);t.default=b,b.propTypes={locale:o.object},b.defaultProps={locale:{}},b.childContextTypes={antLocale:o.object}},function(e,t,n){var r={"./af":254,"./af.js":254,"./ar":255,"./ar-dz":256,"./ar-dz.js":256,"./ar-kw":257,"./ar-kw.js":257,"./ar-ly":258,"./ar-ly.js":258,"./ar-ma":259,"./ar-ma.js":259,"./ar-sa":260,"./ar-sa.js":260,"./ar-tn":261,"./ar-tn.js":261,"./ar.js":255,"./az":262,"./az.js":262,"./be":263,"./be.js":263,"./bg":264,"./bg.js":264,"./bm":265,"./bm.js":265,"./bn":266,"./bn.js":266,"./bo":267,"./bo.js":267,"./br":268,"./br.js":268,"./bs":269,"./bs.js":269,"./ca":270,"./ca.js":270,"./cs":271,"./cs.js":271,"./cv":272,"./cv.js":272,"./cy":273,"./cy.js":273,"./da":274,"./da.js":274,"./de":275,"./de-at":276,"./de-at.js":276,"./de-ch":277,"./de-ch.js":277,"./de.js":275,"./dv":278,"./dv.js":278,"./el":279,"./el.js":279,"./en-au":280,"./en-au.js":280,"./en-ca":281,"./en-ca.js":281,"./en-gb":282,"./en-gb.js":282,"./en-ie":283,"./en-ie.js":283,"./en-il":284,"./en-il.js":284,"./en-in":285,"./en-in.js":285,"./en-nz":286,"./en-nz.js":286,"./en-sg":287,"./en-sg.js":287,"./eo":288,"./eo.js":288,"./es":289,"./es-do":290,"./es-do.js":290,"./es-us":291,"./es-us.js":291,"./es.js":289,"./et":292,"./et.js":292,"./eu":293,"./eu.js":293,"./fa":294,"./fa.js":294,"./fi":295,"./fi.js":295,"./fil":296,"./fil.js":296,"./fo":297,"./fo.js":297,"./fr":298,"./fr-ca":299,"./fr-ca.js":299,"./fr-ch":300,"./fr-ch.js":300,"./fr.js":298,"./fy":301,"./fy.js":301,"./ga":302,"./ga.js":302,"./gd":303,"./gd.js":303,"./gl":304,"./gl.js":304,"./gom-deva":305,"./gom-deva.js":305,"./gom-latn":306,"./gom-latn.js":306,"./gu":307,"./gu.js":307,"./he":308,"./he.js":308,"./hi":309,"./hi.js":309,"./hr":310,"./hr.js":310,"./hu":311,"./hu.js":311,"./hy-am":312,"./hy-am.js":312,"./id":313,"./id.js":313,"./is":314,"./is.js":314,"./it":315,"./it-ch":316,"./it-ch.js":316,"./it.js":315,"./ja":317,"./ja.js":317,"./jv":318,"./jv.js":318,"./ka":319,"./ka.js":319,"./kk":320,"./kk.js":320,"./km":321,"./km.js":321,"./kn":322,"./kn.js":322,"./ko":323,"./ko.js":323,"./ku":324,"./ku.js":324,"./ky":325,"./ky.js":325,"./lb":326,"./lb.js":326,"./lo":327,"./lo.js":327,"./lt":328,"./lt.js":328,"./lv":329,"./lv.js":329,"./me":330,"./me.js":330,"./mi":331,"./mi.js":331,"./mk":332,"./mk.js":332,"./ml":333,"./ml.js":333,"./mn":334,"./mn.js":334,"./mr":335,"./mr.js":335,"./ms":336,"./ms-my":337,"./ms-my.js":337,"./ms.js":336,"./mt":338,"./mt.js":338,"./my":339,"./my.js":339,"./nb":340,"./nb.js":340,"./ne":341,"./ne.js":341,"./nl":342,"./nl-be":343,"./nl-be.js":343,"./nl.js":342,"./nn":344,"./nn.js":344,"./oc-lnc":345,"./oc-lnc.js":345,"./pa-in":346,"./pa-in.js":346,"./pl":347,"./pl.js":347,"./pt":348,"./pt-br":349,"./pt-br.js":349,"./pt.js":348,"./ro":350,"./ro.js":350,"./ru":351,"./ru.js":351,"./sd":352,"./sd.js":352,"./se":353,"./se.js":353,"./si":354,"./si.js":354,"./sk":355,"./sk.js":355,"./sl":356,"./sl.js":356,"./sq":357,"./sq.js":357,"./sr":358,"./sr-cyrl":359,"./sr-cyrl.js":359,"./sr.js":358,"./ss":360,"./ss.js":360,"./sv":361,"./sv.js":361,"./sw":362,"./sw.js":362,"./ta":363,"./ta.js":363,"./te":364,"./te.js":364,"./tet":365,"./tet.js":365,"./tg":366,"./tg.js":366,"./th":367,"./th.js":367,"./tk":368,"./tk.js":368,"./tl-ph":369,"./tl-ph.js":369,"./tlh":370,"./tlh.js":370,"./tr":371,"./tr.js":371,"./tzl":372,"./tzl.js":372,"./tzm":373,"./tzm-latn":374,"./tzm-latn.js":374,"./tzm.js":373,"./ug-cn":375,"./ug-cn.js":375,"./uk":376,"./uk.js":376,"./ur":377,"./ur.js":377,"./uz":378,"./uz-latn":379,"./uz-latn.js":379,"./uz.js":378,"./vi":380,"./vi.js":380,"./x-pseudo":381,"./x-pseudo.js":381,"./yo":382,"./yo.js":382,"./zh-cn":383,"./zh-cn.js":383,"./zh-hk":384,"./zh-hk.js":384,"./zh-mo":385,"./zh-mo.js":385,"./zh-tw":386,"./zh-tw.js":386};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=583},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.default||e}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.withConfigConsumer=function(e){return function(t){var n=function(n){return o.createElement(f,null,(function(r){var i=e.prefixCls,a=(0,r.getPrefixCls)(i,n.prefixCls);return o.createElement(t,l({},r,n,{prefixCls:a}))}))},r=t.constructor,i=r&&r.displayName||t.name||"Component";return n.displayName="withConfigConsumer(".concat(i,")"),n}},t.ConfigConsumer=t.ConfigContext=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=c(n(178)),a=c(n(588));function c(e){return e&&e.__esModule?e:{default:e}}function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=(0,i.default)({getPrefixCls:function(e,t){return t||"ant-".concat(e)},renderEmpty:a.default});t.ConfigContext=u;var f=u.Consumer;t.ConfigConsumer=f},function(e,t,n){"use strict";t.__esModule=!0;var r=n(0),o=(a(r),a(n(1))),i=a(n(587));a(n(109));function a(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}t.default=function(e,t){var n,a,f="__create-react-context-"+(0,i.default)()+"__",d=function(e){function n(){var t,r;c(this,n);for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return t=r=s(this,e.call.apply(e,[this].concat(i))),r.emitter=u(r.props.value),s(r,t)}return l(n,e),n.prototype.getChildContext=function(){var e;return(e={})[f]=this.emitter,e},n.prototype.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n=this.props.value,r=e.value,o=void 0;((i=n)===(a=r)?0!==i||1/i==1/a:i!=i&&a!=a)?o=0:(o="function"==typeof t?t(n,r):1073741823,0!==(o|=0)&&this.emitter.set(e.value,o))}var i,a},n.prototype.render=function(){return this.props.children},n}(r.Component);d.childContextTypes=((n={})[f]=o.default.object.isRequired,n);var p=function(t){function n(){var e,r;c(this,n);for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return e=r=s(this,t.call.apply(t,[this].concat(i))),r.state={value:r.getValue()},r.onUpdate=function(e,t){0!=((0|r.observedBits)&t)&&r.setState({value:r.getValue()})},s(r,e)}return l(n,t),n.prototype.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?1073741823:t},n.prototype.componentDidMount=function(){this.context[f]&&this.context[f].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?1073741823:e},n.prototype.componentWillUnmount=function(){this.context[f]&&this.context[f].off(this.onUpdate)},n.prototype.getValue=function(){return this.context[f]?this.context[f].get():e},n.prototype.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return p.contextTypes=((a={})[f]=o.default.object,a),{Provider:d,Consumer:p}},e.exports=t.default},function(e,t,n){"use strict";(function(t){var n="__global_unique_id__";e.exports=function(){return t[n]=(t[n]||0)+1}}).call(this,n(61))},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=(o=n(589))&&o.__esModule?o:{default:o},c=n(43);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}var l=function(e){return i.createElement(c.ConfigConsumer,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return i.createElement(a.default,{image:a.default.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return i.createElement(a.default,{image:a.default.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return i.createElement(a.default,null)}}))};t.default=l},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=u(n(3)),a=n(43),c=u(n(135)),s=u(n(590)),l=u(n(591));function u(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=o.createElement(s.default,null),m=o.createElement(l.default,null),v=function(e){return o.createElement(a.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.className,a=e.prefixCls,s=e.image,l=void 0===s?h:s,u=e.description,f=e.children,v=e.imageStyle,y=p(e,["className","prefixCls","image","description","children","imageStyle"]);return o.createElement(c.default,{componentName:"Empty"},(function(e){var t,c,s,p=n("empty",a),h=void 0!==u?u:e.description,_="string"==typeof h?h:"empty",g=null;return g="string"==typeof l?o.createElement("img",{alt:_,src:l}):l,o.createElement("div",d({className:(0,i.default)(p,(t={},c="".concat(p,"-normal"),s=l===m,c in t?Object.defineProperty(t,c,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[c]=s,t),r)},y),o.createElement("div",{className:"".concat(p,"-image"),style:v},g),h&&o.createElement("p",{className:"".concat(p,"-description")},h),f&&o.createElement("div",{className:"".concat(p,"-footer")},f))}))}))};v.PRESENTED_IMAGE_DEFAULT=h,v.PRESENTED_IMAGE_SIMPLE=m;var y=v;t.default=y},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=o?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0));function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}var a=function(){return o.createElement("svg",{width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{fill:"none",fillRule:"evenodd"},o.createElement("g",{transform:"translate(24 31.67)"},o.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),o.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),o.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),o.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),o.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),o.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),o.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},o.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),o.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))};t.default=a},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var c=o?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(n,a,c):n[a]=e[a]}n.default=e,t&&t.set(e,n);return n}(n(0));function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}var a=function(){return o.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},o.createElement("ellipse",{fill:"#F5F5F5",cx:"32",cy:"33",rx:"32",ry:"7"}),o.createElement("g",{fillRule:"nonzero",stroke:"#D9D9D9"},o.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),o.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:"#FAFAFA"}))))};t.default=a},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=(o=n(3))&&o.__esModule?o:{default:o},c=n(43);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var u=function(e){return i.createElement(c.ConfigConsumer,null,(function(t){var n,r=t.getPrefixCls,o=e.prefixCls,c=e.className,s=void 0===c?"":c,u=r("input-group",o),f=(0,a.default)(u,(l(n={},"".concat(u,"-lg"),"large"===e.size),l(n,"".concat(u,"-sm"),"small"===e.size),l(n,"".concat(u,"-compact"),e.compact),n),s);return i.createElement("span",{className:f,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},e.children)}))};t.default=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==d(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=u(n(3)),i=n(594),a=u(n(115)),c=u(n(51)),s=u(n(126)),l=n(43);function u(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(e){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return g(this,n)}}function g(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(d,e);var t,n,u,f=_(d);function d(){var e;return m(this,d),(e=f.apply(this,arguments)).saveInput=function(t){e.input=t},e.onChange=function(t){var n=e.props,r=n.onChange,o=n.onSearch;t&&t.target&&"click"===t.type&&o&&o(t.target.value,t),r&&r(t)},e.onSearch=function(t){var n=e.props,r=n.onSearch,o=n.loading,a=n.disabled;o||a||(r&&r(e.input.input.value,t),(0,i.isMobile)({tablet:!0})||e.input.focus())},e.renderLoading=function(t){var n=e.props,o=n.enterButton,i=n.size;return o?r.createElement(s.default,{className:"".concat(t,"-button"),type:"primary",size:i,key:"enterButton"},r.createElement(c.default,{type:"loading"})):r.createElement(c.default,{className:"".concat(t,"-icon"),type:"loading",key:"loadingIcon"})},e.renderSuffix=function(t){var n=e.props,o=n.suffix,i=n.enterButton;if(n.loading&&!i)return[o,e.renderLoading(t)];if(i)return o;var a=r.createElement(c.default,{className:"".concat(t,"-icon"),type:"search",key:"searchIcon",onClick:e.onSearch});return o?[r.isValidElement(o)?r.cloneElement(o,{key:"suffix"}):null,a]:a},e.renderAddonAfter=function(t){var n,o=e.props,i=o.enterButton,a=o.size,l=o.disabled,u=o.addonAfter,f=o.loading,d="".concat(t,"-button");if(f&&i)return[e.renderLoading(t),u];if(!i)return u;var p=i,m=p.type&&!0===p.type.__ANT_BUTTON;return n=m||"button"===p.type?r.cloneElement(p,h({onClick:e.onSearch,key:"enterButton"},m?{className:d,size:a}:{})):r.createElement(s.default,{className:d,type:"primary",size:a,disabled:l,key:"enterButton",onClick:e.onSearch},!0===i?r.createElement(c.default,{type:"search"}):i),u?[n,r.isValidElement(u)?r.cloneElement(u,{key:"addonAfter"}):null]:n},e.renderSearch=function(t){var n=t.getPrefixCls,i=e.props,c=i.prefixCls,s=i.inputPrefixCls,l=i.size,u=i.enterButton,f=i.className,d=M(i,["prefixCls","inputPrefixCls","size","enterButton","className"]);delete d.onSearch,delete d.loading;var m,v,y=n("input-search",c),_=n("input",s);u?m=(0,o.default)(y,f,(p(v={},"".concat(y,"-enter-button"),!!u),p(v,"".concat(y,"-").concat(l),!!l),v)):m=(0,o.default)(y,f);return r.createElement(a.default,h({onPressEnter:e.onSearch},d,{size:l,prefixCls:_,addonAfter:e.renderAddonAfter(y),suffix:e.renderSuffix(y),onChange:e.onChange,ref:e.saveInput,className:m}))},e}return t=d,(n=[{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"render",value:function(){return r.createElement(l.ConfigConsumer,null,this.renderSearch)}}])&&v(t.prototype,n),u&&v(t,u),d}(r.Component);t.default=w,w.defaultProps={enterButton:!1}},function(e,t,n){"use strict";e.exports=i,e.exports.isMobile=i,e.exports.default=i;var r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,o=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function i(e){e||(e={});var t=e.ua;if(t||"undefined"==typeof navigator||(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),"string"!=typeof t)return!1;var n=e.tablet?o.test(t):r.test(t);return!n&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==t.indexOf("Macintosh")&&-1!==t.indexOf("Safari")&&(n=!0),n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=h(n(0)),o=h(n(1)),i=d(n(3)),a=n(48),c=d(n(81)),s=d(n(51)),l=n(43),u=d(n(596)),f=n(85);function d(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==w(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=M(e);if(t){var o=M(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==w(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var O=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},S=/^[\u4e00-\u9fa5]{2}$/,C=S.test.bind(S);function x(e,t){var n=!1,o=[];return r.Children.forEach(e,(function(e){var t=w(e),r="string"===t||"number"===t;if(n&&r){var i=o.length-1,a=o[i];o[i]="".concat(a).concat(e)}else o.push(e);n=r})),r.Children.map(o,(function(e){return function(e,t){if(null!=e){var n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&"string"==typeof e.type&&C(e.props.children)?r.cloneElement(e,{},e.props.children.split("").join(n)):"string"==typeof e?(C(e)&&(e=e.split("").join(n)),r.createElement("span",null,e)):e}}(e,t)}))}(0,f.tuple)("default","primary","ghost","dashed","danger","link");var k=(0,f.tuple)("circle","circle-outline","round"),L=(0,f.tuple)("large","default","small"),E=(0,f.tuple)("submit","button","reset"),T=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(f,e);var t,n,o,a=g(f);function f(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),(t=a.call(this,e)).saveButtonRef=function(e){t.buttonNode=e},t.handleClick=function(e){var n=t.state.loading,r=t.props.onClick;n||r&&r(e)},t.renderButton=function(e){var n,o=e.getPrefixCls,a=e.autoInsertSpaceInButton,l=t.props,f=l.prefixCls,d=l.type,p=l.shape,h=l.size,y=l.className,_=l.children,g=l.icon,b=l.ghost,M=l.block,w=O(l,["prefixCls","type","shape","size","className","children","icon","ghost","block"]),S=t.state,C=S.loading,k=S.hasTwoCNChar,L=o("btn",f),E=!1!==a,T="";switch(h){case"large":T="lg";break;case"small":T="sm"}var P=C?"loading":g,j=(0,i.default)(L,y,(v(n={},"".concat(L,"-").concat(d),d),v(n,"".concat(L,"-").concat(p),p),v(n,"".concat(L,"-").concat(T),T),v(n,"".concat(L,"-icon-only"),!_&&0!==_&&P),v(n,"".concat(L,"-loading"),!!C),v(n,"".concat(L,"-background-ghost"),b),v(n,"".concat(L,"-two-chinese-chars"),k&&E),v(n,"".concat(L,"-block"),M),n)),z=P?r.createElement(s.default,{type:P}):null,D=_||0===_?x(_,t.isNeedInserted()&&E):null,N=(0,c.default)(w,["htmlType","loading"]);if(void 0!==N.href)return r.createElement("a",m({},N,{className:j,onClick:t.handleClick,ref:t.saveButtonRef}),z,D);var H=w,A=H.htmlType,Y=O(H,["htmlType"]),I=r.createElement("button",m({},(0,c.default)(Y,["loading"]),{type:A,className:j,onClick:t.handleClick,ref:t.saveButtonRef}),z,D);return"link"===d?I:r.createElement(u.default,null,I)},t.state={loading:e.loading,hasTwoCNChar:!1},t}return t=f,(n=[{key:"componentDidMount",value:function(){this.fixTwoCNChar()}},{key:"componentDidUpdate",value:function(e){var t=this;this.fixTwoCNChar(),e.loading&&"boolean"!=typeof e.loading&&clearTimeout(this.delayTimeout);var n=this.props.loading;n&&"boolean"!=typeof n&&n.delay?this.delayTimeout=window.setTimeout((function(){t.setState({loading:n})}),n.delay):e.loading!==n&&this.setState({loading:n})}},{key:"componentWillUnmount",value:function(){this.delayTimeout&&clearTimeout(this.delayTimeout)}},{key:"fixTwoCNChar",value:function(){if(this.buttonNode){var e=this.buttonNode.textContent;this.isNeedInserted()&&C(e)?this.state.hasTwoCNChar||this.setState({hasTwoCNChar:!0}):this.state.hasTwoCNChar&&this.setState({hasTwoCNChar:!1})}}},{key:"isNeedInserted",value:function(){var e=this.props,t=e.icon,n=e.children,o=e.type;return 1===r.Children.count(n)&&!t&&"link"!==o}},{key:"render",value:function(){return r.createElement(l.ConfigConsumer,null,this.renderButton)}}])&&y(t.prototype,n),o&&y(t,o),f}(r.Component);T.__ANT_BUTTON=!0,T.defaultProps={loading:!1,ghost:!1,block:!1,htmlType:"button"},T.propTypes={type:o.string,shape:o.oneOf(k),size:o.oneOf(L),htmlType:o.oneOf(E),onClick:o.func,loading:o.oneOfType([o.bool,o.object]),className:o.string,icon:o.string,block:o.bool,title:o.string},(0,a.polyfill)(T);var P=T;t.default=P},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),i=n(7),a=l(n(597)),c=l(n(387)),s=n(43);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var o=_(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?y(e):t}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e){return!e||null===e.offsetParent}function b(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(t&&t[1]&&t[2]&&t[3])||!(t[1]===t[2]&&t[2]===t[3])}var M=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(f,e);var t,n,l,u=m(f);function f(){var e;return d(this,f),(e=u.apply(this,arguments)).animationStart=!1,e.destroy=!1,e.onClick=function(t,n){if(!(!t||g(t)||t.className.indexOf("-leave")>=0)){var o=e.props.insertExtraNode;e.extraNode=document.createElement("div");var i=y(e).extraNode;i.className="ant-click-animating-node";var c=e.getAttributeName();t.setAttribute(c,"true"),r=r||document.createElement("style"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&b(n)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(n)&&"transparent"!==n&&(e.csp&&e.csp.nonce&&(r.nonce=e.csp.nonce),i.style.borderColor=n,r.innerHTML="\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ".concat(n,";\n }"),document.body.contains(r)||document.body.appendChild(r)),o&&t.appendChild(i),a.default.addStartEventListener(t,e.onTransitionStart),a.default.addEndEventListener(t,e.onTransitionEnd)}},e.onTransitionStart=function(t){if(!e.destroy){var n=(0,i.findDOMNode)(y(e));t&&t.target===n&&(e.animationStart||e.resetEffect(n))}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!g(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),c.default.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=(0,c.default)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;return e.csp=n,r},e}return t=f,(n=[{key:"componentDidMount",value:function(){var e=(0,i.findDOMNode)(this);e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroy=!0}},{key:"getAttributeName",value:function(){return this.props.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}},{key:"resetEffect",value:function(e){if(e&&e!==this.extraNode&&e instanceof Element){var t=this.props.insertExtraNode,n=this.getAttributeName();e.setAttribute(n,"false"),r&&(r.innerHTML=""),t&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),a.default.removeStartEventListener(e,this.onTransitionStart),a.default.removeEndEventListener(e,this.onTransitionEnd)}}},{key:"render",value:function(){return o.createElement(s.ConfigConsumer,null,this.renderWave)}}])&&p(t.prototype,n),l&&p(t,l),f}(o.Component);t.default=M},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={transitionstart:{transition:"transitionstart",WebkitTransition:"webkitTransitionStart",MozTransition:"mozTransitionStart",OTransition:"oTransitionStart",msTransition:"MSTransitionStart"},animationstart:{animation:"animationstart",WebkitAnimation:"webkitAnimationStart",MozAnimation:"mozAnimationStart",OAnimation:"oAnimationStart",msAnimation:"MSAnimationStart"}},o={transitionend:{transition:"transitionend",WebkitTransition:"webkitTransitionEnd",MozTransition:"mozTransitionEnd",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd"},animationend:{animation:"animationend",WebkitAnimation:"webkitAnimationEnd",MozAnimation:"mozAnimationEnd",OAnimation:"oAnimationEnd",msAnimation:"MSAnimationEnd"}},i=[],a=[];function c(e,t,n){e.addEventListener(t,n,!1)}function s(e,t,n){e.removeEventListener(t,n,!1)}"undefined"!=typeof window&&"undefined"!=typeof document&&function(){var e=document.createElement("div").style;function t(t,n){for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];for(var i in o)if(i in e){n.push(o[i]);break}}}"AnimationEvent"in window||(delete r.animationstart.animation,delete o.animationend.animation),"TransitionEvent"in window||(delete r.transitionstart.transition,delete o.transitionend.transition),t(r,i),t(o,a)}();var l={startEvents:i,addStartEventListener:function(e,t){0!==i.length?i.forEach((function(n){c(e,n,t)})):window.setTimeout(t,0)},removeStartEventListener:function(e,t){0!==i.length&&i.forEach((function(n){s(e,n,t)}))},endEvents:a,addEndEventListener:function(e,t){0!==a.length?a.forEach((function(n){c(e,n,t)})):window.setTimeout(t,0)},removeEndEventListener:function(e,t){0!==a.length&&a.forEach((function(n){s(e,n,t)}))}};t.default=l,e.exports=t.default},function(e,t,n){(function(t){(function(){var n,r,o,i,a,c;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:null!=t&&t.hrtime?(e.exports=function(){return(n()-a)/1e6},r=t.hrtime,i=(n=function(){var e;return 1e9*(e=r())[0]+e[1]})(),c=1e9*t.uptime(),a=i-c):Date.now?(e.exports=function(){return Date.now()-o},o=Date.now()):(e.exports=function(){return(new Date).getTime()-o},o=(new Date).getTime())}).call(this)}).call(this,n(114))},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}n.default=e,t&&t.set(e,n);return n}(n(0)),a=(o=n(3))&&o.__esModule?o:{default:o},c=n(43);function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},f=function(e){return i.createElement(c.ConfigConsumer,null,(function(t){var n=t.getPrefixCls,r=e.prefixCls,o=e.size,c=e.className,s=u(e,["prefixCls","size","className"]),f=n("btn-group",r),d="";switch(o){case"large":d="lg";break;case"small":d="sm"}var p=(0,a.default)(f,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},"".concat(f,"-").concat(d),d),c);return i.createElement("div",l({},s,{className:p}))}))};t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(48),i=l(n(243)),a=l(n(601)),c=n(43),s=n(115);function l(e){return e&&e.__esModule?e:{default:e}}function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=y(e);if(t){var o=y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return v(this,n)}}function v(e,t){return!t||"object"!==f(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(u,e);var t,n,o,l=m(u);function u(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=l.call(this,e)).saveTextArea=function(e){t.resizableTextArea=e},t.saveClearableInput=function(e){t.clearableInput=e},t.handleChange=function(e){t.setValue(e.target.value,(function(){t.resizableTextArea.resizeTextarea()})),(0,s.resolveOnChange)(t.resizableTextArea.textArea,e,t.props.onChange)},t.handleKeyDown=function(e){var n=t.props,r=n.onPressEnter,o=n.onKeyDown;13===e.keyCode&&r&&r(e),o&&o(e)},t.handleReset=function(e){t.setValue("",(function(){t.resizableTextArea.renderTextArea(),t.focus()})),(0,s.resolveOnChange)(t.resizableTextArea.textArea,e,t.props.onChange)},t.renderTextArea=function(e){return r.createElement(a.default,d({},t.props,{prefixCls:e,onKeyDown:t.handleKeyDown,onChange:t.handleChange,ref:t.saveTextArea}))},t.renderComponent=function(e){var n=e.getPrefixCls,o=t.state.value,a=n("input",t.props.prefixCls);return r.createElement(i.default,d({},t.props,{prefixCls:a,inputType:"text",value:(0,s.fixControlledValue)(o),element:t.renderTextArea(a),handleReset:t.handleReset,ref:t.saveClearableInput}))};var n=void 0===e.value?e.defaultValue:e.value;return t.state={value:n},t}return t=u,o=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value}:null}}],(n=[{key:"setValue",value:function(e,t){"value"in this.props||this.setState({value:e},t)}},{key:"focus",value:function(){this.resizableTextArea.textArea.focus()}},{key:"blur",value:function(){this.resizableTextArea.textArea.blur()}},{key:"render",value:function(){return r.createElement(c.ConfigConsumer,null,this.renderComponent)}}])&&p(t.prototype,n),o&&p(t,o),u}(r.Component);(0,o.polyfill)(_);var g=_;t.default=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=d();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=n(48),i=f(n(602)),a=f(n(81)),c=f(n(3)),s=f(n(608)),l=f(n(387)),u=f(n(64));function f(e){return e&&e.__esModule?e:{default:e}}function d(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return d=function(){return e},e}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var o=g(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _(this,n)}}function _(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var b=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(d,e);var t,n,o,f=y(d);function d(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),(t=f.call(this,e)).saveTextArea=function(e){t.textArea=e},t.resizeOnNextFrame=function(){l.default.cancel(t.nextFrameActionId),t.nextFrameActionId=(0,l.default)(t.resizeTextarea)},t.resizeTextarea=function(){var e=t.props.autoSize||t.props.autosize;if(e&&t.textArea){var n=e.minRows,r=e.maxRows,o=(0,s.default)(t.textArea,!1,n,r);t.setState({textareaStyles:o,resizing:!0},(function(){l.default.cancel(t.resizeFrameId),t.resizeFrameId=(0,l.default)((function(){t.setState({resizing:!1}),t.fixFirefoxAutoScroll()}))}))}},t.renderTextArea=function(){var e=t.props,n=e.prefixCls,o=e.autoSize,s=e.autosize,l=e.className,f=e.disabled,d=t.state,p=d.textareaStyles,m=d.resizing;(0,u.default)(void 0===s,"Input.TextArea","autosize is deprecated, please use autoSize instead.");var v,y,_,g=(0,a.default)(t.props,["prefixCls","onPressEnter","autoSize","autosize","defaultValue","allowClear"]),b=(0,c.default)(n,l,(v={},y="".concat(n,"-disabled"),_=f,y in v?Object.defineProperty(v,y,{value:_,enumerable:!0,configurable:!0,writable:!0}):v[y]=_,v));"value"in g&&(g.value=g.value||"");var M=h(h(h({},t.props.style),p),m?{overflowX:"hidden",overflowY:"hidden"}:null);return r.createElement(i.default,{onResize:t.resizeOnNextFrame,disabled:!(o||s)},r.createElement("textarea",h({},g,{className:b,style:M,ref:t.saveTextArea})))},t.state={textareaStyles:{},resizing:!1},t}return t=d,(n=[{key:"componentDidMount",value:function(){this.resizeTextarea()}},{key:"componentDidUpdate",value:function(e){e.value!==this.props.value&&this.resizeTextarea()}},{key:"componentWillUnmount",value:function(){l.default.cancel(this.nextFrameActionId),l.default.cancel(this.resizeFrameId)}},{key:"fixFirefoxAutoScroll",value:function(){try{if(document.activeElement===this.textArea){var e=this.textArea.selectionStart,t=this.textArea.selectionEnd;this.textArea.setSelectionRange(e,t)}}catch(e){}}},{key:"render",value:function(){return this.renderTextArea()}}])&&m(t.prototype,n),o&&m(t,o),d}(r.Component);(0,o.polyfill)(b);var M=b;t.default=M},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t},u=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var f=l(n(0)),d=u(n(603)),p=u(n(604)),h=u(n(250)),m=n(606),v=u(n(75)),y=n(607),_=function(e){function t(){var e;return o(this,t),(e=a(this,c(t).apply(this,arguments))).resizeObserver=null,e.childNode=null,e.currentElement=null,e.state={width:0,height:0},e.onResize=function(t){var n=e.props.onResize,r=t[0].target.getBoundingClientRect(),o=r.width,i=r.height,a=Math.floor(o),c=Math.floor(i);if(e.state.width!==a||e.state.height!==c){var s={width:a,height:c};e.setState(s),n&&n(s)}},e.setChildNode=function(t){e.childNode=t},e}var n,r,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,e),n=t,(r=[{key:"componentDidMount",value:function(){this.onComponentUpdated()}},{key:"componentDidUpdate",value:function(){this.onComponentUpdated()}},{key:"componentWillUnmount",value:function(){this.destroyObserver()}},{key:"onComponentUpdated",value:function(){if(this.props.disabled)this.destroyObserver();else{var e=d.default(this.childNode||this);e!==this.currentElement&&(this.destroyObserver(),this.currentElement=e),!this.resizeObserver&&e&&(this.resizeObserver=new v.default(this.onResize),this.resizeObserver.observe(e))}}},{key:"destroyObserver",value:function(){this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}},{key:"render",value:function(){var e=this.props.children,t=p.default(e);if(t.length>1)h.default(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===t.length)return h.default(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var n=t[0];if(f.isValidElement(n)&&y.supportRef(n)){var r=n.ref;t[0]=f.cloneElement(n,{ref:m.composeRef(r,this.setChildNode)})}return 1===t.length?t[0]:t.map((function(e,t){return!f.isValidElement(e)||"key"in e&&null!==e.key?e:f.cloneElement(e,{key:"".concat("rc-observer-key","-").concat(t)})}))}}])&&i(n.prototype,r),l&&i(n,l),t}(f.Component);_.displayName="ResizeObserver",t.default=_},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(e instanceof HTMLElement)return e;return o.default.findDOMNode(e)};var r,o=(r=n(7))&&r.__esModule?r:{default:r}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var n=[];return o.default.Children.forEach(t,(function(t){null!=t&&(Array.isArray(t)?n=n.concat(e(t)):(0,i.isFragment)(t)&&t.props?n=n.concat(e(t.props.children)):n.push(t))})),n};var r,o=(r=n(0))&&r.__esModule?r:{default:r},i=n(228)},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,M=r?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case v:case l:return e;default:return t}}case i:return t}}}function O(e){return w(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=v,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return O(e)||w(e)===f},t.isConcurrentMode=O,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===y},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===c},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===M||e.$$typeof===_)},t.typeOf=w},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){"function"==typeof e?e(t):"object"===r(e)&&e&&"current"in e&&(e.current=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.fillRef=o,t.composeRef=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){t.forEach((function(t){o(t,e)}))}},t.supportRef=function(e){if(e.type&&e.type.prototype&&!e.type.prototype.render)return!1;if("function"==typeof e&&e.prototype&&!e.prototype.render)return!1;return!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportRef=function(e){return!(e.type&&e.type.prototype&&!e.type.prototype.render)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateNodeStyling=c,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;r||(r=document.createElement("textarea"),document.body.appendChild(r));e.getAttribute("wrap")?r.setAttribute("wrap",e.getAttribute("wrap")):r.removeAttribute("wrap");var a=c(e,t),s=a.paddingSize,l=a.borderSize,u=a.boxSizing,f=a.sizingStyle;r.setAttribute("style","".concat(f,";").concat(o)),r.value=e.value||e.placeholder||"";var d,p=Number.MIN_SAFE_INTEGER,h=Number.MAX_SAFE_INTEGER,m=r.scrollHeight;"border-box"===u?m+=l:"content-box"===u&&(m-=s);if(null!==n||null!==i){r.value=" ";var v=r.scrollHeight-s;null!==n&&(p=v*n,"border-box"===u&&(p=p+s+l),m=Math.max(p,m)),null!==i&&(h=v*i,"border-box"===u&&(h=h+s+l),d=m>h?"":"hidden",m=Math.min(h,m))}return{height:m,minHeight:p,maxHeight:h,overflowY:d}};var r,o="\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",i=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"],a={};function c(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&a[n])return a[n];var r=window.getComputedStyle(e),o=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),c=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),s=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),l=i.map((function(e){return"".concat(e,":").concat(r.getPropertyValue(e))})).join(";"),u={sizingStyle:l,paddingSize:c,borderSize:s,boxSizing:o};return t&&n&&(a[n]=u),u}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}n.default=e,t&&t.set(e,n);return n}(n(0)),o=s(n(3)),i=s(n(81)),a=s(n(115)),c=s(n(51));function s(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=_(e);if(t){var o=_(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return y(this,n)}}function y(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},b={click:"onClick",hover:"onMouseOver"},M=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(u,e);var t,n,s,l=v(u);function u(){var e;return p(this,u),(e=l.apply(this,arguments)).state={visible:!1},e.onVisibleChange=function(){e.props.disabled||e.setState((function(e){return{visible:!e.visible}}))},e.saveInput=function(t){t&&t.input&&(e.input=t.input)},e}return t=u,(n=[{key:"getIcon",value:function(){var e,t=this.props,n=t.prefixCls,o=t.action,i=(d(e={},b[o]||"",this.onVisibleChange),d(e,"className","".concat(n,"-icon")),d(e,"type",this.state.visible?"eye":"eye-invisible"),d(e,"key","passwordIcon"),d(e,"onMouseDown",(function(e){e.preventDefault()})),e);return r.createElement(c.default,i)}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"select",value:function(){this.input.select()}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.prefixCls,c=e.inputPrefixCls,s=e.size,l=e.visibilityToggle,u=g(e,["className","prefixCls","inputPrefixCls","size","visibilityToggle"]),p=l&&this.getIcon(),h=(0,o.default)(n,t,d({},"".concat(n,"-").concat(s),!!s));return r.createElement(a.default,f({},(0,i.default)(u,["suffix"]),{type:this.state.visible?"text":"password",size:s,className:h,prefixCls:c,suffix:p,ref:this.saveInput}))}}])&&h(t.prototype,n),s&&h(t,s),u}(r.Component);t.default=M,M.defaultProps={inputPrefixCls:"ant-input",prefixCls:"ant-input-password",action:"click",visibilityToggle:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),a=((r=i)&&r.__esModule,n(389));function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=function(e){function t(){return c(this,t),s(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"getChildContext",value:function(){return{miniStore:this.props.store}}},{key:"render",value:function(){return i.Children.only(this.props.children)}}]),t}(i.Component);l.propTypes={store:a.storeShape.isRequired},l.childContextTypes={miniStore:a.storeShape.isRequired},t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=function(e){var t=!!e,n=e||d;return function(f){var d=function(i){function s(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,e,t));return r.handleChange=function(){if(r.unsubscribe){var e=n(r.store.getState(),r.props);r.setState({subscribed:e})}},r.store=t.miniStore,r.state={subscribed:n(r.store.getState(),e),store:r.store,props:e},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(s,i),o(s,null,[{key:"getDerivedStateFromProps",value:function(t,r){return e&&2===e.length&&t!==r.props?{subscribed:n(r.store.getState(),t),props:t}:{props:t}}}]),o(s,[{key:"componentDidMount",value:function(){this.trySubscribe()}},{key:"componentWillUnmount",value:function(){this.tryUnsubscribe()}},{key:"shouldComponentUpdate",value:function(e,t){return!(0,c.default)(this.props,e)||!(0,c.default)(this.state.subscribed,t.subscribed)}},{key:"trySubscribe",value:function(){t&&(this.unsubscribe=this.store.subscribe(this.handleChange),this.handleChange())}},{key:"tryUnsubscribe",value:function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)}},{key:"getWrappedInstance",value:function(){return this.wrappedInstance}},{key:"render",value:function(){var e=this,t=r({},this.props,this.state.subscribed,{store:this.store});return f.prototype.render&&(t=r({},t,{ref:function(t){return e.wrappedInstance=t}})),a.default.createElement(f,t)}}]),s}(i.Component);return d.displayName="Connect("+function(e){return e.displayName||e.name||"Component"}(f)+")",d.contextTypes={miniStore:u.storeShape.isRequired},(0,l.polyfill)(d),(0,s.default)(d,f)}};var i=n(0),a=f(i),c=f(n(59)),s=f(n(612)),l=n(48),u=n(389);function f(e){return e&&e.__esModule?e:{default:e}}var d=function(){return{}}},function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i=Object.defineProperty,a=Object.getOwnPropertyNames,c=Object.getOwnPropertySymbols,s=Object.getOwnPropertyDescriptor,l=Object.getPrototypeOf,u=l&&l(Object);e.exports=function e(t,n,f){if("string"!=typeof n){if(u){var d=l(n);d&&d!==u&&e(t,d,f)}var p=a(n);c&&(p=p.concat(c(n)));for(var h=0;h<p.length;++h){var m=p[h];if(!(r[m]||o[m]||f&&f[m])){var v=s(n,m);try{i(t,m,v)}catch(e){}}}return t}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=function(e){var t=e,n=[];return{setState:function(e){t=r({},t,e);for(var o=0;o<n.length;o++)n[o]()},getState:function(){return t},subscribe:function(e){return n.push(e),function(){var t=n.indexOf(e);n.splice(t,1)}}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(n(615)),i=r(n(113)),a=["altKey","bubbles","cancelable","ctrlKey","currentTarget","eventPhase","metaKey","shiftKey","target","timeStamp","view","type"];function c(e){return null==e}var s=[{reg:/^key/,props:["char","charCode","key","keyCode","which"],fix:function(e,t){c(e.which)&&(e.which=c(t.charCode)?t.keyCode:t.charCode),void 0===e.metaKey&&(e.metaKey=e.ctrlKey)}},{reg:/^touch/,props:["touches","changedTouches","targetTouches"]},{reg:/^hashchange$/,props:["newURL","oldURL"]},{reg:/^gesturechange$/i,props:["rotation","scale"]},{reg:/^(mousewheel|DOMMouseScroll)$/,props:[],fix:function(e,t){var n=void 0,r=void 0,o=void 0,i=t.wheelDelta,a=t.axis,c=t.wheelDeltaY,s=t.wheelDeltaX,l=t.detail;i&&(o=i/120),l&&(o=0-(l%3==0?l/3:l)),void 0!==a&&(a===e.HORIZONTAL_AXIS?(r=0,n=0-o):a===e.VERTICAL_AXIS&&(n=0,r=o)),void 0!==c&&(r=c/120),void 0!==s&&(n=-1*s/120),n||r||(r=o),void 0!==n&&(e.deltaX=n),void 0!==r&&(e.deltaY=r),void 0!==o&&(e.delta=o)}},{reg:/^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,props:["buttons","clientX","clientY","button","offsetX","relatedTarget","which","fromElement","toElement","offsetY","pageX","pageY","screenX","screenY"],fix:function(e,t){var n=void 0,r=void 0,o=void 0,i=e.target,a=t.button;return i&&c(e.pageX)&&!c(t.clientX)&&(r=(n=i.ownerDocument||document).documentElement,o=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||o&&o.scrollLeft||0)-(r&&r.clientLeft||o&&o.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||o&&o.scrollTop||0)-(r&&r.clientTop||o&&o.clientTop||0)),e.which||void 0===a||(e.which=1&a?1:2&a?3:4&a?2:0),!e.relatedTarget&&e.fromElement&&(e.relatedTarget=e.fromElement===i?e.toElement:e.fromElement),e}}];function l(){return!0}function u(){return!1}function f(e){var t=e.type,n="function"==typeof e.stopPropagation||"boolean"==typeof e.cancelBubble;o.default.call(this),this.nativeEvent=e;var r=u;"defaultPrevented"in e?r=e.defaultPrevented?l:u:"getPreventDefault"in e?r=e.getPreventDefault()?l:u:"returnValue"in e&&(r=!1===e.returnValue?l:u),this.isDefaultPrevented=r;var i=[],c=void 0,f=void 0,d=a.concat();for(s.forEach((function(e){t.match(e.reg)&&(d=d.concat(e.props),e.fix&&i.push(e.fix))})),c=d.length;c;)this[f=d[--c]]=e[f];for(!this.target&&n&&(this.target=e.srcElement||document),this.target&&3===this.target.nodeType&&(this.target=this.target.parentNode),c=i.length;c;)(0,i[--c])(this,e);this.timeStamp=e.timeStamp||Date.now()}var d=o.default.prototype;(0,i.default)(f.prototype,d,{constructor:f,preventDefault:function(){var e=this.nativeEvent;e.preventDefault?e.preventDefault():e.returnValue=!1,d.preventDefault.call(this)},stopPropagation:function(){var e=this.nativeEvent;e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,d.stopPropagation.call(this)}}),t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(){return!1}function o(){return!0}function i(){this.timeStamp=Date.now(),this.target=void 0,this.currentTarget=void 0}Object.defineProperty(t,"__esModule",{value:!0}),i.prototype={isEventObject:1,constructor:i,isDefaultPrevented:r,isPropagationStopped:r,isImmediatePropagationStopped:r,preventDefault:function(){this.isDefaultPrevented=o},stopPropagation:function(){this.isPropagationStopped=o},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=o,this.stopPropagation()},halt:function(e){e?this.stopImmediatePropagation():this.stopPropagation(),this.preventDefault()}},t.default=i,e.exports=t.default},function(e,t){window.MutationObserver||(window.MutationObserver=function(e){function t(e){this.i=[],this.m=e}function n(t){var n,r={type:null,target:null,addedNodes:[],removedNodes:[],previousSibling:null,nextSibling:null,attributeName:null,attributeNamespace:null,oldValue:null};for(n in t)r[n]!==e&&t[n]!==e&&(r[n]=t[n]);return r}function r(t,r){var c=i(t,r);return function(l){var u=l.length;if(r.a&&3===t.nodeType&&t.nodeValue!==c.a&&l.push(new n({type:"characterData",target:t,oldValue:c.a})),r.b&&c.b&&o(l,t,c.b,r.f),r.c||r.g)var f=function(t,r,i,c){function l(e,r,i,a,s){var l,f,d,p=e.length-1;for(s=-~((p-s)/2);d=e.pop();)l=i[d.j],f=a[d.l],c.c&&s&&Math.abs(d.j-d.l)>=p&&(t.push(n({type:"childList",target:r,addedNodes:[l],removedNodes:[l],nextSibling:l.nextSibling,previousSibling:l.previousSibling})),s--),c.b&&f.b&&o(t,l,f.b,c.f),c.a&&3===l.nodeType&&l.nodeValue!==f.a&&t.push(n({type:"characterData",target:l,oldValue:f.a})),c.g&&u(l,f)}function u(r,i){for(var d,p,h,m,v,y=r.childNodes,_=i.c,g=y.length,b=_?_.length:0,M=0,w=0,O=0;w<g||O<b;)(m=y[w])===(v=(h=_[O])&&h.node)?(c.b&&h.b&&o(t,m,h.b,c.f),c.a&&h.a!==e&&m.nodeValue!==h.a&&t.push(n({type:"characterData",target:m,oldValue:h.a})),p&&l(p,r,y,_,M),c.g&&(m.childNodes.length||h.c&&h.c.length)&&u(m,h),w++,O++):(f=!0,d||(d={},p=[]),m&&(d[h=a(m)]||(d[h]=!0,-1===(h=s(_,m,O,"node"))?c.c&&(t.push(n({type:"childList",target:r,addedNodes:[m],nextSibling:m.nextSibling,previousSibling:m.previousSibling})),M++):p.push({j:w,l:h})),w++),v&&v!==y[w]&&(d[h=a(v)]||(d[h]=!0,-1===(h=s(y,v,w))?c.c&&(t.push(n({type:"childList",target:i.node,removedNodes:[v],nextSibling:_[O+1],previousSibling:_[O-1]})),M--):p.push({j:h,l:O})),O++));p&&l(p,r,y,_,M)}var f;return u(r,i),f}(l,t,c,r);(f||l.length!==u)&&(c=i(t,r))}}function o(t,r,o,i){for(var a,c,s={},l=r.attributes,f=l.length;f--;)c=(a=l[f]).name,i&&i[c]===e||(u(r,a)!==o[c]&&t.push(n({type:"attributes",target:r,attributeName:c,oldValue:o[c],attributeNamespace:a.namespaceURI})),s[c]=!0);for(c in o)s[c]||t.push(n({target:r,type:"attributes",attributeName:c,oldValue:o[c]}))}function i(e,t){var n=!0;return function e(r){var o={node:r};return!t.a||3!==r.nodeType&&8!==r.nodeType?(t.b&&n&&1===r.nodeType&&(o.b=c(r.attributes,(function(e,n){return t.f&&!t.f[n.name]||(e[n.name]=u(r,n)),e}),{})),n&&(t.c||t.a||t.b&&t.g)&&(o.c=function(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r,e);return n}(r.childNodes,e)),n=t.g):o.a=r.nodeValue,o}(e)}function a(e){try{return e.id||(e.mo_id=e.mo_id||f++)}catch(t){try{return e.nodeValue}catch(e){return f++}}}function c(e,t,n){for(var r=0;r<e.length;r++)n=t(n,e[r],r,e);return n}function s(e,t,n,r){for(;n<e.length;n++)if((r?e[n][r]:e[n])===t)return n;return-1}t._period=30,t.prototype={observe:function(e,n){for(var o={b:!!(n.attributes||n.attributeFilter||n.attributeOldValue),c:!!n.childList,g:!!n.subtree,a:!(!n.characterData&&!n.characterDataOldValue)},i=this.i,a=0;a<i.length;a++)i[a].s===e&&i.splice(a,1);n.attributeFilter&&(o.f=c(n.attributeFilter,(function(e,t){return e[t]=!0,e}),{})),i.push({s:e,o:r(e,o)}),this.h||function(e){!function n(){var r=e.takeRecords();r.length&&e.m(r,e),e.h=setTimeout(n,t._period)}()}(this)},takeRecords:function(){for(var e=[],t=this.i,n=0;n<t.length;n++)t[n].o(e);return e},disconnect:function(){this.i=[],clearTimeout(this.h),this.h=null}};var l=document.createElement("i");l.style.top=0;var u=(l="null"!=l.attributes.style.value)?function(e,t){return t.value}:function(e,t){return"style"!==t.name?t.value:e.style.cssText},f=1;return t}(void 0))},function(e,t,n){"use strict";var r=n(618);e.exports=function(e,t,n){n=n||{},9===t.nodeType&&(t=r.getWindow(t));var o=n.allowHorizontalScroll,i=n.onlyScrollIfNeeded,a=n.alignWithTop,c=n.alignWithLeft,s=n.offsetTop||0,l=n.offsetLeft||0,u=n.offsetBottom||0,f=n.offsetRight||0;o=void 0===o||o;var d=r.isWindow(t),p=r.offset(e),h=r.outerHeight(e),m=r.outerWidth(e),v=void 0,y=void 0,_=void 0,g=void 0,b=void 0,M=void 0,w=void 0,O=void 0,S=void 0,C=void 0;d?(w=t,C=r.height(w),S=r.width(w),O={left:r.scrollLeft(w),top:r.scrollTop(w)},b={left:p.left-O.left-l,top:p.top-O.top-s},M={left:p.left+m-(O.left+S)+f,top:p.top+h-(O.top+C)+u},g=O):(v=r.offset(t),y=t.clientHeight,_=t.clientWidth,g={left:t.scrollLeft,top:t.scrollTop},b={left:p.left-(v.left+(parseFloat(r.css(t,"borderLeftWidth"))||0))-l,top:p.top-(v.top+(parseFloat(r.css(t,"borderTopWidth"))||0))-s},M={left:p.left+m-(v.left+_+(parseFloat(r.css(t,"borderRightWidth"))||0))+f,top:p.top+h-(v.top+y+(parseFloat(r.css(t,"borderBottomWidth"))||0))+u}),b.top<0||M.top>0?!0===a?r.scrollTop(t,g.top+b.top):!1===a?r.scrollTop(t,g.top+M.top):b.top<0?r.scrollTop(t,g.top+b.top):r.scrollTop(t,g.top+M.top):i||((a=void 0===a||!!a)?r.scrollTop(t,g.top+b.top):r.scrollTop(t,g.top+M.top)),o&&(b.left<0||M.left>0?!0===c?r.scrollLeft(t,g.left+b.left):!1===c?r.scrollLeft(t,g.left+M.left):b.left<0?r.scrollLeft(t,g.left+b.left):r.scrollLeft(t,g.left+M.left):i||((c=void 0===c||!!c)?r.scrollLeft(t,g.left+b.left):r.scrollLeft(t,g.left+M.left)))}},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};function i(e,t){var n=e["page"+(t?"Y":"X")+"Offset"],r="scroll"+(t?"Top":"Left");if("number"!=typeof n){var o=e.document;"number"!=typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}function a(e){return i(e)}function c(e){return i(e,!0)}function s(e){var t=function(e){var t,n=void 0,r=void 0,o=e.ownerDocument,i=o.body,a=o&&o.documentElement;return n=(t=e.getBoundingClientRect()).left,r=t.top,{left:n-=a.clientLeft||i.clientLeft||0,top:r-=a.clientTop||i.clientTop||0}}(e),n=e.ownerDocument,r=n.defaultView||n.parentWindow;return t.left+=a(r),t.top+=c(r),t}var l=new RegExp("^("+/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source+")(?!px)[a-z%]+$","i"),u=/^(top|right|bottom|left)$/,f="left";var d=void 0;function p(e,t){for(var n=0;n<e.length;n++)t(e[n])}function h(e){return"border-box"===d(e,"boxSizing")}"undefined"!=typeof window&&(d=window.getComputedStyle?function(e,t,n){var r="",o=e.ownerDocument,i=n||o.defaultView.getComputedStyle(e,null);return i&&(r=i.getPropertyValue(t)||i[t]),r}:function(e,t){var n=e.currentStyle&&e.currentStyle[t];if(l.test(n)&&!u.test(t)){var r=e.style,o=r[f],i=e.runtimeStyle[f];e.runtimeStyle[f]=e.currentStyle[f],r[f]="fontSize"===t?"1em":n||0,n=r.pixelLeft+"px",r[f]=o,e.runtimeStyle[f]=i}return""===n?"auto":n});var m=["margin","border","padding"];function v(e,t,n){var r={},o=e.style,i=void 0;for(i in t)t.hasOwnProperty(i)&&(r[i]=o[i],o[i]=t[i]);for(i in n.call(e),t)t.hasOwnProperty(i)&&(o[i]=r[i])}function y(e,t,n){var r=0,o=void 0,i=void 0,a=void 0;for(i=0;i<t.length;i++)if(o=t[i])for(a=0;a<n.length;a++){var c=void 0;c="border"===o?o+n[a]+"Width":o+n[a],r+=parseFloat(d(e,c))||0}return r}function _(e){return null!=e&&e==e.window}var g={};function b(e,t,n){if(_(e))return"width"===t?g.viewportWidth(e):g.viewportHeight(e);if(9===e.nodeType)return"width"===t?g.docWidth(e):g.docHeight(e);var r="width"===t?["Left","Right"]:["Top","Bottom"],o="width"===t?e.offsetWidth:e.offsetHeight,i=(d(e),h(e)),a=0;(null==o||o<=0)&&(o=void 0,(null==(a=d(e,t))||Number(a)<0)&&(a=e.style[t]||0),a=parseFloat(a)||0),void 0===n&&(n=i?1:-1);var c=void 0!==o||i,s=o||a;if(-1===n)return c?s-y(e,["border","padding"],r):a;if(c){var l=2===n?-y(e,["border"],r):y(e,["margin"],r);return s+(1===n?0:l)}return a+y(e,m.slice(n),r)}p(["Width","Height"],(function(e){g["doc"+e]=function(t){var n=t.document;return Math.max(n.documentElement["scroll"+e],n.body["scroll"+e],g["viewport"+e](n))},g["viewport"+e]=function(t){var n="client"+e,r=t.document,o=r.body,i=r.documentElement[n];return"CSS1Compat"===r.compatMode&&i||o&&o[n]||i}}));var M={position:"absolute",visibility:"hidden",display:"block"};function w(e){var t=void 0,n=arguments;return 0!==e.offsetWidth?t=b.apply(void 0,n):v(e,M,(function(){t=b.apply(void 0,n)})),t}function O(e,t,n){var r=n;if("object"!==(void 0===t?"undefined":o(t)))return void 0!==r?("number"==typeof r&&(r+="px"),void(e.style[t]=r)):d(e,t);for(var i in t)t.hasOwnProperty(i)&&O(e,i,t[i])}p(["width","height"],(function(e){var t=e.charAt(0).toUpperCase()+e.slice(1);g["outer"+t]=function(t,n){return t&&w(t,e,n?0:1)};var n="width"===e?["Left","Right"]:["Top","Bottom"];g[e]=function(t,r){if(void 0===r)return t&&w(t,e,-1);if(t){d(t);return h(t)&&(r+=y(t,["padding","border"],n)),O(t,e,r)}}})),e.exports=r({getWindow:function(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow},offset:function(e,t){if(void 0===t)return s(e);!function(e,t){"static"===O(e,"position")&&(e.style.position="relative");var n=s(e),r={},o=void 0,i=void 0;for(i in t)t.hasOwnProperty(i)&&(o=parseFloat(O(e,i))||0,r[i]=o+t[i]-n[i]);O(e,r)}(e,t)},isWindow:_,each:p,css:O,clone:function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);if(e.overflow)for(var n in e)e.hasOwnProperty(n)&&(t.overflow[n]=e.overflow[n]);return t},scrollLeft:function(e,t){if(_(e)){if(void 0===t)return a(e);window.scrollTo(t,c(e))}else{if(void 0===t)return e.scrollLeft;e.scrollLeft=t}},scrollTop:function(e,t){if(_(e)){if(void 0===t)return c(e);window.scrollTo(a(e),t)}else{if(void 0===t)return e.scrollTop;e.scrollTop=t}},viewportWidth:0,viewportHeight:0},g)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return Object.keys(e).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||"data-__"===n.substr(0,7)||(t[n]=e[n]),t}),{})}},function(e,t,n){var r=n(237);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(9)),a=r(n(16)),c=r(n(32)),s=r(n(14)),l=z(n(0)),u=r(n(3)),f=r(n(95)),d=z(n(493)),p=n(629),h=n(400),m=r(n(651)),v=r(n(709)),y=n(188),_=z(n(732)),g=r(n(733)),b=z(n(734)),M=z(n(762)),w=z(n(769)),O=r(n(843)),S=r(n(844)),C=r(n(845)),x=r(n(848)),k=r(n(122)),L=r(n(849)),E=r(n(850)),T=r(n(87)),P=r(n(418));function j(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(j=function(e){return e?n:t})(e)}function z(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=j(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}var D=[];function N(e){var t,n=e.prefixCls,r=e.className,o=e.style,L=e.size,E=e.bordered,j=e.dropdownPrefixCls,z=e.dataSource,N=e.pagination,H=e.rowSelection,A=e.rowKey,Y=e.rowClassName,I=e.columns,V=e.children,F=e.childrenColumnName,R=e.onChange,W=e.getPopupContainer,U=e.loading,B=e.expandIcon,K=e.expandable,q=e.expandedRowRender,G=e.expandIconColumnIndex,$=e.indentSize,J=e.scroll,X=e.sortDirections,Q=e.locale,Z=e.showSorterTooltip,ee=void 0===Z||Z;(0,T.default)(!("function"==typeof A&&A.length>1),"Table","`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.");var te=(0,P.default)(),ne=l.useMemo((function(){var e=new Set(Object.keys(te).filter((function(e){return te[e]})));return(I||(0,h.convertChildrenToColumns)(V)).filter((function(t){return!t.responsive||t.responsive.some((function(t){return e.has(t)}))}))}),[V,I,te]),re=(0,f.default)(e,["className","style","columns"]),oe=l.useContext(k.default),ie=l.useContext(y.ConfigContext),ae=ie.locale,ce=void 0===ae?x.default:ae,se=ie.renderEmpty,le=ie.direction,ue=L||oe,fe=(0,s.default)((0,s.default)({},ce.Table),Q),de=z||D,pe=l.useContext(y.ConfigContext).getPrefixCls,he=pe("table",n),me=pe("dropdown",j),ve=(0,s.default)({childrenColumnName:F,expandIconColumnIndex:G},K),ye=ve.childrenColumnName,_e=void 0===ye?"children":ye,ge=l.useMemo((function(){return de.some((function(e){var t;return null===(t=e)||void 0===t?void 0:t[_e]}))?"nest":q||K&&K.expandedRowRender?"row":null}),[de]),be={body:l.useRef()},Me=l.useMemo((function(){return"function"==typeof A?A:function(e){var t;return null===(t=e)||void 0===t?void 0:t[A]}}),[A]),we=(0,g.default)(de,_e,Me),Oe=(0,c.default)(we,1)[0],Se={},Ce=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=(0,s.default)((0,s.default)({},Se),e);n&&(Se.resetPagination(),r.pagination.current&&(r.pagination.current=1),N&&N.onChange&&N.onChange(1,r.pagination.pageSize)),J&&!1!==J.scrollToFirstRowOnChange&&be.body.current&&(0,C.default)(0,{getContainer:function(){return be.body.current}}),null==R||R(r.pagination,r.filters,r.sorter,{currentDataSource:(0,w.getFilterData)((0,M.getSortData)(de,r.sorterStates,_e),r.filterStates),action:t})},xe=(0,M.default)({prefixCls:he,mergedColumns:ne,onSorterChange:function(e,t){Ce({sorter:e,sorterStates:t},"sort",!1)},sortDirections:X||["ascend","descend"],tableLocale:fe,showSorterTooltip:ee}),ke=(0,c.default)(xe,4),Le=ke[0],Ee=ke[1],Te=ke[2],Pe=ke[3],je=l.useMemo((function(){return(0,M.getSortData)(de,Ee,_e)}),[de,Ee]);Se.sorter=Pe(),Se.sorterStates=Ee;var ze=(0,w.default)({prefixCls:he,locale:fe,dropdownPrefixCls:me,mergedColumns:ne,onFilterChange:function(e,t){Ce({filters:e,filterStates:t},"filter",!0)},getPopupContainer:W}),De=(0,c.default)(ze,3),Ne=De[0],He=De[1],Ae=De[2],Ye=(0,w.getFilterData)(je,He);Se.filters=Ae(),Se.filterStates=He;var Ie=l.useMemo((function(){return(0,s.default)({},Te)}),[Te]),Ve=(0,O.default)(Ie),Fe=(0,c.default)(Ve,1)[0],Re=(0,_.default)(Ye.length,N,(function(e,t){Ce({pagination:(0,s.default)((0,s.default)({},Se.pagination),{current:e,pageSize:t})},"paginate")})),We=(0,c.default)(Re,2),Ue=We[0],Be=We[1];Se.pagination=!1===N?{}:(0,_.getPaginationParam)(N,Ue),Se.resetPagination=Be;var Ke=l.useMemo((function(){if(!1===N||!Ue.pageSize)return Ye;var e=Ue.current,t=void 0===e?1:e,n=Ue.total,r=Ue.pageSize,o=void 0===r?_.DEFAULT_PAGE_SIZE:r;return(0,T.default)(t>0,"Table","`current` should be positive number."),Ye.length<n?Ye.length>o?((0,T.default)(!1,"Table","`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode."),Ye.slice((t-1)*o,t*o)):Ye:Ye.slice((t-1)*o,t*o)}),[!!N,Ye,Ue&&Ue.current,Ue&&Ue.pageSize,Ue&&Ue.total]),qe=(0,b.default)(H,{prefixCls:he,data:Ye,pageData:Ke,getRowKey:Me,getRecordByKey:Oe,expandType:ge,childrenColumnName:_e,locale:fe,expandIconColumnIndex:ve.expandIconColumnIndex,getPopupContainer:W}),Ge=(0,c.default)(qe,2),$e=Ge[0],Je=Ge[1];ve.__PARENT_RENDER_ICON__=ve.expandIcon,ve.expandIcon=ve.expandIcon||B||(0,S.default)(fe),"nest"===ge&&void 0===ve.expandIconColumnIndex?ve.expandIconColumnIndex=H?1:0:ve.expandIconColumnIndex>0&&H&&(ve.expandIconColumnIndex-=1),"number"!=typeof ve.indentSize&&(ve.indentSize="number"==typeof $?$:15);var Xe,Qe,Ze,et=l.useCallback((function(e){return Fe($e(Ne(Le(e))))}),[Le,Ne,$e]);if(!1!==N&&(null==Ue?void 0:Ue.total)){var tt;tt=Ue.size?Ue.size:"small"===ue||"middle"===ue?"small":void 0;var nt=function(e){return l.createElement(v.default,(0,s.default)({className:"".concat(he,"-pagination ").concat(he,"-pagination-").concat(e)},Ue,{size:tt}))},rt="rtl"===le?"left":"right",ot=Ue.position;if(null!==ot&&Array.isArray(ot)){var it=ot.find((function(e){return-1!==e.indexOf("top")})),at=ot.find((function(e){return-1!==e.indexOf("bottom")})),ct=ot.every((function(e){return"none"==="".concat(e)}));it||at||ct||(Qe=nt(rt)),it&&(Xe=nt(it.toLowerCase().replace("top",""))),at&&(Qe=nt(at.toLowerCase().replace("bottom","")))}else Qe=nt(rt)}"boolean"==typeof U?Ze={spinning:U}:"object"===(0,i.default)(U)&&(Ze=(0,s.default)({spinning:!0},U));var st=(0,u.default)("".concat(he,"-wrapper"),(0,a.default)({},"".concat(he,"-wrapper-rtl"),"rtl"===le),r);return l.createElement("div",{className:st,style:o},l.createElement(m.default,(0,s.default)({spinning:!1},Ze),Xe,l.createElement(d.default,(0,s.default)({},re,{columns:ne,direction:le,expandable:ve,prefixCls:he,className:(0,u.default)((t={},(0,a.default)(t,"".concat(he,"-middle"),"middle"===ue),(0,a.default)(t,"".concat(he,"-small"),"small"===ue),(0,a.default)(t,"".concat(he,"-bordered"),E),(0,a.default)(t,"".concat(he,"-empty"),0===de.length),t)),data:Ke,rowKey:Me,rowClassName:function(e,t,n){var r;return r="function"==typeof Y?(0,u.default)(Y(e,t,n)):(0,u.default)(Y),(0,u.default)((0,a.default)({},"".concat(he,"-row-selected"),Je.has(Me(e,t))),r)},emptyText:Q&&Q.emptyText||se("Table"),internalHooks:p.INTERNAL_HOOKS,internalRefs:be,transformColumns:et})),Qe))}N.defaultProps={rowKey:"key"},N.SELECTION_ALL=b.SELECTION_ALL,N.SELECTION_INVERT=b.SELECTION_INVERT,N.SELECTION_NONE=b.SELECTION_NONE,N.Column=L.default,N.ColumnGroup=E.default,N.Summary=d.Summary;var H=N;t.default=H},function(e,t){e.exports=function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,M=r?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case v:case l:return e;default:return t}}case i:return t}}}function O(e){return w(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=v,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return O(e)||w(e)===f},t.isConcurrentMode=O,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===y},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===c},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===M||e.$$typeof===_)},t.typeOf=w},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,M=r?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case v:case l:return e;default:return t}}case i:return t}}}function O(e){return w(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=v,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return O(e)||w(e)===f},t.isConcurrentMode=O,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===y},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===c},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===M||e.$$typeof===_)},t.typeOf=w},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.INTERNAL_HOOKS=void 0;var i=o(n(16)),a=o(n(14)),c=o(n(57)),s=o(n(58)),l=o(n(9)),u=o(n(32)),f=r(n(0)),d=o(n(632)),p=o(n(3)),h=o(n(59)),m=o(n(86)),v=o(n(53)),y=o(n(394)),_=o(n(633)),g=o(n(634)),b=o(n(635)),M=o(n(395)),w=o(n(65)),O=o(n(181)),S=o(n(638)),C=o(n(400)),x=n(401),k=n(119),L=o(n(399)),E=o(n(641)),T=o(n(397)),P=n(180),j=o(n(642)),z=r(n(643)),D=n(646),N=n(396),H=o(n(647)),A=o(n(650)),Y=[],I={};t.INTERNAL_HOOKS="rc-table-internal-hook";var V=f.memo((function(e){return e.children}),(function(e,t){return!!(0,h.default)(e.props,t.props)&&(e.pingLeft!==t.pingLeft||e.pingRight!==t.pingRight)}));function F(e){var t,n=e.prefixCls,r=e.className,o=e.rowClassName,h=e.style,_=e.data,g=e.rowKey,F=e.scroll,R=e.tableLayout,W=e.direction,U=e.title,B=e.footer,K=e.summary,q=e.id,G=e.showHeader,$=e.components,J=e.emptyText,X=e.onRow,Q=e.onHeaderRow,Z=e.internalHooks,ee=e.transformColumns,te=e.internalRefs,ne=e.sticky,re=_||Y,oe=!!re.length,ie=f.useState(0),ae=(0,u.default)(ie,2),ce=ae[0],se=ae[1];f.useEffect((function(){se((0,y.default)())}));var le,ue,fe,de=f.useMemo((function(){return(0,k.mergeObject)($,{})}),[$]),pe=f.useCallback((function(e,t){return(0,k.getPathValue)(de,e)||t}),[de]),he=f.useMemo((function(){return"function"==typeof g?g:function(e){return e&&e[g]}}),[g]),me=(0,P.getExpandableProps)(e),ve=me.expandIcon,ye=me.expandedRowKeys,_e=me.defaultExpandedRowKeys,ge=me.defaultExpandAllRows,be=me.expandedRowRender,Me=me.onExpand,we=me.onExpandedRowsChange,Oe=me.expandRowByClick,Se=me.rowExpandable,Ce=me.expandIconColumnIndex,xe=me.expandedRowClassName,ke=me.childrenColumnName,Le=me.indentSize,Ee=ve||D.renderExpandIcon,Te=ke||"children",Pe=f.useMemo((function(){return be?"row":!!(e.expandable&&"rc-table-internal-hook"===Z&&e.expandable.__PARENT_RENDER_ICON__||re.some((function(e){return e&&"object"===(0,l.default)(e)&&e[Te]})))&&"nest"}),[!!be,re]),je=f.useState((function(){return _e||(ge?(0,D.findAllChildrenKeys)(re,he,Te):[])})),ze=(0,u.default)(je,2),De=ze[0],Ne=ze[1],He=f.useMemo((function(){return new Set(ye||De||[])}),[ye,De]),Ae=f.useCallback((function(e){var t,n=he(e,re.indexOf(e)),r=He.has(n);r?(He.delete(n),t=(0,s.default)(He)):t=[].concat((0,s.default)(He),[n]),Ne(t),Me&&Me(!r,e),we&&we(t)}),[he,He,re,Me,we]),Ye=f.useState(0),Ie=(0,u.default)(Ye,2),Ve=Ie[0],Fe=Ie[1],Re=(0,C.default)((0,c.default)((0,c.default)((0,c.default)({},e),me),{},{expandable:!!be,expandedKeys:He,getRowKey:he,onTriggerExpand:Ae,expandIcon:Ee,expandIconColumnIndex:Ce,direction:W}),"rc-table-internal-hook"===Z?ee:null),We=(0,u.default)(Re,2),Ue=We[0],Be=We[1],Ke=f.useMemo((function(){return{columns:Ue,flattenColumns:Be}}),[Ue,Be]),qe=f.useRef(),Ge=f.useRef(),$e=f.useRef(),Je=f.useState(!1),Xe=(0,u.default)(Je,2),Qe=Xe[0],Ze=Xe[1],et=f.useState(!1),tt=(0,u.default)(et,2),nt=tt[0],rt=tt[1],ot=(0,x.useLayoutState)(new Map),it=(0,u.default)(ot,2),at=it[0],ct=it[1],st=(0,k.getColumnsKey)(Be).map((function(e){return at.get(e)})),lt=f.useMemo((function(){return st}),[st.join("_")]),ut=(0,E.default)(lt,Be.length,W),ft=F&&(0,k.validateValue)(F.y),dt=F&&(0,k.validateValue)(F.x),pt=dt&&Be.some((function(e){return e.fixed})),ht=f.useRef(),mt=(0,A.default)(ne,n),vt=mt.isSticky,yt=mt.offsetHeader,_t=mt.offsetScroll,gt=mt.stickyClassName,bt=mt.container;ft&&(ue={overflowY:"scroll",maxHeight:F.y}),dt&&(le={overflowX:"auto"},ft||(ue={overflowY:"hidden"}),fe={width:!0===F.x?"auto":F.x,minWidth:"100%"});var Mt=f.useCallback((function(e,t){(0,d.default)(qe.current)&&ct((function(n){if(n.get(e)!==t){var r=new Map(n);return r.set(e,t),r}return n}))}),[]),wt=(0,x.useTimeoutLock)(null),Ot=(0,u.default)(wt,2),St=Ot[0],Ct=Ot[1];function xt(e,t){t&&("function"==typeof t?t(e):t.scrollLeft!==e&&(t.scrollLeft=e))}var kt=function(e){var t,n=e.currentTarget,r=e.scrollLeft,o="rtl"===W,i="number"==typeof r?r:n.scrollLeft,a=n||I;Ct()&&Ct()!==a||(St(a),xt(i,Ge.current),xt(i,$e.current),xt(i,null===(t=ht.current)||void 0===t?void 0:t.setScrollLeft));if(n){var c=n.scrollWidth,s=n.clientWidth;o?(Ze(-i<c-s),rt(-i>0)):(Ze(i>0),rt(i<c-s))}},Lt=function(){$e.current&&kt({currentTarget:$e.current})};f.useEffect((function(){return Lt}),[]),f.useEffect((function(){dt&&Lt()}),[dt]),f.useEffect((function(){"rc-table-internal-hook"===Z&&te&&(te.body.current=$e.current)}));var Et,Tt,Pt=pe(["table"],"table"),jt=f.useMemo((function(){return R||(pt?"max-content"===F.x?"auto":"fixed":ft||vt||Be.some((function(e){return e.ellipsis}))?"fixed":"auto")}),[ft,pt,Be,R,vt]),zt={colWidths:lt,columCount:Be.length,stickyOffsets:ut,onHeaderRow:Q,fixHeader:ft,scroll:F},Dt=f.useMemo((function(){return oe?null:"function"==typeof J?J():J}),[oe,J]),Nt=f.createElement(S.default,{data:re,measureColumnWidth:ft||dt||vt,expandedKeys:He,rowExpandable:Se,getRowKey:he,onRow:X,emptyNode:Dt,childrenColumnName:Te}),Ht=f.createElement(T.default,{colWidths:Be.map((function(e){return e.width})),columns:Be}),At=K&&f.createElement(z.default,null,K(re)),Yt=pe(["body"]);ft||vt?("function"==typeof Yt?(Tt=Yt(re,{scrollbarSize:ce,ref:$e,onScroll:kt}),zt.colWidths=Be.map((function(e,t){var n=e.width,r=t===Ue.length-1?n-ce:n;return"number"!=typeof r||Number.isNaN(r)?((0,m.default)(!1,"When use `components.body` with render props. Each column should have a fixed `width` value."),0):r}))):Tt=f.createElement("div",{style:(0,c.default)((0,c.default)({},le),ue),onScroll:kt,ref:$e,className:(0,p.default)("".concat(n,"-body"))},f.createElement(Pt,{style:(0,c.default)((0,c.default)({},fe),{},{tableLayout:jt})},Ht,Nt,At)),Et=f.createElement(f.Fragment,null,!1!==G&&f.createElement(b.default,(0,a.default)({noData:!re.length,maxContentScroll:dt&&"max-content"===F.x},zt,Ke,{direction:W,offsetHeader:yt,stickyClassName:gt,ref:Ge,onScroll:kt})),Tt,vt&&f.createElement(H.default,{ref:ht,offsetScroll:_t,scrollBodyRef:$e,onScroll:kt,container:bt}))):Et=f.createElement("div",{style:(0,c.default)((0,c.default)({},le),ue),className:(0,p.default)("".concat(n,"-content")),onScroll:kt,ref:$e},f.createElement(Pt,{style:(0,c.default)((0,c.default)({},fe),{},{tableLayout:jt})},Ht,!1!==G&&f.createElement(M.default,(0,a.default)({},zt,Ke)),Nt,At));var It=(0,P.getDataAndAriaProps)(e),Vt=f.createElement("div",(0,a.default)({className:(0,p.default)(n,r,(t={},(0,i.default)(t,"".concat(n,"-rtl"),"rtl"===W),(0,i.default)(t,"".concat(n,"-ping-left"),Qe),(0,i.default)(t,"".concat(n,"-ping-right"),nt),(0,i.default)(t,"".concat(n,"-layout-fixed"),"fixed"===R),(0,i.default)(t,"".concat(n,"-fixed-header"),ft),(0,i.default)(t,"".concat(n,"-fixed-column"),pt),(0,i.default)(t,"".concat(n,"-scroll-horizontal"),dt),(0,i.default)(t,"".concat(n,"-has-fix-left"),Be[0]&&Be[0].fixed),(0,i.default)(t,"".concat(n,"-has-fix-right"),Be[Be.length-1]&&"right"===Be[Be.length-1].fixed),t)),style:h,id:q,ref:qe},It),f.createElement(V,{pingLeft:Qe,pingRight:nt,props:(0,c.default)((0,c.default)({},e),{},{stickyOffsets:ut,mergedExpandedKeys:He})},U&&f.createElement(j.default,{className:"".concat(n,"-title")},U(re)),f.createElement("div",{className:"".concat(n,"-container")},Et),B&&f.createElement(j.default,{className:"".concat(n,"-footer")},B(re))));dt&&(Vt=f.createElement(v.default,{onResize:function(e){var t=e.width;Lt(),Fe(qe.current?qe.current.offsetWidth:t)}},Vt));var Ft=f.useMemo((function(){return{prefixCls:n,getComponent:pe,scrollbarSize:ce,direction:W,fixedInfoList:Be.map((function(e,t){return(0,N.getCellFixedInfo)(t,t,Be,ut,W)})),isSticky:vt}}),[n,pe,ce,W,Be,ut,W,vt]),Rt=f.useMemo((function(){return(0,c.default)((0,c.default)({},Ke),{},{tableLayout:jt,rowClassName:o,expandedRowClassName:xe,componentWidth:Ve,fixHeader:ft,fixColumn:pt,horizonScroll:dt,expandIcon:Ee,expandableType:Pe,expandRowByClick:Oe,expandedRowRender:be,onTriggerExpand:Ae,expandIconColumnIndex:Ce,indentSize:Le})}),[Ke,jt,o,xe,Ve,ft,pt,dt,Ee,Pe,Oe,be,Ae,Ce,Le]),Wt=f.useMemo((function(){return{onColumnResize:Mt}}),[Mt]);return f.createElement(w.default.Provider,{value:Ft},f.createElement(O.default.Provider,{value:Rt},f.createElement(L.default.Provider,{value:Wt},Vt)))}F.Column=g.default,F.ColumnGroup=_.default,F.Summary=z.FooterComponents,F.defaultProps={rowKey:"key",prefixCls:"rc-table",emptyText:function(){return"No Data"}};var R=F;t.default=R},function(e,t,n){var r=n(391);e.exports=function(e){if(Array.isArray(e))return r(e)},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){var n=e.getBoundingClientRect();if(n.width||n.height)return!0}return!1}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return null};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return null};t.default=r},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(14)),a=o(n(16)),c=o(n(57)),s=o(n(58)),l=o(n(71)),u=r(n(0)),f=o(n(3)),d=n(137),p=o(n(395)),h=o(n(397)),m=o(n(65));var v=u.forwardRef((function(e,t){var n=e.noData,r=e.columns,o=e.flattenColumns,v=e.colWidths,y=e.columCount,_=e.stickyOffsets,g=e.direction,b=e.fixHeader,M=e.offsetHeader,w=e.stickyClassName,O=e.onScroll,S=e.maxContentScroll,C=(0,l.default)(e,["noData","columns","flattenColumns","colWidths","columCount","stickyOffsets","direction","fixHeader","offsetHeader","stickyClassName","onScroll","maxContentScroll"]),x=u.useContext(m.default),k=x.prefixCls,L=x.scrollbarSize,E=x.isSticky,T=E&&!b?0:L,P=u.useRef(null),j=u.useCallback((function(e){(0,d.fillRef)(t,e),(0,d.fillRef)(P,e)}),[]);u.useEffect((function(){var e;function t(e){var t=e.currentTarget,n=e.deltaX;n&&(O({currentTarget:t,scrollLeft:t.scrollLeft+n}),e.preventDefault())}return null===(e=P.current)||void 0===e||e.addEventListener("wheel",t),function(){var e;null===(e=P.current)||void 0===e||e.removeEventListener("wheel",t)}}),[]);var z=u.useMemo((function(){return o.every((function(e){return e.width>=0}))}),[o]),D=o[o.length-1],N={fixed:D?D.fixed:null,onHeaderCell:function(){return{className:"".concat(k,"-cell-scrollbar")}}},H=(0,u.useMemo)((function(){return T?[].concat((0,s.default)(r),[N]):r}),[T,r]),A=(0,u.useMemo)((function(){return T?[].concat((0,s.default)(o),[N]):o}),[T,o]),Y=(0,u.useMemo)((function(){var e=_.right,t=_.left;return(0,c.default)((0,c.default)({},_),{},{left:"rtl"===g?[].concat((0,s.default)(t.map((function(e){return e+T}))),[0]):t,right:"rtl"===g?e:[].concat((0,s.default)(e.map((function(e){return e+T}))),[0]),isSticky:E})}),[T,_,E]),I=function(e,t){return(0,u.useMemo)((function(){for(var n=[],r=0;r<t;r+=1){var o=e[r];if(void 0===o)return null;n[r]=o}return n}),[e.join("_"),t])}(v,y);return u.createElement("div",{style:(0,c.default)({overflow:"hidden"},E?{top:M}:{}),ref:j,className:(0,f.default)("".concat(k,"-header"),(0,a.default)({},w,!!w))},u.createElement("table",{style:{tableLayout:"fixed",visibility:n||I?null:"hidden"}},(!n||!S||z)&&u.createElement(h.default,{colWidths:I?[].concat((0,s.default)(I),[T]):[],columCount:y+1,columns:A}),u.createElement(p.default,(0,i.default)({},C,{stickyOffsets:Y,columns:H,flattenColumns:A}))))}));v.displayName="FixedHeader";var y=v;t.default=y},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(14)),a=r(n(0)),c=o(n(138)),s=o(n(65)),l=n(396),u=n(119);function f(e){var t,n=e.cells,r=e.stickyOffsets,o=e.flattenColumns,f=e.rowComponent,d=e.cellComponent,p=e.onHeaderRow,h=e.index,m=a.useContext(s.default),v=m.prefixCls,y=m.direction;p&&(t=p(n.map((function(e){return e.column})),h));var _=(0,u.getColumnsKey)(n.map((function(e){return e.column})));return a.createElement(f,t,n.map((function(e,t){var n,s=e.column,u=(0,l.getCellFixedInfo)(e.colStart,e.colEnd,o,r,y);return s&&s.onHeaderCell&&(n=e.column.onHeaderCell(s)),a.createElement(c.default,(0,i.default)({},e,{ellipsis:s.ellipsis,align:s.align,component:d,prefixCls:v,key:_[t]},u,{additionalProps:n,rowType:"header"}))})))}f.displayName="HeaderRow";var d=f;t.default=d},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(639)),c=r(n(65)),s=r(n(398)),l=r(n(181)),u=n(119),f=r(n(399)),d=r(n(640));function p(e){var t=e.data,n=e.getRowKey,r=e.measureColumnWidth,o=e.expandedKeys,p=e.onRow,h=e.rowExpandable,m=e.emptyNode,v=e.childrenColumnName,y=i.useContext(f.default).onColumnResize,_=i.useContext(c.default),g=_.prefixCls,b=_.getComponent,M=i.useContext(l.default),w=M.fixHeader,O=M.horizonScroll,S=M.flattenColumns,C=M.componentWidth;return i.useMemo((function(){var e,c=b(["body","wrapper"],"tbody"),l=b(["body","row"],"tr"),f=b(["body","cell"],"td");e=t.length?t.map((function(e,t){var r=n(e,t);return i.createElement(a.default,{key:r,rowKey:r,record:e,recordKey:r,index:t,rowComponent:l,cellComponent:f,expandedKeys:o,onRow:p,getRowKey:n,rowExpandable:h,childrenColumnName:v})})):i.createElement(s.default,{expanded:!0,className:"".concat(g,"-placeholder"),prefixCls:g,fixHeader:w,fixColumn:O,horizonScroll:O,component:l,componentWidth:C,cellComponent:f,colSpan:S.length},m);var _=(0,u.getColumnsKey)(S);return i.createElement(c,{className:"".concat(g,"-tbody")},r&&i.createElement("tr",{"aria-hidden":"true",className:"".concat(g,"-measure-row"),style:{height:0,fontSize:0}},_.map((function(e){return i.createElement(d.default,{key:e,columnKey:e,onColumnResize:y})}))),e)}),[t,g,p,r,o,n,b,C,m,S])}var h=i.memo(p);h.displayName="Body";var m=h;t.default=m},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(14)),a=o(n(57)),c=o(n(32)),s=r(n(0)),l=o(n(3)),u=o(n(138)),f=o(n(65)),d=o(n(181)),p=n(119),h=o(n(398));function m(e){var t=e.className,n=e.style,r=e.record,o=e.index,v=e.rowKey,y=e.getRowKey,_=e.rowExpandable,g=e.expandedKeys,b=e.onRow,M=e.indent,w=void 0===M?0:M,O=e.rowComponent,S=e.cellComponent,C=e.childrenColumnName,x=s.useContext(f.default),k=x.prefixCls,L=x.fixedInfoList,E=s.useContext(d.default),T=E.fixHeader,P=E.fixColumn,j=E.horizonScroll,z=E.componentWidth,D=E.flattenColumns,N=E.expandableType,H=E.expandRowByClick,A=E.onTriggerExpand,Y=E.rowClassName,I=E.expandedRowClassName,V=E.indentSize,F=E.expandIcon,R=E.expandedRowRender,W=E.expandIconColumnIndex,U=s.useState(!1),B=(0,c.default)(U,2),K=B[0],q=B[1],G=g&&g.has(e.recordKey);s.useEffect((function(){G&&q(!0)}),[G]);var $,J="row"===N&&(!_||_(r)),X="nest"===N,Q=C&&r&&r[C],Z=J||X;b&&($=b(r,o));var ee;"string"==typeof Y?ee=Y:"function"==typeof Y&&(ee=Y(r,o,w));var te,ne,re=(0,p.getColumnsKey)(D),oe=s.createElement(O,(0,i.default)({},$,{"data-row-key":v,className:(0,l.default)(t,"".concat(k,"-row"),"".concat(k,"-row-level-").concat(w),ee,$&&$.className),style:(0,a.default)((0,a.default)({},n),$?$.style:null),onClick:function(e){if(H&&Z&&A(r,e),$&&$.onClick){for(var t,n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];(t=$).onClick.apply(t,[e].concat(o))}}}),D.map((function(e,t){var n,a,c=e.render,l=e.dataIndex,f=e.className,d=re[t],p=L[t];return t===(W||0)&&X&&(n=s.createElement(s.Fragment,null,s.createElement("span",{style:{paddingLeft:"".concat(V*w,"px")},className:"".concat(k,"-row-indent indent-level-").concat(w)}),F({prefixCls:k,expanded:G,expandable:Q,record:r,onExpand:A}))),e.onCell&&(a=e.onCell(r,o)),s.createElement(u.default,(0,i.default)({className:f,ellipsis:e.ellipsis,align:e.align,component:S,prefixCls:k,key:d,record:r,index:o,dataIndex:l,render:c,shouldCellUpdate:e.shouldCellUpdate},p,{appendNode:n,additionalProps:a}))})));if(J&&(K||G)){var ie=R(r,o,w+1,G),ae=I&&I(r,o,w);te=s.createElement(h.default,{expanded:G,className:(0,l.default)("".concat(k,"-expanded-row"),"".concat(k,"-expanded-row-level-").concat(w+1),ae),prefixCls:k,fixHeader:T,fixColumn:P,horizonScroll:j,component:O,componentWidth:z,cellComponent:S,colSpan:D.length},ie)}return Q&&G&&(ne=(r[C]||[]).map((function(t,n){var r=y(t,n);return s.createElement(m,(0,i.default)({},e,{key:r,rowKey:r,record:t,recordKey:r,index:n,indent:w+1}))}))),s.createElement(s.Fragment,null,oe,te,ne)}m.displayName="BodyRow";var v=m;t.default=v},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.columnKey,n=e.onColumnResize,r=i.useRef();return i.useEffect((function(){r.current&&n(t,r.current.offsetWidth)}),[]),i.createElement(a.default,{onResize:function(e){var r=e.offsetWidth;n(t,r)}},i.createElement("td",{ref:r,style:{padding:0,border:0,height:0}},i.createElement("div",{style:{height:0,overflow:"hidden"}}," ")))};var i=o(n(0)),a=r(n(53))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(0);var o=function(e,t,n){return(0,r.useMemo)((function(){for(var r=[],o=[],i=0,a=0,c=0;c<t;c+=1)if("rtl"===n){o[c]=a,a+=e[c]||0;var s=t-c-1;r[s]=i,i+=e[s]||0}else{r[c]=i,i+=e[c]||0;var l=t-c-1;o[l]=a,a+=e[l]||0}return{left:r,right:o}}),[e,t,n])};t.default=o},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0));var i=function(e){var t=e.className,n=e.children;return o.createElement("div",{className:t},n)};t.default=i},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.FooterComponents=t.default=void 0;var i=o(n(0)),a=r(n(65)),c=r(n(644)),s=r(n(645));var l=function(e){var t=e.children,n=i.useContext(a.default).prefixCls;return i.createElement("tfoot",{className:"".concat(n,"-summary")},t)};t.default=l;var u={Cell:c.default,Row:s.default};t.FooterComponents=u},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.className,n=e.index,r=e.children,o=e.colSpan,l=e.rowSpan,u=e.align,f=a.useContext(s.default),d=f.prefixCls,p=f.fixedInfoList[n];return a.createElement(c.default,(0,i.default)({className:t,index:n,component:"td",prefixCls:d,record:null,dataIndex:null,align:u,render:function(){return{children:r,props:{colSpan:o,rowSpan:l}}}},p))};var i=o(n(14)),a=r(n(0)),c=o(n(138)),s=o(n(65))},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return o.createElement("tr",e)};var o=r(n(0))},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.renderExpandIcon=function(e){var t,n=e.prefixCls,r=e.record,o=e.onExpand,s=e.expanded,l=e.expandable,u="".concat(n,"-row-expand-icon");if(!l)return a.createElement("span",{className:(0,c.default)(u,"".concat(n,"-row-spaced"))});return a.createElement("span",{className:(0,c.default)(u,(t={},(0,i.default)(t,"".concat(n,"-row-expanded"),s),(0,i.default)(t,"".concat(n,"-row-collapsed"),!s),t)),onClick:function(e){o(r,e),e.stopPropagation()}})},t.findAllChildrenKeys=function(e,t,n){var r=[];return function e(o){(o||[]).forEach((function(o,i){r.push(t(o,i)),e(o[n])}))}(e),r};var i=o(n(16)),a=r(n(0)),c=o(n(3))},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(16)),a=o(n(57)),c=o(n(32)),s=r(n(0)),l=o(n(648)),u=o(n(394)),f=o(n(3)),d=n(649),p=o(n(65)),h=n(401),m=function(e,t){var n,r,o=e.scrollBodyRef,m=e.onScroll,v=e.offsetScroll,y=e.container,_=s.useContext(p.default).prefixCls,g=(null===(n=o.current)||void 0===n?void 0:n.scrollWidth)||0,b=(null===(r=o.current)||void 0===r?void 0:r.clientWidth)||0,M=g&&b*(b/g),w=s.useRef(),O=(0,h.useLayoutState)({scrollLeft:0,isHiddenScrollBar:!1}),S=(0,c.default)(O,2),C=S[0],x=S[1],k=s.useRef({delta:0,x:0}),L=s.useState(!1),E=(0,c.default)(L,2),T=E[0],P=E[1],j=function(){P(!1)},z=function(e){var t,n=(e||(null===(t=window)||void 0===t?void 0:t.event)).buttons;if(T&&0!==n){var r=k.current.x+e.pageX-k.current.x-k.current.delta;r<=0&&(r=0),r+M>=b&&(r=b-M),m({scrollLeft:r/b*(g+2)}),k.current.x=e.pageX}else T&&P(!1)},D=function(){var e=(0,d.getOffset)(o.current).top,t=e+o.current.offsetHeight,n=y===window?document.documentElement.scrollTop+window.innerHeight:(0,d.getOffset)(y).top+y.clientHeight;t-(0,u.default)()<=n||e>=n-v?x((function(e){return(0,a.default)((0,a.default)({},e),{},{isHiddenScrollBar:!0})})):x((function(e){return(0,a.default)((0,a.default)({},e),{},{isHiddenScrollBar:!1})}))},N=function(e){x((function(t){return(0,a.default)((0,a.default)({},t),{},{scrollLeft:e/g*b||0})}))};return s.useImperativeHandle(t,(function(){return{setScrollLeft:N}})),s.useEffect((function(){var e=(0,l.default)(document.body,"mouseup",j,!1),t=(0,l.default)(document.body,"mousemove",z,!1);return D(),function(){e.remove(),t.remove()}}),[M,T]),s.useEffect((function(){var e=(0,l.default)(y,"scroll",D,!1),t=(0,l.default)(window,"resize",D,!1);return function(){e.remove(),t.remove()}}),[y]),s.useEffect((function(){C.isHiddenScrollBar||x((function(e){var t=o.current;return t?(0,a.default)((0,a.default)({},e),{},{scrollLeft:t.scrollLeft/t.scrollWidth*t.clientWidth}):e}))}),[C.isHiddenScrollBar]),g<=b||!M||C.isHiddenScrollBar?null:s.createElement("div",{style:{height:(0,u.default)(),width:b,bottom:v},className:"".concat(_,"-sticky-scroll")},s.createElement("div",{onMouseDown:function(e){e.persist(),k.current.delta=e.pageX-C.scrollLeft,k.current.x=0,P(!0),e.preventDefault()},ref:w,className:(0,f.default)("".concat(_,"-sticky-scroll-bar"),(0,i.default)({},"".concat(_,"-sticky-scroll-bar-active"),T)),style:{width:"".concat(M,"px"),transform:"translate3d(".concat(C.scrollLeft,"px, 0, 0)")}}))},v=s.forwardRef(m);t.default=v},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){var i=o.default.unstable_batchedUpdates?function(e){o.default.unstable_batchedUpdates(n,e)}:n;e.addEventListener&&e.addEventListener(t,i,r);return{remove:function(){e.removeEventListener&&e.removeEventListener(t,i)}}};var o=r(n(7))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t){var n=arguments.length,r=a(e);return t=i[t]?"cssFloat"in e.style?"cssFloat":"styleFloat":t,1===n?r:c(e,t,r[t]||e.style[t])},t.set=function e(t,n,o){var c=arguments.length;if(n=i[n]?"cssFloat"in t.style?"cssFloat":"styleFloat":n,3===c)return"number"==typeof o&&r.test(n)&&(o="".concat(o,"px")),t.style[n]=o,o;for(var s in n)n.hasOwnProperty(s)&&e(t,s,n[s]);return a(t)},t.getOuterWidth=function(e){if(e===document.body)return document.documentElement.clientWidth;return e.offsetWidth},t.getOuterHeight=function(e){if(e===document.body)return window.innerHeight||document.documentElement.clientHeight;return e.offsetHeight},t.getDocSize=function(){var e=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);return{width:e,height:t}},t.getClientSize=function(){var e=document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{width:e,height:t}},t.getScroll=function(){return{scrollLeft:Math.max(document.documentElement.scrollLeft,document.body.scrollLeft),scrollTop:Math.max(document.documentElement.scrollTop,document.body.scrollTop)}},t.getOffset=function(e){var t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.pageXOffset||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.pageYOffset||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}};var r=/margin|padding|width|height|max|min|offset/,o={left:!0,top:!0},i={cssFloat:1,styleFloat:1,float:1};function a(e){return 1===e.nodeType?e.ownerDocument.defaultView.getComputedStyle(e,null):{}}function c(e,t,n){if(t=t.toLowerCase(),"auto"===n){if("height"===t)return e.offsetHeight;if("width"===t)return e.offsetWidth}return t in o||(o[t]=r.test(t)),o[t]?parseFloat(n)||0:n}},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n="object"===(0,i.default)(e)?e:{},r=n.offsetHeader,o=void 0===r?0:r,s=n.offsetScroll,l=void 0===s?0:s,u=n.getContainer,f=(void 0===u?function(){return c}:u)()||c;return a.useMemo((function(){var n=!!e;return{isSticky:n,stickyClassName:n?"".concat(t,"-sticky-header"):"",offsetHeader:o,offsetScroll:l,container:f}}),[l,o,t,f])};var i=o(n(9)),a=r(n(0)),c=(0,o(n(402)).default)()?window:null},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=r(n(66)),s=r(n(72)),l=r(n(73)),u=r(n(74)),f=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=_(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),d=r(n(3)),p=r(n(95)),h=r(n(656)),m=n(33),v=n(140),y=n(88);function _(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(_=function(e){return e?n:t})(e)}var g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},b=((0,v.tuple)("small","default","large"),null);var M=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(e){var r;(0,c.default)(this,n),(r=t.call(this,e)).debouncifyUpdateSpinning=function(e){var t=(e||r.props).delay;t&&(r.cancelExistingSpin(),r.updateSpinning=(0,h.default)(r.originalUpdateSpinning,t))},r.updateSpinning=function(){var e=r.props.spinning;r.state.spinning!==e&&r.setState({spinning:e})},r.renderSpin=function(e){var t,n=e.getPrefixCls,o=e.direction,c=r.props,s=c.prefixCls,l=c.className,u=c.size,h=c.tip,m=c.wrapperClassName,v=c.style,_=g(c,["prefixCls","className","size","tip","wrapperClassName","style"]),M=r.state.spinning,w=n("spin",s),O=(0,d.default)(w,(t={},(0,a.default)(t,"".concat(w,"-sm"),"small"===u),(0,a.default)(t,"".concat(w,"-lg"),"large"===u),(0,a.default)(t,"".concat(w,"-spinning"),M),(0,a.default)(t,"".concat(w,"-show-text"),!!h),(0,a.default)(t,"".concat(w,"-rtl"),"rtl"===o),t),l),S=(0,p.default)(_,["spinning","delay","indicator"]),C=f.createElement("div",(0,i.default)({},S,{style:v,className:O}),function(e,t){var n=t.indicator,r="".concat(e,"-dot");return null===n?null:(0,y.isValidElement)(n)?(0,y.cloneElement)(n,{className:(0,d.default)(n.props.className,r)}):(0,y.isValidElement)(b)?(0,y.cloneElement)(b,{className:(0,d.default)(b.props.className,r)}):f.createElement("span",{className:(0,d.default)(r,"".concat(e,"-dot-spin"))},f.createElement("i",{className:"".concat(e,"-dot-item")}),f.createElement("i",{className:"".concat(e,"-dot-item")}),f.createElement("i",{className:"".concat(e,"-dot-item")}),f.createElement("i",{className:"".concat(e,"-dot-item")}))}(w,r.props),h?f.createElement("div",{className:"".concat(w,"-text")},h):null);if(r.isNestedPattern()){var x=(0,d.default)("".concat(w,"-container"),(0,a.default)({},"".concat(w,"-blur"),M));return f.createElement("div",(0,i.default)({},S,{className:(0,d.default)("".concat(w,"-nested-loading"),m)}),M&&f.createElement("div",{key:"loading"},C),f.createElement("div",{className:x,key:"container"},r.props.children))}return C};var o=e.spinning,s=function(e,t){return!!e&&!!t&&!isNaN(Number(t))}(o,e.delay);return r.state={spinning:o&&!s},r.originalUpdateSpinning=r.updateSpinning,r.debouncifyUpdateSpinning(e),r}return(0,s.default)(n,[{key:"componentDidMount",value:function(){this.updateSpinning()}},{key:"componentDidUpdate",value:function(){this.debouncifyUpdateSpinning(),this.updateSpinning()}},{key:"componentWillUnmount",value:function(){this.cancelExistingSpin()}},{key:"cancelExistingSpin",value:function(){var e=this.updateSpinning;e&&e.cancel&&e.cancel()}},{key:"isNestedPattern",value:function(){return!(!this.props||void 0===this.props.children)}},{key:"render",value:function(){return f.createElement(m.ConfigConsumer,null,this.renderSpin)}}],[{key:"setDefaultIndicator",value:function(e){b=e}}]),n}(f.Component);M.defaultProps={spinning:!0,size:"default",wrapperClassName:""};var w=M;t.default=w},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},e.exports.default=e.exports,e.exports.__esModule=!0,n(t,r)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.default=e.exports,e.exports.__esModule=!0,n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(9).default,o=n(183);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(139),o=n(657),i=n(658),a=Math.max,c=Math.min;e.exports=function(e,t,n){var s,l,u,f,d,p,h=0,m=!1,v=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function _(t){var n=s,r=l;return s=l=void 0,h=t,f=e.apply(r,n)}function g(e){return h=e,d=setTimeout(M,t),m?_(e):f}function b(e){var n=e-p;return void 0===p||n>=t||n<0||v&&e-h>=u}function M(){var e=o();if(b(e))return w(e);d=setTimeout(M,function(e){var n=t-(e-p);return v?c(n,u-(e-h)):n}(e))}function w(e){return d=void 0,y&&s?_(e):(s=l=void 0,f)}function O(){var e=o(),n=b(e);if(s=arguments,l=this,p=e,n){if(void 0===d)return g(p);if(v)return clearTimeout(d),d=setTimeout(M,t),_(p)}return void 0===d&&(d=setTimeout(M,t)),f}return t=i(t)||0,r(n)&&(m=!!n.leading,u=(v="maxWait"in n)?a(i(n.maxWait)||0,t):u,y="trailing"in n?!!n.trailing:y),O.cancel=function(){void 0!==d&&clearTimeout(d),h=0,s=p=l=d=void 0},O.flush=function(){return void 0===d?f:w(o())},O}},function(e,t,n){var r=n(67);e.exports=function(){return r.Date.now()}},function(e,t,n){var r=n(659),o=n(139),i=n(661),a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=c.test(e);return n||s.test(e)?l(e.slice(2),n?2:8):a.test(e)?NaN:+e}},function(e,t,n){var r=n(660),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},function(e,t){var n=/\s/;e.exports=function(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}},function(e,t,n){var r=n(120),o=n(121);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(184),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,c=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[c]=n:delete e[c]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,M=r?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case v:case l:return e;default:return t}}case i:return t}}}function O(e){return w(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=v,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return O(e)||w(e)===f},t.isConcurrentMode=O,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===y},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===c},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===M||e.$$typeof===_)},t.typeOf=w},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),a=new O(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return C()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=b(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(e,n,a),i}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function f(){}function d(){}function p(){}var h={};h[o]=function(){return this};var m=Object.getPrototypeOf,v=m&&m(m(S([])));v&&v!==t&&n.call(v,o)&&(h=v);var y=p.prototype=f.prototype=Object.create(h);function _(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function g(e,t){var r;this._invoke=function(o,i){function a(){return new t((function(r,a){!function r(o,i,a,c){var s=l(e[o],e,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,c)}),(function(e){r("throw",e,a,c)})):t.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,c)}))}c(s.arg)}(o,i,r,a)}))}return r=r?r.then(a,a):a()}}function b(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function M(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(M,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:C}}function C(){return{value:void 0,done:!0}}return d.prototype=y.constructor=p,p.constructor=d,d.displayName=c(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,c(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},_(g.prototype),g.prototype[i]=function(){return this},e.AsyncIterator=g,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new g(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(y),c(y,a,"Generator"),y[o]=function(){return this},y.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=S,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),w(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;w(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r=o.useRef({});"value"in r.current&&!n(r.current.condition,t)||(r.current.value=e(),r.current.condition=t);return r.current.value};var o=r(n(0))},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ANT_MARK=void 0;var i=r(n(14)),a=r(n(66)),c=r(n(72)),s=r(n(73)),l=r(n(74)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),f=r(n(87)),d=n(668),p=r(n(407));function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}t.ANT_MARK="internalMark";var m=function(e){(0,s.default)(n,e);var t=(0,l.default)(n);function n(e){var r;return(0,a.default)(this,n),r=t.call(this,e),(0,d.changeConfirmLocale)(e.locale&&e.locale.Modal),(0,f.default)("internalMark"===e._ANT_MARK__,"LocaleProvider","`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale"),r}return(0,c.default)(n,[{key:"componentDidMount",value:function(){(0,d.changeConfirmLocale)(this.props.locale&&this.props.locale.Modal)}},{key:"componentDidUpdate",value:function(e){var t=this.props.locale;e.locale!==t&&(0,d.changeConfirmLocale)(t&&t.Modal)}},{key:"componentWillUnmount",value:function(){(0,d.changeConfirmLocale)()}},{key:"render",value:function(){var e=this.props,t=e.locale,n=e.children;return u.createElement(p.default.Provider,{value:(0,i.default)((0,i.default)({},t),{exist:!0})},n)}}]),n}(u.Component);t.default=m,m.defaultProps={locale:{}}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.changeConfirmLocale=function(e){a=e?(0,o.default)((0,o.default)({},a),e):(0,o.default)({},i.default.Modal)},t.getConfirmLocale=function(){return a};var o=r(n(14)),i=r(n(186)),a=(0,o.default)({},i.default.Modal)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"};t.default=r},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(405)).default;t.default=o},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(186)).default;t.default=o},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),a=r(n(408)),c=n(33);function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var l=function(e){return i.createElement(c.ConfigConsumer,null,(function(t){var n=(0,t.getPrefixCls)("empty");switch(e){case"Table":case"List":return i.createElement(a.default,{image:a.default.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return i.createElement(a.default,{image:a.default.PRESENTED_IMAGE_SIMPLE,className:"".concat(n,"-small")});default:return i.createElement(a.default,null)}}))};t.default=l},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=i?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(0)),i=n(33);function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}var c=function(){var e=(0,o.useContext(i.ConfigContext).getPrefixCls)("empty-img-default");return o.createElement("svg",{className:e,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{fill:"none",fillRule:"evenodd"},o.createElement("g",{transform:"translate(24 31.67)"},o.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),o.createElement("path",{className:"".concat(e,"-path-1"),d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"}),o.createElement("path",{className:"".concat(e,"-path-2"),d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",transform:"translate(13.56)"}),o.createElement("path",{className:"".concat(e,"-path-3"),d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"}),o.createElement("path",{className:"".concat(e,"-path-4"),d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"})),o.createElement("path",{className:"".concat(e,"-path-5"),d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"}),o.createElement("g",{className:"".concat(e,"-g"),transform:"translate(149.65 15.383)"},o.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),o.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))};t.default=c},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=a(t);if(n&&n.has(e))return n.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=i?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(0)),i=n(33);function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:t})(e)}var c=function(){var e=(0,o.useContext(i.ConfigContext).getPrefixCls)("empty-img-simple");return o.createElement("svg",{className:e,width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},o.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},o.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"32",cy:"33",rx:"32",ry:"7"}),o.createElement("g",{className:"".concat(e,"-g"),fillRule:"nonzero"},o.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),o.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",className:"".concat(e,"-path")}))))};t.default=c},function(e,t,n){"use strict"; /** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,y=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,b=r?Symbol.for("react.responder"):60118,M=r?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case y:case v:case l:return e;default:return t}}case i:return t}}}function O(e){return w(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=y,t.Memo=v,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isAsyncMode=function(e){return O(e)||w(e)===f},t.isConcurrentMode=O,t.isContextConsumer=function(e){return w(e)===u},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return w(e)===p},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===y},t.isMemo=function(e){return w(e)===v},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===c},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===v||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===b||e.$$typeof===M||e.$$typeof===_)},t.typeOf=w},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(677)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="LoadingOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=function(e){var t=(0,a.normalizeTwoToneColors)(e),n=(0,o.default)(t,2),r=n[0],c=n[1];return i.default.setTwoToneColors({primaryColor:r,secondaryColor:c})},t.getTwoToneColor=function(){var e=i.default.getTwoToneColors();if(!e.calculated)return e.primaryColor;return[e.primaryColor,e.secondaryColor]};var o=r(n(32)),i=r(n(410)),a=n(190)},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(680))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(681)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="ExclamationCircleFilled";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"}},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(683)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CloseCircleFilled";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"}}]},name:"close-circle",theme:"filled"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(685))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(686)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CheckCircleFilled";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(688))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(689)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="InfoCircleFilled";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return function(){var n,r=null,o={add:function(e,t){null==r||r.component.add(e,t)}},f=(0,s.default)(o),d=(0,a.default)(f,2),p=d[0],h=d[1];var m=c.useRef({});return m.current.open=function(o){var a=o.prefixCls,c=n("message",a),s=n(),l=o.key||(0,u.getKeyThenIncreaseKey)(),f=new Promise((function(n){var a=function(){return"function"==typeof o.onClose&&o.onClose(),n(!0)};e((0,i.default)((0,i.default)({},o),{prefixCls:c,rootPrefixCls:s}),(function(e){var n=e.prefixCls,c=e.instance;r=c,p(t((0,i.default)((0,i.default)({},o),{key:l,onClose:a}),n))}))})),d=function(){r&&r.removeNotice(l)};return d.then=function(e,t){return f.then(e,t)},d.promise=f,d},["success","info","warning","error","loading"].forEach((function(e){return(0,u.attachTypeApi)(m.current,e)})),[m.current,c.createElement(l.ConfigConsumer,{key:"holder"},(function(e){return n=e.getPrefixCls,h}))]}};var i=r(n(14)),a=r(n(32)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(413)),l=n(33),u=n(409);function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(14)),a=o(n(16)),c=o(n(66)),s=o(n(72)),l=o(n(73)),u=o(n(74)),f=r(n(0)),d=o(n(7)),p=o(n(3)),h=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(){var e;return(0,c.default)(this,n),(e=t.apply(this,arguments)).closeTimer=null,e.close=function(t){t&&t.stopPropagation(),e.clearCloseTimer();var n=e.props,r=n.onClose,o=n.noticeKey;r&&r(o)},e.startCloseTimer=function(){e.props.duration&&(e.closeTimer=window.setTimeout((function(){e.close()}),1e3*e.props.duration))},e.clearCloseTimer=function(){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null)},e}return(0,s.default)(n,[{key:"componentDidMount",value:function(){this.startCloseTimer()}},{key:"componentDidUpdate",value:function(e){this.props.duration===e.duration&&this.props.updateMark===e.updateMark||this.restartCloseTimer()}},{key:"componentWillUnmount",value:function(){this.clearCloseTimer()}},{key:"restartCloseTimer",value:function(){this.clearCloseTimer(),this.startCloseTimer()}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,r=t.className,o=t.closable,c=t.closeIcon,s=t.style,l=t.onClick,u=t.children,h=t.holder,m="".concat(n,"-notice"),v=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{}),y=f.createElement("div",(0,i.default)({className:(0,p.default)(m,r,(0,a.default)({},"".concat(m,"-closable"),o)),style:s,onMouseEnter:this.clearCloseTimer,onMouseLeave:this.startCloseTimer,onClick:l},v),f.createElement("div",{className:"".concat(m,"-content")},u),o?f.createElement("a",{tabIndex:0,onClick:this.close,className:"".concat(m,"-close")},c||f.createElement("span",{className:"".concat(m,"-close-x")})):null);return h?d.default.createPortal(y,h):y}}]),n}(f.Component);t.default=h,h.defaultProps={onClose:function(){},duration:1.5}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.getInstance=void 0;var i=r(n(101)),a=r(n(14)),c=r(n(16)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=_(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),l=r(n(495)),u=r(n(414)),f=r(n(3)),d=r(n(696)),p=r(n(699)),h=r(n(702)),m=r(n(705)),v=r(n(708)),y=n(33);function _(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(_=function(e){return e?n:t})(e)}var g,b,M=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))},w={},O=4.5,S=24,C=24,x="",k="topRight",L=!1;function E(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:S,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:C;switch(e){case"topLeft":t={left:0,top:n,bottom:"auto"};break;case"topRight":t={right:0,top:n,bottom:"auto"};break;case"bottomLeft":t={left:0,top:"auto",bottom:r};break;default:t={right:0,top:"auto",bottom:r}}return t}function T(e,t){var n=e.placement,r=void 0===n?k:n,o=e.top,i=e.bottom,a=e.getContainer,d=void 0===a?g:a,p=e.closeIcon,h=void 0===p?b:p,m=e.prefixCls,v=(0,(0,y.globalConfig)().getPrefixCls)("notification",m||x),_="".concat(v,"-").concat(r),M=w[_];if(M)Promise.resolve(M).then((function(e){t({prefixCls:"".concat(v,"-notice"),instance:e})}));else{var O=s.createElement("span",{className:"".concat(v,"-close-x")},h||s.createElement(u.default,{className:"".concat(v,"-close-icon")})),S=(0,f.default)("".concat(v,"-").concat(r),(0,c.default)({},"".concat(v,"-rtl"),!0===L));w[_]=new Promise((function(e){l.default.newInstance({prefixCls:v,className:S,style:E(r,o,i),getContainer:d,closeIcon:O},(function(n){e(n),t({prefixCls:"".concat(v,"-notice"),instance:n})}))}))}}var P={success:d.default,info:m.default,error:p.default,warning:h.default};function j(e,t){var n=e.duration,r=e.icon,o=e.type,i=e.description,a=e.message,l=e.btn,u=e.onClose,d=e.onClick,p=e.key,h=e.style,m=e.className,v=void 0===n?O:n,y=null;r?y=s.createElement("span",{className:"".concat(t,"-icon")},e.icon):o&&(y=s.createElement(P[o]||null,{className:"".concat(t,"-icon ").concat(t,"-icon-").concat(o)}));var _=!i&&y?s.createElement("span",{className:"".concat(t,"-message-single-line-auto-margin")}):null;return{content:s.createElement("div",{className:y?"".concat(t,"-with-icon"):"",role:"alert"},y,s.createElement("div",{className:"".concat(t,"-message")},_,a),s.createElement("div",{className:"".concat(t,"-description")},i),l?s.createElement("span",{className:"".concat(t,"-btn")},l):null),duration:v,closable:!0,onClose:u,onClick:d,key:p,style:h||{},className:(0,f.default)(m,(0,c.default)({},"".concat(t,"-").concat(o),!!o))}}var z={open:function(e){T(e,(function(t){var n=t.prefixCls;t.instance.notice(j(e,n))}))},close:function(e){Object.keys(w).forEach((function(t){return Promise.resolve(w[t]).then((function(t){t.removeNotice(e)}))}))},config:function(e){var t=e.duration,n=e.placement,r=e.bottom,o=e.top,i=e.getContainer,a=e.closeIcon,c=e.prefixCls;void 0!==c&&(x=c),void 0!==t&&(O=t),void 0!==n?k=n:e.rtl&&(k="topLeft"),void 0!==r&&(C=r),void 0!==o&&(S=o),void 0!==i&&(g=i),void 0!==a&&(b=a),void 0!==e.rtl&&(L=e.rtl)},destroy:function(){Object.keys(w).forEach((function(e){Promise.resolve(w[e]).then((function(e){e.destroy()})),delete w[e]}))}};["success","info","warning","error"].forEach((function(e){z[e]=function(t){return z.open((0,a.default)((0,a.default)({},t),{type:e}))}})),z.warn=z.warning,z.useNotification=(0,v.default)(T,j);t.getInstance=function(e){return M(void 0,void 0,void 0,i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",null);case 1:case"end":return e.stop()}}),e)})))};var D=z;t.default=D},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof f?t:f,i=Object.create(o.prototype),a=new O(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return C()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=b(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(e,n,a),i}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u={};function f(){}function d(){}function p(){}var h={};h[o]=function(){return this};var m=Object.getPrototypeOf,v=m&&m(m(S([])));v&&v!==t&&n.call(v,o)&&(h=v);var y=p.prototype=f.prototype=Object.create(h);function _(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function g(e,t){var r;this._invoke=function(o,i){function a(){return new t((function(r,a){!function r(o,i,a,c){var s=l(e[o],e,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,c)}),(function(e){r("throw",e,a,c)})):t.resolve(f).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,c)}))}c(s.arg)}(o,i,r,a)}))}return r=r?r.then(a,a):a()}}function b(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,b(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,u;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function M(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function w(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(M,this),this.reset(!0)}function S(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:C}}function C(){return{value:void 0,done:!0}}return d.prototype=y.constructor=p,p.constructor=d,d.displayName=c(p,a,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,c(e,a,"GeneratorFunction")),e.prototype=Object.create(y),e},e.awrap=function(e){return{__await:e}},_(g.prototype),g.prototype[i]=function(){return this},e.AsyncIterator=g,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new g(s(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},_(y),c(y,a,"Generator"),y[o]=function(){return this},y.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=S,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(w),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),w(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;w(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(695)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CloseOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"}}]},name:"close",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(697))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(698)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CheckCircleOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z"}},{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"check-circle",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(700))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(701)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CloseCircleOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z"}},{tag:"path",attrs:{d:"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}}]},name:"close-circle",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(703))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(704)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="ExclamationCircleOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z"}}]},name:"exclamation-circle",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(706))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(707)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="InfoCircleOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z"}}]},name:"info-circle",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return function(){var n,r=null,o={add:function(e,t){null==r||r.component.add(e,t)}},u=(0,s.default)(o),f=(0,a.default)(u,2),d=f[0],p=f[1];var h=c.useRef({});return h.current.open=function(o){var a=o.prefixCls,c=n("notification",a);e((0,i.default)((0,i.default)({},o),{prefixCls:c}),(function(e){var n=e.prefixCls,i=e.instance;r=i,d(t(o,n))}))},["success","info","warning","error"].forEach((function(e){h.current[e]=function(t){return h.current.open((0,i.default)((0,i.default)({},t),{type:e}))}})),[h.current,c.createElement(l.ConfigConsumer,{key:"holder"},(function(e){return n=e.getPrefixCls,p}))]}};var i=r(n(14)),a=r(n(32)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(413)),l=n(33);function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(710)).default;t.default=o},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(14)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=b(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(1052)),l=r(n(404)),u=r(n(3)),f=r(n(415)),d=r(n(191)),p=r(n(715)),h=r(n(718)),m=r(n(721)),v=r(n(416)),y=r(n(187)),_=n(33),g=r(n(418));function b(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(b=function(e){return e?n:t})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=function(e){var t=e.prefixCls,n=e.selectPrefixCls,r=e.className,o=e.size,b=e.locale,w=M(e,["prefixCls","selectPrefixCls","className","size","locale"]),O=(0,g.default)().xs,S=c.useContext(_.ConfigContext),C=S.getPrefixCls,x=S.direction,k=C("pagination",t),L=function(e){var t=(0,a.default)((0,a.default)({},e),b),l="small"===o||!(!O||o||!w.responsive),y=C("select",n),_=(0,u.default)((0,i.default)({mini:l},"".concat(k,"-rtl"),"rtl"===x),r);return c.createElement(s.default,(0,a.default)({},w,{prefixCls:k,selectPrefixCls:y},function(){var e=c.createElement("span",{className:"".concat(k,"-item-ellipsis")},"•••"),t=c.createElement("button",{className:"".concat(k,"-item-link"),type:"button",tabIndex:-1},c.createElement(f.default,null)),n=c.createElement("button",{className:"".concat(k,"-item-link"),type:"button",tabIndex:-1},c.createElement(d.default,null)),r=c.createElement("a",{className:"".concat(k,"-item-link")},c.createElement("div",{className:"".concat(k,"-item-container")},c.createElement(p.default,{className:"".concat(k,"-item-link-icon")}),e)),o=c.createElement("a",{className:"".concat(k,"-item-link")},c.createElement("div",{className:"".concat(k,"-item-container")},c.createElement(h.default,{className:"".concat(k,"-item-link-icon")}),e));if("rtl"===x){var i=[n,t];t=i[0],n=i[1];var a=[o,r];r=a[0],o=a[1]}return{prevIcon:t,nextIcon:n,jumpPrevIcon:r,jumpNextIcon:o}}(),{className:_,selectComponentClass:l?m.default:v.default,locale:t}))};return c.createElement(y.default,{componentName:"Pagination",defaultLocale:l.default},L)};t.default=w},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(712)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="LeftOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(714)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="RightOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(716))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(717)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="DoubleLeftOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z"}}]},name:"double-left",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(719))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(720)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="DoubleRightOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z"}}]},name:"double-right",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),c=r(n(416));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var l=function(e){return a.createElement(c.default,(0,i.default)({size:"small"},e))};l.Option=c.default.Option;var u=l;t.default=u},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.suffixIcon,n=e.clearIcon,r=e.menuItemSelectedIcon,o=e.removeIcon,d=e.loading,p=e.multiple,h=e.prefixCls,m=n;n||(m=i.createElement(u.default,null));var v=null;if(void 0!==t)v=t;else if(d)v=i.createElement(c.default,{spin:!0});else{var y="".concat(h,"-suffix");v=function(e){var t=e.open,n=e.showSearch;return t&&n?i.createElement(f.default,{className:y}):i.createElement(a.default,{className:y})}}var _=null;_=void 0!==r?r:p?i.createElement(s.default,null):null;var g=null;g=void 0!==o?o:i.createElement(l.default,null);return{clearIcon:m,suffixIcon:v,itemIcon:_,removeIcon:g}};var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),a=r(n(417)),c=r(n(189)),s=r(n(725)),l=r(n(414)),u=r(n(412)),f=r(n(728));function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(724)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="DownOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(726))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(727)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CheckOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(729))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(730)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="SearchOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.responsiveMap=t.responsiveArray=void 0;var o=r(n(16)),i=r(n(14));t.responsiveArray=["xxl","xl","lg","md","sm","xs"];var a={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"};t.responsiveMap=a;var c=new Map,s=-1,l={},u={matchHandlers:{},dispatch:function(e){return l=e,c.forEach((function(e){return e(l)})),c.size>=1},subscribe:function(e){return c.size||this.register(),s+=1,c.set(s,e),e(l),s},unsubscribe:function(e){c.delete(e),c.size||this.unregister()},unregister:function(){var e=this;Object.keys(a).forEach((function(t){var n=a[t],r=e.matchHandlers[n];null==r||r.mql.removeListener(null==r?void 0:r.listener)})),c.clear()},register:function(){var e=this;Object.keys(a).forEach((function(t){var n=a[t],r=function(n){var r=n.matches;e.dispatch((0,i.default)((0,i.default)({},l),(0,o.default)({},t,r)))},c=window.matchMedia(n);c.addListener(r),e.matchHandlers[n]={mql:c,listener:r},r(c)}))}};t.default=u},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.getPaginationParam=function(e,t){var n={current:t.current,pageSize:t.pageSize},r=e&&"object"===(0,a.default)(e)?e:{};return Object.keys(r).forEach((function(e){var r=t[e];"function"!=typeof r&&(n[e]=r)})),n},t.default=function(e,t,n){var r=t&&"object"===(0,a.default)(t)?t:{},l=r.total,u=void 0===l?0:l,f=s(r,["total"]),d=(0,c.useState)((function(){return{current:"defaultCurrent"in f?f.defaultCurrent:1,pageSize:"defaultPageSize"in f?f.defaultPageSize:10}})),p=(0,i.default)(d,2),h=p[0],m=p[1],v=function(){for(var e={},t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return n.forEach((function(t){t&&Object.keys(t).forEach((function(n){var r=t[n];void 0!==r&&(e[n]=r)}))})),e}(h,f,{total:u>0?u:e}),y=Math.ceil((u||e)/v.pageSize);v.current>y&&(v.current=y||1);var _=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1?arguments[1]:void 0;m({current:e,pageSize:t||v.pageSize})};if(!1===t)return[{},function(){}];return[(0,o.default)((0,o.default)({},v),{onChange:function(e,r){var o;t&&(null===(o=t.onChange)||void 0===o||o.call(t,e,r)),_(e,r),n(e,r||(null==v?void 0:v.pageSize))}}),_]},t.DEFAULT_PAGE_SIZE=void 0;var o=r(n(14)),i=r(n(32)),a=r(n(9)),c=n(0),s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};t.DEFAULT_PAGE_SIZE=10},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){var r=a.useRef({});return[function(o){if(!r.current||r.current.data!==e||r.current.childrenColumnName!==t||r.current.getRowKey!==n){var a=new Map;!function e(r){r.forEach((function(r,o){var c=n(r,o);a.set(c,r),r&&"object"===(0,i.default)(r)&&t in r&&e(r[t]||[])}))}(e),r.current={data:e,childrenColumnName:t,kvMap:a,getRowKey:n}}return r.current.kvMap.get(o)}]};var i=r(n(9)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0));function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=e||{},r=n.preserveSelectedRowKeys,o=n.selectedRowKeys,O=n.defaultSelectedRowKeys,C=n.getCheckboxProps,x=n.onChange,k=n.onSelect,L=n.onSelectAll,E=n.onSelectInvert,T=n.onSelectNone,P=n.onSelectMultiple,j=n.columnWidth,z=n.type,D=n.selections,N=n.fixed,H=n.renderCell,A=n.hideSelectAll,Y=n.checkStrictly,I=void 0===Y||Y,V=t.prefixCls,F=t.data,R=t.pageData,W=t.getRecordByKey,U=t.getRowKey,B=t.expandType,K=t.childrenColumnName,q=t.locale,G=t.expandIconColumnIndex,$=t.getPopupContainer,J=f.useRef(new Map),X=(0,y.default)(o||O||[],{value:o}),Q=(0,s.default)(X,2),Z=Q[0],ee=Q[1],te=(0,f.useMemo)((function(){return I?{keyEntities:null}:(0,p.convertDataToEntities)(F,{externalGetKey:U,childrenPropName:K})}),[F,U,I,K]).keyEntities,ne=(0,f.useMemo)((function(){return function e(t,n){var r=[];return(t||[]).forEach((function(t){r.push(t),t&&"object"===(0,u.default)(t)&&n in t&&(r=[].concat((0,l.default)(r),(0,l.default)(e(t[n],n))))})),r}(R,K)}),[R,K]),re=(0,f.useMemo)((function(){var e=new Map;return ne.forEach((function(t,n){var r=U(t,n),o=(C?C(t):null)||{};e.set(r,o)})),e}),[ne,U,C]),oe=(0,f.useCallback)((function(e){var t;return!!(null===(t=re.get(U(e)))||void 0===t?void 0:t.disabled)}),[re,U]),ie=(0,f.useMemo)((function(){if(I)return[Z||[],[]];var e=(0,h.conductCheck)(Z,!0,te,oe);return[e.checkedKeys||[],e.halfCheckedKeys]}),[Z,I,te,oe]),ae=(0,s.default)(ie,2),ce=ae[0],se=ae[1],le=(0,f.useMemo)((function(){var e="radio"===z?ce.slice(0,1):ce;return new Set(e)}),[ce,z]),ue=(0,f.useMemo)((function(){return"radio"===z?new Set:new Set(se)}),[se,z]),fe=(0,f.useState)(null),de=(0,s.default)(fe,2),pe=de[0],he=de[1];f.useEffect((function(){e||ee([])}),[!!e]);var me=(0,f.useCallback)((function(e){var t,n;if(r){var o=new Map;t=e,n=e.map((function(e){var t=W(e);return!t&&J.current.has(e)&&(t=J.current.get(e)),o.set(e,t),t})),J.current=o}else t=[],n=[],e.forEach((function(e){var r=W(e);void 0!==r&&(t.push(e),n.push(r))}));ee(t),null==x||x(t,n)}),[ee,W,x,r]),ve=(0,f.useCallback)((function(e,t,n,r){if(k){var o=n.map((function(e){return W(e)}));k(W(e),t,o,r)}me(n)}),[k,W,me]),ye=(0,f.useMemo)((function(){return!D||A?null:(!0===D?["SELECT_ALL","SELECT_INVERT","SELECT_NONE"]:D).map((function(e){return"SELECT_ALL"===e?{key:"all",text:q.selectionAll,onSelect:function(){me(F.map((function(e,t){return U(e,t)})))}}:"SELECT_INVERT"===e?{key:"invert",text:q.selectInvert,onSelect:function(){var e=new Set(le);R.forEach((function(t,n){var r=U(t,n);e.has(r)?e.delete(r):e.add(r)}));var t=Array.from(e);E&&((0,w.default)(!1,"Table","`onSelectInvert` will be removed in future. Please use `onChange` instead."),E(t)),me(t)}}:"SELECT_NONE"===e?{key:"none",text:q.selectNone,onSelect:function(){null==T||T(),me([])}}:e}))}),[D,le,R,U,E,me]);return[(0,f.useCallback)((function(t){if(!e)return t;var n,r,o=new Set(le),s=ne.map(U).filter((function(e){return!re.get(e).disabled})),u=s.every((function(e){return o.has(e)})),p=s.some((function(e){return o.has(e)}));if("radio"!==z){var y;if(ye){var O=f.createElement(b.default,{getPopupContainer:$},ye.map((function(e,t){var n=e.key,r=e.text,o=e.onSelect;return f.createElement(b.default.Item,{key:n||t,onClick:function(){null==o||o(s)}},r)})));y=f.createElement("div",{className:"".concat(V,"-selection-extra")},f.createElement(g.default,{overlay:O,getPopupContainer:$},f.createElement("span",null,f.createElement(d.default,null))))}var C=ne.every((function(e,t){var n=U(e,t);return(re.get(n)||{}).disabled}));n=!A&&f.createElement("div",{className:"".concat(V,"-selection")},f.createElement(_.default,{checked:!C&&!!ne.length&&u,indeterminate:!u&&p,onChange:function(){var e=[];u?s.forEach((function(t){o.delete(t),e.push(t)})):s.forEach((function(t){o.has(t)||(o.add(t),e.push(t))}));var t=Array.from(o);null==L||L(!u,t.map((function(e){return W(e)})),e.map((function(e){return W(e)}))),me(t)},disabled:0===ne.length||C,skipGroup:!0}),y)}r="radio"===z?function(e,t,n){var r=U(t,n),i=o.has(r);return{node:f.createElement(M.default,(0,c.default)({},re.get(r),{checked:i,onClick:function(e){return e.stopPropagation()},onChange:function(e){o.has(r)||ve(r,!0,[r],e.nativeEvent)}})),checked:i}}:function(e,t,n){var r,i,a=U(t,n),u=o.has(a),d=ue.has(a),p=re.get(a);return"nest"===B?(i=d,(0,w.default)("boolean"!=typeof(null==p?void 0:p.indeterminate),"Table","set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.")):i=null!==(r=null==p?void 0:p.indeterminate)&&void 0!==r?r:d,{node:f.createElement(_.default,(0,c.default)({},p,{indeterminate:i,checked:u,skipGroup:!0,onClick:function(e){return e.stopPropagation()},onChange:function(e){var t=e.nativeEvent,n=t.shiftKey,r=-1,i=-1;if(n&&I){var c=new Set([pe,a]);s.some((function(e,t){if(c.has(e)){if(-1!==r)return i=t,!0;r=t}return!1}))}if(-1!==i&&r!==i&&I){var f=s.slice(r,i+1),d=[];u?f.forEach((function(e){o.has(e)&&(d.push(e),o.delete(e))})):f.forEach((function(e){o.has(e)||(d.push(e),o.add(e))}));var p=Array.from(o);null==P||P(!u,p.map((function(e){return W(e)})),d.map((function(e){return W(e)}))),me(p)}else{var v=ce;if(I){var y=u?(0,m.arrDel)(v,a):(0,m.arrAdd)(v,a);ve(a,!u,y,t)}else{var _=(0,h.conductCheck)([].concat((0,l.default)(v),[a]),!0,te,oe),g=_.checkedKeys,b=_.halfCheckedKeys,M=g;if(u){var w=new Set(g);w.delete(a),M=(0,h.conductCheck)(Array.from(w),{checked:!1,halfCheckedKeys:b},te,oe).checkedKeys}ve(a,!u,M,t)}}he(a)}})),checked:u}};var x=(0,a.default)({width:j,className:"".concat(V,"-selection-column"),title:e.columnTitle||n,render:function(e,t,n){var o=r(e,t,n),i=o.node,a=o.checked;return H?H(a,t,n,i):i}},v.INTERNAL_COL_DEFINE,{className:"".concat(V,"-selection-col")});if("row"===B&&t.length&&!G){var k=(0,i.default)(t),E=k[0],T=k.slice(1),D=N||S(T[0]);return D&&(E.fixed=D),[E,(0,c.default)((0,c.default)({},x),{fixed:D})].concat((0,l.default)(T))}return[(0,c.default)((0,c.default)({},x),{fixed:N||S(t[0])})].concat((0,l.default)(t))}),[U,ne,e,ce,le,ue,j,ye,B,pe,re,P,ve,oe]),le]},t.SELECTION_NONE=t.SELECTION_INVERT=t.SELECTION_ALL=void 0;var i=r(n(735)),a=r(n(16)),c=r(n(14)),s=r(n(32)),l=r(n(58)),u=r(n(9)),f=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=O(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),d=r(n(417)),p=n(419),h=n(739),m=n(193),v=n(493),y=r(n(194)),_=r(n(420)),g=r(n(424)),b=r(n(428)),M=r(n(431)),w=r(n(87));function O(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(O=function(e){return e?n:t})(e)}t.SELECTION_ALL="SELECT_ALL";t.SELECTION_INVERT="SELECT_INVERT";function S(e){return e&&e.fixed}t.SELECTION_NONE="SELECT_NONE"},function(e,t,n){var r=n(390),o=n(393),i=n(179),a=n(392);e.exports=function(e){return r(e)||o(e)||i(e)||a()},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.InternalTreeNode=void 0;var i=o(n(14)),a=o(n(16)),c=o(n(71)),s=o(n(57)),l=o(n(66)),u=o(n(72)),f=o(n(183)),d=o(n(73)),p=o(n(74)),h=r(n(0)),m=o(n(3)),v=n(737),y=n(193),_=o(n(738)),g=n(419),b=function(e){(0,d.default)(n,e);var t=(0,p.default)(n);function n(){var e;return(0,l.default)(this,n),(e=t.apply(this,arguments)).state={dragNodeHighlight:!1},e.onSelectorClick=function(t){(0,e.props.context.onNodeClick)(t,(0,g.convertNodePropsToEventData)(e.props)),e.isSelectable()?e.onSelect(t):e.onCheck(t)},e.onSelectorDoubleClick=function(t){(0,e.props.context.onNodeDoubleClick)(t,(0,g.convertNodePropsToEventData)(e.props))},e.onSelect=function(t){if(!e.isDisabled()){var n=e.props.context.onNodeSelect;t.preventDefault(),n(t,(0,g.convertNodePropsToEventData)(e.props))}},e.onCheck=function(t){if(!e.isDisabled()){var n=e.props,r=n.disableCheckbox,o=n.checked,i=e.props.context.onNodeCheck;if(e.isCheckable()&&!r){t.preventDefault();var a=!o;i(t,(0,g.convertNodePropsToEventData)(e.props),a)}}},e.onMouseEnter=function(t){(0,e.props.context.onNodeMouseEnter)(t,(0,g.convertNodePropsToEventData)(e.props))},e.onMouseLeave=function(t){(0,e.props.context.onNodeMouseLeave)(t,(0,g.convertNodePropsToEventData)(e.props))},e.onContextMenu=function(t){(0,e.props.context.onNodeContextMenu)(t,(0,g.convertNodePropsToEventData)(e.props))},e.onDragStart=function(t){var n=e.props.context.onNodeDragStart;t.stopPropagation(),e.setState({dragNodeHighlight:!0}),n(t,(0,f.default)(e));try{t.dataTransfer.setData("text/plain","")}catch(e){}},e.onDragEnter=function(t){var n=e.props.context.onNodeDragEnter;t.preventDefault(),t.stopPropagation(),n(t,(0,f.default)(e))},e.onDragOver=function(t){var n=e.props.context.onNodeDragOver;t.preventDefault(),t.stopPropagation(),n(t,(0,f.default)(e))},e.onDragLeave=function(t){var n=e.props.context.onNodeDragLeave;t.stopPropagation(),n(t,(0,f.default)(e))},e.onDragEnd=function(t){var n=e.props.context.onNodeDragEnd;t.stopPropagation(),e.setState({dragNodeHighlight:!1}),n(t,(0,f.default)(e))},e.onDrop=function(t){var n=e.props.context.onNodeDrop;t.preventDefault(),t.stopPropagation(),e.setState({dragNodeHighlight:!1}),n(t,(0,f.default)(e))},e.onExpand=function(t){var n=e.props,r=n.loading,o=n.context.onNodeExpand;r||o(t,(0,g.convertNodePropsToEventData)(e.props))},e.setSelectHandle=function(t){e.selectHandle=t},e.getNodeState=function(){var t=e.props.expanded;return e.isLeaf()?null:t?"open":"close"},e.hasChildren=function(){var t=e.props.eventKey;return!!((e.props.context.keyEntities[t]||{}).children||[]).length},e.isLeaf=function(){var t=e.props,n=t.isLeaf,r=t.loaded,o=e.props.context.loadData,i=e.hasChildren();return!1!==n&&(n||!o&&!i||o&&r&&!i)},e.isDisabled=function(){var t=e.props.disabled;return!(!e.props.context.disabled&&!t)},e.isCheckable=function(){var t=e.props.checkable,n=e.props.context.checkable;return!(!n||!1===t)&&n},e.syncLoadData=function(t){var n=t.expanded,r=t.loading,o=t.loaded,i=e.props.context,a=i.loadData,c=i.onNodeLoad;r||a&&n&&!e.isLeaf()&&(e.hasChildren()||o||c((0,g.convertNodePropsToEventData)(e.props)))},e.renderSwitcherIconDom=function(t){var n=e.props.switcherIcon,r=e.props.context.switcherIcon,o=n||r;return"function"==typeof o?o((0,s.default)((0,s.default)({},e.props),{},{isLeaf:t})):o},e.renderSwitcher=function(){var t=e.props.expanded,n=e.props.context.prefixCls;if(e.isLeaf()){var r=e.renderSwitcherIconDom(!0);return!1!==r?h.createElement("span",{className:(0,m.default)("".concat(n,"-switcher"),"".concat(n,"-switcher-noop"))},r):null}var o=(0,m.default)("".concat(n,"-switcher"),"".concat(n,"-switcher_").concat(t?"open":"close")),i=e.renderSwitcherIconDom(!1);return!1!==i?h.createElement("span",{onClick:e.onExpand,className:o},i):null},e.renderCheckbox=function(){var t=e.props,n=t.checked,r=t.halfChecked,o=t.disableCheckbox,i=e.props.context.prefixCls,a=e.isDisabled(),c=e.isCheckable();if(!c)return null;var s="boolean"!=typeof c?c:null;return h.createElement("span",{className:(0,m.default)("".concat(i,"-checkbox"),n&&"".concat(i,"-checkbox-checked"),!n&&r&&"".concat(i,"-checkbox-indeterminate"),(a||o)&&"".concat(i,"-checkbox-disabled")),onClick:e.onCheck},s)},e.renderIcon=function(){var t=e.props.loading,n=e.props.context.prefixCls;return h.createElement("span",{className:(0,m.default)("".concat(n,"-iconEle"),"".concat(n,"-icon__").concat(e.getNodeState()||"docu"),t&&"".concat(n,"-icon_loading"))})},e.renderSelector=function(){var t,n,r=e.state.dragNodeHighlight,o=e.props,i=o.title,a=o.selected,c=o.icon,s=o.loading,l=o.data,u=e.props.context,f=u.prefixCls,d=u.showIcon,p=u.icon,v=u.draggable,y=u.loadData,_=u.titleRender,g=e.isDisabled(),b="function"==typeof v?v(l):v,M="".concat(f,"-node-content-wrapper");if(d){var w=c||p;t=w?h.createElement("span",{className:(0,m.default)("".concat(f,"-iconEle"),"".concat(f,"-icon__customize"))},"function"==typeof w?w(e.props):w):e.renderIcon()}else y&&s&&(t=e.renderIcon());n="function"==typeof i?i(l):_?_(l):i;var O=h.createElement("span",{className:"".concat(f,"-title")},n);return h.createElement("span",{ref:e.setSelectHandle,title:"string"==typeof i?i:"",className:(0,m.default)("".concat(M),"".concat(M,"-").concat(e.getNodeState()||"normal"),!g&&(a||r)&&"".concat(f,"-node-selected"),!g&&b&&"draggable"),draggable:!g&&b||void 0,"aria-grabbed":!g&&b||void 0,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onContextMenu:e.onContextMenu,onClick:e.onSelectorClick,onDoubleClick:e.onSelectorDoubleClick,onDragStart:b?e.onDragStart:void 0},t,O,e.renderDropIndicator())},e.renderDropIndicator=function(){var t=e.props,n=t.disabled,r=t.eventKey,o=e.props.context,i=o.draggable,a=o.dropLevelOffset,c=o.dropPosition,s=o.prefixCls,l=o.indent,u=o.dropIndicatorRender,f=o.dragOverNodeKey,d=o.direction;return!n&&!1!==i&&f===r?u({dropPosition:c,dropLevelOffset:a,indent:l,prefixCls:s,direction:d}):null},e}return(0,u.default)(n,[{key:"componentDidMount",value:function(){this.syncLoadData(this.props)}},{key:"componentDidUpdate",value:function(){this.syncLoadData(this.props)}},{key:"isSelectable",value:function(){var e=this.props.selectable,t=this.props.context.selectable;return"boolean"==typeof e?e:t}},{key:"render",value:function(){var e,t=this.props,n=t.eventKey,r=t.className,o=t.style,s=t.dragOver,l=t.dragOverGapTop,u=t.dragOverGapBottom,f=t.isLeaf,d=t.isStart,p=t.isEnd,v=t.expanded,b=t.selected,M=t.checked,w=t.halfChecked,O=t.loading,S=t.domRef,C=t.active,x=t.data,k=t.onMouseMove,L=(0,c.default)(t,["eventKey","className","style","dragOver","dragOverGapTop","dragOverGapBottom","isLeaf","isStart","isEnd","expanded","selected","checked","halfChecked","loading","domRef","active","data","onMouseMove"]),E=this.props.context,T=E.prefixCls,P=E.filterTreeNode,j=E.draggable,z=E.keyEntities,D=E.dropContainerKey,N=E.dropTargetKey,H=this.isDisabled(),A=(0,y.getDataAndAria)(L),Y=(z[n]||{}).level,I=p[p.length-1],V="function"==typeof j?j(x):j;return h.createElement("div",(0,i.default)({ref:S,className:(0,m.default)(r,"".concat(T,"-treenode"),(e={},(0,a.default)(e,"".concat(T,"-treenode-disabled"),H),(0,a.default)(e,"".concat(T,"-treenode-switcher-").concat(v?"open":"close"),!f),(0,a.default)(e,"".concat(T,"-treenode-checkbox-checked"),M),(0,a.default)(e,"".concat(T,"-treenode-checkbox-indeterminate"),w),(0,a.default)(e,"".concat(T,"-treenode-selected"),b),(0,a.default)(e,"".concat(T,"-treenode-loading"),O),(0,a.default)(e,"".concat(T,"-treenode-active"),C),(0,a.default)(e,"".concat(T,"-treenode-leaf-last"),I),(0,a.default)(e,"drop-target",N===n),(0,a.default)(e,"drop-container",D===n),(0,a.default)(e,"drag-over",!H&&s),(0,a.default)(e,"drag-over-gap-top",!H&&l),(0,a.default)(e,"drag-over-gap-bottom",!H&&u),(0,a.default)(e,"filter-node",P&&P((0,g.convertNodePropsToEventData)(this.props))),e)),style:o,onDragEnter:V?this.onDragEnter:void 0,onDragOver:V?this.onDragOver:void 0,onDragLeave:V?this.onDragLeave:void 0,onDrop:V?this.onDrop:void 0,onDragEnd:V?this.onDragEnd:void 0,onMouseMove:k},A),h.createElement(_.default,{prefixCls:T,level:Y,isStart:d,isEnd:p}),this.renderSwitcher(),this.renderCheckbox(),this.renderSelector())}}]),n}(h.Component);t.InternalTreeNode=b;var M=function(e){return h.createElement(v.TreeContext.Consumer,null,(function(t){return h.createElement(b,(0,i.default)({},e,{context:t}))}))};M.displayName="TreeNode",M.defaultProps={title:"---"},M.isTreeNode=1;var w=M;t.default=w},function(e,t,n){"use strict";var r=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.TreeContext=void 0;var o=r(n(0)).createContext(null);t.TreeContext=o},function(e,t,n){"use strict";var r=n(12),o=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(16)),a=r(n(0)),c=o(n(3)),s=function(e){for(var t=e.prefixCls,n=e.level,r=e.isStart,o=e.isEnd,s="".concat(t,"-indent-unit"),l=[],u=0;u<n;u+=1){var f;l.push(a.createElement("span",{key:u,className:(0,c.default)(s,(f={},(0,i.default)(f,"".concat(s,"-start"),r[u]),(0,i.default)(f,"".concat(s,"-end"),o[u]),f))}))}return a.createElement("span",{"aria-hidden":"true",className:"".concat(t,"-indent")},l)};t.default=s},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.isCheckDisabled=a,t.conductCheck=function(e,t,n,r){var c,s=[];c=r||a;var l,u=new Set(e.filter((function(e){var t=!!n[e];return t||s.push(e),t}))),f=new Map,d=0;Object.keys(n).forEach((function(e){var t=n[e],r=t.level,o=f.get(r);o||(o=new Set,f.set(r,o)),o.add(t),d=Math.max(d,r)})),(0,o.default)(!s.length,"Tree missing follow keys: ".concat(s.slice(0,100).map((function(e){return"'".concat(e,"'")})).join(", "))),l=!0===t?function(e,t,n,r){for(var o=new Set(e),a=new Set,c=0;c<=n;c+=1){(t.get(c)||new Set).forEach((function(e){var t=e.key,n=e.node,i=e.children,a=void 0===i?[]:i;o.has(t)&&!r(n)&&a.filter((function(e){return!r(e.node)})).forEach((function(e){o.add(e.key)}))}))}for(var s=new Set,l=n;l>=0;l-=1){(t.get(l)||new Set).forEach((function(e){var t=e.parent,n=e.node;if(!r(n)&&e.parent&&!s.has(e.parent.key))if(r(e.parent.node))s.add(t.key);else{var i=!0,c=!1;(t.children||[]).filter((function(e){return!r(e.node)})).forEach((function(e){var t=e.key,n=o.has(t);i&&!n&&(i=!1),c||!n&&!a.has(t)||(c=!0)})),i&&o.add(t.key),c&&a.add(t.key),s.add(t.key)}}))}return{checkedKeys:Array.from(o),halfCheckedKeys:Array.from(i(a,o))}}(u,f,d,c):function(e,t,n,r,o){for(var a=new Set(e),c=new Set(t),s=0;s<=r;s+=1){(n.get(s)||new Set).forEach((function(e){var t=e.key,n=e.node,r=e.children,i=void 0===r?[]:r;a.has(t)||c.has(t)||o(n)||i.filter((function(e){return!o(e.node)})).forEach((function(e){a.delete(e.key)}))}))}c=new Set;for(var l=new Set,u=r;u>=0;u-=1){(n.get(u)||new Set).forEach((function(e){var t=e.parent,n=e.node;if(!o(n)&&e.parent&&!l.has(e.parent.key))if(o(e.parent.node))l.add(t.key);else{var r=!0,i=!1;(t.children||[]).filter((function(e){return!o(e.node)})).forEach((function(e){var t=e.key,n=a.has(t);r&&!n&&(r=!1),i||!n&&!c.has(t)||(i=!0)})),r||a.delete(t.key),i&&c.add(t.key),l.add(t.key)}}))}return{checkedKeys:Array.from(a),halfCheckedKeys:Array.from(i(c,a))}}(u,t.halfCheckedKeys,f,d,c);return l};var o=r(n(86));function i(e,t){var n=new Set;return e.forEach((function(e){t.has(e)||n.add(e)})),n}function a(e){var t=e||{},n=t.disabled,r=t.disableCheckbox,o=t.checkable;return!(!n&&!r)||!1===o}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(32)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=r(n(741)),u=r(n(426)),f=n(33),d=r(n(425));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}var h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},m=u.default.Group,v=function(e){var t=c.useContext(f.ConfigContext),n=t.getPopupContainer,r=t.getPrefixCls,o=t.direction,p=e.prefixCls,v=e.type,y=e.disabled,_=e.onClick,g=e.htmlType,b=e.children,M=e.className,w=e.overlay,O=e.trigger,S=e.align,C=e.visible,x=e.onVisibleChange,k=e.placement,L=e.getPopupContainer,E=e.href,T=e.icon,P=void 0===T?c.createElement(l.default,null):T,j=e.title,z=e.buttonsRender,D=e.mouseEnterDelay,N=e.mouseLeaveDelay,H=h(e,["prefixCls","type","disabled","onClick","htmlType","children","className","overlay","trigger","align","visible","onVisibleChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay"]),A=r("dropdown-button",p),Y={align:S,overlay:w,disabled:y,trigger:y?[]:O,onVisibleChange:x,getPopupContainer:L||n,mouseEnterDelay:D,mouseLeaveDelay:N};"visible"in e&&(Y.visible=C),Y.placement="placement"in e?k:"rtl"===o?"bottomLeft":"bottomRight";var I=z([c.createElement(u.default,{type:v,disabled:y,onClick:_,htmlType:g,href:E,title:j},b),c.createElement(u.default,{type:v,icon:P})]),V=(0,a.default)(I,2),F=V[0],R=V[1];return c.createElement(m,(0,i.default)({},H,{className:(0,s.default)(A,M)}),F,c.createElement(d.default,Y,R))};v.__ANT_BUTTON=!0,v.defaultProps={type:"default",buttonsRender:function(e){return e}};var y=v;t.default=y},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(742))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(743)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="EllipsisOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.convertLegacyProps=function(e){if("danger"===e)return{danger:!0};return{type:e}},t.default=void 0;var i=r(n(14)),a=r(n(16)),c=r(n(32)),s=r(n(9)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=b(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),u=r(n(3)),f=r(n(95)),d=r(n(745)),p=n(33),h=r(n(747)),m=n(140),v=r(n(87)),y=r(n(122)),_=r(n(749)),g=n(88);function b(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(b=function(e){return e?n:t})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=/^[\u4e00-\u9fa5]{2}$/,O=w.test.bind(w);function S(e){return"text"===e||"link"===e}function C(e,t){var n=!1,r=[];return l.Children.forEach(e,(function(e){var t=(0,s.default)(e),o="string"===t||"number"===t;if(n&&o){var i=r.length-1,a=r[i];r[i]="".concat(a).concat(e)}else r.push(e);n=o})),l.Children.map(r,(function(e){return function(e,t){if(null!=e){var n=t?" ":"";return"string"!=typeof e&&"number"!=typeof e&&"string"==typeof e.type&&O(e.props.children)?(0,g.cloneElement)(e,{children:e.props.children.split("").join(n)}):"string"==typeof e?(O(e)&&(e=e.split("").join(n)),l.createElement("span",null,e)):e}}(e,t)}))}(0,m.tuple)("default","primary","ghost","dashed","link","text"),(0,m.tuple)("circle","round"),(0,m.tuple)("submit","button","reset");var x=function(e,t){var n,r,o=e.loading,d=void 0!==o&&o,m=e.prefixCls,g=e.type,b=e.danger,w=e.shape,x=e.size,k=e.className,L=e.children,E=e.icon,T=e.ghost,P=void 0!==T&&T,j=e.block,z=void 0!==j&&j,D=e.htmlType,N=void 0===D?"button":D,H=M(e,["loading","prefixCls","type","danger","shape","size","className","children","icon","ghost","block","htmlType"]),A=l.useContext(y.default),Y=l.useState(!!d),I=(0,c.default)(Y,2),V=I[0],F=I[1],R=l.useState(!1),W=(0,c.default)(R,2),U=W[0],B=W[1],K=l.useContext(p.ConfigContext),q=K.getPrefixCls,G=K.autoInsertSpaceInButton,$=K.direction,J=t||l.createRef(),X=l.useRef(),Q=function(){return 1===l.Children.count(L)&&!E&&!S(g)};r="object"===(0,s.default)(d)&&d.delay?d.delay||!0:!!d,l.useEffect((function(){clearTimeout(X.current),"number"==typeof r?X.current=window.setTimeout((function(){F(r)}),r):F(r)}),[r]),l.useEffect((function(){if(J&&J.current&&!1!==G){var e=J.current.textContent;Q()&&O(e)?U||B(!0):U&&B(!1)}}),[J]);var Z=function(t){var n,r=e.onClick,o=e.disabled;V||o?t.preventDefault():null===(n=r)||void 0===n||n(t)};(0,v.default)(!("string"==typeof E&&E.length>2),"Button","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(E,"` at https://ant.design/components/icon")),(0,v.default)(!(P&&S(g)),"Button","`link` or `text` button can't be a `ghost` button.");var ee=q("btn",m),te=!1!==G,ne="";switch(x||A){case"large":ne="lg";break;case"small":ne="sm"}var re=V?"loading":E,oe=(0,u.default)(ee,(n={},(0,a.default)(n,"".concat(ee,"-").concat(g),g),(0,a.default)(n,"".concat(ee,"-").concat(w),w),(0,a.default)(n,"".concat(ee,"-").concat(ne),ne),(0,a.default)(n,"".concat(ee,"-icon-only"),!L&&0!==L&&!!re),(0,a.default)(n,"".concat(ee,"-background-ghost"),P&&!S(g)),(0,a.default)(n,"".concat(ee,"-loading"),V),(0,a.default)(n,"".concat(ee,"-two-chinese-chars"),U&&te),(0,a.default)(n,"".concat(ee,"-block"),z),(0,a.default)(n,"".concat(ee,"-dangerous"),!!b),(0,a.default)(n,"".concat(ee,"-rtl"),"rtl"===$),n),k),ie=E&&!V?E:l.createElement(_.default,{existIcon:!!E,prefixCls:ee,loading:!!V}),ae=L||0===L?C(L,Q()&&te):null,ce=(0,f.default)(H,["navigate"]);if(void 0!==ce.href)return l.createElement("a",(0,i.default)({},ce,{className:oe,onClick:Z,ref:J}),ie,ae);var se=l.createElement("button",(0,i.default)({},H,{type:N,className:oe,onClick:Z,ref:J}),ie,ae);return S(g)?se:l.createElement(h.default,null,se)},k=l.forwardRef(x);k.displayName="Button",k.Group=d.default,k.__ANT_BUTTON=!0;var L=k;t.default=L},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=n(33),u=r(n(746));function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},p=function(e){return c.createElement(l.ConfigConsumer,null,(function(t){var n,r=t.getPrefixCls,o=t.direction,l=e.prefixCls,f=e.size,p=e.className,h=d(e,["prefixCls","size","className"]),m=r("btn-group",l),v="";switch(f){case"large":v="lg";break;case"small":v="sm";break;case"middle":case void 0:break;default:console.warn(new u.default(f))}var y=(0,s.default)(m,(n={},(0,a.default)(n,"".concat(m,"-").concat(v),v),(0,a.default)(n,"".concat(m,"-rtl"),"rtl"===o),n),p);return c.createElement("div",(0,i.default)({},h,{className:y}))}))};t.default=p},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(66));t.default=function e(t){return(0,o.default)(this,e),new Error("unreachable case: ".concat(JSON.stringify(t)))}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,a=r(n(66)),c=r(n(72)),s=r(n(183)),l=r(n(73)),u=r(n(74)),f=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=y(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),d=n(411),p=n(137),h=r(n(748)),m=n(33),v=n(88);function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(y=function(e){return e?n:t})(e)}function _(e){return!e||null===e.offsetParent||e.hidden}function g(e){var t=(e||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return!(t&&t[1]&&t[2]&&t[3])||!(t[1]===t[2]&&t[2]===t[3])}var b=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(){var e;return(0,a.default)(this,n),(e=t.apply(this,arguments)).containerRef=f.createRef(),e.animationStart=!1,e.destroyed=!1,e.onClick=function(t,n){var r,o;if(!(!t||_(t)||t.className.indexOf("-leave")>=0)){var a=e.props.insertExtraNode;e.extraNode=document.createElement("div");var c=(0,s.default)(e).extraNode,l=e.context.getPrefixCls;c.className="".concat(l(""),"-click-animating-node");var u=e.getAttributeName();if(t.setAttribute(u,"true"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&g(n)&&!/rgba\((?:\d*, ){3}0\)/.test(n)&&"transparent"!==n){c.style.borderColor=n;var f=(null===(r=t.getRootNode)||void 0===r?void 0:r.call(t))||t.ownerDocument,p=f instanceof Document?f.body:null!==(o=f.firstChild)&&void 0!==o?o:f;i=(0,d.updateCSS)("\n [".concat(l(""),"-click-animating-without-extra-node='true']::after, .").concat(l(""),"-click-animating-node {\n --antd-wave-shadow-color: ").concat(n,";\n }"),"antd-wave",{csp:e.csp,attachTo:p})}a&&t.appendChild(c),["transition","animation"].forEach((function(n){t.addEventListener("".concat(n,"start"),e.onTransitionStart),t.addEventListener("".concat(n,"end"),e.onTransitionEnd)}))}},e.onTransitionStart=function(t){if(!e.destroyed){var n=e.containerRef.current;t&&t.target===n&&!e.animationStart&&e.resetEffect(n)}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!_(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),h.default.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=(0,h.default)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;if(e.csp=n,!f.isValidElement(r))return r;var o=e.containerRef;return(0,p.supportRef)(r)&&(o=(0,p.composeRef)(r.ref,e.containerRef)),(0,v.cloneElement)(r,{ref:o})},e}return(0,c.default)(n,[{key:"componentDidMount",value:function(){var e=this.containerRef.current;e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroyed=!0}},{key:"getAttributeName",value:function(){var e=this.context.getPrefixCls,t=this.props.insertExtraNode;return"".concat(e(""),t?"-click-animating":"-click-animating-without-extra-node")}},{key:"resetEffect",value:function(e){var t=this;if(e&&e!==this.extraNode&&e instanceof Element){var n=this.props.insertExtraNode,r=this.getAttributeName();e.setAttribute(r,"false"),i&&(i.innerHTML=""),n&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),["transition","animation"].forEach((function(n){e.removeEventListener("".concat(n,"start"),t.onTransitionStart),e.removeEventListener("".concat(n,"end"),t.onTransitionEnd)}))}}},{key:"render",value:function(){return f.createElement(m.ConfigConsumer,null,this.renderWave)}}]),n}(f.Component);t.default=b,b.contextType=m.ConfigContext},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=c;var o=r(n(427)),i=0,a={};function c(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=i++,r=t;function c(){(r-=1)<=0?(e(),delete a[n]):a[n]=(0,o.default)(c)}return a[n]=(0,o.default)(c),n}c.cancel=function(e){void 0!==e&&(o.default.cancel(a[e]),delete a[e])},c.ids=a},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(0)),i=r(n(60)),a=r(n(189)),c=function(){return{width:0,opacity:0,transform:"scale(0)"}},s=function(e){return{width:e.scrollWidth,opacity:1,transform:"scale(1)"}},l=function(e){var t=e.prefixCls,n=!!e.loading;return e.existIcon?o.default.createElement("span",{className:"".concat(t,"-loading-icon")},o.default.createElement(a.default,null)):o.default.createElement(i.default,{visible:n,motionName:"".concat(t,"-loading-icon-motion"),removeOnLeave:!0,onAppearStart:c,onAppearActive:s,onEnterStart:c,onEnterActive:s,onLeaveStart:s,onLeaveActive:c},(function(e,n){var r=e.className,i=e.style;return o.default.createElement("span",{className:"".concat(t,"-loading-icon"),style:i,ref:n},o.default.createElement(a.default,{className:r}))}))};t.default=l},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(66)),c=r(n(72)),s=r(n(73)),l=r(n(74)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),f=n(227),d=r(n(3)),p=r(n(95)),h=r(n(195)),m=n(88);function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}var y=function(e){(0,s.default)(n,e);var t=(0,l.default)(n);function n(){return(0,a.default)(this,n),t.apply(this,arguments)}return(0,c.default)(n,[{key:"renderTitle",value:function(e){var t=this.props,n=t.icon,r=t.title,o=t.level,i=t.rootPrefixCls;if(!n)return e&&1===o&&r&&"string"==typeof r?u.createElement("div",{className:"".concat(i,"-inline-collapsed-noicon")},r.charAt(0)):r;var a=(0,m.isValidElement)(r)&&"span"===r.type;return u.createElement(u.Fragment,null,n,a?r:u.createElement("span",null,r))}},{key:"render",value:function(){var e=this,t=this.props,n=t.rootPrefixCls,r=t.popupClassName;return u.createElement(h.default.Consumer,null,(function(t){var o=t.inlineCollapsed,a=t.antdMenuTheme;return u.createElement(f.SubMenu,(0,i.default)({},(0,p.default)(e.props,["icon"]),{title:e.renderTitle(o),popupClassName:(0,d.default)(n,"".concat(n,"-").concat(a),r)}))}))}}]),n}(u.Component);y.contextType=h.default,y.isSubMenu=1;var _=y;t.default=_},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=r(n(16)),c=r(n(66)),s=r(n(72)),l=r(n(73)),u=r(n(74)),f=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),d=n(227),p=r(n(182)),h=r(n(3)),m=r(n(195)),v=r(n(429)),y=n(430),_=n(88);function g(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}var b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},M=function(e){(0,l.default)(n,e);var t=(0,u.default)(n);function n(){var e;return(0,c.default)(this,n),(e=t.apply(this,arguments)).renderItem=function(t){var n=t.siderCollapsed,r=e.props,o=r.level,c=r.className,s=r.children,l=r.rootPrefixCls,u=e.props,y=u.title,g=u.icon,M=u.danger,w=b(u,["title","icon","danger"]);return f.createElement(m.default.Consumer,null,(function(t){var r,u,m=t.inlineCollapsed,b=t.direction,O=y;void 0===y?O=1===o?s:"":!1===y&&(O="");var S={title:O};n||m||(S.title=null,S.visible=!1);var C=(0,p.default)(s).length;return f.createElement(v.default,(0,i.default)({},S,{placement:"rtl"===b?"left":"right",overlayClassName:"".concat(l,"-inline-collapsed-tooltip")}),f.createElement(d.Item,(0,i.default)({},w,{className:(0,h.default)((r={},(0,a.default)(r,"".concat(l,"-item-danger"),M),(0,a.default)(r,"".concat(l,"-item-only-child"),1===(g?C+1:C)),r),c),title:y}),(0,_.cloneElement)(g,{className:(0,h.default)((0,_.isValidElement)(g)?null===(u=g.props)||void 0===u?void 0:u.className:"","".concat(l,"-item-icon"))}),e.renderItemChildren(m)))}))},e}return(0,s.default)(n,[{key:"renderItemChildren",value:function(e){var t=this.props,n=t.icon,r=t.children,o=t.level,i=t.rootPrefixCls;return!n||(0,_.isValidElement)(r)&&"span"===r.type?r&&e&&1===o&&"string"==typeof r?f.createElement("div",{className:"".concat(i,"-inline-collapsed-noicon")},r.charAt(0)):r:f.createElement("span",null,r)}},{key:"render",value:function(){return f.createElement(y.SiderContext.Consumer,null,this.renderItem)}}]),n}(f.Component);t.default=M,M.isMenuItem=!0},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.getOverflowOptions=l,t.default=function(e){var t=e.arrowWidth,n=void 0===t?5:t,r=e.horizontalArrowShift,a=void 0===r?16:r,c=e.verticalArrowShift,u=void 0===c?8:c,f=e.autoAdjustOverflow,d={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(a+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(u+n)]},topRight:{points:["br","tc"],offset:[a+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(u+n)]},bottomRight:{points:["tr","bc"],offset:[a+n,4]},rightBottom:{points:["bl","cr"],offset:[4,u+n]},bottomLeft:{points:["tl","bc"],offset:[-(a+n),4]},leftBottom:{points:["br","cl"],offset:[-4,u+n]}};return Object.keys(d).forEach((function(t){d[t]=e.arrowPointAtCenter?(0,o.default)((0,o.default)({},d[t]),{overflow:l(f),targetOffset:s}):(0,o.default)((0,o.default)({},i.placements[t]),{overflow:l(f)}),d[t].ignoreShake=!0})),d};var o=r(n(14)),i=n(753),a={adjustX:1,adjustY:1},c={adjustX:0,adjustY:0},s=[0,0];function l(e){return"boolean"==typeof e?e?a:c:(0,o.default)((0,o.default)({},c),e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.placements=void 0;var r={adjustX:1,adjustY:1},o=[0,0],i={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:o},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:o},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:o},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:o},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:o},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:o},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:o},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:o},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:o},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:o},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:o},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:o}};t.placements=i;var a=i;t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PresetColorTypes=t.PresetStatusColorTypes=void 0;var r=n(140),o=(0,r.tuple)("success","processing","error","default","warning");t.PresetStatusColorTypes=o;var i=(0,r.tuple)("pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime");t.PresetColorTypes=i},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(756))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(757)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="BarsOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.Content=t.Footer=t.Header=t.LayoutContext=void 0;var i=r(n(58)),a=r(n(16)),c=r(n(32)),s=r(n(14)),l=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=d(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),u=r(n(3)),f=n(33);function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(d=function(e){return e?n:t})(e)}var p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},h=l.createContext({siderHook:{addSider:function(){return null},removeSider:function(){return null}}});function m(e){var t=e.suffixCls,n=e.tagName,r=e.displayName;return function(e){var o=function(r){var o=l.useContext(f.ConfigContext).getPrefixCls,i=r.prefixCls,a=o(t,i);return l.createElement(e,(0,s.default)({prefixCls:a,tagName:n},r))};return o.displayName=r,o}}t.LayoutContext=h;var v=function(e){var t=e.prefixCls,n=e.className,r=e.children,o=e.tagName,i=p(e,["prefixCls","className","children","tagName"]),a=(0,u.default)(t,n);return l.createElement(o,(0,s.default)({className:a},i),r)},y=m({suffixCls:"layout",tagName:"section",displayName:"Layout"})((function(e){var t,n=l.useContext(f.ConfigContext).direction,r=l.useState([]),o=(0,c.default)(r,2),d=o[0],m=o[1],v=e.prefixCls,y=e.className,_=e.children,g=e.hasSider,b=e.tagName,M=p(e,["prefixCls","className","children","hasSider","tagName"]),w=(0,u.default)(v,(t={},(0,a.default)(t,"".concat(v,"-has-sider"),"boolean"==typeof g?g:d.length>0),(0,a.default)(t,"".concat(v,"-rtl"),"rtl"===n),t),y);return l.createElement(h.Provider,{value:{siderHook:{addSider:function(e){m((function(t){return[].concat((0,i.default)(t),[e])}))},removeSider:function(e){m((function(t){return t.filter((function(t){return t!==e}))}))}}}},l.createElement(b,(0,s.default)({className:w},M),_))})),_=m({suffixCls:"layout-header",tagName:"header",displayName:"Header"})(v);t.Header=_;var g=m({suffixCls:"layout-footer",tagName:"footer",displayName:"Footer"})(v);t.Footer=g;var b=m({suffixCls:"layout-content",tagName:"main",displayName:"Content"})(v);t.Content=b;var M=y;t.default=M},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return!isNaN(parseFloat(e))&&isFinite(e)};t.default=r},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(32)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=r(n(194)),u=r(n(196)),f=n(33),d=r(n(122)),p=n(197);function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}var m=c.forwardRef((function(e,t){var n=c.useContext(f.ConfigContext),r=n.getPrefixCls,o=n.direction,h=c.useContext(d.default),m=(0,l.default)(e.defaultValue,{value:e.value}),v=(0,a.default)(m,2),y=v[0],_=v[1];return c.createElement(p.RadioGroupContextProvider,{value:{onChange:function(t){var n=y,r=t.target.value;"value"in e||_(r);var o=e.onChange;o&&r!==n&&o(t)},value:y,disabled:e.disabled,name:e.name}},function(){var n,a=e.prefixCls,l=e.className,f=void 0===l?"":l,d=e.options,p=e.optionType,m=e.buttonStyle,v=void 0===m?"outline":m,_=e.disabled,g=e.children,b=e.size,M=e.style,w=e.id,O=e.onMouseEnter,S=e.onMouseLeave,C=r("radio",a),x="".concat(C,"-group"),k=g;if(d&&d.length>0){var L="button"===p?"".concat(C,"-button"):C;k=d.map((function(e){return"string"==typeof e?c.createElement(u.default,{key:e,prefixCls:L,disabled:_,value:e,checked:y===e},e):c.createElement(u.default,{key:"radio-group-value-options-".concat(e.value),prefixCls:L,disabled:e.disabled||_,value:e.value,checked:y===e.value,style:e.style},e.label)}))}var E=b||h,T=(0,s.default)(x,"".concat(x,"-").concat(v),(n={},(0,i.default)(n,"".concat(x,"-").concat(E),E),(0,i.default)(n,"".concat(x,"-rtl"),"rtl"===o),n),f);return c.createElement("div",{className:T,style:M,onMouseEnter:O,onMouseLeave:S,id:w,ref:t},k)}())})),v=c.memo(m);t.default=v},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(14)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),c=r(n(196)),s=n(33),l=r(n(197));function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}var f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},d=function(e,t){var n=a.useContext(l.default),r=a.useContext(s.ConfigContext).getPrefixCls,o=e.prefixCls,u=f(e,["prefixCls"]),d=r("radio-button",o);return n&&(u.checked=e.value===n.value,u.disabled=e.disabled||n.disabled),a.createElement(c.default,(0,i.default)({prefixCls:d},u,{type:"radio",ref:t}))},p=a.forwardRef(d);t.default=p},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.getSortData=function e(t,n,r){var o=n.slice().sort((function(e,t){return t.multiplePriority-e.multiplePriority})),i=t.slice(),s=o.filter((function(e){var t=e.column.sorter,n=e.sortOrder;return _(t)&&n}));if(!s.length)return i;return i.sort((function(e,t){for(var n=0;n<s.length;n+=1){var r=s[n],o=r.column.sorter,i=r.sortOrder,a=_(o);if(a&&i){var c=a(e,t,i);if(0!==c)return"ascend"===i?c:-c}}return 0})).map((function(t){var o=t[r];return o?(0,c.default)((0,c.default)({},t),(0,a.default)({},r,e(o,n,r))):t}))},t.default=function(e){var t=e.prefixCls,n=e.mergedColumns,r=e.onSorterChange,o=e.sortDirections,v=e.tableLocale,_=e.showSorterTooltip,b=u.useState(g(n,!0)),w=(0,i.default)(b,2),O=w[0],S=w[1],C=u.useMemo((function(){var e=!0,t=g(n,!1);if(!t.length)return O;var r=[];function o(t){e?r.push(t):r.push((0,c.default)((0,c.default)({},t),{sortOrder:null}))}var i=null;return t.forEach((function(t){null===i?(o(t),t.sortOrder&&(!1===t.multiplePriority?e=!1:i=!0)):(i&&!1!==t.multiplePriority||(e=!1),o(t))})),r}),[n,O]),x=u.useMemo((function(){var e=C.map((function(e){return{column:e.column,order:e.sortOrder}}));return{sortColumns:e,sortColumn:e[0]&&e[0].column,sortOrder:e[0]&&e[0].order}}),[C]);function k(e){var t;t=!1!==e.multiplePriority&&C.length&&!1!==C[0].multiplePriority?[].concat((0,s.default)(C.filter((function(t){return t.key!==e.key}))),[e]):[e],S(t),r(M(t),t)}return[function(e){return function e(t,n,r,o,i,s,v,_){return(n||[]).map((function(n,g){var b=(0,m.getColumnPos)(g,_),M=n;if(M.sorter){var w=M.sortDirections||i,O=void 0===M.showSorterTooltip?v:M.showSorterTooltip,S=(0,m.getColumnKey)(M,b),C=r.find((function(e){return e.key===S})),x=C?C.sortOrder:null,k=function(e,t){if(!t)return e[0];return e[e.indexOf(t)+1]}(w,x),L=w.includes("ascend")&&u.createElement(p.default,{className:(0,f.default)("".concat(t,"-column-sorter-up"),{active:"ascend"===x})}),E=w.includes("descend")&&u.createElement(d.default,{className:(0,f.default)("".concat(t,"-column-sorter-down"),{active:"descend"===x})}),T=s||{},P=T.cancelSort,j=T.triggerAsc,z=T.triggerDesc,D=P;"descend"===k?D=z:"ascend"===k&&(D=j);var N="object"===(0,l.default)(O)?O:{title:D};M=(0,c.default)((0,c.default)({},M),{className:(0,f.default)(M.className,(0,a.default)({},"".concat(t,"-column-sort"),x)),title:function(e){var r=u.createElement("div",{className:"".concat(t,"-column-sorters")},u.createElement("span",null,(0,m.renderColumnTitle)(n.title,e)),u.createElement("span",{className:(0,f.default)("".concat(t,"-column-sorter"),(0,a.default)({},"".concat(t,"-column-sorter-full"),!(!L||!E)))},u.createElement("span",{className:"".concat(t,"-column-sorter-inner")},L,E)));return O?u.createElement(h.default,N,u.createElement("div",{className:"".concat(t,"-column-sorters-with-tooltip")},r)):r},onHeaderCell:function(e){var r=n.onHeaderCell&&n.onHeaderCell(e)||{},i=r.onClick;return r.onClick=function(e){o({column:n,key:S,sortOrder:k,multiplePriority:y(n)}),i&&i(e)},r.className=(0,f.default)(r.className,"".concat(t,"-column-has-sorters")),r}})}return"children"in M&&(M=(0,c.default)((0,c.default)({},M),{children:e(t,M.children,r,o,i,s,v,b)})),M}))}(t,e,C,k,o,v,_)},C,x,function(){return M(C)}]};var i=r(n(32)),a=r(n(16)),c=r(n(14)),s=r(n(58)),l=r(n(9)),u=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),f=r(n(3)),d=r(n(763)),p=r(n(766)),h=r(n(429)),m=n(198);function v(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function y(e){return"object"===(0,l.default)(e.sorter)&&"number"==typeof e.sorter.multiple&&e.sorter.multiple}function _(e){return"function"==typeof e?e:!(!e||"object"!==(0,l.default)(e)||!e.compare)&&e.compare}function g(e,t,n){var r=[];function o(e,t){r.push({column:e,key:(0,m.getColumnKey)(e,t),multiplePriority:y(e),sortOrder:e.sortOrder})}return(e||[]).forEach((function(e,i){var a=(0,m.getColumnPos)(i,n);e.children?("sortOrder"in e&&o(e,a),r=[].concat((0,s.default)(r),(0,s.default)(g(e.children,t,a)))):e.sorter&&("sortOrder"in e?o(e,a):t&&e.defaultSortOrder&&r.push({column:e,key:(0,m.getColumnKey)(e,a),multiplePriority:y(e),sortOrder:e.defaultSortOrder}))})),r}function b(e){var t=e.column;return{column:t,order:e.sortOrder,field:t.dataIndex,columnKey:t.key}}function M(e){var t=e.filter((function(e){return e.sortOrder})).map(b);return 0===t.length&&e.length?(0,c.default)((0,c.default)({},b(e[e.length-1])),{column:void 0}):t.length<=1?t[0]||{}:t}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(764))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(765)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CaretDownOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z"}}]},name:"caret-down",theme:"outlined"}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(767))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(768)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="CaretUpOutlined";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z"}}]},name:"caret-up",theme:"outlined"}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.getFilterData=function(e,t){return t.reduce((function(e,t){var n=t.column,r=n.onFilter,o=n.filters,i=t.filteredKeys;return r&&i&&i.length?e.filter((function(e){return i.some((function(t){var n=p(o),i=n.findIndex((function(e){return String(e)===String(t)})),a=-1!==i?n[i]:t;return r(a,e)}))})):e}),e)},t.default=void 0;var i=r(n(32)),a=r(n(14)),c=r(n(58)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=f(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),l=n(198),u=r(n(770));function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(f=function(e){return e?n:t})(e)}function d(e,t,n){var r=[];return(e||[]).forEach((function(e,o){var i,a=(0,l.getColumnPos)(o,n);if("children"in e)r=[].concat((0,c.default)(r),(0,c.default)(d(e.children,t,a)));else if(e.filters||"filterDropdown"in e||"onFilter"in e)if("filteredValue"in e){var s=e.filteredValue;"filterDropdown"in e||(s=null!==(i=null==s?void 0:s.map(String))&&void 0!==i?i:s),r.push({column:e,key:(0,l.getColumnKey)(e,a),filteredKeys:s,forceFiltered:e.filtered})}else r.push({column:e,key:(0,l.getColumnKey)(e,a),filteredKeys:t&&e.defaultFilteredValue?e.defaultFilteredValue:void 0,forceFiltered:e.filtered})})),r}function p(e){var t=[];return(e||[]).forEach((function(e){var n=e.value,r=e.children;t.push(n),r&&(t=[].concat((0,c.default)(t),(0,c.default)(p(r))))})),t}function h(e){var t={};return e.forEach((function(e){var n=e.key,r=e.filteredKeys,o=e.column,i=o.filters;if(o.filterDropdown)t[n]=r||null;else if(Array.isArray(r)){var a=p(i);t[n]=a.filter((function(e){return r.includes(String(e))}))}else t[n]=null})),t}var m=function(e){var t=e.prefixCls,n=e.dropdownPrefixCls,r=e.mergedColumns,o=e.onFilterChange,c=e.getPopupContainer,f=e.locale,p=s.useState(d(r,!0)),m=(0,i.default)(p,2),v=m[0],y=m[1],_=s.useMemo((function(){var e=d(r,!1);return e.every((function(e){return void 0===e.filteredKeys}))?v:e}),[r,v]),g=s.useCallback((function(){return h(_)}),[_]),b=function(e){var t=_.filter((function(t){return t.key!==e.key}));t.push(e),y(t),o(h(t),t)};return[function(e){return function e(t,n,r,o,i,c,f,d){return r.map((function(r,p){var h=(0,l.getColumnPos)(p,d),m=r.filterMultiple,v=void 0===m||m,y=r;if(y.filters||y.filterDropdown){var _=(0,l.getColumnKey)(y,h),g=o.find((function(e){var t=e.key;return _===t}));y=(0,a.default)((0,a.default)({},y),{title:function(e){return s.createElement(u.default,{prefixCls:"".concat(t,"-filter"),dropdownPrefixCls:n,column:y,columnKey:_,filterState:g,filterMultiple:v,triggerFilter:i,locale:f,getPopupContainer:c},(0,l.renderColumnTitle)(r.title,e))}})}return"children"in y&&(y=(0,a.default)((0,a.default)({},y),{children:e(t,n,y.children,o,i,c,f,h)})),y}))}(t,n,e,_,b,c,f)},_,g]};t.default=m},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=r(n(32)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=b(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),s=r(n(3)),l=r(n(771)),u=r(n(837)),f=r(n(426)),d=r(n(428)),p=r(n(420)),h=r(n(431)),m=r(n(424)),v=r(n(408)),y=r(n(840)),_=r(n(841)),g=n(188);function b(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(b=function(e){return e?n:t})(e)}var M=d.default.SubMenu,w=d.default.Item;var O=function(e){var t,n=e.prefixCls,r=e.column,o=e.dropdownPrefixCls,b=e.columnKey,O=e.filterMultiple,S=e.filterState,C=e.triggerFilter,x=e.locale,k=e.children,L=e.getPopupContainer,E=r.filterDropdownVisible,T=r.onFilterDropdownVisibleChange,P=c.useState(!1),j=(0,a.default)(P,2),z=j[0],D=j[1],N=!(!S||!(null===(t=S.filteredKeys)||void 0===t?void 0:t.length)&&!S.forceFiltered),H=function(e){D(e),null==T||T(e)},A="boolean"==typeof E?E:z,Y=null==S?void 0:S.filteredKeys,I=(0,_.default)(Y||[]),V=(0,a.default)(I,2),F=V[0],R=V[1],W=function(e){var t=e.selectedKeys;R(t)};c.useEffect((function(){W({selectedKeys:Y||[]})}),[Y]);var U=c.useState([]),B=(0,a.default)(U,2),K=B[0],q=B[1],G=c.useRef();c.useEffect((function(){return function(){window.clearTimeout(G.current)}}),[]);var $,J=function(e){var t=e&&e.length?e:null;return null!==t||S&&S.filteredKeys?(0,l.default)(t,null==S?void 0:S.filteredKeys)?null:void C({column:r,key:b,filteredKeys:t}):null},X=function(){H(!1),J(F())},Q=function(){R([]),H(!1),J([])},Z=(0,s.default)((0,i.default)({},"".concat(o,"-menu-without-submenu"),!(r.filters||[]).some((function(e){return e.children}))));if("function"==typeof r.filterDropdown)$=r.filterDropdown({prefixCls:"".concat(o,"-custom"),setSelectedKeys:function(e){return W({selectedKeys:e})},selectedKeys:F(),confirm:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{closeDropdown:!0},t=e.closeDropdown;t&&H(!1),J(F())},clearFilters:Q,filters:r.filters,visible:A});else if(r.filterDropdown)$=r.filterDropdown;else{var ee=F()||[];$=c.createElement(c.Fragment,null,c.createElement(d.default,{multiple:O,prefixCls:"".concat(o,"-menu"),className:Z,onClick:function(){window.clearTimeout(G.current)},onSelect:W,onDeselect:W,selectedKeys:ee,getPopupContainer:L,openKeys:K,onOpenChange:function(e){G.current=window.setTimeout((function(){q(e)}))}},function e(t){var n=t.filters,r=t.prefixCls,o=t.filteredKeys,i=t.filterMultiple,a=t.locale;return 0===n.length?c.createElement("div",{style:{margin:"16px 0"}},c.createElement(v.default,{image:v.default.PRESENTED_IMAGE_SIMPLE,description:a.filterEmptyText,imageStyle:{height:24}})):n.map((function(t,n){var s=String(t.value);if(t.children)return c.createElement(M,{key:s||n,title:t.text,popupClassName:"".concat(r,"-dropdown-submenu")},e({filters:t.children,prefixCls:r,filteredKeys:o,filterMultiple:i,locale:a}));var l=i?p.default:h.default;return c.createElement(w,{key:void 0!==t.value?s:n},c.createElement(l,{checked:o.includes(s)}),c.createElement("span",null,t.text))}))}({filters:r.filters||[],prefixCls:n,filteredKeys:F(),filterMultiple:O,locale:x})),c.createElement("div",{className:"".concat(n,"-dropdown-btns")},c.createElement(f.default,{type:"link",size:"small",disabled:0===ee.length,onClick:Q},x.filterReset),c.createElement(f.default,{type:"primary",size:"small",onClick:X},x.filterConfirm)))}var te,ne=c.createElement(y.default,{className:"".concat(n,"-dropdown")},$);te="function"==typeof r.filterIcon?r.filterIcon(N):r.filterIcon?r.filterIcon:c.createElement(u.default,null);var re=c.useContext(g.ConfigContext).direction;return c.createElement("div",{className:(0,s.default)("".concat(n,"-column"))},c.createElement("span",{className:"".concat(n,"-column-title")},k),c.createElement("span",{className:(0,s.default)("".concat(n,"-trigger-container"),(0,i.default)({},"".concat(n,"-trigger-container-open"),A)),onClick:function(e){e.stopPropagation()}},c.createElement(m.default,{overlay:ne,trigger:["click"],visible:A,onVisibleChange:function(e){e&&void 0!==Y&&R(Y||[]),H(e),e||r.filterDropdown||X()},getPopupContainer:L,placement:"rtl"===re?"bottomLeft":"bottomRight"},c.createElement("span",{role:"button",tabIndex:-1,className:(0,s.default)("".concat(n,"-trigger"),{active:N})},te))))};t.default=O},function(e,t,n){var r=n(772);e.exports=function(e,t){return r(e,t)}},function(e,t,n){var r=n(773),o=n(121);e.exports=function e(t,n,i,a,c){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,c))}},function(e,t,n){var r=n(774),o=n(436),i=n(806),a=n(810),c=n(832),s=n(200),l=n(437),u=n(438),f="[object Object]",d=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,p,h,m){var v=s(e),y=s(t),_=v?"[object Array]":c(e),g=y?"[object Array]":c(t),b=(_="[object Arguments]"==_?f:_)==f,M=(g="[object Arguments]"==g?f:g)==f,w=_==g;if(w&&l(e)){if(!l(t))return!1;v=!0,b=!1}if(w&&!b)return m||(m=new r),v||u(e)?o(e,t,n,p,h,m):i(e,t,_,n,p,h,m);if(!(1&n)){var O=b&&d.call(e,"__wrapped__"),S=M&&d.call(t,"__wrapped__");if(O||S){var C=O?e.value():e,x=S?t.value():t;return m||(m=new r),h(C,x,n,p,m)}}return!!w&&(m||(m=new r),a(e,t,n,p,h,m))}},function(e,t,n){var r=n(141),o=n(780),i=n(781),a=n(782),c=n(783),s=n(784);function l(e){var t=this.__data__=new r(e);this.size=t.size}l.prototype.clear=o,l.prototype.delete=i,l.prototype.get=a,l.prototype.has=c,l.prototype.set=s,e.exports=l},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(142),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(142);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(142);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(142);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(141);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(141),o=n(199),i=n(435);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(433),o=n(786),i=n(139),a=n(434),c=/^\[object .+?Constructor\]$/,s=Function.prototype,l=Object.prototype,u=s.toString,f=l.hasOwnProperty,d=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:c).test(a(e))}},function(e,t,n){var r,o=n(787),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(67)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var r=n(790),o=n(141),i=n(199);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(791),o=n(792),i=n(793),a=n(794),c=n(795);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t,n){var r=n(143);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(143),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(143),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},function(e,t,n){var r=n(143);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},function(e,t,n){var r=n(144);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(144);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(144);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(144);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},function(e,t,n){var r=n(435),o=n(802),i=n(803);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},function(e,t){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t,n){var r=n(184),o=n(807),i=n(432),a=n(436),c=n(808),s=n(809),l=r?r.prototype:void 0,u=l?l.valueOf:void 0;e.exports=function(e,t,n,r,l,f,d){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=c;case"[object Set]":var h=1&r;if(p||(p=s),e.size!=t.size&&!h)return!1;var m=d.get(e);if(m)return m==t;r|=2,d.set(e,t);var v=a(p(e),p(t),r,l,f,d);return d.delete(e),v;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},function(e,t,n){var r=n(67).Uint8Array;e.exports=r},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},function(e,t,n){var r=n(811),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,i,a,c){var s=1&n,l=r(e),u=l.length;if(u!=r(t).length&&!s)return!1;for(var f=u;f--;){var d=l[f];if(!(s?d in t:o.call(t,d)))return!1}var p=c.get(e),h=c.get(t);if(p&&h)return p==t&&h==e;var m=!0;c.set(e,t),c.set(t,e);for(var v=s;++f<u;){var y=e[d=l[f]],_=t[d];if(i)var g=s?i(_,y,d,t,e,c):i(y,_,d,e,t,c);if(!(void 0===g?y===_||a(y,_,n,i,c):g)){m=!1;break}v||(v="constructor"==d)}if(m&&!v){var b=e.constructor,M=t.constructor;b==M||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof M&&M instanceof M||(m=!1)}return c.delete(e),c.delete(t),m}},function(e,t,n){var r=n(812),o=n(814),i=n(817);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(813),o=n(200);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(815),o=n(816),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,c=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return i.call(e,t)})))}:o;e.exports=c},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(818),o=n(827),i=n(831);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){var r=n(819),o=n(820),i=n(200),a=n(437),c=n(823),s=n(438),l=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),u=!n&&o(e),f=!n&&!u&&a(e),d=!n&&!u&&!f&&s(e),p=n||u||f||d,h=p?r(e.length,String):[],m=h.length;for(var v in e)!t&&!l.call(e,v)||p&&("length"==v||f&&("offset"==v||"parent"==v)||d&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||c(v,m))||h.push(v);return h}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t,n){var r=n(821),o=n(121),i=Object.prototype,a=i.hasOwnProperty,c=i.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!c.call(e,"callee")};e.exports=s},function(e,t,n){var r=n(120),o=n(121);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},function(e,t){e.exports=function(){return!1}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t,n){var r=n(120),o=n(439),i=n(121),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(403),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,c=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=c}).call(this,n(136)(e))},function(e,t,n){var r=n(828),o=n(829),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(830)(Object.keys,Object);e.exports=r},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(433),o=n(439);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(833),o=n(199),i=n(834),a=n(835),c=n(836),s=n(120),l=n(434),u=l(r),f=l(o),d=l(i),p=l(a),h=l(c),m=s;(r&&"[object DataView]"!=m(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=m(new o)||i&&"[object Promise]"!=m(i.resolve())||a&&"[object Set]"!=m(new a)||c&&"[object WeakMap]"!=m(new c))&&(m=function(e){var t=s(e),n="[object Object]"==t?e.constructor:void 0,r=n?l(n):"";if(r)switch(r){case u:return"[object DataView]";case f:return"[object Map]";case d:return"[object Promise]";case p:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,n){var r=n(107)(n(67),"DataView");e.exports=r},function(e,t,n){var r=n(107)(n(67),"Promise");e.exports=r},function(e,t,n){var r=n(107)(n(67),"Set");e.exports=r},function(e,t,n){var r=n(107)(n(67),"WeakMap");e.exports=r},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(838))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";var r=n(5),o=n(12);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=o(n(0)),a=r(n(839)),c=r(n(38)),s=function(e,t){return i.createElement(c.default,Object.assign({},e,{ref:t,icon:a.default}))};s.displayName="FilterFilled";var l=i.forwardRef(s);t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z"}}]},name:"filter",theme:"filled"}},function(e,t,n){"use strict";var r=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=i(t);if(n&&n.has(e))return n.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var s=a?Object.getOwnPropertyDescriptor(e,c):null;s&&(s.get||s.set)?Object.defineProperty(o,c,s):o[c]=e[c]}o.default=e,n&&n.set(e,o);return o}(n(0));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(i=function(e){return e?n:t})(e)}var a=function(e){return o.createElement("div",{className:e.className,onClick:function(e){return e.stopPropagation()}},e.children)};t.default=a},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=i.useRef(e),n=(0,a.default)();return[function(){return t.current},function(e){t.current=e,n()}]};var i=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),a=r(n(842));function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=a.useReducer((function(e){return e+1}),0);return(0,i.default)(e,2)[1]};var i=r(n(32)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=c(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0));function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(c=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return[a.useCallback((function(t){return function e(t,n){return t.map((function(t){var r=(0,i.default)({},t);return r.title=(0,c.renderColumnTitle)(t.title,n),"children"in r&&(r.children=e(r.children,n)),r}))}(t,e)}),[e])]};var i=r(n(14)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),c=n(198);function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(16)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(0)),c=r(n(3));function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}var l=function(e){return function(t){var n,r=t.prefixCls,o=t.onExpand,s=t.record,l=t.expanded,u=t.expandable,f="".concat(r,"-row-expand-icon");return a.createElement("button",{type:"button",onClick:function(e){o(s,e),e.stopPropagation()},className:(0,c.default)(f,(n={},(0,i.default)(n,"".concat(f,"-spaced"),!u),(0,i.default)(n,"".concat(f,"-expanded"),u&&l),(0,i.default)(n,"".concat(f,"-collapsed"),u&&!l),n)),"aria-label":l?e.collapse:e.expand})}};t.default=l},function(e,t,n){"use strict";var r=n(5),o=n(9);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.getContainer,r=void 0===n?function(){return window}:n,o=t.callback,s=t.duration,l=void 0===s?450:s,u=r(),f=(0,a.default)(u,!0),d=Date.now(),p=function t(){var n=Date.now()-d,r=(0,c.easeInOutCubic)(n>l?l:n,f,e,l);(0,a.isWindow)(u)?u.scrollTo(window.pageXOffset,r):u instanceof HTMLDocument||"HTMLDocument"===u.constructor.name?u.documentElement.scrollTop=r:u.scrollTop=r,n<l?(0,i.default)(t):"function"==typeof o&&o()};(0,i.default)(p)};var i=r(n(427)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==o(e)&&"function"!=typeof e)return{default:e};var n=s(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(846)),c=n(847);function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(s=function(e){return e?n:t})(e)}},function(e,t,n){"use strict";function r(e){return null!=e&&e===e.window}Object.defineProperty(t,"__esModule",{value:!0}),t.isWindow=r,t.default=function(e,t){var n;if("undefined"==typeof window)return 0;var o=t?"scrollTop":"scrollLeft",i=0;r(e)?i=e[t?"pageYOffset":"pageXOffset"]:e instanceof Document?i=e.documentElement[o]:e&&(i=e[o]);e&&!r(e)&&"number"!=typeof i&&(i=null===(n=(e.ownerDocument||e).documentElement)||void 0===n?void 0:n[o]);return i}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.easeInOutCubic=function(e,t,n,r){var o=n-t;if((e/=r/2)<1)return o/2*e*e*e+t;return o/2*((e-=2)*e*e+2)+t}},function(e,t,n){"use strict";var r=n(5);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n(186)).default;t.default=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return null};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){return null};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getOverflowOptions=s,t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.arrowWidth,n=void 0===t?5:t,i=e.horizontalArrowShift,a=void 0===i?16:i,l=e.verticalArrowShift,u=void 0===l?12:l,f=e.autoAdjustOverflow,d=void 0===f||f,p={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(a+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(u+n)]},topRight:{points:["br","tc"],offset:[a+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(u+n)]},bottomRight:{points:["tr","bc"],offset:[a+n,4]},rightBottom:{points:["bl","cr"],offset:[4,u+n]},bottomLeft:{points:["tl","bc"],offset:[-(a+n),4]},leftBottom:{points:["br","cl"],offset:[-4,u+n]}};return Object.keys(p).forEach((function(t){p[t]=e.arrowPointAtCenter?o(o({},p[t]),{overflow:s(d),targetOffset:c}):o(o({},r.placements[t]),{overflow:s(d)}),p[t].ignoreShake=!0})),p};var r=n(852);function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i={adjustX:1,adjustY:1},a={adjustX:0,adjustY:0},c=[0,0];function s(e){return"boolean"==typeof e?e?i:a:o(o({},a),e)}},function(e,t,n){"use strict";t.__esModule=!0;var r={adjustX:1,adjustY:1},o=[0,0],i=t.placements={left:{points:["cr","cl"],overflow:r,offset:[-4,0],targetOffset:o},right:{points:["cl","cr"],overflow:r,offset:[4,0],targetOffset:o},top:{points:["bc","tc"],overflow:r,offset:[0,-4],targetOffset:o},bottom:{points:["tc","bc"],overflow:r,offset:[0,4],targetOffset:o},topLeft:{points:["bl","tl"],overflow:r,offset:[0,-4],targetOffset:o},leftTop:{points:["tr","tl"],overflow:r,offset:[-4,0],targetOffset:o},topRight:{points:["br","tr"],overflow:r,offset:[0,-4],targetOffset:o},rightTop:{points:["tl","tr"],overflow:r,offset:[4,0],targetOffset:o},bottomRight:{points:["tr","br"],overflow:r,offset:[0,4],targetOffset:o},rightBottom:{points:["bl","br"],overflow:r,offset:[4,0],targetOffset:o},bottomLeft:{points:["tl","bl"],overflow:r,offset:[0,4],targetOffset:o},leftBottom:{points:["br","bl"],overflow:r,offset:[-4,0],targetOffset:o}};t.default=i},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";var r=new RegExp("%[a-f0-9]{2}","gi"),o=new RegExp("(%[a-f0-9]{2})+","gi");function i(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],i(n),i(r))}function a(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(r),n=1;n<t.length;n++)t=(e=i(t,n).join("")).match(r);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=o.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var r=a(n[0]);r!==n[0]&&(t[n[0]]=r)}n=o.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),c=0;c<i.length;c++){var s=i[c];e=e.replace(new RegExp(s,"g"),t[s])}return e}(e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e=1e3){this._items=new Set,this._limit=e}add(e){if(this._items.add(e),this._items.size>this._limit){const e=this._items.values().next();e.done||this._items.delete(e.value)}return this}delete(e){return this._items.delete(e)}has(e){return this._items.has(e)}clear(){this._items.clear()}get size(){return this._items.size}forEach(e,t){this._items.forEach(n=>e.call(t,n,n,this))}*keys(){yield*this._items.keys()}*values(){yield*this._items.values()}*entries(){yield*this._items.entries()}*[Symbol.iterator](){yield*this._items}get[Symbol.toStringTag](){return"FixedSizeSet"}}t.FixedSizeSet=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e=1e3){this._items=new Map,this._limit=e}get(e){return this._items.get(e)}set(e,t){if(this._items.set(e,t),this._items.size>this._limit){const e=this._items.keys().next();e.done||this._items.delete(e.value)}}delete(e){return this._items.delete(e)}has(e){return this._items.has(e)}clear(){this._items.clear()}get size(){return this._items.size}forEach(e,t){this._items.forEach((n,r)=>e.call(t,r,n))}*keys(){yield*this._items.keys()}*values(){yield*this._items.values()}*entries(){yield*this._items.entries()}*[Symbol.iterator](){yield*this._items}get[Symbol.toStringTag](){return"ObjectCache"}}t.ObjectCache=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CompareCache=class{constructor(e=1e3){this._items=new Map,this._limit=e}check(e,t){if(this._items.get(e)===t)return!0;if(this._items.get(t)===e)return!1;const n=Math.random()<.5;if(n?this._items.set(e,t):this._items.set(t,e),this._items.size>this._limit){const e=this._items.keys().next();e.done||this._items.delete(e.value)}return n}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Lazy=class{constructor(e){this._initialized=!1,this._value=void 0,this._initFunc=e}get value(){return this._initialized||(this._value=this._initFunc(),this._initialized=!0),this._value}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(441);t.Cast=class{static asNode(e){if(r.Guard.isNode(e))return e;throw new Error("Invalid object. Node expected.")}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{get size(){return 0}add(e){throw new Error("Cannot add to an empty set.")}clear(){}delete(e){return!1}forEach(e,t){}has(e){return!1}[Symbol.iterator](){return new o}entries(){return new o}keys(){return new o}values(){return new o}get[Symbol.toStringTag](){return"EmptySet"}}t.EmptySet=r;class o{[Symbol.iterator](){return this}next(){return{done:!0,value:null}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(862);t.XMLBuilderImpl=r.XMLBuilderImpl},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(440),o=n(34),i=n(863),a=n(477),c=n(26);class s{constructor(e){this._domNode=e}get node(){return this._domNode}set(e){return this._options=o.applyDefaults(o.applyDefaults(this._options,e,!0),r.DefaultBuilderOptions),this}ele(e,t,n){let r,i,c,l=null;if(o.isString(e)&&/^\s*</.test(e)){const t="<TEMP_ROOT>"+e+"</TEMP_ROOT>",n=a.createParser().parseFromString(t,"text/xml");if(null===n.documentElement)throw new Error("Document element is null.");a.throwIfParserError(n);for(const e of n.documentElement.childNodes){const t=n.importNode(e,!0);l=new s(t),this._domNode.appendChild(t)}if(null===l)throw new Error("Could not create any elements with: "+e.toString()+". "+this._debugInfo());return l}if(o.isString(e)&&/^\s*[\{\[]/.test(e)){const t=JSON.parse(e);return this.ele(t)}if(o.isObject(e))[r,i,c]=[void 0,e,void 0];else if((null===e||o.isString(e))&&o.isString(t))[r,i,c]=[e,t,n];else{if(null===e)throw new Error("Element name cannot be null. "+this._debugInfo());[r,i,c]=[void 0,e,o.isObject(t)?t:void 0]}if(c&&(c=o.getValue(c)),o.isFunction(i))l=this.ele(i.apply(this));else if(o.isArray(i)||o.isSet(i))o.forEachArray(i,e=>l=this.ele(e),this);else if(o.isMap(i)||o.isObject(i))o.forEachObject(i,(e,t)=>{if(o.isFunction(t)&&(t=t.apply(this)),this._options.ignoreConverters||0!==e.indexOf(this._options.convert.att))if(this._options.ignoreConverters||0!==e.indexOf(this._options.convert.text))if(this._options.ignoreConverters||0!==e.indexOf(this._options.convert.cdata))if(this._options.ignoreConverters||0!==e.indexOf(this._options.convert.comment))if(this._options.ignoreConverters||0!==e.indexOf(this._options.convert.ins))(o.isArray(t)||o.isSet(t))&&o.isEmpty(t)?l=this._dummy():(o.isMap(t)||o.isObject(t))&&o.isEmpty(t)?l=this.ele(e):this._options.keepNullNodes||null!==t?o.isArray(t)||o.isSet(t)?o.forEachArray(t,t=>{const n={};n[e]=t,l=this.ele(n)},this):o.isMap(t)||o.isObject(t)?(l=this.ele(e),l.ele(t)):t?(l=this.ele(e),l.txt(t)):l=this.ele(e):l=this._dummy();else if(o.isString(t)){const e=t.indexOf(" "),n=-1===e?t:t.substr(0,e),r=-1===e?"":t.substr(e+1);l=this.ins(n,r)}else l=this.ins(t);else o.isArray(t)||o.isSet(t)?o.forEachArray(t,e=>l=this.com(e),this):l=this.com(t);else o.isArray(t)||o.isSet(t)?o.forEachArray(t,e=>l=this.dat(e),this):l=this.dat(t);else l=o.isMap(t)||o.isObject(t)?this.ele(t):this.txt(t);else l=e===this._options.convert.att?this.att(t):this.att(e.substr(this._options.convert.att.length),t)},this);else{[r,i]=this._extractNamespace(r,i,!0);const e=void 0!==r?this._doc.createElementNS(r,i):this._doc.createElement(i);this.node.appendChild(e),l=new s(e);const t=this._doc.doctype;if(e===this._doc.documentElement&&null!==t){const e=this._doc.implementation.createDocumentType(this._doc.documentElement.tagName,t.publicId,t.systemId);this._doc.replaceChild(e,t)}c&&!o.isEmpty(c)&&l.att(c)}if(null===l)throw new Error("Could not create any elements with: "+i.toString()+". "+this._debugInfo());return l}remove(){const e=this.up();return e.node.removeChild(this.node),e}att(e,t,n){if(o.isMap(e)||o.isObject(e))return o.forEachObject(e,(e,t)=>this.att(e,t),this),this;let r,i,a;if(null!=e&&(e=o.getValue(e+"")),null!=t&&(t=o.getValue(t+"")),null!=n&&(n=o.getValue(n+"")),null!==e&&!o.isString(e)||!o.isString(t)||null!==n&&!o.isString(n)){if(!o.isString(e)||null!==t&&!o.isString(t))throw new Error("Attribute name and value not specified. "+this._debugInfo());[r,i,a]=[void 0,e,t]}else[r,i,a]=[e,t,n];if(this._options.keepNullAttributes&&null===a)a="";else if(null===a)return this;const c=this.node;return[r,i]=this._extractNamespace(r,i,!1),void 0!==r?c.setAttributeNS(r,i,a):c.setAttribute(i,a),this}removeAtt(e,t){let n,r;if(e=o.getValue(e),void 0!==t&&(t=o.getValue(t)),null!==e&&void 0===t)r=e;else{if(null!==e&&!o.isString(e)||void 0===t)throw new Error("Attribute namespace must be a string. "+this._debugInfo());n=e,r=t}return o.isArray(r)||o.isSet(r)?o.forEachArray(r,e=>void 0===n?this.removeAtt(e):this.removeAtt(n,e),this):void 0!==n?this.node.removeAttributeNS(n,r+""):this.node.removeAttribute(r+""),this}txt(e){const t=this._doc.createTextNode(e+"");return this.node.appendChild(t),this}com(e){const t=this._doc.createComment(e+"");return this.node.appendChild(t),this}dat(e){const t=this._doc.createCDATASection(e+"");return this.node.appendChild(t),this}ins(e,t=""){if(o.isArray(e)||o.isSet(e))o.forEachArray(e,e=>{const t=(e+="").indexOf(" "),n=-1===t?e:e.substr(0,t),r=-1===t?"":e.substr(t+1);this.ins(n,r)},this);else if(o.isMap(e)||o.isObject(e))o.forEachObject(e,(e,t)=>this.ins(e,t),this);else{const n=this._doc.createProcessingInstruction(e+"",t+"");this.node.appendChild(n)}return this}dec(e){return this._options.version=e.version||"1.0",this._options.encoding=e.encoding,this._options.standalone=e.standalone,this}dtd(e){const t=(e&&e.pubID||"")+"",n=(e&&e.sysID||"")+"",r=this._doc.implementation.createDocumentType(null!==this._doc.documentElement?this._doc.documentElement.tagName:"ROOT",t,n);return null!==this._doc.doctype?this._doc.replaceChild(r,this._doc.doctype):this._doc.insertBefore(r,this._doc.documentElement),this}import(e){const t=this._domNode,n=this._doc,r=e.node;if(c.Guard.isDocumentNode(r)){const e=r.documentElement;if(null===e)throw new Error("Imported document has no document element node. "+this._debugInfo());const o=n.importNode(e,!0);t.appendChild(o)}else if(c.Guard.isDocumentFragmentNode(r))for(const e of r.childNodes){const r=n.importNode(e,!0);t.appendChild(r)}else{const e=n.importNode(r,!0);t.appendChild(e)}return this}doc(){return new s(this._doc)}root(){const e=this._doc.documentElement;if(!e)throw new Error("Document root element is null. "+this._debugInfo());return new s(e)}up(){const e=this._domNode.parentNode;if(!e)throw new Error("Parent node is null. "+this._debugInfo());return new s(e)}prev(){const e=this._domNode.previousSibling;if(!e)throw new Error("Previous sibling node is null. "+this._debugInfo());return new s(e)}next(){const e=this._domNode.nextSibling;if(!e)throw new Error("Next sibling node is null. "+this._debugInfo());return new s(e)}first(){const e=this._domNode.firstChild;if(!e)throw new Error("First child node is null. "+this._debugInfo());return new s(e)}last(){const e=this._domNode.lastChild;if(!e)throw new Error("Last child node is null. "+this._debugInfo());return new s(e)}each(e,t=!1,n=!1,r){let o=this._getFirstDescendantNode(this._domNode,t,n),i=0;for(;o;)e.call(r,new s(o),i++),o=this._getNextDescendantNode(this._domNode,o,n);return this}map(e,t=!1,n=!1,r){let o=[];return this.each((t,n)=>o.push(e.call(r,t,n)),t,n),o}reduce(e,t,n=!1,r=!1,o){let i=t;return this.each((t,n)=>i=e.call(o,i,t,n),n,r),i}find(e,t=!1,n=!1,r){let o=this._getFirstDescendantNode(this._domNode,t,n),i=0;for(;o;){const t=new s(o);if(e.call(r,t,i++))return t;o=this._getNextDescendantNode(this._domNode,o,n)}}filter(e,t=!1,n=!1,r){let o=[];return this.each((t,n)=>{e.call(r,t,n)&&o.push(t)},t,n),o}every(e,t=!1,n=!1,r){let o=this._getFirstDescendantNode(this._domNode,t,n),i=0;for(;o;){const t=new s(o);if(!e.call(r,t,i++))return!1;o=this._getNextDescendantNode(this._domNode,o,n)}return!0}some(e,t=!1,n=!1,r){let o=this._getFirstDescendantNode(this._domNode,t,n),i=0;for(;o;){const t=new s(o);if(e.call(r,t,i++))return!0;o=this._getNextDescendantNode(this._domNode,o,n)}return!1}toArray(e=!1,t=!1){let n=[];return this.each(e=>n.push(e),e,t),n}toString(e){return void 0===(e=e||{}).format&&(e.format="xml"),this._serialize(e)}toObject(e){return void 0===(e=e||{}).format&&(e.format="object"),this._serialize(e)}end(e){return void 0===(e=e||{}).format&&(e.format="xml"),this.doc()._serialize(e)}_getFirstDescendantNode(e,t,n){return t?this._domNode:n?this._getNextDescendantNode(e,e,n):this._domNode.firstChild}_getNextDescendantNode(e,t,n){if(!n)return e===t?t.firstChild:t.nextSibling;{if(t.firstChild)return t.firstChild;if(t===e)return null;if(t.nextSibling)return t.nextSibling;let n=t.parentNode;for(;n&&n!==e;){if(n.nextSibling)return n.nextSibling;n=n.parentNode}}return null}_serialize(e){if("xml"===e.format){return new i.StringWriterImpl(this._options).serialize(this.node,e)}if("map"===e.format){return new i.MapWriterImpl(this._options).serialize(this.node,e)}if("object"===e.format){return new i.ObjectWriterImpl(this._options).serialize(this.node,e)}if("json"===e.format){return new i.JSONWriterImpl(this._options).serialize(this.node,e)}throw new Error("Invalid writer format: "+e.format+". "+this._debugInfo())}_dummy(){return new s(this._doc.createElement("dummy_node"))}_extractNamespace(e,t,n){const r=t.indexOf("@");if(r>0&&(void 0===e&&(e=t.slice(r+1)),t=t.slice(0,r)),void 0===e)e=n?this._options.defaultNamespace.ele:this._options.defaultNamespace.att;else if(null!==e&&"@"===e[0]){const t=e.slice(1);if(void 0===(e=this._options.namespaceAlias[t]))throw new Error("Namespace alias `"+t+"` is not defined. "+this._debugInfo())}return[e,t]}get _doc(){const e=this.node;if(c.Guard.isDocumentNode(e))return e;{const t=e.ownerDocument;if(!t)throw new Error("Owner document is null. "+this._debugInfo());return t}}_debugInfo(e){const t=this.node,n=t.parentNode;e=e||t.nodeName;const r=n?n.nodeName:"";return r?"node: <"+e+">, parent: <"+r+">":"node: <"+e+">"}get _options(){const e=this._doc;if(void 0===e._xmlBuilderOptions)throw new Error("Builder options is not set.");return e._xmlBuilderOptions}set _options(e){this._doc._xmlBuilderOptions=e}}t.XMLBuilderImpl=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(864);t.MapWriterImpl=r.MapWriterImpl;var o=n(920);t.StringWriterImpl=o.StringWriterImpl;var i=n(201);t.ObjectWriterImpl=i.ObjectWriterImpl;var a=n(921);t.JSONWriterImpl=a.JSONWriterImpl},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(201);t.MapWriterImpl=class{constructor(e){this._builderOptions=e}serialize(e,t){const n=r.applyDefaults(t,{format:"map",wellFormed:!1}),i=r.applyDefaults(n,{format:"object",wellFormed:!1}),a=new o.ObjectWriterImpl(this._builderOptions).serialize(e,i);return this._convertObject(a)}_convertObject(e){if(r.isArray(e)){for(let t=0;t<e.length;t++)e[t]=this._convertObject(e[t]);return e}if(r.isObject(e)){const t=new Map;for(const n in e)t.set(n,this._convertObject(e[n]));return t}return e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LocalNameSet=class{constructor(){this._items={},this._nullItems={}}set(e,t){null===e?this._nullItems[t]=!0:(this._items[e]||(this._items[e]={}),this._items[e][t]=!0)}has(e,t){return null===e?!0===this._nullItems[t]:!!this._items[e]&&!0===this._items[e][t]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this._items={},this._nullItems=[]}copy(){const e=new r;for(const t in this._items)e._items[t]=this._items[t].slice(0);return e._nullItems=this._nullItems.slice(0),e}get(e,t){const n=null===t?this._nullItems:this._items[t]||null;if(null===n)return null;let r=null;for(let t=0;t<n.length;t++)if(r=n[t],r===e)return r;return r}has(e,t){const n=null===t?this._nullItems:this._items[t]||null;return null!==n&&-1!==n.indexOf(e)}hasPrefix(e){if(-1!==this._nullItems.indexOf(e))return!0;for(const t in this._items)if(-1!==this._items[t].indexOf(e))return!0;return!1}set(e,t){const n=null===t?this._nullItems:this._items[t]||null;null!==t&&null===n?this._items[t]=[e]:n.push(e)}}t.NamespacePrefixMap=r},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const r=n(202);t.forgivingBase64Encode=function(t){return e.from(t).toString("base64")},t.forgivingBase64Decode=function(t){return""===t?"":((t=t.replace(r.ASCIIWhiteSpace,"")).length%4==0&&(t.endsWith("==")?t=t.substr(0,t.length-2):t.endsWith("=")&&(t=t.substr(0,t.length-1))),t.length%4==1?null:/[0-9A-Za-z+/]/.test(t)?e.from(t,"base64").toString("utf8"):null)}}).call(this,n(443).Buffer)},function(e,t,n){"use strict";t.byteLength=function(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=l(e),r=n[0],a=n[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,r,a)),s=0,u=a>0?r-4:r,f=0;f<u;f+=4)t=o[e.charCodeAt(f)]<<18|o[e.charCodeAt(f+1)]<<12|o[e.charCodeAt(f+2)]<<6|o[e.charCodeAt(f+3)],c[s++]=t>>16&255,c[s++]=t>>8&255,c[s++]=255&t;2===a&&(t=o[e.charCodeAt(f)]<<2|o[e.charCodeAt(f+1)]>>4,c[s++]=255&t);1===a&&(t=o[e.charCodeAt(f)]<<10|o[e.charCodeAt(f+1)]<<4|o[e.charCodeAt(f+2)]>>2,c[s++]=t>>8&255,c[s++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,c=n-o;a<c;a+=16383)i.push(u(e,a,a+16383>c?c:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,s=a.length;c<s;++c)r[c]=a[c],o[a.charCodeAt(c)]=c;function l(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var o,i,a=[],c=t;c<n;c+=3)o=(e[c]<<16&16711680)+(e[c+1]<<8&65280)+(255&e[c+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,c=8*o-r-1,s=(1<<c)-1,l=s>>1,u=-7,f=n?o-1:0,d=n?-1:1,p=e[t+f];for(f+=d,i=p&(1<<-u)-1,p>>=-u,u+=c;u>0;i=256*i+e[t+f],f+=d,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=r;u>0;a=256*a+e[t+f],f+=d,u-=8);if(0===i)i=1-l;else{if(i===s)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=l}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,c,s,l=8*i-o-1,u=(1<<l)-1,f=u>>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-a))<1&&(a--,s*=2),(t+=a+f>=1?d/s:d*Math.pow(2,1-f))*s>=2&&(a++,s/=2),a+f>=u?(c=0,a=u):a+f>=1?(c=(t*s-1)*Math.pow(2,o),a+=f):(c=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&c,p+=h,c/=256,o-=8);for(a=a<<o|c,l+=o;l>0;e[n+p]=255&a,p+=h,a/=256,l-=8);e[n+p-h]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34);function o(e){if(null===e||r.isString(e)||r.isNumber(e))return e;if(r.isArray(e)){const t=new Array;for(const n of e)t.push(o(n));return t}if(r.isObject(e)){const t=new Map;for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];t.set(n,o(r))}return t}return e}t.parseJSONFromBytes=function(e){const t=r.utf8Decode(e);return JSON.parse.call(void 0,t)},t.serializeJSONToBytes=function(e){const t=JSON.stringify.call(void 0,e);return r.utf8Encode(t)},t.parseJSONIntoInfraValues=function(e){return o(JSON.parse.call(void 0,e))},t.convertAJSONDerivedJavaScriptValueToAnInfraValue=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34);t.append=function(e,t){e.push(t)},t.extend=function(e,t){e.push(...t)},t.prepend=function(e,t){e.unshift(t)},t.replace=function(e,t,n){let o=0;for(const i of e){if(r.isFunction(t))t.call(null,i)&&(e[o]=n);else if(i===t)return void(e[o]=n);o++}},t.insert=function(e,t,n){e.splice(n,0,t)},t.remove=function(e,t){let n=e.length;for(;n--;){const o=e[n];if(r.isFunction(t))t.call(null,o)&&e.splice(n,1);else if(o===t)return void e.splice(n,1)}},t.empty=function(e){e.length=0},t.contains=function(e,t){for(const n of e)if(r.isFunction(t)){if(t.call(null,n))return!0}else if(n===t)return!0;return!1},t.size=function(e,t){if(void 0===t)return e.length;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.length},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Array(...e)},t.sortInAscendingOrder=function(e,t){return e.sort((e,n)=>t.call(null,e,n)?-1:1)},t.sortInDescendingOrder=function(e,t){return e.sort((e,n)=>t.call(null,e,n)?1:-1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34);t.get=function(e,t){return e.get(t)},t.set=function(e,t,n){e.set(t,n)},t.remove=function(e,t){if(r.isFunction(t)){const n=[];for(const r of e)t.call(null,r)&&n.push(r[0]);for(const t of n)e.delete(t)}else e.delete(t)},t.contains=function(e,t){if(r.isFunction(t)){for(const n of e)if(t.call(null,n))return!0;return!1}return e.has(t)},t.keys=function(e){return new Set(e.keys())},t.values=function(e){return[...e.values()]},t.size=function(e,t){if(void 0===t)return e.size;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.size},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Map(e)},t.sortInAscendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?-1:1),new Map(n)},t.sortInDescendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?1:-1),new Map(n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTML="http://www.w3.org/1999/xhtml",t.XML="http://www.w3.org/XML/1998/namespace",t.XMLNS="http://www.w3.org/2000/xmlns/",t.MathML="http://www.w3.org/1998/Math/MathML",t.SVG="http://www.w3.org/2000/svg",t.XLink="http://www.w3.org/1999/xlink"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.enqueue=function(e,t){e.push(t)},t.dequeue=function(e){return e.shift()||null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34);function o(e,t){for(const n of e)if(!t.has(n))return!1;return!0}t.append=function(e,t){e.add(t)},t.extend=function(e,t){t.forEach(e.add,e)},t.prepend=function(e,t){const n=new Set(e);e.clear(),e.add(t),n.forEach(e.add,e)},t.replace=function(e,t,n){const o=new Set;for(const i of e)r.isFunction(t)?t.call(null,i)?o.add(n):o.add(i):i===t?o.add(n):o.add(i);e.clear(),o.forEach(e.add,e)},t.insert=function(e,t,n){const r=new Set;let o=0;for(const i of e)o===n&&r.add(t),r.add(i),o++;e.clear(),r.forEach(e.add,e)},t.remove=function(e,t){if(r.isFunction(t)){const n=[];for(const r of e)t.call(null,r)&&n.push(r);for(const t of n)e.delete(t)}else e.delete(t)},t.empty=function(e){e.clear()},t.contains=function(e,t){if(!r.isFunction(t))return e.has(t);for(const n of e)if(t.call(null,n))return!0;return!1},t.size=function(e,t){if(void 0===t)return e.size;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.size},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Set(e)},t.sortInAscendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?-1:1),new Set(n)},t.sortInDescendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?1:-1),new Set(n)},t.isSubsetOf=o,t.isSupersetOf=function(e,t){return o(t,e)},t.intersection=function(e,t){const n=new Set;for(const r of e)t.has(r)&&n.add(r);return n},t.union=function(e,t){const n=new Set(e);return t.forEach(n.add,n),n},t.range=function(e,t){const n=new Set;for(let r=e;r<=t;r++)n.add(r);return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.push=function(e,t){e.push(t)},t.pop=function(e){return e.pop()||null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(202),o=n(445),i=n(444),a=n(34);function c(e,t){let n=0;for(;;){const r=n<e.length?e.charCodeAt(n):null,o=n<t.length?t.charCodeAt(n):null;if(null===r)return!0;if(r!==o)return!1;n++}}function s(e){const t=Array.from(e),n=new Uint8Array(t.length);let r=0;for(const t of e){const e=t.codePointAt(0);console.assert(void 0!==e&&e<=255,"isomorphicEncode requires string bytes to be less than or equal to 0x00FF."),void 0!==e&&e<=255&&(n[r++]=e)}return n}function l(e){return/^[\u0000-\u007F]*$/.test(e)}function u(e){let t="";for(const n of e){const e=n.codePointAt(0);t+=void 0!==e&&e>=65&&e<=90?String.fromCodePoint(e+32):n}return t}function f(e){return e.replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,"")}function d(e,t,n){if(!a.isArray(t))return d(e,Array.from(t),n);let r="";for(;n.position<t.length&&e.call(null,t[n.position]);)r+=t[n.position],n.position++;return r}function p(e,t){d(e=>r.ASCIIWhiteSpace.test(e),e,t)}t.isCodeUnitPrefix=c,t.isCodeUnitLessThan=function(e,t){if(c(t,e))return!1;if(c(e,t))return!0;for(let n=0;n<Math.min(e.length,t.length);n++){const r=e.charCodeAt(n),o=t.charCodeAt(n);if(r!==o)return r<o}return!1},t.isomorphicEncode=s,t.isASCIIString=l,t.asciiLowercase=u,t.asciiUppercase=function(e){let t="";for(const n of e){const e=n.codePointAt(0);t+=void 0!==e&&e>=97&&e<=122?String.fromCodePoint(e-32):n}return t},t.asciiCaseInsensitiveMatch=function(e,t){return u(e)===u(t)},t.asciiEncode=function(e){return console.assert(l(e),"asciiEncode requires an ASCII string."),s(e)},t.asciiDecode=function(e){for(const t of e)console.assert(i.isASCIIByte(t),"asciiDecode requires an ASCII byte sequence.");return o.isomorphicDecode(e)},t.stripNewlines=function(e){return e.replace(/[\n\r]/g,"")},t.normalizeNewlines=function(e){return e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")},t.stripLeadingAndTrailingASCIIWhitespace=f,t.stripAndCollapseASCIIWhitespace=function(e){return f(e.replace(/[\t\n\f\r ]{2,}/g," "))},t.collectASequenceOfCodePoints=d,t.skipASCIIWhitespace=p,t.strictlySplit=function e(t,n){if(!a.isArray(t))return e(Array.from(t),n);const r={position:0},o=[];let i=d(e=>n!==e,t,r);for(o.push(i);r.position<t.length;)console.assert(t[r.position]===n,"strictlySplit found no delimiter in input string."),r.position++,i=d(e=>n!==e,t,r),o.push(i);return o},t.splitAStringOnASCIIWhitespace=function e(t){if(!a.isArray(t))return e(Array.from(t));const n={position:0},o=[];for(p(t,n);n.position<t.length;){const e=d(e=>!r.ASCIIWhiteSpace.test(e),t,n);o.push(e),p(t,n)}return o},t.splitAStringOnCommas=function e(t){if(!a.isArray(t))return e(Array.from(t));const n={position:0},r=[];for(;n.position<t.length;){const e=d(e=>","!==e,t,n);r.push(f(e)),n.position<t.length&&(console.assert(","===t[n.position],"splitAStringOnCommas found no delimiter in input string."),n.position++)}return r},t.concatenate=function(e,t=""){return 0===e.length?"":e.join(t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(203);t.abort_add=function(e,t){t._abortedFlag||t._abortAlgorithms.add(e)},t.abort_remove=function(e,t){t._abortAlgorithms.delete(e)},t.abort_signalAbort=function(e){if(!e._abortedFlag){e._abortedFlag=!0;for(const t of e._abortAlgorithms)t.call(e);e._abortAlgorithms.clear(),r.event_fireAnEvent("abort",e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(881);t.ObjectCache=r.ObjectCache;var o=n(882);t.CompareCache=o.CompareCache;var i=n(883);function*a(e){if(f(e))yield*e;else for(const t in e)e.hasOwnProperty(t)&&(yield[t,e[t]])}function c(e){if(s(e))return e;if(u(e)){const t=[];for(const n of e)t.push(c(n));return t}if(l(e)){const t={};for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];t[n]=c(r)}return t}return e}function s(e){return!!e&&"[object Function]"===Object.prototype.toString.call(e)}function l(e){const t=typeof e;return!!e&&("function"===t||"object"===t)}function u(e){return Array.isArray(e)}function f(e){return e instanceof Map}t.StringWalker=i.StringWalker,t.applyMixin=function(e,t,...n){Object.getOwnPropertyNames(t.prototype).forEach(r=>{if(n.includes(r)){const t=Object.getOwnPropertyDescriptor(e.prototype,r);t&&Object.defineProperty(e.prototype,"_"+r,t)}const o=Object.getOwnPropertyDescriptor(t.prototype,r);o&&Object.defineProperty(e.prototype,r,o)})},t.applyDefaults=function e(t,n,r=!1){const o=c(t||{});for(const[t,i]of a(n))l(i)?o[t]=e(o[t],i):(r||void 0===o[t])&&(o[t]=i);return o},t.forEachArray=function*(e){yield*e},t.forEachObject=a,t.objectLength=function(e){return f(e)?e.size:Object.keys(e).length},t.getObjectValue=function(e,t){return f(e)?e.get(t):e[t]},t.removeObjectValue=function(e,t){f(e)?e.delete(t):delete e[t]},t.clone=c,t.isBoolean=function(e){return"boolean"==typeof e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isFunction=s,t.isObject=l,t.isArray=u,t.isMap=f,t.isEmpty=function(e){if(u(e))return!e.length;if(l(e)){for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},t.isPlainObject=function(e){if(l(e)){const t=Object.getPrototypeOf(e),n=t.constructor;return t&&n&&"function"==typeof n&&n instanceof n&&Function.prototype.toString.call(n)===Function.prototype.toString.call(Object)}return!1},t.isIterable=function(e){return e&&"function"==typeof e[Symbol.iterator]},t.getValue=function(e){return s(e.valueOf)?e.valueOf():e},t.utf8Encode=function(e){const t=new Uint8Array(4*e.length);let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);if(o<128)t[n++]=o;else{if(o<2048)t[n++]=o>>6|192;else{if(o>55295&&o<56320){if(++r>=e.length)throw new Error("Incomplete surrogate pair.");const i=e.charCodeAt(r);if(i<56320||i>57343)throw new Error("Invalid surrogate character.");o=65536+((1023&o)<<10)+(1023&i),t[n++]=o>>18|240,t[n++]=o>>12&63|128}else t[n++]=o>>12|224;t[n++]=o>>6&63|128}t[n++]=63&o|128}}return t.subarray(0,n)},t.utf8Decode=function(e){let t="",n=0;for(;n<e.length;){var r=e[n++];if(r>127)if(r>191&&r<224){if(n>=e.length)throw new Error("Incomplete 2-byte sequence.");r=(31&r)<<6|63&e[n++]}else if(r>223&&r<240){if(n+1>=e.length)throw new Error("Incomplete 3-byte sequence.");r=(15&r)<<12|(63&e[n++])<<6|63&e[n++]}else{if(!(r>239&&r<248))throw new Error("Unknown multi-byte start.");if(n+2>=e.length)throw new Error("Incomplete 4-byte sequence.");r=(7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++]}if(r<=65535)t+=String.fromCharCode(r);else{if(!(r<=1114111))throw new Error("Code point exceeds UTF-16 limit.");r-=65536,t+=String.fromCharCode(r>>10|55296),t+=String.fromCharCode(1023&r|56320)}}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e=1e3){this._items=new Set,this._limit=e}add(e){if(this._items.add(e),this._items.size>this._limit){const e=this._items.values().next();e.done||this._items.delete(e.value)}}remove(e){this._items.delete(e)}clear(){this._items.clear()}get length(){return this._items.size}*entries(){yield*this}*[Symbol.iterator](){yield*this._items}}t.ObjectCache=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CompareCache=class{constructor(e=1e3){this._items=new Map,this._limit=e}check(e,t){if(this._items.get(e)===t)return!0;if(this._items.get(t)===e)return!1;const n=Math.random()<.5;if(n?this._items.set(e,t):this._items.set(t,e),this._items.size>this._limit){const e=this._items.keys().next();e.done||this._items.delete(e.value)}return n}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.StringWalker=class{constructor(e){this._pointer=0,this._chars=Array.from(e),this._length=this._chars.length}get eof(){return this._pointer>=this._length}get length(){return this._length}codePoint(){if(void 0===this._codePoint)if(this.eof)this._codePoint=-1;else{const e=this._chars[this._pointer].codePointAt(0);this._codePoint=void 0!==e?e:-1}return this._codePoint}c(){return void 0===this._c&&(this._c=this.eof?"":this._chars[this._pointer]),this._c}remaining(){return void 0===this._remaining&&(this._remaining=this.eof?"":this._chars.slice(this._pointer+1).join("")),this._remaining}substring(){return void 0===this._substring&&(this._substring=this.eof?"":this._chars.slice(this._pointer).join("")),this._substring}get pointer(){return this._pointer}set pointer(e){e!==this._pointer&&(this._pointer=e,this._codePoint=void 0,this._c=void 0,this._remaining=void 0,this._substring=void 0)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.SchemeStart=0]="SchemeStart",e[e.Scheme=1]="Scheme",e[e.NoScheme=2]="NoScheme",e[e.SpecialRelativeOrAuthority=3]="SpecialRelativeOrAuthority",e[e.PathOrAuthority=4]="PathOrAuthority",e[e.Relative=5]="Relative",e[e.RelativeSlash=6]="RelativeSlash",e[e.SpecialAuthoritySlashes=7]="SpecialAuthoritySlashes",e[e.SpecialAuthorityIgnoreSlashes=8]="SpecialAuthorityIgnoreSlashes",e[e.Authority=9]="Authority",e[e.Host=10]="Host",e[e.Hostname=11]="Hostname",e[e.Port=12]="Port",e[e.File=13]="File",e[e.FileSlash=14]="FileSlash",e[e.FileHost=15]="FileHost",e[e.PathStart=16]="PathStart",e[e.Path=17]="Path",e[e.CannotBeABaseURLPath=18]="CannotBeABaseURLPath",e[e.Query=19]="Query",e[e.Fragment=20]="Fragment"}(t.ParserState||(t.ParserState={})),t.OpaqueOrigin=["","",null,null]},function(e,t,n){"use strict";var r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(886));t.base64=o;const i=r(n(450));t.byte=i;const a=r(n(451));t.byteSequence=a;const c=r(n(205));t.codePoint=c;const s=r(n(887));t.json=s;const l=r(n(891));t.list=l;const u=r(n(892));t.map=u;const f=r(n(893));t.namespace=f;const d=r(n(894));t.queue=d;const p=r(n(895));t.set=p;const h=r(n(896));t.stack=h;const m=r(n(897));t.string=m},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const r=n(205);t.forgivingBase64Encode=function(t){return e.from(t).toString("base64")},t.forgivingBase64Decode=function(t){return""===t?"":((t=t.replace(r.ASCIIWhiteSpace,"")).length%4==0&&(t.endsWith("==")?t=t.substr(0,t.length-2):t.endsWith("=")&&(t=t.substr(0,t.length-1))),t.length%4==1?null:/[0-9A-Za-z+/]/.test(t)?e.from(t,"base64").toString("utf8"):null)}}).call(this,n(443).Buffer)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(123),o=n(890);function i(e){if(null===e||r.isString(e)||r.isNumber(e))return e;if(r.isArray(e)){const t=new Array;for(const n of e)t.push(i(n));return t}if(r.isObject(e)){const t=new Map;for(const n in e)if(e.hasOwnProperty(n)){const r=e[n];t.set(n,i(r))}return t}return e}t.parseJSONFromBytes=function(e){const t=o.utf8Decode(e);return JSON.parse.call(void 0,t)},t.serializeJSONToBytes=function(e){const t=JSON.stringify.call(void 0,e);return o.utf8Encode(t)},t.parseJSONIntoInfraValues=function(e){return i(JSON.parse.call(void 0,e))},t.convertAJSONDerivedJavaScriptValueToAnInfraValue=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(e=1e3){this._items=new Set,this._limit=e}add(e){if(this._items.add(e),this._items.size>this._limit){const e=this._items.values().next();e.done||this._items.delete(e.value)}}remove(e){this._items.delete(e)}clear(){this._items.clear()}get length(){return this._items.size}*entries(){yield*this}*[Symbol.iterator](){for(const e of this._items)yield e}}t.ObjectCache=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CompareCache=class{constructor(e=1e3){this._items=new Map,this._limit=e}check(e,t){if(this._items.get(e)===t)return!0;if(this._items.get(t)===e)return!1;const n=Math.random()<.5;if(n?this._items.set(e,t):this._items.set(t,e),this._items.size>this._limit){const e=this._items.keys().next();e.done||this._items.delete(e.value)}return n}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utf8Encode=function(e){const t=new Uint8Array(4*e.length);let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);if(o<128)t[n++]=o;else{if(o<2048)t[n++]=o>>6|192;else{if(o>55295&&o<56320){if(++r>=e.length)throw new Error("Incomplete surrogate pair.");const i=e.charCodeAt(r);if(i<56320||i>57343)throw new Error("Invalid surrogate character.");o=65536+((1023&o)<<10)+(1023&i),t[n++]=o>>18|240,t[n++]=o>>12&63|128}else t[n++]=o>>12|224;t[n++]=o>>6&63|128}t[n++]=63&o|128}}return t.subarray(0,n)},t.utf8Decode=function(e){let t="",n=0;for(;n<e.length;){var r=e[n++];if(r>127)if(r>191&&r<224){if(n>=e.length)throw new Error("Incomplete 2-byte sequence.");r=(31&r)<<6|63&e[n++]}else if(r>223&&r<240){if(n+1>=e.length)throw new Error("Incomplete 3-byte sequence.");r=(15&r)<<12|(63&e[n++])<<6|63&e[n++]}else{if(!(r>239&&r<248))throw new Error("Unknown multi-byte start.");if(n+2>=e.length)throw new Error("Incomplete 4-byte sequence.");r=(7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++]}if(r<=65535)t+=String.fromCharCode(r);else{if(!(r<=1114111))throw new Error("Code point exceeds UTF-16 limit.");r-=65536,t+=String.fromCharCode(r>>10|55296),t+=String.fromCharCode(1023&r|56320)}}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(123);t.append=function(e,t){e.push(t)},t.extend=function(e,t){e.push(...t)},t.prepend=function(e,t){e.unshift(t)},t.replace=function(e,t,n){let o=0;for(const i of e){if(r.isFunction(t))t.call(null,i)&&(e[o]=n);else if(i===t)return void(e[o]=n);o++}},t.insert=function(e,t,n){e.splice(n,0,t)},t.remove=function(e,t){let n=e.length;for(;n--;){const o=e[n];if(r.isFunction(t))t.call(null,o)&&e.splice(n,1);else if(o===t)return void e.splice(n,1)}},t.empty=function(e){e.length=0},t.contains=function(e,t){for(const n of e)if(r.isFunction(t)){if(t.call(null,n))return!0}else if(n===t)return!0;return!1},t.size=function(e,t){if(void 0===t)return e.length;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.length},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Array(...e)},t.sortInAscendingOrder=function(e,t){return e.sort((e,n)=>t.call(null,e,n)?-1:1)},t.sortInDescendingOrder=function(e,t){return e.sort((e,n)=>t.call(null,e,n)?1:-1)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(123);t.get=function(e,t){return e.get(t)},t.set=function(e,t,n){e.set(t,n)},t.remove=function(e,t){if(r.isFunction(t)){const n=[];for(const r of e)t.call(null,r)&&n.push(r[0]);for(const t of n)e.delete(t)}else e.delete(t)},t.contains=function(e,t){if(r.isFunction(t)){for(const n of e)if(t.call(null,n))return!0;return!1}return e.has(t)},t.keys=function(e){return new Set(e.keys())},t.values=function(e){return[...e.values()]},t.size=function(e,t){if(void 0===t)return e.size;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.size},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Map(e)},t.sortInAscendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?-1:1),new Map(n)},t.sortInDescendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?1:-1),new Map(n)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTML="http://www.w3.org/1999/xhtml",t.XML="http://www.w3.org/XML/1998/namespace",t.XMLNS="http://www.w3.org/2000/xmlns/",t.MathML="http://www.w3.org/1998/Math/MathML",t.SVG="http://www.w3.org/2000/svg",t.XLink="http://www.w3.org/1999/xlink"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.enqueue=function(e,t){e.push(t)},t.dequeue=function(e){return e.shift()||null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(123);function o(e,t){for(const n of e)if(!t.has(n))return!1;return!0}t.append=function(e,t){e.add(t)},t.extend=function(e,t){t.forEach(e.add,e)},t.prepend=function(e,t){const n=new Set(e);e.clear(),e.add(t),n.forEach(e.add,e)},t.replace=function(e,t,n){const o=new Set;for(const i of e)r.isFunction(t)?t.call(null,i)?o.add(n):o.add(i):i===t?o.add(n):o.add(i);e.clear(),o.forEach(e.add,e)},t.insert=function(e,t,n){const r=new Set;let o=0;for(const i of e)o===n&&r.add(t),r.add(i),o++;e.clear(),r.forEach(e.add,e)},t.remove=function(e,t){if(r.isFunction(t)){const n=[];for(const r of e)t.call(null,r)&&n.push(r);for(const t of n)e.delete(t)}else e.delete(t)},t.empty=function(e){e.clear()},t.contains=function(e,t){if(!r.isFunction(t))return e.has(t);for(const n of e)if(t.call(null,n))return!0;return!1},t.size=function(e,t){if(void 0===t)return e.size;{let n=0;for(const r of e)t.call(null,r)&&n++;return n}},t.isEmpty=function(e){return 0===e.size},t.forEach=function*(e,t){if(void 0===t)yield*e;else for(const n of e)t.call(null,n)&&(yield n)},t.clone=function(e){return new Set(e)},t.sortInAscendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?-1:1),new Set(n)},t.sortInDescendingOrder=function(e,t){const n=new Array(...e);return n.sort((e,n)=>t.call(null,e,n)?1:-1),new Set(n)},t.isSubsetOf=o,t.isSupersetOf=function(e,t){return o(t,e)},t.intersection=function(e,t){const n=new Set;for(const r of e)t.has(r)&&n.add(r);return n},t.union=function(e,t){const n=new Set(e);return t.forEach(n.add,n),n},t.range=function(e,t){const n=new Set;for(let r=e;r<=t;r++)n.add(r);return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.push=function(e,t){e.push(t)},t.pop=function(e){return e.pop()||null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(205),o=n(451),i=n(450),a=n(123);function c(e,t){let n=0;for(;;){const r=n<e.length?e.charCodeAt(n):null,o=n<t.length?t.charCodeAt(n):null;if(null===r)return!0;if(r!==o)return!1;n++}}function s(e){const t=Array.from(e),n=new Uint8Array(t.length);let r=0;for(const t of e){const e=t.codePointAt(0);console.assert(void 0!==e&&e<=255,"isomorphicEncode requires string bytes to be less than or equal to 0x00FF."),void 0!==e&&e<=255&&(n[r++]=e)}return n}function l(e){return/^[\u0000-\u007F]*$/.test(e)}function u(e){let t="";for(const n of e){const e=n.codePointAt(0);t+=void 0!==e&&e>=65&&e<=90?String.fromCodePoint(e+32):n}return t}function f(e){return e.replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,"")}function d(e,t,n){if(!a.isArray(t))return d(e,Array.from(t),n);let r="";for(;n.position<t.length&&e.call(null,t[n.position]);)r+=t[n.position],n.position++;return r}function p(e,t){d(e=>r.ASCIIWhiteSpace.test(e),e,t)}t.isCodeUnitPrefix=c,t.isCodeUnitLessThan=function(e,t){if(c(t,e))return!1;if(c(e,t))return!0;for(let n=0;n<Math.min(e.length,t.length);n++){const r=e.charCodeAt(n),o=t.charCodeAt(n);if(r!==o)return r<o}return!1},t.isomorphicEncode=s,t.isASCIIString=l,t.asciiLowercase=u,t.asciiUppercase=function(e){let t="";for(const n of e){const e=n.codePointAt(0);t+=void 0!==e&&e>=97&&e<=122?String.fromCodePoint(e-32):n}return t},t.asciiCaseInsensitiveMatch=function(e,t){return u(e)===u(t)},t.asciiEncode=function(e){return console.assert(l(e),"asciiEncode requires an ASCII string."),s(e)},t.asciiDecode=function(e){for(const t of e)console.assert(i.isASCIIByte(t),"asciiDecode requires an ASCII byte sequence.");return o.isomorphicDecode(e)},t.stripNewlines=function(e){return e.replace(/[\n\r]/g,"")},t.normalizeNewlines=function(e){return e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")},t.stripLeadingAndTrailingASCIIWhitespace=f,t.stripAndCollapseASCIIWhitespace=function(e){return f(e.replace(/[\t\n\f\r ]{2,}/g," "))},t.collectASequenceOfCodePoints=d,t.skipASCIIWhitespace=p,t.strictlySplit=function e(t,n){if(!a.isArray(t))return e(Array.from(t),n);const r={position:0},o=[];let i=d(e=>n!==e,t,r);for(o.push(i);r.position<t.length;)console.assert(t[r.position]===n,"strictlySplit found no delimiter in input string."),r.position++,i=d(e=>n!==e,t,r),o.push(i);return o},t.splitAStringOnASCIIWhitespace=function e(t){if(!a.isArray(t))return e(Array.from(t));const n={position:0},o=[];for(p(t,n);n.position<t.length;){const e=d(e=>!r.ASCIIWhiteSpace.test(e),t,n);o.push(e),p(t,n)}return o},t.splitAStringOnCommas=function e(t){if(!a.isArray(t))return e(Array.from(t));const n={position:0},r=[];for(;n.position<t.length;){const e=d(e=>","!==e,t,n);r.push(f(e)),n.position<t.length&&(console.assert(","===t[n.position],"splitAStringOnCommas found no delimiter in input string."),n.position++)}return r},t.concatenate=function(e,t=""){return 0===e.length?"":e.join(t)}},function(e,t,n){"use strict";var r=n(899),o=n(900);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=g,t.resolve=function(e,t){return g(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?g(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=g(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),f=["%","/","?",";","#"].concat(u),d=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},_=n(901);function g(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),c=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(c);l[0]=l[0].replace(/\\/g,"/");var g=e=l.join(c);if(g=g.trim(),!n&&1===e.split("#").length){var b=s.exec(g);if(b)return this.path=g,this.href=g,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?_.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var M=a.exec(g);if(M){var w=(M=M[0]).toLowerCase();this.protocol=w,g=g.substr(M.length)}if(n||M||g.match(/^\/\/[^@\/]+@[^@\/]+/)){var O="//"===g.substr(0,2);!O||M&&v[M]||(g=g.substr(2),this.slashes=!0)}if(!v[M]&&(O||M&&!y[M])){for(var S,C,x=-1,k=0;k<d.length;k++){-1!==(L=g.indexOf(d[k]))&&(-1===x||L<x)&&(x=L)}-1!==(C=-1===x?g.lastIndexOf("@"):g.lastIndexOf("@",x))&&(S=g.slice(0,C),g=g.slice(C+1),this.auth=decodeURIComponent(S)),x=-1;for(k=0;k<f.length;k++){var L;-1!==(L=g.indexOf(f[k]))&&(-1===x||L<x)&&(x=L)}-1===x&&(x=g.length),this.host=g.slice(0,x),g=g.slice(x),this.parseHost(),this.hostname=this.hostname||"";var E="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!E)for(var T=this.hostname.split(/\./),P=(k=0,T.length);k<P;k++){var j=T[k];if(j&&!j.match(p)){for(var z="",D=0,N=j.length;D<N;D++)j.charCodeAt(D)>127?z+="x":z+=j[D];if(!z.match(p)){var H=T.slice(0,k),A=T.slice(k+1),Y=j.match(h);Y&&(H.push(Y[1]),A.unshift(Y[2])),A.length&&(g="/"+A.join(".")+g),this.hostname=H.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),E||(this.hostname=r.toASCII(this.hostname));var I=this.port?":"+this.port:"",V=this.hostname||"";this.host=V+I,this.href+=this.host,E&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==g[0]&&(g="/"+g))}if(!m[w])for(k=0,P=u.length;k<P;k++){var F=u[k];if(-1!==g.indexOf(F)){var R=encodeURIComponent(F);R===F&&(R=escape(F)),g=g.split(F).join(R)}}var W=g.indexOf("#");-1!==W&&(this.hash=g.substr(W),g=g.slice(0,W));var U=g.indexOf("?");if(-1!==U?(this.search=g.substr(U),this.query=g.substr(U+1),t&&(this.query=_.parse(this.query)),g=g.slice(0,U)):t&&(this.search="",this.query={}),g&&(this.pathname=g),y[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){I=this.pathname||"";var B=this.search||"";this.path=I+B}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,a="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(a=_.stringify(this.query));var c=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||y[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),c&&"?"!==c.charAt(0)&&(c="?"+c),t+i+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(c=c.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(g(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(o.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),a=0;a<r.length;a++){var c=r[a];n[c]=this[c]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var u=s[l];"protocol"!==u&&(n[u]=e[u])}return y[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!y[e.protocol]){for(var f=Object.keys(e),d=0;d<f.length;d++){var p=f[d];n[p]=e[p]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),n.pathname=h.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",_=n.search||"";n.path=m+_}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var g=n.pathname&&"/"===n.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),M=b||g||n.host&&e.pathname,w=M,O=n.pathname&&n.pathname.split("/")||[],S=(h=e.pathname&&e.pathname.split("/")||[],n.protocol&&!y[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===O[0]?O[0]=n.host:O.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),M=M&&(""===h[0]||""===O[0])),b)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,O=h;else if(h.length)O||(O=[]),O.pop(),O=O.concat(h),n.search=e.search,n.query=e.query;else if(!o.isNullOrUndefined(e.search)){if(S)n.hostname=n.host=O.shift(),(E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!O.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=O.slice(-1)[0],x=(n.host||e.host||O.length>1)&&("."===C||".."===C)||""===C,k=0,L=O.length;L>=0;L--)"."===(C=O[L])?O.splice(L,1):".."===C?(O.splice(L,1),k++):k&&(O.splice(L,1),k--);if(!M&&!w)for(;k--;k)O.unshift("..");!M||""===O[0]||O[0]&&"/"===O[0].charAt(0)||O.unshift(""),x&&"/"!==O.join("/").substr(-1)&&O.push("");var E,T=""===O[0]||O[0]&&"/"===O[0].charAt(0);S&&(n.hostname=n.host=T?"":O.length?O.shift():"",(E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=E.shift(),n.host=n.hostname=E.shift()));return(M=M||n.host&&O.length)&&!T&&O.unshift(""),O.length?n.pathname=O.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=c.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){(function(e,r){var o;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(i){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof r&&r;a.global!==a&&a.window!==a&&a.self;var c,s=2147483647,l=/^xn--/,u=/[^\x20-\x7E]/,f=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,h=String.fromCharCode;function m(e){throw new RangeError(d[e])}function v(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function y(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+v((e=e.replace(f,".")).split("."),t).join(".")}function _(e){for(var t,n,r=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(n=e.charCodeAt(o++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--):r.push(t);return r}function g(e){return v(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function b(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function M(e,t,n){var r=0;for(e=n?p(e/700):e>>1,e+=p(e/t);e>455;r+=36)e=p(e/35);return p(r+36*e/(e+38))}function w(e){var t,n,r,o,i,a,c,l,u,f,d,h=[],v=e.length,y=0,_=128,b=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&m("not-basic"),h.push(e.charCodeAt(r));for(o=n>0?n+1:0;o<v;){for(i=y,a=1,c=36;o>=v&&m("invalid-input"),((l=(d=e.charCodeAt(o++))-48<10?d-22:d-65<26?d-65:d-97<26?d-97:36)>=36||l>p((s-y)/a))&&m("overflow"),y+=l*a,!(l<(u=c<=b?1:c>=b+26?26:c-b));c+=36)a>p(s/(f=36-u))&&m("overflow"),a*=f;b=M(y-i,t=h.length+1,0==i),p(y/t)>s-_&&m("overflow"),_+=p(y/t),y%=t,h.splice(y++,0,_)}return g(h)}function O(e){var t,n,r,o,i,a,c,l,u,f,d,v,y,g,w,O=[];for(v=(e=_(e)).length,t=128,n=0,i=72,a=0;a<v;++a)(d=e[a])<128&&O.push(h(d));for(r=o=O.length,o&&O.push("-");r<v;){for(c=s,a=0;a<v;++a)(d=e[a])>=t&&d<c&&(c=d);for(c-t>p((s-n)/(y=r+1))&&m("overflow"),n+=(c-t)*y,t=c,a=0;a<v;++a)if((d=e[a])<t&&++n>s&&m("overflow"),d==t){for(l=n,u=36;!(l<(f=u<=i?1:u>=i+26?26:u-i));u+=36)w=l-f,g=36-f,O.push(h(b(f+w%g,0))),l=p(w/g);O.push(h(b(l,0))),i=M(n,y,r==o),n=0,++r}++n,++t}return O.join("")}c={version:"1.4.1",ucs2:{decode:_,encode:g},decode:w,encode:O,toASCII:function(e){return y(e,(function(e){return u.test(e)?"xn--"+O(e):e}))},toUnicode:function(e){return y(e,(function(e){return l.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(o=function(){return c}.call(t,n,t,e))||(e.exports=o)}()}).call(this,n(136)(e),n(61))},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(902),t.encode=t.stringify=n(903)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,i){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var c=/\+/g;e=e.split(t);var s=1e3;i&&"number"==typeof i.maxKeys&&(s=i.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var u=0;u<l;++u){var f,d,p,h,m=e[u].replace(c,"%20"),v=m.indexOf(n);v>=0?(f=m.substr(0,v),d=m.substr(v+1)):(f=m,d=""),p=decodeURIComponent(f),h=decodeURIComponent(d),r(a,p)?o(a[p])?a[p].push(h):a[p]=[a[p],h]:a[p]=h}return a};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,c){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?i(a(e),(function(a){var c=encodeURIComponent(r(a))+n;return o(e[a])?i(e[a],(function(e){return c+encodeURIComponent(r(e))})).join(t):c+encodeURIComponent(r(e[a]))})).join(t):c?encodeURIComponent(r(c))+n+encodeURIComponent(r(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function i(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var a=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(26),o=n(20);t.ChildNodeImpl=class{before(...e){const t=r.Cast.asNode(this),n=t._parent;if(null===n)return;let i=t._previousSibling,a=!0;for(;a&&i;){a=!1;for(let t=0;t<e.length;t++){if(e[t]===i){i=i._previousSibling,a=!0;break}}}const c=o.parentNode_convertNodesIntoANode(e,t._nodeDocument);i=null===i?n._firstChild:i._nextSibling,o.mutation_preInsert(c,n,i)}after(...e){const t=r.Cast.asNode(this),n=t._parent;if(!n)return;let i=t._nextSibling,a=!0;for(;a&&i;){a=!1;for(let t=0;t<e.length;t++){if(e[t]===i){i=i._nextSibling,a=!0;break}}}const c=o.parentNode_convertNodesIntoANode(e,t._nodeDocument);o.mutation_preInsert(c,n,i)}replaceWith(...e){const t=r.Cast.asNode(this),n=t._parent;if(!n)return;let i=t._nextSibling,a=!0;for(;a&&i;){a=!1;for(let t=0;t<e.length;t++){if(e[t]===i){i=i._nextSibling,a=!0;break}}}const c=o.parentNode_convertNodesIntoANode(e,t._nodeDocument);t._parent===n?o.mutation_replace(t,c,n):o.mutation_preInsert(c,n,i)}remove(){const e=r.Cast.asNode(this),t=e._parent;t&&o.mutation_remove(e,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.DocumentOrShadowRootImpl=class{}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(20);class i{constructor(){this._features={mutationObservers:!0,customElements:!0,slots:!0,steps:!0},this._window=null,this._compareCache=new r.CompareCache,this._rangeList=new r.FixedSizeSet}setFeatures(e){if(void 0===e&&(e=!0),r.isObject(e))for(const t in e)this._features[t]=e[t]||!1;else for(const t in this._features)this._features[t]=e}get features(){return this._features}get window(){return null===this._window&&(this._window=o.create_window()),this._window}get compareCache(){return this._compareCache}get rangeList(){return this._rangeList}static get instance(){return i._instance||(i._instance=new i),i._instance}}t.dom=i.instance},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(39),o=n(26),i=n(46);t.MutationObserverImpl=class{constructor(e){this._nodeList=[],this._recordQueue=[],this._callback=e;const t=r.dom.window;i.set.append(t._mutationObservers,this)}observe(e,t){if(void 0===(t=t||{childList:!1,subtree:!1}).attributeOldValue&&void 0===t.attributeFilter||void 0!==t.attributes||(t.attributes=!0),void 0!==t.characterDataOldValue&&void 0===t.characterData&&(t.characterData=!0),!t.childList&&!t.attributes&&!t.characterData)throw new TypeError;if(t.attributeOldValue&&!t.attributes)throw new TypeError;if(void 0!==t.attributeFilter&&!t.attributes)throw new TypeError;if(t.characterDataOldValue&&!t.characterData)throw new TypeError;let n=!1;const r=t;for(const t of e._registeredObserverList)if(t.observer===this){n=!0;for(const e of this._nodeList)i.list.remove(e._registeredObserverList,e=>o.Guard.isTransientRegisteredObserver(e)&&e.source===t);t.options=r}n||(e._registeredObserverList.push({observer:this,options:t}),this._nodeList.push(e))}disconnect(){for(const e of this._nodeList)i.list.remove(e._registeredObserverList,e=>e.observer===this);this._recordQueue=[]}takeRecords(){const e=this._recordQueue;return this._recordQueue=[],e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(26);t.NonDocumentTypeChildNodeImpl=class{get previousElementSibling(){let e=r.Cast.asNode(this)._previousSibling;for(;e;){if(r.Guard.isElementNode(e))return e;e=e._previousSibling}return null}get nextElementSibling(){let e=r.Cast.asNode(this)._nextSibling;for(;e;){if(r.Guard.isElementNode(e))return e;e=e._nextSibling}return null}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(26),o=n(20);t.NonElementParentNodeImpl=class{getElementById(e){let t=o.tree_getFirstDescendantNode(r.Cast.asNode(this),!1,!1,e=>r.Guard.isElementNode(e));for(;null!==t;){if(t._uniqueIdentifier===e)return t;t=o.tree_getNextDescendantNode(r.Cast.asNode(this),t,!1,!1,e=>r.Guard.isElementNode(e))}return null}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(26),o=n(20);t.ParentNodeImpl=class{get children(){return o.create_htmlCollection(r.Cast.asNode(this))}get firstElementChild(){let e=r.Cast.asNode(this)._firstChild;for(;e;){if(r.Guard.isElementNode(e))return e;e=e._nextSibling}return null}get lastElementChild(){let e=r.Cast.asNode(this)._lastChild;for(;e;){if(r.Guard.isElementNode(e))return e;e=e._previousSibling}return null}get childElementCount(){let e=0;for(const t of r.Cast.asNode(this)._children)r.Guard.isElementNode(t)&&e++;return e}prepend(...e){const t=r.Cast.asNode(this),n=o.parentNode_convertNodesIntoANode(e,t._nodeDocument);o.mutation_preInsert(n,t,t._firstChild)}append(...e){const t=r.Cast.asNode(this),n=o.parentNode_convertNodesIntoANode(e,t._nodeDocument);o.mutation_append(n,t)}querySelector(e){const t=r.Cast.asNode(this),n=o.selectors_scopeMatchASelectorsString(e,t);return 0===n.length?null:n[0]}querySelectorAll(e){const t=r.Cast.asNode(this),n=o.selectors_scopeMatchASelectorsString(e,t);return o.create_nodeListStatic(t,n)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(20);t.SlotableImpl=class{get _name(){return this.__name||""}set _name(e){this.__name=e}get _assignedSlot(){return this.__assignedSlot||null}set _assignedSlot(e){this.__assignedSlot=e}get assignedSlot(){return r.shadowTree_findASlot(this,!0)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(204),o=n(41),i=n(26);class a extends r.AbstractRangeImpl{constructor(e){if(super(),i.Guard.isDocumentTypeNode(e.startContainer)||i.Guard.isAttrNode(e.startContainer)||i.Guard.isDocumentTypeNode(e.endContainer)||i.Guard.isAttrNode(e.endContainer))throw new o.InvalidNodeTypeError;this._start=[e.startContainer,e.startOffset],this._end=[e.endContainer,e.endOffset]}}t.StaticRangeImpl=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(125);t.attr_setAnExistingAttributeValue=function(e,t){null===e._element?e._value=t:r.element_change(e,e._element,t)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(215),o=n(89),i=n(125);t.tokenList_validationSteps=function(e,t){if(!o.dom_hasSupportedTokens(e._attribute._localName))throw new TypeError(`There are no supported tokens defined for attribute name: '${e._attribute._localName}'.`);return o.dom_getSupportedTokens(e._attribute._localName).has(t.toLowerCase())},t.tokenList_updateSteps=function(e){(e._element.hasAttribute(e._attribute._localName)||0!==e._tokenSet.size)&&i.element_setAnAttributeValue(e._element,e._attribute._localName,r.orderedSet_serialize(e._tokenSet))},t.tokenList_serializeSteps=function(e){return i.element_getAnAttributeValue(e._element,e._attribute._localName)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34);function o(e){return r.isBoolean(e)?e:e.capture||!1}t.eventTarget_flatten=o,t.eventTarget_flattenMore=function(e){const t=o(e);let n=!1,i=!1;return r.isBoolean(e)||(n=e.once||!1,i=e.passive||!1),[t,i,n]},t.eventTarget_addEventListener=function(e,t){if(null!==t.callback){for(let n=0;n<e._eventListenerList.length;n++){const r=e._eventListenerList[n];if(r.type===t.type&&r.callback===t.callback&&r.capture===t.capture)return}e._eventListenerList.push(t)}},t.eventTarget_removeEventListener=function(e,t,n=-1){if(t.removed=!0,-1===n)for(let r=0;r<e._eventListenerList.length;r++){const o=e._eventListenerList[r];if(o.type===t.type&&o.callback===t.callback&&o.capture===t.capture){n=r;break}}-1!==n&&e._eventListenerList.splice(n,1)},t.eventTarget_removeAllEventListeners=function(e){for(const t of e._eventListenerList)t.removed=!0;e._eventListenerList=[]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(97);t.parentNode_convertNodesIntoANode=function(e,t){let n=null;for(let n=0;n<e.length;n++){const i=e[n];if(r.isString(i)){const r=o.create_text(t,i);e[n]=r}}if(1===e.length)n=e[0];else{n=o.create_documentFragment(t);const r=n;for(const t of e)r.appendChild(t)}return n}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(41),i=n(26),a=n(97),c=n(52),s=n(474),l=n(214),u=n(475),f=n(108),d=n(476);function p(e){return e._startNode===e._endNode&&e._startOffset===e._endOffset}function h(e){return c.tree_rootNode(e._startNode)}function m(e,t){return c.tree_rootNode(e)===h(t)&&s.boundaryPoint_position([e,0],t._start)===r.BoundaryPosition.After&&s.boundaryPoint_position([e,c.tree_nodeLength(e)],t._end)===r.BoundaryPosition.Before}function v(e,t){const n=c.tree_isAncestorOf(t._startNode,e,!0),r=c.tree_isAncestorOf(t._endNode,e,!0);return n&&!r||!n&&r}function y(e){const t=a.create_documentFragment(e._startNode._nodeDocument);if(p(e))return t;const n=e._startNode,r=e._startOffset,s=e._endNode,d=e._endOffset;if(n===s&&i.Guard.isCharacterDataNode(n)){const e=u.node_clone(n);return e._data=l.characterData_substringData(n,r,d-r),f.mutation_append(e,t),l.characterData_replaceData(n,r,d-r,""),t}let h=n;for(;!c.tree_isAncestorOf(s,h,!0);){if(null===h._parent)throw new Error("Parent node is null.");h=h._parent}let _=null;if(!c.tree_isAncestorOf(s,n,!0))for(const t of h._children)if(v(t,e)){_=t;break}let g=null;if(!c.tree_isAncestorOf(n,s,!0)){const t=[...h._children];for(let n=t.length-1;n>0;n--){const r=t[n];if(v(r,e)){g=r;break}}}const b=[];for(const t of h._children)if(m(t,e)){if(i.Guard.isDocumentTypeNode(t))throw new o.HierarchyRequestError;b.push(t)}let M,w;if(c.tree_isAncestorOf(s,n,!0))M=n,w=r;else{let e=n;for(;null!==e._parent&&!c.tree_isAncestorOf(s,e._parent);)e=e._parent;if(null===e._parent)throw new Error("Parent node is null.");M=e._parent,w=1+c.tree_index(e)}if(i.Guard.isCharacterDataNode(_)){const e=u.node_clone(n);e._data=l.characterData_substringData(n,r,c.tree_nodeLength(n)-r),f.mutation_append(e,t),l.characterData_replaceData(n,r,c.tree_nodeLength(n)-r,"")}else if(null!==_){const e=u.node_clone(_);f.mutation_append(e,t);const o=y(a.create_range([n,r],[_,c.tree_nodeLength(_)]));f.mutation_append(o,e)}for(const e of b)f.mutation_append(e,t);if(i.Guard.isCharacterDataNode(g)){const e=u.node_clone(s);e._data=l.characterData_substringData(s,0,d),f.mutation_append(e,t),l.characterData_replaceData(s,0,d,"")}else if(null!==g){const e=u.node_clone(g);f.mutation_append(e,t);const n=y(a.create_range([g,0],[s,d]));f.mutation_append(n,e)}return e._start=[M,w],e._end=[M,w],t}t.range_collapsed=p,t.range_root=h,t.range_isContained=m,t.range_isPartiallyContained=v,t.range_setTheStart=function(e,t,n){if(i.Guard.isDocumentTypeNode(t))throw new o.InvalidNodeTypeError;if(n>c.tree_nodeLength(t))throw new o.IndexSizeError;const a=[t,n];h(e)===c.tree_rootNode(t)&&s.boundaryPoint_position(a,e._end)!==r.BoundaryPosition.After||(e._end=a),e._start=a},t.range_setTheEnd=function(e,t,n){if(i.Guard.isDocumentTypeNode(t))throw new o.InvalidNodeTypeError;if(n>c.tree_nodeLength(t))throw new o.IndexSizeError;const a=[t,n];h(e)===c.tree_rootNode(t)&&s.boundaryPoint_position(a,e._start)!==r.BoundaryPosition.Before||(e._start=a),e._end=a},t.range_select=function(e,t){const n=e._parent;if(null===n)throw new o.InvalidNodeTypeError;const r=c.tree_index(e);t._start=[n,r],t._end=[n,r+1]},t.range_extract=y,t.range_cloneTheContents=function e(t){const n=a.create_documentFragment(t._startNode._nodeDocument);if(p(t))return n;const r=t._startNode,s=t._startOffset,d=t._endNode,h=t._endOffset;if(r===d&&i.Guard.isCharacterDataNode(r)){const e=u.node_clone(r);e._data=l.characterData_substringData(r,s,h-s),f.mutation_append(e,n)}let _=r;for(;!c.tree_isAncestorOf(d,_,!0);){if(null===_._parent)throw new Error("Parent node is null.");_=_._parent}let g=null;if(!c.tree_isAncestorOf(d,r,!0))for(const e of _._children)if(v(e,t)){g=e;break}let b=null;if(!c.tree_isAncestorOf(r,d,!0)){const e=[..._._children];for(let n=e.length-1;n>0;n--){const r=e[n];if(v(r,t)){b=r;break}}}const M=[];for(const e of _._children)if(m(e,t)){if(i.Guard.isDocumentTypeNode(e))throw new o.HierarchyRequestError;M.push(e)}if(i.Guard.isCharacterDataNode(g)){const e=u.node_clone(r);e._data=l.characterData_substringData(r,s,c.tree_nodeLength(r)-s),f.mutation_append(e,n)}else if(null!==g){const t=u.node_clone(g);f.mutation_append(t,n);const o=e(a.create_range([r,s],[g,c.tree_nodeLength(g)]));f.mutation_append(o,t)}for(const e of M){const t=u.node_clone(e);f.mutation_append(t,n)}if(i.Guard.isCharacterDataNode(b)){const e=u.node_clone(d);e._data=l.characterData_substringData(d,0,h),f.mutation_append(e,n)}else if(null!==b){const e=u.node_clone(b);n.append(e);const t=y(a.create_range([b,0],[d,h]));f.mutation_append(t,e)}return n},t.range_insert=function(e,t){if(i.Guard.isProcessingInstructionNode(t._startNode)||i.Guard.isCommentNode(t._startNode)||i.Guard.isTextNode(t._startNode)&&null===t._startNode._parent||t._startNode===e)throw new o.HierarchyRequestError;let n,r=null;if(i.Guard.isTextNode(t._startNode))r=t._startNode;else{let e=0;for(const n of t._startNode._children){if(e===t._startOffset){r=n;break}e++}}if(null===r)n=t._startNode;else{if(null===r._parent)throw new Error("Parent node is null.");n=r._parent}f.mutation_ensurePreInsertionValidity(e,n,r),i.Guard.isTextNode(t._startNode)&&(r=d.text_split(t._startNode,t._startOffset)),e===r&&(r=e._nextSibling),null!==e._parent&&f.mutation_remove(e,e._parent);let a=null===r?c.tree_nodeLength(n):c.tree_index(r);i.Guard.isDocumentFragmentNode(e)?a+=c.tree_nodeLength(e):a++,f.mutation_preInsert(e,n,r),p(t)&&(t._end=[n,a])},t.range_getContainedNodes=function(e){return{[Symbol.iterator]:()=>{const t=e.commonAncestorContainer;let n=c.tree_getFirstDescendantNode(t);return{next:()=>{for(;n&&!m(n,e);)n=c.tree_getNextDescendantNode(t,n);if(null===n)return{done:!0,value:null};{const e={done:!1,value:n};return n=c.tree_getNextDescendantNode(t,n),e}}}}}},t.range_getPartiallyContainedNodes=function(e){return{[Symbol.iterator]:()=>{const t=e.commonAncestorContainer;let n=c.tree_getFirstDescendantNode(t);return{next:()=>{for(;n&&!v(n,e);)n=c.tree_getNextDescendantNode(t,n);if(null===n)return{done:!0,value:null};{const e={done:!1,value:n};return n=c.tree_getNextDescendantNode(t,n),e}}}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(41);t.selectors_scopeMatchASelectorsString=function(e,t){throw new r.NotSupportedError}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(212);t.treeWalker_traverseChildren=function(e,t){let n=t?e._current._firstChild:e._current._lastChild;for(;null!==n;){const i=o.traversal_filter(e,n);if(i===r.FilterResult.Accept)return e._current=n,n;if(i===r.FilterResult.Skip){const e=t?n._firstChild:n._lastChild;if(null!==e){n=e;continue}}for(;null!==n;){const r=t?n._nextSibling:n._previousSibling;if(null!==r){n=r;break}const o=n._parent;if(null===o||o===e._root||o===e._current)return null;n=o}}return null},t.treeWalker_traverseSiblings=function(e,t){let n=e._current;if(n===e._root)return null;for(;;){let i=t?n._nextSibling:n._previousSibling;for(;null!==i;){n=i;const a=o.traversal_filter(e,n);if(a===r.FilterResult.Accept)return e._current=n,n;i=t?n._firstChild:n._lastChild,a!==r.FilterResult.Reject&&null!==i||(i=t?n._nextSibling:n._previousSibling)}if(n=n._parent,null===n||n===e._root)return null;if(o.traversal_filter(e,n)===r.FilterResult.Accept)return null}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(34),o=n(24),i=n(442),a=n(26);t.StringWriterImpl=class{constructor(e){this._indentation={},this._lengthToLastNewline=0,this._builderOptions=e}serialize(e,t){return this._options=r.applyDefaults(t,{wellFormed:!1,headless:!1,prettyPrint:!1,indent:" ",newline:"\n",offset:0,width:0,allowEmptyTags:!1,indentTextOnlyNodes:!1,spaceBeforeSlash:!1}),this._refs={suppressPretty:!1,emptyNode:!1,markup:""},this._pre=new i.PreSerializer,this._pre.setCallbacks({docType:this._docType.bind(this),openTagBegin:this._openTagBegin.bind(this),openTagEnd:this._openTagEnd.bind(this),closeTag:this._closeTag.bind(this),attribute:this._attribute.bind(this),comment:this._comment.bind(this),text:this._text.bind(this),instruction:this._instruction.bind(this),cdata:this._cdata.bind(this)}),e.nodeType!==o.NodeType.Document||this._options.headless||(this._beginLine(),this._refs.markup="<?xml",this._refs.markup+=' version="'+this._builderOptions.version+'"',void 0!==this._builderOptions.encoding&&(this._refs.markup+=' encoding="'+this._builderOptions.encoding+'"'),void 0!==this._builderOptions.standalone&&(this._refs.markup+=' standalone="'+(this._builderOptions.standalone?"yes":"no")+'"'),this._refs.markup+="?>",this._endLine()),this._pre.serialize(e,this._options.wellFormed),this._options.prettyPrint&&this._refs.markup.slice(-this._options.newline.length)===this._options.newline&&(this._refs.markup=this._refs.markup.slice(0,-this._options.newline.length)),this._refs.markup}_docType(e,t,n){this._beginLine(),this._refs.markup+=t&&n?"<!DOCTYPE "+e+' PUBLIC "'+t+'" "'+n+'">':t?"<!DOCTYPE "+e+' PUBLIC "'+t+'">':n?"<!DOCTYPE "+e+' SYSTEM "'+n+'">':"<!DOCTYPE "+e+">",this._endLine()}_openTagBegin(e){this._beginLine(),this._refs.markup+="<"+e}_openTagEnd(e,t,n){if(this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._options.prettyPrint&&!t&&!n&&!this._options.indentTextOnlyNodes){let e=!0,t=!0,n=this._pre.currentNode.firstChild,r=0,o=0;for(;n;){if(a.Guard.isExclusiveTextNode(n))o++;else{if(!a.Guard.isCDATASectionNode(n)){e=!1,t=!1;break}r++}""!==n.data&&(t=!1),n=n.nextSibling}this._refs.suppressPretty=e&&(r<=1&&0===o||0===r),this._refs.emptyNode=t}(n||t)&&this._options.allowEmptyTags?this._refs.markup+="></"+e+">":this._refs.markup+=n?" />":t||this._refs.emptyNode?this._options.spaceBeforeSlash?" />":"/>":">",this._endLine()}_closeTag(e){this._refs.emptyNode||(this._beginLine(),this._refs.markup+="</"+e+">"),this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._endLine()}_attribute(e,t){const n=e+'="'+t+'"';this._options.prettyPrint&&this._options.width>0&&this._refs.markup.length-this._lengthToLastNewline+1+n.length>this._options.width?(this._endLine(),this._beginLine(),this._refs.markup+=this._indent(1)+n):this._refs.markup+=" "+n}_text(e){""!==e&&(this._beginLine(),this._refs.markup+=e,this._endLine())}_cdata(e){""!==e&&(this._beginLine(),this._refs.markup+="<![CDATA["+e+"]]>",this._endLine())}_comment(e){this._beginLine(),this._refs.markup+="\x3c!--"+e+"--\x3e",this._endLine()}_instruction(e,t){this._beginLine(),this._refs.markup+="<?"+e+" "+t+"?>",this._endLine()}_beginLine(){this._options.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._indent(this._options.offset+this._pre.level))}_endLine(){this._options.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._options.newline,this._lengthToLastNewline=this._refs.markup.length)}_indent(e){if(e<=0)return"";if(void 0!==this._indentation[e])return this._indentation[e];{const t=this._options.indent.repeat(e);return this._indentation[e]=t,t}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(201),o=n(34);t.JSONWriterImpl=class{constructor(e){this._builderOptions=e}serialize(e,t){const n=o.applyDefaults(t,{wellFormed:!1,prettyPrint:!1,indent:" ",newline:"\n",offset:0}),i=o.applyDefaults(n,{format:"object"}),a=new r.ObjectWriterImpl(this._builderOptions).serialize(e,i);return this._beginLine(n,0)+this._convertObject(a,n)}_convertObject(e,t,n=0){let r="";const i=this._isLeafNode(e);if(o.isArray(e)){r+="[";const o=e.length;let i=0;for(const a of e)r+=this._endLine(t,n+1)+this._beginLine(t,n+1)+this._convertObject(a,t,n+1),i<o-1&&(r+=","),i++;r+=this._endLine(t,n)+this._beginLine(t,n),r+="]"}else if(o.isObject(e)){r+="{";const a=o.objectLength(e);let c=0;o.forEachObject(e,(e,o)=>{i&&t.prettyPrint?r+=" ":r+=this._endLine(t,n+1)+this._beginLine(t,n+1),r+='"'+e+'":',t.prettyPrint&&(r+=" "),r+=this._convertObject(o,t,n+1),c<a-1&&(r+=","),c++},this),i&&t.prettyPrint?r+=" ":r+=this._endLine(t,n)+this._beginLine(t,n),r+="}"}else r+='"'+e+'"';return r}_beginLine(e,t){if(!e.prettyPrint)return"";{const n=e.offset+t+1;if(n>0)return new Array(n).join(e.indent)}return""}_endLine(e,t){return e.prettyPrint?e.newline:""}_isLeafNode(e){return this._descendantCount(e)<=1}_descendantCount(e,t=0){return o.isArray(e)?o.forEachArray(e,e=>t+=this._descendantCount(e,t),this):o.isObject(e)?o.forEachObject(e,(e,n)=>t+=this._descendantCount(n,t),this):t++,t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(39).dom.setFeatures(!0);var r=n(39);t.DOMImplementation=r.DOMImplementation;var o=n(923);t.DOMParser=o.DOMParser;var i=n(927);t.XMLSerializer=i.XMLSerializer},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(924);t.DOMParser=r.DOMParserImpl},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(20),o=n(925);t.DOMParserImpl=class{parseFromString(e,t){if("text/html"===t)throw new Error("HTML parser not implemented.");try{const n=(new o.XMLParserImpl).parse(e);return n._contentType=t,n}catch(e){const t=r.create_xmlDocument(),n=t.createElementNS("http://www.mozilla.org/newlayout/xml/parsererror.xml","parsererror"),o=t.createElement("error");return o.setAttribute("message",e.message),n.appendChild(o),t.appendChild(n),t}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(926),o=n(478),i=n(46),a=n(20),c=n(479);t.XMLParserImpl=class{parse(e){const t=new r.XMLStringLexer(e,{skipWhitespaceOnlyText:!0}),n=a.create_document();let s=n,l=t.nextToken();for(;l.type!==o.TokenType.EOF;){switch(l.type){case o.TokenType.Declaration:const e=l;if("1.0"!==e.version)throw new Error("Invalid xml version: "+e.version);break;case o.TokenType.DocType:const t=l;if(!a.xml_isPubidChar(t.pubId))throw new Error("DocType public identifier does not match PubidChar construct.");if(!a.xml_isLegalChar(t.sysId)||-1!==t.sysId.indexOf('"')&&-1!==t.sysId.indexOf("'"))throw new Error("DocType system identifier contains invalid characters.");s.appendChild(n.implementation.createDocumentType(t.name,t.pubId,t.sysId));break;case o.TokenType.CDATA:const r=l;if(!a.xml_isLegalChar(r.data)||-1!==r.data.indexOf("]]>"))throw new Error("CDATA contains invalid characters.");s.appendChild(n.createCDATASection(r.data));break;case o.TokenType.Comment:const u=l;if(!a.xml_isLegalChar(u.data)||-1!==u.data.indexOf("--")||u.data.endsWith("-"))throw new Error("Comment data contains invalid characters.");s.appendChild(n.createComment(u.data));break;case o.TokenType.PI:const f=l;if(-1!==f.target.indexOf(":")||/^xml$/i.test(f.target))throw new Error("Processing instruction target contains invalid characters.");if(!a.xml_isLegalChar(f.data)||-1!==f.data.indexOf("?>"))throw new Error("Processing instruction data contains invalid characters.");s.appendChild(n.createProcessingInstruction(f.target,f.data));break;case o.TokenType.Text:const d=l;if(!a.xml_isLegalChar(d.data))throw new Error("Text data contains invalid characters.");s.appendChild(n.createTextNode(d.data));break;case o.TokenType.Element:const p=l,[h,m]=a.namespace_extractQName(p.name);if(-1!==m.indexOf(":")||!a.xml_isName(m))throw new Error("Node local name contains invalid characters.");if("xmlns"===h)throw new Error("An element cannot have the 'xmlns' prefix.");let v=s.lookupNamespaceURI(h);for(const[e,t]of p.attributes)if("xmlns"===e)v=t;else{const[n,r]=a.namespace_extractQName(e);"xmlns"===n&&r===h&&(v=t)}const y=null!==v?n.createElementNS(v,p.name):n.createElement(p.name);s.appendChild(y);const _=new c.LocalNameSet;for(const[e,t]of p.attributes){if("xmlns"===e)continue;const[n,r]=a.namespace_extractQName(e);let o=null;if("xmlns"===n?o=i.namespace.XMLNS:(o=y.lookupNamespaceURI(n),null!==o&&y.isDefaultNamespace(o)&&(o=null)),_.has(o,r))throw new Error("Element contains duplicate attributes.");if(_.set(o,r),o===i.namespace.XMLNS){if(t===i.namespace.XMLNS)throw new Error("XMLNS namespace is reserved.");if(""===t)throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace.")}if(-1!==r.indexOf(":")||!a.xml_isName(r)||"xmlns"===r&&null===o)throw new Error("Attribute local name contains invalid characters.");null!==o?y.setAttributeNS(o,e,t):y.setAttribute(e,t)}p.selfClosing||(s=y);break;case o.TokenType.ClosingTag:if(l.name!==s.nodeName)throw new Error("Closing tag name does not match opening tag name.");s._parent&&(s=s._parent)}l=t.nextToken()}return n}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(478);class o{constructor(e,t){this._options={skipWhitespaceOnlyText:!1},this._str=e,this._index=0,this._length=e.length,t&&(this._options.skipWhitespaceOnlyText=t.skipWhitespaceOnlyText||!1)}nextToken(){if(this.eof())return{type:r.TokenType.EOF};let e=this.skipIfStartsWith("<")?this.openBracket():this.text();return this._options.skipWhitespaceOnlyText&&e.type===r.TokenType.Text&&o.isWhiteSpaceToken(e)&&(e=this.nextToken()),e}openBracket(){if(this.skipIfStartsWith("?"))return this.skipIfStartsWith("xml")?this.declaration():this.pi();if(this.skipIfStartsWith("!")){if(this.skipIfStartsWith("--"))return this.comment();if(this.skipIfStartsWith("[CDATA["))return this.cdata();if(this.skipIfStartsWith("DOCTYPE"))return this.doctype();throw new Error("Invalid '!' in opening tag.")}return this.skipIfStartsWith("/")?this.closeTag():this.openTag()}declaration(){let e="",t="",n="";for(;!this.eof();){if(this.skipSpace(),this.skipIfStartsWith("?>"))return{type:r.TokenType.Declaration,version:e,encoding:t,standalone:n};{const[r,o]=this.attribute();if("version"===r)e=o;else if("encoding"===r)t=o;else{if("standalone"!==r)throw new Error("Invalid attribute name: "+r);n=o}}}throw new Error("Missing declaration end symbol `?>`")}doctype(){let e="",t="";this.skipSpace();const n=this.takeUntil2("[",">",!0);if(this.skipSpace(),this.skipIfStartsWith("PUBLIC")?(e=this.quotedString(),t=this.quotedString()):this.skipIfStartsWith("SYSTEM")&&(t=this.quotedString()),this.skipSpace(),this.skipIfStartsWith("[")&&(this.skipUntil("]"),!this.skipIfStartsWith("]")))throw new Error("Missing end bracket of DTD internal subset");if(this.skipSpace(),!this.skipIfStartsWith(">"))throw new Error("Missing doctype end symbol `>`");return{type:r.TokenType.DocType,name:n,pubId:e,sysId:t}}pi(){const e=this.takeUntilStartsWith("?>",!0);if(this.eof())throw new Error("Missing processing instruction end symbol `?>`");if(this.skipSpace(),this.skipIfStartsWith("?>"))return{type:r.TokenType.PI,target:e,data:""};const t=this.takeUntilStartsWith("?>");if(this.eof())throw new Error("Missing processing instruction end symbol `?>`");return this.seek(2),{type:r.TokenType.PI,target:e,data:t}}text(){const e=this.takeUntil("<");return{type:r.TokenType.Text,data:e}}comment(){const e=this.takeUntilStartsWith("--\x3e");if(this.eof())throw new Error("Missing comment end symbol `--\x3e`");return this.seek(3),{type:r.TokenType.Comment,data:e}}cdata(){const e=this.takeUntilStartsWith("]]>");if(this.eof())throw new Error("Missing CDATA end symbol `]>`");return this.seek(3),{type:r.TokenType.CDATA,data:e}}openTag(){this.skipSpace();const e=this.takeUntil2(">","/",!0);if(this.skipIfStartsWith(">"))return{type:r.TokenType.Element,name:e,attributes:[],selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:r.TokenType.Element,name:e,attributes:[],selfClosing:!0};const t=[];for(;!this.eof();){if(this.skipSpace(),this.skipIfStartsWith(">"))return{type:r.TokenType.Element,name:e,attributes:t,selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:r.TokenType.Element,name:e,attributes:t,selfClosing:!0};const n=this.attribute();t.push(n)}throw new Error("Missing opening element tag end symbol `>`")}closeTag(){this.skipSpace();const e=this.takeUntil(">",!0);if(this.skipSpace(),!this.skipIfStartsWith(">"))throw new Error("Missing closing element tag end symbol `>`");return{type:r.TokenType.ClosingTag,name:e}}attribute(){this.skipSpace();const e=this.takeUntil("=",!0);if(this.skipSpace(),!this.skipIfStartsWith("="))throw new Error("Missing equals sign before attribute value");return[e,this.quotedString()]}quotedString(){this.skipSpace();const e=this.take(1);if(!o.isQuote(e))throw new Error("Missing start quote character before quoted value");const t=this.takeUntil(e);if(!this.skipIfStartsWith(e))throw new Error("Missing end quote character after quoted value");return t}eof(){return this._index>=this._length}skipIfStartsWith(e){const t=e.length;if(1===t)return this._str[this._index]===e&&(this._index++,!0);for(let n=0;n<t;n++)if(this._str[this._index+n]!==e[n])return!1;return this._index+=t,!0}seek(e){this._index+=e,this._index<0&&(this._index=0),this._index>this._length&&(this._index=this._length)}skipSpace(){for(;!this.eof()&&o.isSpace(this._str[this._index]);)this._index++}take(e){if(1===e)return this._str[this._index++];const t=this._index;return this.seek(e),this._str.slice(t,this._index)}takeUntil(e,t=!1){const n=this._index;for(;this._index<this._length;){const n=this._str[this._index];if(n===e||t&&o.isSpace(n))break;this._index++}return this._str.slice(n,this._index)}takeUntil2(e,t,n=!1){const r=this._index;for(;this._index<this._length;){const r=this._str[this._index];if(r===e||r===t||n&&o.isSpace(r))break;this._index++}return this._str.slice(r,this._index)}takeUntilStartsWith(e,t=!1){const n=this._index,r=e.length;for(;this._index<this._length;){let i=!0;for(let a=0;a<r;a++){const r=this._str[this._index+a],c=e[a];if(t&&o.isSpace(r))return this._str.slice(n,this._index);if(r!==c){this._index++,i=!1;break}}if(i)return this._str.slice(n,this._index)}return this._index=this._length,this._str.slice(n)}skipUntil(e){for(;this._index<this._length;){if(this._str[this._index]===e)break;this._index++}}static isWhiteSpaceToken(e){const t=e.data;for(let e=0;e<t.length;e++){const n=t[e];if(" "!==n&&"\n"!==n&&"\r"!==n&&"\t"!==n&&"\f"!==n)return!1}return!0}static isSpace(e){return" "===e||"\n"===e||"\r"===e||"\t"===e}static isQuote(e){return'"'===e||"'"===e}[Symbol.iterator](){return this._index=0,{next:function(){const e=this.nextToken();return e.type===r.TokenType.EOF?{done:!0,value:null}:{done:!1,value:e}}.bind(this)}}}t.XMLStringLexer=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(928);t.XMLSerializer=r.XMLSerializerImpl},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(929),o=n(931);t.XMLSerializerImpl=class{serializeToString(e){return void 0===e._nodeDocument||e._nodeDocument._hasNamespaces?(new r.XMLSerializerNSImpl).serializeToString(e):(new o.XMLSerializerNoNSImpl).serializeToString(e)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(479),i=n(930),a=n(41),c=n(46),s=n(20);class l{serializeToString(e){return this._xmlSerialization(e,!1)}_xmlSerialization(e,t){const n=new i.NamespacePrefixMap;n.set("xml",c.namespace.XML);const r={value:1};try{return this._serializeNode(e,null,n,r,t)}catch(e){throw new a.InvalidStateError}}_serializeNode(e,t,n,o,i){switch(e.nodeType){case r.NodeType.Element:return this._serializeElement(e,t,n,o,i);case r.NodeType.Document:return this._serializeDocument(e,t,n,o,i);case r.NodeType.Comment:return this._serializeComment(e,i);case r.NodeType.Text:return this._serializeText(e,i);case r.NodeType.DocumentFragment:return this._serializeDocumentFragment(e,t,n,o,i);case r.NodeType.DocumentType:return this._serializeDocumentType(e,i);case r.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(e,i);case r.NodeType.CData:return this._serializeCData(e,i);default:throw new Error("Unknown node type: "+e.nodeType)}}_serializeElement(e,t,n,r,o){if(o&&(-1!==e.localName.indexOf(":")||!s.xml_isName(e.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");let i="<",a="",u=!1,f=!1,d=n.copy(),p={},h=this._recordNamespaceInformation(e,d,p),m=t,v=e.namespaceURI;if(m===v)null!==h&&(f=!0),a=v===c.namespace.XML?"xml:"+e.localName:e.localName,i+=a;else{let t=e.prefix,n=d.get(t,v);if("xmlns"===t){if(o)throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");n=t}null!==n?(a=n+":"+e.localName,null!==h&&h!==c.namespace.XML&&(m=h||null),i+=a):null!==t?(t in p&&(t=this._generatePrefix(v,d,r)),d.set(t,v),a+=t+":"+e.localName,i+=a,i+=" xmlns:"+t+'="'+this._serializeAttributeValue(v,o)+'"',null!==h&&(m=h||null)):null===h||null!==h&&h!==v?(f=!0,a+=e.localName,m=v,i+=a,i+=' xmlns="'+this._serializeAttributeValue(v,o)+'"'):(a+=e.localName,m=v,i+=a)}i+=this._serializeAttributes(e,d,r,p,f,o);const y=v===c.namespace.HTML;if(y&&0===e.childNodes.length&&l._VoidElementNames.has(e.localName)?(i+=" /",u=!0):y||0!==e.childNodes.length||(i+="/",u=!0),i+=">",u)return i;if(y&&"template"===e.localName);else for(const t of e._children||e.childNodes)i+=this._serializeNode(t,m,d,r,o);return i+="</"+a+">",i}_serializeDocument(e,t,n,r,o){if(o&&null===e.documentElement)throw new Error("Missing document element (well-formed required).");let i="";for(const a of e._children||e.childNodes)i+=this._serializeNode(a,t,n,r,o);return i}_serializeComment(e,t){if(t&&(!s.xml_isLegalChar(e.data)||-1!==e.data.indexOf("--")||e.data.endsWith("-")))throw new Error("Comment data contains invalid characters (well-formed required).");return"\x3c!--"+e.data+"--\x3e"}_serializeText(e,t){if(t&&!s.xml_isLegalChar(e.data))throw new Error("Text data contains invalid characters (well-formed required).");let n="";for(let t=0;t<e.data.length;t++){const r=e.data[t];n+="&"===r?"&":"<"===r?"<":">"===r?">":r}return n}_serializeDocumentFragment(e,t,n,r,o){let i="";for(const a of e._children||e.childNodes)i+=this._serializeNode(a,t,n,r,o);return i}_serializeDocumentType(e,t){if(t&&!s.xml_isPubidChar(e.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(t&&(!s.xml_isLegalChar(e.systemId)||-1!==e.systemId.indexOf('"')&&-1!==e.systemId.indexOf("'")))throw new Error("DocType system identifier contains invalid characters (well-formed required).");return e.publicId&&e.systemId?"<!DOCTYPE "+e.name+' PUBLIC "'+e.publicId+'" "'+e.systemId+'">':e.publicId?"<!DOCTYPE "+e.name+' PUBLIC "'+e.publicId+'">':e.systemId?"<!DOCTYPE "+e.name+' SYSTEM "'+e.systemId+'">':"<!DOCTYPE "+e.name+">"}_serializeProcessingInstruction(e,t){if(t&&(-1!==e.target.indexOf(":")||/^xml$/i.test(e.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(t&&(!s.xml_isLegalChar(e.data)||-1!==e.data.indexOf("?>")))throw new Error("Processing instruction data contains invalid characters (well-formed required).");return"<?"+e.target+" "+e.data+"?>"}_serializeCData(e,t){if(t&&-1!==e.data.indexOf("]]>"))throw new Error("CDATA contains invalid characters (well-formed required).");return"<![CDATA["+e.data+"]]>"}_serializeAttributes(e,t,n,r,i,a){let l="";const u=a?new o.LocalNameSet:void 0;for(const o of e.attributes){if(!a&&null===o.namespaceURI){l+=" "+o.localName+'="'+this._serializeAttributeValue(o.value,a)+'"';continue}if(a&&u&&u.has(o.namespaceURI,o.localName))throw new Error("Element contains duplicate attributes (well-formed required).");a&&u&&u.set(o.namespaceURI,o.localName);let e=o.namespaceURI,f=null;if(null!==e)if(f=t.get(o.prefix,e),e===c.namespace.XMLNS){if(o.value===c.namespace.XML||null===o.prefix&&i||null!==o.prefix&&(!(o.localName in r)||r[o.localName]!==o.value)&&t.has(o.localName,o.value))continue;if(a&&o.value===c.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(a&&""===o.value)throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");"xmlns"===o.prefix&&(f="xmlns")}else null===f&&(f=null===o.prefix||t.hasPrefix(o.prefix)&&!t.has(o.prefix,e)?this._generatePrefix(e,t,n):o.prefix,l+=" xmlns:"+f+'="'+this._serializeAttributeValue(e,a)+'"');if(l+=" ",null!==f&&(l+=f+":"),a&&(-1!==o.localName.indexOf(":")||!s.xml_isName(o.localName)||"xmlns"===o.localName&&null===e))throw new Error("Attribute local name contains invalid characters (well-formed required).");l+=o.localName+'="'+this._serializeAttributeValue(o.value,a)+'"'}return l}_recordNamespaceInformation(e,t,n){let r=null;for(const o of e.attributes){let e=o.namespaceURI,i=o.prefix;if(e===c.namespace.XMLNS){if(null===i){r=o.value;continue}{let e=o.localName,r=o.value;if(r===c.namespace.XML)continue;if(""===r&&(r=null),t.has(e,r))continue;t.set(e,r),n[e]=r||""}}}return r}_generatePrefix(e,t,n){let r="ns"+n.value;return n.value++,t.set(r,e),r}_serializeAttributeValue(e,t){if(t&&null!==e&&!s.xml_isLegalChar(e))throw new Error("Invalid characters in attribute value.");if(null===e)return"";let n="";for(let t=0;t<e.length;t++){const r=e[t];n+='"'===r?""":"&"===r?"&":"<"===r?"<":">"===r?">":r}return n}}t.XMLSerializerNSImpl=l,l._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this._items={},this._nullItems=[]}copy(){const e=new r;for(const t in this._items)e._items[t]=this._items[t].slice(0);return e._nullItems=this._nullItems.slice(0),e}get(e,t){const n=null===t?this._nullItems:this._items[t]||null;if(null===n)return null;let r=null;for(let t=0;t<n.length;t++)if(r=n[t],r===e)return r;return r}has(e,t){const n=null===t?this._nullItems:this._items[t]||null;return null!==n&&-1!==n.indexOf(e)}hasPrefix(e){if(-1!==this._nullItems.indexOf(e))return!0;for(const t in this._items)if(-1!==this._items[t].indexOf(e))return!0;return!1}set(e,t){const n=null===t?this._nullItems:this._items[t]||null;null!==t&&null===n?this._items[t]=[e]:n.push(e)}}t.NamespacePrefixMap=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(24),o=n(41),i=n(20);t.XMLSerializerNoNSImpl=class{serializeToString(e){return this._xmlSerialization(e,!1)}_xmlSerialization(e,t){try{return this._serializeNode(e,t)}catch(e){throw new o.InvalidStateError}}_serializeNode(e,t){switch(e.nodeType){case r.NodeType.Element:return this._serializeElement(e,t);case r.NodeType.Document:return this._serializeDocument(e,t);case r.NodeType.Comment:return this._serializeComment(e,t);case r.NodeType.Text:return this._serializeText(e,t);case r.NodeType.DocumentFragment:return this._serializeDocumentFragment(e,t);case r.NodeType.DocumentType:return this._serializeDocumentType(e,t);case r.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(e,t);case r.NodeType.CData:return this._serializeCData(e,t);default:throw new Error("Unknown node type: "+e.nodeType)}}_serializeElement(e,t){if(t&&(-1!==e.localName.indexOf(":")||!i.xml_isName(e.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");let n=!1;const r=e.localName;let o="<"+r;if(o+=this._serializeAttributes(e,t),0===e._children.size&&(o+="/",n=!0),o+=">",n)return o;for(const n of e._children)o+=this._serializeNode(n,t);return o+="</"+r+">",o}_serializeDocument(e,t){if(t&&null===e.documentElement)throw new Error("Missing document element (well-formed required).");let n="";for(const r of e._children)n+=this._serializeNode(r,t);return n}_serializeComment(e,t){if(t&&(!i.xml_isLegalChar(e.data)||-1!==e.data.indexOf("--")||e.data.endsWith("-")))throw new Error("Comment data contains invalid characters (well-formed required).");return"\x3c!--"+e.data+"--\x3e"}_serializeText(e,t){if(t&&!i.xml_isLegalChar(e.data))throw new Error("Text data contains invalid characters (well-formed required).");let n="";const r=e.data;for(let e=0;e<r.length;e++){const t=r[e];n+="&"===t?"&":"<"===t?"<":">"===t?">":t}return n}_serializeDocumentFragment(e,t){let n="";for(const r of e._children)n+=this._serializeNode(r,t);return n}_serializeDocumentType(e,t){if(t&&!i.xml_isPubidChar(e.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(t&&(!i.xml_isLegalChar(e.systemId)||-1!==e.systemId.indexOf('"')&&-1!==e.systemId.indexOf("'")))throw new Error("DocType system identifier contains invalid characters (well-formed required).");return e.publicId&&e.systemId?"<!DOCTYPE "+e.name+' PUBLIC "'+e.publicId+'" "'+e.systemId+'">':e.publicId?"<!DOCTYPE "+e.name+' PUBLIC "'+e.publicId+'">':e.systemId?"<!DOCTYPE "+e.name+' SYSTEM "'+e.systemId+'">':"<!DOCTYPE "+e.name+">"}_serializeProcessingInstruction(e,t){if(t&&(-1!==e.target.indexOf(":")||/^xml$/i.test(e.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(t&&(!i.xml_isLegalChar(e.data)||-1!==e.data.indexOf("?>")))throw new Error("Processing instruction data contains invalid characters (well-formed required).");return"<?"+e.target+" "+e.data+"?>"}_serializeCData(e,t){if(t&&-1!==e.data.indexOf("]]>"))throw new Error("CDATA contains invalid characters (well-formed required).");return"<![CDATA["+e.data+"]]>"}_serializeAttributes(e,t){let n="";const r=t?{}:void 0;for(const o of e.attributes){if(t&&r&&o.localName in r)throw new Error("Element contains duplicate attributes (well-formed required).");if(t&&r&&(r[o.localName]=!0),t&&(-1!==o.localName.indexOf(":")||!i.xml_isName(o.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");n+=" "+o.localName+'="'+this._serializeAttributeValue(o.value,t)+'"'}return n}_serializeAttributeValue(e,t){if(t&&null!==e&&!i.xml_isLegalChar(e))throw new Error("Invalid characters in attribute value.");if(null===e)return"";let n="";for(let t=0;t<e.length;t++){const r=e[t];n+='"'===r?""":"&"===r?"&":"<"===r?"<":">"===r?">":r}return n}}},function(e,t,n){(function(e){var r=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!y(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(c(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,a=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),s=r[n];n<i;s=r[++n])m(s)||!b(s)?a+=" "+s:a+=" "+c(s);return a},t.deprecate=function(n,r){if(void 0!==e&&!0===e.noDeprecation)return n;if(void 0===e)return function(){return t.deprecate(n,r).apply(this,arguments)};var o=!1;return function(){if(!o){if(e.throwDeprecation)throw new Error(r);e.traceDeprecation?console.trace(r):console.error(r),o=!0}return n.apply(this,arguments)}};var i,a={};function c(e,n){var r={seen:[],stylize:l};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),h(n)?r.showHidden=n:n&&t._extend(r,n),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=s),u(r,e,r.depth)}function s(e,t){var n=c.styles[t];return n?"["+c.colors[n][0]+"m"+e+"["+c.colors[n][1]+"m":e}function l(e,t){return e}function u(e,n,r){if(e.customInspect&&n&&O(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return y(o)||(o=u(e,o,r)),o}var i=function(e,t){if(_(t))return e.stylize("undefined","undefined");if(y(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(v(t))return e.stylize(""+t,"number");if(h(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),c=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),w(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(O(n)){var s=n.name?": "+n.name:"";return e.stylize("[Function"+s+"]","special")}if(g(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(M(n))return e.stylize(Date.prototype.toString.call(n),"date");if(w(n))return f(n)}var l,b="",S=!1,C=["{","}"];(p(n)&&(S=!0,C=["[","]"]),O(n))&&(b=" [Function"+(n.name?": "+n.name:"")+"]");return g(n)&&(b=" "+RegExp.prototype.toString.call(n)),M(n)&&(b=" "+Date.prototype.toUTCString.call(n)),w(n)&&(b=" "+f(n)),0!==a.length||S&&0!=n.length?r<0?g(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=S?function(e,t,n,r,o){for(var i=[],a=0,c=t.length;a<c;++a)L(t,String(a))?i.push(d(e,t,n,r,String(a),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(d(e,t,n,r,o,!0))})),i}(e,n,r,c,a):a.map((function(t){return d(e,n,r,c,t,S)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,b,C)):C[0]+b+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,r,o,i){var a,c,s;if((s=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?c=s.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):s.set&&(c=e.stylize("[Setter]","special")),L(r,o)||(a="["+o+"]"),c||(e.seen.indexOf(s.value)<0?(c=m(n)?u(e,s.value,null):u(e,s.value,n-1)).indexOf("\n")>-1&&(c=i?c.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+c.split("\n").map((function(e){return" "+e})).join("\n")):c=e.stylize("[Circular]","special")),_(a)){if(i&&o.match(/^\d+$/))return c;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+c}function p(e){return Array.isArray(e)}function h(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return"number"==typeof e}function y(e){return"string"==typeof e}function _(e){return void 0===e}function g(e){return b(e)&&"[object RegExp]"===S(e)}function b(e){return"object"==typeof e&&null!==e}function M(e){return b(e)&&"[object Date]"===S(e)}function w(e){return b(e)&&("[object Error]"===S(e)||e instanceof Error)}function O(e){return"function"==typeof e}function S(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(_(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=c,c.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]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=h,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=v,t.isString=y,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=_,t.isRegExp=g,t.isObject=b,t.isDate=M,t.isError=w,t.isFunction=O,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(933);var x=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),x[e.getMonth()],t].join(" ")}function L(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",k(),t.format.apply(t,arguments))},t.inherits=n(934),t._extend=function(e,t){if(!t||!b(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var E="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function T(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(E&&e[E]){var t;if("function"!=typeof(t=e[E]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,E,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),E&&Object.defineProperty(t,E,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,r(e))},t.promisify.custom=E,t.callbackify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');function n(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then((function(t){e.nextTick(a,null,t)}),(function(t){e.nextTick(T,t,a)}))}return Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.defineProperties(n,r(t)),n}}).call(this,n(114))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,i){var a=o.default.unstable_batchedUpdates?function(e){o.default.unstable_batchedUpdates(n,e)}:n;return(0,r.default)(e,t,a,i)};var r=i(n(229)),o=i(n(7));function i(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=document.createElement("div");document.body.appendChild(t);var n=m(m({},e),{close:c,visible:!0});function r(){var n=i.unmountComponentAtNode(t);n&&t.parentNode&&t.parentNode.removeChild(t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var l=o.some((function(e){return e&&e.triggerCancel}));e.onCancel&&l&&e.onCancel.apply(e,o);for(var u=0;u<s.destroyFns.length;u++){var f=s.destroyFns[u];if(f===c){s.destroyFns.splice(u,1);break}}}function a(e){i.render(o.createElement(y,e),t)}function c(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];n=m(m({},n),{visible:!1,afterClose:r.bind.apply(r,[this].concat(t))}),v?a(n):r.apply(void 0,t)}return a(n),s.destroyFns.push(c),{destroy:c,update:function(e){a(n=m(m({},n),e))}}};var o=h(n(0)),i=h(n(7)),a=d(n(3)),c=d(n(51)),s=h(n(480)),l=d(n(937)),u=n(177),f=d(n(64));function d(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function h(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=o?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v=!!i.createPortal,y=function(e){var t=e.onCancel,n=e.onOk,r=e.close,i=e.zIndex,d=e.afterClose,p=e.visible,h=e.keyboard,m=e.centered,v=e.getContainer,y=e.maskStyle,_=e.okButtonProps,g=e.cancelButtonProps,b=e.iconType,M=void 0===b?"question-circle":b;(0,f.default)(!("iconType"in e),"Modal","The property 'iconType' is deprecated. Use the property 'icon' instead.");var w,O,S,C=void 0===e.icon?M:e.icon,x=e.okType||"primary",k=e.prefixCls||"ant-modal",L="".concat(k,"-confirm"),E=!("okCancel"in e)||e.okCancel,T=e.width||416,P=e.style||{},j=void 0===e.mask||e.mask,z=void 0!==e.maskClosable&&e.maskClosable,D=(0,u.getConfirmLocale)(),N=e.okText||(E?D.okText:D.justOkText),H=e.cancelText||D.cancelText,A=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),Y=e.transitionName||"zoom",I=e.maskTransitionName||"fade",V=(0,a.default)(L,"".concat(L,"-").concat(e.type),e.className),F=E&&o.createElement(l.default,{actionFn:t,closeModal:r,autoFocus:"cancel"===A,buttonProps:g},H),R="string"==typeof C?o.createElement(c.default,{type:C}):C;return o.createElement(s.default,{prefixCls:k,className:V,wrapClassName:(0,a.default)((w={},O="".concat(L,"-centered"),S=!!e.centered,O in w?Object.defineProperty(w,O,{value:S,enumerable:!0,configurable:!0,writable:!0}):w[O]=S,w)),onCancel:function(){return r({triggerCancel:!0})},visible:p,title:"",transitionName:Y,footer:"",maskTransitionName:I,mask:j,maskClosable:z,maskStyle:y,style:P,width:T,zIndex:i,afterClose:d,keyboard:h,centered:m,getContainer:v},o.createElement("div",{className:"".concat(L,"-body-wrapper")},o.createElement("div",{className:"".concat(L,"-body")},R,void 0===e.title?null:o.createElement("span",{className:"".concat(L,"-title")},e.title),o.createElement("div",{className:"".concat(L,"-content")},e.content)),o.createElement("div",{className:"".concat(L,"-btns")},F,o.createElement(l.default,{type:x,actionFn:n,closeModal:r,autoFocus:"ok"===A,buttonProps:_},N))))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=s(n(0)),i=s(n(7)),a=(r=n(126))&&r.__esModule?r:{default:r};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function s(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(){return(u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function f(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return h(this,n)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var v=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(s,e);var t,n,r,c=p(s);function s(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(t=c.call(this,e)).onClick=function(){var e,n=t.props,r=n.actionFn,o=n.closeModal;r?(r.length?e=r(o):(e=r())||o(),e&&e.then&&(t.setState({loading:!0}),e.then((function(){o.apply(void 0,arguments)}),(function(e){console.error(e),t.setState({loading:!1})})))):o()},t.state={loading:!1},t}return t=s,(n=[{key:"componentDidMount",value:function(){if(this.props.autoFocus){var e=i.findDOMNode(this);this.timeoutId=setTimeout((function(){return e.focus()}))}}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeoutId)}},{key:"render",value:function(){var e=this.props,t=e.type,n=e.children,r=e.buttonProps,i=this.state.loading;return o.createElement(a.default,u({type:t,onClick:this.onClick,loading:i},r),n)}}])&&f(t.prototype,n),r&&f(t,r),s}(o.Component);t.default=v},function(e,t,n){var r=n(481),o=n(939),i=n(941),a=Math.max,c=Math.min;e.exports=function(e,t,n){var s,l,u,f,d,p,h=0,m=!1,v=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function _(t){var n=s,r=l;return s=l=void 0,h=t,f=e.apply(r,n)}function g(e){return h=e,d=setTimeout(M,t),m?_(e):f}function b(e){var n=e-p;return void 0===p||n>=t||n<0||v&&e-h>=u}function M(){var e=o();if(b(e))return w(e);d=setTimeout(M,function(e){var n=t-(e-p);return v?c(n,u-(e-h)):n}(e))}function w(e){return d=void 0,y&&s?_(e):(s=l=void 0,f)}function O(){var e=o(),n=b(e);if(s=arguments,l=this,p=e,n){if(void 0===d)return g(p);if(v)return clearTimeout(d),d=setTimeout(M,t),_(p)}return void 0===d&&(d=setTimeout(M,t)),f}return t=i(t)||0,r(n)&&(m=!!n.leading,u=(v="maxWait"in n)?a(i(n.maxWait)||0,t):u,y="trailing"in n?!!n.trailing:y),O.cancel=function(){void 0!==d&&clearTimeout(d),h=0,s=p=l=d=void 0},O.flush=function(){return void 0===d?f:w(o())},O}},function(e,t,n){var r=n(482);e.exports=function(){return r.Date.now()}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(61))},function(e,t,n){var r=n(481),o=n(942),i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var n=c.test(e);return n||s.test(e)?l(e.slice(2),n?2:8):a.test(e)?NaN:+e}},function(e,t,n){var r=n(943),o=n(946);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(483),o=n(944),i=n(945),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(483),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,c=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[c]=n:delete e[c]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=y(n(0)),o=y(n(1)),i=m(n(3)),a=m(n(949)),c=m(n(488)),s=m(n(81)),l=n(43),u=n(85),f=m(n(64)),d=m(n(91)),p=n(491),h=m(n(492));function m(e){return e&&e.__esModule?e:{default:e}}function v(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return v=function(){return e},e}function y(e){if(e&&e.__esModule)return e;if(null===e||"object"!==_(e)&&"function"!=typeof e)return{default:e};var t=v();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function _(e){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(){return(g=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function w(e,t){return(w=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function O(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=C(e);if(t){var o=C(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return S(this,n)}}function S(e,t){return!t||"object"!==_(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function C(e){return(C=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var x=(0,u.tuple)("horizontal","inline","vertical"),k=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&w(e,t)}(c,e);var t,n,o,a=O(c);function c(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),(t=a.call(this,e)).renderForm=function(e){var n,o=e.getPrefixCls,a=t.props,c=a.prefixCls,l=a.hideRequiredMark,u=a.className,f=void 0===u?"":u,d=a.layout,p=o("form",c),h=(0,i.default)(p,(b(n={},"".concat(p,"-horizontal"),"horizontal"===d),b(n,"".concat(p,"-vertical"),"vertical"===d),b(n,"".concat(p,"-inline"),"inline"===d),b(n,"".concat(p,"-hide-required-mark"),l),n),f),m=(0,s.default)(t.props,["prefixCls","className","layout","form","hideRequiredMark","wrapperCol","labelAlign","labelCol","colon"]);return r.createElement("form",g({},m,{className:h}))},(0,f.default)(!e.form,"Form","It is unnecessary to pass `form` to `Form` after antd@1.7.0."),t}return t=c,(n=[{key:"render",value:function(){var e=this.props,t=e.wrapperCol,n=e.labelAlign,o=e.labelCol,i=e.layout,a=e.colon;return r.createElement(h.default.Provider,{value:{wrapperCol:t,labelAlign:n,labelCol:o,vertical:"vertical"===i,colon:a}},r.createElement(l.ConfigConsumer,null,this.renderForm))}}])&&M(t.prototype,n),o&&M(t,o),c}(r.Component);t.default=k,k.defaultProps={colon:!0,layout:"horizontal",hideRequiredMark:!1,onSubmit:function(e){e.preventDefault()}},k.propTypes={prefixCls:o.string,layout:o.oneOf(x),children:o.any,onSubmit:o.func,hideRequiredMark:o.bool,colon:o.bool},k.Item=d.default,k.createFormField=c.default,k.create=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,a.default)(g(g({fieldNameProp:"id"},e),{fieldMetaProp:p.FIELD_META_PROP,fieldDataProp:p.FIELD_DATA_PROP}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(13)),o=u(n(7)),i=u(n(127)),a=u(n(950)),c=u(n(485)),s=n(1039),l=n(226);function u(e){return e&&e.__esModule?e:{default:e}}function f(e,t){var n=window.getComputedStyle,r=n?n(e):e.currentStyle;if(r)return r[t.replace(/-(\w)/gi,(function(e,t){return t.toUpperCase()}))]}var d={getForm:function(){return(0,r.default)({},s.mixin.getForm.call(this),{validateFieldsAndScroll:this.validateFieldsAndScroll})},validateFieldsAndScroll:function(e,t,n){var c=this,s=(0,l.getParams)(e,t,n),u=s.names,d=s.callback,p=s.options;return this.validateFields(u,p,(function(e,t){if(e){var n=c.fieldsStore.getValidFieldsName(),s=void 0,l=void 0;if(n.forEach((function(t){if((0,a.default)(e,t)){var n=c.getFieldInstance(t);if(n){var r=o.default.findDOMNode(n),i=r.getBoundingClientRect().top;"hidden"!==r.type&&(void 0===l||l>i)&&(l=i,s=r)}}})),s){var u=p.container||function(e){for(var t=e,n=void 0;"body"!==(n=t.nodeName.toLowerCase());){var r=f(t,"overflowY");if(t!==e&&("auto"===r||"scroll"===r)&&t.scrollHeight>t.clientHeight)return t;t=t.parentNode}return"body"===n?t.ownerDocument:t}(s);(0,i.default)(s,u,(0,r.default)({onlyScrollIfNeeded:!0},p.scroll))}}"function"==typeof d&&d(e,t)}))}};t.default=function(e){return(0,c.default)((0,r.default)({},e),[d])},e.exports=t.default},function(e,t,n){var r=n(951),o=n(952);e.exports=function(e,t){return null!=e&&o(e,t,r)}},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e,t){return null!=e&&n.call(e,t)}},function(e,t,n){var r=n(216),o=n(989),i=n(149),a=n(484),c=n(991),s=n(225);e.exports=function(e,t,n){for(var l=-1,u=(t=r(t,e)).length,f=!1;++l<u;){var d=s(t[l]);if(!(f=null!=e&&n(e,d)))break;e=e[d]}return f||++l!=u?f:!!(u=null==e?0:e.length)&&c(u)&&a(d,u)&&(i(e)||o(e))}},function(e,t,n){var r=n(149),o=n(217),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(61))},function(e,t,n){var r=n(219),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,c=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[c]=n:delete e[c]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r=n(958),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)})),t}));e.exports=a},function(e,t,n){var r=n(959);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},function(e,t,n){var r=n(960);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},function(e,t,n){var r=n(961),o=n(981),i=n(983),a=n(984),c=n(985);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t,n){var r=n(962),o=n(974),i=n(980);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(963),o=n(970),i=n(971),a=n(972),c=n(973);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t,n){var r=n(150);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t,n){var r=n(965),o=n(966),i=n(223),a=n(968),c=/^\[object .+?Constructor\]$/,s=Function.prototype,l=Object.prototype,u=s.toString,f=l.hasOwnProperty,d=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?d:c).test(a(e))}},function(e,t,n){var r=n(218),o=n(223);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var r,o=n(967),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(220)["__core-js_shared__"];e.exports=r},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(150),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(150),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},function(e,t,n){var r=n(150);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},function(e,t,n){var r=n(975),o=n(976),i=n(977),a=n(978),c=n(979);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=i,s.prototype.has=a,s.prototype.set=c,e.exports=s},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(151),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(151);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(151);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(151);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(222)(n(220),"Map");e.exports=r},function(e,t,n){var r=n(152);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(152);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(152);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(152);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},function(e,t,n){var r=n(987);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){var r=n(219),o=n(988),i=n(149),a=n(217),c=r?r.prototype:void 0,s=c?c.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return s?s.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t,n){var r=n(990),o=n(221),i=Object.prototype,a=i.hasOwnProperty,c=i.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!c.call(e,"callee")};e.exports=s},function(e,t,n){var r=n(218),o=n(221);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},function(e,t){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(993),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,i.default)(e)}},function(e,t,n){e.exports={default:n(994),__esModule:!0}},function(e,t,n){n(245),n(995),e.exports=n(62).Array.from},function(e,t,n){"use strict";var r=n(164),o=n(93),i=n(134),a=n(996),c=n(997),s=n(242),l=n(998),u=n(999);o(o.S+o.F*!n(1001)((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,o,f,d=i(e),p="function"==typeof this?this:Array,h=arguments.length,m=h>1?arguments[1]:void 0,v=void 0!==m,y=0,_=u(d);if(v&&(m=r(m,h>2?arguments[2]:void 0,2)),null==_||p==Array&&c(_))for(n=new p(t=s(d.length));t>y;y++)l(n,y,v?m(d[y],y):d[y]);else for(f=_.call(d),n=new p;!(o=f.next()).done;y++)l(n,y,v?a(f,m,[o.value,y],!0):o.value);return n.length=y,n}})},function(e,t,n){var r=n(104);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(118),o=n(63)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){"use strict";var r=n(83),o=n(117);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(1e3),o=n(63)("iterator"),i=n(118);e.exports=n(62).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(166),o=n(63)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var r=n(63)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){"use strict";var r=n(0),o=n(1003);if(void 0===r)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var i=(new r.Component).updater;e.exports=o(r.Component,r.isValidElement,i)},function(e,t,n){"use strict";var r=n(113),o=n(1004),i=n(1005);e.exports=function(e,t,n){var a=[],c={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},s={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)f(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=p(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(i(!(n in l),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e){var o=s.hasOwnProperty(n)?s[n]:null;return i("DEFINE_MANY_MERGED"===o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=p(e[n],r))}e[n]=r}}}(e,t)},autobind:function(){}};function u(e,t){var n=c.hasOwnProperty(t)?c[t]:null;_.hasOwnProperty(t)&&i("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&i("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function f(e,n){if(n){i("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),i(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;for(var a in n.hasOwnProperty("mixins")&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(a)&&"mixins"!==a){var s=n[a],f=r.hasOwnProperty(a);if(u(f,a),l.hasOwnProperty(a))l[a](e,s);else{var d=c.hasOwnProperty(a);if("function"==typeof s&&!d&&!f&&!1!==n.autobind)o.push(a,s),r[a]=s;else if(f){var m=c[a];i(d&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,a),"DEFINE_MANY_MERGED"===m?r[a]=p(r[a],s):"DEFINE_MANY"===m&&(r[a]=h(r[a],s))}else r[a]=s}}}else;}function d(e,t){for(var n in i(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(i(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function p(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return d(o,n),d(o,r),o}}function h(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function m(e,t){return t.bind(e)}var v={componentDidMount:function(){this.__isMounted=!0}},y={componentWillUnmount:function(){this.__isMounted=!1}},_={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},g=function(){};return r(g.prototype,e.prototype,_),function(e){var t=function(e,r,a){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=m(e,o)}}(this),this.props=e,this.context=r,this.refs=o,this.updater=a||n,this.state=null;var c=this.getInitialState?this.getInitialState():null;i("object"==typeof c&&!Array.isArray(c),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=c};for(var r in t.prototype=new g,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],a.forEach(f.bind(null,t)),f(t,v),f(t,e),f(t,y),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),i(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),c)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o,i,a,c){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,c],u=0;(s=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(0))&&r.__esModule?r:{default:r};var i=function(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");return"function"!=typeof t.componentWillReceiveProps?e:o.default.Profiler?(t.UNSAFE_componentWillReceiveProps=t.componentWillReceiveProps,delete t.componentWillReceiveProps,e):e};t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(42),c=n(1008),s=(r=c)&&r.__esModule?r:{default:r},l=n(1028);function u(e){this.rules=null,this._messages=l.messages,this.define(e)}u.prototype={messages:function(e){return e&&(this._messages=(0,a.deepMerge)((0,l.newMessages)(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":i(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},c=e,s=n,f=r;if("function"==typeof s&&(f=s,s={}),!this.rules||0===Object.keys(this.rules).length)return f&&f(),Promise.resolve();function d(e){var t,n,r=void 0,o=[],i={};for(r=0;r<e.length;r++)t=e[r],n=void 0,Array.isArray(t)?o=(n=o).concat.apply(n,t):o.push(t);o.length?i=(0,a.convertFieldsError)(o):(o=null,i=null),f(o,i)}if(s.messages){var p=this.messages();p===l.messages&&(p=(0,l.newMessages)()),(0,a.deepMerge)(p,s.messages),s.messages=p}else s.messages=this.messages();var h=void 0,m=void 0,v={},y=s.keys||Object.keys(this.rules);y.forEach((function(n){h=t.rules[n],m=c[n],h.forEach((function(r){var i=r;"function"==typeof i.transform&&(c===e&&(c=o({},c)),m=c[n]=i.transform(m)),(i="function"==typeof i?{validator:i}:o({},i)).validator=t.getValidationMethod(i),i.field=n,i.fullField=i.fullField||n,i.type=t.getType(i),i.validator&&(v[n]=v[n]||[],v[n].push({rule:i,value:m,source:c,field:n}))}))}));var _={};return(0,a.asyncMap)(v,s,(function(e,t){var n=e.rule,r=!("object"!==n.type&&"array"!==n.type||"object"!==i(n.fields)&&"object"!==i(n.defaultField));function c(e,t){return o({},t,{fullField:n.fullField+"."+e})}function l(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],l=i;if(Array.isArray(l)||(l=[l]),!s.suppressWarning&&l.length&&u.warning("async-validator:",l),l.length&&n.message&&(l=[].concat(n.message)),l=l.map((0,a.complementError)(n)),s.first&&l.length)return _[n.field]=1,t(l);if(r){if(n.required&&!e.value)return l=n.message?[].concat(n.message).map((0,a.complementError)(n)):s.error?[s.error(n,(0,a.format)(s.messages.required,n.field))]:[],t(l);var f={};if(n.defaultField)for(var d in e.value)e.value.hasOwnProperty(d)&&(f[d]=n.defaultField);for(var p in f=o({},f,e.rule.fields))if(f.hasOwnProperty(p)){var h=Array.isArray(f[p])?f[p]:[f[p]];f[p]=h.map(c.bind(null,p))}var m=new u(f);m.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),m.validate(e.value,e.rule.options||s,(function(e){var n=[];l&&l.length&&n.push.apply(n,l),e&&e.length&&n.push.apply(n,e),t(n.length?n:null)}))}else t(l)}r=r&&(n.required||!n.required&&e.value),n.field=e.field;var f=void 0;n.asyncValidator?f=n.asyncValidator(n,e.value,l,e.source,s):n.validator&&(!0===(f=n.validator(n,e.value,l,e.source,s))?l():!1===f?l(n.message||n.field+" fails"):f instanceof Array?l(f):f instanceof Error&&l(f.message)),f&&f.then&&f.then((function(){return l()}),(function(e){return l(e)}))}),(function(e){d(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!s.default.hasOwnProperty(e.type))throw new Error((0,a.format)("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?s.default.required:s.default[this.getType(e)]||!1}},u.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");s.default[e]=t},u.warning=a.warning,u.messages=l.messages,t.default=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=y(n(1009)),o=y(n(1015)),i=y(n(1016)),a=y(n(1017)),c=y(n(1018)),s=y(n(1019)),l=y(n(1020)),u=y(n(1021)),f=y(n(1022)),d=y(n(1023)),p=y(n(1024)),h=y(n(1025)),m=y(n(1026)),v=y(n(1027));function y(e){return e&&e.__esModule?e:{default:e}}t.default={string:r.default,method:o.default,number:i.default,boolean:a.default,regexp:c.default,integer:s.default,float:l.default,array:u.default,object:f.default,enum:d.default,pattern:p.default,date:h.default,url:v.default,hex:v.default,email:v.default,required:m.default}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return n();i.default.required(e,t,r,c,o,"string"),(0,a.isEmptyValue)(t,"string")||(i.default.type(e,t,r,c,o),i.default.range(e,t,r,c,o),i.default.pattern(e,t,r,c,o),!0===e.whitespace&&i.default.whitespace(e,t,r,c,o))}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42));t.default=function(e,t,n,o,i){(/^\s+$/.test(t)||""===t)&&o.push(r.format(i.messages.whitespace,e.fullField))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42)),a=n(486),c=(r=a)&&r.__esModule?r:{default:r};var s={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},l={integer:function(e){return l.number(e)&&parseInt(e,10)===e},float:function(e){return l.number(e)&&!l.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":o(e))&&!l.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(s.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(s.url)},hex:function(e){return"string"==typeof e&&!!e.match(s.hex)}};t.default=function(e,t,n,r,a){if(e.required&&void 0===t)(0,c.default)(e,t,n,r,a);else{var s=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(s)>-1?l[s](t)||r.push(i.format(a.messages.types[s],e.fullField,e.type)):s&&(void 0===t?"undefined":o(t))!==e.type&&r.push(i.format(a.messages.types[s],e.fullField,e.type))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42));t.default=function(e,t,n,o,i){var a="number"==typeof e.len,c="number"==typeof e.min,s="number"==typeof e.max,l=t,u=null,f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(l=t.length),d&&(l=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?l!==e.len&&o.push(r.format(i.messages[u].len,e.fullField,e.len)):c&&!s&&l<e.min?o.push(r.format(i.messages[u].min,e.fullField,e.min)):s&&!c&&l>e.max?o.push(r.format(i.messages[u].max,e.fullField,e.max)):c&&s&&(l<e.min||l>e.max)&&o.push(r.format(i.messages[u].range,e.fullField,e.min,e.max))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42));t.default=function(e,t,n,o,i){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&o.push(r.format(i.messages.enum,e.fullField,e.enum.join(", ")))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(42));t.default=function(e,t,n,o,i){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||o.push(r.format(i.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||o.push(r.format(i.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),void 0!==t&&i.default.type(e,t,r,c,o)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(""===t&&(t=void 0),(0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),void 0!==t&&(i.default.type(e,t,r,c,o),i.default.range(e,t,r,c,o))}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(42),i=n(49),a=(r=i)&&r.__esModule?r:{default:r};t.default=function(e,t,n,r,i){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,o.isEmptyValue)(t)&&!e.required)return n();a.default.required(e,t,r,c,i),void 0!==t&&a.default.type(e,t,r,c,i)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),(0,a.isEmptyValue)(t)||i.default.type(e,t,r,c,o)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),void 0!==t&&(i.default.type(e,t,r,c,o),i.default.range(e,t,r,c,o))}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),void 0!==t&&(i.default.type(e,t,r,c,o),i.default.range(e,t,r,c,o))}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"array")&&!e.required)return n();i.default.required(e,t,r,c,o,"array"),(0,a.isEmptyValue)(t,"array")||(i.default.type(e,t,r,c,o),i.default.range(e,t,r,c,o))}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),void 0!==t&&i.default.type(e,t,r,c,o)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();i.default.required(e,t,r,c,o),t&&i.default.enum(e,t,r,c,o)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return n();i.default.required(e,t,r,c,o),(0,a.isEmptyValue)(t,"string")||i.default.pattern(e,t,r,c,o)}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return n();if(i.default.required(e,t,r,c,o),!(0,a.isEmptyValue)(t)){var s=void 0;s="number"==typeof t?new Date(t):t,i.default.type(e,s,r,c,o),s&&i.default.range(e,s.getTime(),r,c,o)}}n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(49),a=(r=i)&&r.__esModule?r:{default:r};t.default=function(e,t,n,r,i){var c=[],s=Array.isArray(t)?"array":void 0===t?"undefined":o(t);a.default.required(e,t,r,c,i,s),n(c)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(49),i=(r=o)&&r.__esModule?r:{default:r},a=n(42);t.default=function(e,t,n,r,o){var c=e.type,s=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,c)&&!e.required)return n();i.default.required(e,t,r,s,o,c),(0,a.isEmptyValue)(t,c)||i.default.type(e,t,r,s,o)}n(s)}},function(e,t,n){"use strict";function r(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.newMessages=r;t.messages=r()},function(e,t,n){var r=n(1030);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){var r=n(216),o=n(225);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){var r=n(1032),o=n(216),i=n(484),a=n(223),c=n(225);e.exports=function(e,t,n,s){if(!a(e))return e;for(var l=-1,u=(t=o(t,e)).length,f=u-1,d=e;null!=d&&++l<u;){var p=c(t[l]),h=n;if(l!=f){var m=d[p];void 0===(h=s?s(m,p,d):void 0)&&(h=a(m)?m:i(t[l+1])?[]:{})}r(d,p,h),d=d[p]}return e}},function(e,t,n){var r=n(1033),o=n(224),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){var r=n(1034);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(222),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=f(n(45)),o=f(n(13)),i=f(n(17)),a=f(n(44));t.default=function(e){return new h(e)};var c=f(n(487)),s=n(488),l=f(s),u=n(226);function f(e){return e&&e.__esModule?e:{default:e}}function d(e,t){return 0===t.indexOf(e)&&-1!==[".","["].indexOf(t[e.length])}function p(e){return(0,u.flattenFields)(e,(function(e,t){return(0,s.isFormField)(t)}),"You must wrap field data with `createFormField`.")}var h=function(){function e(t){(0,i.default)(this,e),m.call(this),this.fields=p(t),this.fieldsMeta={}}return(0,a.default)(e,[{key:"updateFields",value:function(e){this.fields=p(e)}},{key:"flattenRegisteredFields",value:function(e){var t=this.getAllFieldsName();return(0,u.flattenFields)(e,(function(e){return t.indexOf(e)>=0}),"You cannot set a form field before rendering a field associated with the value.")}},{key:"setFields",value:function(e){var t=this,n=this.fieldsMeta,r=(0,o.default)({},this.fields,e),i={};Object.keys(n).forEach((function(e){i[e]=t.getValueFromFields(e,r)})),Object.keys(i).forEach((function(e){var n=i[e],a=t.getFieldMeta(e);if(a&&a.normalize){var c=a.normalize(n,t.getValueFromFields(e,t.fields),i);c!==n&&(r[e]=(0,o.default)({},r[e],{value:c}))}})),this.fields=r}},{key:"resetFields",value:function(e){var t=this.fields;return(e?this.getValidFieldsFullName(e):this.getAllFieldsName()).reduce((function(e,n){var r=t[n];return r&&"value"in r&&(e[n]={}),e}),{})}},{key:"setFieldMeta",value:function(e,t){this.fieldsMeta[e]=t}},{key:"setFieldsAsDirty",value:function(){var e=this;Object.keys(this.fields).forEach((function(t){var n=e.fields[t],r=e.fieldsMeta[t];n&&r&&(0,u.hasRules)(r.validate)&&(e.fields[t]=(0,o.default)({},n,{dirty:!0}))}))}},{key:"getFieldMeta",value:function(e){return this.fieldsMeta[e]=this.fieldsMeta[e]||{},this.fieldsMeta[e]}},{key:"getValueFromFields",value:function(e,t){var n=t[e];if(n&&"value"in n)return n.value;var r=this.getFieldMeta(e);return r&&r.initialValue}},{key:"getValidFieldsName",value:function(){var e=this,t=this.fieldsMeta;return t?Object.keys(t).filter((function(t){return!e.getFieldMeta(t).hidden})):[]}},{key:"getAllFieldsName",value:function(){var e=this.fieldsMeta;return e?Object.keys(e):[]}},{key:"getValidFieldsFullName",value:function(e){var t=Array.isArray(e)?e:[e];return this.getValidFieldsName().filter((function(e){return t.some((function(t){return e===t||(0,u.startsWith)(e,t)&&[".","["].indexOf(e[t.length])>=0}))}))}},{key:"getFieldValuePropValue",value:function(e){var t=e.name,n=e.getValueProps,o=e.valuePropName,i=this.getField(t),a="value"in i?i.value:e.initialValue;return n?n(a):(0,r.default)({},o,a)}},{key:"getField",value:function(e){return(0,o.default)({},this.fields[e],{name:e})}},{key:"getNotCollectedFields",value:function(){var e=this;return this.getValidFieldsName().filter((function(t){return!e.fields[t]})).map((function(t){return{name:t,dirty:!1,value:e.getFieldMeta(t).initialValue}})).reduce((function(e,t){return(0,c.default)(e,t.name,(0,l.default)(t))}),{})}},{key:"getNestedAllFields",value:function(){var e=this;return Object.keys(this.fields).reduce((function(t,n){return(0,c.default)(t,n,(0,l.default)(e.fields[n]))}),this.getNotCollectedFields())}},{key:"getFieldMember",value:function(e,t){return this.getField(e)[t]}},{key:"getNestedFields",value:function(e,t){return(e||this.getValidFieldsName()).reduce((function(e,n){return(0,c.default)(e,n,t(n))}),{})}},{key:"getNestedField",value:function(e,t){var n=this.getValidFieldsFullName(e);if(0===n.length||1===n.length&&n[0]===e)return t(e);var r="["===n[0][e.length],o=r?e.length:e.length+1;return n.reduce((function(e,n){return(0,c.default)(e,n.slice(o),t(n))}),r?[]:{})}},{key:"isValidNestedFieldName",value:function(e){return this.getAllFieldsName().every((function(t){return!d(t,e)&&!d(e,t)}))}},{key:"clearField",value:function(e){delete this.fields[e],delete this.fieldsMeta[e]}}]),e}(),m=function(){var e=this;this.setFieldsInitialValue=function(t){var n=e.flattenRegisteredFields(t),r=e.fieldsMeta;Object.keys(n).forEach((function(t){r[t]&&e.setFieldMeta(t,(0,o.default)({},e.getFieldMeta(t),{initialValue:n[t]}))}))},this.getAllValues=function(){var t=e.fieldsMeta,n=e.fields;return Object.keys(t).reduce((function(t,r){return(0,c.default)(t,r,e.getValueFromFields(r,n))}),{})},this.getFieldsValue=function(t){return e.getNestedFields(t,e.getFieldValue)},this.getFieldValue=function(t){var n=e.fields;return e.getNestedField(t,(function(t){return e.getValueFromFields(t,n)}))},this.getFieldsError=function(t){return e.getNestedFields(t,e.getFieldError)},this.getFieldError=function(t){return e.getNestedField(t,(function(t){return(0,u.getErrorStrs)(e.getFieldMember(t,"errors"))}))},this.isFieldValidating=function(t){return e.getFieldMember(t,"validating")},this.isFieldsValidating=function(t){return(t||e.getValidFieldsName()).some((function(t){return e.isFieldValidating(t)}))},this.isFieldTouched=function(t){return e.getFieldMember(t,"touched")},this.isFieldsTouched=function(t){return(t||e.getValidFieldsName()).some((function(t){return e.isFieldTouched(t)}))}};e.exports=t.default},function(e,t,n){"use strict";var r=n(1037),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?a:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=a;var l=Object.defineProperty,u=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=u(n);f&&(a=a.concat(f(n)));for(var c=s(t),m=s(n),v=0;v<a.length;++v){var y=a[v];if(!(i[y]||r&&r[y]||m&&m[y]||c&&c[y])){var _=d(n,y);try{l(t,y,_)}catch(e){}}}}return t}},function(e,t,n){"use strict";e.exports=n(1038)},function(e,t,n){"use strict"; /** @license React v16.8.6 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,c=r?Symbol.for("react.strict_mode"):60108,s=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,h=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116;function y(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case a:case s:case c:case h:return e;default:switch(e=e&&e.$$typeof){case u:case p:case l:return e;default:return t}}case v:case m:case i:return t}}}function _(e){return y(e)===d}t.typeOf=y,t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=v,t.Memo=m,t.Portal=i,t.Profiler=s,t.StrictMode=c,t.Suspense=h,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===c||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p)},t.isAsyncMode=function(e){return _(e)||y(e)===f},t.isConcurrentMode=_,t.isContextConsumer=function(e){return y(e)===u},t.isContextProvider=function(e){return y(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return y(e)===p},t.isFragment=function(e){return y(e)===a},t.isLazy=function(e){return y(e)===v},t.isMemo=function(e){return y(e)===m},t.isPortal=function(e){return y(e)===i},t.isProfiler=function(e){return y(e)===s},t.isStrictMode=function(e){return y(e)===c},t.isSuspense=function(e){return y(e)===h}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mixin=void 0;var r,o=n(485),i=(r=o)&&r.__esModule?r:{default:r};var a=t.mixin={getForm:function(){return{getFieldsValue:this.fieldsStore.getFieldsValue,getFieldValue:this.fieldsStore.getFieldValue,getFieldInstance:this.getFieldInstance,setFieldsValue:this.setFieldsValue,setFields:this.setFields,setFieldsInitialValue:this.fieldsStore.setFieldsInitialValue,getFieldDecorator:this.getFieldDecorator,getFieldProps:this.getFieldProps,getFieldsError:this.fieldsStore.getFieldsError,getFieldError:this.fieldsStore.getFieldError,isFieldValidating:this.fieldsStore.isFieldValidating,isFieldsValidating:this.fieldsStore.isFieldsValidating,isFieldsTouched:this.fieldsStore.isFieldsTouched,isFieldTouched:this.fieldsStore.isFieldTouched,isSubmitting:this.isSubmitting,submit:this.submit,validateFields:this.validateFields,resetFields:this.resetFields}}};t.default=function(e){return(0,i.default)(e,[a])}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=d(n(0)),o=u(n(3)),i=d(n(1)),a=n(43),c=u(n(489)),s=n(85),l=d(n(1041));function u(e){return e&&e.__esModule?e:{default:e}}function f(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return f=function(){return e},e}function d(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=f();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=M(e);if(t){var o=M(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return b(this,n)}}function b(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function M(e){return(M=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},O=(0,s.tuple)("top","middle","bottom","stretch"),S=(0,s.tuple)("start","end","center","space-around","space-between"),C=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(u,e);var t,n,i,s=g(u);function u(){var e;return v(this,u),(e=s.apply(this,arguments)).state={screens:{}},e.renderRow=function(t){var n,i=t.getPrefixCls,a=e.props,s=a.prefixCls,l=a.type,u=a.justify,f=a.align,d=a.className,p=a.style,v=a.children,y=w(a,["prefixCls","type","justify","align","className","style","children"]),_=i("row",s),g=e.getGutter(),b=(0,o.default)((m(n={},_,!l),m(n,"".concat(_,"-").concat(l),l),m(n,"".concat(_,"-").concat(l,"-").concat(u),l&&u),m(n,"".concat(_,"-").concat(l,"-").concat(f),l&&f),n),d),M=h(h(h({},g[0]>0?{marginLeft:g[0]/-2,marginRight:g[0]/-2}:{}),g[1]>0?{marginTop:g[1]/-2,marginBottom:g[1]/-2}:{}),p),O=h({},y);return delete O.gutter,r.createElement(c.default.Provider,{value:{gutter:g}},r.createElement("div",h({},O,{className:b,style:M}),v))},e}return t=u,(n=[{key:"componentDidMount",value:function(){var e=this;this.token=l.default.subscribe((function(t){var n=e.props.gutter;("object"===p(n)||Array.isArray(n)&&("object"===p(n[0])||"object"===p(n[1])))&&e.setState({screens:t})}))}},{key:"componentWillUnmount",value:function(){l.default.unsubscribe(this.token)}},{key:"getGutter",value:function(){var e=[0,0],t=this.props.gutter,n=this.state.screens;return(Array.isArray(t)?t:[t,0]).forEach((function(t,r){if("object"===p(t))for(var o=0;o<l.responsiveArray.length;o++){var i=l.responsiveArray[o];if(n[i]&&void 0!==t[i]){e[r]=t[i];break}}else e[r]=t||0})),e}},{key:"render",value:function(){return r.createElement(a.ConfigConsumer,null,this.renderRow)}}])&&y(t.prototype,n),i&&y(t,i),u}(r.Component);t.default=C,C.defaultProps={gutter:0},C.propTypes={type:i.oneOf(["flex"]),align:i.oneOf(O),justify:i.oneOf(S),className:i.string,children:i.node,gutter:i.oneOfType([i.object,i.number,i.array]),prefixCls:i.string}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(){return(o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var i;if(Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.responsiveMap=t.responsiveArray=void 0,"undefined"!=typeof window){window.matchMedia||(window.matchMedia=function(e){return{media:e,matches:!1,addListener:function(){},removeListener:function(){}}}),i=n(1042)}t.responsiveArray=["xxl","xl","lg","md","sm","xs"];var a={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"};t.responsiveMap=a;var c=[],s=-1,l={},u={dispatch:function(e){return l=e,!(c.length<1)&&(c.forEach((function(e){e.func(l)})),!0)},subscribe:function(e){0===c.length&&this.register();var t=(++s).toString();return c.push({token:t,func:e}),e(l),t},unsubscribe:function(e){0===(c=c.filter((function(t){return t.token!==e}))).length&&this.unregister()},unregister:function(){Object.keys(a).map((function(e){return i.unregister(a[e])}))},register:function(){var e=this;Object.keys(a).map((function(t){return i.register(a[t],{match:function(){var n=o(o({},l),r({},t,!0));e.dispatch(n)},unmatch:function(){var n=o(o({},l),r({},t,!1));e.dispatch(n)},destroy:function(){}})}))}};t.default=u},function(e,t,n){var r=n(1043);e.exports=new r},function(e,t,n){var r=n(1044),o=n(490),i=o.each,a=o.isFunction,c=o.isArray;function s(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}s.prototype={constructor:s,register:function(e,t,n){var o=this.queries,s=n&&this.browserIsIncapable;return o[e]||(o[e]=new r(e,s)),a(t)&&(t={match:t}),c(t)||(t=[t]),i(t,(function(t){a(t)&&(t={match:t}),o[e].addHandler(t)})),this},unregister:function(e,t){var n=this.queries[e];return n&&(t?n.removeHandler(t):(n.clear(),delete this.queries[e])),this}},e.exports=s},function(e,t,n){var r=n(1045),o=n(490).each;function i(e,t){this.query=e,this.isUnconditional=t,this.handlers=[],this.mql=window.matchMedia(e);var n=this;this.listener=function(e){n.mql=e.currentTarget||e,n.assess()},this.mql.addListener(this.listener)}i.prototype={constuctor:i,addHandler:function(e){var t=new r(e);this.handlers.push(t),this.matches()&&t.on()},removeHandler:function(e){var t=this.handlers;o(t,(function(n,r){if(n.equals(e))return n.destroy(),!t.splice(r,1)}))},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){o(this.handlers,(function(e){e.destroy()})),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var e=this.matches()?"on":"off";o(this.handlers,(function(t){t[e]()}))}},e.exports=i},function(e,t){function n(e){this.options=e,!e.deferSetup&&this.setup()}n.prototype={constructor:n,setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(e){return this.options===e||this.options.match===e}},e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=u(n(0)),o=u(n(1)),i=s(n(3)),a=s(n(489)),c=n(43);function s(e){return e&&e.__esModule?e:{default:e}}function l(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return l=function(){return e},e}function u(e){if(e&&e.__esModule)return e;if(null===e||"object"!==p(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var i=r?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(n,o,i):n[o]=e[o]}return n.default=e,t&&t.set(e,n),n}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=b(e);if(t){var o=b(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return _(this,n)}}function _(e,t){return!t||"object"!==p(t)&&"function"!=typeof t?g(e):t}function g(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var M=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},w=o.oneOfType([o.object,o.number]),O=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}(l,e);var t,n,o,s=y(l);function l(){var e;return h(this,l),(e=s.apply(this,arguments)).renderCol=function(t){var n,o=t.getPrefixCls,c=g(e).props,s=c.prefixCls,l=c.span,u=c.order,h=c.offset,m=c.push,v=c.pull,y=c.className,_=c.children,b=M(c,["prefixCls","span","order","offset","push","pull","className","children"]),w=o("col",s),O={};["xs","sm","md","lg","xl","xxl"].forEach((function(e){var t,n={},r=c[e];"number"==typeof r?n.span=r:"object"===p(r)&&(n=r||{}),delete b[e],O=d(d({},O),(f(t={},"".concat(w,"-").concat(e,"-").concat(n.span),void 0!==n.span),f(t,"".concat(w,"-").concat(e,"-order-").concat(n.order),n.order||0===n.order),f(t,"".concat(w,"-").concat(e,"-offset-").concat(n.offset),n.offset||0===n.offset),f(t,"".concat(w,"-").concat(e,"-push-").concat(n.push),n.push||0===n.push),f(t,"".concat(w,"-").concat(e,"-pull-").concat(n.pull),n.pull||0===n.pull),t))}));var S=(0,i.default)(w,(f(n={},"".concat(w,"-").concat(l),void 0!==l),f(n,"".concat(w,"-order-").concat(u),u),f(n,"".concat(w,"-offset-").concat(h),h),f(n,"".concat(w,"-push-").concat(m),m),f(n,"".concat(w,"-pull-").concat(v),v),n),y,O);return r.createElement(a.default.Consumer,null,(function(e){var t=e.gutter,n=b.style;return t&&(n=d(d(d({},t[0]>0?{paddingLeft:t[0]/2,paddingRight:t[0]/2}:{}),t[1]>0?{paddingTop:t[1]/2,paddingBottom:t[1]/2}:{}),n)),r.createElement("div",d({},b,{style:n,className:S}),_)}))},e}return t=l,(n=[{key:"render",value:function(){return r.createElement(c.ConfigConsumer,null,this.renderCol)}}])&&m(t.prototype,n),o&&m(t,o),l}(r.Component);t.default=O,O.propTypes={span:o.number,order:o.number,offset:o.number,push:o.number,pull:o.number,className:o.string,children:o.node,xs:w,sm:w,md:w,lg:w,xl:w,xxl:w}},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=n(7),a=n.n(i),c=n(70),s=n(231),l=function(){return Math.random().toString(36).substring(7).split("").join(".")},u={INIT:"@@redux/INIT"+l(),REPLACE:"@@redux/REPLACE"+l(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+l()}};function f(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function d(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(d)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,a=[],c=a,l=!1;function p(){c===a&&(c=a.slice())}function h(){if(l)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return i}function m(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(l)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return p(),c.push(e),function(){if(t){if(l)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,p();var n=c.indexOf(e);c.splice(n,1),a=null}}}function v(e){if(!f(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(l)throw new Error("Reducers may not dispatch actions.");try{l=!0,i=o(i,e)}finally{l=!1}for(var t=a=c,n=0;n<t.length;n++){(0,t[n])()}return e}function y(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");o=e,v({type:u.REPLACE})}function _(){var e,t=m;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(h())}return n(),{unsubscribe:t(n)}}})[s.a]=function(){return this},e}return v({type:u.INIT}),(r={dispatch:v,subscribe:m,getState:h,replaceReducer:y})[s.a]=_,r}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function v(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function y(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return m({},n,{dispatch:r=v.apply(void 0,i)(n.dispatch)})}}}function _(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(o){return"function"==typeof o?o(n,r,e):t(o)}}}}var g=_();g.withExtraArgument=_;var b=g,M=n(230),w=n.n(M); /*! * is-plain-object <https://github.com/jonschlinkert/is-plain-object> * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ function O(e){return!0==(null!=(t=e)&&"object"==typeof t&&!1===Array.isArray(t))&&"[object Object]"===Object.prototype.toString.call(e); /*! * isobject <https://github.com/jonschlinkert/isobject> * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ var t}function S(e){var t,n;return!1!==O(e)&&("function"==typeof(t=e.constructor)&&(!1!==O(n=t.prototype)&&!1!==n.hasOwnProperty("isPrototypeOf")))}var C=n(497),x=n.n(C),k=Object(r.createContext)(),L="undefined"!=typeof window?r.useLayoutEffect:r.useEffect;function E(e){return function(t,n){var o=Object(r.useContext)(e),i=Object(r.useRef)(t),a=Object(r.useRef)(),c=Object(r.useRef)(!0),s=Object(r.useRef)(),l=Object(r.useReducer)((function(e){return e+1}),0)[1];if(s.current||i.current!==t||void 0===a.current)try{a.current=t(o.getState())}catch(e){throw s.current||e}return L((function(){i.current=t,s.current=void 0})),L((function(){var e=function(){try{var e=i.current(o.getState());if("function"==typeof n?n(a.current,e):a.current===e)return;a.current=e}catch(e){s.current=e}c.current&&l({})},t=o.subscribe(e);return e(),function(){c.current=!1,t()}}),[]),a.current}}var T=E(k);function P(e){return function(t){return t(Object(r.useContext)(e).getActions())}}var j=P(k);function z(e){return function(){return Object(r.useContext)(e).dispatch}}z(k);function D(e){return function(){var t=Object(r.useContext)(e),n=Object(r.useState)(!1),o=n[0],i=n[1];return Object(r.useEffect)((function(){t.persist.resolveRehydration().then((function(){return i(!0)}))}),[]),o}}D(k);function N(){return(N=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var H=function(e){return e.a={},e},A=[function(e){return e}],Y=function(e,t){return"function"==typeof t?(t.c={stateResolvers:e},t):(e.c={stateResolvers:A},e)},I=function(e){return function e(t){var n=Object.keys(t).reduce((function(e,n){return null==Object.getOwnPropertyDescriptor(t,n).get&&(e[n]=t[n]),e}),{});return Object.keys(n).forEach((function(t){S(n[t])&&(n[t]=e(n[t]))})),n}(e)},V=function(e){return null!=e&&"object"==typeof e&&"function"==typeof e.then};function F(e,t){return e.reduce((function(e,t){return S(e)?e[t]:void 0}),t)}var R=function(e,t,n){0!==e.length?e.reduce((function(t,r,o){return o+1===e.length?t[r]=n:t[r]=t[r]||{},t[r]}),t):"object"==typeof n&&(Object.keys(t).forEach((function(e){delete t[e]})),Object.keys(n).forEach((function(e){t[e]=n[e]})))};function W(e){return void 0===e&&(e=!1),function(t,n,r){if(e){var o=F(t,n),i=r(o);return o!==i?function e(t,n,r){if(0===t.length)return r;var o=N({},n),i=t[0];return 1===t.length?o[i]=r:o[i]=e(t.slice(1),o[i],r),o}(t,n,i):n}if(0===t.length){var a=Object(c.a)(n),s=r(a);return s?Object(c.c)(s)?Object(c.b)(s):s:Object(c.b)(a)}var l=t.slice(0,t.length-1),u=Object(c.a)(n),f=F(l,n),d=r(F(t,u));return d&&(f[t[t.length-1]]=d),Object(c.b)(u)}}function U(e,t,n,r){var o=W(e),i=function(e,n){var r=t[n.type];return r?function(e,t,n,r){return o(r,e,(function(e){return n(e,t.payload)}))}(e,n,r,(r.a||r.aO).parent):e};return function(e,t){var a=i(e,t),c=n.length>0?function(e,t){return n.reduce((function(e,n){var r=n.parentPath,i=n.key,a=n.reducer;return o(r,e,(function(e){return e[i]=a(e[i],t),e}))}),e)}(a,t):a;return e!==c&&r.forEach((function(e){var t=e.parentPath;(0,e.bindComputedProperty)(F(t,c))})),c}}var B={getItem:function(){},setItem:function(){},removeItem:function(){}},K="undefined"!=typeof window&&void 0!==window.localStorage?window.localStorage:B,q="undefined"!=typeof window&&void 0!==window.sessionStorage?window.sessionStorage:B;function G(e,t){void 0===e&&(e=q),void 0===t&&(t=[]),"string"==typeof e&&(e="localStorage"===e?K:"sessionStorage"===e?q:B);var n=t.reverse(),r=function(t,r){var o=r.substr(r.indexOf("@")+1),i=e===K||e===q?JSON.parse(t).data:t;return n.reduce((function(e,t){return t.out(e,o)}),i)},o=V(e.getItem("_"));return{isAsync:o,getItem:function(t){if(o)return e.getItem(t).then((function(e){return null!=e?r(e,t):void 0}));var n=e.getItem(t);return null!=n?r(n,t):void 0},setItem:function(n,r){return e.setItem(n,function(n,r){var o=r.substr(r.indexOf("@")+1),i=t.reduce((function(e,t){return t.in(e,o)}),n);return e===K||e===q?JSON.stringify({data:i}):i}(r,n))},removeItem:function(t){return e.removeItem(t)}}}function $(e,t,n){var r=Object.keys(e);return t.length>0&&(r=r.reduce((function(e,n){return-1!==t.findIndex((function(e){return e===n}))?[].concat(e,[n]):e}),[])),n.length>0&&(r=r.reduce((function(e,t){return-1!==n.findIndex((function(e){return e===t}))?e:[].concat(e,[t])}),[])),r}function J(e){return function(){return function(t){return function(n){var r=t(n);if(n&&e.internals.listenerActionMap[n.type]&&e.internals.listenerActionMap[n.type].length>0){var o=e.internals.actionCreatorDict[n.type];e.internals.listenerActionMap[n.type].forEach((function(e){e({type:o?o.type:n.type,payload:n.payload,error:n.error,result:n.result})}))}return r}}}}function X(e){return function(t){return function(n){return function(r){return e.internals.computedState.currentState=t.getState(),e.internals.computedState.isInReducer=!0,n(r)}}}}function Q(e,t,n,r){var o=t,i={},a={},c={},s={},l=[],u=[],f={},d={},p=[],h=[],m={isInReducer:!1,currentState:o};return function e(d,v){return Object.keys(d).forEach((function(y){var _=d[y],g=[].concat(v,[y]),b={parent:v,path:g,key:y},M=function(){var e=F(v,t);R(g,o,e&&y in e?e[y]:_)};if("p"!==y)if("function"==typeof _)if(_.a||_.aO){var O=_,C=function(e,t,n){var r=(e.a?"@action":"@actionOn")+"."+t.path.join("."),o=e.a||e.aO;o.actionName=t.key,o.type=r,o.parent=t.parent,o.path=t.path;var i=function(t){var i={type:r,payload:t};return e.aO&&o.resolvedTargets&&(t.resolvedTargets=[].concat(o.resolvedTargets)),n.dispatch(i)};return i.type=r,i}(_,b,r);i[C.type]=C,c[C.type]=O,"ePRS"!==b.key&&(_.aO?(p.push(_),R(g,f,C)):R(g,a,C))}else if(_.t||_.tO){var x=function(e,t,n,r,o){var i=e.t||e.tO;return function(a){var c={dispatch:n.dispatch,getState:function(){return F(t.parent,n.getState())},getStoreActions:function(){return o},getStoreState:n.getState,injections:r,meta:t};return e.tO&&i.resolvedTargets&&(a.resolvedTargets=[].concat(i.resolvedTargets)),e(F(t.parent,o),a,c)}}(_,b,r,n,a),k=function(e,t,n,r){var o=(e.t?"@thunk":"@thunkOn")+"."+t.path.join("."),i=o+"(start)",a=o+"(success)",c=o+"(fail)",s=e.t||e.tO;s.type=o,s.actionName=t.key,s.parent=t.parent,s.path=t.path;var l=function(e){var t=function(t){n.dispatch({type:c,payload:e,error:t}),n.dispatch({type:o,payload:e,error:t})},s=function(t){n.dispatch({type:a,payload:e,result:t}),n.dispatch({type:o,payload:e,result:t})};n.dispatch({type:i,payload:e});try{var l=n.dispatch((function(){return r(e)}));return V(l)?l.then((function(e){return s(e),e})).catch((function(e){throw t(e),e})):(s(l),l)}catch(e){throw t(e),e}};return l.type=o,l.startType=i,l.successType=a,l.failType=c,l}(_,b,r,x);R(g,s,x),i[k.type]=k,_.tO?(p.push(_),R(g,f,k)):R(g,a,k)}else if(_.c){var L=F(v,o),E=function(e,t,n,r,o){var i=n.c,a=w()(1)(n);return function(n){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var t;if(r.isInReducer)t=r.currentState;else{if(null==o.getState)return;try{t=o.getState()}catch(e){return void 0}}var n=F(e,t),c=i.stateResolvers.map((function(e){return e(n,t)}));return a.apply(void 0,c)}})}}(v,y,_,m,r);E(L),l.push({key:y,parentPath:v,bindComputedProperty:E})}else _.r?u.push({key:y,parentPath:v,reducer:_}):M();else if(S(_)){null==F(g,o)&&R(g,o,{}),e(_,g)}else M();else h.push(function(e,t){return void 0===t&&(t={}),{path:e,config:{blacklist:t.blacklist||[],mergeStrategy:t.mergeStrategy||"merge",storage:G(t.storage,t.transformers),whitelist:t.whitelist||[]}}}(v,_))}))}(e,[]),function(e,t,n,r){e.forEach((function(e){var o=e.aO||e.tO,i=o.targetResolver(F(o.parent,t),t),a=(Array.isArray(i)?i:[i]).reduce((function(e,t){return"function"==typeof t&&t.type&&n[t.type]?e.push(t.type):"string"==typeof t&&e.push(t),e}),[]);o.resolvedTargets=a,a.forEach((function(e){var t=r[e]||[];t.push(n[o.type]),r[e]=t}))}))}(p,a,i,d),{actionCreatorDict:i,actionCreators:a,actionReducersDict:c,computedProperties:l,customReducers:u,computedState:m,defaultState:o,listenerActionCreators:f,listenerActionMap:d,persistenceConfig:h}}function Z(e,t){void 0===t&&(t={});var n=I(e),r=t,o=r.compose,i=r.devTools,a=void 0===i||i,c=r.disableImmer,s=void 0!==c&&c,l=r.enhancers,u=void 0===l?[]:l,f=r.initialState,p=void 0===f?{}:f,h=r.injections,m=r.middleware,_=void 0===m?[]:m,g=r.mockActions,M=void 0!==g&&g,w=r.name,O=void 0===w?"EasyPeasyStore":w,C=r.reducerEnhancer,k=void 0===C?function(e){return e}:C,L=function(e){return N({},e,{ePRS:H((function(e,t){return t}))})},E={},T=L(n),P=[],j=function(e){return"["+O+"]@"+e.join(".")},z=function(e,t){return x()((function(){t.internals.persistenceConfig.forEach((function(n){var r=n.path,o=n.config,i=o.storage,a=o.whitelist,c=o.blacklist,s=t.getState();$(I(F(r,s)),a,c).forEach((function(t){var n=[].concat(r,[t]);i.setItem(e(n),F(n,s))}))}))}),1e3)}(j,E),D=function(e,t){return function(){return function(n){return function(r){var o=n(r);return r&&"@action.ePRS"!==r.type&&t.internals.persistenceConfig.length>0&&e(o),o}}}}(z,E),A=function(e,t){return function(){return new Promise((function(n,r){t.internals.persistenceConfig.forEach((function(o){var i=o.path,a=o.config,c=a.storage,s=a.whitelist,l=a.blacklist,u=$(F(i,t.getState()),s,l);u.length>0?Promise.all(u.map((function(t){var n=[].concat(i,[t]);return c.removeItem(e(n))}))).then((function(){return n()}),r):n()}))}))}}(j,E),Y=function(e){return E.internals.actionCreatorDict["@action.ePRS"](e)},W=function(e){void 0===e&&(e={}),E.internals=function(e){var t=e.disableImmer,n=e.initialState,r=e.injections,o=e.model,i=e.reducerEnhancer,a=Q(o,n,r,e.references),c=a.actionCreatorDict,s=a.actionCreators,l=a.actionReducersDict,u=a.computedState,f=a.computedProperties,d=a.customReducers;return{actionCreatorDict:c,actionCreators:s,computedProperties:f,computedState:u,defaultState:a.defaultState,listenerActionCreators:a.listenerActionCreators,listenerActionMap:a.listenerActionMap,persistenceConfig:a.persistenceConfig,reducer:i(U(t,l,d,f))}}({disableImmer:s,initialState:e,injections:h,model:T,reducerEnhancer:k,references:E})},B=o||(a&&"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({name:O}):v);W(p);var K=[X(E),b].concat(_,[J(E),D]);M&&K.push((function(){return function(){return function(e){null!=e&&P.push(e)}}}));var q=d(E.internals.reducer,E.internals.defaultState,B.apply(void 0,[y.apply(void 0,K)].concat(u)));q.subscribe((function(){E.internals.computedState.isInReducer=!1})),E.dispatch=q.dispatch,E.getState=q.getState;var G=function(){Object.keys(q.dispatch).forEach((function(e){delete q.dispatch[e]})),Object.keys(E.internals.actionCreators).forEach((function(e){q.dispatch[e]=E.internals.actionCreators[e]}))};G();var Z=function(e){var t=q.getState();e&&delete t[e],W(t),q.replaceReducer(E.internals.reducer),Y(E.internals.defaultState),G()},ee=function(e,t,n){var r=Promise.resolve();return n.internals.persistenceConfig.length>0&&n.internals.persistenceConfig.forEach((function(o){var i=o.path,a=o.config,c=a.blacklist,s=a.mergeStrategy,l=a.storage,u=a.whitelist,f=n.internals.defaultState,d=$(I(F(i,f)),u,c),p=function(e,t){if("overwrite"===s)R(i,e,t);else if("merge"===s){var n=F(i,e);Object.keys(t).forEach((function(e){n[e]=t[e]}))}else if("mergeDeep"===s){!function e(t,n){Object.keys(n).forEach((function(r){var o=n[r];S(o)?(S(t[r])||(t[r]={}),e(t[r],o)):t[r]=o}))}(F(i,e),t)}};if(l.isAsync){var h=d.reduce((function(t,n){var r=[].concat(i,[n]),o=l.getItem(e(r));return V(o)&&t.push({key:n,dataPromise:o}),t}),[]);h.length>0&&(r=Promise.all(h.map((function(e){return e.dataPromise}))).then((function(e){var n=e.reduce((function(e,t,n){var r=h[n].key;return void 0!==t&&(e[r]=t),e}),{});0!==Object.keys(n).length&&(p(f,n),t(f))})))}else{var m=d.reduce((function(t,n){var r=[].concat(i,[n]),o=l.getItem(e(r));return void 0!==o&&(t[n]=o),t}),{});p(f,m),t(f)}})),r}(j,Y,E);return Object.assign(q,{addModel:function(e,t){T[e],T[e]=t,Z()},clearMockedActions:function(){P=[]},getActions:function(){return E.internals.actionCreators},getListeners:function(){return E.internals.listenerActionCreators},getMockedActions:function(){return[].concat(P)},persist:{clear:A,flush:function(){return z.flush()},resolveRehydration:function(){return ee}},reconfigure:function(e){T=L(e),Z()},removeModel:function(e){T[e]&&(delete T[e],Z(e))}})}function ee(e){var t=e.children,n=e.store;return o.a.createElement(k.Provider,{value:n},t)}Object(c.e)(!1);var te=n(31),ne=n.n(te),re=(n(525),n(526),n(235)),oe=n.n(re),ie=n(91),ae=n.n(ie),ce=(n(527),n(528),n(529),n(530),n(531),n(499)),se=n.n(ce),le=n(50),ue=n(11),fe=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function de(e){return null!=e&&"function"==typeof e["@@transducer/step"]}function pe(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),o=r.pop();if(!fe(o)){for(var i=0;i<e.length;){if("function"==typeof o[e[i]])return o[e[i]].apply(o,r);i+=1}if(de(o)){var a=t.apply(null,r);return a(o)}}return n.apply(this,arguments)}}function he(e){return"[object Object]"===Object.prototype.toString.call(e)}var me=n(15);function ve(e){return"[object String]"===Object.prototype.toString.call(e)}var ye=Object(me.a)((function(e){return!!fe(e)||!!e&&("object"==typeof e&&(!ve(e)&&(1===e.nodeType?!!e.length:0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))})),_e=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();var ge=n(68),be=Object(ue.a)((function(e,t){return Object(ge.a)(e.length,(function(){return e.apply(t,arguments)}))}));function Me(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function we(e,t,n,r){return e["@@transducer/result"](n[r](be(e["@@transducer/step"],e),t))}var Oe="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function Se(e,t,n){if("function"==typeof e&&(e=function(e){return new _e(e)}(e)),ye(n))return function(e,t,n){for(var r=0,o=n.length;r<o;){if((t=e["@@transducer/step"](t,n[r]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r+=1}return e["@@transducer/result"](t)}(e,t,n);if("function"==typeof n["fantasy-land/reduce"])return we(e,t,n,"fantasy-land/reduce");if(null!=n[Oe])return Me(e,t,n[Oe]());if("function"==typeof n.next)return Me(e,t,n);if("function"==typeof n.reduce)return we(e,t,n,"reduce");throw new TypeError("reduce: list must be array or iterable")}var Ce=function(){return this.xf["@@transducer/init"]()},xe=function(e){return this.xf["@@transducer/result"](e)},ke=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Ce,e.prototype["@@transducer/result"]=xe,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}(),Le=Object(ue.a)((function(e,t){return new ke(e,t)}));function Ee(e,t){return Object.prototype.hasOwnProperty.call(t,e)}var Te=Object.prototype.toString,Pe=function(){return"[object Arguments]"===Te.call(arguments)?function(e){return"[object Arguments]"===Te.call(e)}:function(e){return Ee("callee",e)}}(),je=!{toString:null}.propertyIsEnumerable("toString"),ze=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],De=function(){return arguments.propertyIsEnumerable("length")}(),Ne=function(e,t){for(var n=0;n<e.length;){if(e[n]===t)return!0;n+=1}return!1},He="function"!=typeof Object.keys||De?Object(me.a)((function(e){if(Object(e)!==e)return[];var t,n,r=[],o=De&&Pe(e);for(t in e)!Ee(t,e)||o&&"length"===t||(r[r.length]=t);if(je)for(n=ze.length-1;n>=0;)Ee(t=ze[n],e)&&!Ne(r,t)&&(r[r.length]=t),n-=1;return r})):Object(me.a)((function(e){return Object(e)!==e?[]:Object.keys(e)})),Ae=Object(ue.a)(pe(["filter"],Le,(function(e,t){return he(t)?Se((function(n,r){return e(t[r])&&(n[r]=t[r]),n}),{},He(t)):function(e,t){for(var n=0,r=t.length,o=[];n<r;)e(t[n])&&(o[o.length]=t[n]),n+=1;return o}(e,t)}))),Ye=Object(ue.a)((function(e,t){return t>e?t:e}));function Ie(e,t){for(var n=0,r=t.length,o=Array(r);n<r;)o[n]=e(t[n]),n+=1;return o}var Ve=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Ce,e.prototype["@@transducer/result"]=xe,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}(),Fe=Object(ue.a)((function(e,t){return new Ve(e,t)})),Re=Object(ue.a)(pe(["fantasy-land/map","map"],Fe,(function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Object(le.a)(t.length,(function(){return e.call(this,t.apply(this,arguments))}));case"[object Object]":return Se((function(n,r){return n[r]=e(t[r]),n}),{},He(t));default:return Ie(e,t)}}))),We=Number.isInteger||function(e){return e<<0===e},Ue=Object(ue.a)((function(e,t){var n=e<0?t.length+e:e;return ve(t)?t.charAt(n):t[n]})),Be=Object(ue.a)((function(e,t){return e.map((function(e){for(var n,r=t,o=0;o<e.length;){if(null==r)return;n=e[o],r=We(n)?Ue(n,r):r[n],o+=1}return r}))})),Ke=Object(ue.a)((function(e,t){return Be([e],t)[0]})),qe=Object(ue.a)((function(e,t){return Ke([e],t)})),Ge=Object(ue.a)((function(e,t){return Re(qe(e),t)})),$e=n(25);function Je(e){return function t(n,r,o){switch(arguments.length){case 0:return t;case 1:return Object($e.a)(n)?t:Object(ue.a)((function(t,r){return e(n,t,r)}));case 2:return Object($e.a)(n)&&Object($e.a)(r)?t:Object($e.a)(n)?Object(ue.a)((function(t,n){return e(t,r,n)})):Object($e.a)(r)?Object(ue.a)((function(t,r){return e(n,t,r)})):Object(me.a)((function(t){return e(n,r,t)}));default:return Object($e.a)(n)&&Object($e.a)(r)&&Object($e.a)(o)?t:Object($e.a)(n)&&Object($e.a)(r)?Object(ue.a)((function(t,n){return e(t,n,o)})):Object($e.a)(n)&&Object($e.a)(o)?Object(ue.a)((function(t,n){return e(t,r,n)})):Object($e.a)(r)&&Object($e.a)(o)?Object(ue.a)((function(t,r){return e(n,t,r)})):Object($e.a)(n)?Object(me.a)((function(t){return e(t,r,o)})):Object($e.a)(r)?Object(me.a)((function(t){return e(n,t,o)})):Object($e.a)(o)?Object(me.a)((function(t){return e(n,r,t)})):e(n,r,o)}}}var Xe=Je(Se),Qe=Object(me.a)((function(e){return Object(le.a)(Xe(Ye,0,Ge("length",e)),(function(){for(var t=0,n=e.length;t<n;){if(!e[t].apply(this,arguments))return!1;t+=1}return!0}))})),Ze=le.a(2,(function(e,t){return""===e||"string"==typeof t.value&&t.value.toLowerCase().includes(e.toLowerCase())||"string"==typeof t.name&&t.name.toLowerCase().includes(e.toLowerCase())})),et=le.a(2,(function(e,t){return"all"===e||t.valueType===e})),tt=le.a(2,(function(e,t){return"all"===e||t.registered.startsWith(e)})),nt=n(1057);function rt(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function ot(e,t,n){for(var r=0,o=n.length;r<o;){if(e(t,n[r]))return!0;r+=1}return!1}var it="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t},at=Object(me.a)((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function ct(e,t,n,r){var o=rt(e);function i(e,t){return st(e,t,n.slice(),r.slice())}return!ot((function(e,t){return!ot(i,t,e)}),rt(t),o)}function st(e,t,n,r){if(it(e,t))return!0;var o,i,a=at(e);if(a!==at(t))return!1;if(null==e||null==t)return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(a){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===(o=e.constructor,null==(i=String(o).match(/^function (\w*)/))?"":i[1]))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!it(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!it(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var c=n.length-1;c>=0;){if(n[c]===e)return r[c]===t;c-=1}switch(a){case"Map":return e.size===t.size&&ct(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&ct(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var s=He(e);if(s.length!==He(t).length)return!1;var l=n.concat([e]),u=r.concat([t]);for(c=s.length-1;c>=0;){var f=s[c];if(!Ee(f,t)||!st(t[f],e[f],l,u))return!1;c-=1}return!0}var lt=Object(ue.a)((function(e,t){return st(e,t,[],[])}));function ut(e,t){return function(e,t,n){var r,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n<e.length;){if(0===(o=e[n])&&1/o===r)return n;n+=1}return-1}if(t!=t){for(;n<e.length;){if("number"==typeof(o=e[n])&&o!=o)return n;n+=1}return-1}return e.indexOf(t,n);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,n);case"object":if(null===t)return e.indexOf(t,n)}for(;n<e.length;){if(lt(e[n],t))return n;n+=1}return-1}(t,e,0)>=0}var ft=Object(ue.a)(ut),dt=function(e){return Z({items:e,setItems:H((function(e,t){e.items=t})),filteredItems:Y((function(e){return function(e,t,n,r){return Ae(Qe([Ze(e),et(t),tt(n)]),r)}(e.filters.search,e.filters.type,e.filters.registeredState,e.items)})),selectedItems:Y((function(e){return e.items.filter(nt.a(ft)(e.selected))})),filters:{search:"",type:"all",registeredState:"all"},setSearch:H((function(e,t){e.filters.search=t})),setType:H((function(e,t){e.filters.type=t})),setRegisteredState:H((function(e,t){e.filters.registeredState=t})),error:"",setError:H((function(e,t){e.error=t})),resetError:H((function(e){e.error=""})),selected:[],setSelected:H((function(e,t){e.selected=t})),resetSelected:H((function(e){e.selected=[]})),selectedRowKeys:[],setSelectedRowKeys:H((function(e,t){e.selectedRowKeys=t})),resetSelectedRowKeys:H((function(e){e.selectedRowKeys=[]})),clickedRowKeys:[],setClickedRowKeys:H((function(e,t){e.clickedRowKeys=t(e.clickedRowKeys)})),requestInProgress:!1,setRequestInProgress:H((function(e){e.requestInProgress=!0})),resetRequestInProgress:H((function(e){e.requestInProgress=!1})),exportModalOpened:!1,setExportModalOpened:H((function(e){e.exportModalOpened=!0})),resetExportModalOpened:H((function(e){e.exportModalOpened=!1}))})},pt=function(e){return T(Ke(Array.isArray(e)?e:[e]))},ht=function(e){return j(qe(e))},mt=function(e,t){return[pt(e),ht(t)]},vt=function(e){return e[0].toUpperCase()+e.slice(1)},yt=function(e){return[pt(e),ht("set"+vt(e)),ht("reset"+vt(e))]},_t=se.a.Search,gt=function(e){var t=e.placeholder,n=ht("setSearch"),r=ht("resetError");return o.a.createElement(_t,{placeholder:t,onChange:function(e){var t=e.target.value;n(t),r()},__self:void 0,__source:{fileName:"/builds/wpml/wpml-string-translation/src/js/admin-strings/components/Search.js",lineNumber:16,columnNumber:9}})},bt=n(232),Mt=n.n(bt);function wt(e,t){return function(){return t.call(this,e.apply(this,arguments))}}function Ot(e,t){return function(){var n=arguments.length;if(0===n)return t();var r=arguments[n-1];return fe(r)||"function"!=typeof r[e]?t.apply(this,arguments):r[e].apply(r,Array.prototype.slice.call(arguments,0,n-1))}}var St=Je(Ot("slice",(function(e,t,n){return Array.prototype.slice.call(n,e,t)}))),Ct=Object(me.a)(Ot("tail",St(1,1/0)));function xt(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return Object(ge.a)(arguments[0].length,Xe(wt,arguments[0],Ct(arguments)))}var kt=n(501),Lt=function(e,t){return"undefined"!=typeof wp&&wp.i18n?wp.i18n.__(e,t):e},Et=Object(le.a)(2,(function(){var e;return"undefined"!=typeof wp&&wp.i18n?(e=wp.i18n).sprintf.apply(e,arguments):kt.sprintf.apply(void 0,arguments)})),Tt=Lt("Add to String Translation","wpml-string-translation"),Pt=Lt("Remove from String Translation","wpml-string-translation"),jt=Lt("Included in String Translation","wpml-string-translation"),zt=Lt("Not included in String Translation","wpml-string-translation"),Dt=Lt("Registered and locked","wpml-string-translation"),Nt=Lt("Text","wpml-string-translation"),Ht=Lt("Numeric","wpml-string-translation"),At=Lt("All Types","wpml-string-translation"),Yt=Lt("Search","wpml-string-translation"),It=Lt("Communication error","wpml-string-translation"),Vt=Lt("The action failed.","wpml-string-translation"),Ft=Et(Lt("All (%d)","wpml-string-translation")),Rt=Et(Lt("Included in String Translation (%d)","wpml-string-translation")),Wt=Et(Lt("Not included in String Translation (%d)","wpml-string-translation")),Ut=Lt("This setting is locked by a WPML configuration file.","wpml-string-translation"),Bt=Lt("Option","wpml-string-translation"),Kt=Lt("Value","wpml-string-translation"),qt=Lt("Type","wpml-string-translation"),Gt=Lt("State","wpml-string-translation"),$t=Lt("Export as a WPML configuration file","wpml-string-translation"),Jt=Lt("Export as a WPML configuration file","wpml-string-translation"),Xt=Lt("Cancel","wpml-string-translation"),Qt=Lt("Save the following to a wpml-config.xml in the root of your theme or plugin.","wpml-string-translation"),Zt=Lt("No options found.","wpml-string-translation"),en=Lt("Make sure you saved your theme options at least once. Some themes only add these to the wp_options table after the user explicitly saves changes to the theme defaults.","wpml-string-translation"),tn="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/Types.js",nn=Mt.a.Option,rn=function(){var e=mt(["filters","type"],"setType"),t=ne()(e,2),n=t[0],r=xt(t[1],ht("resetError"));return o.a.createElement(Mt.a,{className:"type",defaultValue:n,style:{width:120},onChange:r,__self:void 0,__source:{fileName:tn,lineNumber:15,columnNumber:9}},o.a.createElement(nn,{value:"all",__self:void 0,__source:{fileName:tn,lineNumber:16,columnNumber:3}},At),o.a.createElement(nn,{value:"Text",__self:void 0,__source:{fileName:tn,lineNumber:17,columnNumber:3}},Nt),o.a.createElement(nn,{value:"Numeric",__self:void 0,__source:{fileName:tn,lineNumber:18,columnNumber:3}},Ht))};var on=Object(me.a)((function(e){return null!=e&&(t=e.length,"[object Number]"===Object.prototype.toString.call(t))?e.length:NaN;var t}));var an=function(){function e(e,t){this.xf=t,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=Ce,e.prototype["@@transducer/result"]=xe,e.prototype["@@transducer/step"]=function(e,t){this.i+=1;var n,r=0===this.n?e:this.xf["@@transducer/step"](e,t);return this.n>=0&&this.i>=this.n?(n=r)&&n["@@transducer/reduced"]?n:{"@@transducer/value":n,"@@transducer/reduced":!0}:r},e}(),cn=Object(ue.a)((function(e,t){return new an(e,t)})),sn=Object(ue.a)(pe(["take"],cn,(function(e,t){return St(0,e<0?1/0:e,t)}))),ln=Object(ue.a)((function(e,t){return lt(sn(e.length,t),e)}));function un(e,t){var n;t=t||[];var r=(e=e||[]).length,o=t.length,i=[];for(n=0;n<r;)i[i.length]=e[n],n+=1;for(n=0;n<o;)i[i.length]=t[n],n+=1;return i}function fn(e){return Object(ue.a)((function(t,n){return Object(ge.a)(Math.max(0,t.length-n.length),(function(){return t.apply(this,e(n,arguments))}))}))}var dn=fn(un),pn="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/RegisteredState.js",hn=function(e){var t=e.selected,n=e.text,r=e.onClick;return t?o.a.createElement("strong",{__self:void 0,__source:{fileName:pn,lineNumber:7,columnNumber:13}},n):o.a.createElement("a",{onClick:r,__self:void 0,__source:{fileName:pn,lineNumber:7,columnNumber:39}},n)},mn=function(e,t){return on(Ae(xt(qe("registered"),t),e))},vn=ln(jt),yn=lt(zt),_n=function(){var e=mt(["filters","registeredState"],"setRegisteredState"),t=ne()(e,2),n=t[0],r=t[1],i=yt("items"),a=ne()(i,1)[0],c=on(a),s=mn(a,vn),l=mn(a,yn);return o.a.createElement("div",{className:"status",__self:void 0,__source:{fileName:pn,lineNumber:23,columnNumber:3}},o.a.createElement(hn,{selected:"all"===n,text:Ft(c),onClick:dn(r,["all"]),__self:void 0,__source:{fileName:pn,lineNumber:24,columnNumber:4}})," ",o.a.createElement("span",{__self:void 0,__source:{fileName:pn,lineNumber:25,columnNumber:70}},"|"),o.a.createElement(hn,{selected:n===jt,text:Rt(s),onClick:dn(r,[jt]),__self:void 0,__source:{fileName:pn,lineNumber:26,columnNumber:4}})," ",o.a.createElement("span",{__self:void 0,__source:{fileName:pn,lineNumber:27,columnNumber:79}},"|"),o.a.createElement(hn,{selected:n===zt,text:Wt(l),onClick:dn(r,[zt]),__self:void 0,__source:{fileName:pn,lineNumber:28,columnNumber:4}}))},gn=n(502),bn=n.n(gn),Mn="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/Error.js",wn=function(){var e=yt("error"),t=ne()(e,1)[0];return o.a.createElement(o.a.Fragment,{__self:void 0,__source:{fileName:Mn,lineNumber:10,columnNumber:3}},t&&o.a.createElement(bn.a,{message:t,description:Vt,type:"error",__self:void 0,__source:{fileName:Mn,lineNumber:11,columnNumber:14}}))},On=n(503),Sn=n.n(On),Cn=n(504),xn=n.n(Cn),kn=(n(623),n(624),xn.a),Ln=n(511),En=n.n(Ln),Tn="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/Table.js",Pn=function(){var e=ht("setError"),t=ht("setSelected"),n=yt("selectedRowKeys"),r=ne()(n,2),i=r[0],a=r[1],c=yt("clickedRowKeys"),s=ne()(c,2),l=s[0],u=s[1],f=pt("filteredItems"),d=[{title:Bt,dataIndex:"option",sorter:function(e,t){return e.option.localeCompare(t.option)},sortDirections:["descend","ascend"],showSorterTooltip:!1,width:"40%",ellipsis:!0,render:function(e){return o.a.createElement("span",{__self:void 0,__source:{fileName:Tn,lineNumber:28,columnNumber:22}},e)}},{title:Kt,dataIndex:"value",sorter:function(e,t){return(""+e.value).localeCompare(t.value)},sortDirections:["descend","ascend"],showSorterTooltip:!1,width:"35%",ellipsis:!0,render:function(e){return o.a.createElement("span",{__self:void 0,__source:{fileName:Tn,lineNumber:38,columnNumber:22}},e)}},{title:qt,dataIndex:"valueType",sorter:function(e,t){return e.valueType.localeCompare(t.valueType)},sortDirections:["descend","ascend"],showSorterTooltip:!1,width:"10%",ellipsis:!0,render:function(e){return o.a.createElement("span",{__self:void 0,__source:{fileName:Tn,lineNumber:48,columnNumber:22}},e)}},{title:Gt,dataIndex:"registered",sorter:function(e,t){return e.registered.localeCompare(t.registered)},sortDirections:["descend","ascend"],showSorterTooltip:!1,width:"15%",ellipsis:!0,render:function(e,t){return t.fixed?o.a.createElement("div",{__self:void 0,__source:{fileName:Tn,lineNumber:60,columnNumber:6}},o.a.createElement("span",{__self:void 0,__source:{fileName:Tn,lineNumber:61,columnNumber:7}},e),o.a.createElement(En.a,{placement:"left",title:Ut,__self:void 0,__source:{fileName:Tn,lineNumber:62,columnNumber:7}},o.a.createElement("a",{className:"otgs-ico-help",__self:void 0,__source:{fileName:Tn,lineNumber:66,columnNumber:8}}))):o.a.createElement("span",{__self:void 0,__source:{fileName:Tn,lineNumber:69,columnNumber:6}},e)}}],p={onChange:function(n,r){t(r),a(n),e("")},getCheckboxProps:function(e){return{disabled:e.fixed,name:e.name}},selectedRowKeys:i};return o.a.createElement(kn,{rowSelection:p,onRow:function(e){return{onClick:function(){l.includes(e.key)?u((function(t){return t.filter((function(t){return t!==e.key}))})):u((function(t){return[].concat(Sn()(t),[e.key])}))}}},rowClassName:function(e){return l.includes(e.key)?"ant-table__expanded-row":""},bordered:!0,pagination:{position:["bottomRight"],showSizeChanger:!0,pageSizeOptions:[10,20,50,100,1e3],locale:{items_per_page:""}},size:"middle",columns:d,dataSource:f,__self:void 0,__source:{fileName:Tn,lineNumber:99,columnNumber:9}})},jn=function(e){return{value:e,map:function(t){return jn(t(e))}}},zn=Je((function(e,t,n){return e((function(e){return jn(t(e))}))(n).value})),Dn=Je((function(e,t,n){var r={};for(var o in n)r[o]=n[o];return r[e]=t,r})),Nn=Object(ue.a)((function(e,t){return function(n){return function(r){return Re((function(e){return t(e,r)}),n(e(r)))}}})),Hn=Object(me.a)((function(e){return Nn(qe(e),Dn(e))})),An=Je((function(e,t,n){return Object(le.a)(Math.max(e.length,t.length,n.length),(function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)}))}));function Yn(e){return e}var In=Object(me.a)(Yn),Vn=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Ce,e.prototype["@@transducer/result"]=xe,e.prototype["@@transducer/step"]=function(e,t){return this.f(t),this.xf["@@transducer/step"](e,t)},e}(),Fn=Object(ue.a)((function(e,t){return new Vn(e,t)})),Rn=Object(ue.a)(pe([],Fn,(function(e,t){return e(t),t}))),Wn=n(234),Un=function(e){var t=e.register,n=void 0===t||t,r=e.endpoint,i=e.nonce,a="button "+(n?"button-primary":"button-secondary"),c=yt("selected"),s=ne()(c,3),l=s[0],u=s[2],f=yt("items"),d=ne()(f,2),p=d[0],h=d[1],m=yt("error"),v=ne()(m,3),y=v[1],_=v[2],g=yt("selectedRowKeys"),b=ne()(g,3)[2],M=yt("requestInProgress"),w=ne()(M,3),O=w[1],S=w[2],C=Object(Wn.b)(),x=Object(nt.a)(ft)(l),k=zn(Hn("registered"),(function(){return n?jt:zt})),L=An(x,k,In),E=dn(h,[Re(L,p)]),T=An(qe("ok"),In,(function(){throw new Error("error")})),P=function(){return y(It)},j=xt(_,O,(function(){return{selected:Ge("name",l),state:n}}),Object(Wn.a)(i,r),(function(e){return C.doFetch(e).then(Rn(S)).then(T).then(E).then(u).then(b).catch(P)}));return o.a.createElement("button",{className:a,disabled:0===l.length||C.fetching,onClick:j,__self:void 0,__source:{fileName:"/builds/wpml/wpml-string-translation/src/js/admin-strings/components/RegisterButton.js",lineNumber:43,columnNumber:9}},n?Tt:Pt)},Bn=function(){var e=yt("selected"),t=ne()(e,1)[0],n=yt("exportModalOpened"),r=ne()(n,2)[1];return o.a.createElement("button",{className:"button button-secondary",disabled:0===t.length,onClick:r,__self:void 0,__source:{fileName:"/builds/wpml/wpml-string-translation/src/js/admin-strings/components/ExportButton.js",lineNumber:9,columnNumber:9}},$t)},Kn=n(514),qn=n.n(Kn),Gn=n(126),$n=n.n(Gn),Jn=n(163),Xn=Je((function(e,t,n){return n.replace(e,t)}));function Qn(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}function Zn(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var er=function(e){return(e<10?"0":"")+e},tr="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+er(e.getUTCMonth()+1)+"-"+er(e.getUTCDate())+"T"+er(e.getUTCHours())+":"+er(e.getUTCMinutes())+":"+er(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var nr=Object(ue.a)((function(e,t){return Ae((n=e,function(){return!n.apply(this,arguments)}),t);var n}));var rr=Object(me.a)((function(e){return function e(t,n){var r=function(r){var o=n.concat([t]);return ut(r,o)?"<Circular>":e(r,o)},o=function(e,t){return Ie((function(t){return Zn(t)+": "+r(e[t])}),t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+Ie(r,t).join(", ")+"))";case"[object Array]":return"["+Ie(r,t).concat(o(t,nr((function(e){return/^\d+$/.test(e)}),He(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):Zn(tr(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":Zn(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var i=t.toString();if("[object Object]"!==i)return i}return"{"+o(t,He(t)).join(", ")+"}"}}(e,[])})),or=Object(ue.a)((function(e,t){return Object(le.a)(e+1,(function(){var n=arguments[e];if(null!=n&&Qn(n[t]))return n[t].apply(n,Array.prototype.slice.call(arguments,0,e));throw new TypeError(rr(n)+' does not have a method named "'+t+'"')}))}))(1,"split"),ir=Object(me.a)((function(e){return ve(e)?e.split("").reverse().join(""):Array.prototype.slice.call(e,0).reverse()})),ar=Je((function(e,t,n){var r,o={};for(r in t)Ee(r,t)&&(o[r]=Ee(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)Ee(r,n)&&!Ee(r,o)&&(o[r]=n[r]);return o})),cr=Je((function e(t,n,r){return ar((function(n,r,o){return he(r)&&he(o)?e(t,r,o):t(n,r,o)}),n,r)})),sr=Object(ue.a)((function(e,t){return cr((function(e,t,n){return n}),e,t)})),lr=Object(me.a)((function(e){return null!=e&&"function"==typeof e["fantasy-land/empty"]?e["fantasy-land/empty"]():null!=e&&null!=e.constructor&&"function"==typeof e.constructor["fantasy-land/empty"]?e.constructor["fantasy-land/empty"]():null!=e&&"function"==typeof e.empty?e.empty():null!=e&&null!=e.constructor&&"function"==typeof e.constructor.empty?e.constructor.empty():fe(e)?[]:ve(e)?"":he(e)?{}:Pe(e)?function(){return arguments}():void 0})),ur=Object(me.a)((function(e){return null!=e&<(e,lr(e))})),fr=Object(me.a)((function(e){return!e})),dr=Object(me.a)((function(e){return Object(le.a)(Xe(Ye,0,Ge("length",e)),(function(){for(var t=0,n=e.length;t<n;){if(e[t].apply(this,arguments))return!0;t+=1}return!1}))})),pr=Object(ue.a)((function(e,t){return null!=t&&t.constructor===e||t instanceof e})),hr=Object(ue.a)((function(e,t){for(var n=He(t),r=0;r<n.length;){var o=n[r];e(t[o],o,t),r+=1}return t})),mr=Hn("name"),vr=zn(mr,xt(Xn(/^\[(.*)\]$/,"$1"),or("]["))),yr=function(e,t){return Dn(t,e,{})},_r=xt(qe("value"),ur,fr),gr=dr([pr(Number),pr(String)]),br=function(e,t){var n=function(e){return Object(Jn.create)().ele("key",{name:e})}(t);return gr(e)?n:Mr(n,e)};function Mr(e,t){return hr((function(t,n){e.import(br(t,n))}),t),e}var wr=function(e){var t,n=Object(Jn.create)().ele("admin-texts"),r=function(e){return e.map(vr).map(zn(mr,ir)).map((function(e){var t=e.name,n=e.value;return Xe(yr,n,t)})).reduce(sr,{})}(e.filter(_r));return(t=Mr(n,r),Object(Jn.create)().ele("wpml-config").import(t)).end({prettyPrint:!0,headless:!0})},Or="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/ExportModal.js",Sr=function(){var e=yt("exportModalOpened"),t=ne()(e,3),n=t[0],r=t[2],i=pt("selectedItems");return o.a.createElement(qn.a,{title:Jt,destroyOnClose:!0,visible:n,onCancel:r,footer:[o.a.createElement($n.a,{key:"back",onClick:r,__self:void 0,__source:{fileName:Or,lineNumber:18,columnNumber:4}},Xt)],__self:void 0,__source:{fileName:Or,lineNumber:12,columnNumber:9}},o.a.createElement("p",{__self:void 0,__source:{fileName:Or,lineNumber:23,columnNumber:3}},Qt),o.a.createElement("textarea",{value:wr(i),readOnly:!0,rows:20,style:{width:"100%"},__self:void 0,__source:{fileName:Or,lineNumber:24,columnNumber:3}}))},Cr=n(515),xr=n.n(Cr),kr="/builds/wpml/wpml-string-translation/src/js/admin-strings/components/Spin.js",Lr=function(){var e=yt("requestInProgress"),t=ne()(e,1)[0];return o.a.createElement(o.a.Fragment,{__self:void 0,__source:{fileName:kr,lineNumber:9,columnNumber:3}},t&&o.a.createElement(xr.a,{__self:void 0,__source:{fileName:kr,lineNumber:10,columnNumber:26}}))},Er=n(43),Tr=n.n(Er),Pr=n(51),jr=n.n(Pr),zr=(n(947),"/builds/wpml/wpml-string-translation/src/js/admin-strings/App.js"),Dr=function(){return o.a.createElement("div",{style:{textAlign:"center"},__self:void 0,__source:{fileName:zr,lineNumber:28,columnNumber:2}},o.a.createElement(jr.a,{type:"exclamation-circle",style:{fontSize:30},__self:void 0,__source:{fileName:zr,lineNumber:29,columnNumber:3}}),o.a.createElement("p",{__self:void 0,__source:{fileName:zr,lineNumber:30,columnNumber:3}},Zt),o.a.createElement("p",{__self:void 0,__source:{fileName:zr,lineNumber:31,columnNumber:3}},en))},Nr=function(e){var t=e.endpoint,n=e.nonce,r=yt("exportModalOpened"),i=ne()(r,1)[0],a=yt("items"),c=ne()(a,1)[0];return o.a.createElement("div",{__self:void 0,__source:{fileName:zr,lineNumber:41,columnNumber:3}},o.a.createElement("div",{className:"ant-table-wpml-actions",__self:void 0,__source:{fileName:zr,lineNumber:42,columnNumber:4}},o.a.createElement(_n,{__self:void 0,__source:{fileName:zr,lineNumber:43,columnNumber:5}}),o.a.createElement(oe.a,{layout:"inline",__self:void 0,__source:{fileName:zr,lineNumber:44,columnNumber:5}},o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:45,columnNumber:6}},o.a.createElement(rn,{__self:void 0,__source:{fileName:zr,lineNumber:46,columnNumber:7}})),o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:48,columnNumber:6}},o.a.createElement(gt,{placeholder:Yt,__self:void 0,__source:{fileName:zr,lineNumber:49,columnNumber:7}})))),o.a.createElement(Tr.a,{renderEmpty:ur(c)&&Dr,__self:void 0,__source:{fileName:zr,lineNumber:53,columnNumber:4}},o.a.createElement(Pn,{__self:void 0,__source:{fileName:zr,lineNumber:54,columnNumber:5}})),o.a.createElement(oe.a,{layout:"inline",__self:void 0,__source:{fileName:zr,lineNumber:56,columnNumber:4}},o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:57,columnNumber:5}},o.a.createElement(Un,{register:!0,endpoint:t,nonce:n,__self:void 0,__source:{fileName:zr,lineNumber:58,columnNumber:6}})),o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:60,columnNumber:5}},o.a.createElement(Un,{register:!1,endpoint:t,nonce:n,__self:void 0,__source:{fileName:zr,lineNumber:61,columnNumber:6}})),o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:63,columnNumber:5}},o.a.createElement(Bn,{__self:void 0,__source:{fileName:zr,lineNumber:64,columnNumber:6}}),i&&o.a.createElement(Sr,{__self:void 0,__source:{fileName:zr,lineNumber:65,columnNumber:28}})),o.a.createElement(ae.a,{__self:void 0,__source:{fileName:zr,lineNumber:67,columnNumber:5}},o.a.createElement(Lr,{__self:void 0,__source:{fileName:zr,lineNumber:68,columnNumber:6}}))),o.a.createElement(wn,{__self:void 0,__source:{fileName:zr,lineNumber:71,columnNumber:4}}))},Hr="/builds/wpml/wpml-string-translation/src/js/admin-strings/main.js";document.addEventListener("DOMContentLoaded",(function(){var e,t=document.getElementById("wpml-admin-text-options");a.a.render(o.a.createElement(ee,{store:dt((e=wpml_admin_strings.model,e.map((function(e,t){var n,r,o;return e.key=t,e.option=(n=e.name,r=n.replace(/^\[(.*)\]$/,"$1").split("]["),o=r.pop(),r.length>0?"["+r.join("][")+"]"+o:o),e.registered=e.registered?e.fixed?Dt:jt:zt,e.valueType=isNaN(e.value)?Nt:Ht,e})))),__self:void 0,__source:{fileName:Hr,lineNumber:23,columnNumber:3}},o.a.createElement(Nr,{endpoint:wpml_admin_strings.endpoint,nonce:wpml_admin_strings.nonce,__self:void 0,__source:{fileName:Hr,lineNumber:24,columnNumber:4}})),t)}))},function(e,t,n){"use strict";n.r(t),n.d(t,"Option",(function(){return _e})),n.d(t,"OptGroup",(function(){return be}));var r=n(8),o=n(27),i=n(28),a=n(30),c=n(29),s=n(0),l=n(6),u=n(21),f=n(10),d=n(23);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){Object(l.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m="".concat("accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap"," ").concat("onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError").split(/[\s\n]+/);function v(e,t){return 0===e.indexOf(t)}function y(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=!1===n?{aria:!0,data:!0,attr:!0}:!0===n?{aria:!0}:h({},n);var r={};return Object.keys(e).forEach((function(n){(t.aria&&("role"===n||v(n,"aria-"))||t.data&&v(n,"data-")||t.attr&&m.includes(n))&&(r[n]=e[n])})),r}var _=n(3),g=n.n(_),b=n(53);function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){O(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var S=s.forwardRef((function(e,t){var n=e.height,r=e.offset,o=e.children,i=e.prefixCls,a=e.onInnerResize,c={},l={display:"flex",flexDirection:"column"};return void 0!==r&&(c={height:n,position:"relative",overflow:"hidden"},l=w(w({},l),{},{transform:"translateY(".concat(r,"px)"),position:"absolute",left:0,right:0,top:0})),s.createElement("div",{style:c},s.createElement(b.default,{onResize:function(e){e.offsetHeight&&a&&a()}},s.createElement("div",{style:l,className:g()(O({},"".concat(i,"-holder-inner"),i)),ref:t},o)))}));S.displayName="Filler";var C=S,x=function(e){return+setTimeout(e,16)},k=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(x=function(e){return window.requestAnimationFrame(e)},k=function(e){return window.cancelAnimationFrame(e)});var L=0,E=new Map;function T(e){E.delete(e)}function P(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=L+=1;function r(t){if(0===t)T(n),e();else{var o=x((function(){r(t-1)}));E.set(n,o)}}return r(t),n}function j(e){return(j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function N(e,t){return(N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function H(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Y(e);if(t){var o=Y(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return A(this,n)}}function A(e,t){return!t||"object"!==j(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Y(e){return(Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}P.cancel=function(e){var t=E.get(e);return T(t),k(t)};function I(e){return"touches"in e?e.touches[0].pageY:e.pageY}var V=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(i,e);var t,n,r,o=H(i);function i(){var e;return z(this,i),(e=o.apply(this,arguments)).moveRaf=null,e.scrollbarRef=s.createRef(),e.thumbRef=s.createRef(),e.visibleTimeout=null,e.state={dragging:!1,pageY:null,startTop:null,visible:!1},e.delayHidden=function(){clearTimeout(e.visibleTimeout),e.setState({visible:!0}),e.visibleTimeout=setTimeout((function(){e.setState({visible:!1})}),2e3)},e.onScrollbarTouchStart=function(e){e.preventDefault()},e.onContainerMouseDown=function(e){e.stopPropagation(),e.preventDefault()},e.patchEvents=function(){window.addEventListener("mousemove",e.onMouseMove),window.addEventListener("mouseup",e.onMouseUp),e.thumbRef.current.addEventListener("touchmove",e.onMouseMove),e.thumbRef.current.addEventListener("touchend",e.onMouseUp)},e.removeEvents=function(){window.removeEventListener("mousemove",e.onMouseMove),window.removeEventListener("mouseup",e.onMouseUp),e.scrollbarRef.current.removeEventListener("touchstart",e.onScrollbarTouchStart),e.thumbRef.current.removeEventListener("touchstart",e.onMouseDown),e.thumbRef.current.removeEventListener("touchmove",e.onMouseMove),e.thumbRef.current.removeEventListener("touchend",e.onMouseUp),P.cancel(e.moveRaf)},e.onMouseDown=function(t){var n=e.props.onStartMove;e.setState({dragging:!0,pageY:I(t),startTop:e.getTop()}),n(),e.patchEvents(),t.stopPropagation(),t.preventDefault()},e.onMouseMove=function(t){var n=e.state,r=n.dragging,o=n.pageY,i=n.startTop,a=e.props.onScroll;if(P.cancel(e.moveRaf),r){var c=i+(I(t)-o),s=e.getEnableScrollRange(),l=e.getEnableHeightRange(),u=l?c/l:0,f=Math.ceil(u*s);e.moveRaf=P((function(){a(f)}))}},e.onMouseUp=function(){var t=e.props.onStopMove;e.setState({dragging:!1}),t(),e.removeEvents()},e.getSpinHeight=function(){var t=e.props,n=t.height,r=n/t.count*10;return r=Math.max(r,20),r=Math.min(r,n/2),Math.floor(r)},e.getEnableScrollRange=function(){var t=e.props;return t.scrollHeight-t.height||0},e.getEnableHeightRange=function(){return e.props.height-e.getSpinHeight()||0},e.getTop=function(){var t=e.props.scrollTop,n=e.getEnableScrollRange(),r=e.getEnableHeightRange();return 0===t||0===n?0:t/n*r},e.getVisible=function(){var t=e.state.visible,n=e.props;return!(n.height>=n.scrollHeight)&&t},e}return t=i,(n=[{key:"componentDidMount",value:function(){this.scrollbarRef.current.addEventListener("touchstart",this.onScrollbarTouchStart),this.thumbRef.current.addEventListener("touchstart",this.onMouseDown)}},{key:"componentDidUpdate",value:function(e){e.scrollTop!==this.props.scrollTop&&this.delayHidden()}},{key:"componentWillUnmount",value:function(){this.removeEvents(),clearTimeout(this.visibleTimeout)}},{key:"render",value:function(){var e,t,n,r=this.state.dragging,o=this.props.prefixCls,i=this.getSpinHeight(),a=this.getTop(),c=this.getVisible();return s.createElement("div",{ref:this.scrollbarRef,className:"".concat(o,"-scrollbar"),style:{width:8,top:0,bottom:0,right:0,position:"absolute",display:c?null:"none"},onMouseDown:this.onContainerMouseDown,onMouseMove:this.delayHidden},s.createElement("div",{ref:this.thumbRef,className:g()("".concat(o,"-scrollbar-thumb"),(e={},t="".concat(o,"-scrollbar-thumb-moving"),n=r,t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e)),style:{width:"100%",height:i,top:a,left:0,position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"},onMouseDown:this.onMouseDown}))}}])&&D(t.prototype,n),r&&D(t,r),i}(s.Component);function F(e){var t=e.children,n=e.setRef,r=s.useCallback((function(e){n(e)}),[]);return s.cloneElement(t,{ref:r})}var R=n(7),W=n.n(R);function U(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var B=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.maps={},this.maps.prototype=null}var t,n,r;return t=e,(n=[{key:"set",value:function(e,t){this.maps[e]=t}},{key:"get",value:function(e){return this.maps[e]}}])&&U(t.prototype,n),r&&U(t,r),e}();function K(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return q(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function G(e,t,n){var r=K(s.useState(0),2),o=r[0],i=r[1],a=Object(s.useRef)(new Map),c=Object(s.useRef)(new B),l=Object(s.useRef)(0);function u(){l.current+=1;var e=l.current;Promise.resolve().then((function(){e===l.current&&(a.current.forEach((function(e,t){if(e&&e.offsetParent){var n=(o=e)instanceof HTMLElement?o:W.a.findDOMNode(o),r=n.offsetHeight;c.current.get(t)!==r&&c.current.set(t,n.offsetHeight)}var o})),i((function(e){return e+1})))}))}return[function(r,o){var i=e(r),c=a.current.get(i);o?(a.current.set(i,o),u()):a.current.delete(i),!c!=!o&&(o?null==t||t(r):null==n||n(r))},u,c.current,o]}function $(e){return($="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function J(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return X(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Q(e,t,n){var r=J(s.useState(e),2),o=r[0],i=r[1],a=J(s.useState(null),2),c=a[0],l=a[1];return s.useEffect((function(){var r=function(e,t,n){var r,o,i=e.length,a=t.length;if(0===i&&0===a)return null;i<a?(r=e,o=t):(r=t,o=e);var c={__EMPTY_ITEM__:!0};function s(e){return void 0!==e?n(e):c}for(var l=null,u=1!==Math.abs(i-a),f=0;f<o.length;f+=1){var d=s(r[f]);if(d!==s(o[f])){l=f,u=u||d!==s(o[f+1]);break}}return null===l?null:{index:l,multiple:u}}(o||[],e||[],t);void 0!==(null==r?void 0:r.index)&&(null==n||n(r.index),l(e[r.index])),i(e)}),[e]),[c]}function Z(e){return(Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var ee="object"===("undefined"==typeof navigator?"undefined":Z(navigator))&&/Firefox/i.test(navigator.userAgent),te=function(e,t){var n=Object(s.useRef)(!1),r=Object(s.useRef)(null);function o(){clearTimeout(r.current),n.current=!0,r.current=setTimeout((function(){n.current=!1}),50)}var i=Object(s.useRef)({top:e,bottom:t});return i.current.top=e,i.current.bottom=t,function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=e<0&&i.current.top||e>0&&i.current.bottom;return t&&a?(clearTimeout(r.current),n.current=!1):a&&!n.current||o(),!n.current&&a}};function ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(n),!0).forEach((function(t){oe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ne(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ae(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ce(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var se=[],le={overflowY:"auto",overflowAnchor:"none"};function ue(e,t){var n=e.prefixCls,r=void 0===n?"rc-virtual-list":n,o=e.className,i=e.height,a=e.itemHeight,c=e.fullHeight,l=void 0===c||c,u=e.style,f=e.data,d=e.children,p=e.itemKey,h=e.virtual,m=e.component,v=void 0===m?"div":m,y=e.onScroll,_=ce(e,["prefixCls","className","height","itemHeight","fullHeight","style","data","children","itemKey","virtual","component","onScroll"]),b=!(!1===h||!i||!a),M=b&&f&&a*f.length>i,w=ie(Object(s.useState)(0),2),O=w[0],S=w[1],x=ie(Object(s.useState)(!1),2),k=x[0],L=x[1],E=g()(r,o),T=f||se,j=Object(s.useRef)(),z=Object(s.useRef)(),D=Object(s.useRef)(),N=s.useCallback((function(e){return"function"==typeof p?p(e):null==e?void 0:e[p]}),[p]),H={getKey:N};function A(e){S((function(t){var n=function(e){var t=e;Number.isNaN(fe.current)||(t=Math.min(t,fe.current));return t=Math.max(t,0)}("function"==typeof e?e(t):e);return j.current.scrollTop=n,n}))}var Y=Object(s.useRef)({start:0,end:T.length}),I=Object(s.useRef)(),R=ie(Q(T,N),1)[0];I.current=R;var W=ie(G(N,null,null),4),U=W[0],B=W[1],K=W[2],q=W[3],J=s.useMemo((function(){if(!b)return{scrollHeight:void 0,start:0,end:T.length-1,offset:void 0};var e;if(!M)return{scrollHeight:(null===(e=z.current)||void 0===e?void 0:e.offsetHeight)||0,start:0,end:T.length-1,offset:void 0};for(var t,n,r,o=0,c=T.length,s=0;s<c;s+=1){var l=T[s],u=N(l),f=K.get(u),d=o+(void 0===f?a:f);d>=O&&void 0===t&&(t=s,n=o),d>O+i&&void 0===r&&(r=s),o=d}return void 0===t&&(t=0,n=0),void 0===r&&(r=T.length-1),{scrollHeight:o,start:t,end:r=Math.min(r+1,T.length),offset:n}}),[M,b,O,T,q,i]),X=J.scrollHeight,Z=J.start,ne=J.end,ae=J.offset;Y.current.start=Z,Y.current.end=ne;var ue=X-i,fe=Object(s.useRef)(ue);fe.current=ue;var de=O<=0,pe=O>=ue,he=te(de,pe);var me=ie(function(e,t,n,r){var o=Object(s.useRef)(0),i=Object(s.useRef)(null),a=Object(s.useRef)(null),c=Object(s.useRef)(!1),l=te(t,n);return[function(t){if(e){P.cancel(i.current);var n=t.deltaY;o.current+=n,a.current=n,l(n)||(ee||t.preventDefault(),i.current=P((function(){var e=c.current?10:1;r(o.current*e),o.current=0})))}},function(t){e&&(c.current=t.detail===a.current)}]}(b,de,pe,(function(e){A((function(t){return t+e}))})),2),ve=me[0],ye=me[1];!function(e,t,n){var r,o=Object(s.useRef)(!1),i=Object(s.useRef)(0),a=Object(s.useRef)(null),c=Object(s.useRef)(null),l=function(e){if(o.current){var t=Math.ceil(e.touches[0].pageY),r=i.current-t;i.current=t,n(r)&&e.preventDefault(),clearInterval(c.current),c.current=setInterval((function(){(!n(r*=14/15,!0)||Math.abs(r)<=.1)&&clearInterval(c.current)}),16)}},u=function(){o.current=!1,r()},f=function(e){r(),1!==e.touches.length||o.current||(o.current=!0,i.current=Math.ceil(e.touches[0].pageY),a.current=e.target,a.current.addEventListener("touchmove",l),a.current.addEventListener("touchend",u))};r=function(){a.current&&(a.current.removeEventListener("touchmove",l),a.current.removeEventListener("touchend",u))},s.useLayoutEffect((function(){return e&&t.current.addEventListener("touchstart",f),function(){t.current.removeEventListener("touchstart",f),r(),clearInterval(c.current)}}),[e])}(b,j,(function(e,t){return!he(e,t)&&(ve({preventDefault:function(){},deltaY:e}),!0)})),s.useLayoutEffect((function(){function e(e){b&&e.preventDefault()}return j.current.addEventListener("wheel",ve),j.current.addEventListener("DOMMouseScroll",ye),j.current.addEventListener("MozMousePixelScroll",e),function(){j.current.removeEventListener("wheel",ve),j.current.removeEventListener("DOMMouseScroll",ye),j.current.removeEventListener("MozMousePixelScroll",e)}}),[b]);var _e=function(e,t,n,r,o,i,a,c){var l=s.useRef();return function(s){if(null!=s){if(P.cancel(l.current),"number"==typeof s)a(s);else if(s&&"object"===$(s)){var u,f=s.align;u="index"in s?s.index:t.findIndex((function(e){return o(e)===s.key}));var d=s.offset,p=void 0===d?0:d;!function c(s,d){if(!(s<0)&&e.current){var h=e.current.clientHeight,m=!1,v=d;if(h){for(var y=d||f,_=0,g=0,b=0,M=Math.min(t.length,u),w=0;w<=M;w+=1){var O=o(t[w]);g=_;var S=n.get(O);_=b=g+(void 0===S?r:S),w===u&&void 0===S&&(m=!0)}var C=null;switch(y){case"top":C=g-p;break;case"bottom":C=b-h+p;break;default:var x=e.current.scrollTop;g<x?v="top":b>x+h&&(v="bottom")}null!==C&&C!==e.current.scrollTop&&a(C)}l.current=P((function(){m&&i(),c(s-1,v)}))}}(3)}}else c()}}(j,T,K,a,N,B,A,(function(){var e;null===(e=D.current)||void 0===e||e.delayHidden()}));s.useImperativeHandle(t,(function(){return{scrollTo:_e}}));var ge=function(e,t,n,r,o,i){var a=i.getKey;return e.slice(t,n+1).map((function(e,n){var i=o(e,t+n,{}),c=a(e);return s.createElement(F,{key:c,setRef:function(t){return r(e,t)}},i)}))}(T,Z,ne,U,d,H),be=null;return i&&(be=re(oe({},l?"height":"maxHeight",i),le),b&&(be.overflowY="hidden",k&&(be.pointerEvents="none"))),s.createElement("div",Object.assign({style:re(re({},u),{},{position:"relative"}),className:E},_),s.createElement(v,{className:"".concat(r,"-holder"),style:be,ref:j,onScroll:function(e){var t=e.currentTarget.scrollTop;t!==O&&A(t),null==y||y(e)}},s.createElement(C,{prefixCls:r,height:X,offset:ae,onInnerResize:B,ref:z},ge)),b&&s.createElement(V,{ref:D,prefixCls:r,scrollTop:O,height:i,scrollHeight:X,count:T.length,onScroll:function(e){A(e)},onStartMove:function(){L(!0)},onStopMove:function(){L(!1)}}))}var fe=s.forwardRef(ue);fe.displayName="List";var de=fe,pe=function(e){var t,n=e.className,r=e.customizeIcon,o=e.customizeIconProps,i=e.onMouseDown,a=e.onClick,c=e.children;return t="function"==typeof r?r(o):r,s.createElement("span",{className:n,onMouseDown:function(e){e.preventDefault(),i&&i(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:a,"aria-hidden":!0},void 0!==t?t:s.createElement("span",{className:g()(n.split(/\s+/).map((function(e){return"".concat(e,"-icon")})))},c))},he=function(e,t){var n,o,i,a,c=e.prefixCls,p=e.id,h=e.flattenOptions,m=e.childrenAsData,v=e.values,_=e.searchValue,b=e.multiple,M=e.defaultActiveFirstOption,w=e.height,O=e.itemHeight,S=e.notFoundContent,C=e.open,x=e.menuItemSelectedIcon,k=e.virtual,L=e.onSelect,E=e.onToggleOpen,T=e.onActiveValue,P=e.onScroll,j=e.onMouseEnter,z="".concat(c,"-item"),D=(n=function(){return h},o=[C,h],i=function(e,t){return t[0]&&e[1]!==t[1]},"value"in(a=s.useRef({})).current&&!i(a.current.condition,o)||(a.current.value=n(),a.current.condition=o),a.current.value),N=s.useRef(null),H=function(e){e.preventDefault()},A=function(e){N.current&&N.current.scrollTo({index:e})},Y=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=D.length,r=0;r<n;r+=1){var o=(e+r*t+n)%n,i=D[o],a=i.group,c=i.data;if(!a&&!c.disabled)return o}return-1},I=s.useState((function(){return Y(0)})),V=Object(f.a)(I,2),F=V[0],R=V[1],W=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];R(e);var n={source:t?"keyboard":"mouse"},r=D[e];r?T(r.data.value,e,n):T(null,-1,n)};s.useEffect((function(){W(!1!==M?Y(0):-1)}),[D.length,_]),s.useEffect((function(){var e,t=setTimeout((function(){if(!b&&C&&1===v.size){var e=Array.from(v)[0],t=D.findIndex((function(t){return t.data.value===e}));W(t),A(t)}}));C&&(null===(e=N.current)||void 0===e||e.scrollTo(void 0));return function(){return clearTimeout(t)}}),[C]);var U=function(e){void 0!==e&&L(e,{selected:!v.has(e)}),b||E(!1)};if(s.useImperativeHandle(t,(function(){return{onKeyDown:function(e){var t=e.which;switch(t){case d.a.UP:case d.a.DOWN:var n=0;if(t===d.a.UP?n=-1:t===d.a.DOWN&&(n=1),0!==n){var r=Y(F+n,n);A(r),W(r,!0)}break;case d.a.ENTER:var o=D[F];o&&!o.data.disabled?U(o.data.value):U(void 0),C&&e.preventDefault();break;case d.a.ESC:E(!1),C&&e.stopPropagation()}},onKeyUp:function(){},scrollTo:function(e){A(e)}}})),0===D.length)return s.createElement("div",{role:"listbox",id:"".concat(p,"_list"),className:"".concat(z,"-empty"),onMouseDown:H},S);function B(e){var t=D[e];if(!t)return null;var n=t.data||{},o=n.value,i=n.label,a=n.children,c=y(n,!0),l=m?a:i;return t?s.createElement("div",Object(r.a)({"aria-label":"string"==typeof l?l:null},c,{key:e,role:"option",id:"".concat(p,"_list_").concat(e),"aria-selected":v.has(o)}),o):null}return s.createElement(s.Fragment,null,s.createElement("div",{role:"listbox",id:"".concat(p,"_list"),style:{height:0,width:0,overflow:"hidden"}},B(F-1),B(F),B(F+1)),s.createElement(de,{itemKey:"key",ref:N,data:D,height:w,itemHeight:O,fullHeight:!1,onMouseDown:H,onScroll:P,virtual:k,onMouseEnter:j},(function(e,t){var n,o=e.group,i=e.groupOption,a=e.data,c=a.label,f=a.key;if(o)return s.createElement("div",{className:g()(z,"".concat(z,"-group"))},void 0!==c?c:f);var d=a.disabled,p=a.value,h=a.title,y=a.children,_=a.style,b=a.className,M=Object(u.a)(a,["disabled","value","title","children","style","className"]),w=v.has(p),O="".concat(z,"-option"),S=g()(z,O,b,(n={},Object(l.a)(n,"".concat(O,"-grouped"),i),Object(l.a)(n,"".concat(O,"-active"),F===t&&!d),Object(l.a)(n,"".concat(O,"-disabled"),d),Object(l.a)(n,"".concat(O,"-selected"),w),n)),C=!x||"function"==typeof x||w,k=(m?y:c)||p,L="string"==typeof k||"number"==typeof k?k.toString():void 0;return void 0!==h&&(L=h),s.createElement("div",Object(r.a)({},M,{"aria-selected":w,className:S,title:L,onMouseMove:function(){F===t||d||W(t)},onClick:function(){d||U(p)},style:_}),s.createElement("div",{className:"".concat(O,"-content")},k),s.isValidElement(x)||w,C&&s.createElement(pe,{className:"".concat(z,"-option-state"),customizeIcon:x,customizeIconProps:{isSelected:w}},w?"✓":null))})))},me=s.forwardRef(he);me.displayName="OptionList";var ve=me,ye=function(){return null};ye.isSelectOption=!0;var _e=ye,ge=function(){return null};ge.isSelectOptGroup=!0;var be=ge,Me=n(2),we=n(77);function Oe(e){var t=e.key,n=e.props,r=n.children,o=n.value,i=Object(u.a)(n,["children","value"]);return Object(Me.a)({key:t,value:void 0!==o?o:t,children:r},i)}function Se(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object(we.a)(e).map((function(e,n){if(!s.isValidElement(e)||!e.type)return null;var r=e.type.isSelectOptGroup,o=e.key,i=e.props,a=i.children,c=Object(u.a)(i,["children"]);return t||!r?Oe(e):Object(Me.a)(Object(Me.a)({key:"__RC_SELECT_GRP__".concat(null===o?n:o,"__"),label:o},c),{},{options:Se(a)})})).filter((function(e){return e}))}var Ce=n(157),xe=n(156),ke=n(110),Le=n(158);var Ee=n(18),Te=n(37),Pe=n(35);function je(e){return Array.isArray(e)?e:void 0!==e?[e]:[]}function ze(e,t){var n,r=Object(Ee.a)(t);for(n=e.length-1;n>=0&&e[n].disabled;n-=1);var o=null;return-1!==n&&(o=r[n],r.splice(n,1)),{values:r,removedValue:o}}var De="undefined"!=typeof window&&window.document&&window.document.documentElement,Ne=0;function He(e,t){var n,r=e.key;return"value"in e&&(n=e.value),null!=r?r:void 0!==n?n:"rc-index-key-".concat(t)}function Ae(e){var t=Object(Me.a)({},e);return"props"in t||Object.defineProperty(t,"props",{get:function(){return Object(Pe.a)(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),t}}),t}function Ye(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.prevValueOptions,o=void 0===r?[]:r,i=new Map;return t.forEach((function(e){if(!e.group){var t=e.data;i.set(t.value,t)}})),e.map((function(e){var t=i.get(e);return t||(t=Object(Me.a)({},o.find((function(t){return t._INTERNAL_OPTION_VALUE_===e})))),Ae(t)}))}function Ie(e){return je(e).join("")}function Ve(e,t){if(!t||!t.length)return null;var n=!1;var r=function e(t,r){var o,i=(o=r,Object(Ce.a)(o)||Object(xe.a)(o)||Object(ke.a)(o)||Object(Le.a)()),a=i[0],c=i.slice(1);if(!a)return[t];var s=t.split(a);return n=n||s.length>1,s.reduce((function(t,n){return[].concat(Object(Ee.a)(t),Object(Ee.a)(e(n,c)))}),[]).filter((function(e){return e}))}(e,t);return n?r:null}var Fe=n(162);function Re(e,t){var n=t||{},r=n.defaultValue,o=n.value,i=n.onChange,a=n.postState,c=s.useState((function(){return void 0!==o?o:void 0!==r?"function"==typeof r?r():r:"function"==typeof e?e():e})),l=Object(f.a)(c,2),u=l[0],d=l[1],p=void 0!==o?o:u;a&&(p=a(p));var h=s.useRef(!0);return s.useEffect((function(){h.current?h.current=!1:void 0===o&&d(o)}),[o]),[p,function(e){d(e),p!==e&&i&&i(e,p)}]}function We(){return(We=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Be(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ue(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ue(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ke(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Je(e){var t=e.prefixCls,n=e.item,r=e.renderItem,o=e.responsive,i=e.registerSize,a=e.itemKey,c=e.className,l=e.style,u=e.children,f=e.display,d=e.order,p=e.component,h=Ke(e,["prefixCls","item","renderItem","responsive","registerSize","itemKey","className","style","children","display","order","component"]),m=o&&!f;function v(e){i(a,e)}s.useEffect((function(){return function(){v(null)}}),[]);var y=void 0!==n?r(n):u,_=s.createElement(p,We({className:g()(t,c),style:$e({opacity:m?.2:1,height:m?0:void 0,overflowY:m?"hidden":void 0,order:o?d:void 0,pointerEvents:m?"none":void 0},l)},h),y);return o&&(_=s.createElement(b.default,{onResize:function(e){v(e.offsetWidth)}},_)),_}var Xe=function(e){return+setTimeout(e,16)},Qe=function(e){return clearTimeout(e)};"undefined"!=typeof window&&"requestAnimationFrame"in window&&(Xe=function(e){return window.requestAnimationFrame(e)},Qe=function(e){return window.cancelAnimationFrame(e)});var Ze=0,et=new Map;function tt(e){et.delete(e)}function nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Ze+=1;function r(t){if(0===t)tt(n),e();else{var o=Xe((function(){r(t-1)}));et.set(n,o)}}return r(t),n}nt.cancel=function(e){var t=et.get(e);return tt(t),Qe(t)};function rt(e){return"+ ".concat(e.length," ...")}function ot(e,t){var n,r,o,i,a,c=e.prefixCls,l=void 0===c?"rc-overflow":c,u=e.data,f=void 0===u?[]:u,d=e.renderItem,p=e.itemKey,h=e.itemWidth,m=void 0===h?10:h,v=e.style,y=e.className,_=e.maxCount,M=e.renderRest,w=void 0===M?rt:M,O=e.renderItemProps,S=e.suffix,C=e.component,x=void 0===C?"div":C,k=e.itemComponent,L=void 0===k?"div":k,E=Ke(e,["prefixCls","data","renderItem","itemKey","itemWidth","style","className","maxCount","renderRest","renderItemProps","suffix","component","itemComponent"]),T=(n=Be(Object(s.useState)({}),2)[1],r=Object(s.useRef)([]),o=Object(s.useRef)(!1),i=0,a=0,Object(s.useEffect)((function(){return function(){o.current=!0}}),[]),function(e){var t=i;return i+=1,r.current.length<t+1&&(r.current[t]=e),[r.current[t],function(e){r.current[t]="function"==typeof e?e(r.current[t]):e,nt.cancel(a),a=nt((function(){o.current||n({})}))}]}),P=Be(T(0),2),j=P[0],z=P[1],D=Be(T(new Map),2),N=D[0],H=D[1],A=Be(T(0),2),Y=A[0],I=A[1],V=Be(T(0),2),F=V[0],R=V[1],W=Be(T(0),2),U=W[0],B=W[1],K=Be(Object(s.useState)(null),2),q=K[0],G=K[1],$=Be(Object(s.useState)(0),2),J=$[0],X=$[1],Q=Be(Object(s.useState)(!1),2),Z=Q[0],ee=Q[1],te="".concat(l,"-item"),ne=Math.max(Y,F),re=f.length&&"responsive"===_,oe=re||"number"==typeof _&&f.length>_,ie=Object(s.useMemo)((function(){var e=f;return re?e=f.slice(0,Math.min(f.length,j/m)):"number"==typeof _&&(e=f.slice(0,_)),e}),[f,m,j,_,re]),ae=Object(s.useMemo)((function(){return re?f.slice(J+1):f.slice(ie.length)}),[f,ie,re,J]),ce=Object(s.useCallback)((function(e,t){var n;return"function"==typeof p?p(e):null!==(n=p&&(null==e?void 0:e[p]))&&void 0!==n?n:t}),[p]),se=Object(s.useCallback)(d||function(e){return e},[d]);function le(e,t){X(e),t||ee(e<f.length-1)}function ue(e,t){H((function(n){var r=new Map(n);return null===t?r.delete(e):r.set(e,t),r}))}function fe(e){return N.get(ce(ie[e],e))}s.useLayoutEffect((function(){if(j&&ne&&ie){var e=U,t=ie.length,n=t-1;if(!t)return le(0),void G(null);for(var r=0;r<t;r+=1){var o=fe(r);if(void 0===o){le(r-1,!0);break}if(e+=o,r===n-1&&e+fe(n)<=j){le(n),G(null);break}if(e+ne>j){le(r-1),G(e-o-U+F);break}if(r===n){le(n),G(e-U);break}}S&&fe(0)+U>j&&G(null)}}),[j,N,F,U,ce,ie]);var de=Z&&!!ae.length,pe={};null!==q&&re&&(pe={position:"absolute",left:q,top:0});var he={prefixCls:te,responsive:re,component:L},me=s.createElement(x,We({className:g()(l,y),style:v,ref:t},E),ie.map((function(e,t){var n=ce(e,t);return s.createElement(Je,We({},he,{order:t,key:n,item:e,renderItem:se,itemKey:n,registerSize:ue,display:t<=J},null==O?void 0:O(e)))})),oe?s.createElement(Je,We({},he,{order:de?J:Number.MAX_SAFE_INTEGER,className:"".concat(te,"-rest"),registerSize:function(e,t){R(t),I(F)},display:de}),"function"==typeof w?w(ae):w):null,S&&s.createElement(Je,We({},he,{order:J,className:"".concat(te,"-suffix"),registerSize:function(e,t){B(t)},display:!0,style:pe}),S));return re&&(me=s.createElement(b.default,{onResize:function(e,t){z(t.clientWidth)}},me)),me}var it=s.forwardRef(ot);it.displayName="Overflow";var at=it,ct=n(54),st=function(e,t){var n,r,o=e.prefixCls,i=e.id,a=e.inputElement,c=e.disabled,l=e.tabIndex,u=e.autoFocus,f=e.autoComplete,d=e.editable,p=e.accessibilityIndex,h=e.value,m=e.maxLength,v=e.onKeyDown,y=e.onMouseDown,_=e.onChange,b=e.onPaste,M=e.onCompositionStart,w=e.onCompositionEnd,O=e.open,S=e.attrs,C=a||s.createElement("input",null),x=C,k=x.ref,L=x.props,E=L.onKeyDown,T=L.onChange,P=L.onMouseDown,j=L.onCompositionStart,z=L.onCompositionEnd,D=L.style;return C=s.cloneElement(C,Object(Me.a)(Object(Me.a)({id:i,ref:Object(ct.a)(t,k),disabled:c,tabIndex:l,autoComplete:f||"off",type:"search",autoFocus:u,className:g()("".concat(o,"-selection-search-input"),null===(n=C)||void 0===n||null===(r=n.props)||void 0===r?void 0:r.className),style:Object(Me.a)(Object(Me.a)({},D),{},{opacity:d?null:0}),role:"combobox","aria-expanded":O,"aria-haspopup":"listbox","aria-owns":"".concat(i,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(i,"_list"),"aria-activedescendant":"".concat(i,"_list_").concat(p)},S),{},{value:d?h:"",maxLength:m,readOnly:!d,unselectable:d?null:"on",onKeyDown:function(e){v(e),E&&E(e)},onMouseDown:function(e){y(e),P&&P(e)},onChange:function(e){_(e),T&&T(e)},onCompositionStart:function(e){M(e),j&&j(e)},onCompositionEnd:function(e){w(e),z&&z(e)},onPaste:b}))},lt=s.forwardRef(st);lt.displayName="Input";var ut=lt;function ft(e,t){De?s.useLayoutEffect(e,t):s.useEffect(e,t)}var dt=function(e){e.preventDefault(),e.stopPropagation()},pt=function(e){var t=e.id,n=e.prefixCls,r=e.values,o=e.open,i=e.searchValue,a=e.inputRef,c=e.placeholder,u=e.disabled,d=e.mode,p=e.showSearch,h=e.autoFocus,m=e.autoComplete,v=e.accessibilityIndex,_=e.tabIndex,b=e.removeIcon,M=e.maxTagCount,w=e.maxTagTextLength,O=e.maxTagPlaceholder,S=void 0===O?function(e){return"+ ".concat(e.length," ...")}:O,C=e.tagRender,x=e.onToggleOpen,k=e.onSelect,L=e.onInputChange,E=e.onInputPaste,T=e.onInputKeyDown,P=e.onInputMouseDown,j=e.onInputCompositionStart,z=e.onInputCompositionEnd,D=s.useRef(null),N=Object(s.useState)(0),H=Object(f.a)(N,2),A=H[0],Y=H[1],I=Object(s.useState)(!1),V=Object(f.a)(I,2),F=V[0],R=V[1],W="".concat(n,"-selection"),U=o||"tags"===d?i:"",B="tags"===d||p&&(o||F);function K(e,t,n,r){return s.createElement("span",{className:g()("".concat(W,"-item"),Object(l.a)({},"".concat(W,"-item-disabled"),t))},s.createElement("span",{className:"".concat(W,"-item-content")},e),n&&s.createElement(pe,{className:"".concat(W,"-item-remove"),onMouseDown:dt,onClick:r,customizeIcon:b},"×"))}ft((function(){Y(D.current.scrollWidth)}),[U]);var q=s.createElement("div",{className:"".concat(W,"-search"),style:{width:A},onFocus:function(){R(!0)},onBlur:function(){R(!1)}},s.createElement(ut,{ref:a,open:o,prefixCls:n,id:t,inputElement:null,disabled:u,autoFocus:h,autoComplete:m,editable:B,accessibilityIndex:v,value:U,onKeyDown:T,onMouseDown:P,onChange:L,onPaste:E,onCompositionStart:j,onCompositionEnd:z,tabIndex:_,attrs:y(e,!0)}),s.createElement("span",{ref:D,className:"".concat(W,"-search-mirror"),"aria-hidden":!0},U," ")),G=s.createElement(at,{prefixCls:"".concat(W,"-overflow"),data:r,renderItem:function(e){var t=e.disabled,n=e.label,r=e.value,i=!u&&!t,a=n;if("number"==typeof w&&("string"==typeof n||"number"==typeof n)){var c=String(a);c.length>w&&(a="".concat(c.slice(0,w),"..."))}var l=function(e){e&&e.stopPropagation(),k(r,{selected:!1})};return"function"==typeof C?function(e,t,n,r,i){return s.createElement("span",{onMouseDown:function(e){dt(e),x(!o)}},C({label:t,value:e,disabled:n,closable:r,onClose:i}))}(r,a,t,i,l):K(a,t,i,l)},renderRest:function(e){return K("function"==typeof S?S(e):S,!1)},suffix:q,itemKey:"key",maxCount:M});return s.createElement(s.Fragment,null,G,!r.length&&!U&&s.createElement("span",{className:"".concat(W,"-placeholder")},c))},ht=function(e){var t=e.inputElement,n=e.prefixCls,r=e.id,o=e.inputRef,i=e.disabled,a=e.autoFocus,c=e.autoComplete,l=e.accessibilityIndex,u=e.mode,d=e.open,p=e.values,h=e.placeholder,m=e.tabIndex,v=e.showSearch,_=e.searchValue,g=e.activeValue,b=e.maxLength,M=e.onInputKeyDown,w=e.onInputMouseDown,O=e.onInputChange,S=e.onInputPaste,C=e.onInputCompositionStart,x=e.onInputCompositionEnd,k=s.useState(!1),L=Object(f.a)(k,2),E=L[0],T=L[1],P="combobox"===u,j=P||v,z=p[0],D=_||"";P&&g&&!E&&(D=g),s.useEffect((function(){P&&T(!1)}),[P,g]);var N=!("combobox"!==u&&!d)&&!!D,H=!z||"string"!=typeof z.label&&"number"!=typeof z.label?void 0:z.label.toString();return s.createElement(s.Fragment,null,s.createElement("span",{className:"".concat(n,"-selection-search")},s.createElement(ut,{ref:o,prefixCls:n,id:r,open:d,inputElement:t,disabled:i,autoFocus:a,autoComplete:c,editable:j,accessibilityIndex:l,value:D,onKeyDown:M,onMouseDown:w,onChange:function(e){T(!0),O(e)},onPaste:S,onCompositionStart:C,onCompositionEnd:x,tabIndex:m,attrs:y(e,!0),maxLength:P?b:void 0})),!P&&z&&!N&&s.createElement("span",{className:"".concat(n,"-selection-item"),title:H},z.label),!z&&!N&&s.createElement("span",{className:"".concat(n,"-selection-placeholder")},h))};function mt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250,t=s.useRef(null),n=s.useRef(null);function r(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(n.current),n.current=window.setTimeout((function(){t.current=null}),e)}return s.useEffect((function(){return function(){window.clearTimeout(n.current)}}),[]),[function(){return t.current},r]}var vt=function(e,t){var n=Object(s.useRef)(null),o=Object(s.useRef)(!1),i=e.prefixCls,a=e.multiple,c=e.open,l=e.mode,u=e.showSearch,p=e.tokenWithEnter,h=e.onSearch,m=e.onSearchSubmit,v=e.onToggleOpen,y=e.onInputKeyDown,_=e.domRef;s.useImperativeHandle(t,(function(){return{focus:function(){n.current.focus()},blur:function(){n.current.blur()}}}));var g=mt(0),b=Object(f.a)(g,2),M=b[0],w=b[1],O=Object(s.useRef)(null),S=function(e){!1!==h(e,!0,o.current)&&v(!0)},C={inputRef:n,onInputKeyDown:function(e){var t=e.which;t!==d.a.UP&&t!==d.a.DOWN||e.preventDefault(),y&&y(e),t!==d.a.ENTER||"tags"!==l||o.current||c||m(e.target.value),[d.a.SHIFT,d.a.TAB,d.a.BACKSPACE,d.a.ESC].includes(t)||v(!0)},onInputMouseDown:function(){w(!0)},onInputChange:function(e){var t=e.target.value;if(p&&O.current&&/[\r\n]/.test(O.current)){var n=O.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");t=t.replace(n,O.current)}O.current=null,S(t)},onInputPaste:function(e){var t=e.clipboardData.getData("text");O.current=t},onInputCompositionStart:function(){o.current=!0},onInputCompositionEnd:function(e){o.current=!1,"combobox"!==l&&S(e.target.value)}},x=a?s.createElement(pt,Object(r.a)({},e,C)):s.createElement(ht,Object(r.a)({},e,C));return s.createElement("div",{ref:_,className:"".concat(i,"-selector"),onClick:function(e){e.target!==n.current&&(void 0!==document.body.style.msTouchAction?setTimeout((function(){n.current.focus()})):n.current.focus())},onMouseDown:function(e){var t=M();e.target===n.current||t||e.preventDefault(),("combobox"===l||u&&t)&&c||(c&&h("",!0,!1),v())}},x)},yt=s.forwardRef(vt);yt.displayName="Selector";var _t=yt,gt=n(90),bt=function(e,t){var n=e.prefixCls,o=(e.disabled,e.visible),i=e.children,a=e.popupElement,c=e.containerWidth,f=e.animation,d=e.transitionName,p=e.dropdownStyle,h=e.dropdownClassName,m=e.direction,v=void 0===m?"ltr":m,y=e.dropdownMatchSelectWidth,_=void 0===y||y,b=e.dropdownRender,M=e.dropdownAlign,w=e.getPopupContainer,O=e.empty,S=e.getTriggerDOMNode,C=Object(u.a)(e,["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode"]),x="".concat(n,"-dropdown"),k=a;b&&(k=b(a));var L=s.useMemo((function(){return function(e){var t="number"!=typeof e?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}}(_)}),[_]),E=f?"".concat(x,"-").concat(f):d,T=s.useRef(null);s.useImperativeHandle(t,(function(){return{getPopupElement:function(){return T.current}}}));var P=Object(Me.a)({minWidth:c},p);return"number"==typeof _?P.width=_:_&&(P.width=c),s.createElement(gt.a,Object(r.a)({},C,{showAction:[],hideAction:[],popupPlacement:"rtl"===v?"bottomRight":"bottomLeft",builtinPlacements:L,prefixCls:x,popupTransitionName:E,popup:s.createElement("div",{ref:T},k),popupAlign:M,popupVisible:o,getPopupContainer:w,popupClassName:g()(h,Object(l.a)({},"".concat(x,"-empty"),O)),popupStyle:P,getTriggerDOMNode:S}),i)},Mt=s.forwardRef(bt);Mt.displayName="SelectTrigger";var wt=Mt;var Ot=["removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","tabIndex"];var St=function(e){var t=e.mode,n=e.options,r=e.children,o=e.backfill,i=e.allowClear,a=e.placeholder,c=e.getInputElement,l=e.showSearch,u=e.onSearch,f=e.defaultOpen,d=e.autoFocus,p=e.labelInValue,h=e.value,m=e.inputValue,v=e.optionLabelProp,y="multiple"===t||"tags"===t,_=void 0!==l?l:y||"combobox"===t,g=n||Se(r);if(Object(Pe.a)("tags"!==t||g.every((function(e){return!e.disabled})),"Please avoid setting option to disabled in tags mode since user can always type text as tag."),"tags"===t||"combobox"===t){var b=g.some((function(e){return e.options?e.options.some((function(e){return"number"==typeof("value"in e?e.value:e.key)})):"number"==typeof("value"in e?e.value:e.key)}));Object(Pe.a)(!b,"`value` of Option should not use number type when `mode` is `tags` or `combobox`.")}if(Object(Pe.a)("combobox"!==t||!v,"`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly."),Object(Pe.a)("combobox"===t||!o,"`backfill` only works with `combobox` mode."),Object(Pe.a)("combobox"===t||!c,"`getInputElement` only work with `combobox` mode."),Object(Pe.b)("combobox"!==t||!c||!i||!a,"Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`."),u&&!_&&"combobox"!==t&&"tags"!==t&&Object(Pe.a)(!1,"`onSearch` should work with `showSearch` instead of use alone."),Object(Pe.b)(!f||d,"`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed."),null!=h){var M=je(h);Object(Pe.a)(!p||M.every((function(e){return"object"===Object(Te.a)(e)&&("key"in e||"value"in e)})),"`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`"),Object(Pe.a)(!y||Array.isArray(h),"`value` should be array when `mode` is `multiple` or `tags`")}if(r){var w=null;Object(we.a)(r).some((function(e){if(!s.isValidElement(e)||!e.type)return!1;var t=e.type;return!t.isSelectOption&&(t.isSelectOptGroup?!Object(we.a)(e.props.children).every((function(t){return!(s.isValidElement(t)&&e.type&&!t.type.isSelectOption)||(w=t.type,!1)})):(w=t,!0))})),w&&Object(Pe.a)(!1,"`children` should be `Select.Option` or `Select.OptGroup` instead of `".concat(w.displayName||w.name||w,"`.")),Object(Pe.a)(void 0===m,"`inputValue` is deprecated, please use `searchValue` instead.")}},Ct=function(e){var t=e.prefixCls,n=e.components.optionList,o=e.convertChildrenToData,i=e.flattenOptions,a=e.getLabeledValue,c=e.filterOptions,p=e.isValueDisabled,h=e.findValueOption,m=(e.warningProps,e.fillOptionsWithMissingValue),v=e.omitDOMProps;function y(e,y){var _,b=e.prefixCls,M=void 0===b?t:b,w=e.className,O=e.id,S=e.open,C=e.defaultOpen,x=e.options,k=e.children,L=e.mode,E=e.value,T=e.defaultValue,P=e.labelInValue,j=e.showSearch,z=e.inputValue,D=e.searchValue,N=e.filterOption,H=e.filterSort,A=e.optionFilterProp,Y=void 0===A?"value":A,I=e.autoClearSearchValue,V=void 0===I||I,F=e.onSearch,R=e.allowClear,W=e.clearIcon,U=e.showArrow,B=e.inputIcon,K=e.menuItemSelectedIcon,q=e.disabled,G=e.loading,$=e.defaultActiveFirstOption,J=e.notFoundContent,X=void 0===J?"Not Found":J,Q=e.optionLabelProp,Z=e.backfill,ee=(e.tabIndex,e.getInputElement),te=e.getPopupContainer,ne=e.listHeight,re=void 0===ne?200:ne,oe=e.listItemHeight,ie=void 0===oe?20:oe,ae=e.animation,ce=e.transitionName,se=e.virtual,le=e.dropdownStyle,ue=e.dropdownClassName,fe=e.dropdownMatchSelectWidth,de=e.dropdownRender,he=e.dropdownAlign,me=e.showAction,ve=void 0===me?[]:me,ye=e.direction,_e=e.tokenSeparators,ge=e.tagRender,be=e.onPopupScroll,we=e.onDropdownVisibleChange,Oe=e.onFocus,Se=e.onBlur,Ce=e.onKeyUp,xe=e.onKeyDown,ke=e.onMouseDown,Le=e.onChange,Te=e.onSelect,Pe=e.onDeselect,je=e.onClear,He=e.internalProps,Ae=void 0===He?{}:He,Ye=Object(u.a)(e,["prefixCls","className","id","open","defaultOpen","options","children","mode","value","defaultValue","labelInValue","showSearch","inputValue","searchValue","filterOption","filterSort","optionFilterProp","autoClearSearchValue","onSearch","allowClear","clearIcon","showArrow","inputIcon","menuItemSelectedIcon","disabled","loading","defaultActiveFirstOption","notFoundContent","optionLabelProp","backfill","tabIndex","getInputElement","getPopupContainer","listHeight","listItemHeight","animation","transitionName","virtual","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","showAction","direction","tokenSeparators","tagRender","onPopupScroll","onDropdownVisibleChange","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown","onChange","onSelect","onDeselect","onClear","internalProps"]),Ie="RC_SELECT_INTERNAL_PROPS_MARK"===Ae.mark,We=v?v(Ye):Ye;Ot.forEach((function(e){delete We[e]}));var Ue=Object(s.useRef)(null),Be=Object(s.useRef)(null),Ke=Object(s.useRef)(null),qe=Object(s.useRef)(null),Ge=Object(s.useMemo)((function(){return(_e||[]).some((function(e){return["\n","\r\n"].includes(e)}))}),[_e]),$e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=s.useState(!1),n=Object(f.a)(t,2),r=n[0],o=n[1],i=s.useRef(null),a=function(){window.clearTimeout(i.current)};s.useEffect((function(){return a}),[]);var c=function(t,n){a(),i.current=window.setTimeout((function(){o(t),n&&n()}),e)};return[r,c,a]}(),Je=Object(f.a)($e,3),Xe=Je[0],Qe=Je[1],Ze=Je[2],et=Object(s.useState)(),tt=Object(f.a)(et,2),nt=tt[0],rt=tt[1];Object(s.useEffect)((function(){var e;rt("rc_select_".concat((De?(e=Ne,Ne+=1):e="TEST_OR_SSR",e)))}),[]);var ot=O||nt,it=Q;void 0===it&&(it=x?"label":"children");var at="combobox"!==L&&P,ct="tags"===L||"multiple"===L,st=void 0!==j?j:ct||"combobox"===L,lt=Object(s.useState)(!1),ut=Object(f.a)(lt,2),dt=ut[0],pt=ut[1];Object(s.useEffect)((function(){pt(Object(Fe.a)())}),[]);var ht=Object(s.useRef)(null);s.useImperativeHandle(y,(function(){var e,t,n;return{focus:null===(e=Ke.current)||void 0===e?void 0:e.focus,blur:null===(t=Ke.current)||void 0===t?void 0:t.blur,scrollTo:null===(n=qe.current)||void 0===n?void 0:n.scrollTo}}));var vt=Re(T,{value:E}),yt=Object(f.a)(vt,2),gt=yt[0],bt=yt[1],Mt=Object(s.useMemo)((function(){return function(e,t){var n=t.labelInValue,r=t.combobox,o=new Map;if(void 0===e||""===e&&r)return[[],o];var i=Array.isArray(e)?e:[e],a=i;return n&&(a=i.filter((function(e){return null!==e})).map((function(e){var t=e.key,n=e.value,r=void 0!==n?n:t;return o.set(r,e),r}))),[a,o]}(gt,{labelInValue:at,combobox:"combobox"===L})}),[gt,at]),St=Object(f.a)(Mt,2),Ct=St[0],xt=St[1],kt=Object(s.useMemo)((function(){return new Set(Ct)}),[Ct]),Lt=Object(s.useState)(null),Et=Object(f.a)(Lt,2),Tt=Et[0],Pt=Et[1],jt=Object(s.useState)(""),zt=Object(f.a)(jt,2),Dt=zt[0],Nt=zt[1],Ht=Dt;"combobox"===L&&void 0!==gt?Ht=gt:void 0!==D?Ht=D:z&&(Ht=z);var At=Object(s.useMemo)((function(){var e=x;return void 0===e&&(e=o(k)),"tags"===L&&m&&(e=m(e,gt,it,P)),e||[]}),[x,k,L,gt]),Yt=Object(s.useMemo)((function(){return i(At,e)}),[At]),It=function(e){var t=s.useRef(null),n=s.useMemo((function(){var t=new Map;return e.forEach((function(e){var n=e.data.value;t.set(n,e)})),t}),[e]);return t.current=n,function(e){return e.map((function(e){return t.current.get(e)})).filter(Boolean)}}(Yt),Vt=Object(s.useMemo)((function(){if(!Ht||!st)return Object(Ee.a)(At);var e=c(Ht,At,{optionFilterProp:Y,filterOption:"combobox"===L&&void 0===N?function(){return!0}:N});return"tags"===L&&e.every((function(e){return e[Y]!==Ht}))&&e.unshift({value:Ht,label:Ht,key:"__RC_SELECT_TAG_PLACEHOLDER__"}),H&&Array.isArray(e)?Object(Ee.a)(e).sort(H):e}),[At,Ht,L,st,H]),Ft=Object(s.useMemo)((function(){return i(Vt,e)}),[Vt]);Object(s.useEffect)((function(){qe.current&&qe.current.scrollTo&&qe.current.scrollTo(0)}),[Ht]);var Rt,Wt,Ut=Object(s.useMemo)((function(){var e=Ct.map((function(e){var t=It([e]),n=a(e,{options:t,prevValueMap:xt,labelInValue:at,optionLabelProp:it});return Object(Me.a)(Object(Me.a)({},n),{},{disabled:p(e,t)})}));return L||1!==e.length||null!==e[0].value||null!==e[0].label?e:[]}),[gt,At,L]);Rt=Ut,Wt=s.useRef(Rt),Ut=s.useMemo((function(){var e=new Map;Wt.current.forEach((function(t){var n=t.value,r=t.label;n!==r&&e.set(n,r)}));var t=Rt.map((function(t){var n=e.get(t.value);return t.isCacheable&&n?Object(Me.a)(Object(Me.a)({},t),{},{label:n}):t}));return Wt.current=t,t}),[Rt]);var Bt=function(e,t,n){var r=It([e]),o=h([e],r)[0];if(!Ae.skipTriggerSelect){var i=at?a(e,{options:r,prevValueMap:xt,labelInValue:at,optionLabelProp:it}):e;t&&Te?Te(i,o):!t&&Pe&&Pe(i,o)}Ie&&(t&&Ae.onRawSelect?Ae.onRawSelect(e,o,n):!t&&Ae.onRawDeselect&&Ae.onRawDeselect(e,o,n))},Kt=Object(s.useState)([]),qt=Object(f.a)(Kt,2),Gt=qt[0],$t=qt[1],Jt=function(e){if(!Ie||!Ae.skipTriggerChange){var t=It(e),n=function(e,t){var n=t.optionLabelProp,r=t.labelInValue,o=t.prevValueMap,i=t.options,a=t.getLabeledValue,c=e;return r&&(c=c.map((function(e){return a(e,{options:i,prevValueMap:o,labelInValue:r,optionLabelProp:n})}))),c}(Array.from(e),{labelInValue:at,options:t,getLabeledValue:a,prevValueMap:xt,optionLabelProp:it}),r=ct?n:n[0];if(Le&&(0!==Ct.length||0!==n.length)){var o=h(e,t,{prevValueOptions:Gt});$t(o.map((function(t,n){var r=Object(Me.a)({},t);return Object.defineProperty(r,"_INTERNAL_OPTION_VALUE_",{get:function(){return e[n]}}),r}))),Le(r,ct?o:o[0])}bt(r)}},Xt=function(e,t){var n,r=t.selected,o=t.source;q||(ct?(n=new Set(Ct),r?n.add(e):n.delete(e)):(n=new Set).add(e),(ct||!ct&&Array.from(Ct)[0]!==e)&&Jt(Array.from(n)),Bt(e,!ct||r,o),"combobox"===L?(Nt(String(e)),Pt("")):ct&&!V||(Nt(""),Pt("")))},Qt="combobox"===L&&ee&&ee()||null,Zt=Re(void 0,{defaultValue:C,value:S}),en=Object(f.a)(Zt,2),tn=en[0],nn=en[1],rn=tn,on=!X&&!Vt.length;(q||on&&rn&&"combobox"===L)&&(rn=!1);var an=!on&&rn,cn=function(e){var t=void 0!==e?e:!rn;tn===t||q||(nn(t),we&&we(t))};!function(e,t,n){var r=s.useRef(null);r.current={elements:e.filter((function(e){return e})),open:t,triggerOpen:n},s.useEffect((function(){function e(e){var t=e.target;t.shadowRoot&&e.composed&&(t=e.composedPath()[0]||t),r.current.open&&r.current.elements.every((function(e){return!e.contains(t)&&e!==t}))&&r.current.triggerOpen(!1)}return window.addEventListener("mousedown",e),function(){return window.removeEventListener("mousedown",e)}}),[])}([Ue.current,Be.current&&Be.current.getPopupElement()],an,cn);var sn=function(e,t,n){var r=!0,o=e;Pt(null);var i=n?null:Ve(e,_e),a=i;if("combobox"===L)t&&Jt([o]);else if(i){o="","tags"!==L&&(a=i.map((function(e){var t=Yt.find((function(t){return t.data[it]===e}));return t?t.data.value:null})).filter((function(e){return null!==e})));var c=Array.from(new Set([].concat(Object(Ee.a)(Ct),Object(Ee.a)(a))));Jt(c),c.forEach((function(e){Bt(e,!0,"input")})),cn(!1),r=!1}return Nt(o),F&&Ht!==o&&F(o),r};Object(s.useEffect)((function(){tn&&q&&nn(!1)}),[q]),Object(s.useEffect)((function(){rn||ct||"combobox"===L||sn("",!1,!1)}),[rn]);var ln=mt(),un=Object(f.a)(ln,2),fn=un[0],dn=un[1],pn=Object(s.useRef)(!1),hn=[];Object(s.useEffect)((function(){return function(){hn.forEach((function(e){return clearTimeout(e)})),hn.splice(0,hn.length)}}),[]);var mn=Object(s.useState)(0),vn=Object(f.a)(mn,2),yn=vn[0],_n=vn[1],gn=void 0!==$?$:"combobox"!==L,bn=Object(s.useState)(null),Mn=Object(f.a)(bn,2),wn=Mn[0],On=Mn[1],Sn=Object(s.useState)({}),Cn=Object(f.a)(Sn,2)[1];ft((function(){if(an){var e=Math.ceil(Ue.current.offsetWidth);wn!==e&&On(e)}}),[an]);var xn,kn=s.createElement(n,{ref:qe,prefixCls:M,id:ot,open:rn,childrenAsData:!x,options:Vt,flattenOptions:Ft,multiple:ct,values:kt,height:re,itemHeight:ie,onSelect:function(e,t){Xt(e,Object(Me.a)(Object(Me.a)({},t),{},{source:"option"}))},onToggleOpen:cn,onActiveValue:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.source,o=void 0===r?"keyboard":r;_n(t),Z&&"combobox"===L&&null!==e&&"keyboard"===o&&Pt(String(e))},defaultActiveFirstOption:gn,notFoundContent:X,onScroll:be,searchValue:Ht,menuItemSelectedIcon:K,virtual:!1!==se&&!1!==fe,onMouseEnter:function(){Cn({})}});!q&&R&&(Ct.length||Ht)&&(xn=s.createElement(pe,{className:"".concat(M,"-clear"),onMouseDown:function(){Ie&&Ae.onClear&&Ae.onClear(),je&&je(),Jt([]),sn("",!1,!1)},customizeIcon:W},"×"));var Ln,En=void 0!==U?U:G||!ct&&"combobox"!==L;En&&(Ln=s.createElement(pe,{className:g()("".concat(M,"-arrow"),Object(l.a)({},"".concat(M,"-arrow-loading"),G)),customizeIcon:B,customizeIconProps:{loading:G,searchValue:Ht,open:rn,focused:Xe,showSearch:st}}));var Tn=g()(M,w,(_={},Object(l.a)(_,"".concat(M,"-focused"),Xe),Object(l.a)(_,"".concat(M,"-multiple"),ct),Object(l.a)(_,"".concat(M,"-single"),!ct),Object(l.a)(_,"".concat(M,"-allow-clear"),R),Object(l.a)(_,"".concat(M,"-show-arrow"),En),Object(l.a)(_,"".concat(M,"-disabled"),q),Object(l.a)(_,"".concat(M,"-loading"),G),Object(l.a)(_,"".concat(M,"-open"),rn),Object(l.a)(_,"".concat(M,"-customize-input"),Qt),Object(l.a)(_,"".concat(M,"-show-search"),st),_));return s.createElement("div",Object(r.a)({className:Tn},We,{ref:Ue,onMouseDown:function(e){var t=e.target,n=Be.current&&Be.current.getPopupElement();if(n&&n.contains(t)){var r=setTimeout((function(){var e,t=hn.indexOf(r);(-1!==t&&hn.splice(t,1),Ze(),dt||n.contains(document.activeElement))||(null===(e=Ke.current)||void 0===e||e.focus())}));hn.push(r)}if(ke){for(var o=arguments.length,i=new Array(o>1?o-1:0),a=1;a<o;a++)i[a-1]=arguments[a];ke.apply(void 0,[e].concat(i))}},onKeyDown:function(e){var t,n=fn(),r=e.which;if(r===d.a.ENTER&&("combobox"!==L&&e.preventDefault(),rn||cn(!0)),dn(!!Ht),r===d.a.BACKSPACE&&!n&&ct&&!Ht&&Ct.length){var o=ze(Ut,Ct);null!==o.removedValue&&(Jt(o.values),Bt(o.removedValue,!1,"input"))}for(var i=arguments.length,a=new Array(i>1?i-1:0),c=1;c<i;c++)a[c-1]=arguments[c];rn&&qe.current&&(t=qe.current).onKeyDown.apply(t,[e].concat(a));xe&&xe.apply(void 0,[e].concat(a))},onKeyUp:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o;rn&&qe.current&&(o=qe.current).onKeyUp.apply(o,[e].concat(n));Ce&&Ce.apply(void 0,[e].concat(n))},onFocus:function(){Qe(!0),q||(Oe&&!pn.current&&Oe.apply(void 0,arguments),ve.includes("focus")&&cn(!0)),pn.current=!0},onBlur:function(){Qe(!1,(function(){pn.current=!1,cn(!1)})),q||(Ht&&("tags"===L?(sn("",!1,!1),Jt(Array.from(new Set([].concat(Object(Ee.a)(Ct),[Ht]))))):"multiple"===L&&Nt("")),Se&&Se.apply(void 0,arguments))}}),Xe&&!rn&&s.createElement("span",{style:{width:0,height:0,display:"flex",overflow:"hidden",opacity:0},"aria-live":"polite"},"".concat(Ct.join(", "))),s.createElement(wt,{ref:Be,disabled:q,prefixCls:M,visible:an,popupElement:kn,containerWidth:wn,animation:ae,transitionName:ce,dropdownStyle:le,dropdownClassName:ue,direction:ye,dropdownMatchSelectWidth:fe,dropdownRender:de,dropdownAlign:he,getPopupContainer:te,empty:!At.length,getTriggerDOMNode:function(){return ht.current}},s.createElement(_t,Object(r.a)({},e,{domRef:ht,prefixCls:M,inputElement:Qt,ref:Ke,id:ot,showSearch:st,mode:L,accessibilityIndex:yn,multiple:ct,tagRender:ge,values:Ut,open:rn,onToggleOpen:cn,searchValue:Ht,activeValue:Tt,onSearch:sn,onSearchSubmit:function(e){if(e&&e.trim()){var t=Array.from(new Set([].concat(Object(Ee.a)(Ct),[e])));Jt(t),t.forEach((function(e){Bt(e,!0,"input")})),Nt("")}},onSelect:function(e,t){Xt(e,Object(Me.a)(Object(Me.a)({},t),{},{source:"selection"}))},tokenWithEnter:Ge}))),Ln,xn)}return s.forwardRef(y)}({prefixCls:"rc-select",components:{optionList:ve},convertChildrenToData:Se,flattenOptions:function(e){var t=[];return function e(n,r){n.forEach((function(n){r||!("options"in n)?t.push({key:He(n,t.length),groupOption:r,data:n}):(t.push({key:He(n,t.length),group:!0,data:n}),e(n.options,!0))}))}(e,!1),t},getLabeledValue:function(e,t){var n=t.options,r=t.prevValueMap,o=t.labelInValue,i=t.optionLabelProp,a=Ye([e],n)[0],c={value:e},s=o?r.get(e):void 0;return s&&"object"===Object(Te.a)(s)&&"label"in s?(c.label=s.label,a&&"string"==typeof s.label&&"string"==typeof a[i]&&s.label.trim()!==a[i].trim()&&Object(Pe.a)(!1,"`label` of `value` is not same as `label` in Select options.")):a&&i in a?c.label=a[i]:(c.label=e,c.isCacheable=!0),c.key=c.value,c},filterOptions:function(e,t,n){var r,o=n.optionFilterProp,i=n.filterOption,a=[];return!1===i?Object(Ee.a)(t):(r="function"==typeof i?i:function(e){return function(t,n){var r=t.toLowerCase();return"options"in n?Ie(n.label).toLowerCase().includes(r):Ie(n[e]).toLowerCase().includes(r)}}(o),t.forEach((function(t){if("options"in t)if(r(e,t))a.push(t);else{var n=t.options.filter((function(t){return r(e,t)}));n.length&&a.push(Object(Me.a)(Object(Me.a)({},t),{},{options:n}))}else r(e,Ae(t))&&a.push(t)})),a)},isValueDisabled:function(e,t){return Ye([e],t)[0].disabled},findValueOption:Ye,warningProps:St,fillOptionsWithMissingValue:function(e,t,n,r){var o=je(t).slice().sort(),i=Object(Ee.a)(e),a=new Set;return e.forEach((function(e){e.options?e.options.forEach((function(e){a.add(e.value)})):a.add(e.value)})),o.forEach((function(e){var t,o=r?e.value:e;a.has(o)||i.push(r?(t={},Object(l.a)(t,n,e.label),Object(l.a)(t,"value",o),t):{value:o})})),i}}),xt=function(e){Object(a.a)(n,e);var t=Object(c.a)(n);function n(){var e;return Object(o.a)(this,n),(e=t.apply(this,arguments)).selectRef=s.createRef(),e.focus=function(){e.selectRef.current.focus()},e.blur=function(){e.selectRef.current.blur()},e}return Object(i.a)(n,[{key:"render",value:function(){return s.createElement(Ct,Object(r.a)({ref:this.selectRef},this.props))}}]),n}(s.Component);xt.Option=_e,xt.OptGroup=be;var kt=xt;t.default=kt},function(e,t,n){"use strict";n.r(t),n.d(t,"Field",(function(){return pe})),n.d(t,"List",(function(){return he})),n.d(t,"useForm",(function(){return be})),n.d(t,"FormProvider",(function(){return we}));var r=n(0),o=n.n(r);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function a(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function p(e){return function(e){if(Array.isArray(e))return u(e)}(e)||f(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function v(e,t,n){return t&&m(e.prototype,t),n&&m(e,n),e}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var b=n(506),M=n.n(b);function w(e,t){return!t||"object"!==M()(t)&&"function"!=typeof t?y(e):t}function O(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=g(e);if(t){var o=g(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return w(this,n)}}var S=n(507);var C={};function x(e,t){0}function k(e,t,n){t||C[n]||(e(!1,n),C[n]=!0)}var L=function(e,t){k(x,e,t)},E="RC_FORM_INTERNAL_HOOKS",T=function(){L(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},P=r.createContext({getFieldValue:T,getFieldsValue:T,getFieldError:T,getFieldsError:T,isFieldsTouched:T,isFieldTouched:T,isFieldValidating:T,isFieldsValidating:T,resetFields:T,setFields:T,setFieldsValue:T,validateFields:T,submit:T,getInternalHooks:function(){return T(),{dispatch:T,initEntityValue:T,registerField:T,useSubscribe:T,setInitialValues:T,setCallbacks:T,getFields:T,setValidateMessages:T,setPreserve:T}}});function j(e){return null==e?[]:Array.isArray(e)?e:[e]}var z=n(79),D=n.n(z);function N(e,t,n,r,o,i,a){try{var c=e[i](a),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,o)}function H(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){N(i,r,o,a,c,"next",e)}function c(e){N(i,r,o,a,c,"throw",e)}a(void 0)}))}}function A(e){return(A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var Y=n(508);function I(e,t){for(var n=e,r=0;r<t.length;r+=1){if(null==n)return;n=n[t[r]]}return n}function V(e){if(Array.isArray(e))return e}function F(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function W(e,t,n,r){if(!t.length)return n;var o,i,a=V(o=t)||f(o)||d(o)||F(),s=a[0],l=a.slice(1);return i=e||"number"!=typeof s?Array.isArray(e)?p(e):function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?R(Object(n),!0).forEach((function(t){c(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e):[],r&&void 0===n&&1===l.length?delete i[s][l[0]]:i[s]=W(i[s],l,n,r),i}function U(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return t.length&&r&&void 0===n&&!I(e,t.slice(0,-1))?e:W(e,t,n,r)}function B(e){return j(e)}function K(e,t){return I(e,t)}function q(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=U(e,t,n,r);return o}function G(e,t){var n={};return t.forEach((function(t){var r=K(e,t);n=q(n,t,r)})),n}function $(e,t){return e&&e.some((function(e){return Z(e,t)}))}function J(e){return"object"===A(e)&&null!==e&&Object.getPrototypeOf(e)===Object.prototype}function X(e,t){var n=Array.isArray(e)?p(e):l({},e);return t?(Object.keys(t).forEach((function(e){var r=n[e],o=t[e],i=J(r)&&J(o);n[e]=i?X(r,o||{}):o})),n):n}function Q(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((function(e,t){return X(e,t)}),e)}function Z(e,t){return!(!e||!t||e.length!==t.length)&&e.every((function(e,n){return t[n]===e}))}function ee(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&e in t.target?t.target[e]:t}function te(e,t,n){var r=e.length;if(t<0||t>=r||n<0||n>=r)return e;var o=e[t],i=t-n;return i>0?[].concat(p(e.slice(0,n)),[o],p(e.slice(n,t)),p(e.slice(t+1,r))):i<0?[].concat(p(e.slice(0,t)),p(e.slice(t+1,n+1)),[o],p(e.slice(n+1,r))):e}var ne="'${name}' is not a valid ${type}",re={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:ne,method:ne,array:ne,object:ne,number:ne,date:ne,boolean:ne,integer:ne,float:ne,regexp:ne,email:ne,url:ne,hex:ne},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},oe=Y.a;function ie(e,t,n,r){var o=l(l({},n),{},{name:t,enum:(n.enum||[]).join(", ")}),i=function(e,t){return function(){return function(e,t){return e.replace(/\$\{\w+\}/g,(function(e){var n=e.slice(2,-1);return t[n]}))}(e,l(l({},o),t))}};return function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).forEach((function(o){var a=t[o];"string"==typeof a?n[o]=i(a,r):a&&"object"===A(a)?(n[o]={},e(a,n[o])):n[o]=a})),n}(Q({},re,e))}function ae(e,t,n,r,o){return ce.apply(this,arguments)}function ce(){return(ce=H(D.a.mark((function e(t,n,o,i,a){var s,u,f,d,h,m;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=l({},o),u=null,s&&"array"===s.type&&s.defaultField&&(u=s.defaultField,delete s.defaultField),f=new oe(c({},t,[s])),d=ie(i.validateMessages,t,s,a),f.messages(d),h=[],e.prev=7,e.next=10,Promise.resolve(f.validate(c({},t,n),l({},i)));case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(7),e.t0.errors?h=e.t0.errors.map((function(e,t){var n=e.message;return r.isValidElement(n)?r.cloneElement(n,{key:"error_".concat(t)}):n})):(console.error(e.t0),h=[d.default()]);case 15:if(h.length||!u){e.next=20;break}return e.next=18,Promise.all(n.map((function(e,n){return ae("".concat(t,".").concat(n),e,u,i,a)})));case 18:return m=e.sent,e.abrupt("return",m.reduce((function(e,t){return[].concat(p(e),p(t))}),[]));case 20:return e.abrupt("return",h);case 21:case"end":return e.stop()}}),e,null,[[7,12]])})))).apply(this,arguments)}function se(e,t,n,r,o,i){var a,c=e.join("."),s=n.map((function(e){var t=e.validator;return t?l(l({},e),{},{validator:function(e,n,r){var o=!1,i=t(e,n,(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];Promise.resolve().then((function(){L(!o,"Your validator function has already return a promise. `callback` will be ignored."),o||r.apply(void 0,t)}))}));o=i&&"function"==typeof i.then&&"function"==typeof i.catch,L(o,"`callback` is deprecated. Please return a promise instead."),o&&i.then((function(){r()})).catch((function(e){r(e||" ")}))}}):e}));if(!0===o)a=new Promise(function(){var e=H(D.a.mark((function e(n,o){var a,l;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=0;case 1:if(!(a<s.length)){e.next=11;break}return e.next=4,ae(c,t,s[a],r,i);case 4:if(!(l=e.sent).length){e.next=8;break}return o(l),e.abrupt("return");case 8:a+=1,e.next=1;break;case 11:n([]);case 12:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}());else{var u=s.map((function(e){return ae(c,t,e,r,i)}));a=(o?function(e){return ue.apply(this,arguments)}(u):function(e){return le.apply(this,arguments)}(u)).then((function(e){return e.length?Promise.reject(e):[]}))}return a.catch((function(e){return e})),a}function le(){return(le=H(D.a.mark((function e(t){return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t).then((function(e){var t;return(t=[]).concat.apply(t,p(e))})));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ue(){return(ue=H(D.a.mark((function e(t){var n;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=0,e.abrupt("return",new Promise((function(e){t.forEach((function(r){r.then((function(r){r.length&&e(r),(n+=1)===t.length&&e([])}))}))})));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e,t,n,r,o,i){return"function"==typeof e?e(t,n,"source"in i?{source:i.source}:{}):r!==o}var de=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_(e,t)}(n,e);var t=O(n);function n(e){var i;(h(this,n),(i=t.call(this,e)).state={resetCount:0},i.cancelRegisterFunc=null,i.mounted=!1,i.touched=!1,i.dirty=!1,i.validatePromise=null,i.errors=[],i.cancelRegister=function(){var e=i.props,t=e.preserve,n=e.isListField,r=e.name;i.cancelRegisterFunc&&i.cancelRegisterFunc(n,t,B(r)),i.cancelRegisterFunc=null},i.getNamePath=function(){var e=i.props,t=e.name,n=e.fieldContext.prefixName;return void 0!==t?[].concat(p(void 0===n?[]:n),p(t)):[]},i.getRules=function(){var e=i.props,t=e.rules,n=void 0===t?[]:t,r=e.fieldContext;return n.map((function(e){return"function"==typeof e?e(r):e}))},i.refresh=function(){i.mounted&&i.setState((function(e){return{resetCount:e.resetCount+1}}))},i.onStoreChange=function(e,t,n){var r=i.props,o=r.shouldUpdate,a=r.dependencies,c=void 0===a?[]:a,s=r.onReset,l=n.store,u=i.getNamePath(),f=i.getValue(e),d=i.getValue(l),p=t&&$(t,u);switch("valueUpdate"===n.type&&"external"===n.source&&f!==d&&(i.touched=!0,i.dirty=!0,i.validatePromise=null,i.errors=[]),n.type){case"reset":if(!t||p)return i.touched=!1,i.dirty=!1,i.validatePromise=null,i.errors=[],s&&s(),void i.refresh();break;case"setField":if(p){var h=n.data;return"touched"in h&&(i.touched=h.touched),"validating"in h&&!("originRCField"in h)&&(i.validatePromise=h.validating?Promise.resolve([]):null),"errors"in h&&(i.errors=h.errors||[]),i.dirty=!0,void i.reRender()}if(o&&!u.length&&fe(o,e,l,f,d,n))return void i.reRender();break;case"dependenciesUpdate":if(c.map(B).some((function(e){return $(n.relatedFields,e)})))return void i.reRender();break;default:if(p||(!c.length||u.length||o)&&fe(o,e,l,f,d,n))return void i.reRender()}!0===o&&i.reRender()},i.validateRules=function(e){var t=i.getNamePath(),n=i.getValue(),r=Promise.resolve().then((function(){if(!i.mounted)return[];var o=i.props,a=o.validateFirst,c=void 0!==a&&a,s=o.messageVariables,l=(e||{}).triggerName,u=i.getRules();l&&(u=u.filter((function(e){var t=e.validateTrigger;return!t||j(t).includes(l)})));var f=se(t,n,u,e,c,s);return f.catch((function(e){return e})).then((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];i.validatePromise===r&&(i.validatePromise=null,i.errors=e,i.reRender())})),f}));return i.validatePromise=r,i.dirty=!0,i.errors=[],i.reRender(),r},i.isFieldValidating=function(){return!!i.validatePromise},i.isFieldTouched=function(){return i.touched},i.isFieldDirty=function(){return i.dirty},i.getErrors=function(){return i.errors},i.isListField=function(){return i.props.isListField},i.isList=function(){return i.props.isList},i.isPreserve=function(){return i.props.preserve},i.getMeta=function(){return i.prevValidating=i.isFieldValidating(),{touched:i.isFieldTouched(),validating:i.prevValidating,errors:i.errors,name:i.getNamePath()}},i.getOnlyChild=function(e){if("function"==typeof e){var t=i.getMeta();return l(l({},i.getOnlyChild(e(i.getControlled(),t,i.props.fieldContext))),{},{isFunction:!0})}var n=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];return o.a.Children.forEach(t,(function(t){(null!=t||n.keepEmpty)&&(Array.isArray(t)?r=r.concat(e(t)):Object(S.isFragment)(t)&&t.props?r=r.concat(e(t.props.children,n)):r.push(t))})),r}(e);return 1===n.length&&r.isValidElement(n[0])?{child:n[0],isFunction:!1}:{child:n,isFunction:!1}},i.getValue=function(e){var t=i.props.fieldContext.getFieldsValue,n=i.getNamePath();return K(e||t(!0),n)},i.getControlled=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=i.props,n=t.trigger,r=t.validateTrigger,o=t.getValueFromEvent,a=t.normalize,s=t.valuePropName,u=t.getValueProps,f=t.fieldContext,d=void 0!==r?r:f.validateTrigger,p=i.getNamePath(),h=f.getInternalHooks,m=f.getFieldsValue,v=h(E),y=v.dispatch,_=i.getValue(),g=u||function(e){return c({},s,e)},b=e[n],M=l(l({},e),g(_));M[n]=function(){var e;i.touched=!0,i.dirty=!0;for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];e=o?o.apply(void 0,n):ee.apply(void 0,[s].concat(n)),a&&(e=a(e,_,m(!0))),y({type:"updateValue",namePath:p,value:e}),b&&b.apply(void 0,n)};var w=j(d||[]);return w.forEach((function(e){var t=M[e];M[e]=function(){t&&t.apply(void 0,arguments);var n=i.props.rules;n&&n.length&&y({type:"validateField",namePath:p,triggerName:e})}})),M},e.fieldContext)&&(0,(0,e.fieldContext.getInternalHooks)(E).initEntityValue)(y(i));return i}return v(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.shouldUpdate,n=e.fieldContext;if(this.mounted=!0,n){var r=(0,n.getInternalHooks)(E).registerField;this.cancelRegisterFunc=r(this)}!0===t&&this.reRender()}},{key:"componentWillUnmount",value:function(){this.cancelRegister(),this.mounted=!1}},{key:"reRender",value:function(){this.mounted&&this.forceUpdate()}},{key:"render",value:function(){var e,t=this.state.resetCount,n=this.props.children,o=this.getOnlyChild(n),i=o.child;return o.isFunction?e=i:r.isValidElement(i)?e=r.cloneElement(i,this.getControlled(i.props)):(L(!i,"`children` of Field is not validate ReactElement."),e=i),r.createElement(r.Fragment,{key:t},e)}}]),n}(r.Component);de.contextType=P,de.defaultProps={trigger:"onChange",valuePropName:"value"};var pe=function(e){var t=e.name,n=a(e,["name"]),o=r.useContext(P),c=void 0!==t?B(t):void 0,s="keep";return n.isListField||(s="_".concat((c||[]).join("_"))),r.createElement(de,i({key:s,name:c},n,{fieldContext:o}))},he=function(e){var t=e.name,n=e.initialValue,o=e.children,i=e.rules,a=e.validateTrigger,c=r.useContext(P),s=r.useRef({keys:[],id:0}).current;if("function"!=typeof o)return L(!1,"Form.List only accepts function as children."),null;var u=B(c.prefixName)||[],f=[].concat(p(u),p(B(t)));return r.createElement(P.Provider,{value:l(l({},c),{},{prefixName:f})},r.createElement(pe,{name:[],shouldUpdate:function(e,t,n){return"internal"!==n.source&&e!==t},rules:i,validateTrigger:a,initialValue:n,isList:!0},(function(e,t){var n=e.value,r=void 0===n?[]:n,i=e.onChange,a=c.getFieldValue,l=function(){return a(f||[])||[]},u={add:function(e,t){var n=l();t>=0&&t<=n.length?(s.keys=[].concat(p(s.keys.slice(0,t)),[s.id],p(s.keys.slice(t))),i([].concat(p(n.slice(0,t)),[e],p(n.slice(t))))):(s.keys=[].concat(p(s.keys),[s.id]),i([].concat(p(n),[e]))),s.id+=1},remove:function(e){var t=l(),n=new Set(Array.isArray(e)?e:[e]);n.size<=0||(s.keys=s.keys.filter((function(e,t){return!n.has(t)})),i(t.filter((function(e,t){return!n.has(t)}))))},move:function(e,t){if(e!==t){var n=l();e<0||e>=n.length||t<0||t>=n.length||(s.keys=te(s.keys,e,t),i(te(n,e,t)))}}},d=r||[];return Array.isArray(d)||(d=[]),o(d.map((function(e,t){var n=s.keys[t];return void 0===n&&(s.keys[t]=s.id,n=s.keys[t],s.id+=1),{name:t,key:n,isListField:!0}})),u,t)})))};function me(e,t){return V(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||d(e,t)||F()}var ve="__@field_split__";function ye(e){return e.map((function(e){return"".concat(A(e),":").concat(e)})).join(ve)}var _e=function(){function e(){h(this,e),this.kvs=new Map}return v(e,[{key:"set",value:function(e,t){this.kvs.set(ye(e),t)}},{key:"get",value:function(e){return this.kvs.get(ye(e))}},{key:"update",value:function(e,t){var n=t(this.get(e));n?this.set(e,n):this.delete(e)}},{key:"delete",value:function(e){this.kvs.delete(ye(e))}},{key:"map",value:function(e){return p(this.kvs.entries()).map((function(t){var n=me(t,2),r=n[0],o=n[1],i=r.split(ve);return e({key:i.map((function(e){var t=me(e.match(/^([^:]*):(.*)$/),3),n=t[1],r=t[2];return"number"===n?Number(r):r})),value:o})}))}},{key:"toJSON",value:function(){var e={};return this.map((function(t){var n=t.key,r=t.value;return e[n.join(".")]=r,null})),e}}]),e}(),ge=function e(t){var n=this;h(this,e),this.formHooked=!1,this.subscribable=!0,this.store={},this.fieldEntities=[],this.initialValues={},this.callbacks={},this.validateMessages=null,this.preserve=null,this.lastValidatePromise=null,this.getForm=function(){return{getFieldValue:n.getFieldValue,getFieldsValue:n.getFieldsValue,getFieldError:n.getFieldError,getFieldsError:n.getFieldsError,isFieldsTouched:n.isFieldsTouched,isFieldTouched:n.isFieldTouched,isFieldValidating:n.isFieldValidating,isFieldsValidating:n.isFieldsValidating,resetFields:n.resetFields,setFields:n.setFields,setFieldsValue:n.setFieldsValue,validateFields:n.validateFields,submit:n.submit,getInternalHooks:n.getInternalHooks}},this.getInternalHooks=function(e){return e===E?(n.formHooked=!0,{dispatch:n.dispatch,initEntityValue:n.initEntityValue,registerField:n.registerField,useSubscribe:n.useSubscribe,setInitialValues:n.setInitialValues,setCallbacks:n.setCallbacks,setValidateMessages:n.setValidateMessages,getFields:n.getFields,setPreserve:n.setPreserve}):(L(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)},this.useSubscribe=function(e){n.subscribable=e},this.setInitialValues=function(e,t){n.initialValues=e||{},t&&(n.store=Q({},e,n.store))},this.getInitialValue=function(e){return K(n.initialValues,e)},this.setCallbacks=function(e){n.callbacks=e},this.setValidateMessages=function(e){n.validateMessages=e},this.setPreserve=function(e){n.preserve=e},this.timeoutId=null,this.warningUnhooked=function(){0},this.getFieldEntities=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e?n.fieldEntities.filter((function(e){return e.getNamePath().length})):n.fieldEntities},this.getFieldsMap=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new _e;return n.getFieldEntities(e).forEach((function(e){var n=e.getNamePath();t.set(n,e)})),t},this.getFieldEntitiesForNamePathList=function(e){if(!e)return n.getFieldEntities(!0);var t=n.getFieldsMap(!0);return e.map((function(e){var n=B(e);return t.get(n)||{INVALIDATE_NAME_PATH:B(e)}}))},this.getFieldsValue=function(e,t){if(n.warningUnhooked(),!0===e&&!t)return n.store;var r=n.getFieldEntitiesForNamePathList(Array.isArray(e)?e:null),o=[];return r.forEach((function(n){var r,i="INVALIDATE_NAME_PATH"in n?n.INVALIDATE_NAME_PATH:n.getNamePath();if(e||!(null===(r=n.isListField)||void 0===r?void 0:r.call(n)))if(t){var a="getMeta"in n?n.getMeta():null;t(a)&&o.push(i)}else o.push(i)})),G(n.store,o.map(B))},this.getFieldValue=function(e){n.warningUnhooked();var t=B(e);return K(n.store,t)},this.getFieldsError=function(e){return n.warningUnhooked(),n.getFieldEntitiesForNamePathList(e).map((function(t,n){return t&&!("INVALIDATE_NAME_PATH"in t)?{name:t.getNamePath(),errors:t.getErrors()}:{name:B(e[n]),errors:[]}}))},this.getFieldError=function(e){n.warningUnhooked();var t=B(e);return n.getFieldsError([t])[0].errors},this.isFieldsTouched=function(){n.warningUnhooked();for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var o,i=t[0],a=t[1],c=!1;0===t.length?o=null:1===t.length?Array.isArray(i)?(o=i.map(B),c=!1):(o=null,c=i):(o=i.map(B),c=a);var s=n.getFieldEntities(!0),l=function(e){return e.isFieldTouched()};if(!o)return c?s.every(l):s.some(l);var u=new _e;o.forEach((function(e){u.set(e,[])})),s.forEach((function(e){var t=e.getNamePath();o.forEach((function(n){n.every((function(e,n){return t[n]===e}))&&u.update(n,(function(t){return[].concat(p(t),[e])}))}))}));var f=function(e){return e.some(l)},d=u.map((function(e){return e.value}));return c?d.every(f):d.some(f)},this.isFieldTouched=function(e){return n.warningUnhooked(),n.isFieldsTouched([e])},this.isFieldsValidating=function(e){n.warningUnhooked();var t=n.getFieldEntities();if(!e)return t.some((function(e){return e.isFieldValidating()}));var r=e.map(B);return t.some((function(e){var t=e.getNamePath();return $(r,t)&&e.isFieldValidating()}))},this.isFieldValidating=function(e){return n.warningUnhooked(),n.isFieldsValidating([e])},this.resetWithFieldInitialValue=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new _e,r=n.getFieldEntities(!0);r.forEach((function(e){var n=e.props.initialValue,r=e.getNamePath();if(void 0!==n){var o=t.get(r)||new Set;o.add({entity:e,value:n}),t.set(r,o)}}));var o,i=function(r){r.forEach((function(r){if(void 0!==r.props.initialValue){var o=r.getNamePath();if(void 0!==n.getInitialValue(o))L(!1,"Form already set 'initialValues' with path '".concat(o.join("."),"'. Field can not overwrite it."));else{var i=t.get(o);if(i&&i.size>1)L(!1,"Multiple Field with path '".concat(o.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(i){var a=n.getFieldValue(o);e.skipExist&&void 0!==a||(n.store=q(n.store,o,p(i)[0].value))}}}}))};e.entities?o=e.entities:e.namePathList?(o=[],e.namePathList.forEach((function(e){var n,r=t.get(e);r&&(n=o).push.apply(n,p(p(r).map((function(e){return e.entity}))))}))):o=r,i(o)},this.resetFields=function(e){n.warningUnhooked();var t=n.store;if(!e)return n.store=Q({},n.initialValues),n.resetWithFieldInitialValue(),void n.notifyObservers(t,null,{type:"reset"});var r=e.map(B);r.forEach((function(e){var t=n.getInitialValue(e);n.store=q(n.store,e,t)})),n.resetWithFieldInitialValue({namePathList:r}),n.notifyObservers(t,r,{type:"reset"})},this.setFields=function(e){n.warningUnhooked();var t=n.store;e.forEach((function(e){var r=e.name,o=(e.errors,a(e,["name","errors"])),i=B(r);"value"in o&&(n.store=q(n.store,i,o.value)),n.notifyObservers(t,[i],{type:"setField",data:e})}))},this.getFields=function(){return n.getFieldEntities(!0).map((function(e){var t=e.getNamePath(),r=l(l({},e.getMeta()),{},{name:t,value:n.getFieldValue(t)});return Object.defineProperty(r,"originRCField",{value:!0}),r}))},this.initEntityValue=function(e){var t=e.props.initialValue;if(void 0!==t){var r=e.getNamePath();void 0===K(n.store,r)&&(n.store=q(n.store,r,t))}},this.registerField=function(e){if(n.fieldEntities.push(e),void 0!==e.props.initialValue){var t=n.store;n.resetWithFieldInitialValue({entities:[e],skipExist:!0}),n.notifyObservers(t,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];n.fieldEntities=n.fieldEntities.filter((function(t){return t!==e}));var i=void 0!==r?r:n.preserve;if(!1===i&&(!t||o.length>1)){var a=e.getNamePath(),c=t?void 0:K(n.initialValues,a);a.length&&n.getFieldValue(a)!==c&&n.fieldEntities.every((function(e){return!Z(e.getNamePath(),a)}))&&(n.store=q(n.store,a,c,!0))}}},this.dispatch=function(e){switch(e.type){case"updateValue":var t=e.namePath,r=e.value;n.updateValue(t,r);break;case"validateField":var o=e.namePath,i=e.triggerName;n.validateFields([o],{triggerName:i})}},this.notifyObservers=function(e,t,r){if(n.subscribable){var o=l(l({},r),{},{store:n.getFieldsValue(!0)});n.getFieldEntities().forEach((function(n){(0,n.onStoreChange)(e,t,o)}))}else n.forceRootUpdate()},this.updateValue=function(e,t){var r=B(e),o=n.store;n.store=q(n.store,r,t),n.notifyObservers(o,[r],{type:"valueUpdate",source:"internal"});var i=n.getDependencyChildrenFields(r);i.length&&n.validateFields(i),n.notifyObservers(o,i,{type:"dependenciesUpdate",relatedFields:[r].concat(p(i))});var a=n.callbacks.onValuesChange;a&&a(G(n.store,[r]),n.getFieldsValue());n.triggerOnFieldsChange([r].concat(p(i)))},this.setFieldsValue=function(e){n.warningUnhooked();var t=n.store;e&&(n.store=Q(n.store,e)),n.notifyObservers(t,null,{type:"valueUpdate",source:"external"})},this.getDependencyChildrenFields=function(e){var t=new Set,r=[],o=new _e;n.getFieldEntities().forEach((function(e){(e.props.dependencies||[]).forEach((function(t){var n=B(t);o.update(n,(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t}))}))}));return function e(n){(o.get(n)||new Set).forEach((function(n){if(!t.has(n)){t.add(n);var o=n.getNamePath();n.isFieldDirty()&&o.length&&(r.push(o),e(o))}}))}(e),r},this.triggerOnFieldsChange=function(e,t){var r=n.callbacks.onFieldsChange;if(r){var o=n.getFields();if(t){var i=new _e;t.forEach((function(e){var t=e.name,n=e.errors;i.set(t,n)})),o.forEach((function(e){e.errors=i.get(e.name)||e.errors}))}r(o.filter((function(t){var n=t.name;return $(e,n)})),o)}},this.validateFields=function(e,t){n.warningUnhooked();var r=!!e,o=r?e.map(B):[],i=[];n.getFieldEntities(!0).forEach((function(a){if(r||o.push(a.getNamePath()),(null==t?void 0:t.recursive)&&r){var c=a.getNamePath();c.every((function(t,n){return e[n]===t||void 0===e[n]}))&&o.push(c)}if(a.props.rules&&a.props.rules.length){var s=a.getNamePath();if(!r||$(o,s)){var u=a.validateRules(l({validateMessages:l(l({},re),n.validateMessages)},t));i.push(u.then((function(){return{name:s,errors:[]}})).catch((function(e){return Promise.reject({name:s,errors:e})})))}}}));var a=function(e){var t=!1,n=e.length,r=[];return e.length?new Promise((function(o,i){e.forEach((function(e,a){e.catch((function(e){return t=!0,e})).then((function(e){n-=1,r[a]=e,n>0||(t&&i(r),o(r))}))}))})):Promise.resolve([])}(i);n.lastValidatePromise=a,a.catch((function(e){return e})).then((function(e){var t=e.map((function(e){return e.name}));n.notifyObservers(n.store,t,{type:"validateFinish"}),n.triggerOnFieldsChange(t,e)}));var c=a.then((function(){return n.lastValidatePromise===a?Promise.resolve(n.getFieldsValue(o)):Promise.reject([])})).catch((function(e){var t=e.filter((function(e){return e&&e.errors.length}));return Promise.reject({values:n.getFieldsValue(o),errorFields:t,outOfDate:n.lastValidatePromise!==a})}));return c.catch((function(e){return e})),c},this.submit=function(){n.warningUnhooked(),n.validateFields().then((function(e){var t=n.callbacks.onFinish;if(t)try{t(e)}catch(e){console.error(e)}})).catch((function(e){var t=n.callbacks.onFinishFailed;t&&t(e)}))},this.forceRootUpdate=t};var be=function(e){var t=r.useRef(),n=me(r.useState({}),2)[1];if(!t.current)if(e)t.current=e;else{var o=new ge((function(){n({})}));t.current=o.getForm()}return[t.current]},Me=r.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),we=function(e){var t=e.validateMessages,n=e.onFormChange,o=e.onFormFinish,i=e.children,a=r.useContext(Me),s=r.useRef({});return r.createElement(Me.Provider,{value:l(l({},a),{},{validateMessages:l(l({},a.validateMessages),t),triggerFormChange:function(e,t){n&&n(e,{changedFields:t,forms:s.current}),a.triggerFormChange(e,t)},triggerFormFinish:function(e,t){o&&o(e,{values:t,forms:s.current}),a.triggerFormFinish(e,t)},registerForm:function(e,t){e&&(s.current=l(l({},s.current),{},c({},e,t))),a.registerForm(e,t)},unregisterForm:function(e){var t=l({},s.current);delete t[e],s.current=t,a.unregisterForm(e)}})},i)},Oe=Me,Se=function(e,t){var n=e.name,o=e.initialValues,c=e.fields,s=e.form,u=e.preserve,f=e.children,d=e.component,h=void 0===d?"form":d,m=e.validateMessages,v=e.validateTrigger,y=void 0===v?"onChange":v,_=e.onValuesChange,g=e.onFieldsChange,b=e.onFinish,M=e.onFinishFailed,w=a(e,["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"]),O=r.useContext(Oe),S=me(be(s),1)[0],C=S.getInternalHooks(E),x=C.useSubscribe,k=C.setInitialValues,L=C.setCallbacks,T=C.setValidateMessages,j=C.setPreserve;r.useImperativeHandle(t,(function(){return S})),r.useEffect((function(){return O.registerForm(n,S),function(){O.unregisterForm(n)}}),[O,S,n]),T(l(l({},O.validateMessages),m)),L({onValuesChange:_,onFieldsChange:function(e){if(O.triggerFormChange(n,e),g){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];g.apply(void 0,[e].concat(r))}},onFinish:function(e){O.triggerFormFinish(n,e),b&&b(e)},onFinishFailed:M}),j(u);var z=r.useRef(null);k(o,!z.current),z.current||(z.current=!0);var D=f,N="function"==typeof f;N&&(D=f(S.getFieldsValue(!0),S));x(!N);var H=r.useRef();r.useEffect((function(){(function(e,t){if(e===t)return!0;if(!e&&t||e&&!t)return!1;if(!e||!t||"object"!==A(e)||"object"!==A(t))return!1;var n=Object.keys(e),r=Object.keys(t),o=new Set([].concat(p(n),p(r)));return p(o).every((function(n){var r=e[n],o=t[n];return"function"==typeof r&&"function"==typeof o||r===o}))})(H.current||[],c||[])||S.setFields(c||[]),H.current=c}),[c,S]);var Y=r.useMemo((function(){return l(l({},S),{},{validateTrigger:y})}),[S,y]),I=r.createElement(P.Provider,{value:Y},D);return!1===h?I:r.createElement(h,i({},w,{onSubmit:function(e){e.preventDefault(),e.stopPropagation(),S.submit()},onReset:function(e){var t;e.preventDefault(),S.resetFields(),null===(t=w.onReset)||void 0===t||t.call(w,e)}}),I)},Ce=r.forwardRef(Se);Ce.FormProvider=we,Ce.Field=pe,Ce.List=he,Ce.useForm=be;t.default=Ce},function(e,t,n){"use strict";n.r(t),n.d(t,"Option",(function(){return v})),n.d(t,"OptGroup",(function(){return l})),n.d(t,"SelectPropTypes",(function(){return g}));var r=n(0),o=n.n(r);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=function(e){function t(){return i(this,t),a(this,c(t).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(t,e),t}(r.Component);l.isSelectOptGroup=!0;var u=n(1),f=n.n(u);function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e,t){return(m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var v=function(e){function t(){return d(this,t),p(this,h(t).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&m(e,t)}(t,e),t}(r.Component);function y(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function _(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t[0],o=t[1],i=t[2],a=t.slice(3),c=u.oneOfType([u.string,u.number]),s=u.shape({key:c.isRequired,label:u.node});if(!r.labelInValue){if(("multiple"===r.mode||"tags"===r.mode||r.multiple||r.tags)&&""===r[o])return new Error("Invalid prop `".concat(o,"` of type `string` supplied to `").concat(i,"`, ")+"expected `array` when `multiple` or `tags` is `true`.");var l=u.oneOfType([u.arrayOf(c),c]);return l.apply(void 0,[r,o,i].concat(y(a)))}var f=u.oneOfType([u.arrayOf(s),s]),d=f.apply(void 0,[r,o,i].concat(y(a)));return d?new Error("Invalid prop `".concat(o,"` supplied to `").concat(i,"`, ")+"when you set `labelInValue` to `true`, `".concat(o,"` should in ")+"shape of `{ key: string | number, label?: ReactNode }`."):null}v.propTypes={value:u.oneOfType([u.string,u.number])},v.isSelectOption=!0;var g={id:u.string,defaultActiveFirstOption:u.bool,multiple:u.bool,filterOption:u.any,children:u.any,showSearch:u.bool,disabled:u.bool,allowClear:u.bool,showArrow:u.bool,tags:u.bool,prefixCls:u.string,className:u.string,transitionName:u.string,optionLabelProp:u.string,optionFilterProp:u.string,animation:u.string,choiceTransitionName:u.string,open:u.bool,defaultOpen:u.bool,onChange:u.func,onBlur:u.func,onFocus:u.func,onSelect:u.func,onSearch:u.func,onPopupScroll:u.func,onMouseEnter:u.func,onMouseLeave:u.func,onInputKeyDown:u.func,placeholder:u.any,onDeselect:u.func,labelInValue:u.bool,loading:u.bool,value:_,defaultValue:_,dropdownStyle:u.object,maxTagTextLength:u.number,maxTagCount:u.number,maxTagPlaceholder:u.oneOfType([u.node,u.func]),tokenSeparators:u.arrayOf(u.string),getInputElement:u.func,showAction:u.arrayOf(u.string),clearIcon:u.node,inputIcon:u.node,removeIcon:u.node,menuItemSelectedIcon:u.oneOfType([u.func,u.node]),dropdownRender:u.func},b=n(3),M=n.n(b),w=n(128),O=n.n(w),S=n(78),C=n(76),x=n(36);function k(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t<e.length;t++)e[t]&&e[t].apply&&e[t].apply(this,arguments)}}var L=n(59),E=n.n(L);function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var z=/iPhone/i,D=/iPod/i,N=/iPad/i,H=/\bAndroid(?:.+)Mobile\b/i,A=/Android/i,Y=/\bAndroid(?:.+)SD4930UR\b/i,I=/\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i,V=/Windows Phone/i,F=/\bWindows(?:.+)ARM\b/i,R=/BlackBerry/i,W=/BB10/i,U=/Opera Mini/i,B=/\b(CriOS|Chrome)(?:.+)Mobile/i,K=/Mobile(?:.+)Firefox\b/i;function q(e,t){return e.test(t)}function G(e){var t=e||("undefined"!=typeof navigator?navigator.userAgent:""),n=t.split("[FBAN");void 0!==n[1]&&(t=j(n,1)[0]);void 0!==(n=t.split("Twitter"))[1]&&(t=j(n,1)[0]);var r={apple:{phone:q(z,t)&&!q(V,t),ipod:q(D,t),tablet:!q(z,t)&&q(N,t)&&!q(V,t),device:(q(z,t)||q(D,t)||q(N,t))&&!q(V,t)},amazon:{phone:q(Y,t),tablet:!q(Y,t)&&q(I,t),device:q(Y,t)||q(I,t)},android:{phone:!q(V,t)&&q(Y,t)||!q(V,t)&&q(H,t),tablet:!q(V,t)&&!q(Y,t)&&!q(H,t)&&(q(I,t)||q(A,t)),device:!q(V,t)&&(q(Y,t)||q(I,t)||q(H,t)||q(A,t))||q(/\bokhttp\b/i,t)},windows:{phone:q(V,t),tablet:q(F,t),device:q(V,t)||q(F,t)},other:{blackberry:q(R,t),blackberry10:q(W,t),opera:q(U,t),firefox:q(K,t),chrome:q(B,t),device:q(R,t)||q(W,t)||q(U,t)||q(K,t)||q(B,t)},any:null,phone:null,tablet:null};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r}var $=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},G(),{isMobile:G});function J(e){return(J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function X(){}function Q(e,t,n){var r=t||"";return e.key||"".concat(r,"item_").concat(n)}function Z(e){return"".concat(e,"-menu-")}function ee(e,t){var n=-1;r.Children.forEach(e,(function(e){n+=1,e&&e.type&&e.type.isMenuItemGroup?r.Children.forEach(e.props.children,(function(e){t(e,n+=1)})):t(e,n)}))}var te=["defaultSelectedKeys","selectedKeys","defaultOpenKeys","openKeys","mode","getPopupContainer","onSelect","onDeselect","onDestroy","openTransitionName","openAnimation","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","triggerSubMenuAction","level","selectable","multiple","onOpenChange","visible","focusable","defaultActiveFirst","prefixCls","inlineIndent","parentMenu","title","rootPrefixCls","eventKey","active","onItemHover","onTitleMouseEnter","onTitleMouseLeave","onTitleClick","popupAlign","popupOffset","isOpen","renderMenuItem","manualRef","subMenuKey","disabled","index","isSelected","store","activeKey","builtinPlacements","overflowedIndicator","motion","attribute","value","popupClassName","inlineCollapsed","menu","theme","itemIcon","expandIcon"],ne=function(e){var t=e&&"function"==typeof e.getBoundingClientRect&&e.getBoundingClientRect().width;return t&&(t=+t.toFixed(6)),t||0},re=function(e,t,n){e&&"object"===J(e.style)&&(e.style[t]=n)},oe=n(7),ie=n.n(oe),ae=n(75),ce=n(102),se=n(45),le=n.n(se),ue=n(13),fe=n.n(ue),de=n(17),pe=n.n(de),he=n(44),me=n.n(he),ve=n(19),ye=n.n(ve),_e=n(22),ge=n.n(_e),be=n(48);var Me=n(69),we=n.n(Me),Oe=!("undefined"==typeof window||!window.document||!window.document.createElement);function Se(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var Ce,xe,ke,Le=(Ce=Oe,xe="undefined"!=typeof window?window:{},ke={animationend:Se("Animation","AnimationEnd"),transitionend:Se("Transition","TransitionEnd")},Ce&&("AnimationEvent"in xe||delete ke.animationend.animation,"TransitionEvent"in xe||delete ke.transitionend.transition),ke),Ee={};Oe&&(Ee=document.createElement("div").style);var Te={};function Pe(e){if(Te[e])return Te[e];var t=Le[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o<r;o+=1){var i=n[o];if(Object.prototype.hasOwnProperty.call(t,i)&&i in Ee)return Te[e]=t[i],Te[e]}return""}var je=Pe("animationend"),ze=Pe("transitionend"),De=!(!je||!ze);function Ne(e,t){return e?"object"==typeof e?e[t.replace(/-\w/g,(function(e){return e[1].toUpperCase()}))]:e+"-"+t:null}var He={eventProps:f.a.object,visible:f.a.bool,children:f.a.func,motionName:f.a.oneOfType([f.a.string,f.a.object]),motionAppear:f.a.bool,motionEnter:f.a.bool,motionLeave:f.a.bool,motionLeaveImmediately:f.a.bool,motionDeadline:f.a.number,removeOnLeave:f.a.bool,leavedClassName:f.a.string,onAppearStart:f.a.func,onAppearActive:f.a.func,onAppearEnd:f.a.func,onEnterStart:f.a.func,onEnterActive:f.a.func,onEnterEnd:f.a.func,onLeaveStart:f.a.func,onLeaveActive:f.a.func,onLeaveEnd:f.a.func};var Ae=function(e){var t=e,n=!!o.a.forwardRef;function r(e){return!(!e.motionName||!t)}"object"==typeof e&&(t=e.transitionSupport,n="forwardRef"in e?e.forwardRef:n);var i=function(e){function t(){pe()(this,t);var e=ye()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.onDomUpdate=function(){var t=e.state,n=t.status,o=t.newStatus,i=e.props,a=i.onAppearStart,c=i.onEnterStart,s=i.onLeaveStart,l=i.onAppearActive,u=i.onEnterActive,f=i.onLeaveActive,d=i.motionAppear,p=i.motionEnter,h=i.motionLeave;if(r(e.props)){var m=e.getElement();e.$cacheEle!==m&&(e.removeEventListener(e.$cacheEle),e.addEventListener(m),e.$cacheEle=m),o&&"appear"===n&&d?e.updateStatus(a,null,null,(function(){e.updateActiveStatus(l,"appear")})):o&&"enter"===n&&p?e.updateStatus(c,null,null,(function(){e.updateActiveStatus(u,"enter")})):o&&"leave"===n&&h&&e.updateStatus(s,null,null,(function(){e.updateActiveStatus(f,"leave")}))}},e.onMotionEnd=function(t){var n=e.state,r=n.status,o=n.statusActive,i=e.props,a=i.onAppearEnd,c=i.onEnterEnd,s=i.onLeaveEnd;"appear"===r&&o?e.updateStatus(a,{status:"none"},t):"enter"===r&&o?e.updateStatus(c,{status:"none"},t):"leave"===r&&o&&e.updateStatus(s,{status:"none"},t)},e.setNodeRef=function(t){var n=e.props.internalRef;e.node=t,"function"==typeof n?n(t):n&&"current"in n&&(n.current=t)},e.getElement=function(){try{return(t=e.node||e)instanceof HTMLElement?t:ie.a.findDOMNode(t)}catch(t){return e.$cacheEle}var t},e.addEventListener=function(t){t&&(t.addEventListener(ze,e.onMotionEnd),t.addEventListener(je,e.onMotionEnd))},e.removeEventListener=function(t){t&&(t.removeEventListener(ze,e.onMotionEnd),t.removeEventListener(je,e.onMotionEnd))},e.updateStatus=function(t,n,r,o){var i=t?t(e.getElement(),r):null;if(!1!==i&&!e._destroyed){var a=void 0;o&&(a=function(){e.nextFrame(o)}),e.setState(fe()({statusStyle:"object"==typeof i?i:null,newStatus:!1},n),a)}},e.updateActiveStatus=function(t,n){e.nextFrame((function(){if(e.state.status===n){var r=e.props.motionDeadline;e.updateStatus(t,{statusActive:!0}),r>0&&setTimeout((function(){e.onMotionEnd({deadline:!0})}),r)}}))},e.nextFrame=function(t){e.cancelNextFrame(),e.raf=we()(t)},e.cancelNextFrame=function(){e.raf&&(we.a.cancel(e.raf),e.raf=null)},e.state={status:"none",statusActive:!1,newStatus:!1,statusStyle:null},e.$cacheEle=null,e.node=null,e.raf=null,e}return ge()(t,e),me()(t,[{key:"componentDidMount",value:function(){this.onDomUpdate()}},{key:"componentDidUpdate",value:function(){this.onDomUpdate()}},{key:"componentWillUnmount",value:function(){this._destroyed=!0,this.removeEventListener(this.$cacheEle),this.cancelNextFrame()}},{key:"render",value:function(){var e,t=this.state,n=t.status,o=t.statusActive,i=t.statusStyle,a=this.props,c=a.children,s=a.motionName,l=a.visible,u=a.removeOnLeave,f=a.leavedClassName,d=a.eventProps;return c?"none"!==n&&r(this.props)?c(fe()({},d,{className:M()((e={},le()(e,Ne(s,n),"none"!==n),le()(e,Ne(s,n+"-active"),"none"!==n&&o),le()(e,s,"string"==typeof s),e)),style:i}),this.setNodeRef):l?c(fe()({},d),this.setNodeRef):u?null:c(fe()({},d,{className:f}),this.setNodeRef):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,o=t.status;if(!r(e))return{};var i=e.visible,a=e.motionAppear,c=e.motionEnter,s=e.motionLeave,l=e.motionLeaveImmediately,u={prevProps:e};return("appear"===o&&!a||"enter"===o&&!c||"leave"===o&&!s)&&(u.status="none",u.statusActive=!1,u.newStatus=!1),!n&&i&&a&&(u.status="appear",u.statusActive=!1,u.newStatus=!0),n&&!n.visible&&i&&c&&(u.status="enter",u.statusActive=!1,u.newStatus=!0),(n&&n.visible&&!i&&s||!n&&l&&!i&&s)&&(u.status="leave",u.statusActive=!1,u.newStatus=!0),u}}]),t}(o.a.Component);return i.propTypes=fe()({},He,{internalRef:f.a.oneOfType([f.a.object,f.a.func])}),i.defaultProps={visible:!0,motionEnter:!0,motionAppear:!0,motionLeave:!0,removeOnLeave:!0},Object(be.polyfill)(i),n?o.a.forwardRef((function(e,t){return o.a.createElement(i,fe()({internalRef:t},e))})):i}(De),Ye={adjustX:1,adjustY:1},Ie={topLeft:{points:["bl","tl"],overflow:Ye,offset:[0,-7]},bottomLeft:{points:["tl","bl"],overflow:Ye,offset:[0,7]},leftTop:{points:["tr","tl"],overflow:Ye,offset:[-4,0]},rightTop:{points:["tl","tr"],overflow:Ye,offset:[4,0]}};function Ve(e){return(Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Re(e){return(Re=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function We(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ue(e,t){return(Ue=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ke(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Be(Object(n),!0).forEach((function(t){qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ge=0,$e={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"},Je=function(e,t,n){var r=Z(t),o=e.getState();e.setState({defaultActiveFirst:Ke({},o.defaultActiveFirst,qe({},r,n))})},Xe=function(e){function t(e){var n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Ve(t)&&"function"!=typeof t?We(e):t}(this,Re(t).call(this,e))).onDestroy=function(e){n.props.onDestroy(e)},n.onKeyDown=function(e){var t=e.keyCode,r=n.menuInstance,o=n.props,i=o.isOpen,a=o.store;if(t===x.a.ENTER)return n.onTitleClick(e),Je(a,n.props.eventKey,!0),!0;if(t===x.a.RIGHT)return i?r.onKeyDown(e):(n.triggerOpenChange(!0),Je(a,n.props.eventKey,!0)),!0;if(t===x.a.LEFT){var c;if(!i)return;return(c=r.onKeyDown(e))||(n.triggerOpenChange(!1),c=!0),c}return!i||t!==x.a.UP&&t!==x.a.DOWN?void 0:r.onKeyDown(e)},n.onOpenChange=function(e){n.props.onOpenChange(e)},n.onPopupVisibleChange=function(e){n.triggerOpenChange(e,e?"mouseenter":"mouseleave")},n.onMouseEnter=function(e){var t=n.props,r=t.eventKey,o=t.onMouseEnter,i=t.store;Je(i,n.props.eventKey,!1),o({key:r,domEvent:e})},n.onMouseLeave=function(e){var t=n.props,r=t.parentMenu,o=t.eventKey,i=t.onMouseLeave;r.subMenuInstance=We(n),i({key:o,domEvent:e})},n.onTitleMouseEnter=function(e){var t=n.props,r=t.eventKey,o=t.onItemHover,i=t.onTitleMouseEnter;o({key:r,hover:!0}),i({key:r,domEvent:e})},n.onTitleMouseLeave=function(e){var t=n.props,r=t.parentMenu,o=t.eventKey,i=t.onItemHover,a=t.onTitleMouseLeave;r.subMenuInstance=We(n),i({key:o,hover:!1}),a({key:o,domEvent:e})},n.onTitleClick=function(e){var t=We(n).props;t.onTitleClick({key:t.eventKey,domEvent:e}),"hover"!==t.triggerSubMenuAction&&(n.triggerOpenChange(!t.isOpen,"click"),Je(t.store,n.props.eventKey,!1))},n.onSubMenuClick=function(e){"function"==typeof n.props.onClick&&n.props.onClick(n.addKeyPath(e))},n.onSelect=function(e){n.props.onSelect(e)},n.onDeselect=function(e){n.props.onDeselect(e)},n.getPrefixCls=function(){return"".concat(n.props.rootPrefixCls,"-submenu")},n.getActiveClassName=function(){return"".concat(n.getPrefixCls(),"-active")},n.getDisabledClassName=function(){return"".concat(n.getPrefixCls(),"-disabled")},n.getSelectedClassName=function(){return"".concat(n.getPrefixCls(),"-selected")},n.getOpenClassName=function(){return"".concat(n.props.rootPrefixCls,"-submenu-open")},n.saveMenuInstance=function(e){n.menuInstance=e},n.addKeyPath=function(e){return Ke({},e,{keyPath:(e.keyPath||[]).concat(n.props.eventKey)})},n.triggerOpenChange=function(e,t){var r=n.props.eventKey,o=function(){n.onOpenChange({key:r,item:We(n),trigger:t,open:e})};"mouseenter"===t?n.mouseenterTimeout=setTimeout((function(){o()}),0):o()},n.isChildrenSelected=function(){var e={find:!1};return function e(t,n,o){t&&!o.find&&r.Children.forEach(t,(function(t){if(t){var r=t.type;if(!r||!(r.isSubMenu||r.isMenuItem||r.isMenuItemGroup))return;-1!==n.indexOf(t.key)?o.find=!0:t.props.children&&e(t.props.children,n,o)}}))}(n.props.children,n.props.selectedKeys,e),e.find},n.isOpen=function(){return-1!==n.props.openKeys.indexOf(n.props.eventKey)},n.adjustWidth=function(){if(n.subMenuTitle&&n.menuInstance){var e=oe.findDOMNode(n.menuInstance);e.offsetWidth>=n.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(n.subMenuTitle.offsetWidth,"px"))}},n.saveSubMenuTitle=function(e){n.subMenuTitle=e};var o=e.store,i=e.eventKey,a=o.getState().defaultActiveFirst;n.isRootMenu=!1;var c=!1;return a&&(c=a[i]),Je(o,i,c),n}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ue(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,r=t.parentMenu,o=t.manualRef;o&&o(this),"horizontal"===n&&r.isRootMenu&&this.props.isOpen&&(this.minWidthTimeout=setTimeout((function(){return e.adjustWidth()}),0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout)}},{key:"renderChildren",value:function(e){var t=this,n=this.props,o={mode:"horizontal"===n.mode?"vertical":n.mode,visible:this.props.isOpen,level:n.level+1,inlineIndent:n.inlineIndent,focusable:!1,onClick:this.onSubMenuClick,onSelect:this.onSelect,onDeselect:this.onDeselect,onDestroy:this.onDestroy,selectedKeys:n.selectedKeys,eventKey:"".concat(n.eventKey,"-menu-"),openKeys:n.openKeys,motion:n.motion,onOpenChange:this.onOpenChange,subMenuOpenDelay:n.subMenuOpenDelay,parentMenu:this,subMenuCloseDelay:n.subMenuCloseDelay,forceSubMenuRender:n.forceSubMenuRender,triggerSubMenuAction:n.triggerSubMenuAction,builtinPlacements:n.builtinPlacements,defaultActiveFirst:n.store.getState().defaultActiveFirst[Z(n.eventKey)],multiple:n.multiple,prefixCls:n.rootPrefixCls,id:this.internalMenuId,manualRef:this.saveMenuInstance,itemIcon:n.itemIcon,expandIcon:n.expandIcon},i=this.haveRendered;if(this.haveRendered=!0,this.haveOpened=this.haveOpened||o.visible||o.forceSubMenuRender,!this.haveOpened)return r.createElement("div",null);var a=Ke({},n.motion,{leavedClassName:"".concat(n.rootPrefixCls,"-hidden"),removeOnLeave:!1,motionAppear:i||!o.visible||"inline"!==o.mode});return r.createElement(Ae,Object.assign({visible:o.visible},a),(function(n){var i=n.className,a=n.style,c=M()("".concat(o.prefixCls,"-sub"),i);return r.createElement(Et,Object.assign({},o,{id:t.internalMenuId,className:c,style:a}),e)}))}},{key:"render",value:function(){var e,t=Ke({},this.props),n=t.isOpen,o=this.getPrefixCls(),i="inline"===t.mode,a=M()(o,"".concat(o,"-").concat(t.mode),(qe(e={},t.className,!!t.className),qe(e,this.getOpenClassName(),n),qe(e,this.getActiveClassName(),t.active||n&&!i),qe(e,this.getDisabledClassName(),t.disabled),qe(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(t.eventKey?this.internalMenuId="".concat(t.eventKey,"$Menu"):(Ge+=1,this.internalMenuId="$__$".concat(Ge,"$Menu")));var c={},s={},l={};t.disabled||(c={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},s={onClick:this.onTitleClick},l={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var u={};i&&(u.paddingLeft=t.inlineIndent*t.level);var f={};this.props.isOpen&&(f={"aria-owns":this.internalMenuId});var d=null;"horizontal"!==t.mode&&(d=this.props.expandIcon,"function"==typeof this.props.expandIcon&&(d=r.createElement(this.props.expandIcon,Ke({},this.props))));var p=r.createElement("div",Object.assign({ref:this.saveSubMenuTitle,style:u,className:"".concat(o,"-title")},l,s,{"aria-expanded":n},f,{"aria-haspopup":"true",title:"string"==typeof t.title?t.title:void 0}),t.title,d||r.createElement("i",{className:"".concat(o,"-arrow")})),h=this.renderChildren(t.children),m=t.parentMenu.isRootMenu?t.parentMenu.props.getPopupContainer:function(e){return e.parentNode},v=$e[t.mode],y=t.popupOffset?{offset:t.popupOffset}:{},_="inline"===t.mode?"":t.popupClassName,g=t.disabled,b=t.triggerSubMenuAction,w=t.subMenuOpenDelay,O=t.forceSubMenuRender,S=t.subMenuCloseDelay,C=t.builtinPlacements;return te.forEach((function(e){return delete t[e]})),delete t.onClick,r.createElement("li",Object.assign({},t,c,{className:a,role:"menuitem"}),i&&p,i&&h,!i&&r.createElement(ce.a,{prefixCls:o,popupClassName:"".concat(o,"-popup ").concat(_),getPopupContainer:m,builtinPlacements:Object.assign({},Ie,C),popupPlacement:v,popupVisible:n,popupAlign:y,popup:h,action:g?[]:[b],mouseEnterDelay:w,mouseLeaveDelay:S,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:O},p))}}])&&Fe(n.prototype,o),i&&Fe(n,i),t}(r.Component);Xe.defaultProps={onMouseEnter:X,onMouseLeave:X,onTitleMouseEnter:X,onTitleMouseLeave:X,onTitleClick:X,manualRef:X,mode:"vertical",title:""};var Qe=Object(C.connect)((function(e,t){var n=e.openKeys,r=e.activeKey,o=e.selectedKeys,i=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(i)>-1,active:r[a]===i,selectedKeys:o}}))(Xe);Qe.isSubMenu=!0;var Ze=Qe;function et(e){return(et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tt(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function nt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach((function(t){ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function it(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function at(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ct(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function st(e,t){return!t||"object"!==et(t)&&"function"!=typeof t?ut(e):t}function lt(e){return(lt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ut(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ft(e,t){return(ft=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var dt=!("undefined"==typeof window||!window.document||!window.document.createElement);dt&&n(616);var pt=function(e){function t(){var e;return at(this,t),(e=st(this,lt(t).apply(this,arguments))).resizeObserver=null,e.mutationObserver=null,e.originalTotalWidth=0,e.overflowedItems=[],e.menuItemSizes=[],e.state={lastVisibleIndex:void 0},e.getMenuItemNodes=function(){var t=e.props.prefixCls,n=oe.findDOMNode(ut(e));return n?[].slice.call(n.children).filter((function(e){return e.className.split(" ").indexOf("".concat(t,"-overflowed-submenu"))<0})):[]},e.getOverflowedSubMenuItem=function(t,n,o){var i=e.props,a=i.overflowedIndicator,c=i.level,s=i.mode,l=i.prefixCls,u=i.theme;if(1!==c||"horizontal"!==s)return null;var f=e.props.children[0].props,d=(f.children,f.title,f.style),p=it(f,["children","title","style"]),h=rt({},d),m="".concat(t,"-overflowed-indicator"),v="".concat(t,"-overflowed-indicator");0===n.length&&!0!==o?h=rt({},h,{display:"none"}):o&&(h=rt({},h,{visibility:"hidden",position:"absolute"}),m="".concat(m,"-placeholder"),v="".concat(v,"-placeholder"));var y=u?"".concat(l,"-").concat(u):"",_={};return te.forEach((function(e){void 0!==p[e]&&(_[e]=p[e])})),r.createElement(Ze,Object.assign({title:a,className:"".concat(l,"-overflowed-submenu"),popupClassName:y},_,{key:m,eventKey:v,disabled:!1,style:h}),n)},e.setChildrenWidthAndResize=function(){if("horizontal"===e.props.mode){var t=oe.findDOMNode(ut(e));if(t){var n=t.children;if(n&&0!==n.length){var r=t.children[n.length-1];re(r,"display","inline-block");var o=e.getMenuItemNodes(),i=o.filter((function(e){return e.className.split(" ").indexOf("menuitem-overflowed")>=0}));i.forEach((function(e){re(e,"display","inline-block")})),e.menuItemSizes=o.map((function(e){return ne(e)})),i.forEach((function(e){re(e,"display","none")})),e.overflowedIndicatorWidth=ne(t.children[t.children.length-1]),e.originalTotalWidth=e.menuItemSizes.reduce((function(e,t){return e+t}),0),e.handleResize(),re(r,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=oe.findDOMNode(ut(e));if(t){var n=ne(t);e.overflowedItems=[];var r,o=0;e.originalTotalWidth>n+.5&&(r=-1,e.menuItemSizes.forEach((function(t){(o+=t)+e.overflowedIndicatorWidth<=n&&(r+=1)}))),e.setState({lastVisibleIndex:r})}}},e}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ft(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=oe.findDOMNode(this);if(!t)return;this.resizeObserver=new ae.default((function(t){t.forEach(e.setChildrenWidthAndResize)})),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),"undefined"!=typeof MutationObserver&&(this.mutationObserver=new MutationObserver((function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),e.setChildrenWidthAndResize()})),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect()}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce((function(o,i,a){var c=i;if("horizontal"===t.props.mode){var s=t.getOverflowedSubMenuItem(i.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(a>n&&(c=r.cloneElement(i,{style:{display:"none"},eventKey:"".concat(i.props.eventKey,"-hidden"),className:"".concat("menuitem-overflowed")})),a===n+1&&(t.overflowedItems=e.slice(n+1).map((function(e){return r.cloneElement(e,{key:e.props.eventKey,mode:"vertical-left"})})),s=t.getOverflowedSubMenuItem(i.props.eventKey,t.overflowedItems)));var l=[].concat(tt(o),[s,c]);return a===e.length-1&&l.push(t.getOverflowedSubMenuItem(i.props.eventKey,[],!0)),l}return[].concat(tt(o),[c])}),[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,o=(e.theme,it(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),i=t;return r.createElement(i,Object.assign({},o),this.renderChildren(n))}}])&&ct(n.prototype,o),i&&ct(n,i),t}(r.Component);pt.defaultProps={tag:"div",className:""};var ht=pt;function mt(e){return(mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vt(){return(vt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function yt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _t(e){return(_t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function gt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bt(e,t){return(bt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mt(Object(n),!0).forEach((function(t){Ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ot(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function St(e,t,n){var r=e.getState();e.setState({activeKey:wt({},r.activeKey,Ot({},t,n))})}function Ct(e){return e.eventKey||"0-menu-"}function xt(e,t){var n,r=t,o=e.children,i=e.eventKey;if(r&&(ee(o,(function(e,t){e&&e.props&&!e.props.disabled&&r===Q(e,i,t)&&(n=!0)})),n))return r;return r=null,e.defaultActiveFirst?(ee(o,(function(e,t){r||!e||e.props.disabled||(r=Q(e,i,t))})),r):r}function kt(e){if(e){var t=this.instanceArray.indexOf(e);-1!==t?this.instanceArray[t]=e:this.instanceArray.push(e)}}var Lt=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==mt(t)&&"function"!=typeof t?gt(e):t}(this,_t(t).call(this,e))).onKeyDown=function(e,t){var r,o=e.keyCode;if(n.getFlatInstanceArray().forEach((function(t){t&&t.props.active&&t.onKeyDown&&(r=t.onKeyDown(e))})),r)return 1;var i=null;return o!==x.a.UP&&o!==x.a.DOWN||(i=n.step(o===x.a.UP?-1:1)),i?(e.preventDefault(),St(n.props.store,Ct(n.props),i.props.eventKey),"function"==typeof t&&t(i),1):void 0},n.onItemHover=function(e){var t=e.key,r=e.hover;St(n.props.store,Ct(n.props),r?t:null)},n.onDeselect=function(e){n.props.onDeselect(e)},n.onSelect=function(e){n.props.onSelect(e)},n.onClick=function(e){n.props.onClick(e)},n.onOpenChange=function(e){n.props.onOpenChange(e)},n.onDestroy=function(e){n.props.onDestroy(e)},n.getFlatInstanceArray=function(){return n.instanceArray},n.step=function(e){var t=n.getFlatInstanceArray(),r=n.props.store.getState().activeKey[Ct(n.props)],o=t.length;if(!o)return null;e<0&&(t=t.concat().reverse());var i=-1;if(t.every((function(e,t){return!e||e.props.eventKey!==r||(i=t,!1)})),n.props.defaultActiveFirst||-1===i||(a=t.slice(i,o-1)).length&&!a.every((function(e){return!!e.props.disabled}))){var a,c=(i+1)%o,s=c;do{var l=t[s];if(l&&!l.props.disabled)return l;s=(s+1)%o}while(s!==c);return null}},n.renderCommonMenuItem=function(e,t,o){var i=n.props.store.getState(),a=gt(n).props,c=Q(e,a.eventKey,t),s=e.props;if(!s||"string"==typeof e.type)return e;var l=c===i.activeKey,u=wt({mode:s.mode||a.mode,level:a.level,inlineIndent:a.inlineIndent,renderMenuItem:n.renderMenuItem,rootPrefixCls:a.prefixCls,index:t,parentMenu:a.parentMenu,manualRef:s.disabled?void 0:k(e.ref,kt.bind(gt(n))),eventKey:c,active:!s.disabled&&l,multiple:a.multiple,onClick:function(e){(s.onClick||X)(e),n.onClick(e)},onItemHover:n.onItemHover,motion:a.motion,subMenuOpenDelay:a.subMenuOpenDelay,subMenuCloseDelay:a.subMenuCloseDelay,forceSubMenuRender:a.forceSubMenuRender,onOpenChange:n.onOpenChange,onDeselect:n.onDeselect,onSelect:n.onSelect,builtinPlacements:a.builtinPlacements,itemIcon:s.itemIcon||n.props.itemIcon,expandIcon:s.expandIcon||n.props.expandIcon},o);return("inline"===a.mode||$.any)&&(u.triggerSubMenuAction="click"),r.cloneElement(e,u)},n.renderMenuItem=function(e,t,r){if(!e)return null;var o=n.props.store.getState(),i={openKeys:o.openKeys,selectedKeys:o.selectedKeys,triggerSubMenuAction:n.props.triggerSubMenuAction,subMenuKey:r};return n.renderCommonMenuItem(e,t,i)},e.store.setState({activeKey:wt({},e.store.getState().activeKey,Ot({},e.eventKey,xt(e,e.activeKey)))}),n.instanceArray=[],n}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bt(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"shouldComponentUpdate",value:function(e){return this.props.visible||e.visible||this.props.className!==e.className||!E()(this.props.style,e.style)}},{key:"componentDidUpdate",value:function(e){var t=this.props,n="activeKey"in t?t.activeKey:t.store.getState().activeKey[Ct(t)],r=xt(t,n);(r!==n||"activeKey"in e&&r!==xt(e,e.activeKey))&&St(t.store,Ct(t),r)}},{key:"render",value:function(){var e=this,t=vt({},this.props);this.instanceArray=[];var n={className:M()(t.prefixCls,t.className,"".concat(t.prefixCls,"-").concat(t.mode)),role:t.role||"menu"};t.id&&(n.id=t.id),t.focusable&&(n.tabIndex=0,n.onKeyDown=this.onKeyDown);var o=t.prefixCls,i=t.eventKey,a=t.visible,c=t.level,s=t.mode,l=t.overflowedIndicator,u=t.theme;return te.forEach((function(e){return delete t[e]})),delete t.onClick,r.createElement(ht,Object.assign({},t,{prefixCls:o,mode:s,tag:"ul",level:c,theme:u,visible:a,overflowedIndicator:l},n),r.Children.map(t.children,(function(t,n){return e.renderMenuItem(t,n,i||"0-menu-")})))}}])&&yt(n.prototype,o),i&&yt(n,i),t}(r.Component);Lt.defaultProps={prefixCls:"rc-menu",className:"",mode:"vertical",level:1,inlineIndent:24,visible:!0,focusable:!0,style:{},manualRef:X};var Et=Object(C.connect)()(Lt),Tt={};function Pt(e,t){0}function jt(e,t,n){t||Tt[n]||(e(!1,n),Tt[n]=!0)}var zt=function(e,t){jt(Pt,e,t)};function Dt(e){return(Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Nt(e){var t=e.prefixCls,n=e.motion,r=e.openAnimation,o=e.openTransitionName;if(n)return n;if("object"===Dt(r)&&r)zt(!1,"Object type of `openAnimation` is removed. Please use `motion` instead.");else if("string"==typeof r)return{motionName:"".concat(t,"-open-").concat(r)};return o?{motionName:o}:null}function Ht(e){return(Ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach((function(t){It(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function It(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ft(e){return(Ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Rt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Wt(e,t){return(Wt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Ut=function(e){function t(e){var n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!==Ht(t)&&"function"!=typeof t?Rt(e):t}(this,Ft(t).call(this,e))).onSelect=function(e){var t=Rt(n).props;if(t.selectable){var r=n.store.getState().selectedKeys,o=e.key;r=t.multiple?r.concat([o]):[o],"selectedKeys"in t||n.store.setState({selectedKeys:r}),t.onSelect(Yt({},e,{selectedKeys:r}))}},n.onClick=function(e){n.props.onClick(e)},n.onKeyDown=function(e,t){n.innerMenu.getWrappedInstance().onKeyDown(e,t)},n.onOpenChange=function(e){var t=Rt(n).props,r=n.store.getState().openKeys.concat(),o=!1,i=function(e){var t=!1;if(e.open)(t=-1===r.indexOf(e.key))&&r.push(e.key);else{var n=r.indexOf(e.key);(t=-1!==n)&&r.splice(n,1)}o=o||t};Array.isArray(e)?e.forEach(i):i(e),o&&("openKeys"in n.props||n.store.setState({openKeys:r}),t.onOpenChange(r))},n.onDeselect=function(e){var t=Rt(n).props;if(t.selectable){var r=n.store.getState().selectedKeys.concat(),o=e.key,i=r.indexOf(o);-1!==i&&r.splice(i,1),"selectedKeys"in t||n.store.setState({selectedKeys:r}),t.onDeselect(Yt({},e,{selectedKeys:r}))}},n.getOpenTransitionName=function(){var e=Rt(n).props,t=e.openTransitionName,r=e.openAnimation;return t||"string"!=typeof r||(t="".concat(e.prefixCls,"-open-").concat(r)),t},n.setInnerMenu=function(e){n.innerMenu=e},n.isRootMenu=!0;var r=e.defaultSelectedKeys,o=e.defaultOpenKeys;return"selectedKeys"in e&&(r=e.selectedKeys||[]),"openKeys"in e&&(o=e.openKeys||[]),n.store=Object(C.create)({selectedKeys:r,openKeys:o,activeKey:{"0-menu-":xt(e,e.activeKey)}}),n}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Wt(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){this.updateMiniStore()}},{key:"componentDidUpdate",value:function(){this.updateMiniStore()}},{key:"updateMiniStore",value:function(){"selectedKeys"in this.props&&this.store.setState({selectedKeys:this.props.selectedKeys||[]}),"openKeys"in this.props&&this.store.setState({openKeys:this.props.openKeys||[]})}},{key:"render",value:function(){var e=Yt({},this.props);return e.className+=" ".concat(e.prefixCls,"-root"),delete(e=Yt({},e,{onClick:this.onClick,onOpenChange:this.onOpenChange,onDeselect:this.onDeselect,onSelect:this.onSelect,parentMenu:this,motion:Nt(this.props)})).openAnimation,delete e.openTransitionName,r.createElement(C.Provider,{store:this.store},r.createElement(Et,Object.assign({},e,{ref:this.setInnerMenu}),this.props.children))}}])&&Vt(n.prototype,o),i&&Vt(n,i),t}(r.Component);Ut.defaultProps={selectable:!0,onClick:X,onSelect:X,onOpenChange:X,onDeselect:X,defaultSelectedKeys:[],defaultOpenKeys:[],subMenuOpenDelay:.1,subMenuCloseDelay:.1,triggerSubMenuAction:"hover",prefixCls:"rc-menu",className:"",mode:"vertical",style:{},builtinPlacements:{},overflowedIndicator:r.createElement("span",null,"···")};var Bt=Ut,Kt=n(127),qt=n.n(Kt);function Gt(e){return(Gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Jt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$t(Object(n),!0).forEach((function(t){Xt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Zt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function en(e,t){return!t||"object"!==Gt(t)&&"function"!=typeof t?nn(e):t}function tn(e){return(tn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function nn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rn(e,t){return(rn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var on=function(e){function t(){var e;return Qt(this,t),(e=en(this,tn(t).apply(this,arguments))).onKeyDown=function(t){if(t.keyCode===x.a.ENTER)return e.onClick(t),!0},e.onMouseLeave=function(t){var n=e.props,r=n.eventKey,o=n.onItemHover,i=n.onMouseLeave;o({key:r,hover:!1}),i({key:r,domEvent:t})},e.onMouseEnter=function(t){var n=e.props,r=n.eventKey,o=n.onItemHover,i=n.onMouseEnter;o({key:r,hover:!0}),i({key:r,domEvent:t})},e.onClick=function(t){var n=e.props,r=n.eventKey,o=n.multiple,i=n.onClick,a=n.onSelect,c=n.onDeselect,s=n.isSelected,l={key:r,keyPath:[r],item:nn(e),domEvent:t};i(l),o?s?c(l):a(l):s||a(l)},e.saveNode=function(t){e.node=t},e}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&rn(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){this.callRef()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.active,r=t.parentMenu,o=t.eventKey;e.active||!n||r&&r["scrolled-".concat(o)]?r&&r["scrolled-".concat(o)]&&delete r["scrolled-".concat(o)]:this.node&&(qt()(this.node,oe.findDOMNode(r),{onlyScrollIfNeeded:!0}),r["scrolled-".concat(o)]=!0),this.callRef()}},{key:"componentWillUnmount",value:function(){var e=this.props;e.onDestroy&&e.onDestroy(e.eventKey)}},{key:"getPrefixCls",value:function(){return"".concat(this.props.rootPrefixCls,"-item")}},{key:"getActiveClassName",value:function(){return"".concat(this.getPrefixCls(),"-active")}},{key:"getSelectedClassName",value:function(){return"".concat(this.getPrefixCls(),"-selected")}},{key:"getDisabledClassName",value:function(){return"".concat(this.getPrefixCls(),"-disabled")}},{key:"callRef",value:function(){this.props.manualRef&&this.props.manualRef(this)}},{key:"render",value:function(){var e,t=Jt({},this.props),n=M()(this.getPrefixCls(),t.className,(Xt(e={},this.getActiveClassName(),!t.disabled&&t.active),Xt(e,this.getSelectedClassName(),t.isSelected),Xt(e,this.getDisabledClassName(),t.disabled),e)),o=Jt({},t.attribute,{title:t.title,className:n,role:t.role||"menuitem","aria-disabled":t.disabled});"option"===t.role?o=Jt({},o,{role:"option","aria-selected":t.isSelected}):null!==t.role&&"none"!==t.role||(o.role="none");var i={onClick:t.disabled?null:this.onClick,onMouseLeave:t.disabled?null:this.onMouseLeave,onMouseEnter:t.disabled?null:this.onMouseEnter},a=Jt({},t.style);"inline"===t.mode&&(a.paddingLeft=t.inlineIndent*t.level),te.forEach((function(e){return delete t[e]}));var c=this.props.itemIcon;return"function"==typeof this.props.itemIcon&&(c=r.createElement(this.props.itemIcon,this.props)),r.createElement("li",Object.assign({},t,o,i,{style:a,ref:this.saveNode}),t.children,c)}}])&&Zt(n.prototype,o),i&&Zt(n,i),t}(r.Component);on.isMenuItem=!0,on.defaultProps={onSelect:X,onMouseEnter:X,onMouseLeave:X,manualRef:X};var an=Object(C.connect)((function(e,t){var n=e.activeKey,r=e.selectedKeys,o=t.eventKey;return{active:n[t.subMenuKey]===o,isSelected:-1!==r.indexOf(o)}}))(on);function cn(e){return(cn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sn(){return(sn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function ln(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function un(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fn(e,t){return!t||"object"!==cn(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function dn(e){return(dn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function pn(e,t){return(pn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var hn=function(e){function t(){var e;return ln(this,t),(e=fn(this,dn(t).apply(this,arguments))).renderInnerMenuItem=function(t){var n=e.props;return(0,n.renderMenuItem)(t,n.index,e.props.subMenuKey)},e}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&pn(e,t)}(t,e),n=t,(o=[{key:"render",value:function(){var e=sn({},this.props),t=e.className,n=void 0===t?"":t,o=e.rootPrefixCls,i="".concat(o,"-item-group-title"),a="".concat(o,"-item-group-list"),c=e.title,s=e.children;return te.forEach((function(t){return delete e[t]})),delete e.onClick,r.createElement("li",Object.assign({},e,{className:"".concat(n," ").concat(o,"-item-group")}),r.createElement("div",{className:i,title:"string"==typeof c?c:void 0},c),r.createElement("ul",{className:a},r.Children.map(s,this.renderInnerMenuItem)))}}])&&un(n.prototype,o),i&&un(n,i),t}(r.Component);hn.isMenuItemGroup=!0,hn.defaultProps={disabled:!0};var mn=hn,vn=function(e){var t=e.className,n=e.rootPrefixCls,o=e.style;return r.createElement("li",{className:"".concat(t," ").concat(n,"-item-divider"),style:o})};vn.defaultProps={disabled:!0,className:"",style:{}};var yn=Bt,_n=n(228);function gn(e){var t=[];return o.a.Children.forEach(e,(function(e){null!=e&&(Array.isArray(e)?t=t.concat(gn(e)):Object(_n.isFragment)(e)&&e.props?t=t.concat(gn(e.props.children)):t.push(e))})),t}var bn=n(109),Mn=n.n(bn);function wn(e){return"string"==typeof e?e:""}function On(e){if(!e)return null;var t=e.props;if("value"in t)return t.value;if(e.key)return e.key;if(e.type&&e.type.isSelectOptGroup&&t.label)return t.label;throw new Error("Need at least a key or a value or a label (only for OptGroup) for ".concat(e))}function Sn(e,t){return"value"===t?On(e):e.props[t]}function Cn(e){return e.combobox}function xn(e){return e.multiple||e.tags}function kn(e){return xn(e)||Cn(e)}function Ln(e){return!kn(e)}function En(e){var t=e;return void 0===e?t=[]:Array.isArray(e)||(t=[e]),t}function Tn(e){return"".concat(typeof e,"-").concat(e)}function Pn(e){e.preventDefault()}function jn(e,t){var n=-1;if(e)for(var r=0;r<e.length;r++)if(e[r]===t){n=r;break}return n}function zn(e,t){var n;if(e=En(e))for(var r=0;r<e.length;r++)if(e[r].key===t){n=e[r].label;break}return n}var Dn={userSelect:"none",WebkitUserSelect:"none"},Nn={unselectable:"on"};function Hn(e,t){return!t.props.disabled&&En(Sn(t,this.props.optionFilterProp)).join("").toLowerCase().indexOf(e.toLowerCase())>-1}function An(e,t){return function(n){e[t]=n}}function Yn(){return(Yn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function In(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Vn(e){return(Vn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Fn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Rn(e,t){return(Rn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var Wn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Fn(e):t}(this,Vn(t).call(this,e))).rafInstance=null,n.lastVisible=!1,n.scrollActiveItemToView=function(){var e=Object(oe.findDOMNode)(n.firstActiveItem),t=n.props,r=t.visible,o=t.firstActiveValue,i=n.props.value;if(e&&r){var a={onlyScrollIfNeeded:!0};i&&0!==i.length||!o||(a.alignWithTop=!0),n.rafInstance=we()((function(){qt()(e,Object(oe.findDOMNode)(n.menuRef),a)}))}},n.renderMenu=function(){var e=n.props,t=e.menuItems,i=e.menuItemSelectedIcon,a=e.defaultActiveFirstOption,c=e.prefixCls,s=e.multiple,l=e.onMenuSelect,u=e.inputValue,f=e.backfillValue,d=e.onMenuDeselect,p=e.visible,h=n.props.firstActiveValue;if(t&&t.length){var m={};s?(m.onDeselect=d,m.onSelect=l):m.onClick=l;var v=n.props.value,y=function e(t,n){if(null==n)return[];var r=[];return o.a.Children.forEach(t,(function(t){if(t.type.isMenuItemGroup)r=r.concat(e(t.props.children,n));else{var o=On(t),i=t.key;-1!==jn(n,o)&&i&&r.push(i)}})),r}(t,v),_={},g=a,b=t;if(y.length||h){p&&!n.lastVisible?_.activeKey=y[0]||h:p||(y[0]&&(g=!1),_.activeKey=void 0);var M=!1,w=function(e){var t=e.key;return!M&&-1!==y.indexOf(t)||!M&&!y.length&&-1!==h.indexOf(e.key)?(M=!0,r.cloneElement(e,{ref:function(e){n.firstActiveItem=e}})):e};b=t.map((function(e){if(e.type.isMenuItemGroup){var t=gn(e.props.children).map(w);return r.cloneElement(e,{},t)}return w(e)}))}else n.firstActiveItem=null;var O=v&&v[v.length-1];return u===n.lastInputValue||O&&O===f||(_.activeKey=""),r.createElement(yn,Yn({ref:n.saveMenuRef,style:n.props.dropdownMenuStyle,defaultActiveFirst:g,role:"listbox",itemIcon:s?i:null},_,{multiple:s},m,{selectedKeys:y,prefixCls:"".concat(c,"-menu")}),b)}return null},n.lastInputValue=e.inputValue,n.saveMenuRef=An(Fn(n),"menuRef"),n}var n,i,a;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Rn(e,t)}(t,e),n=t,(i=[{key:"componentDidMount",value:function(){this.scrollActiveItemToView(),this.lastVisible=this.props.visible}},{key:"shouldComponentUpdate",value:function(e){return e.visible||(this.lastVisible=!1),this.props.visible&&!e.visible||e.visible||e.inputValue!==this.props.inputValue}},{key:"componentDidUpdate",value:function(e){var t=this.props;!e.visible&&t.visible&&this.scrollActiveItemToView(),this.lastVisible=t.visible,this.lastInputValue=t.inputValue}},{key:"componentWillUnmount",value:function(){this.rafInstance&&we.a.cancel(this.rafInstance)}},{key:"render",value:function(){var e=this.renderMenu();return e?r.createElement("div",{style:{overflow:"auto",transform:"translateZ(0)"},id:this.props.ariaId,onFocus:this.props.onPopupFocus,onMouseDown:Pn,onScroll:this.props.onPopupScroll},e):null}}])&&In(n.prototype,i),a&&In(n,a),t}(r.Component);function Un(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bn(){return(Bn=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Kn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function qn(e){return(qn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Gn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $n(e,t){return($n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Wn.displayName="DropdownMenu",Wn.propTypes={ariaId:u.string,defaultActiveFirstOption:u.bool,value:u.any,dropdownMenuStyle:u.object,multiple:u.bool,onPopupFocus:u.func,onPopupScroll:u.func,onMenuDeSelect:u.func,onMenuSelect:u.func,prefixCls:u.string,menuItems:u.any,inputValue:u.string,visible:u.bool,firstActiveValue:u.string,menuItemSelectedIcon:u.oneOfType([u.func,u.node])};var Jn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};ce.a.displayName="Trigger";var Xn={bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:0,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}},Qn=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?Gn(e):t}(this,qn(t).call(this,e))).dropdownMenuRef=null,n.rafInstance=null,n.setDropdownWidth=function(){n.cancelRafInstance(),n.rafInstance=we()((function(){var e=oe.findDOMNode(Gn(n)).offsetWidth;e!==n.state.dropdownWidth&&n.setState({dropdownWidth:e})}))},n.cancelRafInstance=function(){n.rafInstance&&we.a.cancel(n.rafInstance)},n.getInnerMenu=function(){return n.dropdownMenuRef&&n.dropdownMenuRef.menuRef},n.getPopupDOMNode=function(){return n.triggerRef.getPopupDomNode()},n.getDropdownElement=function(e){var t=n.props,o=t.dropdownRender,i=t.ariaId,a=r.createElement(Wn,Bn({ref:n.saveDropdownMenuRef},e,{ariaId:i,prefixCls:n.getDropdownPrefixCls(),onMenuSelect:t.onMenuSelect,onMenuDeselect:t.onMenuDeselect,onPopupScroll:t.onPopupScroll,value:t.value,backfillValue:t.backfillValue,firstActiveValue:t.firstActiveValue,defaultActiveFirstOption:t.defaultActiveFirstOption,dropdownMenuStyle:t.dropdownMenuStyle,menuItemSelectedIcon:t.menuItemSelectedIcon}));return o?o(a,t):null},n.getDropdownTransitionName=function(){var e=n.props,t=e.transitionName;return!t&&e.animation&&(t="".concat(n.getDropdownPrefixCls(),"-").concat(e.animation)),t},n.getDropdownPrefixCls=function(){return"".concat(n.props.prefixCls,"-dropdown")},n.saveDropdownMenuRef=An(Gn(n),"dropdownMenuRef"),n.saveTriggerRef=An(Gn(n),"triggerRef"),n.state={dropdownWidth:0},n}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&$n(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){this.setDropdownWidth()}},{key:"componentDidUpdate",value:function(){this.setDropdownWidth()}},{key:"componentWillUnmount",value:function(){this.cancelRafInstance()}},{key:"render",value:function(){var e,t,n=this.props,o=n.onPopupFocus,i=n.empty,a=Jn(n,["onPopupFocus","empty"]),c=a.multiple,s=a.visible,l=a.inputValue,u=a.dropdownAlign,f=a.disabled,d=a.showSearch,p=a.dropdownClassName,h=a.dropdownStyle,m=a.dropdownMatchSelectWidth,v=this.getDropdownPrefixCls(),y=(Un(e={},p,!!p),Un(e,"".concat(v,"--").concat(c?"multiple":"single"),1),Un(e,"".concat(v,"--empty"),i),e),_=this.getDropdownElement({menuItems:a.options,onPopupFocus:o,multiple:c,inputValue:l,visible:s});t=f?[]:Ln(a)&&!d?["click"]:["blur"];var g=Bn({},h),b=m?"width":"minWidth";return this.state.dropdownWidth&&(g[b]="".concat(this.state.dropdownWidth,"px")),r.createElement(ce.a,Bn({},a,{showAction:f?[]:this.props.showAction,hideAction:t,ref:this.saveTriggerRef,popupPlacement:"bottomLeft",builtinPlacements:Xn,prefixCls:v,popupTransitionName:this.getDropdownTransitionName(),onPopupVisibleChange:a.onDropdownVisibleChange,popup:_,popupAlign:u,popupVisible:s,getPopupContainer:a.getPopupContainer,popupClassName:M()(y),popupStyle:g}),a.children)}}])&&Kn(n.prototype,o),i&&Kn(n,i),t}(r.Component);function Zn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function er(){return(er=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function tr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function nr(e){return(nr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function rr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function or(e,t){return(or=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}Qn.defaultProps={dropdownRender:function(e){return e}},Qn.propTypes={onPopupFocus:u.func,onPopupScroll:u.func,dropdownMatchSelectWidth:u.bool,dropdownAlign:u.object,visible:u.bool,disabled:u.bool,showSearch:u.bool,dropdownClassName:u.string,multiple:u.bool,inputValue:u.string,filterOption:u.any,options:u.any,prefixCls:u.string,popupClassName:u.string,children:u.any,showAction:u.arrayOf(u.string),menuItemSelectedIcon:u.oneOfType([u.func,u.node]),dropdownRender:u.func,ariaId:u.string},Qn.displayName="SelectTrigger";var ir=function(){return null};function ar(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];for(var o=0;o<t.length;o++)t[o]&&"function"==typeof t[o]&&t[o].apply(ar,n)}}var cr=function(e){function t(e){var n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?rr(e):t}(this,nr(t).call(this,e))).inputRef=null,n.inputMirrorRef=null,n.topCtrlRef=null,n.selectTriggerRef=null,n.rootRef=null,n.selectionRef=null,n.dropdownContainer=null,n.blurTimer=null,n.focusTimer=null,n.comboboxTimer=null,n._focused=!1,n._mouseDown=!1,n._options=[],n._empty=!1,n.onInputChange=function(e){var t=n.props.tokenSeparators,r=e.target.value;if(xn(n.props)&&t.length&&function(e,t){for(var n=0;n<t.length;++n)if(e.lastIndexOf(t[n])>0)return!0;return!1}(r,t)){var o=n.getValueByInput(r);return void 0!==o&&n.fireChange(o),n.setOpenState(!1,{needFocus:!0}),void n.setInputValue("",!1)}n.setInputValue(r),n.setState({open:!0}),Cn(n.props)&&n.fireChange([r])},n.onDropdownVisibleChange=function(e){e&&!n._focused&&(n.clearBlurTime(),n.timeoutFocus(),n._focused=!0,n.updateFocusClassName()),n.setOpenState(e)},n.onKeyDown=function(e){var t=n.state.open;if(!n.props.disabled){var r=e.keyCode;t&&!n.getInputDOMNode()?n.onInputKeyDown(e):r===x.a.ENTER||r===x.a.DOWN?(t||n.setOpenState(!0),e.preventDefault()):r===x.a.SPACE&&(t||(n.setOpenState(!0),e.preventDefault()))}},n.onInputKeyDown=function(e){var t=n.props,r=t.disabled,o=t.combobox,i=t.defaultActiveFirstOption;if(!r){var a=n.state,c=n.getRealOpenState(a),s=e.keyCode;if(!xn(n.props)||e.target.value||s!==x.a.BACKSPACE){if(s===x.a.DOWN){if(!a.open)return n.openIfHasChildren(),e.preventDefault(),void e.stopPropagation()}else if(s===x.a.ENTER&&a.open)!c&&o||e.preventDefault(),c&&o&&!1===i&&(n.comboboxTimer=setTimeout((function(){n.setOpenState(!1)})));else if(s===x.a.ESC)return void(a.open&&(n.setOpenState(!1),e.preventDefault(),e.stopPropagation()));if(c&&n.selectTriggerRef){var l=n.selectTriggerRef.getInnerMenu();l&&l.onKeyDown(e,n.handleBackfill)&&(e.preventDefault(),e.stopPropagation())}}else{e.preventDefault();var u=a.value;u.length&&n.removeSelected(u[u.length-1])}}},n.onMenuSelect=function(e){var t=e.item;if(t){var r=n.state.value,o=n.props,i=On(t),a=r[r.length-1],c=!1;if(xn(o)?-1!==jn(r,i)?c=!0:r=r.concat([i]):Cn(o)||void 0===a||a!==i||i===n.state.backfillValue?(r=[i],n.setOpenState(!1,{needFocus:!0,fireSearch:!1})):(n.setOpenState(!1,{needFocus:!0,fireSearch:!1}),c=!0),c||n.fireChange(r),n.fireSelect(i),!c){var s=Cn(o)?Sn(t,o.optionLabelProp):"";o.autoClearSearchValue&&n.setInputValue(s,!1)}}},n.onMenuDeselect=function(e){var t=e.item,r=e.domEvent;if("keydown"!==r.type||r.keyCode!==x.a.ENTER){var o;"click"===r.type&&n.removeSelected(On(t)),n.props.autoClearSearchValue&&n.setInputValue("")}else{var i=oe.findDOMNode(t);(o=i)&&null!==o.offsetParent&&n.removeSelected(On(t))}},n.onArrowClick=function(e){e.stopPropagation(),e.preventDefault(),n.props.disabled||n.setOpenState(!n.state.open,{needFocus:!n.state.open})},n.onPlaceholderClick=function(){n.getInputDOMNode&&n.getInputDOMNode()&&n.getInputDOMNode().focus()},n.onOuterFocus=function(e){if(n.props.disabled)e.preventDefault();else{n.clearBlurTime();var t=n.getInputDOMNode();t&&e.target===n.rootRef||(kn(n.props)||e.target!==t)&&(n._focused||(n._focused=!0,n.updateFocusClassName(),xn(n.props)&&n._mouseDown||n.timeoutFocus()))}},n.onPopupFocus=function(){n.maybeFocus(!0,!0)},n.onOuterBlur=function(e){n.props.disabled?e.preventDefault():n.blurTimer=window.setTimeout((function(){n._focused=!1,n.updateFocusClassName();var e=n.props,t=n.state.value,r=n.state.inputValue;if(Ln(e)&&e.showSearch&&r&&e.defaultActiveFirstOption){var o=n._options||[];if(o.length){var i=function e(t){for(var n=0;n<t.length;n++){var r=t[n];if(r.type.isMenuItemGroup){var o=e(r.props.children);if(o)return o}else if(!r.props.disabled)return r}return null}(o);i&&(t=[On(i)],n.fireChange(t))}}else if(xn(e)&&r){n._mouseDown?n.setInputValue(""):(n.state.inputValue="",n.getInputDOMNode&&n.getInputDOMNode()&&(n.getInputDOMNode().value=""));var a=n.getValueByInput(r);void 0!==a&&(t=a,n.fireChange(t))}if(xn(e)&&n._mouseDown)return n.maybeFocus(!0,!0),void(n._mouseDown=!1);n.setOpenState(!1),e.onBlur&&e.onBlur(n.getVLForOnChange(t))}),10)},n.onClearSelection=function(e){var t=n.props,r=n.state;if(!t.disabled){var o=r.inputValue,i=r.value;e.stopPropagation(),(o||i.length)&&(i.length&&n.fireChange([]),n.setOpenState(!1,{needFocus:!0}),o&&n.setInputValue(""))}},n.onChoiceAnimationLeave=function(){n.forcePopupAlign()},n.getOptionInfoBySingleValue=function(e,t){var o;if((t=t||n.state.optionsInfo)[Tn(e)]&&(o=t[Tn(e)]),o)return o;var i=e;if(n.props.labelInValue){var a=zn(n.props.value,e),c=zn(n.props.defaultValue,e);void 0!==a?i=a:void 0!==c&&(i=c)}return{option:r.createElement(v,{value:e,key:e},e),value:e,label:i}},n.getOptionBySingleValue=function(e){return n.getOptionInfoBySingleValue(e).option},n.getOptionsBySingleValue=function(e){return e.map((function(e){return n.getOptionBySingleValue(e)}))},n.getValueByLabel=function(e){if(void 0===e)return null;var t=null;return Object.keys(n.state.optionsInfo).forEach((function(r){var o=n.state.optionsInfo[r];if(!o.disabled){var i=En(o.label);i&&i.join("")===e&&(t=o.value)}})),t},n.getVLBySingleValue=function(e){return n.props.labelInValue?{key:e,label:n.getLabelBySingleValue(e)}:e},n.getVLForOnChange=function(e){var t=e;return void 0!==t?(t=n.props.labelInValue?t.map((function(e){return{key:e,label:n.getLabelBySingleValue(e)}})):t.map((function(e){return e})),xn(n.props)?t:t[0]):t},n.getLabelBySingleValue=function(e,t){return n.getOptionInfoBySingleValue(e,t).label},n.getDropdownContainer=function(){return n.dropdownContainer||(n.dropdownContainer=document.createElement("div"),document.body.appendChild(n.dropdownContainer)),n.dropdownContainer},n.getPlaceholderElement=function(){var e=n.props,t=n.state,o=!1;t.inputValue&&(o=!0);var i=t.value;i.length&&(o=!0),Cn(e)&&1===i.length&&t.value&&!t.value[0]&&(o=!1);var a=e.placeholder;return a?r.createElement("div",er({onMouseDown:Pn,style:er({display:o?"none":"block"},Dn)},Nn,{onClick:n.onPlaceholderClick,className:"".concat(e.prefixCls,"-selection__placeholder")}),a):null},n.getInputElement=function(){var e=n.props,t=r.createElement("input",{id:e.id,autoComplete:"off"}),o=e.getInputElement?e.getInputElement():t,i=M()(o.props.className,Zn({},"".concat(e.prefixCls,"-search__field"),!0));return r.createElement("div",{className:"".concat(e.prefixCls,"-search__field__wrap")},r.cloneElement(o,{ref:n.saveInputRef,onChange:n.onInputChange,onKeyDown:ar(n.onInputKeyDown,o.props.onKeyDown,n.props.onInputKeyDown),value:n.state.inputValue,disabled:e.disabled,className:i}),r.createElement("span",{ref:n.saveInputMirrorRef,className:"".concat(e.prefixCls,"-search__field__mirror")},n.state.inputValue," "))},n.getInputDOMNode=function(){return n.topCtrlRef?n.topCtrlRef.querySelector("input,textarea,div[contentEditable]"):n.inputRef},n.getInputMirrorDOMNode=function(){return n.inputMirrorRef},n.getPopupDOMNode=function(){if(n.selectTriggerRef)return n.selectTriggerRef.getPopupDOMNode()},n.getPopupMenuComponent=function(){if(n.selectTriggerRef)return n.selectTriggerRef.getInnerMenu()},n.setOpenState=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.needFocus,o=t.fireSearch,i=n.props,a=n.state;if(a.open!==e){n.props.onDropdownVisibleChange&&n.props.onDropdownVisibleChange(e);var c={open:e,backfillValue:""};!e&&Ln(i)&&i.showSearch&&n.setInputValue("",o),e||n.maybeFocus(e,!!r),n.setState(er({open:e},c),(function(){e&&n.maybeFocus(e,!!r)}))}else n.maybeFocus(e,!!r)},n.setInputValue=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=n.props.onSearch;e!==n.state.inputValue&&n.setState((function(n){return t&&e!==n.inputValue&&r&&r(e),{inputValue:e}}),n.forcePopupAlign)},n.getValueByInput=function(e){var t=n.props,r=t.multiple,o=t.tokenSeparators,i=n.state.value,a=!1;return function(e,t){var n=new RegExp("[".concat(t.join(),"]"));return e.split(n).filter((function(e){return e}))}(e,o).forEach((function(e){var t=[e];if(r){var o=n.getValueByLabel(e);o&&-1===jn(i,o)&&(i=i.concat(o),a=!0,n.fireSelect(o))}else-1===jn(i,e)&&(i=i.concat(t),a=!0,n.fireSelect(e))})),a?i:void 0},n.getRealOpenState=function(e){var t=n.props.open;if("boolean"==typeof t)return t;var r=(e||n.state).open,o=n._options||[];return!kn(n.props)&&n.props.showSearch||r&&!o.length&&(r=!1),r},n.markMouseDown=function(){n._mouseDown=!0},n.markMouseLeave=function(){n._mouseDown=!1},n.handleBackfill=function(e){if(n.props.backfill&&(Ln(n.props)||Cn(n.props))){var t=On(e);Cn(n.props)&&n.setInputValue(t,!1),n.setState({value:[t],backfillValue:t})}},n.filterOption=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Hn,o=n.state.value,i=o[o.length-1];if(!e||i&&i===n.state.backfillValue)return!0;var a=n.props.filterOption;return"filterOption"in n.props?!0===a&&(a=r.bind(rr(n))):a=r.bind(rr(n)),!a||("function"==typeof a?a.call(rr(n),e,t):!t.props.disabled)},n.timeoutFocus=function(){var e=n.props.onFocus;n.focusTimer&&n.clearFocusTime(),n.focusTimer=window.setTimeout((function(){e&&e()}),10)},n.clearFocusTime=function(){n.focusTimer&&(clearTimeout(n.focusTimer),n.focusTimer=null)},n.clearBlurTime=function(){n.blurTimer&&(clearTimeout(n.blurTimer),n.blurTimer=null)},n.clearComboboxTime=function(){n.comboboxTimer&&(clearTimeout(n.comboboxTimer),n.comboboxTimer=null)},n.updateFocusClassName=function(){var e=n.rootRef,t=n.props;n._focused?O()(e).add("".concat(t.prefixCls,"-focused")):O()(e).remove("".concat(t.prefixCls,"-focused"))},n.maybeFocus=function(e,t){if(t||e){var r=n.getInputDOMNode(),o=document.activeElement;r&&(e||kn(n.props))?o!==r&&(r.focus(),n._focused=!0):o!==n.selectionRef&&n.selectionRef&&(n.selectionRef.focus(),n._focused=!0)}},n.removeSelected=function(e,t){var r=n.props;if(!r.disabled&&!n.isChildDisabled(e)){t&&t.stopPropagation&&t.stopPropagation();var o=n.state.value.filter((function(t){return t!==e}));if(xn(r)){var i=e;r.labelInValue&&(i={key:e,label:n.getLabelBySingleValue(e)}),r.onDeselect&&r.onDeselect(i,n.getOptionBySingleValue(e))}n.fireChange(o)}},n.openIfHasChildren=function(){var e=n.props;(r.Children.count(e.children)||Ln(e))&&n.setOpenState(!0)},n.fireSelect=function(e){n.props.onSelect&&n.props.onSelect(n.getVLBySingleValue(e),n.getOptionBySingleValue(e))},n.fireChange=function(e){var t=n.props;"value"in t||n.setState({value:e},n.forcePopupAlign);var r=n.getVLForOnChange(e),o=n.getOptionsBySingleValue(e);t.onChange&&t.onChange(r,xn(n.props)?o:o[0])},n.isChildDisabled=function(e){return gn(n.props.children).some((function(t){return On(t)===e&&t.props&&t.props.disabled}))},n.forcePopupAlign=function(){n.state.open&&n.selectTriggerRef&&n.selectTriggerRef.triggerRef&&n.selectTriggerRef.triggerRef.forcePopupAlign()},n.renderFilterOptions=function(){var e=n.state.inputValue,t=n.props,o=t.children,i=t.tags,a=t.notFoundContent,c=[],s=[],l=!1,u=n.renderFilterOptionsFromChildren(o,s,c);if(i){var f=n.state.value;(f=f.filter((function(t){return-1===s.indexOf(t)&&(!e||String(t).indexOf(String(e))>-1)}))).sort((function(e,t){return e.length-t.length})),f.forEach((function(e){var t=e,n=r.createElement(an,{style:Dn,role:"option",attribute:Nn,value:t,key:t},t);u.push(n),c.push(n)})),e&&c.every((function(t){return On(t)!==e}))&&u.unshift(r.createElement(an,{style:Dn,role:"option",attribute:Nn,value:e,key:e},e))}return!u.length&&a&&(l=!0,u=[r.createElement(an,{style:Dn,attribute:Nn,disabled:!0,role:"option",value:"NOT_FOUND",key:"NOT_FOUND"},a)]),{empty:l,options:u}},n.renderFilterOptionsFromChildren=function(e,t,o){var i=[],a=n.props,c=n.state.inputValue,s=a.tags;return r.Children.forEach(e,(function(e){if(e){var a=e.type;if(a.isSelectOptGroup){var l=e.props.label,u=e.key;if(u||"string"!=typeof l?!l&&u&&(l=u):u=l,c&&n.filterOption(c,e)){var f=gn(e.props.children).map((function(e){var t=On(e)||e.key;return r.createElement(an,er({key:t,value:t},e.props))}));i.push(r.createElement(mn,{key:u,title:l},f))}else{var d=n.renderFilterOptionsFromChildren(e.props.children,t,o);d.length&&i.push(r.createElement(mn,{key:u,title:l},d))}}else{Mn()(a.isSelectOption,"the children of `Select` should be `Select.Option` or `Select.OptGroup`, "+"instead of `".concat(a.name||a.displayName||e.type,"`."));var p=On(e);if(function(e,t){if(!Ln(t)&&!function(e){return e.multiple}(t)&&"string"!=typeof e)throw new Error("Invalid `value` of type `".concat(typeof e,"` supplied to Option, ")+"expected `string` when `tags/combobox` is `true`.")}(p,n.props),n.filterOption(c,e)){var h=r.createElement(an,er({style:Dn,attribute:Nn,value:p,key:p,role:"option"},e.props));i.push(h),o.push(h)}s&&t.push(p)}}})),i},n.renderTopControlNode=function(){var e=n.state,t=e.open,o=e.inputValue,i=n.state.value,a=n.props,c=a.choiceTransitionName,s=a.prefixCls,l=a.maxTagTextLength,u=a.maxTagCount,f=a.showSearch,d=a.removeIcon,p=a.maxTagPlaceholder,h="".concat(s,"-selection__rendered"),m=null;if(Ln(a)){var v=null;if(i.length){var y=!1,_=1;f&&t?(y=!o)&&(_=.4):y=!0;var g=i[0],b=n.getOptionInfoBySingleValue(g),M=b.label,w=b.title;v=r.createElement("div",{key:"value",className:"".concat(s,"-selection-selected-value"),title:wn(w||M),style:{display:y?"block":"none",opacity:_}},M)}m=f?[v,r.createElement("div",{className:"".concat(s,"-search ").concat(s,"-search--inline"),key:"input",style:{display:t?"block":"none"}},n.getInputElement())]:[v]}else{var O,C=[],x=i;if(void 0!==u&&i.length>u){x=x.slice(0,u);var k=n.getVLForOnChange(i.slice(u,i.length)),L="+ ".concat(i.length-u," ...");p&&(L="function"==typeof p?p(k):p),O=r.createElement("li",er({style:Dn},Nn,{role:"presentation",onMouseDown:Pn,className:"".concat(s,"-selection__choice ").concat(s,"-selection__choice__disabled"),key:"maxTagPlaceholder",title:wn(L)}),r.createElement("div",{className:"".concat(s,"-selection__choice__content")},L))}xn(a)&&(C=x.map((function(e){var t=n.getOptionInfoBySingleValue(e),o=t.label,i=t.title||o;l&&"string"==typeof o&&o.length>l&&(o="".concat(o.slice(0,l),"..."));var a=n.isChildDisabled(e),c=a?"".concat(s,"-selection__choice ").concat(s,"-selection__choice__disabled"):"".concat(s,"-selection__choice");return r.createElement("li",er({style:Dn},Nn,{onMouseDown:Pn,className:c,role:"presentation",key:e||"RC_SELECT_EMPTY_VALUE_KEY",title:wn(i)}),r.createElement("div",{className:"".concat(s,"-selection__choice__content")},o),a?null:r.createElement("span",{onClick:function(t){n.removeSelected(e,t)},className:"".concat(s,"-selection__choice__remove")},d||r.createElement("i",{className:"".concat(s,"-selection__choice__remove-icon")},"×")))}))),O&&C.push(O),C.push(r.createElement("li",{className:"".concat(s,"-search ").concat(s,"-search--inline"),key:"__input"},n.getInputElement())),m=xn(a)&&c?r.createElement(S.a,{onLeave:n.onChoiceAnimationLeave,component:"ul",transitionName:c},C):r.createElement("ul",null,C)}return r.createElement("div",{className:h,ref:n.saveTopCtrlRef},n.getPlaceholderElement(),m)};var o=t.getOptionsInfoFromProps(e);if(e.tags&&"function"!=typeof e.filterOption){var i=Object.keys(o).some((function(e){return o[e].disabled}));Mn()(!i,"Please avoid setting option to disabled in tags mode since user can always type text as tag.")}return n.state={value:t.getValueFromProps(e,!0),inputValue:e.combobox?t.getInputValueForCombobox(e,o,!0):"",open:e.defaultOpen,optionsInfo:o,backfillValue:"",skipBuildOptionsInfo:!0,ariaId:""},n.saveInputRef=An(rr(n),"inputRef"),n.saveInputMirrorRef=An(rr(n),"inputMirrorRef"),n.saveTopCtrlRef=An(rr(n),"topCtrlRef"),n.saveSelectTriggerRef=An(rr(n),"selectTriggerRef"),n.saveRootRef=An(rr(n),"rootRef"),n.saveSelectionRef=An(rr(n),"selectionRef"),n}var n,o,i;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&or(e,t)}(t,e),n=t,(o=[{key:"componentDidMount",value:function(){var e;(this.props.autoFocus||this.state.open)&&this.focus(),this.setState({ariaId:(e=(new Date).getTime(),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var n=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"===t?n:7&n|8).toString(16)})))})}},{key:"componentDidUpdate",value:function(){if(xn(this.props)){var e=this.getInputDOMNode(),t=this.getInputMirrorDOMNode();e&&e.value&&t?(e.style.width="",e.style.width="".concat(t.clientWidth,"px")):e&&(e.style.width="")}this.forcePopupAlign()}},{key:"componentWillUnmount",value:function(){this.clearFocusTime(),this.clearBlurTime(),this.clearComboboxTime(),this.dropdownContainer&&(oe.unmountComponentAtNode(this.dropdownContainer),document.body.removeChild(this.dropdownContainer),this.dropdownContainer=null)}},{key:"focus",value:function(){Ln(this.props)&&this.selectionRef?this.selectionRef.focus():this.getInputDOMNode()&&this.getInputDOMNode().focus()}},{key:"blur",value:function(){Ln(this.props)&&this.selectionRef?this.selectionRef.blur():this.getInputDOMNode()&&this.getInputDOMNode().blur()}},{key:"renderArrow",value:function(e){var t=this.props,n=t.showArrow,o=void 0===n?!e:n,i=t.loading,a=t.inputIcon,c=t.prefixCls;if(!o&&!i)return null;var s=i?r.createElement("i",{className:"".concat(c,"-arrow-loading")}):r.createElement("i",{className:"".concat(c,"-arrow-icon")});return r.createElement("span",er({key:"arrow",className:"".concat(c,"-arrow"),style:Dn},Nn,{onClick:this.onArrowClick}),a||s)}},{key:"renderClear",value:function(){var e=this.props,t=e.prefixCls,n=e.allowClear,o=e.clearIcon,i=this.state.inputValue,a=this.state.value,c=r.createElement("span",er({key:"clear",className:"".concat(t,"-selection__clear"),onMouseDown:Pn,style:Dn},Nn,{onClick:this.onClearSelection}),o||r.createElement("i",{className:"".concat(t,"-selection__clear-icon")},"×"));return n?Cn(this.props)?i?c:null:i||a.length?c:null:null}},{key:"render",value:function(){var e,t=this.props,n=xn(t),o=t.showArrow,i=void 0===o||o,a=this.state,c=t.className,s=t.disabled,l=t.prefixCls,u=t.loading,f=this.renderTopControlNode(),d=this.state,p=d.open,h=d.ariaId;if(p){var m=this.renderFilterOptions();this._empty=m.empty,this._options=m.options}var v=this.getRealOpenState(),y=this._empty,_=this._options||[],g={};Object.keys(t).forEach((function(e){!Object.prototype.hasOwnProperty.call(t,e)||"data-"!==e.substr(0,5)&&"aria-"!==e.substr(0,5)&&"role"!==e||(g[e]=t[e])}));var b=er({},g);kn(t)||(b=er(er({},b),{onKeyDown:this.onKeyDown,tabIndex:t.disabled?-1:t.tabIndex}));var w=(Zn(e={},c,!!c),Zn(e,l,1),Zn(e,"".concat(l,"-open"),p),Zn(e,"".concat(l,"-focused"),p||!!this._focused),Zn(e,"".concat(l,"-combobox"),Cn(t)),Zn(e,"".concat(l,"-disabled"),s),Zn(e,"".concat(l,"-enabled"),!s),Zn(e,"".concat(l,"-allow-clear"),!!t.allowClear),Zn(e,"".concat(l,"-no-arrow"),!i),Zn(e,"".concat(l,"-loading"),!!u),e);return r.createElement(Qn,{onPopupFocus:this.onPopupFocus,onMouseEnter:this.props.onMouseEnter,onMouseLeave:this.props.onMouseLeave,dropdownAlign:t.dropdownAlign,dropdownClassName:t.dropdownClassName,dropdownMatchSelectWidth:t.dropdownMatchSelectWidth,defaultActiveFirstOption:t.defaultActiveFirstOption,dropdownMenuStyle:t.dropdownMenuStyle,transitionName:t.transitionName,animation:t.animation,prefixCls:t.prefixCls,dropdownStyle:t.dropdownStyle,combobox:t.combobox,showSearch:t.showSearch,options:_,empty:y,multiple:n,disabled:s,visible:v,inputValue:a.inputValue,value:a.value,backfillValue:a.backfillValue,firstActiveValue:t.firstActiveValue,onDropdownVisibleChange:this.onDropdownVisibleChange,getPopupContainer:t.getPopupContainer,onMenuSelect:this.onMenuSelect,onMenuDeselect:this.onMenuDeselect,onPopupScroll:t.onPopupScroll,showAction:t.showAction,ref:this.saveSelectTriggerRef,menuItemSelectedIcon:t.menuItemSelectedIcon,dropdownRender:t.dropdownRender,ariaId:h},r.createElement("div",{id:t.id,style:t.style,ref:this.saveRootRef,onBlur:this.onOuterBlur,onFocus:this.onOuterFocus,className:M()(w),onMouseDown:this.markMouseDown,onMouseUp:this.markMouseLeave,onMouseOut:this.markMouseLeave},r.createElement("div",er({ref:this.saveSelectionRef,key:"selection",className:"".concat(l,"-selection\n ").concat(l,"-selection--").concat(n?"multiple":"single"),role:"combobox","aria-autocomplete":"list","aria-haspopup":"true","aria-controls":h,"aria-expanded":v},b),f,this.renderClear(),this.renderArrow(!!n))))}}])&&tr(n.prototype,o),i&&tr(n,i),t}(r.Component);cr.propTypes=g,cr.defaultProps={prefixCls:"rc-select",defaultOpen:!1,labelInValue:!1,defaultActiveFirstOption:!0,showSearch:!0,allowClear:!1,placeholder:"",onChange:ir,onFocus:ir,onBlur:ir,onSelect:ir,onSearch:ir,onDeselect:ir,onInputKeyDown:ir,dropdownMatchSelectWidth:!0,dropdownStyle:{},dropdownMenuStyle:{},optionFilterProp:"value",optionLabelProp:"value",notFoundContent:"Not Found",backfill:!1,showAction:["click"],tokenSeparators:[],autoClearSearchValue:!0,tabIndex:0,dropdownRender:function(e){return e}},cr.getDerivedStateFromProps=function(e,t){var n=t.skipBuildOptionsInfo?t.optionsInfo:cr.getOptionsInfoFromProps(e,t),r={optionsInfo:n,skipBuildOptionsInfo:!1};if("open"in e&&(r.open=e.open),e.disabled&&t.open&&(r.open=!1),"value"in e){var o=cr.getValueFromProps(e);r.value=o,e.combobox&&(r.inputValue=cr.getInputValueForCombobox(e,n))}return r},cr.getOptionsFromChildren=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return r.Children.forEach(e,(function(e){e&&(e.type.isSelectOptGroup?cr.getOptionsFromChildren(e.props.children,t):t.push(e))})),t},cr.getInputValueForCombobox=function(e,t,n){var r=[];if("value"in e&&!n&&(r=En(e.value)),"defaultValue"in e&&n&&(r=En(e.defaultValue)),!r.length)return"";var o=r=r[0];return e.labelInValue?o=r.label:t[Tn(r)]&&(o=t[Tn(r)].label),void 0===o&&(o=""),o},cr.getLabelFromOption=function(e,t){return Sn(t,e.optionLabelProp)},cr.getOptionsInfoFromProps=function(e,t){var n=cr.getOptionsFromChildren(e.children),r={};if(n.forEach((function(t){var n=On(t);r[Tn(n)]={option:t,value:n,label:cr.getLabelFromOption(e,t),title:t.props.title,disabled:t.props.disabled}})),t){var o=t.optionsInfo,i=t.value;i&&i.forEach((function(e){var t=Tn(e);r[t]||void 0===o[t]||(r[t]=o[t])}))}return r},cr.getValueFromProps=function(e,t){var n=[];return"value"in e&&!t&&(n=En(e.value)),"defaultValue"in e&&t&&(n=En(e.defaultValue)),e.labelInValue&&(n=n.map((function(e){return e.key}))),n},cr.displayName="Select",Object(be.polyfill)(cr);var sr=cr;sr.Option=v,sr.OptGroup=l;t.default=sr},function(e,t,n){"use strict";n.r(t);var r=n(13),o=n.n(r),i=n(0),a=n.n(i),c=n(17),s=n.n(c),l=n(19),u=n.n(l),f=n(22),d=n.n(f),p=n(7),h=n.n(p),m=n(36),v=n(100),y=n(78),_=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&(n[r[o]]=e[r[o]])}return n},g=function(e){function t(){return s()(this,t),u()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.shouldComponentUpdate=function(e){return!!e.forceRender||(!!e.hiddenClassName||!!e.visible)},t.prototype.render=function(){var e=this.props,t=e.className,n=e.hiddenClassName,r=e.visible,a=(e.forceRender,_(e,["className","hiddenClassName","visible","forceRender"])),c=t;return n&&!r&&(c+=" "+n),i.createElement("div",o()({},a,{className:c}))},t}(i.Component),b=0;function M(e,t){var n=e["page"+(t?"Y":"X")+"Offset"],r="scroll"+(t?"Top":"Left");if("number"!=typeof n){var o=e.document;"number"!=typeof(n=o.documentElement[r])&&(n=o.body[r])}return n}function w(e,t){var n=e.style;["Webkit","Moz","Ms","ms"].forEach((function(e){n[e+"TransformOrigin"]=t})),n.transformOrigin=t}var O=function(e){function t(n){s()(this,t);var r=u()(this,e.call(this,n));return r.inTransition=!1,r.onAnimateLeave=function(){var e=r.props.afterClose;r.wrap&&(r.wrap.style.display="none"),r.inTransition=!1,r.switchScrollingEffect(),e&&e()},r.onDialogMouseDown=function(){r.dialogMouseDown=!0},r.onMaskMouseUp=function(){r.dialogMouseDown&&(r.timeoutId=setTimeout((function(){r.dialogMouseDown=!1}),0))},r.onMaskClick=function(e){Date.now()-r.openTime<300||e.target!==e.currentTarget||r.dialogMouseDown||r.close(e)},r.onKeyDown=function(e){var t=r.props;if(t.keyboard&&e.keyCode===m.a.ESC)return e.stopPropagation(),void r.close(e);if(t.visible&&e.keyCode===m.a.TAB){var n=document.activeElement,o=r.sentinelStart;e.shiftKey?n===o&&r.sentinelEnd.focus():n===r.sentinelEnd&&o.focus()}},r.getDialogElement=function(){var e=r.props,t=e.closable,n=e.prefixCls,a={};void 0!==e.width&&(a.width=e.width),void 0!==e.height&&(a.height=e.height);var c=void 0;e.footer&&(c=i.createElement("div",{className:n+"-footer",ref:r.saveRef("footer")},e.footer));var s=void 0;e.title&&(s=i.createElement("div",{className:n+"-header",ref:r.saveRef("header")},i.createElement("div",{className:n+"-title",id:r.titleId},e.title)));var l=void 0;t&&(l=i.createElement("button",{type:"button",onClick:r.close,"aria-label":"Close",className:n+"-close"},e.closeIcon||i.createElement("span",{className:n+"-close-x"})));var u=o()({},e.style,a),f={width:0,height:0,overflow:"hidden",outline:"none"},d=r.getTransitionName(),p=i.createElement(g,{key:"dialog-element",role:"document",ref:r.saveRef("dialog"),style:u,className:n+" "+(e.className||""),visible:e.visible,forceRender:e.forceRender,onMouseDown:r.onDialogMouseDown},i.createElement("div",{tabIndex:0,ref:r.saveRef("sentinelStart"),style:f,"aria-hidden":"true"}),i.createElement("div",{className:n+"-content"},l,s,i.createElement("div",o()({className:n+"-body",style:e.bodyStyle,ref:r.saveRef("body")},e.bodyProps),e.children),c),i.createElement("div",{tabIndex:0,ref:r.saveRef("sentinelEnd"),style:f,"aria-hidden":"true"}));return i.createElement(y.a,{key:"dialog",showProp:"visible",onLeave:r.onAnimateLeave,transitionName:d,component:"",transitionAppear:!0},e.visible||!e.destroyOnClose?p:null)},r.getZIndexStyle=function(){var e={},t=r.props;return void 0!==t.zIndex&&(e.zIndex=t.zIndex),e},r.getWrapStyle=function(){return o()({},r.getZIndexStyle(),r.props.wrapStyle)},r.getMaskStyle=function(){return o()({},r.getZIndexStyle(),r.props.maskStyle)},r.getMaskElement=function(){var e=r.props,t=void 0;if(e.mask){var n=r.getMaskTransitionName();t=i.createElement(g,o()({style:r.getMaskStyle(),key:"mask",className:e.prefixCls+"-mask",hiddenClassName:e.prefixCls+"-mask-hidden",visible:e.visible},e.maskProps)),n&&(t=i.createElement(y.a,{key:"mask",showProp:"visible",transitionAppear:!0,component:"",transitionName:n},t))}return t},r.getMaskTransitionName=function(){var e=r.props,t=e.maskTransitionName,n=e.maskAnimation;return!t&&n&&(t=e.prefixCls+"-"+n),t},r.getTransitionName=function(){var e=r.props,t=e.transitionName,n=e.animation;return!t&&n&&(t=e.prefixCls+"-"+n),t},r.close=function(e){var t=r.props.onClose;t&&t(e)},r.saveRef=function(e){return function(t){r[e]=t}},r.titleId="rcDialogTitle"+b++,r.switchScrollingEffect=n.switchScrollingEffect||function(){},r}return d()(t,e),t.prototype.componentDidMount=function(){this.componentDidUpdate({}),(this.props.forceRender||!1===this.props.getContainer&&!this.props.visible)&&this.wrap&&(this.wrap.style.display="none")},t.prototype.componentDidUpdate=function(e){var t,n,r,o,i,a=this.props,c=a.visible,s=a.mask,l=a.focusTriggerAfterClose,u=this.props.mousePosition;if(c){if(!e.visible){this.openTime=Date.now(),this.switchScrollingEffect(),this.tryFocus();var f=p.findDOMNode(this.dialog);if(u){var d=(n=(t=f).getBoundingClientRect(),r={left:n.left,top:n.top},o=t.ownerDocument,i=o.defaultView||o.parentWindow,r.left+=M(i),r.top+=M(i,!0),r);w(f,u.x-d.left+"px "+(u.y-d.top)+"px")}else w(f,"")}}else if(e.visible&&(this.inTransition=!0,s&&this.lastOutSideFocusNode&&l)){try{this.lastOutSideFocusNode.focus()}catch(e){this.lastOutSideFocusNode=null}this.lastOutSideFocusNode=null}},t.prototype.componentWillUnmount=function(){var e=this.props,t=e.visible,n=e.getOpenCount;!t&&!this.inTransition||n()||this.switchScrollingEffect(),clearTimeout(this.timeoutId)},t.prototype.tryFocus=function(){Object(v.a)(this.wrap,document.activeElement)||(this.lastOutSideFocusNode=document.activeElement,this.sentinelStart.focus())},t.prototype.render=function(){var e=this.props,t=e.prefixCls,n=e.maskClosable,r=this.getWrapStyle();return e.visible&&(r.display=null),i.createElement("div",{className:t+"-root"},this.getMaskElement(),i.createElement("div",o()({tabIndex:-1,onKeyDown:this.onKeyDown,className:t+"-wrap "+(e.wrapClassName||""),ref:this.saveRef("wrap"),onClick:n?this.onMaskClick:null,onMouseUp:n?this.onMaskMouseUp:null,role:"dialog","aria-labelledby":e.title?this.titleId:null,style:r},e.wrapProps),this.getDialogElement()))},t}(i.Component),S=O;O.defaultProps={className:"",mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:"rc-dialog",focusTriggerAfterClose:!0};var C,x=n(1),k=n.n(x),L=n(48),E=n(154),T=n(155);var P=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.element,r=void 0===n?document.body:n,o={},i=Object.keys(e);return i.forEach((function(e){o[e]=r.style[e]})),i.forEach((function(t){r.style[t]=e[t]})),o};var j={},z=function(e){if(document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth||e){var t=new RegExp("".concat("ant-scrolling-effect"),"g"),n=document.body.className;if(e){if(!t.test(n))return;return P(j),j={},void(document.body.className=n.replace(t,"").trim())}var r=function(e){if("undefined"==typeof document)return 0;if(e||void 0===C){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),r=n.style;r.position="absolute",r.top=0,r.left=0,r.pointerEvents="none",r.visibility="hidden",r.width="200px",r.height="150px",r.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var o=t.offsetWidth;n.style.overflow="scroll";var i=t.offsetWidth;o===i&&(i=n.clientWidth),document.body.removeChild(n),C=o-i}return C}();if(r&&(j=P({position:"relative",width:"calc(100% - ".concat(r,"px)")}),!t.test(n))){var o="".concat(n," ").concat("ant-scrolling-effect");document.body.className=o.trim()}}};function D(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(e){return(A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=W(e);if(t){var o=W(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return F(this,n)}}function F(e,t){return!t||"object"!==A(t)&&"function"!=typeof t?R(e):t}function R(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function W(e){return(W=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var U=0,B=!("undefined"!=typeof window&&window.document&&window.document.createElement),K="createPortal"in h.a,q={},G=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&I(e,t)}(i,e);var t,n,r,o=V(i);function i(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).getParent=function(){var e=t.props.getContainer;if(e){if("string"==typeof e)return document.querySelectorAll(e)[0];if("function"==typeof e)return e();if("object"===A(e)&&e instanceof window.HTMLElement)return e}return document.body},t.getContainer=function(){if(B)return null;if(!t.container){t.container=document.createElement("div");var e=t.getParent();e&&e.appendChild(t.container)}return t.setWrapperClassName(),t.container},t.setWrapperClassName=function(){var e=t.props.wrapperClassName;t.container&&e&&e!==t.container.className&&(t.container.className=e)},t.savePortal=function(e){t._component=e},t.removeCurrentContainer=function(e){t.container=null,t._component=null,K||(e?t.renderComponent({afterClose:t.removeContainer,onClose:function(){},visible:!1}):t.removeContainer())},t.switchScrollingEffect=function(){1!==U||Object.keys(q).length?U||(P(q),q={},z(!0)):(z(),q=P({overflow:"hidden",overflowX:"hidden",overflowY:"hidden"}))};var n=e.visible;return U=n?U+1:U,t.state={_self:R(t)},t}return t=i,r=[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t._self,o=e.visible,i=e.getContainer;if(n){var a=n.visible,c=n.getContainer;o!==a&&(U=o&&!a?U+1:U-1),("function"==typeof i&&"function"==typeof c?i.toString()!==c.toString():i!==c)&&r.removeCurrentContainer(!1)}return{prevProps:e}}}],(n=[{key:"componentDidUpdate",value:function(){this.setWrapperClassName()}},{key:"componentWillUnmount",value:function(){var e=this.props.visible;U=e&&U?U-1:U,this.removeCurrentContainer(e)}},{key:"render",value:function(){var e=this,t=this.props,n=t.children,r=t.forceRender,o=t.visible,i=null,c={getOpenCount:function(){return U},getContainer:this.getContainer,switchScrollingEffect:this.switchScrollingEffect};return K?((r||o||this._component)&&(i=a.a.createElement(T.a,{getContainer:this.getContainer,ref:this.savePortal},n(c))),i):a.a.createElement(E.a,{parent:this,visible:o,autoDestroy:!1,getComponent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n(N(N(N({},t),c),{},{ref:e.savePortal}))},getContainer:this.getContainer,forceRender:r},(function(t){var n=t.renderComponent,r=t.removeContainer;return e.renderComponent=n,e.removeContainer=r,null}))}}])&&Y(t.prototype,n),r&&Y(t,r),i}(a.a.Component);G.propTypes={wrapperClassName:k.a.string,forceRender:k.a.bool,getContainer:k.a.any,children:k.a.func,visible:k.a.bool};var $=Object(L.polyfill)(G);t.default=function(e){var t=e.visible,n=e.getContainer,r=e.forceRender;return!1===n?i.createElement(S,o()({},e,{getOpenCount:function(){return 2}})):i.createElement($,{visible:t,forceRender:r,getContainer:n},(function(t){return i.createElement(S,o()({},e,t))}))}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return O}));var r=n(8),o=n(6),i=n(2),a=n(27),c=n(28),s=n(30),l=n(29),u=n(0),f=n.n(u),d=n(3),p=n.n(d),h=function(e){var t,n="".concat(e.rootPrefixCls,"-item"),r=p()(n,"".concat(n,"-").concat(e.page),(t={},Object(o.a)(t,"".concat(n,"-active"),e.active),Object(o.a)(t,e.className,!!e.className),Object(o.a)(t,"".concat(n,"-disabled"),!e.page),t));return f.a.createElement("li",{title:e.showTitle?e.page:null,className:r,onClick:function(){e.onClick(e.page)},onKeyPress:function(t){e.onKeyPress(t,e.onClick,e.page)},tabIndex:"0"},e.itemRender(e.page,"page",f.a.createElement("a",{rel:"nofollow"},e.page)))},m=13,v=38,y=40,_=function(e){Object(s.a)(n,e);var t=Object(l.a)(n);function n(){var e;Object(a.a)(this,n);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return(e=t.call.apply(t,[this].concat(o))).state={goInputText:""},e.buildOptionText=function(t){return"".concat(t," ").concat(e.props.locale.items_per_page)},e.changeSize=function(t){e.props.changeSize(Number(t))},e.handleChange=function(t){e.setState({goInputText:t.target.value})},e.handleBlur=function(t){var n=e.props,r=n.goButton,o=n.quickGo,i=n.rootPrefixCls,a=e.state.goInputText;r||""===a||(e.setState({goInputText:""}),t.relatedTarget&&(t.relatedTarget.className.indexOf("".concat(i,"-item-link"))>=0||t.relatedTarget.className.indexOf("".concat(i,"-item"))>=0)||o(e.getValidValue()))},e.go=function(t){""!==e.state.goInputText&&(t.keyCode!==m&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return Object(c.a)(n,[{key:"getValidValue",value:function(){var e=this.state.goInputText;return!e||isNaN(e)?void 0:Number(e)}},{key:"getPageSizeOptions",value:function(){var e=this.props,t=e.pageSize,n=e.pageSizeOptions;return n.some((function(e){return e.toString()===t.toString()}))?n:n.concat([t.toString()]).sort((function(e,t){return(isNaN(Number(e))?0:Number(e))-(isNaN(Number(t))?0:Number(t))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,r=t.locale,o=t.rootPrefixCls,i=t.changeSize,a=t.quickGo,c=t.goButton,s=t.selectComponentClass,l=t.buildOptionText,u=t.selectPrefixCls,d=t.disabled,p=this.state.goInputText,h="".concat(o,"-options"),m=s,v=null,y=null,_=null;if(!i&&!a)return null;var g=this.getPageSizeOptions();if(i&&m){var b=g.map((function(t,n){return f.a.createElement(m.Option,{key:n,value:t.toString()},(l||e.buildOptionText)(t))}));v=f.a.createElement(m,{disabled:d,prefixCls:u,showSearch:!1,className:"".concat(h,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||g[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},b)}return a&&(c&&(_="boolean"==typeof c?f.a.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:d,className:"".concat(h,"-quick-jumper-button")},r.jump_to_confirm):f.a.createElement("span",{onClick:this.go,onKeyUp:this.go},c)),y=f.a.createElement("div",{className:"".concat(h,"-quick-jumper")},r.jump_to,f.a.createElement("input",{disabled:d,type:"text",value:p,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),r.page,_)),f.a.createElement("li",{className:"".concat(h)},v,y)}}]),n}(f.a.Component);_.defaultProps={pageSizeOptions:["10","20","50","100"]};var g=_;function b(){}function M(e,t,n){var r=void 0===e?t.pageSize:e;return Math.floor((n.total-1)/r)+1}var w=function(e){Object(s.a)(n,e);var t=Object(l.a)(n);function n(e){var r;Object(a.a)(this,n),(r=t.call(this,e)).getJumpPrevPage=function(){return Math.max(1,r.state.current-(r.props.showLessItems?3:5))},r.getJumpNextPage=function(){return Math.min(M(void 0,r.state,r.props),r.state.current+(r.props.showLessItems?3:5))},r.getItemIcon=function(e,t){var n=r.props.prefixCls,o=e||f.a.createElement("button",{type:"button","aria-label":t,className:"".concat(n,"-item-link")});return"function"==typeof e&&(o=f.a.createElement(e,Object(i.a)({},r.props))),o},r.savePaginationNode=function(e){r.paginationNode=e},r.isValid=function(e){return"number"==typeof(t=e)&&isFinite(t)&&Math.floor(t)===t&&e!==r.state.current;var t},r.shouldDisplayQuickJumper=function(){var e=r.props,t=e.showQuickJumper,n=e.pageSize;return!(e.total<=n)&&t},r.handleKeyDown=function(e){e.keyCode!==v&&e.keyCode!==y||e.preventDefault()},r.handleKeyUp=function(e){var t=r.getValidValue(e);t!==r.state.currentInputValue&&r.setState({currentInputValue:t}),e.keyCode===m?r.handleChange(t):e.keyCode===v?r.handleChange(t-1):e.keyCode===y&&r.handleChange(t+1)},r.changePageSize=function(e){var t=r.state.current,n=M(e,r.state,r.props);t=t>n?n:t,0===n&&(t=r.state.current),"number"==typeof e&&("pageSize"in r.props||r.setState({pageSize:e}),"current"in r.props||r.setState({current:t,currentInputValue:t})),r.props.onShowSizeChange(t,e),"onChange"in r.props&&r.props.onChange&&r.props.onChange(t,e)},r.handleChange=function(e){var t=r.props.disabled,n=e;if(r.isValid(n)&&!t){var o=M(void 0,r.state,r.props);n>o?n=o:n<1&&(n=1),"current"in r.props||r.setState({current:n,currentInputValue:n});var i=r.state.pageSize;return r.props.onChange(n,i),n}return r.state.current},r.prev=function(){r.hasPrev()&&r.handleChange(r.state.current-1)},r.next=function(){r.hasNext()&&r.handleChange(r.state.current+1)},r.jumpPrev=function(){r.handleChange(r.getJumpPrevPage())},r.jumpNext=function(){r.handleChange(r.getJumpNextPage())},r.hasPrev=function(){return r.state.current>1},r.hasNext=function(){return r.state.current<M(void 0,r.state,r.props)},r.runIfEnter=function(e,t){if("Enter"===e.key||13===e.charCode){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];t.apply(void 0,r)}},r.runIfEnterPrev=function(e){r.runIfEnter(e,r.prev)},r.runIfEnterNext=function(e){r.runIfEnter(e,r.next)},r.runIfEnterJumpPrev=function(e){r.runIfEnter(e,r.jumpPrev)},r.runIfEnterJumpNext=function(e){r.runIfEnter(e,r.jumpNext)},r.handleGoTO=function(e){e.keyCode!==m&&"click"!==e.type||r.handleChange(r.state.currentInputValue)};var o=e.onChange!==b;"current"in e&&!o&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var c=e.defaultCurrent;"current"in e&&(c=e.current);var s=e.defaultPageSize;return"pageSize"in e&&(s=e.pageSize),c=Math.min(c,M(s,void 0,e)),r.state={current:c,currentInputValue:c,pageSize:s},r}return Object(c.a)(n,[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var r=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));r&&document.activeElement===r&&r.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=M(void 0,this.state,this.props),r=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?r:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,r=e.totalBoundaryShowSizeChanger;return void 0!==t?t:n>r}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,r=(0,t.itemRender)(e,"prev",this.getItemIcon(n,"prev page")),o=!this.hasPrev();return Object(u.isValidElement)(r)?Object(u.cloneElement)(r,{disabled:o}):r}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,r=(0,t.itemRender)(e,"next",this.getItemIcon(n,"next page")),o=!this.hasNext();return Object(u.isValidElement)(r)?Object(u.cloneElement)(r,{disabled:o}):r}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,i=t.className,a=t.style,c=t.disabled,s=t.hideOnSinglePage,l=t.total,d=t.locale,m=t.showQuickJumper,v=t.showLessItems,y=t.showTitle,_=t.showTotal,b=t.simple,w=t.itemRender,O=t.showPrevNextJumpers,S=t.jumpPrevIcon,C=t.jumpNextIcon,x=t.selectComponentClass,k=t.selectPrefixCls,L=t.pageSizeOptions,E=this.state,T=E.current,P=E.pageSize,j=E.currentInputValue;if(!0===s&&l<=P)return null;var z=M(void 0,this.state,this.props),D=[],N=null,H=null,A=null,Y=null,I=null,V=m&&m.goButton,F=v?1:2,R=T-1>0?T-1:0,W=T+1<z?T+1:z,U=Object.keys(this.props).reduce((function(t,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||(t[n]=e.props[n]),t}),{});if(b)return V&&(I="boolean"==typeof V?f.a.createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},d.jump_to_confirm):f.a.createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},V),I=f.a.createElement("li",{title:y?"".concat(d.jump_to).concat(T,"/").concat(z):null,className:"".concat(n,"-simple-pager")},I)),f.a.createElement("ul",Object(r.a)({className:p()(n,"".concat(n,"-simple"),Object(o.a)({},"".concat(n,"-disabled"),c),i),style:a,ref:this.savePaginationNode},U),f.a.createElement("li",{title:y?d.prev_page:null,onClick:this.prev,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterPrev,className:p()("".concat(n,"-prev"),Object(o.a)({},"".concat(n,"-disabled"),!this.hasPrev())),"aria-disabled":!this.hasPrev()},this.renderPrev(R)),f.a.createElement("li",{title:y?"".concat(T,"/").concat(z):null,className:"".concat(n,"-simple-pager")},f.a.createElement("input",{type:"text",value:j,disabled:c,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:"3"}),f.a.createElement("span",{className:"".concat(n,"-slash")},"/"),z),f.a.createElement("li",{title:y?d.next_page:null,onClick:this.next,tabIndex:this.hasPrev()?0:null,onKeyPress:this.runIfEnterNext,className:p()("".concat(n,"-next"),Object(o.a)({},"".concat(n,"-disabled"),!this.hasNext())),"aria-disabled":!this.hasNext()},this.renderNext(W)),I);if(z<=3+2*F){var B={locale:d,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,showTitle:y,itemRender:w};z||D.push(f.a.createElement(h,Object(r.a)({},B,{key:"noPager",page:z,className:"".concat(n,"-disabled")})));for(var K=1;K<=z;K+=1){var q=T===K;D.push(f.a.createElement(h,Object(r.a)({},B,{key:K,page:K,active:q})))}}else{var G=v?d.prev_3:d.prev_5,$=v?d.next_3:d.next_5;O&&(N=f.a.createElement("li",{title:y?G:null,key:"prev",onClick:this.jumpPrev,tabIndex:"0",onKeyPress:this.runIfEnterJumpPrev,className:p()("".concat(n,"-jump-prev"),Object(o.a)({},"".concat(n,"-jump-prev-custom-icon"),!!S))},w(this.getJumpPrevPage(),"jump-prev",this.getItemIcon(S,"prev page"))),H=f.a.createElement("li",{title:y?$:null,key:"next",tabIndex:"0",onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:p()("".concat(n,"-jump-next"),Object(o.a)({},"".concat(n,"-jump-next-custom-icon"),!!C))},w(this.getJumpNextPage(),"jump-next",this.getItemIcon(C,"next page")))),Y=f.a.createElement(h,{locale:d,last:!0,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:z,page:z,active:!1,showTitle:y,itemRender:w}),A=f.a.createElement(h,{locale:d,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:y,itemRender:w});var J=Math.max(1,T-F),X=Math.min(T+F,z);T-1<=F&&(X=1+2*F),z-T<=F&&(J=z-2*F);for(var Q=J;Q<=X;Q+=1){var Z=T===Q;D.push(f.a.createElement(h,{locale:d,rootPrefixCls:n,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:Q,page:Q,active:Z,showTitle:y,itemRender:w}))}T-1>=2*F&&3!==T&&(D[0]=Object(u.cloneElement)(D[0],{className:"".concat(n,"-item-after-jump-prev")}),D.unshift(N)),z-T>=2*F&&T!==z-2&&(D[D.length-1]=Object(u.cloneElement)(D[D.length-1],{className:"".concat(n,"-item-before-jump-next")}),D.push(H)),1!==J&&D.unshift(A),X!==z&&D.push(Y)}var ee=null;_&&(ee=f.a.createElement("li",{className:"".concat(n,"-total-text")},_(l,[0===l?0:(T-1)*P+1,T*P>l?l:T*P])));var te=!this.hasPrev()||!z,ne=!this.hasNext()||!z;return f.a.createElement("ul",Object(r.a)({className:p()(n,i,Object(o.a)({},"".concat(n,"-disabled"),c)),style:a,unselectable:"unselectable",ref:this.savePaginationNode},U),ee,f.a.createElement("li",{title:y?d.prev_page:null,onClick:this.prev,tabIndex:te?null:0,onKeyPress:this.runIfEnterPrev,className:p()("".concat(n,"-prev"),Object(o.a)({},"".concat(n,"-disabled"),te)),"aria-disabled":te},this.renderPrev(R)),D,f.a.createElement("li",{title:y?d.next_page:null,onClick:this.next,tabIndex:ne?null:0,onKeyPress:this.runIfEnterNext,className:p()("".concat(n,"-next"),Object(o.a)({},"".concat(n,"-disabled"),ne)),"aria-disabled":ne},this.renderNext(W)),f.a.createElement(g,{disabled:c,locale:d,rootPrefixCls:n,selectComponentClass:x,selectPrefixCls:k,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:T,pageSize:P,pageSizeOptions:L,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:V}))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n={};if("current"in e&&(n.current=e.current,e.current!==t.current&&(n.currentInputValue=n.current)),"pageSize"in e&&e.pageSize!==t.pageSize){var r=t.current,o=M(e.pageSize,t,e);r=r>o?o:r,"current"in e||(n.current=r,n.currentInputValue=r),n.pageSize=e.pageSize}return n}}]),n}(f.a.Component);w.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:b,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:b,locale:{items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"},style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var O=w},function(e,t,n){"use strict";function r(e,t){(function(e){return"string"==typeof e&&-1!==e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=360===t?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:e=360===t?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t))}function o(e){return e<=1?100*Number(e)+"%":e}function i(e){return 1===e.length?"0"+e:String(e)}function a(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*n*(t-e):n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function c(e){return s(e)/255}function s(e){return parseInt(e,16)}n.r(t),n.d(t,"blue",(function(){return N})),n.d(t,"cyan",(function(){return D})),n.d(t,"geekblue",(function(){return H})),n.d(t,"generate",(function(){return O})),n.d(t,"gold",(function(){return E})),n.d(t,"green",(function(){return z})),n.d(t,"grey",(function(){return I})),n.d(t,"lime",(function(){return j})),n.d(t,"magenta",(function(){return Y})),n.d(t,"orange",(function(){return T})),n.d(t,"presetDarkPalettes",(function(){return x})),n.d(t,"presetPalettes",(function(){return C})),n.d(t,"presetPrimaryColors",(function(){return S})),n.d(t,"purple",(function(){return A})),n.d(t,"red",(function(){return k})),n.d(t,"volcano",(function(){return L})),n.d(t,"yellow",(function(){return P}));var l={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function u(e){var t,n,i,u={r:0,g:0,b:0},f=1,d=null,p=null,v=null,y=!1,_=!1;return"string"==typeof e&&(e=function(e){if(0===(e=e.trim().toLowerCase()).length)return!1;var t=!1;if(l[e])e=l[e],t=!0;else if("transparent"===e)return{r:0,g:0,b:0,a:0,format:"name"};var n=h.rgb.exec(e);if(n)return{r:n[1],g:n[2],b:n[3]};if(n=h.rgba.exec(e))return{r:n[1],g:n[2],b:n[3],a:n[4]};if(n=h.hsl.exec(e))return{h:n[1],s:n[2],l:n[3]};if(n=h.hsla.exec(e))return{h:n[1],s:n[2],l:n[3],a:n[4]};if(n=h.hsv.exec(e))return{h:n[1],s:n[2],v:n[3]};if(n=h.hsva.exec(e))return{h:n[1],s:n[2],v:n[3],a:n[4]};if(n=h.hex8.exec(e))return{r:s(n[1]),g:s(n[2]),b:s(n[3]),a:c(n[4]),format:t?"name":"hex8"};if(n=h.hex6.exec(e))return{r:s(n[1]),g:s(n[2]),b:s(n[3]),format:t?"name":"hex"};if(n=h.hex4.exec(e))return{r:s(n[1]+n[1]),g:s(n[2]+n[2]),b:s(n[3]+n[3]),a:c(n[4]+n[4]),format:t?"name":"hex8"};if(n=h.hex3.exec(e))return{r:s(n[1]+n[1]),g:s(n[2]+n[2]),b:s(n[3]+n[3]),format:t?"name":"hex"};return!1}(e)),"object"==typeof e&&(m(e.r)&&m(e.g)&&m(e.b)?(t=e.r,n=e.g,i=e.b,u={r:255*r(t,255),g:255*r(n,255),b:255*r(i,255)},y=!0,_="%"===String(e.r).substr(-1)?"prgb":"rgb"):m(e.h)&&m(e.s)&&m(e.v)?(d=o(e.s),p=o(e.v),u=function(e,t,n){e=6*r(e,360),t=r(t,100),n=r(n,100);var o=Math.floor(e),i=e-o,a=n*(1-t),c=n*(1-i*t),s=n*(1-(1-i)*t),l=o%6;return{r:255*[n,c,a,a,s,n][l],g:255*[s,n,n,c,a,a][l],b:255*[a,a,s,n,n,c][l]}}(e.h,d,p),y=!0,_="hsv"):m(e.h)&&m(e.s)&&m(e.l)&&(d=o(e.s),v=o(e.l),u=function(e,t,n){var o,i,c;if(e=r(e,360),t=r(t,100),n=r(n,100),0===t)i=n,c=n,o=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;o=a(l,s,e+1/3),i=a(l,s,e),c=a(l,s,e-1/3)}return{r:255*o,g:255*i,b:255*c}}(e.h,d,v),y=!0,_="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(f=e.a)),f=function(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}(f),{ok:y,format:e.format||_,r:Math.min(255,Math.max(u.r,0)),g:Math.min(255,Math.max(u.g,0)),b:Math.min(255,Math.max(u.b,0)),a:f}}var f="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",d="[\\s|\\(]+("+f+")[,|\\s]+("+f+")[,|\\s]+("+f+")\\s*\\)?",p="[\\s|\\(]+("+f+")[,|\\s]+("+f+")[,|\\s]+("+f+")[,|\\s]+("+f+")\\s*\\)?",h={CSS_UNIT:new RegExp(f),rgb:new RegExp("rgb"+d),rgba:new RegExp("rgba"+p),hsl:new RegExp("hsl"+d),hsla:new RegExp("hsla"+p),hsv:new RegExp("hsv"+d),hsva:new RegExp("hsva"+p),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function m(e){return Boolean(h.CSS_UNIT.exec(String(e)))}var v=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function y(e){var t=function(e,t,n){e=r(e,255),t=r(t,255),n=r(n,255);var o=Math.max(e,t,n),i=Math.min(e,t,n),a=0,c=o,s=o-i,l=0===o?0:s/o;if(o===i)a=0;else{switch(o){case e:a=(t-n)/s+(t<n?6:0);break;case t:a=(n-e)/s+2;break;case n:a=(e-t)/s+4}a/=6}return{h:a,s:l,v:c}}(e.r,e.g,e.b);return{h:360*t.h,s:t.s,v:t.v}}function _(e){var t=e.r,n=e.g,r=e.b;return"#".concat(function(e,t,n,r){var o=[i(Math.round(e).toString(16)),i(Math.round(t).toString(16)),i(Math.round(n).toString(16))];return r&&o[0].startsWith(o[0].charAt(1))&&o[1].startsWith(o[1].charAt(1))&&o[2].startsWith(o[2].charAt(1))?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}(t,n,r,!1))}function g(e,t,n){var r=n/100;return{r:(t.r-e.r)*r+e.r,g:(t.g-e.g)*r+e.g,b:(t.b-e.b)*r+e.b}}function b(e,t,n){var r;return(r=Math.round(e.h)>=60&&Math.round(e.h)<=240?n?Math.round(e.h)-2*t:Math.round(e.h)+2*t:n?Math.round(e.h)+2*t:Math.round(e.h)-2*t)<0?r+=360:r>=360&&(r-=360),r}function M(e,t,n){return 0===e.h&&0===e.s?e.s:((r=n?e.s-.16*t:4===t?e.s+.16:e.s+.05*t)>1&&(r=1),n&&5===t&&r>.1&&(r=.1),r<.06&&(r=.06),Number(r.toFixed(2)));var r}function w(e,t,n){var r;return(r=n?e.v+.05*t:e.v-.15*t)>1&&(r=1),Number(r.toFixed(2))}function O(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],r=u(e),o=5;o>0;o-=1){var i=y(r),a=_(u({h:b(i,o,!0),s:M(i,o,!0),v:w(i,o,!0)}));n.push(a)}n.push(_(r));for(var c=1;c<=4;c+=1){var s=y(r),l=_(u({h:b(s,c),s:M(s,c),v:w(s,c)}));n.push(l)}return"dark"===t.theme?v.map((function(e){var r=e.index,o=e.opacity;return _(g(u(t.backgroundColor||"#141414"),u(n[r]),100*o))})):n}var S={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},C={},x={};Object.keys(S).forEach((function(e){C[e]=O(S[e]),C[e].primary=C[e][5],x[e]=O(S[e],{theme:"dark",backgroundColor:"#141414"}),x[e].primary=x[e][5]}));var k=C.red,L=C.volcano,E=C.gold,T=C.orange,P=C.yellow,j=C.lime,z=C.green,D=C.cyan,N=C.blue,H=C.geekblue,A=C.purple,Y=C.magenta,I=C.grey},function(e,t,n){"use strict";n.r(t);var r=n(13),o=n.n(r),i=n(99),a=n.n(i),c=n(17),s=n.n(c),l=n(19),u=n.n(l),f=n(22),d=n.n(f),p=n(0),h=n.n(p),m=n(1),v=n.n(m),y=n(102),_={adjustX:1,adjustY:1},g=[0,0],b={left:{points:["cr","cl"],overflow:_,offset:[-4,0],targetOffset:g},right:{points:["cl","cr"],overflow:_,offset:[4,0],targetOffset:g},top:{points:["bc","tc"],overflow:_,offset:[0,-4],targetOffset:g},bottom:{points:["tc","bc"],overflow:_,offset:[0,4],targetOffset:g},topLeft:{points:["bl","tl"],overflow:_,offset:[0,-4],targetOffset:g},leftTop:{points:["tr","tl"],overflow:_,offset:[-4,0],targetOffset:g},topRight:{points:["br","tr"],overflow:_,offset:[0,-4],targetOffset:g},rightTop:{points:["tl","tr"],overflow:_,offset:[4,0],targetOffset:g},bottomRight:{points:["tr","br"],overflow:_,offset:[0,4],targetOffset:g},rightBottom:{points:["bl","br"],overflow:_,offset:[4,0],targetOffset:g},bottomLeft:{points:["tl","bl"],overflow:_,offset:[0,4],targetOffset:g},leftBottom:{points:["br","bl"],overflow:_,offset:[-4,0],targetOffset:g}},M=function(e){function t(){return s()(this,t),u()(this,e.apply(this,arguments))}return d()(t,e),t.prototype.componentDidUpdate=function(){var e=this.props.trigger;e&&e.forcePopupAlign()},t.prototype.render=function(){var e=this.props,t=e.overlay,n=e.prefixCls,r=e.id;return h.a.createElement("div",{className:n+"-inner",id:r,role:"tooltip"},"function"==typeof t?t():t)},t}(h.a.Component);M.propTypes={prefixCls:v.a.string,overlay:v.a.oneOfType([v.a.node,v.a.func]).isRequired,id:v.a.string,trigger:v.a.any};var w=M,O=function(e){function t(){var n,r,o;s()(this,t);for(var i=arguments.length,a=Array(i),c=0;c<i;c++)a[c]=arguments[c];return n=r=u()(this,e.call.apply(e,[this].concat(a))),r.getPopupElement=function(){var e=r.props,t=e.arrowContent,n=e.overlay,o=e.prefixCls,i=e.id;return[h.a.createElement("div",{className:o+"-arrow",key:"arrow"},t),h.a.createElement(w,{key:"content",trigger:r.trigger,prefixCls:o,id:i,overlay:n})]},r.saveTrigger=function(e){r.trigger=e},o=n,u()(r,o)}return d()(t,e),t.prototype.getPopupDomNode=function(){return this.trigger.getPopupDomNode()},t.prototype.render=function(){var e=this.props,t=e.overlayClassName,n=e.trigger,r=e.mouseEnterDelay,i=e.mouseLeaveDelay,c=e.overlayStyle,s=e.prefixCls,l=e.children,u=e.onVisibleChange,f=e.afterVisibleChange,d=e.transitionName,p=e.animation,m=e.placement,v=e.align,_=e.destroyTooltipOnHide,g=e.defaultVisible,M=e.getTooltipContainer,w=a()(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),O=o()({},w);return"visible"in this.props&&(O.popupVisible=this.props.visible),h.a.createElement(y.a,o()({popupClassName:t,ref:this.saveTrigger,prefixCls:s,popup:this.getPopupElement,action:n,builtinPlacements:b,popupPlacement:m,popupAlign:v,getPopupContainer:M,onPopupVisibleChange:u,afterPopupVisibleChange:f,popupTransitionName:d,popupAnimation:p,defaultPopupVisible:g,destroyPopupOnHide:_,mouseLeaveDelay:i,popupStyle:c,mouseEnterDelay:r},O),l)},t}(p.Component);O.propTypes={trigger:v.a.any,children:v.a.any,defaultVisible:v.a.bool,visible:v.a.bool,placement:v.a.string,transitionName:v.a.oneOfType([v.a.string,v.a.object]),animation:v.a.any,onVisibleChange:v.a.func,afterVisibleChange:v.a.func,overlay:v.a.oneOfType([v.a.node,v.a.func]).isRequired,overlayStyle:v.a.object,overlayClassName:v.a.string,prefixCls:v.a.string,mouseEnterDelay:v.a.number,mouseLeaveDelay:v.a.number,getTooltipContainer:v.a.func,destroyTooltipOnHide:v.a.bool,align:v.a.object,arrowContent:v.a.any,id:v.a.string},O.defaultProps={prefixCls:"rc-tooltip",mouseEnterDelay:0,destroyTooltipOnHide:!1,mouseLeaveDelay:.1,align:{},placement:"right",trigger:["hover"],arrowContent:null};var S=O;t.default=S},function(e,t,n){"use strict";n.r(t);var r=n(8),o=n(37),i=n(2),a=n(21),c=n(0),s=n(90),l={adjustX:1,adjustY:1},u=[0,0],f={left:{points:["cr","cl"],overflow:l,offset:[-4,0],targetOffset:u},right:{points:["cl","cr"],overflow:l,offset:[4,0],targetOffset:u},top:{points:["bc","tc"],overflow:l,offset:[0,-4],targetOffset:u},bottom:{points:["tc","bc"],overflow:l,offset:[0,4],targetOffset:u},topLeft:{points:["bl","tl"],overflow:l,offset:[0,-4],targetOffset:u},leftTop:{points:["tr","tl"],overflow:l,offset:[-4,0],targetOffset:u},topRight:{points:["br","tr"],overflow:l,offset:[0,-4],targetOffset:u},rightTop:{points:["tl","tr"],overflow:l,offset:[4,0],targetOffset:u},bottomRight:{points:["tr","br"],overflow:l,offset:[0,4],targetOffset:u},rightBottom:{points:["bl","br"],overflow:l,offset:[4,0],targetOffset:u},bottomLeft:{points:["tl","bl"],overflow:l,offset:[0,4],targetOffset:u},leftBottom:{points:["br","bl"],overflow:l,offset:[-4,0],targetOffset:u}},d=function(e){var t=e.overlay,n=e.prefixCls,r=e.id,o=e.overlayInnerStyle;return c.createElement("div",{className:"".concat(n,"-inner"),id:r,role:"tooltip",style:o},"function"==typeof t?t():t)},p=function(e,t){var n=e.overlayClassName,l=e.trigger,u=void 0===l?["hover"]:l,p=e.mouseEnterDelay,h=void 0===p?0:p,m=e.mouseLeaveDelay,v=void 0===m?.1:m,y=e.overlayStyle,_=e.prefixCls,g=void 0===_?"rc-tooltip":_,b=e.children,M=e.onVisibleChange,w=e.afterVisibleChange,O=e.transitionName,S=e.animation,C=e.motion,x=e.placement,k=void 0===x?"right":x,L=e.align,E=void 0===L?{}:L,T=e.destroyTooltipOnHide,P=void 0!==T&&T,j=e.defaultVisible,z=e.getTooltipContainer,D=e.overlayInnerStyle,N=Object(a.a)(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle"]),H=Object(c.useRef)(null);Object(c.useImperativeHandle)(t,(function(){return H.current}));var A=Object(i.a)({},N);"visible"in e&&(A.popupVisible=e.visible);var Y=!1,I=!1;if("boolean"==typeof P)Y=P;else if(P&&"object"===Object(o.a)(P)){var V=P.keepParent;Y=!0===V,I=!1===V}return c.createElement(s.a,Object(r.a)({popupClassName:n,prefixCls:g,popup:function(){var t=e.arrowContent,n=void 0===t?null:t,r=e.overlay,o=e.id;return[c.createElement("div",{className:"".concat(g,"-arrow"),key:"arrow"},n),c.createElement(d,{key:"content",prefixCls:g,id:o,overlay:r,overlayInnerStyle:D})]},action:u,builtinPlacements:f,popupPlacement:k,ref:H,popupAlign:E,getPopupContainer:z,onPopupVisibleChange:M,afterPopupVisibleChange:w,popupTransitionName:O,popupAnimation:S,popupMotion:C,defaultPopupVisible:j,destroyPopupOnHide:Y,autoDestroy:I,mouseLeaveDelay:v,popupStyle:y,mouseEnterDelay:h},A),b)},h=Object(c.forwardRef)(p);t.default=h},function(e,t,n){"use strict";n.r(t);var r=n(6),o=n(10),i=n(21),a=n(0),c=n(90),s=n(3),l=n.n(s),u={adjustX:1,adjustY:1},f=[0,0],d={topLeft:{points:["bl","tl"],overflow:u,offset:[0,-4],targetOffset:f},topCenter:{points:["bc","tc"],overflow:u,offset:[0,-4],targetOffset:f},topRight:{points:["br","tr"],overflow:u,offset:[0,-4],targetOffset:f},bottomLeft:{points:["tl","bl"],overflow:u,offset:[0,4],targetOffset:f},bottomCenter:{points:["tc","bc"],overflow:u,offset:[0,4],targetOffset:f},bottomRight:{points:["tr","br"],overflow:u,offset:[0,4],targetOffset:f}};var p=a.forwardRef((function(e,t){var n=e.arrow,s=void 0!==n&&n,u=e.prefixCls,f=void 0===u?"rc-dropdown":u,p=e.transitionName,h=e.animation,m=e.align,v=e.placement,y=void 0===v?"bottomLeft":v,_=e.placements,g=void 0===_?d:_,b=e.getPopupContainer,M=e.showAction,w=e.hideAction,O=e.overlayClassName,S=e.overlayStyle,C=e.visible,x=e.trigger,k=void 0===x?["hover"]:x,L=Object(i.a)(e,["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),E=a.useState(),T=Object(o.a)(E,2),P=T[0],j=T[1],z="visible"in e?C:P,D=a.useRef(null);a.useImperativeHandle(t,(function(){return D.current}));var N,H,A,Y,I,V,F=function(){var t=e.overlay;return"function"==typeof t?t():t},R=function(t){var n=e.onOverlayClick,r=F().props;j(!1),n&&n(t),r.onClick&&r.onClick(t)},W=function(){var e=F(),t={prefixCls:"".concat(f,"-menu"),onClick:R};return"string"==typeof e.type&&delete t.prefixCls,a.createElement(a.Fragment,null,s&&a.createElement("div",{className:"".concat(f,"-arrow")}),a.cloneElement(e,t))},U=w;return U||-1===k.indexOf("contextMenu")||(U=["click"]),a.createElement(c.a,Object.assign({},L,{prefixCls:f,ref:D,popupClassName:l()(O,Object(r.a)({},"".concat(f,"-show-arrow"),s)),popupStyle:S,builtinPlacements:g,action:k,showAction:M,hideAction:U||[],popupPlacement:y,popupAlign:m,popupTransitionName:p,popupAnimation:h,popupVisible:z,stretch:(I=e.minOverlayWidthMatchTrigger,V=e.alignPoint,("minOverlayWidthMatchTrigger"in e?I:!V)?"minWidth":""),popup:"function"==typeof e.overlay?W:W(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;j(t),"function"==typeof n&&n(t)},getPopupContainer:b}),(H=e.children,A=H.props?H.props:{},Y=l()(A.className,void 0!==(N=e.openClassName)?N:"".concat(f,"-open")),P&&H?a.cloneElement(H,{className:Y}):H))}));t.default=p},function(e,t,n){"use strict";var r=n(15),o=n(50),i=Object(r.a)((function(e){return Object(o.a)(e.length,(function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)}))}));t.a=i}]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NsYXNzbmFtZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9tb21lbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jdXJyeTEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0tleUNvZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9pbnRlcmZhY2VzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNQbGFjZWhvbGRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvdXRpbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZVN1cGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jb25maWctcHJvdmlkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvS2V5Q29kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2NvbXBvbmVudHMvQW50ZEljb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9ET01FeGNlcHRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FzeW5jLXZhbGlkYXRvci9lcy91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jb25maWctcHJvdmlkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC9yZWFjdC1saWZlY3ljbGVzLWNvbXBhdC5lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2N1cnJ5Ti5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2N1cnJ5Ti5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaWNvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL1RyZWVBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXJlc2l6ZS1vYnNlcnZlci9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXJlc2l6ZS1vYnNlcnZlci9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXJlc2l6ZS1vYnNlcnZlci9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy93YXJuaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3JlZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvQ2hpbGRyZW4vdG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3JlZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9hZGRFdmVudExpc3RlbmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvcmFmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zaGFsbG93ZXF1YWwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vbm9uSXRlcmFibGVSZXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3JlZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9jYW5Vc2VEb20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9lcy91dGlsL21vdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2hvb2tzL3VzZVN0YXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vZXMvaG9va3MvdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3JhZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2hvb2tzL3VzZU5leHRGcmFtZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2hvb2tzL3VzZVN0ZXBRdWV1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2ludGVyZmFjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2hvb2tzL3VzZVN0YXR1cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL2hvb2tzL3VzZURvbU1vdGlvbkV2ZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9lcy9Eb21XcmFwcGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vZXMvQ1NTTW90aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tb3Rpb24vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL3V0aWwvZGlmZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL2VzL0NTU01vdGlvbkxpc3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvd2FybmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9saWIvY29udGV4dC9UYWJsZUNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19hcml0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFmL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pbW1lci1wZWFzeS9kaXN0L2ltbWVyLm1vZHVsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZVN1cGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwvZGlzdC9SZXNpemVPYnNlcnZlci5lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbWluaS1zdG9yZS9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9DaGlsZHJlbi90b0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL0NoaWxkcmVuVXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFuaW1hdGUvZXMvdXRpbC9hbmltYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL0FuaW1hdGVDaGlsZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9BbmltYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvb21pdC5qcy9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC90eXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL3dhcm5pbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvZGV2V2FybmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC9yZWFjdE5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9ET01BbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Eb20vY29udGFpbnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Qb3J0YWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy91dGlscy9hbGlnblV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy91dGlscy9sZWdhY3lVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvUG9wdXAvTWFzay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1hbGlnbi9lcy91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLWFsaWduL2VzL0FsaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLWFsaWduL2VzL2hvb2tzL3VzZUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1hbGlnbi9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvUG9wdXAvdXNlVmlzaWJsZVN0YXR1cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10cmlnZ2VyL2VzL1BvcHVwL1BvcHVwSW5uZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9Qb3B1cC91c2VTdHJldGNoU3R5bGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9Qb3B1cC9Nb2JpbGVQb3B1cElubmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvUG9wdXAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Eb20vZmluZERPTU5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2Zvcm0vRm9ybUl0ZW0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXJlYWN0L2VzL3V0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZXhwb3J0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faGFzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL29taXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Ob2RlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL0NyZWF0ZUFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9jb250YWlucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Eb20vYWRkRXZlbnRMaXN0ZW5lci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYWxpZ24vZXMvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtYWxpZ24vZXMvQWxpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWFsaWduL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10cmlnZ2VyL2VzL0xhenlSZW5kZXJCb3guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRyaWdnZXIvZXMvUG9wdXBJbm5lci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9Qb3B1cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdHJpZ2dlci9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vTXV0YXRpb25BbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dhcm5pbmcvd2FybmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL3Byb3BlcnR5VXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2dldE9mZnNldFBhcmVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2dldFZpc2libGVSZWN0Rm9yRWxlbWVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2lzQW5jZXN0b3JGaXhlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2FkanVzdEZvclZpZXdwb3J0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvZ2V0UmVnaW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvZ2V0QWxpZ25PZmZzZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RvbS1hbGlnbi9lcy9nZXRFbEZ1dHVyZVBvcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLWFsaWduL2VzL2FsaWduL2FsaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvYWxpZ24vYWxpZ25FbGVtZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tYWxpZ24vZXMvYWxpZ24vYWxpZ25Qb2ludC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWFuaW1hdGlvbi9lcy9FdmVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3NzLWFuaW1hdGlvbi9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvb2JqZWN0LWFzc2lnbi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy9icm93c2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pbnB1dC9JbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2ZhaWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcHJvcGVydHktZGVzYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9saWIvdXRpbHMvdmFsdWVVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbmZpZy1wcm92aWRlci9TaXplQ29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3VybC9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXRpbC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9NdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vRWxlbWVudEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvYnV0dG9uL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tc2Nyb2xsLWludG8tdmlldy9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1jbGFzc2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL191aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtcGllLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXIuanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL21vZHVsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2xpYi9yZWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL0NlbGwvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3R5cGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19MaXN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19hc3NvY0luZGV4T2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19uYXRpdmVDcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRNYXBEYXRhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vRXZlbnRUYXJnZXRJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vQ2hhcmFjdGVyRGF0YUltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9TaGFkb3dUcmVlQWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vQ3VzdG9tRWxlbWVudEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbmF0aXZlQ3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Fzc29jSW5kZXhPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRNYXBEYXRhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvdHlwZW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0NvbnRhaW5lclJlbmRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Qb3J0YWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL0RvbS9pc1Zpc2libGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXJlc2l6ZS1vYnNlcnZlci9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Eb20vY2FuVXNlRG9tLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvaXNNb2JpbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2N0eC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RlZmluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy1leHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL193a3MtZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9sb2NhbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi91dGlscy9sZWdhY3lVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9jb250ZXh0L0JvZHlDb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL0NoaWxkcmVuL3RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19TeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2NvbXBvbmVudHMvQ29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUvZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29uZmlnLXByb3ZpZGVyL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvTG9hZGluZ091dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9SaWdodE91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL21vdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10cmVlL2xpYi91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL2hvb2tzL3VzZU1lcmdlZFN0YXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL21lbnUvTWVudUNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvcmFkaW8vcmFkaW8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvcmFkaW8vY29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90YWJsZS91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy94bWxidWlsZGVyMi9saWIvd3JpdGVycy9PYmplY3RXcml0ZXJJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0NvZGVQb2ludHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9FdmVudEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0Fic3RyYWN0UmFuZ2VJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0NvZGVQb2ludHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9UZXh0SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0V2ZW50SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0RvY3VtZW50RnJhZ21lbnRJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vRG9jdW1lbnRJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vRWxlbWVudEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9UcmF2ZXJzZXJJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vVHJhdmVyc2FsQWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vRG9jdW1lbnRBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9DaGFyYWN0ZXJEYXRhQWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vT3JkZXJlZFNldEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19jYXN0UGF0aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL190b0tleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZm9ybS9saWIvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbWluaS1zdG9yZS9lc20vUHJvdmlkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbWluaS1zdG9yZS9lc20vY29ubmVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9taW5pLXN0b3JlL2VzbS9jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9vbWl0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvdXRpbHMvaXNNb2JpbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvcGxhY2VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL1N1Yk1lbnUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9ET01XcmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvU3ViUG9wdXBNZW51LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvdXRpbHMvbGVnYWN5VXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL01lbnUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9NZW51SXRlbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL01lbnVJdGVtR3JvdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9EaXZpZGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZGQtZG9tLWV2ZW50LWxpc3RlbmVyL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbWVtb2l6ZXJpZmljL21lbW9pemVyaWZpYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3ltYm9sLW9ic2VydmFibGUvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3NlbGVjdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy9kaXN0L2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzLmNqcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL3NyYy9BamF4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9mb3JtL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2RvbS1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lvYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L0NsZWFyYWJsZUxhYmVsZWRJbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtZ29wZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvd2FybmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvbG9jYWxlL2RlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2RhdGUtcGlja2VyL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWR6LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWt3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWx5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLW1hLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXNhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2F6LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2NzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWF0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2R2LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWF1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWNhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWdiLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWllLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLW56LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLXNnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLWRvLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLXVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2V1LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci1jaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9meS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tZGV2YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nb20tbGF0bi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ndS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oaS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9odS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oeS1hbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC1jaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9qdi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ray5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rdS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9reS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sYi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9taS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy1teS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9teS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uYi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC1iZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9vYy1sbmMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGEtaW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQtYnIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcm8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcnUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2kuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2suanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3EuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGsuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGwtcGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGxoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3R6bC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHptLWxhdG4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWctY24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdWsuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXouanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXotbGF0bi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS92aS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS94LXBzZXVkby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS95by5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1oay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1tby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC10dy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvcmFmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb21wb25lbnQtaW5kZXhvZi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbWluaS1zdG9yZS9saWIvUHJvcFR5cGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRoSG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvbm9uSXRlcmFibGVSZXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL2dldFNjcm9sbEJhclNpemUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL0hlYWRlci9IZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL3V0aWxzL2ZpeFV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL0NvbEdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9Cb2R5L0V4cGFuZGVkUm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9jb250ZXh0L1Jlc2l6ZUNvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL2hvb2tzL3VzZUNvbHVtbnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL2hvb2tzL3VzZUZyYW1lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL0RvbS9jYW5Vc2VEb20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19mcmVlR2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXBhZ2luYXRpb24vbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9kYXRlLXBpY2tlci9sb2NhbGUvZW5fVVMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2xvY2FsZS1wcm92aWRlci9jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL21lc3NhZ2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2NvbXBvbmVudHMvSWNvbkJhc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvRG9tL2R5bmFtaWNDU1MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvQ2xvc2VDaXJjbGVGaWxsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbm90aWZpY2F0aW9uL2xpYi91c2VOb3RpZmljYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvQ2xvc2VPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9MZWZ0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvc2VsZWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL0Rvd25PdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL2hvb2tzL3VzZUJyZWFrcG9pbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJlZS9saWIvdXRpbHMvdHJlZVV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvY2hlY2tib3gvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvY2hlY2tib3gvQ2hlY2tib3guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtY2hlY2tib3gvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvY2hlY2tib3gvR3JvdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvZHJvcGRvd24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvZHJvcGRvd24vZHJvcGRvd24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvYnV0dG9uL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL3JhZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tZW51L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3Rvb2x0aXAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvbGF5b3V0L1NpZGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3JhZGlvL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9lcS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RvU291cmNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbEFycmF5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNMZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi9idWlsZGVyL2ludGVyZmFjZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL3V0aWwvR3VhcmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi93cml0ZXJzL2Jhc2UvUHJlU2VyaWFsaXplci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0J5dGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvQnl0ZVNlcXVlbmNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vQWJvcnRDb250cm9sbGVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0Fib3J0U2lnbmFsSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0F0dHJJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL2xpYi9VUkxBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvQnl0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3VybC9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9CeXRlU2VxdWVuY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9DREFUQVNlY3Rpb25JbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vQ29tbWVudEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9DdXN0b21FdmVudEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Eb2N1bWVudFR5cGVJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vRE9NSW1wbGVtZW50YXRpb25JbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vRE9NVG9rZW5MaXN0SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0hUTUxDb2xsZWN0aW9uSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL011dGF0aW9uUmVjb3JkSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL05hbWVkTm9kZU1hcEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Ob2RlRmlsdGVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL05vZGVJdGVyYXRvckltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Ob2RlTGlzdEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Ob2RlTGlzdFN0YXRpY0ltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vUmFuZ2VJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vU2hhZG93Um9vdEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9UcmVlV2Fsa2VySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL1dpbmRvd0ltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9YTUxEb2N1bWVudEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9Ob2RlSXRlcmF0b3JBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9OYW1lc3BhY2VBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9YTUxBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9Cb3VuZGFyeVBvaW50QWxnb3JpdGhtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9hbGdvcml0aG0vTm9kZUFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL1RleHRBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi9idWlsZGVyL2RvbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvcGFyc2VyL2ludGVyZmFjZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL3NlcmlhbGl6ZXIvTG9jYWxOYW1lU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tb2RhbC9Nb2RhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL2lzT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzSW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZvcm0vbGliL2NyZWF0ZUJhc2VGb3JtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvcnVsZS9yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL3NldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZm9ybS9saWIvY3JlYXRlRm9ybUZpZWxkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL1Jvd0NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL1V0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2Zvcm0vY29uc3RhbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9mb3JtL2NvbnRleHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9nZXRTY3JvbGxCYXJTaXplLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL3N1Z2FyL0NvbHVtbkdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL3N1Z2FyL0NvbHVtbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy91dGlscy92YWx1ZVV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvQ2VsbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9jb250ZXh0L1RhYmxlQ29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy91dGlscy9maXhVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0hlYWRlci9IZWFkZXJSb3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvSGVhZGVyL0hlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy91dGlscy9sZWdhY3lVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0NvbEdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0hlYWRlci9GaXhlZEhlYWRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9jb250ZXh0L0JvZHlDb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0JvZHkvRXhwYW5kZWRSb3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvQm9keS9Cb2R5Um93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL2NvbnRleHQvUmVzaXplQ29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9Cb2R5L01lYXN1cmVDZWxsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0JvZHkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvaG9va3MvdXNlQ29sdW1ucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9ob29rcy91c2VGcmFtZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9ob29rcy91c2VTdGlja3lPZmZzZXRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL1BhbmVsL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL0Zvb3Rlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9Gb290ZXIvQ2VsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9Gb290ZXIvUm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL3V0aWxzL2V4cGFuZFV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9Eb20vY3NzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2VzL3N0aWNreVNjcm9sbEJhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9lcy9ob29rcy91c2VTdGlja3kuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvVGFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvdW5zYWZlTGlmZWN5Y2xlc1BvbHlmaWxsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL0NoaWxkcmVuVXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL3JjLWFuaW1hdGUvZXMvdXRpbC9hbmltYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9yYy1hbmltYXRlL2VzL0FuaW1hdGVDaGlsZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9BbmltYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW5vdGlmaWNhdGlvbi9lcy9Ob3RpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbm90aWZpY2F0aW9uL2VzL05vdGlmaWNhdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1ub3RpZmljYXRpb24vZXMvdXNlTm90aWZpY2F0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLW5vdGlmaWNhdGlvbi9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtcmVhY3QvZXMvY29tcG9uZW50cy9JY29uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kZWJvdW5jZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3ltYm9sLW9ic2VydmFibGUvZXMvcG9ueWZpbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jb2xvcnMvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zcHJpbnRmLWpzL3NyYy9zcHJpbnRmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9hbGVydC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90YWJsZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZGlzdC13ZWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1vdGlvbi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL3Rvb2x0aXAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9xdWVyeS1zdHJpbmcvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL21vZGFsL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9zcGluL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mZXRjaC1kZWR1cGUvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Biam9ybmFnaC91c2UtZmV0Y2gvZXMvRmV0Y2hQcm92aWRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJqb3JuYWdoL3VzZS1mZXRjaC9lcy91dGlscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJqb3JuYWdoL3VzZS1mZXRjaC9lcy91c2VGZXRjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hcnJheVdpdGhIb2xlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVJlc3QuanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2hhcm1vbnktbW9kdWxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcHJvcC10eXBlcy9saWIvUmVhY3RQcm9wVHlwZXNTZWNyZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvYXNzaWduLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hLWZ1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWFzc2lnbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9kaXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9zeW1ib2wvaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zdHJpbmctYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1kcHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdwby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvd2ViLmRvbS5pdGVyYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5Lml0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1zdGVwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvc3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vc3ltYm9sL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuc3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fbWV0YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0ta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWdvcG4tZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczcuc3ltYm9sLm9ic2VydmFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYub2JqZWN0LnNldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zZXQtcHJvdG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2NvbG9ycy9saWIvZ2VuZXJhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Rpbnljb2xvcjIvdGlueWNvbG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pY29uL0ljb25Gb250LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pY29uL3V0aWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtcGFnaW5hdGlvbi9saWIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1jYWxlbmRhci9saWIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jYWxlbmRhci9sb2NhbGUvZW5fVVMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2ljb24vdHdvVG9uZVByaW1hcnlDb2xvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvbG9jYWxlLXByb3ZpZGVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlIHN5bmMgXlxcLlxcLy4qJCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvaW50ZXJvcERlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2NvbmZpZy1wcm92aWRlci9jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jcmVhdGUtcmVhY3QtY29udGV4dC9saWIvaW1wbGVtZW50YXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2d1ZC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29uZmlnLXByb3ZpZGVyL3JlbmRlckVtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9lbXB0eS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZW1wdHkvZW1wdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L3NpbXBsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaW5wdXQvR3JvdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L1NlYXJjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaXMtbW9iaWxlL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9idXR0b24vYnV0dG9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC93YXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jc3MtYW5pbWF0aW9uL2xpYi9FdmVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcGVyZm9ybWFuY2Utbm93L2xpYi9wZXJmb3JtYW5jZS1ub3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2J1dHRvbi9idXR0b24tZ3JvdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL2lucHV0L1RleHRBcmVhLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9pbnB1dC9SZXNpemFibGVUZXh0QXJlYS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvcmMtcmVzaXplLW9ic2VydmVyL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2xpYi9Eb20vZmluZERPTU5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL0NoaWxkcmVuL3RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvcmVmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvZXMvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaW5wdXQvY2FsY3VsYXRlTm9kZUhlaWdodC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvaW5wdXQvUGFzc3dvcmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL21pbmktc3RvcmUvbGliL1Byb3ZpZGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9taW5pLXN0b3JlL2xpYi9jb25uZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy9kaXN0L2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzLmNqcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbWluaS1zdG9yZS9saWIvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZGQtZG9tLWV2ZW50LWxpc3RlbmVyL2xpYi9FdmVudE9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWRkLWRvbS1ldmVudC1saXN0ZW5lci9saWIvRXZlbnRCYXNlT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tdXRhdGlvbm9ic2VydmVyLXNoaW0vZGlzdC9tdXRhdGlvbm9ic2VydmVyLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZG9tLXNjcm9sbC1pbnRvLXZpZXcvbGliL2RvbS1zY3JvbGwtaW50by12aWV3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9kb20tc2Nyb2xsLWludG8tdmlldy9saWIvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvZ2V0RGF0YU9yQXJpYVByb3BzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90YWJsZS9UYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1yZXNpemUtb2JzZXJ2ZXIvbm9kZV9tb2R1bGVzL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL1RhYmxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvYXJyYXlXaXRob3V0SG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9ub25JdGVyYWJsZVNwcmVhZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy11dGlsL2xpYi9Eb20vaXNWaXNpYmxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9zdWdhci9Db2x1bW5Hcm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9saWIvc3VnYXIvQ29sdW1uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9IZWFkZXIvRml4ZWRIZWFkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9IZWFkZXIvSGVhZGVyUm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9Cb2R5L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9Cb2R5L0JvZHlSb3cuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL0JvZHkvTWVhc3VyZUNlbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL2hvb2tzL3VzZVN0aWNreU9mZnNldHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL1BhbmVsL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9Gb290ZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdGFibGUvbGliL0Zvb3Rlci9DZWxsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9Gb290ZXIvUm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi91dGlscy9leHBhbmRVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRhYmxlL2xpYi9zdGlja3lTY3JvbGxCYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvRG9tL2FkZEV2ZW50TGlzdGVuZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvRG9tL2Nzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10YWJsZS9saWIvaG9va3MvdXNlU3RpY2t5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3NwaW4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2dldFByb3RvdHlwZU9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvZGVib3VuY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL25vdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvdG9OdW1iZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVHJpbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3RyaW1tZWRFbmRJbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvaG9va3MvdXNlTWVtby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9sb2NhbGUtcHJvdmlkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvbW9kYWwvbG9jYWxlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1waWNrZXIvbGliL2xvY2FsZS9lbl9VUy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9jYWxlbmRhci9sb2NhbGUvZW5fVVMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvbG9jYWxlLXByb3ZpZGVyL2RlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvY29uZmlnLXByb3ZpZGVyL3JlbmRlckVtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L2VtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2VtcHR5L3NpbXBsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbW90aW9uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0xvYWRpbmdPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vTG9hZGluZ091dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9jb21wb25lbnRzL3R3b1RvbmVQcmltYXJ5Q29sb3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvRXhjbGFtYXRpb25DaXJjbGVGaWxsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0V4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy1zdmcvbGliL2Fzbi9FeGNsYW1hdGlvbkNpcmNsZUZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvQ2xvc2VDaXJjbGVGaWxsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0Nsb3NlQ2lyY2xlRmlsbGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL0NoZWNrQ2lyY2xlRmlsbGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy9DaGVja0NpcmNsZUZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vQ2hlY2tDaXJjbGVGaWxsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvSW5mb0NpcmNsZUZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvSW5mb0NpcmNsZUZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vSW5mb0NpcmNsZUZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tZXNzYWdlL2hvb2tzL3VzZU1lc3NhZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtbm90aWZpY2F0aW9uL2xpYi9Ob3RpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvbm90aWZpY2F0aW9uL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWdlbmVyYXRvci1ydW50aW1lL3J1bnRpbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0Nsb3NlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0Nsb3NlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvQ2hlY2tDaXJjbGVPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvQ2hlY2tDaXJjbGVPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vQ2hlY2tDaXJjbGVPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9DbG9zZUNpcmNsZU91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy9DbG9zZUNpcmNsZU91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy1zdmcvbGliL2Fzbi9DbG9zZUNpcmNsZU91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL0V4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0V4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0V4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvSW5mb0NpcmNsZU91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy9JbmZvQ2lyY2xlT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0luZm9DaXJjbGVPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ub3RpZmljYXRpb24vaG9va3MvdXNlTm90aWZpY2F0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3BhZ2luYXRpb24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvcGFnaW5hdGlvbi9QYWdpbmF0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy9MZWZ0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0xlZnRPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvUmlnaHRPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vUmlnaHRPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9Eb3VibGVMZWZ0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0RvdWJsZUxlZnRPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vRG91YmxlTGVmdE91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL0RvdWJsZVJpZ2h0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0RvdWJsZVJpZ2h0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0RvdWJsZVJpZ2h0T3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvcGFnaW5hdGlvbi9NaW5pU2VsZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3NlbGVjdC91dGlscy9pY29uVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvRG93bk91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy1zdmcvbGliL2Fzbi9Eb3duT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvQ2hlY2tPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvQ2hlY2tPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vQ2hlY2tPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9TZWFyY2hPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvU2VhcmNoT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL1NlYXJjaE91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL3Jlc3BvbnNpdmVPYnNlcnZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL2hvb2tzL3VzZVBhZ2luYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGFibGUvaG9va3MvdXNlTGF6eUtWTWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL2hvb2tzL3VzZVNlbGVjdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJlZS9saWIvVHJlZU5vZGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdHJlZS9saWIvY29udGV4dFR5cGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRyZWUvbGliL0luZGVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10cmVlL2xpYi91dGlscy9jb25kdWN0VXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9kcm9wZG93bi9kcm9wZG93bi1idXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvRWxsaXBzaXNPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvRWxsaXBzaXNPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vRWxsaXBzaXNPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9idXR0b24vYnV0dG9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2J1dHRvbi9idXR0b24tZ3JvdXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvdW5yZWFjaGFibGVFeGNlcHRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvd2F2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC9yYWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvYnV0dG9uL0xvYWRpbmdJY29uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL21lbnUvU3ViTWVudS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9tZW51L01lbnVJdGVtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3Rvb2x0aXAvcGxhY2VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2xpYi9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL2NvbG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9CYXJzT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvbGliL2ljb25zL0JhcnNPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMtc3ZnL2xpYi9hc24vQmFyc091dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL2xheW91dC9sYXlvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvaXNOdW1lcmljLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3JhZGlvL2dyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3JhZGlvL3JhZGlvQnV0dG9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL2hvb2tzL3VzZVNvcnRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9DYXJldERvd25PdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvQ2FyZXREb3duT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0NhcmV0RG93bk91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL0NhcmV0VXBPdXRsaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy9saWIvaWNvbnMvQ2FyZXRVcE91dGxpbmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9pY29ucy1zdmcvbGliL2Fzbi9DYXJldFVwT3V0bGluZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGFibGUvaG9va3MvdXNlRmlsdGVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL2hvb2tzL3VzZUZpbHRlci9GaWx0ZXJEcm9wZG93bi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNFcXVhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0VxdWFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzRXF1YWxEZWVwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fU3RhY2suanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZURlbGV0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZVNldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja0RlbGV0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0YWNrR2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc3RhY2tIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19zdGFja1NldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzTWFza2VkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFZhbHVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0hhc2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoRGVsZXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVEZWxldGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0tleWFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlSGFzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwQ2FjaGVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19TZXRDYWNoZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldENhY2hlQWRkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fc2V0Q2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVNvbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19jYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2VxdWFsQnlUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19VaW50OEFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fbWFwVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3NldFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19lcXVhbE9iamVjdHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRBbGxLZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldEFsbEtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheVB1c2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRTeW1ib2xzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYXJyYXlGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL3N0dWJBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gva2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2FycmF5TGlrZUtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlVGltZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9zdHViRmFsc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc0luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUlzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25vZGVVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX25hdGl2ZUtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvbG9kYXNoL19vdmVyQXJnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9pc0FycmF5TGlrZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2dldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0RhdGFWaWV3LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2xvZGFzaC9fUHJvbWlzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1NldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9sb2Rhc2gvX1dlYWtNYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvQGFudC1kZXNpZ24vaWNvbnMvRmlsdGVyRmlsbGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zL2xpYi9pY29ucy9GaWx0ZXJGaWxsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BhbnQtZGVzaWduL2ljb25zLXN2Zy9saWIvYXNuL0ZpbHRlckZpbGxlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90YWJsZS9ob29rcy91c2VGaWx0ZXIvRmlsdGVyV3JhcHBlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9fdXRpbC9ob29rcy91c2VTeW5jU3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvaG9va3MvdXNlRm9yY2VVcGRhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvdGFibGUvaG9va3MvdXNlVGl0bGVDb2x1bW5zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL0V4cGFuZEljb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvc2Nyb2xsVG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvZ2V0U2Nyb2xsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL191dGlsL2Vhc2luZ3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvYW50ZC9saWIvbG9jYWxlL2VuX1VTLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL2FudGQvbGliL3RhYmxlL0NvbHVtbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9hbnRkL2xpYi90YWJsZS9Db2x1bW5Hcm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvdG9vbHRpcC9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2xpYi9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHJpY3QtdXJpLWVuY29kZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVjb2RlLXVyaS1jb21wb25lbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9GaXhlZFNpemVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9PYmplY3RDYWNoZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3V0aWwvbGliL0NvbXBhcmVDYWNoZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3V0aWwvbGliL0xhenkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL3V0aWwvQ2FzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvdXRpbC9FbXB0eVNldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMveG1sYnVpbGRlcjIvbGliL2J1aWxkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi9idWlsZGVyL1hNTEJ1aWxkZXJJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy94bWxidWlsZGVyMi9saWIvd3JpdGVycy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMveG1sYnVpbGRlcjIvbGliL3dyaXRlcnMvTWFwV3JpdGVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMveG1sYnVpbGRlcjIvbGliL3dyaXRlcnMvYmFzZS9Mb2NhbE5hbWVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi93cml0ZXJzL2Jhc2UvTmFtZXNwYWNlUHJlZml4TWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0Jhc2U2NC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFzZTY0LWpzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pZWVlNzU0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pc2FycmF5L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0pTT04uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvTGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9NYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvTmFtZXNwYWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL1F1ZXVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL1NldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9TdGFjay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9BYm9ydEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3VybC9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3V0aWwvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXRpbC9saWIvT2JqZWN0Q2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9Db21wYXJlQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9TdHJpbmdXYWxrZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbGliL2ludGVyZmFjZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvQmFzZTY0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL0pTT04uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3V0aWwvbGliL09iamVjdENhY2hlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91dGlsL2xpYi9Db21wYXJlQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvdXRpbC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3VybC9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9MaXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL01hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL3VybC9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2luZnJhL2xpYi9OYW1lc3BhY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvUXVldWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay91cmwvbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9pbmZyYS9saWIvU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL1N0YWNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvdXJsL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvaW5mcmEvbGliL1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdXJsL3VybC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbm9kZS1saWJzLWJyb3dzZXIvbm9kZV9tb2R1bGVzL3B1bnljb2RlL3B1bnljb2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy91cmwvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcXVlcnlzdHJpbmctZXMzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9xdWVyeXN0cmluZy1lczMvZGVjb2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9xdWVyeXN0cmluZy1lczMvZW5jb2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9kb20vQ2hpbGROb2RlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0RvY3VtZW50T3JTaGFkb3dSb290SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL0RPTUltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9NdXRhdGlvbk9ic2VydmVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZUltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZUltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2RvbS9QYXJlbnROb2RlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL1Nsb3RhYmxlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvZG9tL1N0YXRpY1JhbmdlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL0F0dHJBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9ET01Ub2tlbkxpc3RBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9FdmVudFRhcmdldEFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL1BhcmVudE5vZGVBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobS9SYW5nZUFsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL1NlbGVjdG9yc0FsZ29yaXRobS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvYWxnb3JpdGhtL1RyZWVXYWxrZXJBbGdvcml0aG0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi93cml0ZXJzL1N0cmluZ1dyaXRlckltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3htbGJ1aWxkZXIyL2xpYi93cml0ZXJzL0pTT05Xcml0ZXJJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvcGFyc2VyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9wYXJzZXIvRE9NUGFyc2VySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvcGFyc2VyL1hNTFBhcnNlckltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bvb3pjaXRhay9kb20vbGliL3BhcnNlci9YTUxTdHJpbmdMZXhlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvc2VyaWFsaXplci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvc2VyaWFsaXplci9YTUxTZXJpYWxpemVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvc2VyaWFsaXplci9YTUxTZXJpYWxpemVyTlNJbXBsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ab296Y2l0YWsvZG9tL2xpYi9zZXJpYWxpemVyL05hbWVzcGFjZVByZWZpeE1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG9vemNpdGFrL2RvbS9saWIvc2VyaWFsaXplci9YTUxTZXJpYWxpemVyTm9OU0ltcGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3V0aWwvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdXRpbC9zdXBwb3J0L2lzQnVmZmVyQnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9saWIvRG9tL2FkZEV2ZW50TGlzdGVuZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL21vZGFsL2NvbmZpcm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbGliL21vZGFsL0FjdGlvbkJ1dHRvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL2RlYm91bmNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvbm93LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC90b051bWJlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9ub2RlX21vZHVsZXMvbG9kYXNoL2lzU3ltYm9sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VHZXRUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FudGQvbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvX29iamVjdFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL25vZGVfbW9kdWxlcy9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9mb3JtL0Zvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZvcm0vbGliL2NyZWF0ZURPTUZvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNQYXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzS2V5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fZ2V0UmF3VGFnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX29iamVjdFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX3N0cmluZ1RvUGF0aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tZW1vaXplQ2FwcGVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvbWVtb2l6ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19NYXBDYWNoZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUNsZWFyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0hhc2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaENsZWFyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faXNNYXNrZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL190b1NvdXJjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoRGVsZXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2hhc2hHZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9faGFzaEhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19oYXNoU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX0xpc3RDYWNoZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVEZWxldGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fbGlzdENhY2hlR2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2xpc3RDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19saXN0Q2FjaGVTZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fTWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX21hcENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2lzS2V5YWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19tYXBDYWNoZVNldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL3RvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VJc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL2lzTGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvY29yZS1qcy9hcnJheS9mcm9tLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vYXJyYXkvZnJvbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2LmFycmF5LmZyb20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWNhbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pcy1hcnJheS1pdGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9jb3JlLmdldC1pdGVyYXRvci1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jbGFzc29mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZXRlY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NyZWF0ZS1yZWFjdC1jbGFzcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY3JlYXRlLXJlYWN0LWNsYXNzL2ZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZianMvbGliL2VtcHR5T2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9mYmpzL2xpYi9pbnZhcmlhbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvbGliL3Vuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvd2hpdGVzcGFjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3J1bGUvcmFuZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL2VudW0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FzeW5jLXZhbGlkYXRvci9lcy9ydWxlL3BhdHRlcm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3IvbWV0aG9kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL251bWJlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9ib29sZWFuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3JlZ2V4cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2Zsb2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL2FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL29iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9lbnVtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvdmFsaWRhdG9yL3BhdHRlcm4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FzeW5jLXZhbGlkYXRvci9lcy92YWxpZGF0b3IvZGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci9yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXN5bmMtdmFsaWRhdG9yL2VzL3ZhbGlkYXRvci90eXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hc3luYy12YWxpZGF0b3IvZXMvbWVzc2FnZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9nZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC9fYmFzZUdldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19iYXNlU2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Fzc2lnblZhbHVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZm9ybS9saWIvY3JlYXRlRmllbGRzU3RvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZvcm0vbm9kZV9tb2R1bGVzL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2Rpc3QvaG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3MuY2pzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1pcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaXMvY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1mb3JtL2xpYi9jcmVhdGVGb3JtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbnRkL2xpYi9ncmlkL3Jvdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvX3V0aWwvcmVzcG9uc2l2ZU9ic2VydmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbnF1aXJlLmpzL3NyYy9NZWRpYVF1ZXJ5RGlzcGF0Y2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL01lZGlhUXVlcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VucXVpcmUuanMvc3JjL1F1ZXJ5SGFuZGxlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYW50ZC9saWIvZ3JpZC9jb2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Vhc3ktcGVhc3kvbm9kZV9tb2R1bGVzL3JlZHV4L2VzL3JlZHV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWR1eC10aHVuay9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZWFzeS1wZWFzeS9ub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqZWN0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lYXN5LXBlYXN5L25vZGVfbW9kdWxlcy9pc29iamVjdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZWFzeS1wZWFzeS9kaXN0L2Vhc3ktcGVhc3kuZXNtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzVHJhbnNmb3JtZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19kaXNwYXRjaGFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc09iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2lzU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNBcnJheUxpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194d3JhcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvYmluZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3JlZHVjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hmQmFzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3hmaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMva2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvZmlsdGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fZmlsdGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194bWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0ludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL250aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGF0aHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BhdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Byb3AuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3BsdWNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY3VycnkzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FsbFBhc3MuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvRmlsdGVycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2FycmF5RnJvbUl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5jbHVkZXNXaXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fb2JqZWN0SXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3R5cGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19lcXVhbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19mdW5jdGlvbk5hbWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2VxdWFscy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX2luY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faW5kZXhPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvU3RvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvY29tcG9uZW50cy9TZWFyY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19waXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY2hlY2tGb3JNZXRob2QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3NsaWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy90YWlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9waXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL2kxOG4uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvdGV4dHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvY29tcG9uZW50cy9UeXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faXNOdW1iZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL194dGFrZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaW50ZXJuYWwvX3JlZHVjZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3Rha2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3N0YXJ0c1dpdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jb25jYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19jcmVhdGVQYXJ0aWFsQXBwbGljYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcGFydGlhbC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvYWRtaW4tc3RyaW5ncy9jb21wb25lbnRzL1JlZ2lzdGVyZWRTdGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvYWRtaW4tc3RyaW5ncy9jb21wb25lbnRzL0Vycm9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvc3JjL2NvbXBvbmVudHMvYW50L1RhYmxlLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9hZG1pbi1zdHJpbmdzL2NvbXBvbmVudHMvVGFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL292ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2Fzc29jLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9sZW5zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9sZW5zUHJvcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvaWZFbHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9faWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lkZW50aXR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9feHRhcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvdGFwLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9hZG1pbi1zdHJpbmdzL2NvbXBvbmVudHMvUmVnaXN0ZXJCdXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvY29tcG9uZW50cy9FeHBvcnRCdXR0b24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JlcGxhY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL19pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fcXVvdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL190b0lTT1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvcmVqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pbnRlcm5hbC9fY29tcGxlbWVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludGVybmFsL190b1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvc3BsaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2ludm9rZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL3JldmVyc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL21lcmdlV2l0aEtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VEZWVwV2l0aEtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmFtZGEvZXMvbWVyZ2VEZWVwUmlnaHQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2VtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9pc0VtcHR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9ub3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2FueVBhc3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JhbWRhL2VzL2lzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9mb3JFYWNoT2JqSW5kZXhlZC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvYWRtaW4tc3RyaW5ncy9YTUxHZW5lcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvY29tcG9uZW50cy9FeHBvcnRNb2RhbC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvanMvYWRtaW4tc3RyaW5ncy9jb21wb25lbnRzL1NwaW4uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvQXBwLmpzIiwid2VicGFjazovLy8uL3NyYy9qcy9hZG1pbi1zdHJpbmdzL21haW4uanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2FkbWluLXN0cmluZ3MvVXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9waWNrQXR0cnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9GaWxsZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9yYWYuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9TY3JvbGxCYXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9JdGVtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy12aXJ0dWFsLWxpc3QvZXMvdXRpbHMvQ2FjaGVNYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9ob29rcy91c2VIZWlnaHRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy12aXJ0dWFsLWxpc3Qvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy12aXJ0dWFsLWxpc3QvZXMvaG9va3MvdXNlU2Nyb2xsVG8uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9ob29rcy91c2VEaWZmSXRlbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdmlydHVhbC1saXN0L2VzL3V0aWxzL2FsZ29yaXRobVV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy91dGlscy9pc0ZpcmVmb3guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9ob29rcy91c2VPcmlnaW5TY3JvbGwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXZpcnR1YWwtbGlzdC9lcy9MaXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy12aXJ0dWFsLWxpc3QvZXMvaG9va3MvdXNlRnJhbWVXaGVlbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdmlydHVhbC1saXN0L2VzL2hvb2tzL3VzZU1vYmlsZVRvdWNoTW92ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdmlydHVhbC1saXN0L2VzL2hvb2tzL3VzZUNoaWxkcmVuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy12aXJ0dWFsLWxpc3QvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL1RyYW5zQnRuLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9PcHRpb25MaXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvaG9va3MvdXNlTWVtby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvT3B0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9PcHRHcm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvdXRpbHMvbGVnYWN5VXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvdXRpbHMvY29tbW9uVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvdXRpbHMvdmFsdWVVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9ob29rcy91c2VNZXJnZWRTdGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW92ZXJmbG93L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hcnJheUxpa2VUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5TGltaXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW92ZXJmbG93L25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvZXMvSXRlbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvcmFmLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9lcy9PdmVyZmxvdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtb3ZlcmZsb3cvZXMvaG9va3MvdXNlQmF0Y2hGcmFtZVN0YXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1vdmVyZmxvdy9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvU2VsZWN0b3IvSW5wdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL2hvb2tzL3VzZUxheW91dEVmZmVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvU2VsZWN0b3IvTXVsdGlwbGVTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvU2VsZWN0b3IvU2luZ2xlU2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL2hvb2tzL3VzZUxvY2suanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL1NlbGVjdG9yL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9TZWxlY3RUcmlnZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9nZW5lcmF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvdXRpbHMvd2FybmluZ1Byb3BzVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvU2VsZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9pbnRlcmZhY2UvZ2VuZXJhdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9ob29rcy91c2VEZWxheVJlc2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9ob29rcy91c2VDYWNoZU9wdGlvbnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL2hvb2tzL3VzZUNhY2hlRGlzcGxheVZhbHVlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9ob29rcy91c2VTZWxlY3RUcmlnZ2VyQ29udHJvbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlMaWtlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaXRlcmFibGVUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9ub25JdGVyYWJsZVNwcmVhZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2suanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NldFByb3RvdHlwZU9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9nZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy93YXJuaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL0ZpZWxkQ29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9lcy91dGlscy90eXBlVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL3V0aWxzL2dldC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXJyYXlXaXRoSG9sZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlUmVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy91dGlscy9zZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vZXMvdXRpbHMvdmFsdWVVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL3V0aWxzL21lc3NhZ2VzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL3V0aWxzL3ZhbGlkYXRlVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9lcy9GaWVsZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvQ2hpbGRyZW4vdG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9lcy9MaXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtZmllbGQtZm9ybS9lcy91dGlscy9OYW1lTWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL3VzZUZvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vZXMvdXRpbHMvYXN5bmNVdGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL0Zvcm1Db250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1maWVsZC1mb3JtL2VzL0Zvcm0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWZpZWxkLWZvcm0vZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9PcHRHcm91cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL09wdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL1Byb3BUeXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy9jcmVhdGVDaGFpbmVkRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvdXRpbHMvaXNNb2JpbGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvdXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbWVudS9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy91dGlsL21vdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbWVudS9ub2RlX21vZHVsZXMvcmMtYW5pbWF0ZS9lcy9DU1NNb3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL3BsYWNlbWVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvU3ViTWVudS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9ET01XcmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL1N1YlBvcHVwTWVudS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdXRpbC9lcy93YXJuaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL3V0aWxzL2xlZ2FjeVV0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvTWVudS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9NZW51SXRlbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtbWVudS9lcy9NZW51SXRlbUdyb3VwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1tZW51L2VzL0RpdmlkZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLW1lbnUvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvQ2hpbGRyZW4vdG9BcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtc2VsZWN0L2VzL3V0aWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9Ecm9wZG93bk1lbnUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXNlbGVjdC9lcy9TZWxlY3RUcmlnZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvU2VsZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1zZWxlY3QvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWRpYWxvZy9lcy9MYXp5UmVuZGVyQm94LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy1kaWFsb2cvZXMvRGlhbG9nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL2dldFNjcm9sbEJhclNpemUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvc2V0U3R5bGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXV0aWwvZXMvc3dpdGNoU2Nyb2xsaW5nRWZmZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy11dGlsL2VzL1BvcnRhbFdyYXBwZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLWRpYWxvZy9lcy9EaWFsb2dXcmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXBhZ2luYXRpb24vZXMvUGFnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtcGFnaW5hdGlvbi9lcy9LZXlDb2RlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXBhZ2luYXRpb24vZXMvT3B0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1wYWdpbmF0aW9uL2VzL1BhZ2luYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtcGFnaW5hdGlvbi9lcy9sb2NhbGUvemhfQ04uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BjdHJsL3Rpbnljb2xvci9kaXN0L21vZHVsZS91dGlsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AY3RybC90aW55Y29sb3IvZGlzdC9tb2R1bGUvY29udmVyc2lvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGN0cmwvdGlueWNvbG9yL2Rpc3QvbW9kdWxlL2Nzcy1jb2xvci1uYW1lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGN0cmwvdGlueWNvbG9yL2Rpc3QvbW9kdWxlL2Zvcm1hdC1pbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9AYW50LWRlc2lnbi9jb2xvcnMvZGlzdC9pbmRleC5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRvb2x0aXAvZXMvcGxhY2VtZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmMtdG9vbHRpcC9lcy9Db250ZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2VzL1Rvb2x0aXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JjLXRvb2x0aXAvZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdG9vbHRpcC9lcy9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLXRvb2x0aXAvZXMvQ29udGVudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy10b29sdGlwL2VzL1Rvb2x0aXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3dwbWwtY29tbW9uLWpzLXNvdXJjZS9ub2RlX21vZHVsZXMvcmMtdG9vbHRpcC9lcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvd3BtbC1jb21tb24tanMtc291cmNlL25vZGVfbW9kdWxlcy9yYy1kcm9wZG93bi9lcy9wbGFjZW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLWRyb3Bkb3duL2VzL0Ryb3Bkb3duLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93cG1sLWNvbW1vbi1qcy1zb3VyY2Uvbm9kZV9tb2R1bGVzL3JjLWRyb3Bkb3duL2VzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yYW1kYS9lcy9mbGlwLmpzIl0sIm5hbWVzIjpbImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJleHBvcnRzIiwibW9kdWxlIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwib3duS2V5cyIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkMiIsInRhcmdldCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImhhc093biIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiYXJnIiwiYXJnVHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImlubmVyIiwiam9pbiIsImRlZmF1bHQiLCJob29rQ2FsbGJhY2siLCJzb21lIiwiaG9va3MiLCJpbnB1dCIsInRvU3RyaW5nIiwiaXNPYmplY3QiLCJoYXNPd25Qcm9wIiwiYSIsImIiLCJpc09iamVjdEVtcHR5Iiwib2JqIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImsiLCJpc1VuZGVmaW5lZCIsImlzTnVtYmVyIiwiaXNEYXRlIiwiRGF0ZSIsIm1hcCIsImFyciIsImZuIiwicmVzIiwiZXh0ZW5kIiwidmFsdWVPZiIsImNyZWF0ZVVUQyIsImZvcm1hdCIsImxvY2FsZSIsInN0cmljdCIsImNyZWF0ZUxvY2FsT3JVVEMiLCJ1dGMiLCJnZXRQYXJzaW5nRmxhZ3MiLCJfcGYiLCJlbXB0eSIsInVudXNlZFRva2VucyIsInVudXNlZElucHV0Iiwib3ZlcmZsb3ciLCJjaGFyc0xlZnRPdmVyIiwibnVsbElucHV0IiwiaW52YWxpZEVyYSIsImludmFsaWRNb250aCIsImludmFsaWRGb3JtYXQiLCJ1c2VySW52YWxpZGF0ZWQiLCJpc28iLCJwYXJzZWREYXRlUGFydHMiLCJlcmEiLCJtZXJpZGllbSIsInJmYzI4MjIiLCJ3ZWVrZGF5TWlzbWF0Y2giLCJpc1ZhbGlkIiwiX2lzVmFsaWQiLCJmbGFncyIsInBhcnNlZFBhcnRzIiwiaXNOb3dWYWxpZCIsImlzTmFOIiwiX2QiLCJnZXRUaW1lIiwiaW52YWxpZFdlZWtkYXkiLCJfc3RyaWN0IiwidW5kZWZpbmVkIiwiYmlnSG91ciIsImlzRnJvemVuIiwiY3JlYXRlSW52YWxpZCIsIk5hTiIsImZ1biIsInRoaXMiLCJsZW4iLCJtb21lbnRQcm9wZXJ0aWVzIiwidXBkYXRlSW5Qcm9ncmVzcyIsImNvcHlDb25maWciLCJ0byIsImZyb20iLCJwcm9wIiwidmFsIiwiX2lzQU1vbWVudE9iamVjdCIsIl9pIiwiX2YiLCJfbCIsIl90em0iLCJfaXNVVEMiLCJfb2Zmc2V0IiwiX2xvY2FsZSIsIk1vbWVudCIsImNvbmZpZyIsInVwZGF0ZU9mZnNldCIsImlzTW9tZW50Iiwid2FybiIsIm1zZyIsInN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyIsImNvbnNvbGUiLCJkZXByZWNhdGUiLCJmaXJzdFRpbWUiLCJkZXByZWNhdGlvbkhhbmRsZXIiLCJhcmdzIiwic2xpY2UiLCJFcnJvciIsInN0YWNrIiwiZGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlU2ltcGxlIiwiaXNGdW5jdGlvbiIsIkZ1bmN0aW9uIiwibWVyZ2VDb25maWdzIiwicGFyZW50Q29uZmlnIiwiY2hpbGRDb25maWciLCJMb2NhbGUiLCJzZXQiLCJ6ZXJvRmlsbCIsIm51bWJlciIsInRhcmdldExlbmd0aCIsImZvcmNlU2lnbiIsImFic051bWJlciIsIk1hdGgiLCJhYnMiLCJ6ZXJvc1RvRmlsbCIsInBvdyIsIm1heCIsInN1YnN0ciIsImZvcm1hdHRpbmdUb2tlbnMiLCJsb2NhbEZvcm1hdHRpbmdUb2tlbnMiLCJmb3JtYXRGdW5jdGlvbnMiLCJmb3JtYXRUb2tlbkZ1bmN0aW9ucyIsImFkZEZvcm1hdFRva2VuIiwidG9rZW4iLCJwYWRkZWQiLCJvcmRpbmFsIiwiY2FsbGJhY2siLCJmdW5jIiwibG9jYWxlRGF0YSIsImZvcm1hdE1vbWVudCIsImV4cGFuZEZvcm1hdCIsImFycmF5IiwibWF0Y2giLCJyZXBsYWNlIiwibW9tIiwib3V0cHV0IiwibWFrZUZvcm1hdEZ1bmN0aW9uIiwiaW52YWxpZERhdGUiLCJyZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMiLCJsb25nRGF0ZUZvcm1hdCIsImxhc3RJbmRleCIsInRlc3QiLCJhbGlhc2VzIiwiYWRkVW5pdEFsaWFzIiwidW5pdCIsInNob3J0aGFuZCIsImxvd2VyQ2FzZSIsInRvTG93ZXJDYXNlIiwibm9ybWFsaXplVW5pdHMiLCJ1bml0cyIsIm5vcm1hbGl6ZU9iamVjdFVuaXRzIiwiaW5wdXRPYmplY3QiLCJub3JtYWxpemVkUHJvcCIsIm5vcm1hbGl6ZWRJbnB1dCIsInByaW9yaXRpZXMiLCJhZGRVbml0UHJpb3JpdHkiLCJwcmlvcml0eSIsImlzTGVhcFllYXIiLCJ5ZWFyIiwiYWJzRmxvb3IiLCJjZWlsIiwiZmxvb3IiLCJ0b0ludCIsImFyZ3VtZW50Rm9yQ29lcmNpb24iLCJjb2VyY2VkTnVtYmVyIiwiaXNGaW5pdGUiLCJtYWtlR2V0U2V0Iiwia2VlcFRpbWUiLCJzZXQkMSIsIm1vbnRoIiwiZGF0ZSIsImRheXNJbk1vbnRoIiwicmVnZXhlcyIsIm1hdGNoMSIsIm1hdGNoMiIsIm1hdGNoMyIsIm1hdGNoNCIsIm1hdGNoNiIsIm1hdGNoMXRvMiIsIm1hdGNoM3RvNCIsIm1hdGNoNXRvNiIsIm1hdGNoMXRvMyIsIm1hdGNoMXRvNCIsIm1hdGNoMXRvNiIsIm1hdGNoVW5zaWduZWQiLCJtYXRjaFNpZ25lZCIsIm1hdGNoT2Zmc2V0IiwibWF0Y2hTaG9ydE9mZnNldCIsIm1hdGNoV29yZCIsImFkZFJlZ2V4VG9rZW4iLCJyZWdleCIsInN0cmljdFJlZ2V4IiwiaXNTdHJpY3QiLCJnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4iLCJSZWdFeHAiLCJyZWdleEVzY2FwZSIsIm1hdGNoZWQiLCJwMSIsInAyIiwicDMiLCJwNCIsImluZGV4T2YiLCJ0b2tlbnMiLCJhZGRQYXJzZVRva2VuIiwiYWRkV2Vla1BhcnNlVG9rZW4iLCJfdyIsImFkZFRpbWVUb0FycmF5RnJvbVRva2VuIiwiX2EiLCJ4IiwibW9kTW9udGgiLCJtb250aHNTaG9ydCIsIm1vbnRocyIsIm1vbnRoc1Nob3J0UmVnZXgiLCJtb250aHNSZWdleCIsIm1vbnRoc1BhcnNlIiwiZGVmYXVsdExvY2FsZU1vbnRocyIsInNwbGl0IiwiZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0IiwiTU9OVEhTX0lOX0ZPUk1BVCIsImRlZmF1bHRNb250aHNTaG9ydFJlZ2V4IiwiZGVmYXVsdE1vbnRoc1JlZ2V4IiwiaGFuZGxlU3RyaWN0UGFyc2UiLCJtb250aE5hbWUiLCJpaSIsImxsYyIsInRvTG9jYWxlTG93ZXJDYXNlIiwiX21vbnRoc1BhcnNlIiwiX2xvbmdNb250aHNQYXJzZSIsIl9zaG9ydE1vbnRoc1BhcnNlIiwic2V0TW9udGgiLCJkYXlPZk1vbnRoIiwibWluIiwiZ2V0U2V0TW9udGgiLCJjb21wdXRlTW9udGhzUGFyc2UiLCJjbXBMZW5SZXYiLCJzaG9ydFBpZWNlcyIsImxvbmdQaWVjZXMiLCJtaXhlZFBpZWNlcyIsInNvcnQiLCJfbW9udGhzUmVnZXgiLCJfbW9udGhzU2hvcnRSZWdleCIsIl9tb250aHNTdHJpY3RSZWdleCIsIl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IiwiZGF5c0luWWVhciIsInkiLCJwYXJzZVR3b0RpZ2l0WWVhciIsInBhcnNlSW50IiwiZ2V0U2V0WWVhciIsImNyZWF0ZURhdGUiLCJoIiwiTSIsIm1zIiwiZ2V0RnVsbFllYXIiLCJzZXRGdWxsWWVhciIsImNyZWF0ZVVUQ0RhdGUiLCJVVEMiLCJnZXRVVENGdWxsWWVhciIsInNldFVUQ0Z1bGxZZWFyIiwiZmlyc3RXZWVrT2Zmc2V0IiwiZG93IiwiZG95IiwiZndkIiwiZ2V0VVRDRGF5IiwiZGF5T2ZZZWFyRnJvbVdlZWtzIiwid2VlayIsIndlZWtkYXkiLCJyZXNZZWFyIiwicmVzRGF5T2ZZZWFyIiwiZGF5T2ZZZWFyIiwid2Vla09mWWVhciIsInJlc1dlZWsiLCJ3ZWVrT2Zmc2V0Iiwid2Vla3NJblllYXIiLCJ3ZWVrT2Zmc2V0TmV4dCIsInNoaWZ0V2Vla2RheXMiLCJ3cyIsImNvbmNhdCIsIndlZWtkYXlzTWluIiwid2Vla2RheXNTaG9ydCIsIndlZWtkYXlzIiwid2Vla2RheXNNaW5SZWdleCIsIndlZWtkYXlzU2hvcnRSZWdleCIsIndlZWtkYXlzUmVnZXgiLCJ3ZWVrZGF5c1BhcnNlIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4iLCJkZWZhdWx0V2Vla2RheXNSZWdleCIsImRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXgiLCJkZWZhdWx0V2Vla2RheXNNaW5SZWdleCIsImhhbmRsZVN0cmljdFBhcnNlJDEiLCJ3ZWVrZGF5TmFtZSIsIl93ZWVrZGF5c1BhcnNlIiwiX3Nob3J0V2Vla2RheXNQYXJzZSIsIl9taW5XZWVrZGF5c1BhcnNlIiwiZGF5IiwiY29tcHV0ZVdlZWtkYXlzUGFyc2UiLCJtaW5wIiwic2hvcnRwIiwibG9uZ3AiLCJtaW5QaWVjZXMiLCJfd2Vla2RheXNSZWdleCIsIl93ZWVrZGF5c1Nob3J0UmVnZXgiLCJfd2Vla2RheXNNaW5SZWdleCIsIl93ZWVrZGF5c1N0cmljdFJlZ2V4IiwiX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCIsIl93ZWVrZGF5c01pblN0cmljdFJlZ2V4IiwiaEZvcm1hdCIsImhvdXJzIiwibG93ZXJjYXNlIiwibWludXRlcyIsIm1hdGNoTWVyaWRpZW0iLCJfbWVyaWRpZW1QYXJzZSIsInNlY29uZHMiLCJrSW5wdXQiLCJfaXNQbSIsImlzUE0iLCJfbWVyaWRpZW0iLCJwb3MiLCJwb3MxIiwicG9zMiIsImdsb2JhbExvY2FsZSIsImdldFNldEhvdXIiLCJiYXNlQ29uZmlnIiwiY2FsZW5kYXIiLCJzYW1lRGF5IiwibmV4dERheSIsIm5leHRXZWVrIiwibGFzdERheSIsImxhc3RXZWVrIiwic2FtZUVsc2UiLCJMVFMiLCJMVCIsIkwiLCJMTCIsIkxMTCIsIkxMTEwiLCJkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIiwicmVsYXRpdmVUaW1lIiwiZnV0dXJlIiwicGFzdCIsInNzIiwibW0iLCJoaCIsImRkIiwidyIsInd3IiwiTU0iLCJ5eSIsIm1lcmlkaWVtUGFyc2UiLCJsb2NhbGVzIiwibG9jYWxlRmFtaWxpZXMiLCJjb21tb25QcmVmaXgiLCJhcnIxIiwiYXJyMiIsIm1pbmwiLCJub3JtYWxpemVMb2NhbGUiLCJsb2FkTG9jYWxlIiwib2xkTG9jYWxlIiwiX2FiYnIiLCJnZXRTZXRHbG9iYWxMb2NhbGUiLCJlIiwidmFsdWVzIiwiZGF0YSIsImdldExvY2FsZSIsImRlZmluZUxvY2FsZSIsImFiYnIiLCJfY29uZmlnIiwicGFyZW50TG9jYWxlIiwibmFtZXMiLCJqIiwibmV4dCIsImNob29zZUxvY2FsZSIsImNoZWNrT3ZlcmZsb3ciLCJfb3ZlcmZsb3dEYXlPZlllYXIiLCJfb3ZlcmZsb3dXZWVrcyIsIl9vdmVyZmxvd1dlZWtkYXkiLCJleHRlbmRlZElzb1JlZ2V4IiwiYmFzaWNJc29SZWdleCIsInR6UmVnZXgiLCJpc29EYXRlcyIsImlzb1RpbWVzIiwiYXNwTmV0SnNvblJlZ2V4Iiwib2JzT2Zmc2V0cyIsIlVUIiwiR01UIiwiRURUIiwiRVNUIiwiQ0RUIiwiQ1NUIiwiTURUIiwiTVNUIiwiUERUIiwiUFNUIiwiY29uZmlnRnJvbUlTTyIsImFsbG93VGltZSIsImRhdGVGb3JtYXQiLCJ0aW1lRm9ybWF0IiwidHpGb3JtYXQiLCJzdHJpbmciLCJleGVjIiwiY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCIsInVudHJ1bmNhdGVZZWFyIiwieWVhclN0ciIsImNvbmZpZ0Zyb21SRkMyODIyIiwicGFyc2VkQXJyYXkiLCJtb250aFN0ciIsImRheVN0ciIsImhvdXJTdHIiLCJtaW51dGVTdHIiLCJzZWNvbmRTdHIiLCJyZXN1bHQiLCJ3ZWVrZGF5U3RyIiwicGFyc2VkSW5wdXQiLCJnZXREYXkiLCJjaGVja1dlZWtkYXkiLCJvYnNPZmZzZXQiLCJtaWxpdGFyeU9mZnNldCIsIm51bU9mZnNldCIsImhtIiwiY2FsY3VsYXRlT2Zmc2V0Iiwic2V0VVRDTWludXRlcyIsImdldFVUQ01pbnV0ZXMiLCJkZWZhdWx0cyIsImNvbmZpZ0Zyb21BcnJheSIsImN1cnJlbnREYXRlIiwiZXhwZWN0ZWRXZWVrZGF5IiwieWVhclRvVXNlIiwibm93VmFsdWUiLCJub3ciLCJfdXNlVVRDIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiY3VycmVudERhdGVBcnJheSIsIndlZWtZZWFyIiwidGVtcCIsIndlZWtkYXlPdmVyZmxvdyIsImN1cldlZWsiLCJHRyIsIlciLCJFIiwiY3JlYXRlTG9jYWwiLCJfd2VlayIsImdnIiwiX2RheU9mWWVhciIsImRheU9mWWVhckZyb21XZWVrSW5mbyIsIl9uZXh0RGF5IiwiSVNPXzg2MDEiLCJSRkNfMjgyMiIsInNraXBwZWQiLCJzdHJpbmdMZW5ndGgiLCJ0b3RhbFBhcnNlZElucHV0TGVuZ3RoIiwiaG91ciIsImlzUG0iLCJtZXJpZGllbUhvdXIiLCJtZXJpZGllbUZpeFdyYXAiLCJlcmFzQ29udmVydFllYXIiLCJwcmVwYXJlQ29uZmlnIiwicHJlcGFyc2UiLCJ0ZW1wQ29uZmlnIiwiYmVzdE1vbWVudCIsInNjb3JlVG9CZWF0IiwiY3VycmVudFNjb3JlIiwidmFsaWRGb3JtYXRGb3VuZCIsImJlc3RGb3JtYXRJc1ZhbGlkIiwic2NvcmUiLCJjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkiLCJjcmVhdGVGcm9tSW5wdXRGYWxsYmFjayIsImNvbmZpZ0Zyb21TdHJpbmciLCJkYXlPckRhdGUiLCJtaW51dGUiLCJzZWNvbmQiLCJtaWxsaXNlY29uZCIsImNvbmZpZ0Zyb21PYmplY3QiLCJjb25maWdGcm9tSW5wdXQiLCJpc1VUQyIsImFkZCIsInByb3RvdHlwZU1pbiIsIm90aGVyIiwicHJvdG90eXBlTWF4IiwicGlja0J5IiwibW9tZW50cyIsIm9yZGVyaW5nIiwiRHVyYXRpb24iLCJkdXJhdGlvbiIsInllYXJzIiwicXVhcnRlcnMiLCJxdWFydGVyIiwid2Vla3MiLCJpc29XZWVrIiwiZGF5cyIsIm1pbGxpc2Vjb25kcyIsInVuaXRIYXNEZWNpbWFsIiwicGFyc2VGbG9hdCIsImlzRHVyYXRpb25WYWxpZCIsIl9taWxsaXNlY29uZHMiLCJfZGF5cyIsIl9tb250aHMiLCJfZGF0YSIsIl9idWJibGUiLCJpc0R1cmF0aW9uIiwiYWJzUm91bmQiLCJyb3VuZCIsIm9mZnNldCIsInNlcGFyYXRvciIsInV0Y09mZnNldCIsInNpZ24iLCJvZmZzZXRGcm9tU3RyaW5nIiwiY2h1bmtPZmZzZXQiLCJtYXRjaGVyIiwicGFydHMiLCJtYXRjaGVzIiwiY2xvbmVXaXRoT2Zmc2V0IiwibW9kZWwiLCJkaWZmIiwiY2xvbmUiLCJzZXRUaW1lIiwibG9jYWwiLCJnZXREYXRlT2Zmc2V0IiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJpc1V0YyIsImFzcE5ldFJlZ2V4IiwiaXNvUmVnZXgiLCJjcmVhdGVEdXJhdGlvbiIsInJldCIsImRpZmZSZXMiLCJiYXNlIiwicGFyc2VJc28iLCJpc0JlZm9yZSIsInBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UiLCJpbnAiLCJpc0FmdGVyIiwiY3JlYXRlQWRkZXIiLCJkaXJlY3Rpb24iLCJwZXJpb2QiLCJ0bXAiLCJhZGRTdWJ0cmFjdCIsImlzQWRkaW5nIiwiaW52YWxpZCIsInN1YnRyYWN0IiwiaXNTdHJpbmciLCJTdHJpbmciLCJpc01vbWVudElucHV0IiwiYXJyYXlUZXN0IiwiZGF0YVR5cGVUZXN0IiwiaXRlbSIsImlzTnVtYmVyT3JTdHJpbmdBcnJheSIsIm9iamVjdFRlc3QiLCJwcm9wZXJ0eVRlc3QiLCJwcm9wZXJ0aWVzIiwiaXNNb21lbnRJbnB1dE9iamVjdCIsImlzQ2FsZW5kYXJTcGVjIiwibW9udGhEaWZmIiwid2hvbGVNb250aERpZmYiLCJhbmNob3IiLCJuZXdMb2NhbGVEYXRhIiwiZGVmYXVsdEZvcm1hdCIsImRlZmF1bHRGb3JtYXRVdGMiLCJsYW5nIiwibW9kJDEiLCJkaXZpZGVuZCIsImRpdmlzb3IiLCJsb2NhbFN0YXJ0T2ZEYXRlIiwidXRjU3RhcnRPZkRhdGUiLCJtYXRjaEVyYUFiYnIiLCJlcmFzQWJiclJlZ2V4IiwiY29tcHV0ZUVyYXNQYXJzZSIsImFiYnJQaWVjZXMiLCJuYW1lUGllY2VzIiwibmFycm93UGllY2VzIiwiZXJhcyIsIm5hcnJvdyIsIl9lcmFzUmVnZXgiLCJfZXJhc05hbWVSZWdleCIsIl9lcmFzQWJiclJlZ2V4IiwiX2VyYXNOYXJyb3dSZWdleCIsImFkZFdlZWtZZWFyRm9ybWF0VG9rZW4iLCJnZXRTZXRXZWVrWWVhckhlbHBlciIsIndlZWtzVGFyZ2V0Iiwic2V0V2Vla0FsbCIsImRheU9mWWVhckRhdGEiLCJlcmFzTmFtZVJlZ2V4IiwiZXJhc05hcnJvd1JlZ2V4IiwiZXJhc1BhcnNlIiwiX2VyYVllYXJPcmRpbmFsUmVnZXgiLCJlcmFZZWFyT3JkaW5hbFBhcnNlIiwiaXNvV2Vla1llYXIiLCJfZGF5T2ZNb250aE9yZGluYWxQYXJzZSIsIl9vcmRpbmFsUGFyc2UiLCJfZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQiLCJnZXRTZXREYXlPZk1vbnRoIiwiZ2V0U2V0TWludXRlIiwiZ2V0U2V0TWlsbGlzZWNvbmQiLCJnZXRTZXRTZWNvbmQiLCJwYXJzZU1zIiwicHJvdG8iLCJwcmVQYXJzZVBvc3RGb3JtYXQiLCJ0aW1lIiwiZm9ybWF0cyIsInNvZCIsInN0YXJ0T2YiLCJjYWxlbmRhckZvcm1hdCIsImFzRmxvYXQiLCJ0aGF0Iiwiem9uZURlbHRhIiwiZW5kT2YiLCJzdGFydE9mRGF0ZSIsImlzb1dlZWtkYXkiLCJpbnB1dFN0cmluZyIsInBvc3Rmb3JtYXQiLCJ3aXRob3V0U3VmZml4IiwiaHVtYW5pemUiLCJmcm9tTm93IiwidG9Ob3ciLCJpbnZhbGlkQXQiLCJsb2NhbElucHV0IiwiaXNCZXR3ZWVuIiwiaW5jbHVzaXZpdHkiLCJsb2NhbEZyb20iLCJsb2NhbFRvIiwiaXNTYW1lIiwiaW5wdXRNcyIsImlzU2FtZU9yQWZ0ZXIiLCJpc1NhbWVPckJlZm9yZSIsInBhcnNpbmdGbGFncyIsInByaW9yaXRpemVkIiwidW5pdHNPYmoiLCJ1IiwiZ2V0UHJpb3JpdGl6ZWRVbml0cyIsInRvQXJyYXkiLCJ0b09iamVjdCIsInRvRGF0ZSIsInRvSVNPU3RyaW5nIiwia2VlcE9mZnNldCIsImluc3BlY3QiLCJwcmVmaXgiLCJzdWZmaXgiLCJ6b25lIiwiaXNMb2NhbCIsImZvciIsInRvSlNPTiIsInVuaXgiLCJjcmVhdGlvbkRhdGEiLCJlcmFOYW1lIiwic2luY2UiLCJ1bnRpbCIsImVyYU5hcnJvdyIsImVyYUFiYnIiLCJlcmFZZWFyIiwiZGlyIiwiaXNvV2Vla3MiLCJ3ZWVrSW5mbyIsIndlZWtzSW5XZWVrWWVhciIsImlzb1dlZWtzSW5ZZWFyIiwiaXNvV2Vla3NJbklTT1dlZWtZZWFyIiwicGFyc2VXZWVrZGF5IiwicGFyc2VJc29XZWVrZGF5Iiwia2VlcExvY2FsVGltZSIsImtlZXBNaW51dGVzIiwibG9jYWxBZGp1c3QiLCJfY2hhbmdlSW5Qcm9ncmVzcyIsInBhcnNlWm9uZSIsInRab25lIiwiaGFzQWxpZ25lZEhvdXJPZmZzZXQiLCJpc0RTVCIsImlzVXRjT2Zmc2V0Iiwiem9uZUFiYnIiLCJ6b25lTmFtZSIsImRhdGVzIiwiaXNEU1RTaGlmdGVkIiwiX2lzRFNUU2hpZnRlZCIsImFycmF5MSIsImFycmF5MiIsImRvbnRDb252ZXJ0IiwibGVuZ3RoRGlmZiIsImRpZmZzIiwiY29tcGFyZUFycmF5cyIsInByb3RvJDEiLCJnZXQkMSIsImluZGV4IiwiZmllbGQiLCJzZXR0ZXIiLCJsaXN0TW9udGhzSW1wbCIsIm91dCIsImxpc3RXZWVrZGF5c0ltcGwiLCJsb2NhbGVTb3J0ZWQiLCJzaGlmdCIsIl9jYWxlbmRhciIsIl9sb25nRGF0ZUZvcm1hdCIsImZvcm1hdFVwcGVyIiwidG9VcHBlckNhc2UiLCJ0b2siLCJfaW52YWxpZERhdGUiLCJfb3JkaW5hbCIsImlzRnV0dXJlIiwiX3JlbGF0aXZlVGltZSIsInBhc3RGdXR1cmUiLCJfZXJhcyIsImlzRm9ybWF0IiwiX21vbnRoc1Nob3J0IiwiX21vbnRoc1BhcnNlRXhhY3QiLCJmaXJzdERheU9mWWVhciIsImZpcnN0RGF5T2ZXZWVrIiwiX3dlZWtkYXlzIiwiX3dlZWtkYXlzTWluIiwiX3dlZWtkYXlzU2hvcnQiLCJfd2Vla2RheXNQYXJzZUV4YWN0IiwiX2Z1bGxXZWVrZGF5c1BhcnNlIiwiY2hhckF0IiwiaXNMb3dlciIsImxhbmdEYXRhIiwibWF0aEFicyIsImFkZFN1YnRyYWN0JDEiLCJhYnNDZWlsIiwiZGF5c1RvTW9udGhzIiwibW9udGhzVG9EYXlzIiwibWFrZUFzIiwiYWxpYXMiLCJhcyIsImFzTWlsbGlzZWNvbmRzIiwiYXNTZWNvbmRzIiwiYXNNaW51dGVzIiwiYXNIb3VycyIsImFzRGF5cyIsImFzV2Vla3MiLCJhc01vbnRocyIsImFzUXVhcnRlcnMiLCJhc1llYXJzIiwibWFrZUdldHRlciIsInRocmVzaG9sZHMiLCJzdWJzdGl0dXRlVGltZUFnbyIsImFicyQxIiwidG9JU09TdHJpbmckMSIsInRvdGFsU2lnbiIsInltU2lnbiIsImRheXNTaWduIiwiaG1zU2lnbiIsInRvdGFsIiwidG9GaXhlZCIsInByb3RvJDIiLCJtb250aHNGcm9tRGF5cyIsImFyZ1dpdGhTdWZmaXgiLCJhcmdUaHJlc2hvbGRzIiwid2l0aFN1ZmZpeCIsInRoIiwiYXNzaWduIiwicG9zTmVnRHVyYXRpb24iLCJyZWxhdGl2ZVRpbWUkMSIsInRvSXNvU3RyaW5nIiwidmVyc2lvbiIsInVwZGF0ZUxvY2FsZSIsInRtcExvY2FsZSIsInJlbGF0aXZlVGltZVJvdW5kaW5nIiwicm91bmRpbmdGdW5jdGlvbiIsInJlbGF0aXZlVGltZVRocmVzaG9sZCIsInRocmVzaG9sZCIsImxpbWl0IiwibXlNb21lbnQiLCJIVE1MNV9GTVQiLCJEQVRFVElNRV9MT0NBTCIsIkRBVEVUSU1FX0xPQ0FMX1NFQ09ORFMiLCJEQVRFVElNRV9MT0NBTF9NUyIsIkRBVEUiLCJUSU1FIiwiVElNRV9TRUNPTkRTIiwiVElNRV9NUyIsIldFRUsiLCJNT05USCIsImZhY3RvcnkiLCJfZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImNoZWNrRENFIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwiZXJyIiwiZXJyb3IiLCJfZXh0ZW5kcyIsIl90eXBlb2YiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnJheVdpdGhIb2xlcyIsIl9zIiwiX2UiLCJfYXJyIiwiX24iLCJkb25lIiwidW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJub25JdGVyYWJsZVJlc3QiLCJfY3VycnkyIiwiZjIiLCJfYiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsImNhY2hlIiwiaGFzIiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVzYyIsIl9hc3NpZ24iLCJfYXNzaWduMiIsIl9jdXJyeTEiLCJmMSIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnJheUxpa2VUb0FycmF5IiwiaXRlcmFibGVUb0FycmF5IiwiX3R5cGVvZjIiLCJfdHlwZW9mMyIsInNlbGYiLCJSZWZlcmVuY2VFcnJvciIsIl9fZXhwb3J0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJzb3VyY2VLZXlzIiwic291cmNlU3ltYm9sS2V5cyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiX3NldFByb3RvdHlwZU9mMiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY3JlYXRlMiIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsIl9fcHJvdG9fXyIsIktleUNvZGUiLCJNQUNfRU5URVIiLCJCQUNLU1BBQ0UiLCJUQUIiLCJOVU1fQ0VOVEVSIiwiRU5URVIiLCJTSElGVCIsIkNUUkwiLCJBTFQiLCJQQVVTRSIsIkNBUFNfTE9DSyIsIkVTQyIsIlNQQUNFIiwiUEFHRV9VUCIsIlBBR0VfRE9XTiIsIkVORCIsIkhPTUUiLCJMRUZUIiwiVVAiLCJSSUdIVCIsIkRPV04iLCJQUklOVF9TQ1JFRU4iLCJJTlNFUlQiLCJERUxFVEUiLCJaRVJPIiwiT05FIiwiVFdPIiwiVEhSRUUiLCJGT1VSIiwiRklWRSIsIlNJWCIsIlNFVkVOIiwiRUlHSFQiLCJOSU5FIiwiUVVFU1RJT05fTUFSSyIsIkEiLCJCIiwiQyIsIkQiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJYIiwiWSIsIloiLCJNRVRBIiwiV0lOX0tFWV9SSUdIVCIsIkNPTlRFWFRfTUVOVSIsIk5VTV9aRVJPIiwiTlVNX09ORSIsIk5VTV9UV08iLCJOVU1fVEhSRUUiLCJOVU1fRk9VUiIsIk5VTV9GSVZFIiwiTlVNX1NJWCIsIk5VTV9TRVZFTiIsIk5VTV9FSUdIVCIsIk5VTV9OSU5FIiwiTlVNX01VTFRJUExZIiwiTlVNX1BMVVMiLCJOVU1fTUlOVVMiLCJOVU1fUEVSSU9EIiwiTlVNX0RJVklTSU9OIiwiRjEiLCJGMiIsIkYzIiwiRjQiLCJGNSIsIkY2IiwiRjciLCJGOCIsIkY5IiwiRjEwIiwiRjExIiwiRjEyIiwiTlVNTE9DSyIsIlNFTUlDT0xPTiIsIkRBU0giLCJFUVVBTFMiLCJDT01NQSIsIlBFUklPRCIsIlNMQVNIIiwiQVBPU1RST1BIRSIsIlNJTkdMRV9RVU9URSIsIk9QRU5fU1FVQVJFX0JSQUNLRVQiLCJCQUNLU0xBU0giLCJDTE9TRV9TUVVBUkVfQlJBQ0tFVCIsIldJTl9LRVkiLCJNQUNfRkZfTUVUQSIsIldJTl9JTUUiLCJpc1RleHRNb2RpZnlpbmdLZXlFdmVudCIsImtleUNvZGUiLCJhbHRLZXkiLCJjdHJsS2V5IiwibWV0YUtleSIsImlzQ2hhcmFjdGVyS2V5Iiwid2luZG93IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiQm91bmRhcnlQb3NpdGlvbiIsIkV2ZW50UGhhc2UiLCJOb2RlVHlwZSIsIlBvc2l0aW9uIiwiRmlsdGVyUmVzdWx0IiwiV2hhdFRvU2hvdyIsIkhvd1RvQ29tcGFyZSIsIl9pc1BsYWNlaG9sZGVyIiwiQ2FzdF8xIiwiQ2FzdCIsIkd1YXJkXzEiLCJHdWFyZCIsIkVtcHR5U2V0XzEiLCJFbXB0eVNldCIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2dldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJnZXRQcm90b3R5cGVPZiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwiYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiX2NyZWF0ZVN1cGVyIiwiRGVyaXZlZCIsImhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0Iiwic2hhbSIsIlByb3h5IiwiQm9vbGVhbiIsIlN1cGVyIiwiTmV3VGFyZ2V0IiwiX3NldFByb3RvdHlwZU9mIiwiX2luaGVyaXRzIiwiaXRlcmFibGVUb0FycmF5TGltaXQiLCJfY29udGV4dCIsIkNvbmZpZ0NvbnN1bWVyIiwiQ29uZmlnQ29udGV4dCIsImdsb2JhbENvbmZpZyIsImRlZmF1bHRQcmVmaXhDbHMiLCJjb25maWdDb25zdW1lclByb3BzIiwiX2V4dGVuZHMyIiwiUmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9Db250ZXh0IiwiX3JjRmllbGRGb3JtIiwiX3VzZU1lbW8iLCJfbG9jYWxlUHJvdmlkZXIiLCJfTG9jYWxlUmVjZWl2ZXIiLCJfU2l6ZUNvbnRleHQiLCJfbWVzc2FnZSIsIl9ub3RpZmljYXRpb24iLCJnbG9iYWxQcmVmaXhDbHMiLCJQQVNTRURfUFJPUFMiLCJnZXRHbG9iYWxQcmVmaXhDbHMiLCJnZXRQcmVmaXhDbHMiLCJzdWZmaXhDbHMiLCJjdXN0b21pemVQcmVmaXhDbHMiLCJnZXRSb290UHJlZml4Q2xzIiwicm9vdFByZWZpeENscyIsImluY2x1ZGVzIiwiUHJvdmlkZXJDaGlsZHJlbiIsImNoaWxkcmVuIiwiY3NwIiwiYXV0b0luc2VydFNwYWNlSW5CdXR0b24iLCJmb3JtIiwiY29tcG9uZW50U2l6ZSIsInNwYWNlIiwidmlydHVhbCIsImRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aCIsImxlZ2FjeUxvY2FsZSIsInBhcmVudENvbnRleHQiLCJpY29uUHJlZml4Q2xzIiwidXNlQ2FsbGJhY2siLCJwcmVmaXhDbHMiLCJtZXJnZWRQcmVmaXhDbHMiLCJwcm9wTmFtZSIsInByb3BWYWx1ZSIsIm1lbW9lZENvbmZpZyIsInByZXZDb25maWciLCJjdXJyZW50Q29uZmlnIiwicHJldktleXMiLCJjdXJyZW50S2V5cyIsIm1lbW9JY29uQ29udGV4dFZhbHVlIiwidXNlTWVtbyIsImNoaWxkTm9kZSIsInZhbGlkYXRlTWVzc2FnZXMiLCJGb3JtIiwiZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXMiLCJjcmVhdGVFbGVtZW50IiwiRm9ybVByb3ZpZGVyIiwiX0FOVF9NQVJLX18iLCJBTlRfTUFSSyIsIlByb3ZpZGVyIiwiU2l6ZUNvbnRleHRQcm92aWRlciIsInNpemUiLCJDb25maWdQcm92aWRlciIsInVzZUVmZmVjdCIsInJ0bCIsIl8iLCJfXyIsImNvbnRleHQiLCJTaXplQ29udGV4dCIsInBhcmFtcyIsIl9kZWZhdWx0IiwiRml4ZWRTaXplU2V0XzEiLCJGaXhlZFNpemVTZXQiLCJPYmplY3RDYWNoZV8xIiwiT2JqZWN0Q2FjaGUiLCJDb21wYXJlQ2FjaGVfMSIsIkNvbXBhcmVDYWNoZSIsIkxhenlfMSIsImZvckVhY2hPYmplY3QiLCJ0aGlzQXJnIiwiaXNNYXAiLCJ0eXBlIiwiaXNTZXQiLCJTZXQiLCJNYXAiLCJMYXp5IiwiYXBwbHlNaXhpbiIsImJhc2VDbGFzcyIsIm1peGluQ2xhc3MiLCJvdmVycmlkZXMiLCJvcmdQcm9wRGVzYyIsInByb3BEZXNjIiwiYXBwbHlEZWZhdWx0cyIsIm92ZXJ3cml0ZSIsImZvckVhY2hBcnJheSIsImFycmF5TGVuZ3RoIiwib2JqZWN0TGVuZ3RoIiwiZ2V0T2JqZWN0VmFsdWUiLCJyZW1vdmVPYmplY3RWYWx1ZSIsImRlbGV0ZSIsImlzQm9vbGVhbiIsImlzRW1wdHkiLCJpc1BsYWluT2JqZWN0IiwiY3RvciIsImlzSXRlcmFibGUiLCJnZXRWYWx1ZSIsInV0ZjhFbmNvZGUiLCJieXRlcyIsIlVpbnQ4QXJyYXkiLCJieXRlSW5kZXgiLCJjaGFyIiwiY2hhckNvZGVBdCIsImMyIiwic3ViYXJyYXkiLCJ1dGY4RGVjb2RlIiwiZnJvbUNoYXJDb2RlIiwid2FybmVkIiwid2FybmluZyIsInZhbGlkIiwibWVzc2FnZSIsIm5vdGUiLCJtZXRob2QiLCJub3RlT25jZSIsIl9zbGljZWRUb0FycmF5MiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiX2NsYXNzbmFtZXMiLCJfSWNvbkJhc2UiLCJfdHdvVG9uZVByaW1hcnlDb2xvciIsIl91dGlscyIsInNldFR3b1RvbmVDb2xvciIsIkljb24iLCJmb3J3YXJkUmVmIiwicmVmIiwiX2NsYXNzTmFtZXMiLCJjbGFzc05hbWUiLCJpY29uIiwic3BpbiIsInJvdGF0ZSIsInRhYkluZGV4Iiwib25DbGljayIsInR3b1RvbmVDb2xvciIsInJlc3RQcm9wcyIsIl9SZWFjdCR1c2VDb250ZXh0JHByZSIsInVzZUNvbnRleHQiLCJjbGFzc1N0cmluZyIsImljb25UYWJJbmRleCIsInN2Z1N0eWxlIiwibXNUcmFuc2Zvcm0iLCJ0cmFuc2Zvcm0iLCJfbm9ybWFsaXplVHdvVG9uZUNvbG8iLCJub3JtYWxpemVUd29Ub25lQ29sb3JzIiwiX25vcm1hbGl6ZVR3b1RvbmVDb2xvMiIsInByaW1hcnlDb2xvciIsInNlY29uZGFyeUNvbG9yIiwicm9sZSIsInN0eWxlIiwiZGlzcGxheU5hbWUiLCJnZXRUd29Ub25lQ29sb3IiLCJ1dGlsXzEiLCJBYm9ydENvbnRyb2xsZXJJbXBsXzEiLCJBYm9ydENvbnRyb2xsZXIiLCJBYm9ydENvbnRyb2xsZXJJbXBsIiwiQWJvcnRTaWduYWxJbXBsXzEiLCJBYm9ydFNpZ25hbCIsIkFib3J0U2lnbmFsSW1wbCIsIkFic3RyYWN0UmFuZ2VJbXBsXzEiLCJBYnN0cmFjdFJhbmdlIiwiQWJzdHJhY3RSYW5nZUltcGwiLCJBdHRySW1wbF8xIiwiQXR0ciIsIkF0dHJJbXBsIiwiQ0RBVEFTZWN0aW9uSW1wbF8xIiwiQ0RBVEFTZWN0aW9uIiwiQ0RBVEFTZWN0aW9uSW1wbCIsIkNoYXJhY3RlckRhdGFJbXBsXzEiLCJDaGFyYWN0ZXJEYXRhIiwiQ2hhcmFjdGVyRGF0YUltcGwiLCJDaGlsZE5vZGVJbXBsXzEiLCJDb21tZW50SW1wbF8xIiwiQ29tbWVudCIsIkNvbW1lbnRJbXBsIiwiQ3VzdG9tRXZlbnRJbXBsXzEiLCJDdXN0b21FdmVudCIsIkN1c3RvbUV2ZW50SW1wbCIsIkRvY3VtZW50RnJhZ21lbnRJbXBsXzEiLCJEb2N1bWVudEZyYWdtZW50IiwiRG9jdW1lbnRGcmFnbWVudEltcGwiLCJEb2N1bWVudEltcGxfMSIsIkRvY3VtZW50IiwiRG9jdW1lbnRJbXBsIiwiRG9jdW1lbnRPclNoYWRvd1Jvb3RJbXBsXzEiLCJEb2N1bWVudFR5cGVJbXBsXzEiLCJEb2N1bWVudFR5cGUiLCJEb2N1bWVudFR5cGVJbXBsIiwiRE9NSW1wbF8xIiwiZG9tIiwiRE9NSW1wbGVtZW50YXRpb25JbXBsXzEiLCJET01JbXBsZW1lbnRhdGlvbiIsIkRPTUltcGxlbWVudGF0aW9uSW1wbCIsIkRPTVRva2VuTGlzdEltcGxfMSIsIkRPTVRva2VuTGlzdCIsIkRPTVRva2VuTGlzdEltcGwiLCJFbGVtZW50SW1wbF8xIiwiRWxlbWVudCIsIkVsZW1lbnRJbXBsIiwiRXZlbnRJbXBsXzEiLCJFdmVudCIsIkV2ZW50SW1wbCIsIkV2ZW50VGFyZ2V0SW1wbF8xIiwiRXZlbnRUYXJnZXQiLCJFdmVudFRhcmdldEltcGwiLCJIVE1MQ29sbGVjdGlvbkltcGxfMSIsIkhUTUxDb2xsZWN0aW9uIiwiSFRNTENvbGxlY3Rpb25JbXBsIiwiTXV0YXRpb25PYnNlcnZlckltcGxfMSIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJNdXRhdGlvbk9ic2VydmVySW1wbCIsIk11dGF0aW9uUmVjb3JkSW1wbF8xIiwiTXV0YXRpb25SZWNvcmQiLCJNdXRhdGlvblJlY29yZEltcGwiLCJOYW1lZE5vZGVNYXBJbXBsXzEiLCJOYW1lZE5vZGVNYXAiLCJOYW1lZE5vZGVNYXBJbXBsIiwiTm9kZUZpbHRlckltcGxfMSIsIk5vZGVGaWx0ZXIiLCJOb2RlRmlsdGVySW1wbCIsIk5vZGVJbXBsXzEiLCJOb2RlIiwiTm9kZUltcGwiLCJOb2RlSXRlcmF0b3JJbXBsXzEiLCJOb2RlSXRlcmF0b3IiLCJOb2RlSXRlcmF0b3JJbXBsIiwiTm9kZUxpc3RJbXBsXzEiLCJOb2RlTGlzdCIsIk5vZGVMaXN0SW1wbCIsIk5vZGVMaXN0U3RhdGljSW1wbF8xIiwiTm9kZUxpc3RTdGF0aWMiLCJOb2RlTGlzdFN0YXRpY0ltcGwiLCJOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGVJbXBsXzEiLCJOb25FbGVtZW50UGFyZW50Tm9kZUltcGxfMSIsIlBhcmVudE5vZGVJbXBsXzEiLCJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsXzEiLCJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLCJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsIiwiUmFuZ2VJbXBsXzEiLCJSYW5nZSIsIlJhbmdlSW1wbCIsIlNoYWRvd1Jvb3RJbXBsXzEiLCJTaGFkb3dSb290IiwiU2hhZG93Um9vdEltcGwiLCJTbG90YWJsZUltcGxfMSIsIlN0YXRpY1JhbmdlSW1wbF8xIiwiU3RhdGljUmFuZ2UiLCJTdGF0aWNSYW5nZUltcGwiLCJUZXh0SW1wbF8xIiwiVGV4dCIsIlRleHRJbXBsIiwiVHJhdmVyc2VySW1wbF8xIiwiVHJhdmVyc2VyIiwiVHJhdmVyc2VySW1wbCIsIlRyZWVXYWxrZXJJbXBsXzEiLCJUcmVlV2Fsa2VyIiwiVHJlZVdhbGtlckltcGwiLCJXaW5kb3dJbXBsXzEiLCJXaW5kb3ciLCJXaW5kb3dJbXBsIiwiWE1MRG9jdW1lbnRJbXBsXzEiLCJYTUxEb2N1bWVudCIsIlhNTERvY3VtZW50SW1wbCIsIkNoaWxkTm9kZUltcGwiLCJEb2N1bWVudE9yU2hhZG93Um9vdEltcGwiLCJOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGVJbXBsIiwiTm9uRWxlbWVudFBhcmVudE5vZGVJbXBsIiwiUGFyZW50Tm9kZUltcGwiLCJTbG90YWJsZUltcGwiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiRE9NRXhjZXB0aW9uIiwic3VwZXIiLCJET01TdHJpbmdTaXplRXJyb3IiLCJXcm9uZ0RvY3VtZW50RXJyb3IiLCJOb0RhdGFBbGxvd2VkRXJyb3IiLCJOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciIsIk5vdFN1cHBvcnRlZEVycm9yIiwiSW5Vc2VBdHRyaWJ1dGVFcnJvciIsIkludmFsaWRTdGF0ZUVycm9yIiwiSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yIiwiTmFtZXNwYWNlRXJyb3IiLCJJbnZhbGlkQWNjZXNzRXJyb3IiLCJWYWxpZGF0aW9uRXJyb3IiLCJUeXBlTWlzbWF0Y2hFcnJvciIsIlNlY3VyaXR5RXJyb3IiLCJOZXR3b3JrRXJyb3IiLCJBYm9ydEVycm9yIiwiVVJMTWlzbWF0Y2hFcnJvciIsIlF1b3RhRXhjZWVkZWRFcnJvciIsIlRpbWVvdXRFcnJvciIsIkludmFsaWROb2RlVHlwZUVycm9yIiwiRGF0YUNsb25lRXJyb3IiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiSGllcmFyY2h5UmVxdWVzdEVycm9yIiwiTm90Rm91bmRFcnJvciIsIkluZGV4U2l6ZUVycm9yIiwiU3ludGF4RXJyb3IiLCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3IiLCJjb252ZXJ0RmllbGRzRXJyb3IiLCJfbGVuIiwiX2tleSIsImYiLCJzdHIiLCJmb3JtYXRSZWdFeHAiLCJOdW1iZXIiLCJKU09OIiwic3RyaW5naWZ5IiwiaXNFbXB0eVZhbHVlIiwiaXNOYXRpdmVTdHJpbmdUeXBlIiwiaXNFbXB0eU9iamVjdCIsImFzeW5jTWFwIiwib2JqQXJyIiwib3B0aW9uIiwiZmlyc3QiLCJhc3luY1NlcmlhbEFycmF5IiwiZmxhdHRlbk9iakFyciIsImZpcnN0RmllbGRzIiwib2JqQXJyS2V5cyIsIm9iakFyckxlbmd0aCIsInJlc3VsdHMiLCJwZW5kaW5nIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnJvcnMiLCJmaWVsZHMiLCJhcnJMZW5ndGgiLCJjb3VudCIsImFzeW5jUGFyYWxsZWxBcnJheSIsImNvbXBsZW1lbnRFcnJvciIsInJ1bGUiLCJvZSIsImZ1bGxGaWVsZCIsImRlZXBNZXJnZSIsIm9yaWdpbmFsIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIl9SZWFjdCRDb21wb25lbnQiLCJfc3VwZXIiLCJfdGhpcyIsIl90aGlzJHByb3BzJHByZWZpeENscyIsInJlbmRlclByb3ZpZGVyIiwiX3RoaXMkcHJvcHMiLCJnZXRQb3B1cENvbnRhaW5lciIsInJlbmRlckVtcHR5IiwicGFnZUhlYWRlciIsIl90aGlzMiIsIkNvbXBvbmVudCIsIl9faW1wb3J0U3RhciIsIm1vZCIsImJhc2U2NCIsImJ5dGUiLCJieXRlU2VxdWVuY2UiLCJjb2RlUG9pbnQiLCJqc29uIiwibGlzdCIsIm5hbWVzcGFjZSIsInF1ZXVlIiwiaWRsX2RlZmluZUNvbnN0IiwiY29tcG9uZW50V2lsbE1vdW50Iiwic3RhdGUiLCJnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMiLCJzZXRTdGF0ZSIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJuZXh0UHJvcHMiLCJwcmV2U3RhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwibmV4dFN0YXRlIiwicHJldlByb3BzIiwiX19yZWFjdEludGVybmFsU25hcHNob3RGbGFnIiwiX19yZWFjdEludGVybmFsU25hcHNob3QiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsInBvbHlmaWxsIiwiaXNSZWFjdENvbXBvbmVudCIsImZvdW5kV2lsbE1vdW50TmFtZSIsImZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUiLCJmb3VuZFdpbGxVcGRhdGVOYW1lIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCIsIlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwiVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUiLCJjb21wb25lbnROYW1lIiwibmV3QXBpTmFtZSIsImNvbXBvbmVudERpZFVwZGF0ZSIsIm1heWJlU25hcHNob3QiLCJzbmFwc2hvdCIsIl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmciLCJfcmVxdWlyZWQyIiwiX3doaXRlc3BhY2UyIiwiX3R5cGUyIiwiX3JhbmdlMiIsIl9lbnVtMiIsIl9wYXR0ZXJuMiIsInJlcXVpcmVkIiwid2hpdGVzcGFjZSIsInJhbmdlIiwicGF0dGVybiIsIl9hcml0eSIsIl9jdXJyeU4iLCJyZWNlaXZlZCIsImNvbWJpbmVkIiwiYXJnc0lkeCIsImxlZnQiLCJjb21iaW5lZElkeCIsImFsbEljb25zIiwiX2ljb25zUmVhY3QiLCJfSWNvbkZvbnQiLCJfd2FybmluZyIsIl9hcnJheUxpa2VUb0FycmF5IiwiX19yZXN0IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiaXRlciIsIl9pdGVyYWJsZVRvQXJyYXkiLCJtaW5MZW4iLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJkYW5nZXJvdXNUaGVtZSIsImRlZmF1bHRUaGVtZSIsImNvbXBvbmVudCIsInZpZXdCb3giLCJ0aGVtZSIsInN2Z0NsYXNzU3RyaW5nIiwiaW5uZXJTdmdQcm9wcyIsInN2Z0Jhc2VQcm9wcyIsIkNoaWxkcmVuIiwiaXNWYWxpZEVsZW1lbnQiLCJvbmx5IiwiY29tcHV0ZWRUeXBlIiwidGhlbWVJbk5hbWUiLCJnZXRUaGVtZUZyb21UeXBlTmFtZSIsIndpdGhUaGVtZVN1ZmZpeCIsInJlbW92ZVR5cGVUaGVtZSIsInJlbmRlcklubmVyTm9kZSIsImNyZWF0ZUZyb21JY29uZm9udENOIiwiaW50ZXJmYWNlc18xIiwiX2dldE5leHREZXNjZW5kYW50Tm9kZSIsInJvb3QiLCJub2RlIiwic2hhZG93IiwiaXNFbGVtZW50Tm9kZSIsImlzU2hhZG93Um9vdCIsInNoYWRvd1Jvb3QiLCJfZmlyc3RDaGlsZCIsIl9uZXh0U2libGluZyIsInBhcmVudCIsIl9wYXJlbnQiLCJfZW1wdHlJdGVyYXRvciIsInRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZSIsImZpcnN0Tm9kZSIsInRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlIiwiY3VycmVudE5vZGUiLCJuZXh0Tm9kZSIsInRyZWVfZ2V0RGVzY2VuZGFudE5vZGVzIiwiX2NoaWxkcmVuIiwidHJlZV9nZXRGaXJzdEFuY2VzdG9yTm9kZSIsInRyZWVfZ2V0TmV4dEFuY2VzdG9yTm9kZSIsInRyZWVfbm9kZUxlbmd0aCIsImlzRG9jdW1lbnRUeXBlTm9kZSIsImlzQ2hhcmFjdGVyRGF0YU5vZGUiLCJ0cmVlX3Jvb3ROb2RlIiwiX2hvc3QiLCJ0cmVlX2lzQW5jZXN0b3JPZiIsImFuY2VzdG9yIiwidHJlZV90cmVlUG9zaXRpb24iLCJ0cmVlX2dldERlc2NlbmRhbnRFbGVtZW50cyIsIml0IiwidHJlZV9nZXRTaWJsaW5nTm9kZXMiLCJ0cmVlX2dldEFuY2VzdG9yTm9kZXMiLCJ0cmVlX2dldENvbW1vbkFuY2VzdG9yIiwibm9kZUEiLCJub2RlQiIsInBhcmVudHNBIiwicGFyZW50c0IiLCJwQSIsInBCIiwicGFyZW50MSIsInRyZWVfZ2V0Rm9sbG93aW5nTm9kZSIsInRyZWVfZ2V0UHJlY2VkaW5nTm9kZSIsIl9wcmV2aW91c1NpYmxpbmciLCJfbGFzdENoaWxkIiwidHJlZV9pc0NvbnN0cmFpbmVkIiwiX25vZGVUeXBlIiwiaGFzRG9jVHlwZSIsImhhc0VsZW1lbnQiLCJDRGF0YSIsImhhc0NoaWxkTm9kZXMiLCJ0cmVlX2lzRW1wdHkiLCJ0cmVlX2lzRGVzY2VuZGFudE9mIiwiY2hpbGQiLCJ0cmVlX2lzSG9zdEluY2x1ZGluZ0FuY2VzdG9yT2YiLCJpc0RvY3VtZW50RnJhZ21lbnROb2RlIiwidHJlZV9pc1NpYmxpbmdPZiIsInRyZWVfaXNQcmVjZWRpbmciLCJub2RlUG9zIiwib3RoZXJQb3MiLCJ0cmVlX2lzRm9sbG93aW5nIiwidHJlZV9pc1BhcmVudE9mIiwidHJlZV9pc0NoaWxkT2YiLCJ0cmVlX3ByZXZpb3VzU2libGluZyIsInRyZWVfbmV4dFNpYmxpbmciLCJ0cmVlX2ZpcnN0Q2hpbGQiLCJ0cmVlX2xhc3RDaGlsZCIsInRyZWVfaW5kZXgiLCJ0cmVlX3JldGFyZ2V0IiwiaXNOb2RlIiwicm9vdE9mQSIsImhvc3QiLCJmaWxsUmVmIiwiY3VycmVudCIsImNvbXBvc2VSZWYiLCJyZWZzIiwiUmVhY3RSZXNpemVPYnNlcnZlciIsInJlc2l6ZU9ic2VydmVyIiwiY3VycmVudEVsZW1lbnQiLCJ3aWR0aCIsImhlaWdodCIsIm9mZnNldEhlaWdodCIsIm9mZnNldFdpZHRoIiwib25SZXNpemUiLCJlbnRyaWVzIiwiX3RhcmdldCRnZXRCb3VuZGluZ0NsIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZml4ZWRXaWR0aCIsImZpeGVkSGVpZ2h0IiwidGhlbiIsInNldENoaWxkTm9kZSIsIm9uQ29tcG9uZW50VXBkYXRlZCIsImRlc3Ryb3lPYnNlcnZlciIsImRpc2FibGVkIiwiZWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZmluZERPTU5vZGUiLCJvYnNlcnZlIiwiZGlzY29ubmVjdCIsImNoaWxkTm9kZXMiLCJrZWVwRW1wdHkiLCJub2RlT3JDb21wb25lbnQiLCJfdHlwZSRwcm90b3R5cGUiLCJfbm9kZU9yQ29tcG9uZW50JHByb3QiLCJyZW5kZXIiLCJzdXBwb3J0UmVmIiwiYWRkRXZlbnRMaXN0ZW5lcldyYXAiLCJldmVudFR5cGUiLCJjYiIsInVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyYWYiLCJzZXRUaW1lb3V0IiwiY2FmIiwibnVtIiwiY2xlYXJUaW1lb3V0IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiaGFuZGxlIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJyYWZVVUlEIiwicmFmSWRzIiwiY2xlYW51cCIsImlkIiwid3JhcHBlclJhZiIsInRpbWVzIiwiY2FsbFJlZiIsImxlZnRUaW1lcyIsInJlYWxJZCIsImNhbmNlbCIsImFycmF5V2l0aG91dEhvbGVzIiwibm9uSXRlcmFibGVTcHJlYWQiLCJvYmpBIiwib2JqQiIsImNvbXBhcmUiLCJjb21wYXJlQ29udGV4dCIsImtleXNBIiwia2V5c0IiLCJiSGFzT3duUHJvcGVydHkiLCJpZHgiLCJ2YWx1ZUEiLCJ2YWx1ZUIiLCJjYW5Vc2VEb20iLCJkb2N1bWVudCIsIm1ha2VQcmVmaXhNYXAiLCJzdHlsZVByb3AiLCJldmVudE5hbWUiLCJwcmVmaXhlcyIsImRvbVN1cHBvcnQiLCJ3aW4iLCJ2ZW5kb3JQcmVmaXhlcyIsImFuaW1hdGlvbmVuZCIsInRyYW5zaXRpb25lbmQiLCJhbmltYXRpb24iLCJ0cmFuc2l0aW9uIiwiX2RvY3VtZW50JGNyZWF0ZUVsZW1lIiwicHJlZml4ZWRFdmVudE5hbWVzIiwiZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUiLCJwcmVmaXhNYXAiLCJzdHlsZVByb3BMaXN0IiwiaW50ZXJuYWxBbmltYXRpb25FbmROYW1lIiwiaW50ZXJuYWxUcmFuc2l0aW9uRW5kTmFtZSIsInN1cHBvcnRUcmFuc2l0aW9uIiwiYW5pbWF0aW9uRW5kTmFtZSIsInRyYW5zaXRpb25FbmROYW1lIiwiZ2V0VHJhbnNpdGlvbk5hbWUiLCJ0cmFuc2l0aW9uTmFtZSIsInRyYW5zaXRpb25UeXBlIiwidXNlTW91bnRTdGF0dXMiLCJkZWZhdWx0VmFsdWUiLCJkZXN0cm95UmVmIiwiX3VzZVN0YXRlMiIsInNldFZhbCIsIlNURVBfUVVFVUUiLCJpc0FjdGl2ZSIsInN0ZXAiLCJfUmVhY3QkdXNlU3RhdGUyIiwic2V0U3RlcCIsIl91c2VOZXh0RnJhbWUyIiwibmV4dEZyYW1lUmVmIiwiY2FuY2VsTmV4dEZyYW1lIiwibmV4dEZyYW1lIiwiZGVsYXkiLCJuZXh0RnJhbWVJZCIsImlzQ2FuY2VsZWQiLCJ1c2VOZXh0RnJhbWUiLCJuZXh0U3RlcCIsImluZm8iLCJkb05leHQiLCJzdGF0dXMiLCJ1c2VTdGF0dXMiLCJzdXBwb3J0TW90aW9uIiwidmlzaWJsZSIsImdldEVsZW1lbnQiLCJfcmVmIiwiX3JlZiRtb3Rpb25FbnRlciIsIm1vdGlvbkVudGVyIiwiX3JlZiRtb3Rpb25BcHBlYXIiLCJtb3Rpb25BcHBlYXIiLCJfcmVmJG1vdGlvbkxlYXZlIiwibW90aW9uTGVhdmUiLCJtb3Rpb25EZWFkbGluZSIsIm1vdGlvbkxlYXZlSW1tZWRpYXRlbHkiLCJvbkFwcGVhclByZXBhcmUiLCJvbkVudGVyUHJlcGFyZSIsIm9uTGVhdmVQcmVwYXJlIiwib25BcHBlYXJTdGFydCIsIm9uRW50ZXJTdGFydCIsIm9uTGVhdmVTdGFydCIsIm9uQXBwZWFyQWN0aXZlIiwib25FbnRlckFjdGl2ZSIsIm9uTGVhdmVBY3RpdmUiLCJvbkFwcGVhckVuZCIsIm9uRW50ZXJFbmQiLCJvbkxlYXZlRW5kIiwib25WaXNpYmxlQ2hhbmdlZCIsImFzeW5jVmlzaWJsZSIsInNldEFzeW5jVmlzaWJsZSIsIl91c2VTdGF0ZTQiLCJzZXRTdGF0dXMiLCJfdXNlU3RhdGU2Iiwic2V0U3R5bGUiLCJtb3VudGVkUmVmIiwiZGVhZGxpbmVSZWYiLCJkZXN0cm95ZWRSZWYiLCJjYWNoZUVsZW1lbnRSZWYiLCJnZXREb21FbGVtZW50IiwiYWN0aXZlUmVmIiwib25JbnRlcm5hbE1vdGlvbkVuZCIsImV2ZW50IiwiY2FuRW5kIiwiZGVhZGxpbmUiLCJwYXRjaE1vdGlvbkV2ZW50cyIsImNhbGxiYWNrUmVmIiwicmVtb3ZlTW90aW9uRXZlbnRzIiwidXNlRG9tTW90aW9uRXZlbnRzIiwiZXZlbnRIYW5kbGVycyIsIl9yZWYyIiwiX3JlZjMiLCJfcmVmNCIsIl91c2VTdGVwUXVldWUyIiwidXNlU3RlcFF1ZXVlIiwibmV3U3RlcCIsIm9uUHJlcGFyZSIsIl9ldmVudEhhbmRsZXJzJHN0ZXAiLCJzdGFydFN0ZXAiLCJhY3RpdmUiLCJuZXh0U3RhdHVzIiwiaXNNb3VudGVkIiwibWVyZ2VkU3R5bGUiLCJEb21XcmFwcGVyIiwidHJhbnNpdGlvblN1cHBvcnQiLCJpc1N1cHBvcnRUcmFuc2l0aW9uIiwibW90aW9uTmFtZSIsIkNTU01vdGlvbiIsIl9wcm9wcyR2aXNpYmxlIiwiX3Byb3BzJHJlbW92ZU9uTGVhdmUiLCJyZW1vdmVPbkxlYXZlIiwiZm9yY2VSZW5kZXIiLCJsZWF2ZWRDbGFzc05hbWUiLCJldmVudFByb3BzIiwibm9kZVJlZiIsIndyYXBwZXJOb2RlUmVmIiwiX3VzZVN0YXR1czIiLCJzdGF0dXNTdGVwIiwic3RhdHVzU3R5bGUiLCJtZXJnZWRWaXNpYmxlIiwicmVuZGVyZWRSZWYiLCJvcmlnaW5SZWYiLCJtb3Rpb25DaGlsZHJlbiIsInNldE5vZGVSZWYiLCJtZXJnZWRQcm9wcyIsInN0YXR1c1N1ZmZpeCIsImRpc3BsYXkiLCJ3cmFwS2V5VG9PYmplY3QiLCJrZXlPYmoiLCJwYXJzZUtleXMiLCJkaWZmS2V5cyIsImN1cnJlbnRJbmRleCIsImN1cnJlbnRMZW4iLCJwcmV2S2V5T2JqZWN0cyIsImN1cnJlbnRLZXlPYmplY3RzIiwiaGl0IiwiY3VycmVudEtleU9iaiIsImR1cGxpY2F0ZWRLZXlzIiwibWF0Y2hLZXkiLCJNT1RJT05fUFJPUF9OQU1FUyIsIkNTU01vdGlvbkxpc3QiLCJrZXlFbnRpdGllcyIsInJlbW92ZUtleSIsImVudGl0eSIsIl9vblZpc2libGVDaGFuZ2VkIiwibW90aW9uUHJvcHMiLCJjaGFuZ2VkVmlzaWJsZSIsInBhcnNlZEtleU9iamVjdHMiLCJwcmV2RW50aXR5IiwiZmluZCIsIl9yZWY1IiwiZGVmYXVsdFByb3BzIiwiZyIsImNvcmUiLCJfX2UiLCJzdG9yZSIsInVpZCIsIlVTRV9TWU1CT0wiLCJyZXNldFdhcm5lZCIsImNyZWF0ZUNvbnRleHQiLCJmcmVlR2xvYmFsIiwiZnJlZVNlbGYiLCJhMCIsImExIiwiYTIiLCJhMyIsImE0IiwiYTUiLCJhNiIsImE3IiwiYTgiLCJhOSIsImdsb2JhbCIsInZlbmRvcnMiLCJsYXN0IiwiX25vdyIsImNwIiwiY2FuY2VsbGVkIiwiTk9USElORyIsIkRSQUZUQUJMRSIsIkRSQUZUX1NUQVRFIiwiaXNEcmFmdCIsImlzRHJhZnRhYmxlIiwic2hhbGxvd0NvcHkiLCJpbnZva2VHZXR0ZXJzIiwiZWFjaCIsImlzRW51bWVyYWJsZSIsInRoaW5nIiwiaXMiLCJJbW1lclNjb3BlIiwiZHJhZnRzIiwiY2FuQXV0b0ZyZWV6ZSIsInBhdGNoZXMiLCJyZXZva2UiLCJkcmFmdCIsInVzZVBhdGNoZXMiLCJwYXRjaExpc3RlbmVyIiwiaW52ZXJzZVBhdGNoZXMiLCJsZWF2ZSIsImVudGVyIiwiZGVzY3JpcHRvcnMiLCJjcmVhdGVQcm94eSIsImNsb25lUG90ZW50aWFsRHJhZnQiLCJhc3NlcnRVbnJldm9rZWQiLCJwZWVrIiwiZmluYWxpemluZyIsInByZXBhcmVDb3B5IiwiY29weSIsImFzc2lnbmVkIiwibW9kaWZpZWQiLCJtYXJrQ2hhbmdlZCIsInByb3h5UHJvcGVydHkiLCJzY29wZSIsImZpbmFsaXplZCIsInJldm9rZSQxIiwicmV2b2tlZCIsIm1hcmtDaGFuZ2VzU3dlZXAiLCJoYXNBcnJheUNoYW5nZXMiLCJoYXNPYmplY3RDaGFuZ2VzIiwiYmFzZVZhbHVlIiwic3RhdGUkMSIsImxlZ2FjeVByb3h5IiwiZnJlZXplIiwid2lsbEZpbmFsaXplIiwiaXNSZXBsYWNlZCIsIm1hcmtDaGFuZ2VzUmVjdXJzaXZlbHkiLCJpJDEiLCJpJDIiLCJjcmVhdGVQcm94eSQxIiwicmV2b2NhYmxlIiwiYXJyYXlUcmFwcyIsIm9iamVjdFRyYXBzIiwicHJveHkiLCJzb3VyY2UkMSIsInBlZWskMSIsIm1hcmtDaGFuZ2VkJDEiLCJkZWxldGVQcm9wZXJ0eSIsIm93bmVyIiwibW9kZXJuUHJveHkiLCJnZW5lcmF0ZVBhdGNoZXMiLCJiYXNlUGF0aCIsImFzc2lnbiQxIiwiZGVsdGEiLCJzdGFydCIsImVuZCIsInBhdGgiLCJvcCIsInVzZVJlbW92ZSIsInJlcGxhY2VDb3VudCIsInBhdGgkMSIsImdlbmVyYXRlQXJyYXlQYXRjaGVzIiwiYXNzaWduZWRWYWx1ZSIsIm9yaWdWYWx1ZSIsImdlbmVyYXRlT2JqZWN0UGF0Y2hlcyIsImFwcGx5UGF0Y2hlcyIsInBhdGNoIiwic3BsaWNlIiwiY29uZmlnRGVmYXVsdHMiLCJ1c2VQcm94aWVzIiwiYXV0b0ZyZWV6ZSIsInByb2Nlc3MiLCJvbkFzc2lnbiIsIm9uRGVsZXRlIiwib25Db3B5IiwiSW1tZXIiLCJzZXRVc2VQcm94aWVzIiwicHJvZHVjZSIsInJlY2lwZSIsInRoaXMkMSIsImRlZmF1bHRCYXNlIiwiaGFzRXJyb3IiLCJwcm9jZXNzUmVzdWx0IiwiY3JlYXRlRHJhZnQiLCJpc01hbnVhbCIsImZpbmlzaERyYWZ0Iiwic2V0QXV0b0ZyZWV6ZSIsImJhc2VEcmFmdCIsImZpbmFsaXplIiwiZmluYWxpemVUcmVlIiwicm9vdFBhdGgiLCJuZWVkUGF0Y2hlcyIsImZpbmFsaXplUHJvcGVydHkiLCJpc0RyYWZ0UHJvcCIsImltbWVyIiwib2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsInBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJNYXBTaGltIiwiZ2V0SW5kZXgiLCJlbnRyeSIsImNsYXNzXzEiLCJfX2VudHJpZXNfXyIsImNsZWFyIiwiY3R4IiwiaXNCcm93c2VyIiwiZ2xvYmFsJDEiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUkMSIsInRyYW5zaXRpb25LZXlzIiwibXV0YXRpb25PYnNlcnZlclN1cHBvcnRlZCIsIlJlc2l6ZU9ic2VydmVyQ29udHJvbGxlciIsImNvbm5lY3RlZF8iLCJtdXRhdGlvbkV2ZW50c0FkZGVkXyIsIm11dGF0aW9uc09ic2VydmVyXyIsIm9ic2VydmVyc18iLCJvblRyYW5zaXRpb25FbmRfIiwicmVmcmVzaCIsImxlYWRpbmdDYWxsIiwidHJhaWxpbmdDYWxsIiwibGFzdENhbGxUaW1lIiwicmVzb2x2ZVBlbmRpbmciLCJ0aW1lb3V0Q2FsbGJhY2siLCJ0aW1lU3RhbXAiLCJ0aHJvdHRsZSIsImFkZE9ic2VydmVyIiwib2JzZXJ2ZXIiLCJjb25uZWN0XyIsInJlbW92ZU9ic2VydmVyIiwib2JzZXJ2ZXJzIiwiZGlzY29ubmVjdF8iLCJ1cGRhdGVPYnNlcnZlcnNfIiwiYWN0aXZlT2JzZXJ2ZXJzIiwiZ2F0aGVyQWN0aXZlIiwiaGFzQWN0aXZlIiwiYnJvYWRjYXN0QWN0aXZlIiwiYXR0cmlidXRlcyIsImNoaWxkTGlzdCIsImNoYXJhY3RlckRhdGEiLCJzdWJ0cmVlIiwicHJvcGVydHlOYW1lIiwiZ2V0SW5zdGFuY2UiLCJpbnN0YW5jZV8iLCJkZWZpbmVDb25maWd1cmFibGUiLCJnZXRXaW5kb3dPZiIsIm93bmVyRG9jdW1lbnQiLCJkZWZhdWx0VmlldyIsImVtcHR5UmVjdCIsImNyZWF0ZVJlY3RJbml0IiwidG9GbG9hdCIsImdldEJvcmRlcnNTaXplIiwic3R5bGVzIiwicG9zaXRpb25zIiwicmVkdWNlIiwicG9zaXRpb24iLCJnZXRIVE1MRWxlbWVudENvbnRlbnRSZWN0IiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJnZXRDb21wdXRlZFN0eWxlIiwicGFkZGluZ3MiLCJwb3NpdGlvbnNfMSIsImdldFBhZGRpbmdzIiwiaG9yaXpQYWQiLCJyaWdodCIsInZlcnRQYWQiLCJ0b3AiLCJib3R0b20iLCJib3hTaXppbmciLCJkb2N1bWVudEVsZW1lbnQiLCJpc0RvY3VtZW50RWxlbWVudCIsInZlcnRTY3JvbGxiYXIiLCJob3JpelNjcm9sbGJhciIsImlzU1ZHR3JhcGhpY3NFbGVtZW50IiwiU1ZHR3JhcGhpY3NFbGVtZW50IiwiU1ZHRWxlbWVudCIsImdldEJCb3giLCJnZXRDb250ZW50UmVjdCIsImJib3giLCJnZXRTVkdDb250ZW50UmVjdCIsIlJlc2l6ZU9ic2VydmF0aW9uIiwiYnJvYWRjYXN0V2lkdGgiLCJicm9hZGNhc3RIZWlnaHQiLCJjb250ZW50UmVjdF8iLCJyZWN0IiwiYnJvYWRjYXN0UmVjdCIsIlJlc2l6ZU9ic2VydmVyRW50cnkiLCJyZWN0SW5pdCIsIkNvbnN0ciIsImNvbnRlbnRSZWN0IiwiRE9NUmVjdFJlYWRPbmx5IiwiUmVzaXplT2JzZXJ2ZXJTUEkiLCJjb250cm9sbGVyIiwiY2FsbGJhY2tDdHgiLCJhY3RpdmVPYnNlcnZhdGlvbnNfIiwib2JzZXJ2YXRpb25zXyIsImNhbGxiYWNrXyIsImNvbnRyb2xsZXJfIiwiY2FsbGJhY2tDdHhfIiwib2JzZXJ2YXRpb25zIiwidW5vYnNlcnZlIiwiY2xlYXJBY3RpdmUiLCJvYnNlcnZhdGlvbiIsIlJlc2l6ZU9ic2VydmVyIiwiY29ubmVjdCIsIl9Qcm92aWRlcjMiLCJfY29ubmVjdDMiLCJfY3JlYXRlMyIsInRvQXJyYXlDaGlsZHJlbiIsImZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleSIsImZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5Iiwic2hvd1Byb3AiLCJpc0FwcGVhclN1cHBvcnRlZCIsInRyYW5zaXRpb25BcHBlYXIiLCJhcHBlYXIiLCJpc0VudGVyU3VwcG9ydGVkIiwidHJhbnNpdGlvbkVudGVyIiwiaXNMZWF2ZVN1cHBvcnRlZCIsInRyYW5zaXRpb25MZWF2ZSIsImFsbG93QXBwZWFyQ2FsbGJhY2siLCJhbGxvd0VudGVyQ2FsbGJhY2siLCJhbGxvd0xlYXZlQ2FsbGJhY2siLCJ0cmFuc2l0aW9uTWFwIiwiQW5pbWF0ZUNoaWxkIiwic3RvcCIsImFuaW1hdGlvblR5cGUiLCJmaW5pc2hDYWxsYmFjayIsIm5hbWVJc09iaiIsInN0b3BwZXIiLCJhY3RpdmVOYW1lIiwicHJvcFR5cGVzIiwiYW55IiwiZGVmYXVsdEtleSIsImdldENoaWxkcmVuRnJvbVByb3BzIiwiY2xvbmVFbGVtZW50Iiwibm9vcCIsIkFuaW1hdGUiLCJjdXJyZW50bHlBbmltYXRpbmdLZXlzIiwia2V5c1RvRW50ZXIiLCJrZXlzVG9MZWF2ZSIsImNoaWxkcmVuUmVmcyIsInBlcmZvcm1BcHBlYXIiLCJfdGhpczMiLCJuZXh0Q2hpbGRyZW4iLCJleGNsdXNpdmUiLCJuZXh0Q2hpbGRyZW5QZW5kaW5nIiwicGVuZGluZ0NoaWxkcmVuIiwiY3VycmVudENoaWxkcmVuIiwibmV3Q2hpbGRyZW4iLCJjdXJyZW50Q2hpbGQiLCJuZXh0Q2hpbGQiLCJuZXdDaGlsZCIsImhhc1ByZXYiLCJzaG93SW5OZXh0IiwiaGFzTmV4dCIsInNob3dJbk5vdyIsInBlcmZvcm1FbnRlciIsInBlcmZvcm1MZWF2ZSIsIl90aGlzNCIsInN0YXRlQ2hpbGRyZW4iLCJwYXNzZWRQcm9wcyIsImNvbXBvbmVudFByb3BzIiwiaXNBbmltYXRlIiwib25lT2ZUeXBlIiwiYm9vbCIsIm9uRW5kIiwib25FbnRlciIsIm9uTGVhdmUiLCJvbkFwcGVhciIsIl90aGlzNSIsImNvbXBvbmVudFdpbGxFbnRlciIsImhhbmRsZURvbmVBZGRpbmciLCJjb21wb25lbnRXaWxsQXBwZWFyIiwiaXNWYWxpZENoaWxkQnlLZXkiLCJjb21wb25lbnRXaWxsTGVhdmUiLCJoYW5kbGVEb25lTGVhdmluZyIsImMxIiwic2FtZSIsImNoaWxkMiIsIl9fZyIsImFuT2JqZWN0IiwiSUU4X0RPTV9ERUZJTkUiLCJ0b1ByaW1pdGl2ZSIsImRQIiwiQXR0cmlidXRlcyIsInR1cGxlTnVtIiwidHVwbGUiLCJfbGVuMiIsIl9rZXkyIiwid2FybmluZ09uY2UiLCJyZXBsYWNlRWxlbWVudCIsInJlcGxhY2VtZW50IiwiZG9tXzEiLCJUcmVlQWxnb3JpdGhtXzEiLCJTaGFkb3dUcmVlQWxnb3JpdGhtXzEiLCJzdXBwb3J0ZWRUb2tlbnMiLCJyZW1vdmVOb2RlSXRlcmF0b3IiLCJub2RlSXRlcmF0b3IiLCJ0b0JlUmVtb3ZlZE5vZGUiLCJfcm9vdCIsIl9yZWZlcmVuY2UiLCJfcG9pbnRlckJlZm9yZVJlZmVyZW5jZSIsInJlZmVyZW5jZU5vZGUiLCJ1cGRhdGVBU2xvdHNOYW1lIiwibG9jYWxOYW1lIiwib2xkVmFsdWUiLCJpc1Nsb3QiLCJfbmFtZSIsInNoYWRvd1RyZWVfYXNzaWduU2xvdGFibGVzRm9yQVRyZWUiLCJ1cGRhdGVBU2xvdGFibGVzTmFtZSIsImlzU2xvdGFibGUiLCJzaGFkb3dUcmVlX2lzQXNzaWduZWQiLCJzaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlcyIsIl9hc3NpZ25lZFNsb3QiLCJzaGFkb3dUcmVlX2Fzc2lnbkFTbG90IiwidXBkYXRlQW5FbGVtZW50SUQiLCJfdW5pcXVlSWRlbnRpZmllciIsImRvbV9ydW5SZW1vdmluZ1N0ZXBzIiwicmVtb3ZlZE5vZGUiLCJvbGRQYXJlbnQiLCJkb21fcnVuQ2xvbmluZ1N0ZXBzIiwiY2xvbmVDaGlsZHJlbkZsYWciLCJkb21fcnVuQWRvcHRpbmdTdGVwcyIsIm9sZERvY3VtZW50IiwiZG9tX3J1bkF0dHJpYnV0ZUNoYW5nZVN0ZXBzIiwiZmVhdHVyZXMiLCJzbG90cyIsIl9hdHRyaWJ1dGVDaGFuZ2VTdGVwcyIsImRvbV9ydW5JbnNlcnRpb25TdGVwcyIsImluc2VydGVkTm9kZSIsImRvbV9ydW5Ob2RlSXRlcmF0b3JQcmVSZW1vdmluZ1N0ZXBzIiwidG9CZVJlbW92ZWQiLCJkb21faGFzU3VwcG9ydGVkVG9rZW5zIiwiYXR0cmlidXRlTmFtZSIsImRvbV9nZXRTdXBwb3J0ZWRUb2tlbnMiLCJkb21fcnVuRXZlbnRDb25zdHJ1Y3RpbmdTdGVwcyIsImRvbV9ydW5DaGlsZFRleHRDb250ZW50Q2hhbmdlU3RlcHMiLCJjb250YWlucyIsImRpZFVwZGF0ZSIsImdldENvbnRhaW5lciIsImNvbnRhaW5lclJlZiIsImluaXRSZWYiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQyIiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwiY3JlYXRlUG9ydGFsIiwiaXNQb2ludHNFcSIsImlzQWxpZ25Qb2ludCIsImdldE1vdGlvbiIsIm1vdGlvbiIsIk1hc2siLCJ6SW5kZXgiLCJtYXNrIiwibWFza01vdGlvbiIsIm1hc2tBbmltYXRpb24iLCJtYXNrVHJhbnNpdGlvbk5hbWUiLCJtb25pdG9yUmVzaXplIiwicHJldldpZHRoIiwicHJldkhlaWdodCIsImdldFBvaW50IiwicG9pbnQiLCJSZWZBbGlnbiIsImFsaWduIiwib25BbGlnbiIsIm1vbml0b3JXaW5kb3dSZXNpemUiLCJfcmVmJG1vbml0b3JCdWZmZXJUaW0iLCJtb25pdG9yQnVmZmVyVGltZSIsImNhY2hlUmVmIiwidXNlUmVmIiwiZm9yY2VBbGlnblByb3BzUmVmIiwiX3VzZUJ1ZmZlciIsImNhbGxlZFJlZiIsInRpbWVvdXRSZWYiLCJjYW5jZWxUcmlnZ2VyIiwidHJpZ2dlciIsImZvcmNlIiwiYnVmZmVyIiwidXNlQnVmZmVyIiwiX2ZvcmNlQWxpZ25Qcm9wc1JlZiRjIiwibGF0ZXN0RGlzYWJsZWQiLCJsYXRlc3RUYXJnZXQiLCJsYXRlc3RPbkFsaWduIiwiYWN0aXZlRWxlbWVudCIsImlzVmlzaWJsZSIsImNvbnRhaW5lciIsImZvY3VzIiwicmVzdG9yZUZvY3VzIiwiX3VzZUJ1ZmZlcjIiLCJfZm9yY2VBbGlnbiIsImNhbmNlbEZvcmNlQWxpZ24iLCJyZXNpemVNb25pdG9yIiwic291cmNlUmVzaXplTW9uaXRvciIsInByZXYiLCJwYWdlWCIsInBhZ2VZIiwiY2xpZW50WCIsImNsaWVudFkiLCJ3aW5SZXNpemVSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiZm9yY2VBbGlnbiIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsIl9uZXh0IiwiX3Rocm93IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJTdGF0dXNRdWV1ZSIsIlBvcHVwSW5uZXIiLCJzdHJldGNoIiwiZGVzdHJveVBvcHVwT25IaWRlIiwiZ2V0Um9vdERvbU5vZGUiLCJnZXRDbGFzc05hbWVGcm9tQWxpZ24iLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvbk1vdXNlRG93biIsIm9uVG91Y2hTdGFydCIsImFsaWduUmVmIiwiZWxlbWVudFJlZiIsIl91c2VTdGF0ZSIsImFsaWduZWRDbGFzc05hbWUiLCJzZXRBbGlnbmVkQ2xhc3NOYW1lIiwiX3VzZVN0cmV0Y2hTdHlsZSIsIl9SZWFjdCR1c2VTdGF0ZSIsInRhcmdldFNpemUiLCJzZXRUYXJnZXRTaXplIiwic2l6ZVN0eWxlIiwibWluSGVpZ2h0IiwibWluV2lkdGgiLCJ1c2VTdHJldGNoU3R5bGUiLCJfdXNlU3RyZXRjaFN0eWxlMiIsInN0cmV0Y2hTdHlsZSIsIm1lYXN1cmVTdHJldGNoU3R5bGUiLCJfdXNlVmlzaWJsZVN0YXR1cyIsInNldEludGVybmFsU3RhdHVzIiwicmFmUmVmIiwiY2FuY2VsUmFmIiwiZG9NZWFzdXJlIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwidXNlVmlzaWJsZVN0YXR1cyIsIl91c2VWaXNpYmxlU3RhdHVzMiIsImdvTmV4dFN0YXR1cyIsInByZXBhcmVSZXNvbHZlUmVmIiwiX2FsaWduUmVmJGN1cnJlbnQiLCJvbkludGVybmFsQWxpZ24iLCJwb3B1cERvbU5vZGUiLCJtYXRjaEFsaWduIiwibmV4dEFsaWduZWRDbGFzc05hbWUiLCJfcHJlcGFyZVJlc29sdmVSZWYkY3UiLCJvblNob3dQcmVwYXJlIiwib3JpZ2luSGFuZGxlciIsIm9wYWNpdHkiLCJwb2ludGVyRXZlbnRzIiwiYWxpZ25EaXNhYmxlZCIsInBvaW50cyIsIm1vdGlvblJlZiIsIm1vdGlvbkNsYXNzTmFtZSIsIm1vdGlvblN0eWxlIiwibWVyZ2VkQ2xhc3NOYW1lIiwib25Nb3VzZURvd25DYXB0dXJlIiwib25Ub3VjaFN0YXJ0Q2FwdHVyZSIsIk1vYmlsZVBvcHVwSW5uZXIiLCJfcHJvcHMkbW9iaWxlIiwibW9iaWxlIiwicG9wdXBDbGFzc05hbWUiLCJwb3B1cFN0eWxlIiwiX3Byb3BzJG1vYmlsZSRwb3B1cE1vIiwicG9wdXBNb3Rpb24iLCJwb3B1cFJlbmRlciIsIlBvcHVwIiwiaW5uZXJWaXNpYmxlIiwic2VySW5uZXJWaXNpYmxlIiwiX3VzZVN0YXRlMyIsImluTW9iaWxlIiwic2V0SW5Nb2JpbGUiLCJjbG9uZVByb3BzIiwiaXNNb2JpbGUiLCJwb3B1cE5vZGUiLCJyZXR1cm5FbXB0eVN0cmluZyIsInJldHVybkRvY3VtZW50IiwiQUxMX0hBTkRMRVJTIiwiUG9ydGFsQ29tcG9uZW50IiwiVHJpZ2dlciIsInBvcHVwVmlzaWJsZSIsInBvcHVwUmVmIiwidHJpZ2dlclJlZiIsIm1vdXNlRW50ZXJEZWxheSIsImZpcmVFdmVudHMiLCJkZWxheVNldFBvcHVwVmlzaWJsZSIsIm9uTW91c2VNb3ZlIiwic2V0UG9pbnQiLCJtb3VzZUxlYXZlRGVsYXkiLCJvblBvcHVwTW91c2VFbnRlciIsImNsZWFyRGVsYXlUaW1lciIsIm9uUG9wdXBNb3VzZUxlYXZlIiwiX3RoaXMkcG9wdXBSZWYkY3VycmVuIiwicmVsYXRlZFRhcmdldCIsIm9uRm9jdXMiLCJpc0ZvY3VzVG9TaG93IiwiZm9jdXNUaW1lIiwiZm9jdXNEZWxheSIsInByZUNsaWNrVGltZSIsInByZVRvdWNoVGltZSIsIm9uQmx1ciIsImlzQmx1clRvSGlkZSIsImJsdXJEZWxheSIsIm9uQ29udGV4dE1lbnUiLCJwcmV2ZW50RGVmYXVsdCIsInNldFBvcHVwVmlzaWJsZSIsIm9uQ29udGV4dE1lbnVDbG9zZSIsImlzQ29udGV4dE1lbnVUb1Nob3ciLCJjbG9zZSIsInByZVRpbWUiLCJpc0NsaWNrVG9TaG93IiwiaXNDbGlja1RvSGlkZSIsIm5leHRWaXNpYmxlIiwib25Qb3B1cE1vdXNlRG93biIsIl90aGlzJGNvbnRleHQiLCJoYXNQb3B1cE1vdXNlRG93biIsIm1vdXNlRG93blRpbWVvdXQiLCJvbkRvY3VtZW50Q2xpY2siLCJtYXNrQ2xvc2FibGUiLCJnZXRQb3B1cERvbU5vZGUiLCJpc0NvbnRleHRNZW51T25seSIsImdldFRyaWdnZXJET01Ob2RlIiwiZG9tTm9kZSIsImdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduIiwicG9wdXBQbGFjZW1lbnQiLCJidWlsdGluUGxhY2VtZW50cyIsImFsaWduUG9pbnQiLCJwbGFjZW1lbnRzIiwicGxhY2VtZW50IiwiZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZSIsImdldENvbXBvbmVudCIsIl90aGlzJHByb3BzMiIsIm9uUG9wdXBBbGlnbiIsInBvcHVwQW5pbWF0aW9uIiwicG9wdXBUcmFuc2l0aW9uTmFtZSIsInBvcHVwIiwiX3RoaXMkc3RhdGUiLCJnZXRQb3B1cEFsaWduIiwibW91c2VQcm9wcyIsImlzTW91c2VFbnRlclRvU2hvdyIsImlzTW91c2VMZWF2ZVRvSGlkZSIsImF0dGFjaFBhcmVudCIsInBvcHVwQ29udGFpbmVyIiwiYXR0YWNoSWQiLCJtb3VudE5vZGUiLCJfdGhpcyRwcm9wczMiLCJnZXREb2N1bWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImhhbmRsZVBvcnRhbFVwZGF0ZSIsInByZXZQb3B1cFZpc2libGUiLCJhZnRlclBvcHVwVmlzaWJsZUNoYW5nZSIsImRlZmF1bHRQb3B1cFZpc2libGUiLCJjdXJyZW50RG9jdW1lbnQiLCJjbGlja091dHNpZGVIYW5kbGVyIiwidG91Y2hPdXRzaWRlSGFuZGxlciIsImNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxIiwiY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIiLCJjbGVhck91dHNpZGVIYW5kbGVyIiwiX3RoaXMkcG9wdXBSZWYkY3VycmVuMiIsInBvcHVwQWxpZ24iLCJwbGFjZW1lbnRTdHIiLCJiYXNlQWxpZ24iLCJnZXRBbGlnbkZyb21QbGFjZW1lbnQiLCJvblBvcHVwVmlzaWJsZUNoYW5nZSIsImRlbGF5UyIsImRlbGF5VGltZXIiLCJjaGlsZFByb3MiLCJfdGhpcyRwcm9wczQiLCJhY3Rpb24iLCJzaG93QWN0aW9uIiwiX3RoaXMkcHJvcHM1IiwiX3RoaXMkcHJvcHM2IiwiaGlkZUFjdGlvbiIsIl90aGlzJHByb3BzNyIsIl90aGlzJHByb3BzOCIsIl90aGlzJHByb3BzOSIsIl90aGlzJHByb3BzMTAiLCJfdGhpcyRwb3B1cFJlZiRjdXJyZW4zIiwiY2hpbGRDYWxsYmFjayIsIl90aGlzJHByb3BzMTEiLCJhdXRvRGVzdHJveSIsIm5ld0NoaWxkUHJvcHMiLCJjcmVhdGVUd29DaGFpbnMiLCJjaGlsZHJlbkNsYXNzTmFtZSIsInBvcnRhbCIsIm5ld1N0YXRlIiwiY29udGV4dFR5cGUiLCJSZWFjdERPTSIsIlByb3BUeXBlcyIsIl9yY0FuaW1hdGUiLCJfb21pdCIsIl9yb3ciLCJfY29sIiwiX2ljb24iLCJfY29uZmlnUHJvdmlkZXIiLCJfdHlwZSIsIl9jb25zdGFudHMiLCJWYWxpZGF0ZVN0YXR1c2VzIiwiRm9ybUl0ZW0iLCJoZWxwU2hvdyIsIm9uTGFiZWxDbGljayIsImdldElkIiwiY29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJvbkhlbHBBbmltRW5kIiwicmVuZGVyRm9ybUl0ZW0iLCJfaXRlbUNsYXNzTmFtZSIsInJlbmRlckNoaWxkcmVuIiwiaXRlbUNsYXNzTmFtZSIsImhlbHAiLCJ2YWxpZGF0ZVN0YXR1cyIsImdldENvbnRyb2xzIiwiZ2V0T25seUNvbnRyb2wiLCJnZXRGaWVsZCIsInJlY3Vyc2l2ZWx5IiwiY29udHJvbHMiLCJjaGlsZHJlbkFycmF5IiwiRklFTERfTUVUQV9QUk9QIiwiZ2V0Q2hpbGRQcm9wIiwiRklFTERfREFUQV9QUk9QIiwidmFsaWRhdGluZyIsImZpZWxkVmFsdWUiLCJnZXRNZXRhIiwiaW5pdGlhbFZhbHVlIiwidmFsaWRhdGUiLCJydWxlcyIsImdldEhlbHBNZXNzYWdlIiwiZXh0cmEiLCJjMyIsIm9ubHlDb250cm9sIiwiZ2V0VmFsaWRhdGVTdGF0dXMiLCJoYXNGZWVkYmFjayIsImljb25UeXBlIiwiQ29uc3VtZXIiLCJjb250ZXh0V3JhcHBlckNvbCIsIndyYXBwZXJDb2wiLCJ2ZXJ0aWNhbCIsIm1lcmdlZFdyYXBwZXJDb2wiLCJjb250ZXh0TGFiZWxBbGlnbiIsImxhYmVsQWxpZ24iLCJjb250ZXh0TGFiZWxDb2wiLCJsYWJlbENvbCIsImNvbnRleHRDb2xvbiIsImNvbG9uIiwiX3RoaXMzJHByb3BzIiwibGFiZWwiLCJodG1sRm9yIiwiaXNSZXF1aXJlZCIsIm1lcmdlZExhYmVsQ29sIiwibWVyZ2VkTGFiZWxBbGlnbiIsImxhYmVsQ2xzQmFzaWMiLCJsYWJlbENvbENsYXNzTmFtZSIsImxhYmVsQ2hpbGRyZW4iLCJjb21wdXRlZENvbG9uIiwidHJpbSIsImxhYmVsQ2xhc3NOYW1lIiwidGl0bGUiLCJyZW5kZXJMYWJlbCIsInJlbmRlcldyYXBwZXIiLCJyZW5kZXJWYWxpZGF0ZVdyYXBwZXIiLCJyZW5kZXJIZWxwIiwicmVuZGVyRXh0cmEiLCJvbmVPZiIsImxvZyIsImVudiIsImlzSWNvbkRlZmluaXRpb24iLCJub3JtYWxpemVBdHRycyIsImF0dHJzIiwiYWNjIiwiTWluaU1hcCIsImNvbGxlY3Rpb24iLCJnZW5lcmF0ZSIsInJvb3RQcm9wcyIsInRhZyIsImdldFNlY29uZGFyeUNvbG9yIiwiaGlkZSIsIiRleHBvcnQiLCJvd24iLCJJU19GT1JDRUQiLCJJU19HTE9CQUwiLCJJU19TVEFUSUMiLCJJU19QUk9UTyIsIklTX0JJTkQiLCJJU19XUkFQIiwiZXhwUHJvdG8iLCJfb2JqZWN0U3ByZWFkIiwiXzEiLCJET01FeGNlcHRpb25fMSIsImFsZ29yaXRobV8xIiwiVVJMQWxnb3JpdGhtXzEiLCJXZWJJRExBbGdvcml0aG1fMSIsIl9fY2hpbGROb2RlcyIsImNyZWF0ZV9ub2RlTGlzdCIsIl9ub2RlRG9jdW1lbnRPdmVycmlkZSIsIl9hc3NvY2lhdGVkRG9jdW1lbnQiLCJfX3JlZ2lzdGVyZWRPYnNlcnZlckxpc3QiLCJfaHRtbFVwcGVyY2FzZWRRdWFsaWZpZWROYW1lIiwiaXNBdHRyTm9kZSIsIl9xdWFsaWZpZWROYW1lIiwiaXNFeGNsdXNpdmVUZXh0Tm9kZSIsImlzQ0RBVEFTZWN0aW9uTm9kZSIsImlzUHJvY2Vzc2luZ0luc3RydWN0aW9uTm9kZSIsIl90YXJnZXQiLCJpc0NvbW1lbnROb2RlIiwiaXNEb2N1bWVudE5vZGUiLCJ1cmxTZXJpYWxpemVyIiwiX25vZGVEb2N1bWVudCIsIl9VUkwiLCJzaGFkb3dUcmVlX2lzQ29ubmVjdGVkIiwib3B0aW9ucyIsImNvbXBvc2VkIiwiQXR0cmlidXRlIiwiX2NoaWxkTm9kZXMiLCJfdmFsdWUiLCJhdHRyX3NldEFuRXhpc3RpbmdBdHRyaWJ1dGVWYWx1ZSIsImNoYXJhY3RlckRhdGFfcmVwbGFjZURhdGEiLCJ0ZXh0X2Rlc2NlbmRhbnRUZXh0Q29udGVudCIsIm5vZGVfc3RyaW5nUmVwbGFjZUFsbCIsImRlc2NlbmRhbnROb2RlcyIsIm11dGF0aW9uX3JlbW92ZSIsInRleHRTaWJsaW5ncyIsInNpYmxpbmciLCJ0ZXh0X2NvbnRpZ3VvdXNFeGNsdXNpdmVUZXh0Tm9kZXMiLCJyYW5nZUxpc3QiLCJjbiIsIl9zdGFydCIsIl9lbmQiLCJkZWVwIiwibm9kZV9jbG9uZSIsIm5vZGVfZXF1YWxzIiwibm9kZTEiLCJub2RlMiIsImF0dHIxIiwiYXR0cjIiLCJfZWxlbWVudCIsIl9hdHRyaWJ1dGVMaXN0IiwiYXR0ciIsIkltcGxlbWVudGF0aW9uU3BlY2lmaWMiLCJQcmVjZWRpbmciLCJGb2xsb3dpbmciLCJEaXNjb25uZWN0ZWQiLCJjb21wYXJlQ2FjaGUiLCJjaGVjayIsIkNvbnRhaW5zIiwiQ29udGFpbmVkQnkiLCJub2RlX2xvY2F0ZUFOYW1lc3BhY2VQcmVmaXgiLCJub2RlX2xvY2F0ZUFOYW1lc3BhY2UiLCJyZWZDaGlsZCIsIm11dGF0aW9uX3ByZUluc2VydCIsIm11dGF0aW9uX2FwcGVuZCIsIm9sZENoaWxkIiwibXV0YXRpb25fcmVwbGFjZSIsIm11dGF0aW9uX3ByZVJlbW92ZSIsIkVMRU1FTlRfTk9ERSIsIkFUVFJJQlVURV9OT0RFIiwiVEVYVF9OT0RFIiwiQ0RBVEFfU0VDVElPTl9OT0RFIiwiRU5USVRZX1JFRkVSRU5DRV9OT0RFIiwiRU5USVRZX05PREUiLCJQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUiLCJDT01NRU5UX05PREUiLCJET0NVTUVOVF9OT0RFIiwiRE9DVU1FTlRfVFlQRV9OT0RFIiwiRE9DVU1FTlRfRlJBR01FTlRfTk9ERSIsIk5PVEFUSU9OX05PREUiLCJET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQiLCJET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkciLCJET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkciLCJET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUyIsIkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSIsIkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDIiwiY3JlYXRlX2RvbUltcGxlbWVudGF0aW9uIiwiX2NyZWF0ZSIsImNyZWF0ZV93aW5kb3ciLCJjcmVhdGVfeG1sRG9jdW1lbnQiLCJjcmVhdGVfZG9jdW1lbnQiLCJjcmVhdGVfYWJvcnRDb250cm9sbGVyIiwiY3JlYXRlX2Fib3J0U2lnbmFsIiwiY3JlYXRlX2RvY3VtZW50VHlwZSIsInB1YmxpY0lkIiwic3lzdGVtSWQiLCJjcmVhdGVfZWxlbWVudCIsImNyZWF0ZV9odG1sRWxlbWVudCIsImNyZWF0ZV9odG1sVW5rbm93bkVsZW1lbnQiLCJjcmVhdGVfZG9jdW1lbnRGcmFnbWVudCIsImNyZWF0ZV9zaGFkb3dSb290IiwiY3JlYXRlX2F0dHIiLCJjcmVhdGVfdGV4dCIsImNyZWF0ZV9jZGF0YVNlY3Rpb24iLCJjcmVhdGVfY29tbWVudCIsImNyZWF0ZV9wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iLCJjcmVhdGVfaHRtbENvbGxlY3Rpb24iLCJjcmVhdGVfbm9kZUxpc3RTdGF0aWMiLCJpdGVtcyIsImNyZWF0ZV9uYW1lZE5vZGVNYXAiLCJjcmVhdGVfcmFuZ2UiLCJjcmVhdGVfbm9kZUl0ZXJhdG9yIiwicmVmZXJlbmNlIiwicG9pbnRlckJlZm9yZVJlZmVyZW5jZSIsImNyZWF0ZV90cmVlV2Fsa2VyIiwiY3JlYXRlX25vZGVGaWx0ZXIiLCJjcmVhdGVfbXV0YXRpb25SZWNvcmQiLCJhZGRlZE5vZGVzIiwicmVtb3ZlZE5vZGVzIiwicHJldmlvdXNTaWJsaW5nIiwibmV4dFNpYmxpbmciLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJjcmVhdGVfZG9tVG9rZW5MaXN0IiwiYXR0cmlidXRlIiwic2F2ZVJlZiIsImlzV2luZG93IiwiaXNTaW1pbGFyVmFsdWUiLCJ2YWwxIiwidmFsMiIsImludDEiLCJpbnQyIiwiX0NvbXBvbmVudCIsIkFsaWduIiwiX3RlbXAiLCJfcmV0Iiwic3RhcnRNb25pdG9yV2luZG93UmVzaXplIiwicmVBbGlnbiIsInNvdXJjZVJlY3QiLCJsYXN0RWxlbWVudCIsImxhc3RQb2ludCIsImN1cnJlbnRQb2ludCIsInByZVJlY3QiLCJzdG9wTW9uaXRvcldpbmRvd1Jlc2l6ZSIsInJlc2l6ZUhhbmRsZXIiLCJidWZmZXJNb25pdG9yIiwidGltZXIiLCJidWZmZXJGbiIsIl9wcm9wcyIsImNoaWxkcmVuUHJvcHMiLCJuZXdQcm9wcyIsInNoYXBlIiwiTGF6eVJlbmRlckJveCIsInNob3VsZENvbXBvbmVudFVwZGF0ZSIsImhpZGRlbkNsYXNzTmFtZSIsInN0cmV0Y2hDaGVja2VkIiwidGFyZ2V0V2lkdGgiLCJ0YXJnZXRIZWlnaHQiLCJzYXZlUG9wdXBSZWYiLCJzYXZlQWxpZ25SZWYiLCJjb21wb25lbnREaWRNb3VudCIsInJvb3ROb2RlIiwic2V0U3RyZXRjaFNpemUiLCJwb3B1cEluc3RhbmNlIiwiZ2V0TWFza1RyYW5zaXRpb25OYW1lIiwiZ2V0Q2xhc3NOYW1lIiwiY3VycmVudEFsaWduQ2xhc3NOYW1lIiwiZ2V0UG9wdXBFbGVtZW50IiwiX3N0YXRlIiwidmlzaWJpbGl0eSIsImFsaWduSW5zdGFuY2UiLCJwb3B1cElubmVyUHJvcHMiLCJnZXRaSW5kZXhTdHlsZSIsImdldEFsaWduVGFyZ2V0IiwieFZpc2libGUiLCJnZXRNYXNrRWxlbWVudCIsIm1hc2tFbGVtZW50IiwibWFza1RyYW5zaXRpb24iLCJfcHJvcHMyIiwiX3N0YXRlMiIsIiRlbGUiLCJnZXRUYXJnZXRFbGVtZW50IiwiSVNfUkVBQ1RfMTYiLCJjb250ZXh0VHlwZXMiLCJyY1RyaWdnZXIiLCJnZXRDaGlsZENvbnRleHQiLCJyZW5kZXJDb21wb25lbnQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsIl9jb21wb25lbnQiLCJfcHJvcHMzIiwiX3Byb3BzNCIsIl9wcm9wczUiLCJfcHJvcHM2IiwiX3Byb3BzNyIsImZvcmNlUG9wdXBBbGlnbiIsIl9wcm9wczgiLCJDb250YWluZXJSZW5kZXIiLCJhdXRvTW91bnQiLCJQb3J0YWwiLCJhcnJheU9mIiwiY2hpbGRDb250ZXh0VHlwZXMiLCJfY29udGV4dCRyY1RyaWdnZXIiLCJfcHJvcHM5IiwiX3Byb3BzMTAiLCJzYXZlUG9wdXAiLCJjcmVhdGVEZXNjIiwiSU9iamVjdCIsImRlZmluZWQiLCJiYXNlSXNOYXRpdmUiLCJ1dGlsXzIiLCJpbmZyYV8xIiwiQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xIiwiTm9kZUl0ZXJhdG9yQWxnb3JpdGhtXzEiLCJNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEiLCJET01BbGdvcml0aG1fMSIsIkRvY3VtZW50QWxnb3JpdGhtXzEiLCJtdXRhdGlvbl9lbnN1cmVQcmVJbnNlcnRpb25WYWxpZGl0eSIsInBhcmVudE5vZGVUeXBlIiwibm9kZU5vZGVUeXBlIiwiY2hpbGROb2RlVHlwZSIsIm5vZGVOYW1lIiwiZWxlQ291bnQiLCJlbGUiLCJkb2N0eXBlQ2hpbGQiLCJlbGVtZW50Q2hpbGQiLCJyZWZlcmVuY2VDaGlsZCIsImRvY3VtZW50X2Fkb3B0IiwibXV0YXRpb25faW5zZXJ0Iiwic3VwcHJlc3NPYnNlcnZlcnMiLCJfZG9jdW1lbnRFbGVtZW50IiwiX2hhc05hbWVzcGFjZXMiLCJfbmFtZXNwYWNlIiwiX25hbWVzcGFjZVByZWZpeCIsIl9zaGFkb3dSb290Iiwic3RlcHMiLCJpc1RleHROb2RlIiwiX2Fzc2lnbmVkTm9kZXMiLCJzaGFkb3dUcmVlX3NpZ25hbEFTbG90Q2hhbmdlIiwiY3VzdG9tRWxlbWVudHMiLCJpc0N1c3RvbUVsZW1lbnROb2RlIiwiY3VzdG9tRWxlbWVudF9lbnF1ZXVlQUN1c3RvbUVsZW1lbnRDYWxsYmFja1JlYWN0aW9uIiwiY3VzdG9tRWxlbWVudF90cnlUb1VwZ3JhZGUiLCJtdXRhdGlvbk9ic2VydmVycyIsIm9ic2VydmVyX3F1ZXVlVHJlZU11dGF0aW9uUmVjb3JkIiwibXV0YXRpb25faW5zZXJ0X3NpbmdsZSIsIm5vZGVzIiwiYXBwZW5kIiwiaW5zZXJ0IiwiaW5jbHVzaXZlRGVzY2VuZGFudCIsIm5vZGVJdGVyYXRvcl9pdGVyYXRvckxpc3QiLCJvbGRQcmV2aW91c1NpYmxpbmciLCJvbGROZXh0U2libGluZyIsImRlc2NlbmRhbnQiLCJpbmNsdXNpdmVBbmNlc3RvciIsInJlZ2lzdGVyZWQiLCJfcmVnaXN0ZXJlZE9ic2VydmVyTGlzdCIsIm11dGF0aW9uX3JlcGxhY2VBbGwiLCJ2ZW5kb3JQcmVmaXgiLCJqc0Nzc01hcCIsIldlYmtpdCIsIk1veiIsImdldFZlbmRvclByZWZpeCIsImdldFRyYW5zZm9ybU5hbWUiLCJzZXRUcmFuc2l0aW9uUHJvcGVydHkiLCJ0cmFuc2l0aW9uUHJvcGVydHkiLCJzZXRUcmFuc2Zvcm0iLCJtYXRyaXgyZCIsIm1hdHJpeDNkIiwiZ2V0Q29tcHV0ZWRTdHlsZVgiLCJmb3JjZVJlbGF5b3V0IiwiZWxlbSIsIm9yaWdpbmFsU3R5bGUiLCJjc3MiLCJlbCIsInYiLCJnZXRTY3JvbGwiLCJnZXRTY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsVG9wIiwiZ2V0T2Zmc2V0IiwiYm94IiwiZG9jIiwiZG9jRWxlbSIsImNsaWVudExlZnQiLCJjbGllbnRUb3AiLCJnZXRDbGllbnRQb3NpdGlvbiIsInBhcmVudFdpbmRvdyIsIm5vZGVUeXBlIiwiX1JFX05VTV9OT19QWCIsIlJFX1BPUyIsImdldE9mZnNldERpcmVjdGlvbiIsInVzZUNzc1JpZ2h0IiwidXNlQ3NzQm90dG9tIiwib3Bwb3NpdGVPZmZzZXREaXJlY3Rpb24iLCJzZXRMZWZ0VG9wIiwicHJlc2V0SCIsInByZXNldFYiLCJob3Jpem9udGFsUHJvcGVydHkiLCJ2ZXJ0aWNhbFByb3BlcnR5Iiwib3Bwb3NpdGVIb3Jpem9udGFsUHJvcGVydHkiLCJvcHBvc2l0ZVZlcnRpY2FsUHJvcGVydHkiLCJvcmlnaW5hbFRyYW5zaXRpb24iLCJvcmlnaW5hbE9mZnNldCIsIm9sZCIsInByZXNldCIsIm9mZiIsIl9kaXIiLCJfb2ZmIiwib3JpZ2luYWxYWSIsImdldFByb3BlcnR5VmFsdWUiLCJtYXRyaXgiLCJnZXRUcmFuc2Zvcm1YWSIsInJlc3VsdFhZIiwieHkiLCJtYXRjaDJkIiwic2V0VHJhbnNmb3JtWFkiLCJpc0JvcmRlckJveEZuIiwiY3MiLCJjb21wdXRlZFN0eWxlIiwicnNMZWZ0IiwicGl4ZWxMZWZ0IiwiQk9YX01PREVMUyIsInN3YXAiLCJnZXRQQk1XaWR0aCIsIndoaWNoIiwiY3NzUHJvcCIsImRvbVV0aWxzIiwiZ2V0V0giLCJleCIsInZpZXdwb3J0V2lkdGgiLCJ2aWV3cG9ydEhlaWdodCIsImRvY1dpZHRoIiwiZG9jSGVpZ2h0IiwiYm9yZGVyQm94VmFsdWUiLCJpc0JvcmRlckJveCIsImNzc0JveFZhbHVlIiwiYm9yZGVyQm94VmFsdWVPcklzQm9yZGVyQm94IiwicmVmV2luIiwiZG9jdW1lbnRFbGVtZW50UHJvcCIsImNvbXBhdE1vZGUiLCJjc3NTaG93IiwiZ2V0V0hJZ25vcmVEaXNwbGF5IiwibWl4IiwiaW5jbHVkZU1hcmdpbiIsInV0aWxzIiwiZ2V0V2luZG93IiwiaWdub3JlU2hha2UiLCJvcmlPZmZzZXQiLCJvTGVmdCIsIm9Ub3AiLCJ0TGVmdCIsInRUb3AiLCJ1c2VDc3NUcmFuc2Zvcm0iLCJzZXRPZmZzZXQiLCJnZXRXaW5kb3dTY3JvbGxMZWZ0IiwiZ2V0V2luZG93U2Nyb2xsVG9wIiwibWVyZ2UiLCJfa2V5MyIsInBvc2l0aW9uU3R5bGUiLCJ2aXNpYmxlUmVjdCIsIkluZmluaXR5Iiwib3JpZ2luYWxQb3NpdGlvbiIsInNjcm9sbFgiLCJzY3JvbGxZIiwiZG9jdW1lbnRXaWR0aCIsInNjcm9sbFdpZHRoIiwiZG9jdW1lbnRIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJib2R5U3R5bGUiLCJvdmVyZmxvd1giLCJpbm5lcldpZHRoIiwib3ZlcmZsb3dZIiwiaW5uZXJIZWlnaHQiLCJpc0FuY2VzdG9yRml4ZWQiLCJtYXhWaXNpYmxlV2lkdGgiLCJtYXhWaXNpYmxlSGVpZ2h0IiwiZWxGdXR1cmVQb3MiLCJlbFJlZ2lvbiIsImFkanVzdFgiLCJyZXNpemVXaWR0aCIsImFkanVzdFkiLCJyZXNpemVIZWlnaHQiLCJvdXRlcldpZHRoIiwib3V0ZXJIZWlnaHQiLCJyZWdpb24iLCJyZWZOb2RlUmVnaW9uIiwidGFyZ2V0T2Zmc2V0IiwiaXNGYWlsWCIsImlzRmFpbFkiLCJmbGlwIiwicmVnIiwiZmxpcE9mZnNldCIsImNvbnZlcnRPZmZzZXQiLCJvZmZzZXRMZW4iLCJzdWJzdHJpbmciLCJub3JtYWxpemVPZmZzZXQiLCJ0Z3RSZWdpb24iLCJpc1RndFJlZ2lvblZpc2libGUiLCJuZXdPdmVyZmxvd0NmZyIsImZhaWwiLCJuZXdFbFJlZ2lvbiIsIm5ld1BvaW50cyIsIm5ld09mZnNldCIsIm5ld1RhcmdldE9mZnNldCIsImlzQ29tcGxldGVGYWlsWCIsIl9uZXdQb2ludHMiLCJfbmV3T2Zmc2V0IiwiX25ld1RhcmdldE9mZnNldCIsImlzQ29tcGxldGVGYWlsWSIsImlzU3RpbGxGYWlsWCIsImlzU3RpbGxGYWlsWSIsImFsaWduRWxlbWVudCIsInJlZk5vZGUiLCJpc1RhcmdldE5vdE91dE9mVmlzaWJsZSIsInRhcmdldFJlZ2lvbiIsImlzT3V0T2ZWaXNpYmxlUmVjdCIsIl9fZ2V0T2Zmc2V0UGFyZW50IiwiX19nZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQiLCJ0Z3RQb2ludCIsInBvaW50SW5WaWV3IiwiU1RBUlRfRVZFTlRfTkFNRV9NQVAiLCJ0cmFuc2l0aW9uc3RhcnQiLCJXZWJraXRUcmFuc2l0aW9uIiwiTW96VHJhbnNpdGlvbiIsIk9UcmFuc2l0aW9uIiwibXNUcmFuc2l0aW9uIiwiYW5pbWF0aW9uc3RhcnQiLCJXZWJraXRBbmltYXRpb24iLCJNb3pBbmltYXRpb24iLCJPQW5pbWF0aW9uIiwibXNBbmltYXRpb24iLCJFTkRfRVZFTlRfTkFNRV9NQVAiLCJzdGFydEV2ZW50cyIsImVuZEV2ZW50cyIsImV2ZW50TGlzdGVuZXIiLCJFVkVOVF9OQU1FX01BUCIsImV2ZW50cyIsImJhc2VFdmVudE5hbWUiLCJiYXNlRXZlbnRzIiwic3R5bGVOYW1lIiwiZGV0ZWN0RXZlbnRzIiwiYWRkU3RhcnRFdmVudExpc3RlbmVyIiwic3RhcnRFdmVudCIsInJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lciIsImFkZEVuZEV2ZW50TGlzdGVuZXIiLCJlbmRFdmVudCIsInJlbW92ZUVuZEV2ZW50TGlzdGVuZXIiLCJpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCIsImNhcGl0YWxQcmVmaXhlcyIsImdldFN0eWxlUHJvcGVydHkiLCJmaXhCcm93c2VyQnlUaW1lb3V0IiwidHJhbnNpdGlvbkRlbGF5IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiYW5pbWF0aW9uRGVsYXkiLCJhbmltYXRpb25EdXJhdGlvbiIsInJjRW5kQW5pbVRpbWVvdXQiLCJyY0VuZExpc3RlbmVyIiwiY2xlYXJCcm93c2VyQnVnVGltZW91dCIsImVuZENhbGxiYWNrIiwiYWN0aXZlQ2xhc3NOYW1lIiwibm9kZUNsYXNzZXMiLCJyY0FuaW1UaW1lb3V0Iiwic2V0VHJhbnNpdGlvbiIsInByb3BJc0VudW1lcmFibGUiLCJ0ZXN0MSIsInRlc3QyIiwidGVzdDMiLCJsZXR0ZXIiLCJzaG91bGRVc2VOYXRpdmUiLCJjYWNoZWRTZXRUaW1lb3V0IiwiY2FjaGVkQ2xlYXJUaW1lb3V0IiwiZGVmYXVsdFNldFRpbW91dCIsImRlZmF1bHRDbGVhclRpbWVvdXQiLCJydW5UaW1lb3V0IiwiY3VycmVudFF1ZXVlIiwiZHJhaW5pbmciLCJxdWV1ZUluZGV4IiwiY2xlYW5VcE5leHRUaWNrIiwiZHJhaW5RdWV1ZSIsInRpbWVvdXQiLCJydW4iLCJtYXJrZXIiLCJydW5DbGVhclRpbWVvdXQiLCJJdGVtIiwibmV4dFRpY2siLCJicm93c2VyIiwiYXJndiIsInZlcnNpb25zIiwib24iLCJhZGRMaXN0ZW5lciIsIm9uY2UiLCJyZW1vdmVMaXN0ZW5lciIsInJlbW92ZUFsbExpc3RlbmVycyIsImVtaXQiLCJwcmVwZW5kTGlzdGVuZXIiLCJwcmVwZW5kT25jZUxpc3RlbmVyIiwibGlzdGVuZXJzIiwiYmluZGluZyIsImN3ZCIsImNoZGlyIiwidW1hc2siLCJmaXhDb250cm9sbGVkVmFsdWUiLCJyZXNvbHZlT25DaGFuZ2UiLCJnZXRJbnB1dENsYXNzTmFtZSIsIklucHV0U2l6ZXMiLCJfcmVhY3RMaWZlY3ljbGVzQ29tcGF0IiwiX0NsZWFyYWJsZUxhYmVsZWRJbnB1dCIsIm9uQ2hhbmdlIiwiY3VycmVudFRhcmdldCIsIm9yaWdpbmFsSW5wdXRWYWx1ZSIsIklucHV0Iiwic2F2ZUNsZWFyYWJsZUlucHV0IiwiY2xlYXJhYmxlSW5wdXQiLCJzYXZlSW5wdXQiLCJoYW5kbGVSZXNldCIsInNldFZhbHVlIiwicmVuZGVySW5wdXQiLCJhZGRvbkJlZm9yZSIsImFkZG9uQWZ0ZXIiLCJvdGhlclByb3BzIiwiaGFuZGxlQ2hhbmdlIiwib25LZXlEb3duIiwiaGFuZGxlS2V5RG93biIsImNsZWFyUGFzc3dvcmRWYWx1ZUF0dHJpYnV0ZSIsInJlbW92ZVBhc3N3b3JkVGltZW91dCIsImdldEF0dHJpYnV0ZSIsImhhc0F0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsIm9uUHJlc3NFbnRlciIsImlucHV0VHlwZSIsImhhc1ByZWZpeFN1ZmZpeCIsImJsdXIiLCJzZWxlY3QiLCJtYXhMZW5ndGgiLCJvbktleVVwIiwiYWxsb3dDbGVhciIsImJpdG1hcCIsImdldFBhdGhWYWx1ZSIsInJlY29yZCIsInBhdGhMaXN0IiwiZ2V0Q29sdW1uc0tleSIsImNvbHVtbnMiLCJjb2x1bW5LZXlzIiwiY29sdW1uIiwiZGF0YUluZGV4IiwibWVyZ2VkS2V5IiwibWVyZ2VPYmplY3QiLCJtZXJnZWQiLCJmaWxsUHJvcHMiLCJvYmplY3RzIiwidmFsaWRhdGVWYWx1ZSIsImdldFJhd1RhZyIsIm9iamVjdFRvU3RyaW5nIiwic3ltVG9TdHJpbmdUYWciLCJvcmlnaW5TaXplIiwiQ3JlYXRlQWxnb3JpdGhtXzEiLCJFdmVudEFsZ29yaXRobV8xIiwib2JzZXJ2ZXJfcXVldWVBTXV0YXRpb25PYnNlcnZlck1pY3JvdGFzayIsIl9tdXRhdGlvbk9ic2VydmVyTWljcm90YXNrUXVldWVkIiwib2JzZXJ2ZXJfbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMiLCJub3RpZnlTZXQiLCJfbXV0YXRpb25PYnNlcnZlcnMiLCJzaWduYWxTZXQiLCJfc2lnbmFsU2xvdHMiLCJtbyIsInJlY29yZHMiLCJfcmVjb3JkUXVldWUiLCJfbm9kZUxpc3QiLCJpc1RyYW5zaWVudFJlZ2lzdGVyZWRPYnNlcnZlciIsIl9jYWxsYmFjayIsInNsb3QiLCJldmVudF9maXJlQW5FdmVudCIsImJ1YmJsZXMiLCJvYnNlcnZlcl9xdWV1ZU11dGF0aW9uUmVjb3JkIiwiaW50ZXJlc3RlZE9ic2VydmVycyIsImF0dHJpYnV0ZUZpbHRlciIsImF0dHJpYnV0ZU9sZFZhbHVlIiwiY2hhcmFjdGVyRGF0YU9sZFZhbHVlIiwibWFwcGVkT2xkVmFsdWUiLCJvYnNlcnZlcl9xdWV1ZUF0dHJpYnV0ZU11dGF0aW9uUmVjb3JkIiwiTXV0YXRpb25BbGdvcml0aG1fMSIsImVsZW1lbnRfY2hhbmdlIiwiX2xvY2FsTmFtZSIsImVsZW1lbnRfYXBwZW5kIiwiX2FzQXJyYXkiLCJlbGVtZW50X3JlbW92ZSIsImVsZW1lbnRfcmVwbGFjZSIsIm9sZEF0dHIiLCJuZXdBdHRyIiwiZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZSIsInF1YWxpZmllZE5hbWUiLCJIVE1MIiwiZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lIiwiZWxlbWVudF9oYXMiLCJlbGVtZW50X2dldEFuQXR0cmlidXRlVmFsdWUiLCJlbGVtZW50X3NldEFuQXR0cmlidXRlIiwiZWxlbWVudF9zZXRBbkF0dHJpYnV0ZVZhbHVlIiwiZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZSIsImVsZW1lbnRfcmVtb3ZlQW5BdHRyaWJ1dGVCeU5hbWVzcGFjZUFuZExvY2FsTmFtZSIsImVsZW1lbnRfY3JlYXRlQW5FbGVtZW50Iiwic3luY2hyb25vdXNDdXN0b21FbGVtZW50c0ZsYWciLCJfY3VzdG9tRWxlbWVudFN0YXRlIiwiX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uIiwiX2lzIiwiZGVmaW5pdGlvbiIsImN1c3RvbUVsZW1lbnRfbG9va1VwQUN1c3RvbUVsZW1lbnREZWZpbml0aW9uIiwiZG9jdW1lbnRfZWxlbWVudEludGVyZmFjZSIsImN1c3RvbUVsZW1lbnRfdXBncmFkZSIsImN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50VXBncmFkZVJlYWN0aW9uIiwiYXNzZXJ0IiwiY3VzdG9tRWxlbWVudF9pc1ZhbGlkQ3VzdG9tRWxlbWVudE5hbWUiLCJlbGVtZW50X2luc2VydEFkamFjZW50Iiwid2hlcmUiLCJfYnV0dG9uIiwiX2J1dHRvbkdyb3VwIiwiR3JvdXAiLCJyZSIsIkNsYXNzTGlzdCIsImNsYXNzTGlzdCIsInJlbW92ZU1hdGNoaW5nIiwidG9nZ2xlIiwiJGtleXMiLCJlbnVtQnVnS2V5cyIsInB4IiwicmFuZG9tIiwiTG9jYWxlUmVjZWl2ZXIiLCJkZWZhdWx0TG9jYWxlIiwiYW50TG9jYWxlIiwibG9jYWxlRnJvbUNvbnRleHQiLCJsb2NhbGVDb2RlIiwiZXhpc3QiLCJnZXRMb2NhbGVDb2RlIiwid2VicGFja1BvbHlmaWxsIiwicGF0aHMiLCJfcmVhY3RJcyIsImlzTWVtbyIsIl92YWx1ZVV0aWwiLCJDZWxsIiwiY2VsbFByb3BzIiwiX3JlZiRjb21wb25lbnQiLCJjb2xTcGFuIiwicm93U3BhbiIsImZpeExlZnQiLCJmaXhSaWdodCIsImZpcnN0Rml4TGVmdCIsImxhc3RGaXhMZWZ0IiwiZmlyc3RGaXhSaWdodCIsImxhc3RGaXhSaWdodCIsImFwcGVuZE5vZGUiLCJfcmVmJGFkZGl0aW9uYWxQcm9wcyIsImFkZGl0aW9uYWxQcm9wcyIsImVsbGlwc2lzIiwicm93VHlwZSIsImlzU3RpY2t5IiwiY2VsbFByZWZpeENscyIsInJlbmRlckRhdGEiLCJjZWxsQ29sU3BhbiIsImNlbGxSb3dTcGFuIiwiY2VsbFN0eWxlIiwiY2VsbENsYXNzTmFtZSIsInJlc3RDZWxsUHJvcHMiLCJtZXJnZWRDb2xTcGFuIiwibWVyZ2VkUm93U3BhbiIsImZpeGVkU3R5bGUiLCJpc0ZpeExlZnQiLCJpc0ZpeFJpZ2h0IiwiYWxpZ25TdHlsZSIsInRleHRBbGlnbiIsImVsbGlwc2lzQ29uZmlnIiwic2hvd1RpdGxlIiwiUmVmQ2VsbCIsIm1lbW8iLCJzaG91bGRDZWxsVXBkYXRlIiwibGlzdENhY2hlQ2xlYXIiLCJsaXN0Q2FjaGVEZWxldGUiLCJsaXN0Q2FjaGVHZXQiLCJsaXN0Q2FjaGVIYXMiLCJsaXN0Q2FjaGVTZXQiLCJMaXN0Q2FjaGUiLCJlcSIsIm5hdGl2ZUNyZWF0ZSIsImdldE5hdGl2ZSIsImlzS2V5YWJsZSIsIl9fZGF0YV9fIiwiX19ldmVudExpc3RlbmVyTGlzdCIsIl9fZXZlbnRIYW5kbGVyTWFwIiwicGFzc2l2ZSIsImNhcHR1cmUiLCJldmVudFRhcmdldF9mbGF0dGVuTW9yZSIsImxpc3RlbmVyQ2FsbGJhY2siLCJpc0V2ZW50TGlzdGVuZXIiLCJoYW5kbGVFdmVudCIsImV2ZW50VGFyZ2V0X2FkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVkIiwiZXZlbnRUYXJnZXRfZmxhdHRlbiIsIl9ldmVudExpc3RlbmVyTGlzdCIsImV2ZW50VGFyZ2V0X3JlbW92ZUV2ZW50TGlzdGVuZXIiLCJfZGlzcGF0Y2hGbGFnIiwiX2luaXRpYWxpemVkRmxhZyIsIl9pc1RydXN0ZWQiLCJldmVudF9kaXNwYXRjaCIsImNoYXJhY3RlckRhdGFfc3Vic3RyaW5nRGF0YSIsInNoYWRvd1RyZWVfZmluZEFTbG90Iiwic2xvdGFibGUiLCJvcGVuRmxhZyIsImFzTm9kZSIsIl9tb2RlIiwic2hhZG93VHJlZV9maW5kU2xvdGFibGVzIiwic2xvdGFibGVzIiwibm9kZXNJZGVudGljYWwiLCJzaGFkb3dUcmVlX2ZpbmRGbGF0dGVuZWRTbG90YWJsZXMiLCJ0ZW1wb3JhcnlSZXN1bHQiLCJQb3RlbnRpYWxDdXN0b21FbGVtZW50TmFtZSIsIk5hbWVzV2l0aEh5cGhlbiIsIkVsZW1lbnROYW1lcyIsIlZvaWRFbGVtZW50TmFtZXMiLCJTaGFkb3dIb3N0TmFtZXMiLCJjdXN0b21FbGVtZW50X2lzVmFsaWRFbGVtZW50TmFtZSIsImN1c3RvbUVsZW1lbnRfaXNWb2lkRWxlbWVudE5hbWUiLCJjdXN0b21FbGVtZW50X2lzVmFsaWRTaGFkb3dIb3N0TmFtZSIsImNhbGxiYWNrTmFtZSIsIl9pdGVyYXRvcjIiLCJfc3ltYm9sMiIsInJlbW92ZUNvbnRhaW5lciIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJyZWFkeSIsInVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyIiwiY3JlYXRlQ29udGFpbmVyIiwiX2NvbnRhaW5lciIsImZvcmNlVXBkYXRlIiwiX2FycmF5V2l0aEhvbGVzIiwiX25vbkl0ZXJhYmxlUmVzdCIsIm9mZnNldFBhcmVudCIsIl9ib3giLCJhZ2VudCIsInZlbmRvciIsIm9wZXJhIiwiYnVpbGRlcl8xIiwidXRpbF8zIiwiZm9ybWF0T3B0aW9ucyIsImlzWE1MQnVpbGRlckNyZWF0ZU9wdGlvbnMiLCJEZWZhdWx0QnVpbGRlck9wdGlvbnMiLCJjb250ZW50cyIsImJ1aWxkZXIiLCJjcmVhdGVEb2N1bWVudCIsIlhNTEJ1aWxkZXJJbXBsIiwic2V0T3B0aW9ucyIsImNyZWF0ZVBhcnNlciIsInBhcnNlRnJvbVN0cmluZyIsInRocm93SWZQYXJzZXJFcnJvciIsInBhcnNlIiwiWE1MQnVpbGRlck9wdGlvbktleXMiLCJjcmVhdGVPcHRpb25zIiwiY29udmVydCIsImF0dCIsImlucyIsInRleHQiLCJjZGF0YSIsImNvbW1lbnQiLCJfeG1sQnVpbGRlck9wdGlvbnMiLCJidWlsZGVycyIsImZyYWdtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImZyYWciLCJpbXBvcnROb2RlIiwiYnVpbGRlck9wdGlvbnMiLCJjb252ZXJ0T3B0aW9ucyIsImFGdW5jdGlvbiIsInNoYXJlZCIsImNvcHlyaWdodCIsImRQcyIsIklFX1BST1RPIiwiRW1wdHkiLCJjcmVhdGVEaWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJzcmMiLCJjb250ZW50V2luZG93Iiwib3BlbiIsIndyaXRlIiwibHQiLCJQcm9wZXJ0aWVzIiwiZGVmIiwiVEFHIiwic3RhdCIsIkxJQlJBUlkiLCJ3a3NFeHQiLCIkU3ltYm9sIiwiY2hhbmdlQ29uZmlybUxvY2FsZSIsIm5ld0xvY2FsZSIsInJ1bnRpbWVMb2NhbGUiLCJNb2RhbCIsImdldENvbmZpcm1Mb2NhbGUiLCJfcmVhY3QyIiwiX2ltcGxlbWVudGF0aW9uMiIsImdldEV4cGFuZGFibGVQcm9wcyIsImV4cGFuZGFibGUiLCJsZWdhY3lFeHBhbmRhYmxlQ29uZmlnIiwiZ2V0RGF0YUFuZEFyaWFQcm9wcyIsIklOVEVSTkFMX0NPTF9ERUZJTkUiLCJfcmVhY3QiLCJpc0ZyYWdtZW50IiwiX2VuX1VTIiwiX2VuX1VTMiIsIl9lbl9VUzMiLCJfZW5fVVM0IiwidHlwZVRlbXBsYXRlIiwiUGFnaW5hdGlvbiIsIkRhdGVQaWNrZXIiLCJUaW1lUGlja2VyIiwiQ2FsZW5kYXIiLCJwbGFjZWhvbGRlciIsIlRhYmxlIiwiZmlsdGVyVGl0bGUiLCJmaWx0ZXJDb25maXJtIiwiZmlsdGVyUmVzZXQiLCJmaWx0ZXJFbXB0eVRleHQiLCJlbXB0eVRleHQiLCJzZWxlY3RBbGwiLCJzZWxlY3RJbnZlcnQiLCJzZWxlY3ROb25lIiwic2VsZWN0aW9uQWxsIiwic29ydFRpdGxlIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJ0cmlnZ2VyRGVzYyIsInRyaWdnZXJBc2MiLCJjYW5jZWxTb3J0Iiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsImp1c3RPa1RleHQiLCJQb3Bjb25maXJtIiwiVHJhbnNmZXIiLCJ0aXRsZXMiLCJzZWFyY2hQbGFjZWhvbGRlciIsIml0ZW1Vbml0IiwiaXRlbXNVbml0Iiwic2VsZWN0Q3VycmVudCIsInJlbW92ZUN1cnJlbnQiLCJyZW1vdmVBbGwiLCJVcGxvYWQiLCJ1cGxvYWRpbmciLCJyZW1vdmVGaWxlIiwidXBsb2FkRXJyb3IiLCJwcmV2aWV3RmlsZSIsImRvd25sb2FkRmlsZSIsImRlc2NyaXB0aW9uIiwiZWRpdCIsImNvcGllZCIsIlBhZ2VIZWFkZXIiLCJiYWNrIiwib3B0aW9uYWwiLCJ0eXBlcyIsImludGVnZXIiLCJyZWdleHAiLCJlbWFpbCIsInVybCIsImhleCIsIm1pc21hdGNoIiwiSW1hZ2UiLCJwcmV2aWV3IiwidXNlTG9jYWxlUmVjZWl2ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2NyZWF0ZUNsYXNzMiIsIl9pbmhlcml0czIiLCJfY3JlYXRlU3VwZXIyIiwid2l0aENvbmZpZ0NvbnN1bWVyIiwiU0ZDIiwiY29uZmlnUHJvcHMiLCJiYXNpY1ByZWZpeENscyIsImNvbnMiLCJfcmVuZGVyRW1wdHkiLCJfY29sb3JzIiwidXNlSW5zZXJ0U3R5bGVzIiwiaWNvblN0eWxlcyIsIl9keW5hbWljQ1NTIiwiY2xhc3MiLCJmaWxsIiwiZm9jdXNhYmxlIiwic3R5bGVTdHIiLCJfdXNlQ29udGV4dCIsInVwZGF0ZUNTUyIsInByZXBlbmQiLCJnZXRDb2xsYXBzZWRIZWlnaHQiLCJnZXRSZWFsSGVpZ2h0Iiwic2tpcE9wYWNpdHlUcmFuc2l0aW9uIiwiY29sbGFwc2VNb3Rpb24iLCJhcnJEZWwiLCJhcnJBZGQiLCJwb3NUb0FyciIsImdldFBvc2l0aW9uIiwibGV2ZWwiLCJpc1RyZWVOb2RlIiwiZ2V0RHJhZ0NoaWxkcmVuS2V5cyIsImRyYWdOb2RlS2V5IiwiZHJhZ0NoaWxkcmVuS2V5cyIsImRpZyIsImlzTGFzdENoaWxkIiwiaXNGaXJzdENoaWxkIiwiY2FsY0Ryb3BQb3NpdGlvbiIsImRyYWdOb2RlIiwidGFyZ2V0Tm9kZSIsImluZGVudCIsInN0YXJ0TW91c2VQb3NpdGlvbiIsImFsbG93RHJvcCIsImZsYXR0ZW5lZE5vZGVzIiwiZXhwYW5kS2V5cyIsIl9hYnN0cmFjdERyb3BOb2RlRW50aSIsIl9ldmVudCR0YXJnZXQkZ2V0Qm91biIsInJhd0Ryb3BMZXZlbE9mZnNldCIsImFic3RyYWN0RHJvcE5vZGVFbnRpdHkiLCJldmVudEtleSIsIm5vZGVJbmRleCIsImZpbmRJbmRleCIsImZsYXR0ZW5lZE5vZGUiLCJwcmV2Tm9kZUtleSIsImluaXRpYWxBYnN0cmFjdERyb3BOb2RlS2V5IiwiYWJzdHJhY3REcmFnT3ZlckVudGl0eSIsImRyYWdPdmVyTm9kZUtleSIsImRyb3BQb3NpdGlvbiIsImRyb3BMZXZlbE9mZnNldCIsImFic3RyYWN0RHJvcERhdGFOb2RlIiwiZHJvcEFsbG93ZWQiLCJkcm9wTm9kZSIsImRyb3BUYXJnZXRLZXkiLCJkcm9wVGFyZ2V0UG9zIiwiZHJvcENvbnRhaW5lcktleSIsImNhbGNTZWxlY3RlZEtleXMiLCJzZWxlY3RlZEtleXMiLCJtdWx0aXBsZSIsImNvbnZlcnREYXRhVG9UcmVlIiwidHJlZURhdGEiLCJwcm9jZXNzb3IiLCJfcmVmMiRwcm9jZXNzUHJvcHMiLCJwcm9jZXNzUHJvcHMiLCJpbnRlcm5hbFByb2Nlc3NQcm9wcyIsImNoaWxkcmVuTm9kZXMiLCJfVHJlZU5vZGUiLCJwYXJzZUNoZWNrZWRLZXlzIiwia2V5UHJvcHMiLCJjaGVja2VkS2V5cyIsImhhbGZDaGVja2VkS2V5cyIsImNoZWNrZWQiLCJoYWxmQ2hlY2tlZCIsImNvbmR1Y3RFeHBhbmRQYXJlbnQiLCJrZXlMaXN0IiwiZXhwYW5kZWRLZXlzIiwiY29uZHVjdFVwIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImdldERhdGFBbmRBcmlhIiwib21pdFByb3BzIiwic3RhcnRzV2l0aCIsInRyZWVOb2RlRW50aXR5IiwicG9zQXJyIiwiZGVmYXVsdFN0YXRlVmFsdWUiLCJwb3N0U3RhdGUiLCJ1c2VTdGF0ZSIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwibWVyZ2VkVmFsdWUiLCJmaXJzdFJlbmRlclJlZiIsIm5ld1ZhbHVlIiwiaW5saW5lQ29sbGFwc2VkIiwiX3JjQ2hlY2tib3giLCJfZGV2V2FybmluZyIsIkludGVybmFsUmFkaW8iLCJfUmVhY3QkdXNlQ29udGV4dCIsImlubmVyUmVmIiwibWVyZ2VkUmVmIiwicmFkaW9Qcm9wcyIsIndyYXBwZXJDbGFzc1N0cmluZyIsIlJhZGlvIiwiUmFkaW9Hcm91cENvbnRleHRQcm92aWRlciIsIlJhZGlvR3JvdXBDb250ZXh0IiwiZ2V0Q29sdW1uS2V5IiwiZ2V0Q29sdW1uUG9zIiwicmVuZGVyQ29sdW1uVGl0bGUiLCJQcmVTZXJpYWxpemVyXzEiLCJPYmplY3RXcml0ZXJJbXBsIiwiX2J1aWxkZXJPcHRpb25zIiwid3JpdGVyT3B0aW9ucyIsIndlbGxGb3JtZWQiLCJjdXJyZW50TGlzdCIsImxpc3RSZWdpc3RlciIsInByZSIsIlByZVNlcmlhbGl6ZXIiLCJzZXRDYWxsYmFja3MiLCJiZWdpbkVsZW1lbnQiLCJjaGlsZEl0ZW1zIiwiX2FkZEVsZW1lbnQiLCJlbmRFbGVtZW50IiwiX2FkZEF0dHIiLCJfYWRkQ29tbWVudCIsIl9hZGRUZXh0IiwiaW5zdHJ1Y3Rpb24iLCJfYWRkSW5zdHJ1Y3Rpb24iLCJfYWRkQ0RBVEEiLCJzZXJpYWxpemUiLCJfcHJvY2VzcyIsIm5hbWVzU2VlbiIsImhhc05vblVuaXF1ZU5hbWVzIiwidGV4dENvdW50IiwiY29tbWVudENvdW50IiwiaW5zdHJ1Y3Rpb25Db3VudCIsImNkYXRhQ291bnQiLCJhdHRyS2V5cyIsIl9nZXRBdHRyS2V5IiwidGV4dEtleSIsIl9nZXROb2RlS2V5IiwiY29tbWVudEtleSIsImluc3RydWN0aW9uS2V5IiwiY2RhdGFLZXkiLCJlbGVHcm91cCIsImxpc3RPZkxpc3RzIiwidGV4dElkIiwiY29tbWVudElkIiwiaW5zdHJ1Y3Rpb25JZCIsImNkYXRhSWQiLCJsYXN0SXRlbSIsIl9pc0F0dHJOb2RlIiwiX2lzVGV4dE5vZGUiLCJfaXNDb21tZW50Tm9kZSIsIl9pc0luc3RydWN0aW9uTm9kZSIsIl9pc0NEQVRBTm9kZSIsIl9pc0VsZW1lbnROb2RlIiwiU3Vycm9nYXRlIiwiU2NhbGFyVmFsdWUiLCJOb25DaGFyYWN0ZXIiLCJBU0NJSUNvZGVQb2ludCIsIkFTQ0lJVGFiT3JOZXdMaW5lIiwiQVNDSUlXaGl0ZVNwYWNlIiwiQzBDb250cm9sIiwiQzBDb250cm9sT3JTcGFjZSIsIkNvbnRyb2wiLCJBU0NJSURpZ2l0IiwiQVNDSUlVcHBlckhleERpZ2l0IiwiQVNDSUlMb3dlckhleERpZ2l0IiwiQVNDSUlIZXhEaWdpdCIsIkFTQ0lJVXBwZXJBbHBoYSIsIkFTQ0lJTG93ZXJBbHBoYSIsIkFTQ0lJQWxwaGEiLCJBU0NJSUFscGhhbnVtZXJpYyIsImV2ZW50X2NyZWF0ZUFuRXZlbnQiLCJldmVudEludGVyZmFjZSIsInJlYWxtIiwiZXZlbnRfaW5uZXJFdmVudENyZWF0aW9uU3RlcHMiLCJkaWN0aW9uYXJ5IiwiX3RpbWVTdGFtcCIsImxlZ2FjeVRhcmdldE92ZXJyaWRlRmxhZyIsImxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyIsImNsZWFyVGFyZ2V0cyIsInRhcmdldE92ZXJyaWRlIiwiYWN0aXZhdGlvblRhcmdldCIsIl9yZWxhdGVkVGFyZ2V0IiwidG91Y2hUYXJnZXRzIiwidG91Y2hUYXJnZXQiLCJfdG91Y2hUYXJnZXRMaXN0IiwiZXZlbnRfYXBwZW5kVG9BbkV2ZW50UGF0aCIsImlzQWN0aXZhdGlvbkV2ZW50IiwiaXNNb3VzZUV2ZW50IiwiX2FjdGl2YXRpb25CZWhhdmlvciIsInNsb3RJbkNsb3NlZFRyZWUiLCJfZ2V0VGhlUGFyZW50IiwiX2J1YmJsZXMiLCJjbGVhclRhcmdldHNTdHJ1Y3QiLCJfcGF0aCIsInN0cnVjdCIsInNoYWRvd0FkanVzdGVkVGFyZ2V0IiwidG91Y2hUYXJnZXRMaXN0IiwiX2xlZ2FjeVByZUFjdGl2YXRpb25CZWhhdmlvciIsIl9ldmVudFBoYXNlIiwiQXRUYXJnZXQiLCJDYXB0dXJpbmciLCJldmVudF9pbnZva2UiLCJCdWJibGluZyIsIk5vbmUiLCJfY3VycmVudFRhcmdldCIsIl9zdG9wUHJvcGFnYXRpb25GbGFnIiwiX3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbkZsYWciLCJfY2FuY2VsZWRGbGFnIiwiX2xlZ2FjeUNhbmNlbGVkQWN0aXZhdGlvbkJlaGF2aW9yIiwiaW52b2NhdGlvblRhcmdldCIsImludm9jYXRpb25UYXJnZXRJblNoYWRvd1RyZWUiLCJyb290T2ZDbG9zZWRUcmVlIiwicGhhc2UiLCJ0YXJnZXRMaXN0ZW5lcnMiLCJldmVudF9pbm5lckludm9rZSIsIm9yaWdpbmFsRXZlbnRUeXBlIiwiZm91bmQiLCJsaXN0ZW5lciIsImltcGwiLCJnbG9iYWxPYmplY3QiLCJjdXJyZW50RXZlbnQiLCJfY3VycmVudEV2ZW50IiwiX2luUGFzc2l2ZUxpc3RlbmVyRmxhZyIsImV2ZW50X2RldGVybWluZVRoZVRhcmdldE9mQW5FdmVudEhhbmRsZXIiLCJldmVudFRhcmdldCIsImV2ZW50X2dldFRoZUN1cnJlbnRWYWx1ZU9mQW5FdmVudEhhbmRsZXIiLCJldmVudF9hY3RpdmF0ZUFuRXZlbnRIYW5kbGVyIiwiZXZlbnRfZGVhY3RpdmF0ZUFuRXZlbnRIYW5kbGVyIiwiZXZlbnRfc2V0VGhlQ2FuY2VsZWRGbGFnIiwiX2NhbmNlbGFibGUiLCJldmVudF9pbml0aWFsaXplIiwiY2FuY2VsYWJsZSIsImV2ZW50Q29uc3RydWN0b3IiLCJpZGxBdHRyaWJ1dGVzIiwiZXZlbnRfY3JlYXRlTGVnYWN5RXZlbnQiLCJldmVudF9nZXR0ZXJFdmVudEhhbmRsZXJJRExBdHRyaWJ1dGUiLCJ0aGlzT2JqIiwiZXZlbnRfc2V0dGVyRXZlbnRIYW5kbGVySURMQXR0cmlidXRlIiwiX3N0YXJ0Tm9kZSIsIl9zdGFydE9mZnNldCIsIl9lbmROb2RlIiwiX2VuZE9mZnNldCIsIl9jb2xsYXBzZWQiLCJ0ZXh0X2NvbnRpZ3VvdXNUZXh0Tm9kZXMiLCJ0ZXh0X3NwbGl0IiwiZXZlbnRJbml0IiwiX2NvbXBvc2VkRmxhZyIsImNvbXBvc2VkUGF0aCIsImN1cnJlbnRUYXJnZXRJbmRleCIsImN1cnJlbnRUYXJnZXRIaWRkZW5TdWJ0cmVlTGV2ZWwiLCJjdXJyZW50SGlkZGVuTGV2ZWwiLCJtYXhIaWRkZW5MZXZlbCIsInVuc2hpZnQiLCJzdG9wUHJvcGFnYXRpb24iLCJOT05FIiwiQ0FQVFVSSU5HX1BIQVNFIiwiQVRfVEFSR0VUIiwiQlVCQkxJTkdfUEhBU0UiLCJlbGVtZW50SWQiLCJzZWxlY3RvcnMiLCJfZW5jb2RpbmciLCJsYWJlbHMiLCJfY29udGVudFR5cGUiLCJzY2hlbWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwicG9ydCIsInF1ZXJ5IiwiX2Nhbm5vdEJlQUJhc2VVUkxGbGFnIiwiX2Jsb2JVUkxFbnRyeSIsIl9vcmlnaW4iLCJfbm9kZURvY3VtZW50T3ZlcndyaXRlIiwiX2ltcGxlbWVudGF0aW9uIiwiVVJMIiwibm9kZV9saXN0T2ZFbGVtZW50c1dpdGhRdWFsaWZpZWROYW1lIiwibm9kZV9saXN0T2ZFbGVtZW50c1dpdGhOYW1lc3BhY2UiLCJub2RlX2xpc3RPZkVsZW1lbnRzV2l0aENsYXNzTmFtZXMiLCJ4bWxfaXNOYW1lIiwiZG9jdW1lbnRfaW50ZXJuYWxDcmVhdGVFbGVtZW50TlMiLCJuYW1lc3BhY2VfdmFsaWRhdGVBbmRFeHRyYWN0Iiwid2hhdFRvU2hvdyIsIkFsbCIsIl93aGF0VG9TaG93IiwiX2l0ZXJhdG9yQ29sbGVjdGlvbiIsIl9maWx0ZXIiLCJhY2NlcHROb2RlIiwid2Fsa2VyIiwiaW5pdCIsImRpc2FibGVTaGFkb3ciLCJuYW1lc3BhY2VQcmVmaXgiLCJfYWN0aXZlRmxhZyIsInRyYXZlcnNhbF9maWx0ZXIiLCJ0cmF2ZXJzZXIiLCJTa2lwIiwiQWNjZXB0IiwiUmVqZWN0IiwiTmFtZXNwYWNlQWxnb3JpdGhtXzEiLCJFbGVtZW50QWxnb3JpdGhtXzEiLCJuZXdEYXRhIiwib3JkZXJlZFNldF9wYXJzZSIsImlucHV0VG9rZW5zIiwic3BsaXRBU3RyaW5nT25BU0NJSVdoaXRlc3BhY2UiLCJvcmRlcmVkU2V0X3NlcmlhbGl6ZSIsIm9yZGVyZWRTZXRfc2FuaXRpemUiLCJvcmRlcmVkU2V0X2NvbnRhaW5zIiwic2V0MSIsInNldDIiLCJjYXNlU2Vuc2l0aXZlIiwiaXNLZXkiLCJzdHJpbmdUb1BhdGgiLCJiYXNlR2V0VGFnIiwiaXNPYmplY3RMaWtlIiwiaXNTeW1ib2wiLCJfZXh0ZW5kczMiLCJhcmd1bWVudENvbnRhaW5lciIsIkNvbnRhaW5lciIsIldyYXBwZWRDb21wb25lbnQiLCJnZXREaXNwbGF5TmFtZSIsIl9ob2lzdE5vblJlYWN0U3RhdGljczIiLCJpZGVudGl0eSIsImZsYXR0ZW5BcnJheSIsInRyZWVUcmF2ZXJzZSIsImZsYXR0ZW5GaWVsZHMiLCJtYXliZU5lc3RlZEZpZWxkcyIsImlzTGVhZk5vZGUiLCJlcnJvck1lc3NhZ2UiLCJub3JtYWxpemVWYWxpZGF0ZVJ1bGVzIiwidmFsaWRhdGVUcmlnZ2VyIiwidmFsaWRhdGVSdWxlcyIsIm5ld0l0ZW0iLCJnZXRWYWxpZGF0ZVRyaWdnZXJzIiwiY3VyciIsImdldFZhbHVlRnJvbUV2ZW50IiwiZ2V0RXJyb3JTdHJzIiwiZ2V0UGFyYW1zIiwib3B0IiwiaGFzUnVsZXMiLCJsYXN0SW5kZXhPZiIsIl93YXJuaW5nMiIsInRyZWUiLCJzdWJUcmVlIiwic3ViVHJlZUtleSIsImV4dGVuZFN0YXRpY3MiLCJfX2V4dGVuZHMiLCJNaW5pU3RvcmVDb250ZXh0IiwiX19hc3NpZ24iLCJkZWZhdWx0TWFwU3RhdGVUb1Byb3BzIiwibWFwU3RhdGVUb1Byb3BzIiwic2hvdWxkU3Vic2NyaWJlIiwiZmluYWxNYXBTdGF0ZVRvUHJvcHMiLCJDb25uZWN0IiwidW5zdWJzY3JpYmUiLCJnZXRTdGF0ZSIsInN1YnNjcmliZWQiLCJ0cnlTdWJzY3JpYmUiLCJ0cnlVbnN1YnNjcmliZSIsInN1YnNjcmliZSIsIm1pbmlTdG9yZUZvcndhcmRlZFJlZiIsImZvcndhcmRlZCIsIm9taXQiLCJjcmVhdGVDaGFpbmVkRnVuY3Rpb24iLCJhcHBsZVBob25lIiwiYXBwbGVJcG9kIiwiYXBwbGVUYWJsZXQiLCJhbmRyb2lkUGhvbmUiLCJhbmRyb2lkVGFibGV0IiwiYW1hem9uUGhvbmUiLCJhbWF6b25UYWJsZXQiLCJ3aW5kb3dzUGhvbmUiLCJ3aW5kb3dzVGFibGV0Iiwib3RoZXJCbGFja2JlcnJ5Iiwib3RoZXJCbGFja2JlcnJ5MTAiLCJvdGhlck9wZXJhIiwib3RoZXJDaHJvbWUiLCJvdGhlckZpcmVmb3giLCJ1YSIsIl90bXAiLCJfdG1wMyIsImFwcGxlIiwicGhvbmUiLCJpcG9kIiwidGFibGV0IiwiZGV2aWNlIiwiYW1hem9uIiwiYW5kcm9pZCIsIndpbmRvd3MiLCJibGFja2JlcnJ5IiwiYmxhY2tiZXJyeTEwIiwiZmlyZWZveCIsImNocm9tZSIsImdldEtleUZyb21DaGlsZHJlbkluZGV4IiwibWVudUV2ZW50S2V5IiwiZ2V0TWVudUlkRnJvbVN1Yk1lbnVFdmVudEtleSIsImxvb3BNZW51SXRlbSIsImlzTWVudUl0ZW1Hcm91cCIsIm1lbnVBbGxQcm9wcyIsImdldFdpZHRoIiwiX2dldENvbXB1dGVkU3R5bGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJzdHlsZVByb3BlcnR5IiwiYXV0b0FkanVzdE92ZXJmbG93IiwidG9wTGVmdCIsImJvdHRvbUxlZnQiLCJsZWZ0VG9wIiwicmlnaHRUb3AiLCJwbGFjZW1lbnRzUnRsIiwiZ3VpZCIsInBvcHVwUGxhY2VtZW50TWFwIiwiaG9yaXpvbnRhbCIsImRlZmF1bHRBY3RpdmVGaXJzdCIsIm1lbnVJZCIsIlN1Yk1lbnUiLCJvbkRlc3Ryb3kiLCJtZW51IiwibWVudUluc3RhbmNlIiwiZ2V0VmlzaWJsZSIsIm9uVGl0bGVDbGljayIsInRyaWdnZXJPcGVuQ2hhbmdlIiwiaGFuZGxlZCIsIm9uT3BlbkNoYW5nZSIsImRvbUV2ZW50IiwicGFyZW50TWVudSIsInN1Yk1lbnVJbnN0YW5jZSIsIm9uVGl0bGVNb3VzZUVudGVyIiwib25JdGVtSG92ZXIiLCJob3ZlciIsIm9uVGl0bGVNb3VzZUxlYXZlIiwidHJpZ2dlclN1Yk1lbnVBY3Rpb24iLCJvblN1Yk1lbnVDbGljayIsImFkZEtleVBhdGgiLCJvblNlbGVjdCIsIm9uRGVzZWxlY3QiLCJnZXRBY3RpdmVDbGFzc05hbWUiLCJnZXREaXNhYmxlZENsYXNzTmFtZSIsImdldFNlbGVjdGVkQ2xhc3NOYW1lIiwiZ2V0T3BlbkNsYXNzTmFtZSIsImlzT3BlbiIsImdldE1vZGUiLCJzYXZlTWVudUluc3RhbmNlIiwia2V5UGF0aCIsIm9wZW5DaGFuZ2UiLCJtb3VzZWVudGVyVGltZW91dCIsImlzQ2hpbGRyZW5TZWxlY3RlZCIsImxvb3BNZW51SXRlbVJlY3Vyc2l2ZWx5IiwiaXNTdWJNZW51IiwiaXNNZW51SXRlbSIsImlzSW5saW5lTW9kZSIsImFkanVzdFdpZHRoIiwic3ViTWVudVRpdGxlIiwicG9wdXBNZW51Iiwic2F2ZVN1Yk1lbnVUaXRsZSIsImdldEJhc2VQcm9wcyIsIm1lcmdlZE1vZGUiLCJpbmxpbmVJbmRlbnQiLCJvcGVuS2V5cyIsInN1Yk1lbnVPcGVuRGVsYXkiLCJzdWJNZW51Q2xvc2VEZWxheSIsImZvcmNlU3ViTWVudVJlbmRlciIsImludGVybmFsTWVudUlkIiwibWFudWFsUmVmIiwiaXRlbUljb24iLCJleHBhbmRJY29uIiwiaGF2ZVJlbmRlcmVkIiwiaXNSb290TWVudSIsInVwZGF0ZVN0YXRlIiwiaXNPcGVuQ2hhbmdlZCIsImlzTW9kZUNoYW5nZWQiLCJ1cGRhdGVTdGF0ZVJhZiIsIm1pbldpZHRoVGltZW91dCIsImJhc2VQcm9wcyIsIm1lcmdlZE1vdGlvbiIsImhhdmVPcGVuZWQiLCJzaGFyZWRDbGFzc05hbWUiLCJyZW5kZXJQb3B1cE1lbnUiLCJfY2xhc3NOYW1lczIiLCJfcHJvcHMkcGFyZW50TWVudSIsIl9jbGFzc05hbWVzMyIsImlubGluZSIsIm1vdXNlRXZlbnRzIiwidGl0bGVDbGlja0V2ZW50cyIsInRpdGxlTW91c2VFdmVudHMiLCJpc1JUTCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdMZWZ0IiwiYXJpYU93bnMiLCJ0cmlnZ2VyTm9kZSIsInBvcHVwT2Zmc2V0IiwiY29ubmVjdGVkIiwiYWN0aXZlS2V5Iiwic3ViTWVudUtleSIsIkRPTVdyYXAiLCJtdXRhdGlvbk9ic2VydmVyIiwib3JpZ2luYWxUb3RhbFdpZHRoIiwib3ZlcmZsb3dlZEl0ZW1zIiwibWVudUl0ZW1TaXplcyIsImNhbmNlbEZyYW1lSWQiLCJsYXN0VmlzaWJsZUluZGV4IiwiY2hpbGRSZWYiLCJnZXRNZW51SXRlbU5vZGVzIiwidWwiLCJnZXRPdmVyZmxvd2VkU3ViTWVudUl0ZW0iLCJrZXlQcmVmaXgiLCJyZW5kZXJQbGFjZWhvbGRlciIsIm92ZXJmbG93ZWRJbmRpY2F0b3IiLCJfY29weSRwcm9wcyIsInByb3BTdHlsZSIsInJlc3QiLCJzZXRDaGlsZHJlbldpZHRoQW5kUmVzaXplIiwidWxDaGlsZHJlbk5vZGVzIiwibGFzdE92ZXJmbG93ZWRJbmRpY2F0b3JQbGFjZWhvbGRlciIsIm1lbnVJdGVtTm9kZXMiLCJvdmVyZmxvd2VkSW5kaWNhdG9yV2lkdGgiLCJjdXIiLCJoYW5kbGVSZXNpemUiLCJjdXJyZW50U3VtV2lkdGgiLCJsaVdpZHRoIiwibWVudVVsIiwib3ZlcmZsb3dlZCIsIlRhZyIsInVwZGF0ZUFjdGl2ZUtleSIsImdldEV2ZW50S2V5IiwiZ2V0QWN0aXZlS2V5Iiwib3JpZ2luYWxBY3RpdmVLZXkiLCJpbnN0YW5jZUFycmF5IiwiU3ViUG9wdXBNZW51IiwiZ2V0RmxhdEluc3RhbmNlQXJyYXkiLCJhY3RpdmVJdGVtIiwic2VsZWN0SW5mbyIsInJldmVyc2UiLCJhY3RpdmVJbmRleCIsImV2ZXJ5IiwiY2kiLCJyZW5kZXJDb21tb25NZW51SXRlbSIsImV4dHJhUHJvcHMiLCJjaGlsZFByb3BzIiwicmVuZGVyTWVudUl0ZW0iLCJkb21Qcm9wcyIsIm1lbnVNb2RlIiwiX3JlZiRkZWZhdWx0TW90aW9ucyIsImRlZmF1bHRNb3Rpb25zIiwib3BlbkFuaW1hdGlvbiIsIm9wZW5UcmFuc2l0aW9uTmFtZSIsInN3aXRjaGluZ01vZGVGcm9tSW5saW5lIiwiZGVmYXVsdE1vdGlvbiIsIk1lbnUiLCJzZWxlY3RhYmxlIiwiX3NlbGVjdGVkS2V5cyIsInNlbGVjdGVkS2V5IiwiZ2V0UmVhbE1lbnVNb2RlIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplMiIsImlubmVyTWVudSIsImdldFdyYXBwZWRJbnN0YW5jZSIsImNoYW5nZWQiLCJwcm9jZXNzU2luZ2xlIiwib25lQ2hhbmdlZCIsIl9zZWxlY3RlZEtleXMyIiwicmVzdG9yZU1vZGVWZXJ0aWNhbEZyb21JbmxpbmUiLCJvblRyYW5zaXRpb25FbmQiLCJ3aWR0aENvbGxhcHNlZCIsImNsYXNzTmFtZVZhbHVlIiwiYW5pbVZhbCIsImljb25TY2FsZWQiLCJzZXRJbm5lck1lbnUiLCJpbml0aWFsU3RhdGUiLCJkZWZhdWx0U2VsZWN0ZWRLZXlzIiwiZGVmYXVsdE9wZW5LZXlzIiwicGFydGlhbCIsImlubGluZU9wZW5LZXlzIiwidXBkYXRlTWluaVN0b3JlIiwidXBkYXRlTWVudURpc3BsYXkiLCJzaWRlckNvbGxhcHNlZCIsImNvbGxhcHNlZFdpZHRoIiwicHJldk9wZW5LZXlzIiwiZ2V0SW5saW5lQ29sbGFwc2VkIiwicHJldlN0b3JlU3RhdGUiLCJuZXdTdG9yZVN0YXRlIiwiTWVudUl0ZW0iLCJpc1NlbGVjdGVkIiwic2F2ZU5vZGUiLCJtb3VzZUV2ZW50IiwiTWVudUl0ZW1Hcm91cCIsInJlbmRlcklubmVyTWVudUl0ZW0iLCJfcHJvcHMkY2xhc3NOYW1lIiwidGl0bGVDbGFzc05hbWUiLCJsaXN0Q2xhc3NOYW1lIiwid3JhcENhbGxiYWNrIiwibmUiLCJfRXZlbnRPYmplY3QyIiwidXNlQ2FwdHVyZSIsImF0dGFjaEV2ZW50IiwiZGV0YWNoRXZlbnQiLCJfRXZlbnRPYmplY3QiLCJjb2RlIiwiMSIsIl9kZXJlcV8iLCJmb3JjZVNpbWlsYXIiLCIyIiwiU2ltaWxhciIsImlzRXF1YWwiLCIzIiwiTWFwT3JTaW1pbGFyIiwibW92ZVRvTW9zdFJlY2VudExydSIsImxydSIsImxydVBhdGgiLCJpc01hdGNoIiwibHJ1TGVuIiwibHJ1UGF0aExlbiIsInJlbW92ZUNhY2hlZFJlc3VsdCIsInJlbW92ZWRMcnUiLCJyZW1vdmVkTHJ1TGVuIiwiY3VycmVudExydSIsImNhY2hlSXRlbSIsIm1lbW9pemVyaWZpYyIsIm5ld01hcCIsImZuUmVzdWx0IiwiY3VycmVudENhY2hlIiwiYXJnc0xlbmd0aE1pbnVzT25lIiwiaXNNZW1vaXplZCIsIm51bUFyZ3MiLCJ3YXNNZW1vaXplZCIsIl9yY1NlbGVjdCIsIlNlbGVjdFNpemVzIiwiU2VsZWN0UHJvcFR5cGVzIiwibm90Rm91bmRDb250ZW50Iiwic2hvd1NlYXJjaCIsIm9wdGlvbkxhYmVsUHJvcCIsImNob2ljZVRyYW5zaXRpb25OYW1lIiwiU2VsZWN0Iiwic2F2ZVNlbGVjdCIsInJjU2VsZWN0IiwicmVuZGVyU2VsZWN0IiwiZ2V0Q29udGV4dFBvcHVwQ29udGFpbmVyIiwiX2EkY2xhc3NOYW1lIiwicmVtb3ZlSWNvbiIsImNsZWFySWNvbiIsIm1lbnVJdGVtU2VsZWN0ZWRJY29uIiwic2hvd0Fycm93IiwiY2xzIiwiaXNDb21ib2JveCIsIm1vZGVDb25maWciLCJ0YWdzIiwiY29tYm9ib3giLCJmaW5hbFJlbW92ZUljb24iLCJmaW5hbENsZWFySWNvbiIsImZpbmFsTWVudUl0ZW1TZWxlY3RlZEljb24iLCJpbnB1dEljb24iLCJyZW5kZXJTdWZmaXhJY29uIiwiZ2V0Tm90Rm91bmRDb250ZW50IiwiU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSIsImxvYWRpbmciLCJzdWZmaXhJY29uIiwiT3B0aW9uIiwiT3B0R3JvdXAiLCJyZWFjdElzIiwiUkVBQ1RfU1RBVElDUyIsImdldERlZmF1bHRQcm9wcyIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsIm1peGlucyIsIktOT1dOX1NUQVRJQ1MiLCJjYWxsZXIiLCJjYWxsZWUiLCJhcml0eSIsIk1FTU9fU1RBVElDUyIsIlRZUEVfU1RBVElDUyIsImdldFN0YXRpY3MiLCJGb3J3YXJkUmVmIiwiTWVtbyIsIm9iamVjdFByb3RvdHlwZSIsImhvaXN0Tm9uUmVhY3RTdGF0aWNzIiwidGFyZ2V0Q29tcG9uZW50Iiwic291cmNlQ29tcG9uZW50IiwiYmxhY2tsaXN0IiwiaW5oZXJpdGVkQ29tcG9uZW50IiwidGFyZ2V0U3RhdGljcyIsInNvdXJjZVN0YXRpY3MiLCJXUE1MX2NvcmUiLCJhamF4SW5Qcm9ncmVzcyIsImNyZWF0ZUFqYXgiLCJjb250ZW50VHlwZSIsInVzZUZldGNoIiwiYWpheHVybCIsImhlYWRlcnMiLCJidWlsZEFqYXhQYXlsb2FkIiwiY3VycnlOIiwibm9uY2UiLCJlbmRwb2ludCIsInBheWxvYWQiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwib2siLCJzdWNjZXNzIiwic3RhdHVzVGV4dCIsImRvQWpheCIsInF1ZXJ5U3RyaW5nIiwiYXJyYXlGb3JtYXQiLCJidWlsZFBheWxvYWQiLCJ0b0lPYmplY3QiLCJhcnJheUluZGV4T2YiLCJjb2YiLCJ0b0ludGVnZXIiLCJfSW5wdXQiLCJDbGVhcmFibGVJbnB1dFR5cGUiLCJDbGVhcmFibGVMYWJlbGVkSW5wdXQiLCJyZWFkT25seSIsInJlbmRlckNsZWFySWNvbiIsInJlbmRlclN1ZmZpeCIsImFmZml4V3JhcHBlckNscyIsImxhYmVsZWRFbGVtZW50Iiwid3JhcHBlckNsYXNzTmFtZSIsImFkZG9uQ2xhc3NOYW1lIiwiYWRkb25CZWZvcmVOb2RlIiwiYWRkb25BZnRlck5vZGUiLCJtZXJnZWRXcmFwcGVyQ2xhc3NOYW1lIiwibWVyZ2VkR3JvdXBDbGFzc05hbWUiLCJyZW5kZXJUZXh0QXJlYVdpdGhDbGVhckljb24iLCJyZW5kZXJJbnB1dFdpdGhMYWJlbCIsInJlbmRlckxhYmVsZWRJY29uIiwicmVuZGVyQ2xlYXJhYmxlTGFiZWxlZElucHV0IiwiJGF0IiwiaXRlcmF0ZWQiLCJfdCIsInJlZGVmaW5lIiwiSXRlcmF0b3JzIiwiJGl0ZXJDcmVhdGUiLCJzZXRUb1N0cmluZ1RhZyIsIklURVJBVE9SIiwiQlVHR1kiLCJyZXR1cm5UaGlzIiwiQmFzZSIsIk5BTUUiLCJERUZBVUxUIiwiSVNfU0VUIiwiRk9SQ0VEIiwibWV0aG9kcyIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiZ2V0TWV0aG9kIiwia2luZCIsIkRFRl9WQUxVRVMiLCJWQUxVRVNfQlVHIiwiJG5hdGl2ZSIsIiRkZWZhdWx0IiwiJGVudHJpZXMiLCIkYW55TmF0aXZlIiwiaGlkZGVuS2V5cyIsInBJRSIsImdPUEQiLCJyYW5nZVBsYWNlaG9sZGVyIiwidGltZVBpY2tlckxvY2FsZSIsIm1vbWVudCIsInN5bWJvbE1hcCIsIm51bWJlck1hcCIsInBsdXJhbEZvcm0iLCJwbHVyYWxzIiwicGx1cmFsaXplIiwid2Vla2RheXNQYXJzZUV4YWN0Iiwic3VmZml4ZXMiLCI1IiwiOCIsIjcwIiwiODAiLCI3IiwiMjAiLCI1MCIsIjQiLCIxMDAiLCI2IiwiOSIsIjEwIiwiMzAiLCI2MCIsIjkwIiwicmVsYXRpdmVUaW1lV2l0aFBsdXJhbCIsImZvcm1zIiwic3RhbmRhbG9uZSIsImxhc3REaWdpdCIsImxhc3QyRGlnaXRzIiwibW9udGhzUGFyc2VFeGFjdCIsInJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbiIsIm11dGF0aW9uVGFibGUiLCJzb2Z0TXV0YXRpb24iLCJtdXRhdGlvbiIsIm1pbldlZWtkYXlzUGFyc2UiLCJmdWxsV2Vla2RheXNQYXJzZSIsInNob3J0V2Vla2RheXNQYXJzZSIsIm1vbnRoc1N0cmljdFJlZ2V4IiwibW9udGhzU2hvcnRTdHJpY3RSZWdleCIsImxvbmdNb250aHNQYXJzZSIsInNob3J0TW9udGhzUGFyc2UiLCJsYXN0TnVtYmVyIiwidHJhbnNsYXRlIiwibGwiLCJsbGwiLCJsbGxsIiwicGx1cmFsIiwicHJvY2Vzc1JlbGF0aXZlVGltZSIsIm1vbnRoc05vbWluYXRpdmVFbCIsIm1vbnRoc0dlbml0aXZlRWwiLCJtb21lbnRUb0Zvcm1hdCIsIl9tb250aHNHZW5pdGl2ZUVsIiwiX21vbnRoc05vbWluYXRpdmVFbCIsImNhbGVuZGFyRWwiLCJfY2FsZW5kYXJFbCIsIm1vbnRoc1Nob3J0RG90IiwibnVtYmVyc1Bhc3QiLCJudW1iZXJzRnV0dXJlIiwidmVyYmFsTnVtYmVyIiwibW9udGhzU2hvcnRXaXRoRG90cyIsIm1vbnRoc1Nob3J0V2l0aG91dERvdHMiLCJ3ZWVrRW5kaW5ncyIsImVyYVllYXJPcmRpbmFsUmVnZXgiLCIkMCIsIiQxIiwiJDIiLCIwIiwiNDAiLCJpc1VwcGVyIiwiZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyIiwidHJhbnNsYXRlU2luZ3VsYXIiLCJzcGVjaWFsIiwicmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyIiwidHJhbnNsYXRvciIsIndvcmRzIiwiY29ycmVjdEdyYW1tYXRpY2FsQ2FzZSIsIndvcmRLZXkiLCJyZWxhdGl2ZVRpbWVNciIsIm1vbnRoc05vbWluYXRpdmUiLCJtb250aHNTdWJqZWN0aXZlIiwiMTIiLCIxMyIsIm51bWJlcnNOb3VucyIsIm51bWJlck5vdW4iLCJodW5kcmVkIiwidGVuIiwib25lIiwid29yZCIsIm51bWJlckFzTm91biIsInByb2Nlc3NIb3Vyc0Z1bmN0aW9uIiwibm9taW5hdGl2ZSIsImFjY3VzYXRpdmUiLCJnZW5pdGl2ZSIsIl9yYWYiLCJpZHMiLCJkZWxheUZyYW1lcyIsIm15SWQiLCJyZXN0RnJhbWVzIiwiaW50ZXJuYWxDYWxsYmFjayIsInBpZCIsInN0b3JlU2hhcGUiLCJfcHJvcFR5cGVzIiwiX3Byb3BUeXBlczIiLCJjYWNoZWQiLCJmcmVzaCIsIm91dGVyIiwib3V0ZXJTdHlsZSIsIndpZHRoQ29udGFpbmVkIiwid2lkdGhTY3JvbGwiLCJfSGVhZGVyUm93IiwiX1RhYmxlQ29udGV4dCIsInN0aWNreU9mZnNldHMiLCJmbGF0dGVuQ29sdW1ucyIsIm9uSGVhZGVyUm93Iiwicm93cyIsInJvb3RDb2x1bW5zIiwiZmlsbFJvd0NlbGxzIiwiY29sSW5kZXgiLCJyb3dJbmRleCIsImN1cnJlbnRDb2xJbmRleCIsImNvbFNwYW5zIiwiY2VsbCIsImNvbFN0YXJ0Iiwic3ViQ29sdW1ucyIsImhhc1N1YkNvbHVtbnMiLCJjb2xFbmQiLCJyb3dDb3VudCIsIl9sb29wIiwicGFyc2VIZWFkZXJSb3dzIiwiV3JhcHBlckNvbXBvbmVudCIsInRyQ29tcG9uZW50IiwidGhDb21wb25lbnQiLCJyb3ciLCJjZWxscyIsInJvd0NvbXBvbmVudCIsImNlbGxDb21wb25lbnQiLCJnZXRDZWxsRml4ZWRJbmZvIiwic3RhcnRDb2x1bW4iLCJlbmRDb2x1bW4iLCJmaXhlZCIsIm5leHRDb2x1bW4iLCJwcmV2Q29sdW1uIiwicHJldkZpeExlZnQiLCJuZXh0Rml4UmlnaHQiLCJuZXh0Rml4TGVmdCIsInByZXZGaXhSaWdodCIsIl9sZWdhY3lVdGlsIiwiY29sV2lkdGhzIiwiY29scyIsIm11c3RJbnNlcnQiLCJjb2x1bUNvdW50IiwiX0NlbGwiLCJmaXhIZWFkZXIiLCJmaXhDb2x1bW4iLCJob3Jpem9uU2Nyb2xsIiwiZXhwYW5kZWQiLCJjb21wb25lbnRXaWR0aCIsInNjcm9sbGJhclNpemUiLCJjb250ZW50Tm9kZSIsImNvbnZlcnRDaGlsZHJlblRvQ29sdW1ucyIsIl90b0FycmF5Iiwibm9kZUNoaWxkcmVuIiwiZmxhdENvbHVtbnMiLCJwYXJzZWRGaXhlZCIsInN1YkNvbHVtIiwidHJhbnNmb3JtQ29sdW1ucyIsImdldFJvd0tleSIsIm9uVHJpZ2dlckV4cGFuZCIsInJvd0V4cGFuZGFibGUiLCJleHBhbmRJY29uQ29sdW1uSW5kZXgiLCJleHBhbmRSb3dCeUNsaWNrIiwiY29sdW1uV2lkdGgiLCJiYXNlQ29sdW1ucyIsIndpdGhFeHBhbmRDb2x1bW5zIiwiX2V4cGFuZENvbHVtbiIsImV4cGFuZENvbEluZGV4IiwiZXhwYW5kQ29sdW1uIiwicm93S2V5IiwicmVjb3JkRXhwYW5kYWJsZSIsIm9uRXhwYW5kIiwiY2xvbmVDb2x1bW5zIiwibWVyZ2VkQ29sdW1ucyIsImZpbmFsQ29sdW1ucyIsInJldmVydEZvclJ0bCIsInVzZUxheW91dFN0YXRlIiwiZGVmYXVsdFN0YXRlIiwic3RhdGVSZWYiLCJsYXN0UHJvbWlzZVJlZiIsInVwZGF0ZUJhdGNoUmVmIiwidXBkYXRlciIsInByb21pc2UiLCJwcmV2QmF0Y2giLCJiYXRjaFVwZGF0ZXIiLCJ1c2VUaW1lb3V0TG9jayIsImZyYW1lUmVmIiwiY2xlYW5VcCIsIml0ZW1zX3Blcl9wYWdlIiwianVtcF90byIsImp1bXBfdG9fY29uZmlybSIsInBhZ2UiLCJwcmV2X3BhZ2UiLCJuZXh0X3BhZ2UiLCJwcmV2XzUiLCJuZXh0XzUiLCJwcmV2XzMiLCJuZXh0XzMiLCJ5ZWFyUGxhY2Vob2xkZXIiLCJxdWFydGVyUGxhY2Vob2xkZXIiLCJtb250aFBsYWNlaG9sZGVyIiwid2Vla1BsYWNlaG9sZGVyIiwicmFuZ2VZZWFyUGxhY2Vob2xkZXIiLCJyYW5nZU1vbnRoUGxhY2Vob2xkZXIiLCJyYW5nZVdlZWtQbGFjZWhvbGRlciIsIl9lbXB0eSIsIl9zaW1wbGUiLCJkZWZhdWx0RW1wdHlJbWciLCJzaW1wbGVFbXB0eUltZyIsIl9hJGltYWdlIiwiaW1hZ2UiLCJpbWFnZVN0eWxlIiwiZGVzIiwiYWx0IiwiaW1hZ2VOb2RlIiwiUFJFU0VOVEVEX0lNQUdFX0RFRkFVTFQiLCJQUkVTRU5URURfSU1BR0VfU0lNUExFIiwiZ2V0S2V5VGhlbkluY3JlYXNlS2V5IiwiYXR0YWNoVHlwZUFwaSIsIm1lc3NhZ2VJbnN0YW5jZSIsIl9yY05vdGlmaWNhdGlvbiIsIl9Mb2FkaW5nT3V0bGluZWQiLCJfRXhjbGFtYXRpb25DaXJjbGVGaWxsZWQiLCJfQ2xvc2VDaXJjbGVGaWxsZWQiLCJfQ2hlY2tDaXJjbGVGaWxsZWQiLCJfSW5mb0NpcmNsZUZpbGxlZCIsIl91c2VNZXNzYWdlIiwiZGVmYXVsdFRvcCIsIm1heENvdW50IiwiZGVmYXVsdER1cmF0aW9uIiwibG9jYWxQcmVmaXhDbHMiLCJoYXNUcmFuc2l0aW9uTmFtZSIsImdldFJDTm90aWZpY2F0aW9uSW5zdGFuY2UiLCJfZ2xvYmFsQ29uZmlnIiwiaW5zdGFuY2VDb25maWciLCJuZXdJbnN0YW5jZSIsInR5cGVUb0ljb24iLCJnZXRSQ05vdGljZVByb3BzIiwiSWNvbkNvbXBvbmVudCIsIm1lc3NhZ2VDbGFzcyIsImNvbnRlbnQiLCJvbkNsb3NlIiwiYXBpIiwiY2xvc2VQcm9taXNlIiwibm90aWNlIiwicmVtb3ZlTm90aWNlIiwiZmlsbGVkIiwicmVqZWN0ZWQiLCJkZXN0cm95IiwibWVzc2FnZUtleSIsIm9yaWdpbmFsQXBpIiwiaXNBcmdzUHJvcHMiLCJ1c2VNZXNzYWdlIiwidHdvVG9uZUNvbG9yUGFsZXR0ZSIsImNhbGN1bGF0ZWQiLCJJY29uQmFzZSIsImNvbG9ycyIsImdldFR3b1RvbmVDb2xvcnMiLCJzZXRUd29Ub25lQ29sb3JzIiwiaW5qZWN0Q1NTIiwiY29udGFpbmVyQ2FjaGUiLCJwbGFjZWhvbGRlclN0eWxlIiwiZXhpc3ROb2RlIiwidGFnTmFtZSIsIl9vcHRpb24kY3NwMyIsIl9vcHRpb24kY3NwNCIsIl9vcHRpb24kY3NwNSIsImlubmVySFRNTCIsIm5ld05vZGUiLCJfY2FuVXNlRG9tIiwiYXR0YWNoVG8iLCJfb3B0aW9uJGNzcCIsIl9vcHRpb24kY3NwMiIsInN0eWxlTm9kZSIsImZpcnN0Q2hpbGQiLCJpbnNlcnRCZWZvcmUiLCJub3RpZmljYXRpb25JbnN0YW5jZSIsImNyZWF0ZWRSZWYiLCJlbGVtZW50cyIsInNldEVsZW1lbnRzIiwibm90aWNlUHJvcHMiLCJmaXJzdE1vdW50IiwiZGl2Iiwibm90aWNlRWxlIiwiX05vdGljZSIsImhvbGRlciIsIm9yaWdpbkVsZW1lbnRzIiwiY2xvbmVMaXN0IiwiRnJhZ21lbnQiLCJfaWNvblV0aWwiLCJfbW90aW9uIiwiSW50ZXJuYWxTZWxlY3QiLCJtZXJnZWROb3RGb3VuZCIsIl9hJGJvcmRlcmVkIiwiYm9yZGVyZWQiLCJkcm9wZG93bkNsYXNzTmFtZSIsIl9hJGxpc3RIZWlnaHQiLCJsaXN0SGVpZ2h0IiwiX2EkbGlzdEl0ZW1IZWlnaHQiLCJsaXN0SXRlbUhlaWdodCIsImN1c3RvbWl6ZVNpemUiLCJpc011bHRpcGxlIiwiX2dldEljb25zIiwic2VsZWN0UHJvcHMiLCJyY1NlbGVjdFJ0bERyb3BEb3duQ2xhc3NOYW1lIiwibWVyZ2VkU2l6ZSIsIl9yZXNwb25zaXZlT2JzZXJ2ZSIsInNjcmVlbnMiLCJzZXRTY3JlZW5zIiwic3VwcG9ydFNjcmVlbnMiLCJnZXRLZXkiLCJ3YXJuaW5nV2l0aG91dEtleSIsInRyZWVOb2RlIiwicmVjb3JkS2V5IiwiY29udmVydFRyZWVUb0RhdGEiLCJyb290Tm9kZXMiLCJfdXRpbCIsIl90cmVlTm9kZSRwcm9wcyIsImRhdGFOb2RlIiwicGFyc2VkQ2hpbGRyZW4iLCJmbGF0dGVuVHJlZURhdGEiLCJ0cmVlTm9kZUxpc3QiLCJleHBhbmRlZEtleVNldCIsImZsYXR0ZW5MaXN0IiwiZmxhdHRlbk5vZGUiLCJpc1N0YXJ0IiwiaXNFbmQiLCJ0cmF2ZXJzZURhdGFOb2RlcyIsImNvbnZlcnREYXRhVG9FbnRpdGllcyIsImRhdGFOb2RlcyIsImluaXRXcmFwcGVyIiwicHJvY2Vzc0VudGl0eSIsIm9uUHJvY2Vzc0ZpbmlzaGVkIiwiZXh0ZXJuYWxHZXRLZXkiLCJjaGlsZHJlblByb3BOYW1lIiwibGVnYWN5RXh0ZXJuYWxHZXRLZXkiLCJtZXJnZWRFeHRlcm5hbEdldEtleSIsInBvc0VudGl0aWVzIiwid3JhcHBlciIsInBhcmVudFBvcyIsImdldFRyZWVOb2RlUHJvcHMiLCJsb2FkZWRLZXlzIiwibG9hZGluZ0tleXMiLCJzZWxlY3RlZCIsImxvYWRlZCIsImRyYWdPdmVyIiwiZHJhZ092ZXJHYXBUb3AiLCJkcmFnT3ZlckdhcEJvdHRvbSIsImNvbnZlcnROb2RlUHJvcHNUb0V2ZW50RGF0YSIsImV2ZW50RGF0YSIsInN5bnRoZXRpY0dldEtleSIsImNvbmZpZ1R5cGUiLCJwcm9jZXNzTm9kZSIsInN1Yk5vZGUiLCJzdWJJbmRleCIsIl9DaGVja2JveCIsIl9Hcm91cCIsIkNoZWNrYm94IiwiX19BTlRfQ0hFQ0tCT1giLCJJbnRlcm5hbENoZWNrYm94IiwiX2EkaW5kZXRlcm1pbmF0ZSIsImluZGV0ZXJtaW5hdGUiLCJfYSRza2lwR3JvdXAiLCJza2lwR3JvdXAiLCJjaGVja2JveEdyb3VwIiwiR3JvdXBDb250ZXh0IiwicHJldlZhbHVlIiwicmVnaXN0ZXJWYWx1ZSIsImNhbmNlbFZhbHVlIiwiY2hlY2tib3hQcm9wcyIsInRvZ2dsZU9wdGlvbiIsImNoZWNrYm94Q2xhc3MiLCJuYXRpdmVFdmVudCIsImRlZmF1bHRDaGVja2VkIiwib25LZXlQcmVzcyIsImF1dG9Gb2N1cyIsIm90aGVycyIsImdsb2JhbFByb3BzIiwiSW50ZXJuYWxDaGVja2JveEdyb3VwIiwiX2Ekb3B0aW9ucyIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwicmVnaXN0ZXJlZFZhbHVlcyIsInNldFJlZ2lzdGVyZWRWYWx1ZXMiLCJnZXRPcHRpb25zIiwiZ3JvdXBQcmVmaXhDbHMiLCJvcHRpb25JbmRleCIsIm9wdHMiLCJwcmV2VmFsdWVzIiwiQ2hlY2tib3hHcm91cCIsIl9yY0Ryb3Bkb3duIiwiX1JpZ2h0T3V0bGluZWQiLCJfZHJvcGRvd25CdXR0b24iLCJfcmVhY3ROb2RlIiwiRHJvcGRvd24iLCJfcHJvcHMkcGxhY2VtZW50IiwiYXJyb3ciLCJvdmVybGF5Q2xhc3NOYW1lIiwiZHJvcGRvd25UcmlnZ2VyIiwib3ZlcmxheUNsYXNzTmFtZUN1c3RvbWl6ZWQiLCJ0cmlnZ2VyQWN0aW9ucyIsIm92ZXJsYXkiLCJvdmVybGF5Tm9kZSIsIm92ZXJsYXlQcm9wcyIsIl9vdmVybGF5UHJvcHMkc2VsZWN0YSIsIl9vdmVybGF5UHJvcHMkZm9jdXNhYiIsIm92ZXJsYXlOb2RlRXhwYW5kSWNvbiIsInJlbmRlck92ZXJsYXkiLCJnZXRQbGFjZW1lbnQiLCJCdXR0b24iLCJfcmNNZW51IiwiX1N1Yk1lbnUiLCJfTWVudUl0ZW0iLCJfU2lkZXIiLCJfTWVudUNvbnRleHQiLCJJbnRlcm5hbE1lbnUiLCJyZW5kZXJNZW51IiwibWVudUNsYXNzTmFtZSIsImFudGRNZW51VGhlbWUiLCJfUmVhY3QkQ29tcG9uZW50MiIsIl9zdXBlcjIiLCJTaWRlckNvbnRleHQiLCJEaXZpZGVyIiwiSXRlbUdyb3VwIiwiX3JjVG9vbHRpcCIsIl91c2VNZXJnZWRTdGF0ZTMiLCJfcGxhY2VtZW50cyIsIlByZXNldENvbG9yUmVnZXgiLCJQcmVzZXRDb2xvclR5cGVzIiwiZ2V0RGlzYWJsZWRDb21wYXRpYmxlQ2hpbGRyZW4iLCJlbGVtZW50VHlwZSIsIl9fQU5UX0JVVFRPTiIsIl9fQU5UX1NXSVRDSCIsIl9zcGxpdE9iamVjdCIsInBpY2tlZCIsIm9taXR0ZWQiLCJzcGxpdE9iamVjdCIsInNwYW5TdHlsZSIsImN1cnNvciIsImJsb2NrIiwiYnV0dG9uU3R5bGUiLCJUb29sdGlwIiwiX3VzZU1lcmdlZFN0YXRlIiwiZGVmYXVsdFZpc2libGUiLCJfdXNlTWVyZ2VkU3RhdGUyIiwic2V0VmlzaWJsZSIsImlzTm9UaXRsZSIsImdldFRvb2x0aXBQbGFjZW1lbnRzIiwiYXJyb3dQb2ludEF0Q2VudGVyIiwib3BlbkNsYXNzTmFtZSIsImdldFRvb2x0aXBDb250YWluZXIiLCJjb2xvciIsIm92ZXJsYXlJbm5lclN0eWxlIiwidGVtcFZpc2libGUiLCJhcnJvd0NvbnRlbnRTdHlsZSIsImNoaWxkQ2xzIiwiY3VzdG9tT3ZlcmxheUNsYXNzTmFtZSIsImZvcm1hdHRlZE92ZXJsYXlJbm5lclN0eWxlIiwiYmFja2dyb3VuZCIsIm9uVmlzaWJsZUNoYW5nZSIsInZpcyIsInRyYW5zZm9ybU9yaWdpbiIsImFycm93Q29udGVudCIsIl9CYXJzT3V0bGluZWQiLCJfTGVmdE91dGxpbmVkIiwiX2xheW91dCIsIl9pc051bWVyaWMiLCJkaW1lbnNpb25NYXhNYXAiLCJ4cyIsInNtIiwibWQiLCJsZyIsInhsIiwieHhsIiwiZ2VuZXJhdGVJZCIsIlNpZGVyIiwiX2EkZGVmYXVsdENvbGxhcHNlZCIsImRlZmF1bHRDb2xsYXBzZWQiLCJfYSR0aGVtZSIsIl9hJHN0eWxlIiwiX2EkY29sbGFwc2libGUiLCJjb2xsYXBzaWJsZSIsIl9hJHJldmVyc2VBcnJvdyIsInJldmVyc2VBcnJvdyIsIl9hJHdpZHRoIiwiX2EkY29sbGFwc2VkV2lkdGgiLCJ6ZXJvV2lkdGhUcmlnZ2VyU3R5bGUiLCJicmVha3BvaW50Iiwib25Db2xsYXBzZSIsIm9uQnJlYWtwb2ludCIsInNpZGVySG9vayIsIkxheW91dENvbnRleHQiLCJjb2xsYXBzZWQiLCJzZXRDb2xsYXBzZWQiLCJiZWxvdyIsInNldEJlbG93IiwiaGFuZGxlU2V0Q29sbGFwc2VkIiwicmVzcG9uc2l2ZUhhbmRsZXJSZWYiLCJtcWwiLCJyZXNwb25zaXZlSGFuZGxlciIsIm1hdGNoTWVkaWEiLCJ1bmlxdWVJZCIsImFkZFNpZGVyIiwicmVtb3ZlU2lkZXIiLCJkaXZQcm9wcyIsInJhd1dpZHRoIiwic2lkZXJXaWR0aCIsInplcm9XaWR0aFRyaWdnZXIiLCJkZWZhdWx0VHJpZ2dlciIsInRyaWdnZXJEb20iLCJkaXZTdHlsZSIsInNpZGVyQ2xzIiwiZmxleCIsIm1heFdpZHRoIiwiX2dyb3VwIiwiX3JhZGlvQnV0dG9uIiwiX3JhZGlvIiwiZnVuY1RvU3RyaW5nIiwibWFwQ2FjaGVDbGVhciIsIm1hcENhY2hlRGVsZXRlIiwibWFwQ2FjaGVHZXQiLCJtYXBDYWNoZUhhcyIsIm1hcENhY2hlU2V0IiwiTWFwQ2FjaGUiLCJTZXRDYWNoZSIsImFycmF5U29tZSIsImNhY2hlSGFzIiwiYml0bWFzayIsImN1c3RvbWl6ZXIiLCJlcXVhbEZ1bmMiLCJpc1BhcnRpYWwiLCJvdGhMZW5ndGgiLCJhcnJTdGFja2VkIiwib3RoU3RhY2tlZCIsInNlZW4iLCJhcnJWYWx1ZSIsIm90aFZhbHVlIiwiY29tcGFyZWQiLCJvdGhJbmRleCIsInN0dWJGYWxzZSIsImZyZWVFeHBvcnRzIiwiZnJlZU1vZHVsZSIsIkJ1ZmZlciIsImlzQnVmZmVyIiwiYmFzZUlzVHlwZWRBcnJheSIsImJhc2VVbmFyeSIsIm5vZGVVdGlsIiwibm9kZUlzVHlwZWRBcnJheSIsImlzVHlwZWRBcnJheSIsImtlZXBOdWxsTm9kZXMiLCJrZWVwTnVsbEF0dHJpYnV0ZXMiLCJpZ25vcmVDb252ZXJ0ZXJzIiwiZGVmYXVsdE5hbWVzcGFjZSIsIm5hbWVzcGFjZUFsaWFzIiwiaHRtbCIsInhtbCIsInhtbG5zIiwibWF0aG1sIiwic3ZnIiwieGxpbmsiLCJzY3JlZW5YIiwic2NyZWVuWSIsImlzUmVnaXN0ZXJlZE9ic2VydmVyIiwiTG9jYWxOYW1lU2V0XzEiLCJOYW1lc3BhY2VQcmVmaXhNYXBfMSIsImZ1bmN0aW9ucyIsIl9kb2NUeXBlIiwiZG9jVHlwZSIsIl9jb21tZW50IiwiX3RleHQiLCJfaW5zdHJ1Y3Rpb24iLCJfY2RhdGEiLCJfb3BlblRhZ0JlZ2luIiwib3BlblRhZ0JlZ2luIiwiX29wZW5UYWdFbmQiLCJvcGVuVGFnRW5kIiwiX2Nsb3NlVGFnIiwiY2xvc2VUYWciLCJfYXR0cmlidXRlIiwiX2JlZ2luRWxlbWVudCIsIl9lbmRFbGVtZW50IiwicmVxdWlyZVdlbGxGb3JtZWQiLCJoYXNOYW1lc3BhY2VzIiwiTmFtZXNwYWNlUHJlZml4TWFwIiwiWE1MIiwicHJlZml4SW5kZXgiLCJfc2VyaWFsaXplTm9kZU5TIiwiX3NlcmlhbGl6ZU5vZGUiLCJfc2VyaWFsaXplRWxlbWVudE5TIiwiX3NlcmlhbGl6ZURvY3VtZW50TlMiLCJfc2VyaWFsaXplQ29tbWVudCIsIl9zZXJpYWxpemVUZXh0IiwiX3NlcmlhbGl6ZURvY3VtZW50RnJhZ21lbnROUyIsIl9zZXJpYWxpemVEb2N1bWVudFR5cGUiLCJfc2VyaWFsaXplUHJvY2Vzc2luZ0luc3RydWN0aW9uIiwiX3NlcmlhbGl6ZUNEYXRhIiwiX3NlcmlhbGl6ZUVsZW1lbnQiLCJfc2VyaWFsaXplRG9jdW1lbnQiLCJfc2VyaWFsaXplRG9jdW1lbnRGcmFnbWVudCIsInNraXBFbmRUYWciLCJpZ25vcmVOYW1lc3BhY2VEZWZpbml0aW9uQXR0cmlidXRlIiwibG9jYWxQcmVmaXhlc01hcCIsImxvY2FsRGVmYXVsdE5hbWVzcGFjZSIsIl9yZWNvcmROYW1lc3BhY2VJbmZvcm1hdGlvbiIsImluaGVyaXRlZE5TIiwibmFtZXNwYWNlVVJJIiwiY2FuZGlkYXRlUHJlZml4IiwiX2dlbmVyYXRlUHJlZml4IiwiX3NlcmlhbGl6ZUF0dHJpYnV0ZVZhbHVlIiwiX3NlcmlhbGl6ZUF0dHJpYnV0ZXNOUyIsImlzSFRNTCIsIl9Wb2lkRWxlbWVudE5hbWVzIiwiX3NlcmlhbGl6ZUF0dHJpYnV0ZXMiLCJ4bWxfaXNMZWdhbENoYXIiLCJlbmRzV2l0aCIsIm1hcmt1cCIsInhtbF9pc1B1YmlkQ2hhciIsImxvY2FsTmFtZVNldCIsIkxvY2FsTmFtZVNldCIsIlhNTE5TIiwiaGFzUHJlZml4IiwiYXR0ck5hbWUiLCJkZWZhdWx0TmFtZXNwYWNlQXR0clZhbHVlIiwiYXR0cmlidXRlUHJlZml4IiwicHJlZml4RGVmaW5pdGlvbiIsIm5hbWVzcGFjZURlZmluaXRpb24iLCJuZXdOYW1lc3BhY2UiLCJnZW5lcmF0ZWRQcmVmaXgiLCJpZWVlNzU0Iiwia01heExlbmd0aCIsIlRZUEVEX0FSUkFZX1NVUFBPUlQiLCJjcmVhdGVCdWZmZXIiLCJSYW5nZUVycm9yIiwiZW5jb2RpbmdPck9mZnNldCIsImFsbG9jVW5zYWZlIiwiQXJyYXlCdWZmZXIiLCJieXRlT2Zmc2V0IiwiYnl0ZUxlbmd0aCIsImZyb21BcnJheUxpa2UiLCJmcm9tQXJyYXlCdWZmZXIiLCJlbmNvZGluZyIsImlzRW5jb2RpbmciLCJhY3R1YWwiLCJmcm9tU3RyaW5nIiwiZnJvbU9iamVjdCIsImFzc2VydFNpemUiLCJpc1ZpZXciLCJsb3dlcmVkQ2FzZSIsInV0ZjhUb0J5dGVzIiwiYmFzZTY0VG9CeXRlcyIsInNsb3dUb1N0cmluZyIsImhleFNsaWNlIiwidXRmOFNsaWNlIiwiYXNjaWlTbGljZSIsImxhdGluMVNsaWNlIiwiYmFzZTY0U2xpY2UiLCJ1dGYxNmxlU2xpY2UiLCJiaWRpcmVjdGlvbmFsSW5kZXhPZiIsImluZGV4U2l6ZSIsInZhbExlbmd0aCIsInJlYWQiLCJidWYiLCJyZWFkVUludDE2QkUiLCJmb3VuZEluZGV4IiwiaGV4V3JpdGUiLCJyZW1haW5pbmciLCJzdHJMZW4iLCJwYXJzZWQiLCJ1dGY4V3JpdGUiLCJibGl0QnVmZmVyIiwiYXNjaWlXcml0ZSIsImJ5dGVBcnJheSIsImFzY2lpVG9CeXRlcyIsImxhdGluMVdyaXRlIiwiYmFzZTY0V3JpdGUiLCJ1Y3MyV3JpdGUiLCJoaSIsImxvIiwidXRmMTZsZVRvQnl0ZXMiLCJmcm9tQnl0ZUFycmF5Iiwic2Vjb25kQnl0ZSIsInRoaXJkQnl0ZSIsImZvdXJ0aEJ5dGUiLCJ0ZW1wQ29kZVBvaW50IiwiZmlyc3RCeXRlIiwiYnl0ZXNQZXJTZXF1ZW5jZSIsImNvZGVQb2ludHMiLCJkZWNvZGVDb2RlUG9pbnRzQXJyYXkiLCJTbG93QnVmZmVyIiwiYWxsb2MiLCJJTlNQRUNUX01BWF9CWVRFUyIsImZvbyIsInR5cGVkQXJyYXlTdXBwb3J0IiwicG9vbFNpemUiLCJfYXVnbWVudCIsInNwZWNpZXMiLCJhbGxvY1Vuc2FmZVNsb3ciLCJfaXNCdWZmZXIiLCJzd2FwMTYiLCJzd2FwMzIiLCJzd2FwNjQiLCJlcXVhbHMiLCJ0aGlzU3RhcnQiLCJ0aGlzRW5kIiwidGhpc0NvcHkiLCJ0YXJnZXRDb3B5IiwidG9IZXgiLCJjaGVja09mZnNldCIsImV4dCIsImNoZWNrSW50Iiwib2JqZWN0V3JpdGVVSW50MTYiLCJsaXR0bGVFbmRpYW4iLCJvYmplY3RXcml0ZVVJbnQzMiIsImNoZWNrSUVFRTc1NCIsIndyaXRlRmxvYXQiLCJub0Fzc2VydCIsIndyaXRlRG91YmxlIiwibmV3QnVmIiwic2xpY2VMZW4iLCJyZWFkVUludExFIiwibXVsIiwicmVhZFVJbnRCRSIsInJlYWRVSW50OCIsInJlYWRVSW50MTZMRSIsInJlYWRVSW50MzJMRSIsInJlYWRVSW50MzJCRSIsInJlYWRJbnRMRSIsInJlYWRJbnRCRSIsInJlYWRJbnQ4IiwicmVhZEludDE2TEUiLCJyZWFkSW50MTZCRSIsInJlYWRJbnQzMkxFIiwicmVhZEludDMyQkUiLCJyZWFkRmxvYXRMRSIsInJlYWRGbG9hdEJFIiwicmVhZERvdWJsZUxFIiwicmVhZERvdWJsZUJFIiwid3JpdGVVSW50TEUiLCJ3cml0ZVVJbnRCRSIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVVSW50MTZCRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQzMkJFIiwid3JpdGVJbnRMRSIsInN1YiIsIndyaXRlSW50QkUiLCJ3cml0ZUludDgiLCJ3cml0ZUludDE2TEUiLCJ3cml0ZUludDE2QkUiLCJ3cml0ZUludDMyTEUiLCJ3cml0ZUludDMyQkUiLCJ3cml0ZUZsb2F0TEUiLCJ3cml0ZUZsb2F0QkUiLCJ3cml0ZURvdWJsZUxFIiwid3JpdGVEb3VibGVCRSIsInRhcmdldFN0YXJ0IiwiSU5WQUxJRF9CQVNFNjRfUkUiLCJsZWFkU3Vycm9nYXRlIiwidG9CeXRlQXJyYXkiLCJzdHJpbmd0cmltIiwiYmFzZTY0Y2xlYW4iLCJkc3QiLCJpc0FTQ0lJQnl0ZSIsImJ5dGVMb3dlcmNhc2UiLCJieXRlVXBwZXJjYXNlIiwiYnl0ZUNhc2VJbnNlbnNpdGl2ZU1hdGNoIiwibGlzdEEiLCJsaXN0QiIsImJ5dGVMZXNzVGhhbiIsImlzb21vcnBoaWNEZWNvZGUiLCJmcm9tQ29kZVBvaW50IiwiX3NpZ25hbCIsImFib3J0X3NpZ25hbEFib3J0IiwiX2Fib3J0ZWRGbGFnIiwiX2Fib3J0QWxnb3JpdGhtcyIsInVybF8xIiwiX3ZhbGlkYXRpb25FcnJvckNhbGxiYWNrIiwiX2RlZmF1bHRQb3J0cyIsIl9jMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0IiwiX2ZyYWdtZW50UGVyY2VudEVuY29kZVNldCIsIl9wYXRoUGVyY2VudEVuY29kZVNldCIsIl91c2VySW5mb1BlcmNlbnRFbmNvZGVTZXQiLCJfdXJsQ29kZVBvaW50cyIsIl9mb3JiaWRkZW5Ib3N0Q29kZVBvaW50IiwidmFsaWRhdGlvbkVycm9yIiwibmV3VVJMIiwiaXNTcGVjaWFsU2NoZW1lIiwiaXNTcGVjaWFsIiwiZGVmYXVsdFBvcnQiLCJpbmNsdWRlc0NyZWRlbnRpYWxzIiwiZXhjbHVkZUZyYWdtZW50RmxhZyIsImhvc3RTZXJpYWxpemVyIiwiaVB2NFNlcmlhbGl6ZXIiLCJpUHY2U2VyaWFsaXplciIsImFkZHJlc3MiLCJjb21wcmVzcyIsImxhc3RDb3VudCIsImlnbm9yZTAiLCJwaWVjZUluZGV4IiwiYmFzaWNVUkxQYXJzZXIiLCJiYXNlVVJMIiwiZW5jb2RpbmdPdmVycmlkZSIsInN0YXRlT3ZlcnJpZGUiLCJsZWFkaW5nQ29udHJvbE9yU3BhY2UiLCJ0cmFpbGluZ0NvbnRyb2xPclNwYWNlIiwidGFiT3JOZXdsaW5lIiwiUGFyc2VyU3RhdGUiLCJTY2hlbWVTdGFydCIsImF0RmxhZyIsImFycmF5RmxhZyIsInBhc3N3b3JkVG9rZW5TZWVuRmxhZyIsIlN0cmluZ1dhbGtlciIsIlNjaGVtZSIsIk5vU2NoZW1lIiwicG9pbnRlciIsIkZpbGUiLCJTcGVjaWFsUmVsYXRpdmVPckF1dGhvcml0eSIsIlNwZWNpYWxBdXRob3JpdHlTbGFzaGVzIiwiUGF0aE9yQXV0aG9yaXR5IiwiQ2Fubm90QmVBQmFzZVVSTFBhdGgiLCJSZWxhdGl2ZSIsIlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzIiwiQXV0aG9yaXR5IiwiUGF0aCIsIlJlbGF0aXZlU2xhc2giLCJRdWVyeSIsImVuY29kZWRDb2RlUG9pbnRzIiwidXRmOFBlcmNlbnRFbmNvZGUiLCJIb3N0IiwiSG9zdG5hbWUiLCJGaWxlSG9zdCIsImhvc3RQYXJzZXIiLCJQYXRoU3RhcnQiLCJQb3J0IiwiRmlsZVNsYXNoIiwic3RhcnRzV2l0aEFXaW5kb3dzRHJpdmVMZXR0ZXIiLCJzaG9ydGVuIiwiaXNOb3JtYWxpemVkV2luZG93c0RyaXZlTGV0dGVyIiwiaXNXaW5kb3dzRHJpdmVMZXR0ZXIiLCJpc0RvdWJsZURvdFBhdGhTZWdtZW50IiwiaXNTaW5nbGVEb3RQYXRoU2VnbWVudCIsImJ1ZmZlckNvZGVQb2ludHMiLCJwZXJjZW50RW5jb2RlIiwiZW9mIiwibG93ZXJTdHIiLCJpc05vdFNwZWNpYWwiLCJpUHY2UGFyc2VyIiwib3BhcXVlSG9zdFBhcnNlciIsImFzY2lpRG9tYWluIiwiZG9tYWluVG9BU0NJSSIsInN0cmluZ1BlcmNlbnREZWNvZGUiLCJpcHY0SG9zdCIsImlQdjRQYXJzZXIiLCJpUHY0TnVtYmVyUGFyc2VyIiwidmFsaWRhdGlvbkVycm9yRmxhZyIsInBvcCIsIm51bWJlcnMiLCJwYXJ0IiwiaXB2NCIsImNvdW50ZXIiLCJudW1iZXJzU2VlbiIsImlwdjRQaWVjZSIsInN3YXBzIiwicmVzb2x2ZUFCbG9iVVJMIiwicGVyY2VudERlY29kZSIsImlzSGV4RGlnaXQiLCJieXRlUG9pbnQiLCJvZiIsInBlcmNlbnRFbmNvZGVTZXQiLCJ1cmxFbmNvZGVkUGFyc2VyIiwic2VxdWVuY2VzIiwiY3VycmVudFNlcXVlbmNlIiwibmFtZVN0cmluZyIsInZhbHVlU3RyaW5nIiwidXJsRW5jb2RlZEJ5dGVTZXJpYWxpemVyIiwiZG9tYWluIiwiYmVTdHJpY3QiLCJzZXRWYWxpZGF0aW9uRXJyb3JDYWxsYmFjayIsInZhbGlkYXRpb25FcnJvckNhbGxiYWNrIiwiY2Fubm90SGF2ZUFVc2VybmFtZVBhc3N3b3JkUG9ydCIsInVybFBhcnNlciIsInNldFRoZVVzZXJuYW1lIiwic2V0VGhlUGFzc3dvcmQiLCJob3N0RXF1YWxzIiwiaG9zdEEiLCJob3N0QiIsInVybEVxdWFscyIsInVybEEiLCJ1cmxCIiwiZXhjbHVkZUZyYWdtZW50c0ZsYWciLCJ1cmxFbmNvZGVkU3RyaW5nUGFyc2VyIiwidXJsRW5jb2RlZFNlcmlhbGl6ZXIiLCJ0dXBsZXMiLCJvcmlnaW4iLCJwYXJzZWRVUkwiLCJPcGFxdWVPcmlnaW4iLCJkb21haW5Ub1VuaWNvZGUiLCJhc2NpaVNlcmlhbGl6YXRpb25PZkFuT3JpZ2luIiwiX2RldGFpbCIsImRldGFpbCIsIl9wdWJsaWNJZCIsIl9zeXN0ZW1JZCIsIm5hbWVzcGFjZV92YWxpZGF0ZSIsImRvY3R5cGUiLCJTVkciLCJodG1sRWxlbWVudCIsImhlYWRFbGVtZW50IiwidGl0bGVFbGVtZW50IiwidGV4dEVsZW1lbnQiLCJib2R5RWxlbWVudCIsIl90b2tlblNldCIsInRva2VuTGlzdF91cGRhdGVTdGVwcyIsIm5ld1Rva2VuIiwidG9rZW5MaXN0X3ZhbGlkYXRpb25TdGVwcyIsInRva2VuTGlzdF9zZXJpYWxpemVTdGVwcyIsIl9saXZlIiwicmVjZWl2ZXIiLCJyZXNlcnZlZE5hbWVzIiwibmFtZWRJdGVtIiwiX2FkZGVkTm9kZXMiLCJfcmVtb3ZlZE5vZGVzIiwiX2F0dHJpYnV0ZU5hbWUiLCJfYXR0cmlidXRlTmFtZXNwYWNlIiwiX29sZFZhbHVlIiwiRklMVEVSX0FDQ0VQVCIsIkZJTFRFUl9SRUpFQ1QiLCJGSUxURVJfU0tJUCIsIlNIT1dfQUxMIiwiU0hPV19FTEVNRU5UIiwiU0hPV19BVFRSSUJVVEUiLCJTSE9XX1RFWFQiLCJTSE9XX0NEQVRBX1NFQ1RJT04iLCJTSE9XX0VOVElUWV9SRUZFUkVOQ0UiLCJTSE9XX0VOVElUWSIsIlNIT1dfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiIsIlNIT1dfQ09NTUVOVCIsIlNIT1dfRE9DVU1FTlQiLCJTSE9XX0RPQ1VNRU5UX1RZUEUiLCJTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UIiwiU0hPV19OT1RBVElPTiIsIm5vZGVJdGVyYXRvcl90cmF2ZXJzZSIsIl9sZW5ndGgiLCJpdFJlc3VsdCIsIl9pdGVtcyIsInJhbmdlX3NldFRoZVN0YXJ0IiwicmFuZ2Vfc2V0VGhlRW5kIiwidG9TdGFydCIsInJhbmdlX3NlbGVjdCIsImhvdyIsInNvdXJjZVJhbmdlIiwiU3RhcnRUb1N0YXJ0IiwiU3RhcnRUb0VuZCIsIkVuZFRvRW5kIiwiRW5kVG9TdGFydCIsInJhbmdlX3Jvb3QiLCJ0aGlzUG9pbnQiLCJvdGhlclBvaW50IiwiYm91bmRhcnlQb2ludF9wb3NpdGlvbiIsIkJlZm9yZSIsIkFmdGVyIiwicmFuZ2VfY29sbGFwc2VkIiwib3JpZ2luYWxTdGFydE5vZGUiLCJvcmlnaW5hbFN0YXJ0T2Zmc2V0Iiwib3JpZ2luYWxFbmROb2RlIiwib3JpZ2luYWxFbmRPZmZzZXQiLCJub2Rlc1RvUmVtb3ZlIiwicmFuZ2VfZ2V0Q29udGFpbmVkTm9kZXMiLCJyYW5nZV9pc0NvbnRhaW5lZCIsInJhbmdlX2V4dHJhY3QiLCJyYW5nZV9jbG9uZVRoZUNvbnRlbnRzIiwicmFuZ2VfaW5zZXJ0IiwibmV3UGFyZW50IiwicmFuZ2VfZ2V0UGFydGlhbGx5Q29udGFpbmVkTm9kZXMiLCJicCIsIlNUQVJUX1RPX1NUQVJUIiwiU1RBUlRfVE9fRU5EIiwiRU5EX1RPX0VORCIsIkVORF9UT19TVEFSVCIsIl9jdXJyZW50IiwidHJlZVdhbGtlcl90cmF2ZXJzZUNoaWxkcmVuIiwidHJlZVdhbGtlcl90cmF2ZXJzZVNpYmxpbmdzIiwidGVtcG9yYXJ5IiwiX2l0ZXJhdG9yTGlzdCIsIlRyYXZlcnNhbEFsZ29yaXRobV8xIiwiZm9yd2FyZCIsImJlZm9yZU5vZGUiLCJwcmV2Tm9kZSIsIlhNTEFsZ29yaXRobV8xIiwieG1sX2lzUU5hbWUiLCJuYW1lc3BhY2VfZXh0cmFjdFFOYW1lIiwibjIiLCJjb2xvbkZvdW5kIiwiY2hhcnMiLCJyZWxhdGl2ZVRvIiwib2Zmc2V0QSIsIm9mZnNldEIiLCJFcXVhbCIsIk9yZGVyZWRTZXRBbGdvcml0aG1fMSIsImNvcHlBdHRyaWJ1dGUiLCJjaGlsZENvcHkiLCJhdHRyTWFwIiwiYXR0ckEiLCJhdHRyQiIsIml0QSIsIml0QiIsInJlc3VsdEEiLCJyZXN1bHRCIiwiZWxlQ2xhc3NlcyIsInBhcmVudEVsZW1lbnQiLCJDaGFyYWN0ZXJEYXRhQWxnb3JpdGhtXzEiLCJzZXRGZWF0dXJlcyIsIm1zZ0VsZW1lbnQiLCJmaXJzdEVsZW1lbnRDaGlsZCIsIkRPTVBhcnNlciIsIlRva2VuVHlwZSIsIl9udWxsSXRlbXMiLCJkZXN0cm95Rm5zIiwiX3JjRGlhbG9nIiwiX2FkZEV2ZW50TGlzdGVuZXIiLCJtb3VzZVBvc2l0aW9uIiwiaGFuZGxlQ2FuY2VsIiwib25DYW5jZWwiLCJoYW5kbGVPayIsIm9uT2siLCJyZW5kZXJGb290ZXIiLCJva1R5cGUiLCJjb25maXJtTG9hZGluZyIsImNhbmNlbEJ1dHRvblByb3BzIiwib2tCdXR0b25Qcm9wcyIsInJlbmRlck1vZGFsIiwiZm9vdGVyIiwid3JhcENsYXNzTmFtZSIsImNlbnRlcmVkIiwiY2xvc2VJY29uIiwiZGVmYXVsdEZvb3RlciIsImNsb3NlSWNvblRvUmVuZGVyIiwiY2xvc2FibGUiLCJyZUlzVWludCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczMiLCJfZGVmaW5lUHJvcGVydHkzIiwiX2V4dGVuZHM2IiwiX3RvQ29uc3VtYWJsZUFycmF5MyIsIl9jcmVhdGVSZWFjdENsYXNzMiIsIl91bnNhZmVMaWZlY3ljbGVzUG9seWZpbGwyIiwiX2FzeW5jVmFsaWRhdG9yMiIsIl9nZXQyIiwiX3NldDIiLCJfZXEyIiwiX2NyZWF0ZUZpZWxkc1N0b3JlMiIsIm9uRmllbGRzQ2hhbmdlIiwib25WYWx1ZXNDaGFuZ2UiLCJfb3B0aW9uJG1hcFByb3BzIiwibWFwUHJvcHMiLCJtYXBQcm9wc1RvRmllbGRzIiwiZmllbGROYW1lUHJvcCIsImZpZWxkTWV0YVByb3AiLCJmaWVsZERhdGFQcm9wIiwiX29wdGlvbiRmb3JtUHJvcE5hbWUiLCJmb3JtUHJvcE5hbWUiLCJmb3JtTmFtZSIsIndpdGhSZWYiLCJnZXRJbml0aWFsU3RhdGUiLCJmaWVsZHNTdG9yZSIsImluc3RhbmNlcyIsImNhY2hlZEJpbmQiLCJjbGVhcmVkRmllbGRNZXRhQ2FjaGUiLCJyZW5kZXJGaWVsZHMiLCJkb21GaWVsZHMiLCJfZmllbGRzU3RvcmUiLCJzdWJtaXR0aW5nIiwiY2xlYW5VcFVzZWxlc3NGaWVsZHMiLCJ1cGRhdGVGaWVsZHMiLCJvbkNvbGxlY3RDb21tb24iLCJmaWVsZE1ldGEiLCJnZXRGaWVsZE1ldGEiLCJvcmlnaW5hbFByb3BzIiwiX2ZpZWxkTWV0YSRvcmlnaW5hbFByIiwiZ2V0RmllbGRWYWx1ZSIsInZhbHVlc0FsbCIsImdldEFsbFZhbHVlcyIsInZhbHVlc0FsbFNldCIsImdldEZvcm0iLCJ0b3VjaGVkIiwib25Db2xsZWN0IiwibmFtZV8iLCJfb25Db2xsZWN0Q29tbW9uIiwic2V0RmllbGRzQXNEaXJ0eSIsIm5ld0ZpZWxkIiwiZGlydHkiLCJzZXRGaWVsZHMiLCJvbkNvbGxlY3RWYWxpZGF0ZSIsIl9vbkNvbGxlY3RDb21tb24yIiwidmFsaWRhdGVGaWVsZHNJbnRlcm5hbCIsInZhbGlkYXRlRmlyc3QiLCJnZXRDYWNoZUJpbmQiLCJvcmlGbiIsImdldEZpZWxkRGVjb3JhdG9yIiwiZmllbGRPcHRpb24iLCJnZXRGaWVsZFByb3BzIiwiZmllbGRFbGVtIiwiZ2V0RmllbGRWYWx1ZVByb3BWYWx1ZSIsInVzZXJzRmllbGRPcHRpb24iLCJ2YWx1ZVByb3BOYW1lIiwiX2ZpZWxkT3B0aW9uJHZhbGlkYXRlIiwiaW5wdXRQcm9wcyIsInZhbGlkYXRlVHJpZ2dlcnMiLCJtZXRhIiwic2V0RmllbGRNZXRhIiwiZ2V0RmllbGRJbnN0YW5jZSIsImdldFJ1bGVzIiwiYWN0aW9uUnVsZXMiLCJmbGF0dGVuUmVnaXN0ZXJlZEZpZWxkcyIsImNoYW5nZWRGaWVsZHMiLCJnZXROZXN0ZWRBbGxGaWVsZHMiLCJzZXRGaWVsZHNWYWx1ZSIsImNoYW5nZWRWYWx1ZXMiLCJmaWVsZHNNZXRhIiwibmV3RmllbGRzIiwiYWxsVmFsdWVzIiwiX2ZpZWxkTWV0YSIsInByZXNlcnZlIiwiY2xlYXJGaWVsZCIsInJlY292ZXJDbGVhcmVkRmllbGQiLCJyZW1vdmVkTGlzdCIsImdldEFsbEZpZWxkc05hbWUiLCJyZXNldEZpZWxkcyIsIl90aGlzNiIsIl90aGlzNyIsImZpZWxkTmFtZXMiLCJfcmVmJG9wdGlvbnMiLCJhbGxSdWxlcyIsImFsbEZpZWxkcyIsImFscmVhZHlFcnJvcnMiLCJnZXRGaWVsZHNWYWx1ZSIsInZhbGlkYXRvciIsIm1lc3NhZ2VzIiwiZXJyb3JzR3JvdXAiLCJlcnJvckZpZWxkTmFtZSIsImZpZWxkTmFtZSIsInJ1bGVGaWVsZE5hbWUiLCJyZXN0UGF0aCIsImV4cGlyZWQiLCJub3dBbGxGaWVsZHMiLCJmaWVsZEVycm9ycyIsIm5vd0ZpZWxkIiwidmFsaWRhdGVGaWVsZHMiLCJfdGhpczgiLCJfZ2V0UGFyYW1zIiwib2xkQ2IiLCJnZXRWYWxpZEZpZWxkc0Z1bGxOYW1lIiwiZ2V0VmFsaWRGaWVsZHNOYW1lIiwiaXNTdWJtaXR0aW5nIiwic3VibWl0IiwiX3RoaXM5Iiwid3JhcHBlZENvbXBvbmVudFJlZiIsImZvcm1Qcm9wcyIsInV0aWwiLCJiYXNlU2V0IiwiX2NsYXNzQ2FsbENoZWNrMyIsImlzRm9ybUZpZWxkIiwiRmllbGQiLCJnZXRTY3JvbGxCYXJTaXplIiwiSGVhZGVyUm93Iiwicm93UHJvcHMiLCJSb3dDb21wb25lbnQiLCJDZWxsQ29tcG9uZW50IiwiY29sdW1uc0tleSIsImNlbGxJbmRleCIsImZpeGVkSW5mbyIsIm9uSGVhZGVyQ2VsbCIsIkZpeGVkSGVhZGVyIiwibm9EYXRhIiwib2Zmc2V0SGVhZGVyIiwic3RpY2t5Q2xhc3NOYW1lIiwib25TY3JvbGwiLCJtYXhDb250ZW50U2Nyb2xsIiwiY29tYmluYXRpb25TY3JvbGxCYXJTaXplIiwic2Nyb2xsUmVmIiwic2V0U2Nyb2xsUmVmIiwiX3Njcm9sbFJlZiRjdXJyZW50Iiwib25XaGVlbCIsImRlbHRhWCIsInNjcm9sbExlZnQiLCJfc2Nyb2xsUmVmJGN1cnJlbnQyIiwiYWxsRmxhdHRlbkNvbHVtbnNXaXRoV2lkdGgiLCJsYXN0Q29sdW1uIiwiU2Nyb2xsQmFyQ29sdW1uIiwiY29sdW1uc1dpdGhTY3JvbGxiYXIiLCJmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIiLCJoZWFkZXJTdGlja3lPZmZzZXRzIiwibWVyZ2VkQ29sdW1uV2lkdGgiLCJ1c2VDb2x1bW5XaWR0aCIsInRhYmxlTGF5b3V0IiwiQm9keVJvdyIsIm9uUm93IiwiX3Byb3BzJGluZGVudCIsImNoaWxkcmVuQ29sdW1uTmFtZSIsImZpeGVkSW5mb0xpc3QiLCJfUmVhY3QkdXNlQ29udGV4dDIiLCJleHBhbmRhYmxlVHlwZSIsInJvd0NsYXNzTmFtZSIsImV4cGFuZGVkUm93Q2xhc3NOYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGVkUm93UmVuZGVyIiwiZXhwYW5kUmVuZGVkIiwic2V0RXhwYW5kUmVuZGVkIiwicm93U3VwcG9ydEV4cGFuZCIsIm5lc3RFeHBhbmRhYmxlIiwiaGFzTmVzdENoaWxkcmVuIiwibWVyZ2VkRXhwYW5kYWJsZSIsImNvbXB1dGVSb3dDbGFzc05hbWUiLCJleHBhbmRSb3dOb2RlIiwibmVzdFJvd05vZGUiLCJiYXNlUm93Tm9kZSIsIl9hZGRpdGlvbmFsUHJvcHMiLCJhcHBlbmRDZWxsTm9kZSIsImFkZGl0aW9uYWxDZWxsUHJvcHMiLCJjb2x1bW5DbGFzc05hbWUiLCJvbkNlbGwiLCJleHBhbmRDb250ZW50IiwiY29tcHV0ZWRFeHBhbmRlZFJvd0NsYXNzTmFtZSIsInN1YlJlY29yZCIsInN1YktleSIsIk1lYXN1cmVDZWxsIiwiY29sdW1uS2V5Iiwib25Db2x1bW5SZXNpemUiLCJjZWxsUmVmIiwicGFkZGluZyIsImJvcmRlciIsIkJvZHkiLCJtZWFzdXJlQ29sdW1uV2lkdGgiLCJlbXB0eU5vZGUiLCJfUmVhY3QkdXNlQ29udGV4dDMiLCJ0ZENvbXBvbmVudCIsImZvbnRTaXplIiwiTWVtb0JvZHkiLCJjb2x1bW5Db3VudCIsImxlZnRPZmZzZXRzIiwicmlnaHRPZmZzZXRzIiwiRm9vdGVyQ29tcG9uZW50cyIsIlJvdyIsInJlbmRlckV4cGFuZEljb24iLCJleHBhbmRDbGFzc05hbWUiLCJwYWdlWE9mZnNldCIsInBhZ2VZT2Zmc2V0Iiwic2Nyb2xsVG9wIiwiX3Njcm9sbEJvZHlSZWYkY3VycmVuIiwiX3Njcm9sbEJvZHlSZWYkY3VycmVuMiIsInNjcm9sbEJvZHlSZWYiLCJvZmZzZXRTY3JvbGwiLCJib2R5U2Nyb2xsV2lkdGgiLCJib2R5V2lkdGgiLCJzY3JvbGxCYXJXaWR0aCIsInNjcm9sbEJhclJlZiIsIl91c2VMYXlvdXRTdGF0ZSIsImlzSGlkZGVuU2Nyb2xsQmFyIiwiX3VzZUxheW91dFN0YXRlMiIsInNjcm9sbFN0YXRlIiwic2V0U2Nyb2xsU3RhdGUiLCJyZWZTdGF0ZSIsInNldEFjdGl2ZSIsIm9uTW91c2VVcCIsIl93aW5kb3ciLCJidXR0b25zIiwib25Db250YWluZXJTY3JvbGwiLCJ0YWJsZU9mZnNldFRvcCIsInRhYmxlQm90dG9tT2Zmc2V0IiwiY3VycmVudENsaWVudE9mZnNldCIsInNldFNjcm9sbExlZnQiLCJvbk1vdXNlVXBMaXN0ZW5lciIsIm9uTW91c2VNb3ZlTGlzdGVuZXIiLCJvblNjcm9sbExpc3RlbmVyIiwib25SZXNpemVMaXN0ZW5lciIsImJvZHlOb2RlIiwicGVyc2lzdCIsImRlZmF1bHRDb250YWluZXIiLCJFTVBUWV9EQVRBIiwiRU1QVFlfU0NST0xMX1RBUkdFVCIsIk1lbW9UYWJsZUNvbnRlbnQiLCJwaW5nTGVmdCIsInBpbmdSaWdodCIsInNjcm9sbCIsInN1bW1hcnkiLCJzaG93SGVhZGVyIiwiY29tcG9uZW50cyIsImludGVybmFsSG9va3MiLCJpbnRlcm5hbFJlZnMiLCJzdGlja3kiLCJtZXJnZWREYXRhIiwiaGFzRGF0YSIsInNldFNjcm9sbGJhclNpemUiLCJzY3JvbGxYU3R5bGUiLCJzY3JvbGxZU3R5bGUiLCJzY3JvbGxUYWJsZVN0eWxlIiwibWVyZ2VkQ29tcG9uZW50cyIsImRlZmF1bHRDb21wb25lbnQiLCJleHBhbmRhYmxlQ29uZmlnIiwiZXhwYW5kZWRSb3dLZXlzIiwiZGVmYXVsdEV4cGFuZGVkUm93S2V5cyIsImRlZmF1bHRFeHBhbmRBbGxSb3dzIiwib25FeHBhbmRlZFJvd3NDaGFuZ2UiLCJtZXJnZWRFeHBhbmRJY29uIiwibWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lIiwiX19QQVJFTlRfUkVOREVSX0lDT05fXyIsImZpbmRBbGxDaGlsZHJlbktleXMiLCJpbm5lckV4cGFuZGVkS2V5cyIsInNldElubmVyRXhwYW5kZWRLZXlzIiwibWVyZ2VkRXhwYW5kZWRLZXlzIiwibmV3RXhwYW5kZWRLZXlzIiwiaGFzS2V5IiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJzZXRDb21wb25lbnRXaWR0aCIsIl91c2VDb2x1bW5zIiwiX3VzZUNvbHVtbnMyIiwiY29sdW1uQ29udGV4dCIsImZ1bGxUYWJsZVJlZiIsInNjcm9sbEhlYWRlclJlZiIsIl9SZWFjdCR1c2VTdGF0ZTciLCJfUmVhY3QkdXNlU3RhdGU4IiwicGluZ2VkTGVmdCIsInNldFBpbmdlZExlZnQiLCJfUmVhY3QkdXNlU3RhdGU5IiwiX1JlYWN0JHVzZVN0YXRlMTAiLCJwaW5nZWRSaWdodCIsInNldFBpbmdlZFJpZ2h0IiwiY29sc1dpZHRocyIsInVwZGF0ZUNvbHNXaWR0aHMiLCJwdXJlQ29sV2lkdGhzIiwic3RpY2t5UmVmIiwiX3VzZVN0aWNreSIsIl9yZWYkb2Zmc2V0SGVhZGVyIiwiX3JlZiRvZmZzZXRTY3JvbGwiLCJfcmVmJGdldENvbnRhaW5lciIsInVzZVN0aWNreSIsIm1heEhlaWdodCIsIndpZHRocyIsIm5ld1dpZHRocyIsIl91c2VUaW1lb3V0TG9jayIsIl91c2VUaW1lb3V0TG9jazIiLCJzZXRTY3JvbGxUYXJnZXQiLCJnZXRTY3JvbGxUYXJnZXQiLCJmb3JjZVNjcm9sbCIsIl9zdGlja3lSZWYkY3VycmVudCIsIm1lcmdlZFNjcm9sbExlZnQiLCJjb21wYXJlVGFyZ2V0IiwidHJpZ2dlck9uU2Nyb2xsIiwiZ3JvdXBUYWJsZU5vZGUiLCJib2R5Q29udGVudCIsIlRhYmxlQ29tcG9uZW50IiwibWVyZ2VkVGFibGVMYXlvdXQiLCJoZWFkZXJQcm9wcyIsImJvZHlUYWJsZSIsImJvZHlDb2xHcm91cCIsIl9yZWY2IiwiZm9vdGVyVGFibGUiLCJjdXN0b21pemVTY3JvbGxCb2R5IiwiX3JlZjciLCJjb2xXaWR0aCIsImFyaWFQcm9wcyIsImZ1bGxUYWJsZSIsIlRhYmxlQ29udGV4dFZhbHVlIiwiQm9keUNvbnRleHRWYWx1ZSIsIlJlc2l6ZUNvbnRleHRWYWx1ZSIsIkNvbHVtbiIsIkNvbHVtbkdyb3VwIiwiU3VtbWFyeSIsIlByb2ZpbGVyIiwiTm90aWNlIiwiY2xvc2VUaW1lciIsImNsZWFyQ2xvc2VUaW1lciIsIm5vdGljZUtleSIsInN0YXJ0Q2xvc2VUaW1lciIsInVwZGF0ZU1hcmsiLCJyZXN0YXJ0Q2xvc2VUaW1lciIsImNvbXBvbmVudENsYXNzIiwiZGF0YU9yQXJpYUF0dHJpYnV0ZVByb3BzIiwic2VlZCIsImdldFV1aWQiLCJOb3RpZmljYXRpb24iLCJub3RpY2VzIiwiaG9va1JlZnMiLCJvcmlnaW5Ob3RpY2UiLCJob2xkZXJDYWxsYmFjayIsInByZXZpb3VzU3RhdGUiLCJub3RpY2VJbmRleCIsInVwZGF0ZWROb3RpY2VzIiwidXNlclBhc3NLZXkiLCJfcmVmMiRub3RpY2UiLCJub3RpY2VQcm9wc01hcCIsIm5vdGljZUtleXMiLCJfbm90aWNlJG9uQ2xvc2UiLCJfdGhpczIkbm90aWNlUHJvcHNNYXAiLCJjYWxsZWQiLCJub3RpZmljYXRpb24iLCJ1c2VOb3RpZmljYXRpb24iLCJpY29ucyIsImRlZmluaXRpb25zIiwiZGVib3VuY2UiLCJ3YWl0IiwiaW1tZWRpYXRlIiwidGltZXN0YW1wIiwibGF0ZXIiLCJkZWJvdW5jZWQiLCJjYWxsTm93IiwiZmx1c2giLCJzeW1ib2xPYnNlcnZhYmxlUG9ueWZpbGwiLCJvYnNlcnZhYmxlIiwiX1NlYXJjaCIsIl9UZXh0QXJlYSIsIl9QYXNzd29yZCIsIlNlYXJjaCIsIlRleHRBcmVhIiwiUGFzc3dvcmQiLCJfX2ltcG9ydERlZmF1bHQiLCJnZW5lcmF0ZV8xIiwicHJlc2V0UHJpbWFyeUNvbG9ycyIsInJlZCIsInZvbGNhbm8iLCJvcmFuZ2UiLCJnb2xkIiwieWVsbG93IiwibGltZSIsImdyZWVuIiwiY3lhbiIsImJsdWUiLCJnZWVrYmx1ZSIsInB1cnBsZSIsIm1hZ2VudGEiLCJncmV5IiwicHJlc2V0UGFsZXR0ZXMiLCJwcmltYXJ5Iiwibm90X3N0cmluZyIsIm5vdF9ib29sIiwibm90X3R5cGUiLCJub3RfcHJpbWl0aXZlIiwibnVtZXJpY19hcmciLCJub3RfanNvbiIsIm1vZHVsbyIsImtleV9hY2Nlc3MiLCJpbmRleF9hY2Nlc3MiLCJzcHJpbnRmIiwic3ByaW50Zl9mb3JtYXQiLCJzcHJpbnRmX3BhcnNlIiwidnNwcmludGYiLCJmbXQiLCJwYXJzZV90cmVlIiwicGgiLCJwYWQiLCJwYWRfY2hhcmFjdGVyIiwicGFkX2xlbmd0aCIsImlzX3Bvc2l0aXZlIiwidHJlZV9sZW5ndGgiLCJwYXJhbV9ubyIsInByZWNpc2lvbiIsInRvRXhwb25lbnRpYWwiLCJ0b1ByZWNpc2lvbiIsInBhZF9jaGFyIiwicmVwZWF0Iiwic3ByaW50Zl9jYWNoZSIsIl9mbXQiLCJhcmdfbmFtZXMiLCJmaWVsZF9saXN0IiwicmVwbGFjZW1lbnRfZmllbGQiLCJmaWVsZF9tYXRjaCIsIl9nZXREYXRhT3JBcmlhUHJvcHMiLCJBbGVydCIsImhhbmRsZUNsb3NlIiwiY2xvc2luZyIsImFuaW1hdGlvbkVuZCIsImNsb3NlZCIsImFmdGVyQ2xvc2UiLCJyZW5kZXJBbGVydCIsImNsb3NlVGV4dCIsImJhbm5lciIsIl90aGlzJHByb3BzJGNsYXNzTmFtZSIsInNob3dJY29uIiwiaWNvblRoZW1lIiwiYWxlcnRDbHMiLCJkYXRhT3JBcmlhUHJvcHMiLCJpY29uTm9kZSIsIl9jb25zdHJ1Y3QiLCJQYXJlbnQiLCJDbGFzcyIsIl93cmFwTmF0aXZlU3VwZXIiLCJfY2FjaGUiLCJXcmFwcGVyIiwiQXN5bmNWYWxpZGF0aW9uRXJyb3IiLCJfRXJyb3IiLCJfcGVuZGluZyIsImdldFllYXIiLCJydWxlVHlwZSIsInR5cGUkMSIsInZhbGlkYXRvcnMiLCJkYXRlT2JqZWN0IiwibmV3TWVzc2FnZXMiLCJjbG9uZWQiLCJTY2hlbWEiLCJfbWVzc2FnZXMiLCJkZWZpbmUiLCJ6Iiwic291cmNlXyIsIm9jIiwibWVzc2FnZXMkMSIsInNlcmllcyIsImdldFZhbGlkYXRpb25NZXRob2QiLCJnZXRUeXBlIiwiZXJyb3JGaWVsZHMiLCJkb0l0IiwiZGVmYXVsdEZpZWxkIiwiYWRkRnVsbGZpZWxkIiwic2NoZW1hIiwic3VwcHJlc3NXYXJuaW5nIiwiZmllbGRzU2NoZW1hIiwiZmllbGRTY2hlbWEiLCJlcnJzIiwiZmluYWxFcnJvcnMiLCJhc3luY1ZhbGlkYXRvciIsIl9lcnJvcnMiLCJjb21wbGV0ZSIsIm1lc3NhZ2VJbmRleCIsInJlZ2lzdGVyIiwic2F2ZVRvb2x0aXAiLCJ0b29sdGlwIiwiZ2V0UGxhY2VtZW50cyIsInJlbmRlclRvb2x0aXAiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemUiLCJnZXRPdmVybGF5IiwidmVydGljYWxBcnJvd1NoaWZ0Iiwic3RyaWN0VXJpRW5jb2RlIiwib2JqZWN0QXNzaWduIiwiZGVjb2RlQ29tcG9uZW50IiwiZW5jb2RlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZXh0cmFjdCIsInF1ZXJ5U3RhcnQiLCJmb3JtYXR0ZXIiLCJhY2N1bXVsYXRvciIsInBhcnNlckZvckFycmF5Rm9ybWF0IiwicGFyYW0iLCJrZXlzU29ydGVyIiwiZW5jb2RlckZvckFycmF5Rm9ybWF0IiwicGFyc2VVcmwiLCJfTW9kYWwiLCJfY29uZmlybSIsIm1vZGFsV2FybiIsIm9rQ2FuY2VsIiwiY29uZmlybSIsImRlc3Ryb3lBbGwiLCJfZGVib3VuY2UiLCJTcGluU2l6ZXMiLCJkZWZhdWx0SW5kaWNhdG9yIiwiU3BpbiIsImRlYm91bmNpZnlVcGRhdGVTcGlubmluZyIsImNhbmNlbEV4aXN0aW5nU3BpbiIsInVwZGF0ZVNwaW5uaW5nIiwib3JpZ2luYWxVcGRhdGVTcGlubmluZyIsInNwaW5uaW5nIiwicmVuZGVyU3BpbiIsInRpcCIsInNwaW5DbGFzc05hbWUiLCJzcGluRWxlbWVudCIsImluZGljYXRvciIsImRvdENsYXNzTmFtZSIsInJlbmRlckluZGljYXRvciIsImlzTmVzdGVkUGF0dGVybiIsImNvbnRhaW5lckNsYXNzTmFtZSIsInNob3VsZEJlRGVsYXllZCIsInNob3VsZERlbGF5IiwicmVxdWVzdHMiLCJnZXRSZXF1ZXN0S2V5IiwiX3JlZiR1cmwiLCJfcmVmJG1ldGhvZCIsIl9yZWYkcmVzcG9uc2VUeXBlIiwicmVzcG9uc2VUeXBlIiwiX3JlZiRib2R5IiwicmVzb2x2ZVJlcXVlc3QiLCJyZXF1ZXN0S2V5IiwiaGFuZGxlciIsImZldGNoRGVkdXBlIiwiZGVkdXBlT3B0aW9ucyIsImluaXRUb1VzZSIsIl9vcHRzIiwiX29wdHMkcmVzcG9uc2VUeXBlIiwiX29wdHMkZGVkdXBlIiwiZGVkdXBlIiwicmVxdWVzdEtleVRvVXNlIiwicHJveHlSZXEiLCJoYW5kbGVycyIsInJlcXVlc3RJbkZsaWdodCIsInJlcXVlc3RIYW5kbGVyIiwicmVxdWVzdCIsInJlc3BvbnNlVHlwZVRvVXNlIiwiRmV0Y2hDb250ZXh0Iiwic3RyaW5naWZ5SWZKU09OIiwiZmV0Y2hPcHRpb25zIiwia2V5VG9GaW5kIiwiSGVhZGVycyIsImtleVRvRmluZExvd2VyY2FzZSIsImhlYWRlcktleSIsImdldEhlYWRlciIsImlzUmVhZFJlcXVlc3QiLCJDQUNIRV9QT0xJQ0lFUyIsImRlZmF1bHRPbkVycm9yIiwiZGVmYXVsdE9uU3VjY2VzcyIsInJlZHVjZXIiLCJmZXRjaGluZyIsInJlc3BvbnNlIiwiZGVmYXVsdFJlZnJlc2hEb0ZldGNoIiwiX3JlZiRsYXp5IiwibGF6eSIsIl9yZWYkcmVxdWVzdEtleSIsIl9yZWYkaW5pdCIsIl9yZWYkZGVkdXBlT3B0aW9ucyIsIl9yZWYkY2FjaGVQb2xpY3kiLCJjYWNoZVBvbGljeSIsIl9yZWYkY2FjaGVSZXNwb25zZSIsImNhY2hlUmVzcG9uc2UiLCJfcmVmJG9uRXJyb3IiLCJvbkVycm9yIiwiX3JlZiRvblN1Y2Nlc3MiLCJvblN1Y2Nlc3MiLCJfcmVmJHJlZnJlc2hEb0ZldGNoIiwicmVmcmVzaERvRmV0Y2giLCJyZXNwb25zZUNhY2hlIiwiYWJvcnRDb250cm9sbGVyUmVmIiwiaXNMYXp5IiwiY2FjaGVTdHJhdGVneSIsImdldERlZmF1bHRDYWNoZVN0cmF0ZWd5IiwiX3VzZVJlZHVjZXIiLCJkaXNwYXRjaCIsImZpbmFsUmVxdWVzdEtleSIsInNldEZldGNoaW5nIiwic2V0UmVzcG9uc2UiLCJzZXRFcnJvciIsImNhbmNlbFJ1bm5pbmdSZXF1ZXN0IiwiYWJvcnQiLCJzaG91bGRDYWNoZVJlc3BvbnNlIiwiZG9GZXRjaCIsImRvRmV0Y2hJbml0IiwiZG9GZXRjaERlZHVwZU9wdGlvbnMiLCJmaW5hbEluaXQiLCJmaW5hbERlZHVwZU9wdGlvbnMiLCJzaWduYWwiLCJjYXRjaCIsImFib3J0ZWQiLCJmaW5hbGx5IiwiY2FjaGVkUmVzcG9uc2UiLCJxIiwiYWEiLCJiYSIsImNhIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiZW5xdWV1ZVJlcGxhY2VTdGF0ZSIsImVucXVldWVTZXRTdGF0ZSIsImlzUHVyZVJlYWN0Q29tcG9uZW50Iiwic3VzcGVuc2UiLCJfX3NlbGYiLCJfX3NvdXJjZSIsIiQkdHlwZW9mIiwiX293bmVyIiwiZXNjYXBlIiwiZWEiLCJmYSIsImRhIiwiY3JlYXRlUmVmIiwiUHVyZUNvbXBvbmVudCIsIl9jYWxjdWxhdGVDaGFuZ2VkQml0cyIsIl9jdXJyZW50VmFsdWUiLCJfY3VycmVudFZhbHVlMiIsIl90aHJlYWRDb3VudCIsIl9jdG9yIiwiX3N0YXR1cyIsIl9yZXN1bHQiLCJ1c2VEZWJ1Z1ZhbHVlIiwidXNlTGF5b3V0RWZmZWN0IiwidXNlUmVkdWNlciIsIlN0cmljdE1vZGUiLCJTdXNwZW5zZSIsInVuc3RhYmxlX1N1c3BlbnNlTGlzdCIsImNyZWF0ZUZhY3RvcnkiLCJ1bnN0YWJsZV93aXRoU3VzcGVuc2VDb25maWciLCJfX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsIlJlYWN0Q3VycmVudERpc3BhdGNoZXIiLCJSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyIsIlJlYWN0Q3VycmVudE93bmVyIiwiSXNTb21lUmVuZGVyZXJBY3RpbmciLCJleHRyYWN0RXZlbnRzIiwiZXZlbnRUeXBlcyIsInBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzIiwiaGEiLCJyZWdpc3RyYXRpb25OYW1lIiwiaWEiLCJqYSIsImRlcGVuZGVuY2llcyIsImthIiwibGEiLCJtYSIsIm5hIiwib2EiLCJwYSIsInFhIiwic2EiLCJ0YSIsInZhIiwid2EiLCJyYSIsInhhIiwieWEiLCJ6YSIsIkFhIiwiX2Rpc3BhdGNoTGlzdGVuZXJzIiwiX2Rpc3BhdGNoSW5zdGFuY2VzIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJpc1BlcnNpc3RlbnQiLCJyZWxlYXNlIiwiQmEiLCJDYSIsImluamVjdEV2ZW50UGx1Z2luT3JkZXIiLCJpbmplY3RFdmVudFBsdWdpbnNCeU5hbWUiLCJEYSIsInN0YXRlTm9kZSIsIkVhIiwiRmEiLCJHYSIsIkhhIiwiSWEiLCJKYSIsIkthIiwiTGEiLCJyZXR1cm4iLCJNYSIsImRpc3BhdGNoQ29uZmlnIiwiTmEiLCJfdGFyZ2V0SW5zdCIsIk9hIiwiUGEiLCJRYSIsIlJhIiwiU2EiLCJUYSIsImFuaW1hdGlvbml0ZXJhdGlvbiIsIlVhIiwiVmEiLCJXYSIsIlhhIiwiWWEiLCJaYSIsImFiIiwiYmIiLCJkYiIsImViIiwiZmIiLCJ0ZXh0Q29udGVudCIsImdiIiwiaGIiLCJJbnRlcmZhY2UiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJkZWZhdWx0UHJldmVudGVkIiwicmV0dXJuVmFsdWUiLCJqYiIsImV2ZW50UG9vbCIsImtiIiwiZGVzdHJ1Y3RvciIsImliIiwiZ2V0UG9vbGVkIiwiY2FuY2VsQnViYmxlIiwiZXZlbnRQaGFzZSIsImlzVHJ1c3RlZCIsImxiIiwibWIiLCJuYiIsIm9iIiwicGIiLCJkb2N1bWVudE1vZGUiLCJxYiIsInNiIiwidGIiLCJ1YiIsImJlZm9yZUlucHV0IiwiYnViYmxlZCIsImNhcHR1cmVkIiwiY29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvblN0YXJ0IiwiY29tcG9zaXRpb25VcGRhdGUiLCJ2YiIsIndiIiwieGIiLCJ5YiIsIkNiIiwiQWIiLCJCYiIsIkRiIiwiRWIiLCJGYiIsIkdiIiwiSGIiLCJJYiIsIkpiIiwiS2IiLCJMYiIsIk1iIiwiTmIiLCJPYiIsIlBiIiwiZGF0ZXRpbWUiLCJzZWFyY2giLCJ0ZWwiLCJRYiIsIlJiIiwic3JjRWxlbWVudCIsImNvcnJlc3BvbmRpbmdVc2VFbGVtZW50IiwiU2IiLCJzZXRBdHRyaWJ1dGUiLCJUYiIsIlZiIiwiX3ZhbHVlVHJhY2tlciIsInN0b3BUcmFja2luZyIsIlViIiwiV2IiLCJYYiIsIlliIiwiWmIiLCIkYiIsImFjIiwiYmMiLCJjYyIsImRjIiwiZWMiLCJmYyIsImdjIiwiaGMiLCJpYyIsImpjIiwia2MiLCJsYyIsIm1jIiwicGMiLCJfZGVidWdPd25lciIsIl9kZWJ1Z1NvdXJjZSIsImZpbGVOYW1lIiwibGluZU51bWJlciIsInFjIiwicmMiLCJzYyIsInRjIiwiYWNjZXB0c0Jvb2xlYW5zIiwibXVzdFVzZVByb3BlcnR5Iiwic2FuaXRpemVVUkwiLCJ4YyIsInljIiwiemMiLCJ2YyIsIndjIiwidWMiLCJzZXRBdHRyaWJ1dGVOUyIsIkFjIiwiQmMiLCJfd3JhcHBlclN0YXRlIiwiaW5pdGlhbENoZWNrZWQiLCJDYyIsImNvbnRyb2xsZWQiLCJEYyIsIkVjIiwiRmMiLCJHYyIsInhsaW5rSHJlZiIsIkhjIiwiY2hhbmdlIiwiSWMiLCJKYyIsIktjIiwiTGMiLCJNYyIsIk5jIiwiT2MiLCJQYyIsIlFjIiwiUmMiLCJTYyIsIlRjIiwiVWMiLCJWYyIsIl9pc0lucHV0RXZlbnRTdXBwb3J0ZWQiLCJXYyIsInZpZXciLCJYYyIsIkFsdCIsIk1ldGEiLCJTaGlmdCIsIlljIiwiZ2V0TW9kaWZpZXJTdGF0ZSIsIlpjIiwiJGMiLCJhZCIsImJkIiwiY2QiLCJzaGlmdEtleSIsImJ1dHRvbiIsImZyb21FbGVtZW50IiwidG9FbGVtZW50IiwibW92ZW1lbnRYIiwibW92ZW1lbnRZIiwiZWQiLCJwb2ludGVySWQiLCJwcmVzc3VyZSIsInRhbmdlbnRpYWxQcmVzc3VyZSIsInRpbHRYIiwidGlsdFkiLCJ0d2lzdCIsInBvaW50ZXJUeXBlIiwiaXNQcmltYXJ5IiwiZmQiLCJtb3VzZUVudGVyIiwibW91c2VMZWF2ZSIsInBvaW50ZXJFbnRlciIsInBvaW50ZXJMZWF2ZSIsImdkIiwiYWx0ZXJuYXRlIiwiaGQiLCJqZCIsImtkIiwicmVzcG9uZGVyIiwibGQiLCJlZmZlY3RUYWciLCJvZCIsInFkIiwicGQiLCJyZCIsImFuaW1hdGlvbk5hbWUiLCJlbGFwc2VkVGltZSIsInBzZXVkb0VsZW1lbnQiLCJzZCIsImNsaXBib2FyZERhdGEiLCJ0ZCIsInVkIiwiY2hhckNvZGUiLCJ2ZCIsIkVzYyIsIlNwYWNlYmFyIiwiTGVmdCIsIlVwIiwiUmlnaHQiLCJEb3duIiwiRGVsIiwiV2luIiwiQXBwcyIsIlNjcm9sbCIsIk1velByaW50YWJsZUtleSIsIndkIiwiMTYiLCIxNyIsIjE4IiwiMTkiLCIyNyIsIjMyIiwiMzMiLCIzNCIsIjM1IiwiMzYiLCIzNyIsIjM4IiwiMzkiLCI0NSIsIjQ2IiwiMTEyIiwiMTEzIiwiMTE0IiwiMTE1IiwiMTE2IiwiMTE3IiwiMTE4IiwiMTE5IiwiMTIwIiwiMTIxIiwiMTIyIiwiMTIzIiwiMTQ0IiwiMTQ1IiwiMjI0IiwieGQiLCJsb2NhdGlvbiIsInlkIiwiZGF0YVRyYW5zZmVyIiwiemQiLCJ0b3VjaGVzIiwidGFyZ2V0VG91Y2hlcyIsImNoYW5nZWRUb3VjaGVzIiwiQWQiLCJCZCIsIndoZWVsRGVsdGFYIiwiZGVsdGFZIiwid2hlZWxEZWx0YVkiLCJ3aGVlbERlbHRhIiwiZGVsdGFaIiwiZGVsdGFNb2RlIiwiQ2QiLCJEZCIsIkVkIiwiRmQiLCJHZCIsIkhkIiwiSWQiLCJKZCIsIktkIiwiTGQiLCJldmVudFByaW9yaXR5IiwiTWQiLCJnZXRFdmVudFByaW9yaXR5IiwiTmQiLCJPZCIsIlBkIiwidGFyZ2V0SW5zdCIsImFuY2VzdG9ycyIsImNvbnRhaW5lckluZm8iLCJ0b3BMZXZlbFR5cGUiLCJRZCIsIlJkIiwiU2QiLCJUZCIsIlVkIiwiVmQiLCJXZCIsIlhkIiwiWWQiLCJaZCIsImFlIiwiSFRNTElGcmFtZUVsZW1lbnQiLCJocmVmIiwiYmUiLCJjb250ZW50RWRpdGFibGUiLCJjZSIsImRlIiwiZWUiLCJmZSIsImdlIiwiaGUiLCJpZSIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwiYW5jaG9yTm9kZSIsImdldFNlbGVjdGlvbiIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwiamUiLCJsZSIsImtlIiwibWUiLCJkZWZhdWx0U2VsZWN0ZWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsInBlIiwicWUiLCJTaW1wbGVFdmVudFBsdWdpbiIsIkVudGVyTGVhdmVFdmVudFBsdWdpbiIsIkNoYW5nZUV2ZW50UGx1Z2luIiwiU2VsZWN0RXZlbnRQbHVnaW4iLCJCZWZvcmVJbnB1dEV2ZW50UGx1Z2luIiwic2UiLCJ0ZSIsInVlIiwidmUiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwid2UiLCJsYXN0Q2hpbGQiLCJub2RlVmFsdWUiLCJ4ZSIsImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IiwiYm9yZGVySW1hZ2VPdXRzZXQiLCJib3JkZXJJbWFnZVNsaWNlIiwiYm9yZGVySW1hZ2VXaWR0aCIsImJveEZsZXgiLCJib3hGbGV4R3JvdXAiLCJib3hPcmRpbmFsR3JvdXAiLCJmbGV4R3JvdyIsImZsZXhQb3NpdGl2ZSIsImZsZXhTaHJpbmsiLCJmbGV4TmVnYXRpdmUiLCJmbGV4T3JkZXIiLCJncmlkQXJlYSIsImdyaWRSb3ciLCJncmlkUm93RW5kIiwiZ3JpZFJvd1NwYW4iLCJncmlkUm93U3RhcnQiLCJncmlkQ29sdW1uIiwiZ3JpZENvbHVtbkVuZCIsImdyaWRDb2x1bW5TcGFuIiwiZ3JpZENvbHVtblN0YXJ0IiwiZm9udFdlaWdodCIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJvcmRlciIsIm9ycGhhbnMiLCJ0YWJTaXplIiwid2lkb3dzIiwiem9vbSIsImZpbGxPcGFjaXR5IiwiZmxvb2RPcGFjaXR5Iiwic3RvcE9wYWNpdHkiLCJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlTWl0ZXJsaW1pdCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInllIiwiemUiLCJBZSIsInNldFByb3BlcnR5IiwiQ2UiLCJtZW51aXRlbSIsImFyZWEiLCJiciIsImNvbCIsImVtYmVkIiwiaHIiLCJpbWciLCJrZXlnZW4iLCJsaW5rIiwidHJhY2siLCJ3YnIiLCJEZSIsIkVlIiwiRmUiLCJHZSIsIkhlIiwiSWUiLCJKZSIsIktlIiwiX19odG1sIiwiTGUiLCJNZSIsIk5lIiwiT2UiLCJQZSIsIlFlIiwiUmUiLCJTZSIsIl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCIsIlRlIiwiVWUiLCJWZSIsIldlIiwiWGUiLCJfX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCIsIlllIiwiWmUiLCJ1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkiLCIkZSIsInVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2siLCJhZiIsInVuc3RhYmxlX2NhbmNlbENhbGxiYWNrIiwiYmYiLCJ1bnN0YWJsZV9zaG91bGRZaWVsZCIsImNmIiwidW5zdGFibGVfcmVxdWVzdFBhaW50IiwiZGYiLCJ1bnN0YWJsZV9ub3ciLCJlZiIsInVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsIiwiZmYiLCJ1bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSIsImhmIiwidW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHkiLCJqZiIsInVuc3RhYmxlX05vcm1hbFByaW9yaXR5Iiwia2YiLCJ1bnN0YWJsZV9Mb3dQcmlvcml0eSIsImxmIiwidW5zdGFibGVfSWRsZVByaW9yaXR5IiwibWYiLCJuZiIsInBmIiwicWYiLCJyZiIsInNmIiwidGYiLCJ1ZiIsInZmIiwid2YiLCJ4ZiIsInlmIiwiemYiLCJBZiIsIkNmIiwiRGYiLCJFZiIsIkZmIiwiR2YiLCJIZiIsIklmIiwiSmYiLCJjaGlsZEV4cGlyYXRpb25UaW1lIiwiS2YiLCJmaXJzdENvbnRleHQiLCJleHBpcmF0aW9uVGltZSIsIkxmIiwiTWYiLCJvYnNlcnZlZEJpdHMiLCJyZXNwb25kZXJzIiwiTmYiLCJPZiIsImJhc2VTdGF0ZSIsImZpcnN0VXBkYXRlIiwibGFzdFVwZGF0ZSIsImZpcnN0Q2FwdHVyZWRVcGRhdGUiLCJsYXN0Q2FwdHVyZWRVcGRhdGUiLCJmaXJzdEVmZmVjdCIsImxhc3RFZmZlY3QiLCJmaXJzdENhcHR1cmVkRWZmZWN0IiwibGFzdENhcHR1cmVkRWZmZWN0IiwiUGYiLCJRZiIsInN1c3BlbnNlQ29uZmlnIiwibmV4dEVmZmVjdCIsIlJmIiwiU2YiLCJ1cGRhdGVRdWV1ZSIsIm1lbW9pemVkU3RhdGUiLCJUZiIsIlVmIiwiVmYiLCJXZiIsIlhmIiwiWWYiLCJaZiIsIiRmIiwiYWciLCJiZyIsImZnIiwiX3JlYWN0SW50ZXJuYWxGaWJlciIsImNnIiwiZGciLCJlZyIsImhnIiwiaWciLCJqZyIsImtnIiwiX3N0cmluZ1JlZiIsIm1nIiwibmciLCJvZyIsInBnIiwicWciLCJpbXBsZW1lbnRhdGlvbiIsInJnIiwic2ciLCJyYiIsIkJlIiwidGciLCJ1ZyIsInZnIiwid2ciLCJ4ZyIsInlnIiwiemciLCJBZyIsIkJnIiwiQ2ciLCJEZyIsIkhnIiwibWVtb2l6ZWRQcm9wcyIsInJldmVhbE9yZGVyIiwiUWciLCJSZyIsIlNnIiwiVGciLCJVZyIsIlZnIiwiV2ciLCJYZyIsIllnIiwiWmciLCIkZyIsImFoIiwiYmgiLCJjaCIsImRoIiwiZWgiLCJmaCIsImloIiwiamgiLCJiYXNlVXBkYXRlIiwia2giLCJsaCIsIm1oIiwibGFzdFJlbmRlcmVkUmVkdWNlciIsImxhc3RSZW5kZXJlZFN0YXRlIiwiZWFnZXJSZWR1Y2VyIiwiZWFnZXJTdGF0ZSIsIm5oIiwiZGVwcyIsIm9oIiwicWgiLCJyaCIsInNoIiwicmVhZENvbnRleHQiLCJ1c2VSZXNwb25kZXIiLCJQZyIsIktnIiwidWgiLCJ2aCIsIndoIiwieGgiLCJ5aCIsInBlbmRpbmdQcm9wcyIsInpoIiwiQWgiLCJCaCIsIkNoIiwiRGgiLCJFaCIsIkZoIiwiR2giLCJIaCIsIkloIiwiSmgiLCJLaCIsIkxoIiwiTWgiLCJOaCIsInBlbmRpbmdDb250ZXh0IiwiT2giLCJQaCIsImZhbGxiYWNrIiwidW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2siLCJRaCIsImlzQmFja3dhcmRzIiwicmVuZGVyaW5nIiwidGFpbCIsInRhaWxFeHBpcmF0aW9uIiwidGFpbE1vZGUiLCJSaCIsIlNoIiwiVGgiLCJWaCIsIldoIiwiJGgiLCJhaSIsImJpIiwib25jbGljayIsIldlYWtTZXQiLCJkaSIsImdpIiwiZmkiLCJqaSIsImVpIiwia2kiLCJsaSIsIm1pIiwibmkiLCJfcmVhY3RSb290Q29udGFpbmVyIiwib2kiLCJ3YXNNdWx0aXBsZSIsInBpIiwicWkiLCJyaSIsInNpIiwidGkiLCJ1aSIsInZpIiwid2kiLCJjb21wb25lbnREaWRDYXRjaCIsInhpIiwiY29tcG9uZW50U3RhY2siLCJ5aSIsInppIiwiQWkiLCJKaSIsIktpIiwiTGkiLCJNaSIsIk5pIiwiUGkiLCJRaSIsIlJpIiwiU2kiLCJUaSIsIlVpIiwiVmkiLCJXaSIsInRpbWVvdXRNcyIsIlhpIiwiWWkiLCJwaW5nVGltZSIsIlppIiwiZmlyc3RQZW5kaW5nVGltZSIsImxhc3RQZW5kaW5nVGltZSIsImNhbGxiYWNrRXhwaXJhdGlvblRpbWUiLCJjYWxsYmFja05vZGUiLCIkaSIsImFqIiwiYmoiLCJjaiIsImVqIiwiZmoiLCJnaiIsImhqIiwiZmluaXNoZWRXb3JrIiwiZmluaXNoZWRFeHBpcmF0aW9uVGltZSIsInRpbWVvdXRIYW5kbGUiLCJpaiIsImpqIiwicGluZ0NhY2hlIiwia2oiLCJsaiIsImZpcnN0QmF0Y2giLCJfZGVmZXIiLCJfZXhwaXJhdGlvblRpbWUiLCJfb25Db21wbGV0ZSIsImRqIiwiYnVzeU1pbkR1cmF0aW9uTXMiLCJidXN5RGVsYXlNcyIsIm1qIiwiY3JlYXRlRWxlbWVudE5TIiwiY3JlYXRlVGV4dE5vZGUiLCJuaiIsInJhbmdlQ291bnQiLCJ6YiIsImZvY3VzZWRFbGVtIiwic2VsZWN0aW9uUmFuZ2UiLCJnaCIsIm9qIiwiX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUiLCIkZCIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsInJlbW92ZUFsbFJhbmdlcyIsImFkZFJhbmdlIiwic2V0RW5kIiwiJGEiLCJuYyIsIkZqIiwiWGgiLCJZaCIsIkdqIiwibmQiLCJaaCIsImdmIiwicGoiLCJxaiIsInJqIiwiaGlkZGVuIiwiQmYiLCJzaiIsImh5ZHJhdGUiLCJ1bnN0YWJsZV9vYnNlcnZlZEJpdHMiLCJ1aiIsInZqIiwid2oiLCJ4aiIsInlqIiwiemoiLCJBaiIsIkJqIiwiX2NhbGxiYWNrcyIsIl9oYXNDaGlsZHJlbiIsIl9kaWRDb21wbGV0ZSIsIkNqIiwiX2RpZENvbW1pdCIsIl9vbkNvbW1pdCIsIkRqIiwiX2ludGVybmFsUm9vdCIsIkVqIiwiSGoiLCJKaiIsIklqIiwiS2oiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY29tbWl0IiwidW5tb3VudCIsImNyZWF0ZUJhdGNoIiwiTmoiLCJ1bnN0YWJsZV9jcmVhdGVQb3J0YWwiLCJ1bnN0YWJsZV9pbnRlcmFjdGl2ZVVwZGF0ZXMiLCJ1bnN0YWJsZV9kaXNjcmV0ZVVwZGF0ZXMiLCJ1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlcyIsImZsdXNoU3luYyIsInVuc3RhYmxlX2NyZWF0ZVJvb3QiLCJ1bnN0YWJsZV9jcmVhdGVTeW5jUm9vdCIsInVuc3RhYmxlX2ZsdXNoQ29udHJvbGxlZCIsIkV2ZW50cyIsImZpbmRGaWJlckJ5SG9zdEluc3RhbmNlIiwiYnVuZGxlVHlwZSIsInJlbmRlcmVyUGFja2FnZU5hbWUiLCJpc0Rpc2FibGVkIiwic3VwcG9ydHNGaWJlciIsImluamVjdCIsIm9uQ29tbWl0RmliZXJSb290Iiwib25Db21taXRGaWJlclVubW91bnQiLCJ0aiIsIm92ZXJyaWRlSG9va1N0YXRlIiwib3ZlcnJpZGVQcm9wcyIsInNldFN1c3BlbnNlSGFuZGxlciIsInNjaGVkdWxlVXBkYXRlIiwiY3VycmVudERpc3BhdGNoZXJSZWYiLCJmaW5kSG9zdEluc3RhbmNlQnlGaWJlciIsImZpbmRIb3N0SW5zdGFuY2VzRm9yUmVmcmVzaCIsInNjaGVkdWxlUmVmcmVzaCIsInNjaGVkdWxlUm9vdCIsInNldFJlZnJlc2hIYW5kbGVyIiwiZ2V0Q3VycmVudEZpYmVyIiwiT2oiLCJQaiIsInVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlIiwiTWVzc2FnZUNoYW5uZWwiLCJwZXJmb3JtYW5jZSIsInBvc3RNZXNzYWdlIiwicG9ydDIiLCJwb3J0MSIsIm9ubWVzc2FnZSIsInByZXZpb3VzIiwicHJpb3JpdHlMZXZlbCIsInN0YXJ0VGltZSIsInVuc3RhYmxlX25leHQiLCJ1bnN0YWJsZV93cmFwQ2FsbGJhY2siLCJ1bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbiIsInVuc3RhYmxlX3BhdXNlRXhlY3V0aW9uIiwidW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGUiLCJvcmlnaW5hbE1vZHVsZSIsIlJlYWN0UHJvcFR5cGVzU2VjcmV0IiwiZW1wdHlGdW5jdGlvbiIsImVtcHR5RnVuY3Rpb25XaXRoUmVzZXQiLCJyZXNldFdhcm5pbmdDYWNoZSIsInNoaW0iLCJwcm9wRnVsbE5hbWUiLCJzZWNyZXQiLCJnZXRTaGltIiwiUmVhY3RQcm9wVHlwZXMiLCJzeW1ib2wiLCJpbnN0YW5jZU9mIiwib2JqZWN0T2YiLCJleGFjdCIsImNoZWNrUHJvcFR5cGVzIiwiREVTQ1JJUFRPUlMiLCJnZXRLZXlzIiwiZ09QUyIsIiRhc3NpZ24iLCJhTGVuIiwiZ2V0U3ltYm9scyIsImlzRW51bSIsInRvTGVuZ3RoIiwidG9BYnNvbHV0ZUluZGV4IiwiSVNfSU5DTFVERVMiLCIkdGhpcyIsImZyb21JbmRleCIsIm5vcm1hbFZpZXdCb3giLCJuZXdWaWV3Qm94Iiwib3V0bGluZSIsInR3b3RvbmUiLCJnZXROb2RlIiwiZ2V0SWNvbiIsIkFjY291bnRCb29rRmlsbCIsIkFsZXJ0RmlsbCIsIkFsaXBheVNxdWFyZUZpbGwiLCJBbGl3YW5nd2FuZ0ZpbGwiLCJBbGlwYXlDaXJjbGVGaWxsIiwiQW1hem9uQ2lyY2xlRmlsbCIsIkFuZHJvaWRGaWxsIiwiQW1hem9uU3F1YXJlRmlsbCIsIkFwaUZpbGwiLCJBcHBzdG9yZUZpbGwiLCJBdWRpb0ZpbGwiLCJBcHBsZUZpbGwiLCJCYWNrd2FyZEZpbGwiLCJCYW5rRmlsbCIsIkJlaGFuY2VDaXJjbGVGaWxsIiwiQmVsbEZpbGwiLCJCZWhhbmNlU3F1YXJlRmlsbCIsIkJvb2tGaWxsIiwiQm94UGxvdEZpbGwiLCJCdWdGaWxsIiwiQ2FsY3VsYXRvckZpbGwiLCJCdWxiRmlsbCIsIkJ1aWxkRmlsbCIsIkNhbGVuZGFyRmlsbCIsIkNhbWVyYUZpbGwiLCJDYXJGaWxsIiwiQ2FyZXREb3duRmlsbCIsIkNhcmV0TGVmdEZpbGwiLCJDYXJldFJpZ2h0RmlsbCIsIkNhcnJ5T3V0RmlsbCIsIkNhcmV0VXBGaWxsIiwiQ2hlY2tDaXJjbGVGaWxsIiwiQ2hlY2tTcXVhcmVGaWxsIiwiQ2hyb21lRmlsbCIsIkNpQ2lyY2xlRmlsbCIsIkNsb2NrQ2lyY2xlRmlsbCIsIkNsb3NlQ2lyY2xlRmlsbCIsIkNsb3VkRmlsbCIsIkNsb3NlU3F1YXJlRmlsbCIsIkNvZGVTYW5kYm94U3F1YXJlRmlsbCIsIkNvZGVTYW5kYm94Q2lyY2xlRmlsbCIsIkNvZGVGaWxsIiwiQ29tcGFzc0ZpbGwiLCJDb2RlcGVuQ2lyY2xlRmlsbCIsIkNvZGVwZW5TcXVhcmVGaWxsIiwiQ29udGFjdHNGaWxsIiwiQ29udHJvbEZpbGwiLCJDb250YWluZXJGaWxsIiwiQ29weUZpbGwiLCJDb3B5cmlnaHRDaXJjbGVGaWxsIiwiQ3JlZGl0Q2FyZEZpbGwiLCJDcm93bkZpbGwiLCJDdXN0b21lclNlcnZpY2VGaWxsIiwiRGFzaGJvYXJkRmlsbCIsIkRlbGV0ZUZpbGwiLCJEaWZmRmlsbCIsIkRpbmd0YWxrQ2lyY2xlRmlsbCIsIkRhdGFiYXNlRmlsbCIsIkRpbmd0YWxrU3F1YXJlRmlsbCIsIkRpc2xpa2VGaWxsIiwiRG9sbGFyQ2lyY2xlRmlsbCIsIkRvd25DaXJjbGVGaWxsIiwiRG93blNxdWFyZUZpbGwiLCJEcmliYmJsZUNpcmNsZUZpbGwiLCJEcmliYmJsZVNxdWFyZUZpbGwiLCJEcm9wYm94Q2lyY2xlRmlsbCIsIkRyb3Bib3hTcXVhcmVGaWxsIiwiRW52aXJvbm1lbnRGaWxsIiwiRWRpdEZpbGwiLCJFeGNsYW1hdGlvbkNpcmNsZUZpbGwiLCJFdXJvQ2lyY2xlRmlsbCIsIkV4cGVyaW1lbnRGaWxsIiwiRXllSW52aXNpYmxlRmlsbCIsIkV5ZUZpbGwiLCJGYWNlYm9va0ZpbGwiLCJGYXN0QmFja3dhcmRGaWxsIiwiRmFzdEZvcndhcmRGaWxsIiwiRmlsZUFkZEZpbGwiLCJGaWxlRXhjZWxGaWxsIiwiRmlsZUV4Y2xhbWF0aW9uRmlsbCIsIkZpbGVJbWFnZUZpbGwiLCJGaWxlTWFya2Rvd25GaWxsIiwiRmlsZVBkZkZpbGwiLCJGaWxlUHB0RmlsbCIsIkZpbGVUZXh0RmlsbCIsIkZpbGVXb3JkRmlsbCIsIkZpbGVVbmtub3duRmlsbCIsIkZpbGVaaXBGaWxsIiwiRmlsZUZpbGwiLCJGaWx0ZXJGaWxsIiwiRmlyZUZpbGwiLCJGbGFnRmlsbCIsIkZvbGRlckFkZEZpbGwiLCJGb2xkZXJGaWxsIiwiRm9sZGVyT3BlbkZpbGwiLCJGb3J3YXJkRmlsbCIsIkZyb3duRmlsbCIsIkZ1bmRGaWxsIiwiRnVubmVsUGxvdEZpbGwiLCJHaWZ0RmlsbCIsIkdpdGh1YkZpbGwiLCJHaXRsYWJGaWxsIiwiR29sZGVuRmlsbCIsIkdvb2dsZUNpcmNsZUZpbGwiLCJHb29nbGVQbHVzQ2lyY2xlRmlsbCIsIkdvb2dsZVBsdXNTcXVhcmVGaWxsIiwiR29vZ2xlU3F1YXJlRmlsbCIsIkhkZEZpbGwiLCJIZWFydEZpbGwiLCJIaWdobGlnaHRGaWxsIiwiSG9tZUZpbGwiLCJIb3VyZ2xhc3NGaWxsIiwiSHRtbDVGaWxsIiwiSWRjYXJkRmlsbCIsIkllQ2lyY2xlRmlsbCIsIkllU3F1YXJlRmlsbCIsIkluZm9DaXJjbGVGaWxsIiwiSW5zdGFncmFtRmlsbCIsIkluc3VyYW5jZUZpbGwiLCJJbnRlcmFjdGlvbkZpbGwiLCJJbnRlcmF0aW9uRmlsbCIsIkxheW91dEZpbGwiLCJMZWZ0Q2lyY2xlRmlsbCIsIkxlZnRTcXVhcmVGaWxsIiwiTGlrZUZpbGwiLCJMb2NrRmlsbCIsIkxpbmtlZGluRmlsbCIsIk1haWxGaWxsIiwiTWVkaWNpbmVCb3hGaWxsIiwiTWVkaXVtQ2lyY2xlRmlsbCIsIk1lZGl1bVNxdWFyZUZpbGwiLCJNZWhGaWxsIiwiTWVzc2FnZUZpbGwiLCJNaW51c0NpcmNsZUZpbGwiLCJNaW51c1NxdWFyZUZpbGwiLCJNb2JpbGVGaWxsIiwiTW9uZXlDb2xsZWN0RmlsbCIsIlBhdXNlQ2lyY2xlRmlsbCIsIlBheUNpcmNsZUZpbGwiLCJOb3RpZmljYXRpb25GaWxsIiwiUGhvbmVGaWxsIiwiUGljdHVyZUZpbGwiLCJQaWVDaGFydEZpbGwiLCJQbGF5Q2lyY2xlRmlsbCIsIlBsYXlTcXVhcmVGaWxsIiwiUGx1c0NpcmNsZUZpbGwiLCJQbHVzU3F1YXJlRmlsbCIsIlBvdW5kQ2lyY2xlRmlsbCIsIlByaW50ZXJGaWxsIiwiUHJvZmlsZUZpbGwiLCJQcm9qZWN0RmlsbCIsIlB1c2hwaW5GaWxsIiwiUHJvcGVydHlTYWZldHlGaWxsIiwiUXFDaXJjbGVGaWxsIiwiUXFTcXVhcmVGaWxsIiwiUXVlc3Rpb25DaXJjbGVGaWxsIiwiUmVhZEZpbGwiLCJSZWNvbmNpbGlhdGlvbkZpbGwiLCJSZWRFbnZlbG9wZUZpbGwiLCJSZWRkaXRDaXJjbGVGaWxsIiwiUmVkZGl0U3F1YXJlRmlsbCIsIlJlc3RGaWxsIiwiUmlnaHRDaXJjbGVGaWxsIiwiUm9ja2V0RmlsbCIsIlJpZ2h0U3F1YXJlRmlsbCIsIlNhZmV0eUNlcnRpZmljYXRlRmlsbCIsIlNhdmVGaWxsIiwiU2NoZWR1bGVGaWxsIiwiU2VjdXJpdHlTY2FuRmlsbCIsIlNldHRpbmdGaWxsIiwiU2hvcEZpbGwiLCJTaG9wcGluZ0ZpbGwiLCJTa2V0Y2hDaXJjbGVGaWxsIiwiU2tldGNoU3F1YXJlRmlsbCIsIlNraW5GaWxsIiwiU2xhY2tDaXJjbGVGaWxsIiwiU2xhY2tTcXVhcmVGaWxsIiwiU2t5cGVGaWxsIiwiU2xpZGVyc0ZpbGwiLCJTbWlsZUZpbGwiLCJTbmlwcGV0c0ZpbGwiLCJTb3VuZEZpbGwiLCJTdGFyRmlsbCIsIlN0ZXBCYWNrd2FyZEZpbGwiLCJTdGVwRm9yd2FyZEZpbGwiLCJTdG9wRmlsbCIsIlN3aXRjaGVyRmlsbCIsIlRhYmxldEZpbGwiLCJUYWdGaWxsIiwiVGFnc0ZpbGwiLCJUYW9iYW9DaXJjbGVGaWxsIiwiVGFvYmFvU3F1YXJlRmlsbCIsIlRvb2xGaWxsIiwiVGh1bmRlcmJvbHRGaWxsIiwiVHJhZGVtYXJrQ2lyY2xlRmlsbCIsIlR3aXR0ZXJDaXJjbGVGaWxsIiwiVHJvcGh5RmlsbCIsIlR3aXR0ZXJTcXVhcmVGaWxsIiwiVW5sb2NrRmlsbCIsIlVwQ2lyY2xlRmlsbCIsIlVwU3F1YXJlRmlsbCIsIlVzYkZpbGwiLCJXYWxsZXRGaWxsIiwiVmlkZW9DYW1lcmFGaWxsIiwiV2FybmluZ0ZpbGwiLCJXZWlib0NpcmNsZUZpbGwiLCJXZWNoYXRGaWxsIiwiV2luZG93c0ZpbGwiLCJZYWhvb0ZpbGwiLCJXZWlib1NxdWFyZUZpbGwiLCJZdXF1ZUZpbGwiLCJZb3V0dWJlRmlsbCIsIlpoaWh1U3F1YXJlRmlsbCIsIlpoaWh1Q2lyY2xlRmlsbCIsIkFjY291bnRCb29rT3V0bGluZSIsIkFsZXJ0T3V0bGluZSIsIkFsaXBheUNpcmNsZU91dGxpbmUiLCJBbGl3YW5nd2FuZ091dGxpbmUiLCJBbmRyb2lkT3V0bGluZSIsIkFwaU91dGxpbmUiLCJBcHBzdG9yZU91dGxpbmUiLCJBdWRpb091dGxpbmUiLCJBcHBsZU91dGxpbmUiLCJCYWNrd2FyZE91dGxpbmUiLCJCYW5rT3V0bGluZSIsIkJlbGxPdXRsaW5lIiwiQmVoYW5jZVNxdWFyZU91dGxpbmUiLCJCb29rT3V0bGluZSIsIkJveFBsb3RPdXRsaW5lIiwiQnVsYk91dGxpbmUiLCJCdWdPdXRsaW5lIiwiQ2FsY3VsYXRvck91dGxpbmUiLCJCdWlsZE91dGxpbmUiLCJDYWxlbmRhck91dGxpbmUiLCJDYW1lcmFPdXRsaW5lIiwiQ2FyT3V0bGluZSIsIkNhcmV0RG93bk91dGxpbmUiLCJDYXJldExlZnRPdXRsaW5lIiwiQ2FyZXRSaWdodE91dGxpbmUiLCJDYXJyeU91dE91dGxpbmUiLCJDaGVja0NpcmNsZU91dGxpbmUiLCJDYXJldFVwT3V0bGluZSIsIkNoZWNrU3F1YXJlT3V0bGluZSIsIkNocm9tZU91dGxpbmUiLCJDbG9ja0NpcmNsZU91dGxpbmUiLCJDbG9zZUNpcmNsZU91dGxpbmUiLCJDbG91ZE91dGxpbmUiLCJDbG9zZVNxdWFyZU91dGxpbmUiLCJDb2RlT3V0bGluZSIsIkNvZGVwZW5DaXJjbGVPdXRsaW5lIiwiQ29tcGFzc091dGxpbmUiLCJDb250YWN0c091dGxpbmUiLCJDb250YWluZXJPdXRsaW5lIiwiQ29udHJvbE91dGxpbmUiLCJDb3B5T3V0bGluZSIsIkNyZWRpdENhcmRPdXRsaW5lIiwiQ3Jvd25PdXRsaW5lIiwiQ3VzdG9tZXJTZXJ2aWNlT3V0bGluZSIsIkRhc2hib2FyZE91dGxpbmUiLCJEZWxldGVPdXRsaW5lIiwiRGlmZk91dGxpbmUiLCJEYXRhYmFzZU91dGxpbmUiLCJEaXNsaWtlT3V0bGluZSIsIkRvd25DaXJjbGVPdXRsaW5lIiwiRG93blNxdWFyZU91dGxpbmUiLCJEcmliYmJsZVNxdWFyZU91dGxpbmUiLCJFbnZpcm9ubWVudE91dGxpbmUiLCJFZGl0T3V0bGluZSIsIkV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZSIsIkV4cGVyaW1lbnRPdXRsaW5lIiwiRXllSW52aXNpYmxlT3V0bGluZSIsIkV5ZU91dGxpbmUiLCJGYWNlYm9va091dGxpbmUiLCJGYXN0QmFja3dhcmRPdXRsaW5lIiwiRmFzdEZvcndhcmRPdXRsaW5lIiwiRmlsZUFkZE91dGxpbmUiLCJGaWxlRXhjZWxPdXRsaW5lIiwiRmlsZUV4Y2xhbWF0aW9uT3V0bGluZSIsIkZpbGVJbWFnZU91dGxpbmUiLCJGaWxlTWFya2Rvd25PdXRsaW5lIiwiRmlsZVBwdE91dGxpbmUiLCJGaWxlVGV4dE91dGxpbmUiLCJGaWxlUGRmT3V0bGluZSIsIkZpbGVaaXBPdXRsaW5lIiwiRmlsZU91dGxpbmUiLCJGaWx0ZXJPdXRsaW5lIiwiRmlsZVdvcmRPdXRsaW5lIiwiRmlyZU91dGxpbmUiLCJGaWxlVW5rbm93bk91dGxpbmUiLCJGbGFnT3V0bGluZSIsIkZvbGRlckFkZE91dGxpbmUiLCJGb2xkZXJPdXRsaW5lIiwiRm9sZGVyT3Blbk91dGxpbmUiLCJGb3J3YXJkT3V0bGluZSIsIkZyb3duT3V0bGluZSIsIkZ1bmRPdXRsaW5lIiwiRnVubmVsUGxvdE91dGxpbmUiLCJHaWZ0T3V0bGluZSIsIkdpdGh1Yk91dGxpbmUiLCJHaXRsYWJPdXRsaW5lIiwiSGVhcnRPdXRsaW5lIiwiSGRkT3V0bGluZSIsIkhpZ2hsaWdodE91dGxpbmUiLCJIb21lT3V0bGluZSIsIkhvdXJnbGFzc091dGxpbmUiLCJIdG1sNU91dGxpbmUiLCJJZGNhcmRPdXRsaW5lIiwiSW5mb0NpcmNsZU91dGxpbmUiLCJJbnN0YWdyYW1PdXRsaW5lIiwiSW5zdXJhbmNlT3V0bGluZSIsIkludGVyYWN0aW9uT3V0bGluZSIsIkludGVyYXRpb25PdXRsaW5lIiwiTGF5b3V0T3V0bGluZSIsIkxlZnRDaXJjbGVPdXRsaW5lIiwiTGVmdFNxdWFyZU91dGxpbmUiLCJMaWtlT3V0bGluZSIsIkxpbmtlZGluT3V0bGluZSIsIkxvY2tPdXRsaW5lIiwiTWVkaWNpbmVCb3hPdXRsaW5lIiwiTWVoT3V0bGluZSIsIk1haWxPdXRsaW5lIiwiTWVzc2FnZU91dGxpbmUiLCJNaW51c0NpcmNsZU91dGxpbmUiLCJNaW51c1NxdWFyZU91dGxpbmUiLCJNb2JpbGVPdXRsaW5lIiwiTW9uZXlDb2xsZWN0T3V0bGluZSIsIlBhdXNlQ2lyY2xlT3V0bGluZSIsIlBheUNpcmNsZU91dGxpbmUiLCJOb3RpZmljYXRpb25PdXRsaW5lIiwiUGhvbmVPdXRsaW5lIiwiUGljdHVyZU91dGxpbmUiLCJQaWVDaGFydE91dGxpbmUiLCJQbGF5U3F1YXJlT3V0bGluZSIsIlBsYXlDaXJjbGVPdXRsaW5lIiwiUGx1c0NpcmNsZU91dGxpbmUiLCJQcmludGVyT3V0bGluZSIsIlBsdXNTcXVhcmVPdXRsaW5lIiwiUHJvZmlsZU91dGxpbmUiLCJQcm9qZWN0T3V0bGluZSIsIlB1c2hwaW5PdXRsaW5lIiwiUHJvcGVydHlTYWZldHlPdXRsaW5lIiwiUXVlc3Rpb25DaXJjbGVPdXRsaW5lIiwiUmVhZE91dGxpbmUiLCJSZWNvbmNpbGlhdGlvbk91dGxpbmUiLCJSZWRFbnZlbG9wZU91dGxpbmUiLCJSZXN0T3V0bGluZSIsIlJpZ2h0Q2lyY2xlT3V0bGluZSIsIlJvY2tldE91dGxpbmUiLCJSaWdodFNxdWFyZU91dGxpbmUiLCJTYWZldHlDZXJ0aWZpY2F0ZU91dGxpbmUiLCJTY2hlZHVsZU91dGxpbmUiLCJTYXZlT3V0bGluZSIsIlNlY3VyaXR5U2Nhbk91dGxpbmUiLCJTZXR0aW5nT3V0bGluZSIsIlNob3BwaW5nT3V0bGluZSIsIlNraW5PdXRsaW5lIiwiU2t5cGVPdXRsaW5lIiwiU2xhY2tTcXVhcmVPdXRsaW5lIiwiU2xpZGVyc091dGxpbmUiLCJTbWlsZU91dGxpbmUiLCJTbmlwcGV0c091dGxpbmUiLCJTb3VuZE91dGxpbmUiLCJTdGFyT3V0bGluZSIsIlN0ZXBCYWNrd2FyZE91dGxpbmUiLCJTdGVwRm9yd2FyZE91dGxpbmUiLCJTdG9wT3V0bGluZSIsIlN3aXRjaGVyT3V0bGluZSIsIlRhZ091dGxpbmUiLCJUYWJsZXRPdXRsaW5lIiwiU2hvcE91dGxpbmUiLCJUYWdzT3V0bGluZSIsIlRhb2Jhb0NpcmNsZU91dGxpbmUiLCJUb29sT3V0bGluZSIsIlRodW5kZXJib2x0T3V0bGluZSIsIlRyb3BoeU91dGxpbmUiLCJVbmxvY2tPdXRsaW5lIiwiVXBDaXJjbGVPdXRsaW5lIiwiVXBTcXVhcmVPdXRsaW5lIiwiVXNiT3V0bGluZSIsIlZpZGVvQ2FtZXJhT3V0bGluZSIsIldhbGxldE91dGxpbmUiLCJXYXJuaW5nT3V0bGluZSIsIldlY2hhdE91dGxpbmUiLCJXZWlib0NpcmNsZU91dGxpbmUiLCJXaW5kb3dzT3V0bGluZSIsIllhaG9vT3V0bGluZSIsIldlaWJvU3F1YXJlT3V0bGluZSIsIll1cXVlT3V0bGluZSIsIllvdXR1YmVPdXRsaW5lIiwiQWxpYmFiYU91dGxpbmUiLCJBbGlnbkNlbnRlck91dGxpbmUiLCJBbGlnbkxlZnRPdXRsaW5lIiwiQWxpZ25SaWdodE91dGxpbmUiLCJBbGlwYXlPdXRsaW5lIiwiQWxpeXVuT3V0bGluZSIsIkFtYXpvbk91dGxpbmUiLCJBbnRDbG91ZE91dGxpbmUiLCJBcGFydG1lbnRPdXRsaW5lIiwiQW50RGVzaWduT3V0bGluZSIsIkFyZWFDaGFydE91dGxpbmUiLCJBcnJvd0xlZnRPdXRsaW5lIiwiQXJyb3dEb3duT3V0bGluZSIsIkFycm93VXBPdXRsaW5lIiwiQXJyb3dzQWx0T3V0bGluZSIsIkFycm93UmlnaHRPdXRsaW5lIiwiQXVkaXRPdXRsaW5lIiwiQmFyQ2hhcnRPdXRsaW5lIiwiQmFyY29kZU91dGxpbmUiLCJCYXJzT3V0bGluZSIsIkJnQ29sb3JzT3V0bGluZSIsIkJlaGFuY2VPdXRsaW5lIiwiQmxvY2tPdXRsaW5lIiwiQm9sZE91dGxpbmUiLCJCb3JkZXJCb3R0b21PdXRsaW5lIiwiQm9yZGVyTGVmdE91dGxpbmUiLCJCb3JkZXJPdXRlck91dGxpbmUiLCJCb3JkZXJJbm5lck91dGxpbmUiLCJCb3JkZXJSaWdodE91dGxpbmUiLCJCb3JkZXJIb3Jpem9udGFsT3V0bGluZSIsIkJvcmRlclRvcE91dGxpbmUiLCJCb3JkZXJWZXJ0aWNsZU91dGxpbmUiLCJCb3JkZXJPdXRsaW5lIiwiQnJhbmNoZXNPdXRsaW5lIiwiQ2hlY2tPdXRsaW5lIiwiQ2lPdXRsaW5lIiwiQ2xvc2VPdXRsaW5lIiwiQ2xvdWREb3dubG9hZE91dGxpbmUiLCJDbG91ZFNlcnZlck91dGxpbmUiLCJDbG91ZFN5bmNPdXRsaW5lIiwiQ2xvdWRVcGxvYWRPdXRsaW5lIiwiQ2x1c3Rlck91dGxpbmUiLCJDb2RlcGVuT3V0bGluZSIsIkNvZGVTYW5kYm94T3V0bGluZSIsIkNvbHVtSGVpZ2h0T3V0bGluZSIsIkNvbHVtbldpZHRoT3V0bGluZSIsIkNvbHVtbkhlaWdodE91dGxpbmUiLCJDb2ZmZWVPdXRsaW5lIiwiQ29weXJpZ2h0T3V0bGluZSIsIkRhc2hPdXRsaW5lIiwiRGVwbG95bWVudFVuaXRPdXRsaW5lIiwiRGVza3RvcE91dGxpbmUiLCJEaW5nZGluZ091dGxpbmUiLCJEaXNjb25uZWN0T3V0bGluZSIsIkRvbGxhck91dGxpbmUiLCJEb3VibGVSaWdodE91dGxpbmUiLCJEb3RDaGFydE91dGxpbmUiLCJEb3VibGVMZWZ0T3V0bGluZSIsIkRvd25sb2FkT3V0bGluZSIsIkRyaWJiYmxlT3V0bGluZSIsIkRyb3Bib3hPdXRsaW5lIiwiRWxsaXBzaXNPdXRsaW5lIiwiRW50ZXJPdXRsaW5lIiwiRXVyb091dGxpbmUiLCJFeGNlcHRpb25PdXRsaW5lIiwiRXhjbGFtYXRpb25PdXRsaW5lIiwiRXhwb3J0T3V0bGluZSIsIkZhbGxPdXRsaW5lIiwiRmlsZURvbmVPdXRsaW5lIiwiRmlsZVN5bmNPdXRsaW5lIiwiRmlsZVByb3RlY3RPdXRsaW5lIiwiRmlsZVNlYXJjaE91dGxpbmUiLCJGaWxlSnBnT3V0bGluZSIsIkZvbnRDb2xvcnNPdXRsaW5lIiwiRm9udFNpemVPdXRsaW5lIiwiRm9ya091dGxpbmUiLCJGb3JtT3V0bGluZSIsIkZ1bGxzY3JlZW5FeGl0T3V0bGluZSIsIkZ1bGxzY3JlZW5PdXRsaW5lIiwiR2F0ZXdheU91dGxpbmUiLCJEb3duT3V0bGluZSIsIkRyYWdPdXRsaW5lIiwiR2xvYmFsT3V0bGluZSIsIkdvb2dsZVBsdXNPdXRsaW5lIiwiR29vZ2xlT3V0bGluZSIsIkhlYXRNYXBPdXRsaW5lIiwiR29sZE91dGxpbmUiLCJIaXN0b3J5T3V0bGluZSIsIkllT3V0bGluZSIsIkluYm94T3V0bGluZSIsIkltcG9ydE91dGxpbmUiLCJJbmZvT3V0bGluZSIsIkl0YWxpY091dGxpbmUiLCJJc3N1ZXNDbG9zZU91dGxpbmUiLCJLZXlPdXRsaW5lIiwiTGFwdG9wT3V0bGluZSIsIkxlZnRPdXRsaW5lIiwiTGlua091dGxpbmUiLCJMaW5lQ2hhcnRPdXRsaW5lIiwiTGluZUhlaWdodE91dGxpbmUiLCJMaW5lT3V0bGluZSIsIkxvYWRpbmczUXVhcnRlcnNPdXRsaW5lIiwiTG9hZGluZ091dGxpbmUiLCJMb2dpbk91dGxpbmUiLCJMb2dvdXRPdXRsaW5lIiwiTWFuT3V0bGluZSIsIk1lZGl1bU91dGxpbmUiLCJNZWRpdW1Xb3JrbWFya091dGxpbmUiLCJNZW51VW5mb2xkT3V0bGluZSIsIk1lbnVGb2xkT3V0bGluZSIsIk1lbnVPdXRsaW5lIiwiTWludXNPdXRsaW5lIiwiTW9uaXRvck91dGxpbmUiLCJNb3JlT3V0bGluZSIsIk9yZGVyZWRMaXN0T3V0bGluZSIsIk51bWJlck91dGxpbmUiLCJQYXVzZU91dGxpbmUiLCJQZXJjZW50YWdlT3V0bGluZSIsIlBhcGVyQ2xpcE91dGxpbmUiLCJQaWNDZW50ZXJPdXRsaW5lIiwiUGljTGVmdE91dGxpbmUiLCJQbHVzT3V0bGluZSIsIlBpY1JpZ2h0T3V0bGluZSIsIlBvdW5kT3V0bGluZSIsIlBvd2Vyb2ZmT3V0bGluZSIsIlB1bGxSZXF1ZXN0T3V0bGluZSIsIlFxT3V0bGluZSIsIlF1ZXN0aW9uT3V0bGluZSIsIlJhZGFyQ2hhcnRPdXRsaW5lIiwiUXJjb2RlT3V0bGluZSIsIlJhZGl1c0JvdHRvbWxlZnRPdXRsaW5lIiwiUmFkaXVzQm90dG9tcmlnaHRPdXRsaW5lIiwiUmFkaXVzVXBsZWZ0T3V0bGluZSIsIlJhZGl1c1VwcmlnaHRPdXRsaW5lIiwiUmFkaXVzU2V0dGluZ091dGxpbmUiLCJSZWRkaXRPdXRsaW5lIiwiUmVkb091dGxpbmUiLCJSZWxvYWRPdXRsaW5lIiwiUmV0d2VldE91dGxpbmUiLCJSaWdodE91dGxpbmUiLCJSaXNlT3V0bGluZSIsIlJvbGxiYWNrT3V0bGluZSIsIlNhZmV0eU91dGxpbmUiLCJSb2JvdE91dGxpbmUiLCJTZWFyY2hPdXRsaW5lIiwiU2Nhbk91dGxpbmUiLCJTY2lzc29yT3V0bGluZSIsIlNlbGVjdE91dGxpbmUiLCJTaGFrZU91dGxpbmUiLCJTaGFyZUFsdE91dGxpbmUiLCJTaG9wcGluZ0NhcnRPdXRsaW5lIiwiU2hyaW5rT3V0bGluZSIsIlNsYWNrT3V0bGluZSIsIlNtYWxsRGFzaE91dGxpbmUiLCJTb2x1dGlvbk91dGxpbmUiLCJTa2V0Y2hPdXRsaW5lIiwiU29ydERlc2NlbmRpbmdPdXRsaW5lIiwiU29ydEFzY2VuZGluZ091dGxpbmUiLCJTdG9ja091dGxpbmUiLCJTd2FwTGVmdE91dGxpbmUiLCJTd2FwUmlnaHRPdXRsaW5lIiwiU3RyaWtldGhyb3VnaE91dGxpbmUiLCJTd2FwT3V0bGluZSIsIlN5bmNPdXRsaW5lIiwiVGFibGVPdXRsaW5lIiwiVGVhbU91dGxpbmUiLCJUYW9iYW9PdXRsaW5lIiwiVG9Ub3BPdXRsaW5lIiwiVHJhZGVtYXJrT3V0bGluZSIsIlRyYW5zYWN0aW9uT3V0bGluZSIsIlR3aXR0ZXJPdXRsaW5lIiwiVW5kZXJsaW5lT3V0bGluZSIsIlVuZG9PdXRsaW5lIiwiVW5vcmRlcmVkTGlzdE91dGxpbmUiLCJVcE91dGxpbmUiLCJVcGxvYWRPdXRsaW5lIiwiVXNlckFkZE91dGxpbmUiLCJVc2VyZ3JvdXBBZGRPdXRsaW5lIiwiVXNlck91dGxpbmUiLCJVc2VyRGVsZXRlT3V0bGluZSIsIlVzZXJncm91cERlbGV0ZU91dGxpbmUiLCJWZXJ0aWNhbEFsaWduQm90dG9tT3V0bGluZSIsIlZlcnRpY2FsQWxpZ25NaWRkbGVPdXRsaW5lIiwiVmVydGljYWxBbGlnblRvcE91dGxpbmUiLCJWZXJ0aWNhbFJpZ2h0T3V0bGluZSIsIlZlcnRpY2FsTGVmdE91dGxpbmUiLCJXaWZpT3V0bGluZSIsIlpoaWh1T3V0bGluZSIsIldlaWJvT3V0bGluZSIsIldvbWFuT3V0bGluZSIsIlpvb21Jbk91dGxpbmUiLCJBY2NvdW50Qm9va1R3b1RvbmUiLCJab29tT3V0T3V0bGluZSIsIkFsZXJ0VHdvVG9uZSIsIkFwaVR3b1RvbmUiLCJBcHBzdG9yZVR3b1RvbmUiLCJCYW5rVHdvVG9uZSIsIkF1ZGlvVHdvVG9uZSIsIkJlbGxUd29Ub25lIiwiQm9va1R3b1RvbmUiLCJCb3hQbG90VHdvVG9uZSIsIkJ1Z1R3b1RvbmUiLCJCdWxiVHdvVG9uZSIsIkNhbGN1bGF0b3JUd29Ub25lIiwiQnVpbGRUd29Ub25lIiwiQ2FsZW5kYXJUd29Ub25lIiwiQ2FtZXJhVHdvVG9uZSIsIkNhclR3b1RvbmUiLCJDYXJyeU91dFR3b1RvbmUiLCJDaGVja0NpcmNsZVR3b1RvbmUiLCJDaGVja1NxdWFyZVR3b1RvbmUiLCJDbG9ja0NpcmNsZVR3b1RvbmUiLCJDbG9zZUNpcmNsZVR3b1RvbmUiLCJDbG91ZFR3b1RvbmUiLCJDbG9zZVNxdWFyZVR3b1RvbmUiLCJDb2RlVHdvVG9uZSIsIkNvbXBhc3NUd29Ub25lIiwiQ29udGFjdHNUd29Ub25lIiwiQ29udGFpbmVyVHdvVG9uZSIsIkNvbnRyb2xUd29Ub25lIiwiQ29weVR3b1RvbmUiLCJDcmVkaXRDYXJkVHdvVG9uZSIsIkNyb3duVHdvVG9uZSIsIkN1c3RvbWVyU2VydmljZVR3b1RvbmUiLCJEYXNoYm9hcmRUd29Ub25lIiwiRGVsZXRlVHdvVG9uZSIsIkRpZmZUd29Ub25lIiwiRGF0YWJhc2VUd29Ub25lIiwiRGlzbGlrZVR3b1RvbmUiLCJEb3duQ2lyY2xlVHdvVG9uZSIsIkRvd25TcXVhcmVUd29Ub25lIiwiRW52aXJvbm1lbnRUd29Ub25lIiwiRWRpdFR3b1RvbmUiLCJFeGNsYW1hdGlvbkNpcmNsZVR3b1RvbmUiLCJFeHBlcmltZW50VHdvVG9uZSIsIkV5ZUludmlzaWJsZVR3b1RvbmUiLCJFeWVUd29Ub25lIiwiRmlsZUFkZFR3b1RvbmUiLCJGaWxlRXhjbGFtYXRpb25Ud29Ub25lIiwiRmlsZUltYWdlVHdvVG9uZSIsIkZpbGVFeGNlbFR3b1RvbmUiLCJGaWxlTWFya2Rvd25Ud29Ub25lIiwiRmlsZVBkZlR3b1RvbmUiLCJGaWxlUHB0VHdvVG9uZSIsIkZpbGVUZXh0VHdvVG9uZSIsIkZpbGVVbmtub3duVHdvVG9uZSIsIkZpbGVaaXBUd29Ub25lIiwiRmlsZVdvcmRUd29Ub25lIiwiRmlsZVR3b1RvbmUiLCJGaWx0ZXJUd29Ub25lIiwiRmlyZVR3b1RvbmUiLCJGb2xkZXJBZGRUd29Ub25lIiwiRmxhZ1R3b1RvbmUiLCJGb2xkZXJUd29Ub25lIiwiRm9sZGVyT3BlblR3b1RvbmUiLCJGcm93blR3b1RvbmUiLCJGdW5kVHdvVG9uZSIsIkZ1bm5lbFBsb3RUd29Ub25lIiwiR2lmdFR3b1RvbmUiLCJIZGRUd29Ub25lIiwiSGVhcnRUd29Ub25lIiwiSGlnaGxpZ2h0VHdvVG9uZSIsIkhvbWVUd29Ub25lIiwiSG91cmdsYXNzVHdvVG9uZSIsIkh0bWw1VHdvVG9uZSIsIklkY2FyZFR3b1RvbmUiLCJJbmZvQ2lyY2xlVHdvVG9uZSIsIkluc3VyYW5jZVR3b1RvbmUiLCJJbnRlcmFjdGlvblR3b1RvbmUiLCJJbnRlcmF0aW9uVHdvVG9uZSIsIkxheW91dFR3b1RvbmUiLCJMZWZ0Q2lyY2xlVHdvVG9uZSIsIkxlZnRTcXVhcmVUd29Ub25lIiwiTGlrZVR3b1RvbmUiLCJMb2NrVHdvVG9uZSIsIk1haWxUd29Ub25lIiwiTWVkaWNpbmVCb3hUd29Ub25lIiwiTWVoVHdvVG9uZSIsIk1lc3NhZ2VUd29Ub25lIiwiTWludXNDaXJjbGVUd29Ub25lIiwiTWludXNTcXVhcmVUd29Ub25lIiwiTW9iaWxlVHdvVG9uZSIsIlBhdXNlQ2lyY2xlVHdvVG9uZSIsIk1vbmV5Q29sbGVjdFR3b1RvbmUiLCJOb3RpZmljYXRpb25Ud29Ub25lIiwiUGhvbmVUd29Ub25lIiwiUGljdHVyZVR3b1RvbmUiLCJQbGF5Q2lyY2xlVHdvVG9uZSIsIlBsYXlTcXVhcmVUd29Ub25lIiwiUGllQ2hhcnRUd29Ub25lIiwiUGx1c0NpcmNsZVR3b1RvbmUiLCJQbHVzU3F1YXJlVHdvVG9uZSIsIlBvdW5kQ2lyY2xlVHdvVG9uZSIsIlByaW50ZXJUd29Ub25lIiwiUHJvZmlsZVR3b1RvbmUiLCJQcm9qZWN0VHdvVG9uZSIsIlB1c2hwaW5Ud29Ub25lIiwiUHJvcGVydHlTYWZldHlUd29Ub25lIiwiUXVlc3Rpb25DaXJjbGVUd29Ub25lIiwiUmVjb25jaWxpYXRpb25Ud29Ub25lIiwiUmVkRW52ZWxvcGVUd29Ub25lIiwiUmVzdFR3b1RvbmUiLCJSaWdodENpcmNsZVR3b1RvbmUiLCJSb2NrZXRUd29Ub25lIiwiUmlnaHRTcXVhcmVUd29Ub25lIiwiU2FmZXR5Q2VydGlmaWNhdGVUd29Ub25lIiwiU2F2ZVR3b1RvbmUiLCJTY2hlZHVsZVR3b1RvbmUiLCJTZWN1cml0eVNjYW5Ud29Ub25lIiwiU2V0dGluZ1R3b1RvbmUiLCJTaG9wVHdvVG9uZSIsIlNob3BwaW5nVHdvVG9uZSIsIlNraW5Ud29Ub25lIiwiU2xpZGVyc1R3b1RvbmUiLCJTbWlsZVR3b1RvbmUiLCJTbmlwcGV0c1R3b1RvbmUiLCJTb3VuZFR3b1RvbmUiLCJTdGFyVHdvVG9uZSIsIlN0b3BUd29Ub25lIiwiU3dpdGNoZXJUd29Ub25lIiwiVGFibGV0VHdvVG9uZSIsIlRhZ1R3b1RvbmUiLCJUYWdzVHdvVG9uZSIsIlRvb2xUd29Ub25lIiwiVHJhZGVtYXJrQ2lyY2xlVHdvVG9uZSIsIlVubG9ja1R3b1RvbmUiLCJUcm9waHlUd29Ub25lIiwiVXBDaXJjbGVUd29Ub25lIiwiVGh1bmRlcmJvbHRUd29Ub25lIiwiVXBTcXVhcmVUd29Ub25lIiwiVXNiVHdvVG9uZSIsIlZpZGVvQ2FtZXJhVHdvVG9uZSIsIldhbGxldFR3b1RvbmUiLCJXYXJuaW5nVHdvVG9uZSIsIkNpVHdvVG9uZSIsIkNvcHlyaWdodFR3b1RvbmUiLCJEb2xsYXJUd29Ub25lIiwiRXVyb1R3b1RvbmUiLCJHb2xkVHdvVG9uZSIsIkNhbmxlbmRhclR3b1RvbmUiLCIkT2JqZWN0IiwiVE9fU1RSSU5HIiwiT2JqZWN0UHJvdG8iLCJUT19TVFJJTkdfVEFHIiwiRE9NSXRlcmFibGVzIiwiQ29sbGVjdGlvbiIsImFkZFRvVW5zY29wYWJsZXMiLCJfayIsIkFyZ3VtZW50cyIsIktFWSIsIiRmYWlscyIsIndrcyIsIndrc0RlZmluZSIsImVudW1LZXlzIiwiZ09QTkV4dCIsIiRHT1BEIiwiJEdPUFMiLCIkRFAiLCJnT1BOIiwiJEpTT04iLCJfc3RyaW5naWZ5IiwiSElEREVOIiwiVE9fUFJJTUlUSVZFIiwiU3ltYm9sUmVnaXN0cnkiLCJBbGxTeW1ib2xzIiwiT1BTeW1ib2xzIiwiVVNFX05BVElWRSIsIlFPYmplY3QiLCJmaW5kQ2hpbGQiLCJzZXRTeW1ib2xEZXNjIiwicHJvdG9EZXNjIiwiJGRlZmluZVByb3BlcnR5IiwiJGRlZmluZVByb3BlcnRpZXMiLCIkcHJvcGVydHlJc0VudW1lcmFibGUiLCIkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiJGdldE93blByb3BlcnR5TmFtZXMiLCIkZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiSVNfT1AiLCIkc2V0IiwiZXM2U3ltYm9scyIsIndlbGxLbm93blN5bWJvbHMiLCJrZXlGb3IiLCJ1c2VTZXR0ZXIiLCJ1c2VTaW1wbGUiLCJGQUlMU19PTl9QUklNSVRJVkVTIiwicmVwbGFjZXIiLCIkcmVwbGFjZXIiLCJzZXREZXNjIiwiaXNFeHRlbnNpYmxlIiwiRlJFRVpFIiwicHJldmVudEV4dGVuc2lvbnMiLCJzZXRNZXRhIiwiTkVFRCIsImZhc3RLZXkiLCJnZXRXZWFrIiwib25GcmVlemUiLCJ3aW5kb3dOYW1lcyIsImdldFdpbmRvd05hbWVzIiwiYnVnZ3kiLCJ0aW55Y29sb3IyXzEiLCJnZXRIdWUiLCJoc3YiLCJsaWdodCIsImh1ZSIsImdldFNhdHVyYXRpb24iLCJzYXR1cmF0aW9uIiwicGF0dGVybnMiLCJwQ29sb3IiLCJ0b0hzdiIsImNvbG9yU3RyaW5nIiwidG9IZXhTdHJpbmciLCJ0cmltTGVmdCIsInRyaW1SaWdodCIsInRpbnlDb3VudGVyIiwibWF0aFJvdW5kIiwibWF0aE1pbiIsIm1hdGhNYXgiLCJtYXRoUmFuZG9tIiwidGlueWNvbG9yIiwicmdiIiwibmFtZWQiLCJtYXRjaGVycyIsInJnYmEiLCJoc2wiLCJoc2xhIiwiaHN2YSIsImhleDgiLCJwYXJzZUludEZyb21IZXgiLCJjb252ZXJ0SGV4VG9EZWNpbWFsIiwiaGV4NiIsImhleDQiLCJoZXgzIiwic3RyaW5nSW5wdXRUb09iamVjdCIsImlzVmFsaWRDU1NVbml0IiwiYm91bmQwMSIsImNvbnZlcnRUb1BlcmNlbnRhZ2UiLCJoc3ZUb1JnYiIsImh1ZTJyZ2IiLCJoc2xUb1JnYiIsImJvdW5kQWxwaGEiLCJpbnB1dFRvUkdCIiwiX29yaWdpbmFsSW5wdXQiLCJfciIsIl9nIiwiX3JvdW5kQSIsIl9mb3JtYXQiLCJfZ3JhZGllbnRUeXBlIiwiZ3JhZGllbnRUeXBlIiwiX29rIiwiX3RjX2lkIiwicmdiVG9Ic2wiLCJyZ2JUb0hzdiIsInJnYlRvSGV4IiwiYWxsb3czQ2hhciIsInBhZDIiLCJyZ2JhVG9BcmdiSGV4IiwiY29udmVydERlY2ltYWxUb0hleCIsImRlc2F0dXJhdGUiLCJhbW91bnQiLCJ0b0hzbCIsImNsYW1wMDEiLCJzYXR1cmF0ZSIsImdyZXlzY2FsZSIsImxpZ2h0ZW4iLCJicmlnaHRlbiIsInRvUmdiIiwiZGFya2VuIiwiY29tcGxlbWVudCIsInRyaWFkIiwidGV0cmFkIiwic3BsaXRjb21wbGVtZW50IiwiYW5hbG9nb3VzIiwic2xpY2VzIiwibW9ub2Nocm9tYXRpYyIsIm1vZGlmaWNhdGlvbiIsImlzRGFyayIsImdldEJyaWdodG5lc3MiLCJpc0xpZ2h0IiwiZ2V0T3JpZ2luYWxJbnB1dCIsImdldEZvcm1hdCIsImdldEFscGhhIiwiZ2V0THVtaW5hbmNlIiwiUnNSR0IiLCJHc1JHQiIsIkJzUkdCIiwic2V0QWxwaGEiLCJ0b0hzdlN0cmluZyIsInRvSHNsU3RyaW5nIiwidG9IZXg4IiwiYWxsb3c0Q2hhciIsInJnYmFUb0hleCIsInRvSGV4OFN0cmluZyIsInRvUmdiU3RyaW5nIiwidG9QZXJjZW50YWdlUmdiIiwidG9QZXJjZW50YWdlUmdiU3RyaW5nIiwidG9OYW1lIiwiaGV4TmFtZXMiLCJ0b0ZpbHRlciIsInNlY29uZENvbG9yIiwiaGV4OFN0cmluZyIsInNlY29uZEhleDhTdHJpbmciLCJmb3JtYXRTZXQiLCJmb3JtYXR0ZWRTdHJpbmciLCJoYXNBbHBoYSIsIl9hcHBseU1vZGlmaWNhdGlvbiIsIl9hcHBseUNvbWJpbmF0aW9uIiwiZnJvbVJhdGlvIiwibmV3Q29sb3IiLCJjb2xvcjEiLCJjb2xvcjIiLCJyZ2IxIiwicmdiMiIsInJlYWRhYmlsaXR5IiwiaXNSZWFkYWJsZSIsIndjYWcyIiwid2NhZzJQYXJtcyIsInBhcm1zIiwidmFsaWRhdGVXQ0FHMlBhcm1zIiwibW9zdFJlYWRhYmxlIiwiYmFzZUNvbG9yIiwiY29sb3JMaXN0IiwiaW5jbHVkZUZhbGxiYWNrQ29sb3JzIiwiYmVzdENvbG9yIiwiYmVzdFNjb3JlIiwiYWxpY2VibHVlIiwiYW50aXF1ZXdoaXRlIiwiYXF1YSIsImFxdWFtYXJpbmUiLCJhenVyZSIsImJlaWdlIiwiYmlzcXVlIiwiYmxhY2siLCJibGFuY2hlZGFsbW9uZCIsImJsdWV2aW9sZXQiLCJicm93biIsImJ1cmx5d29vZCIsImJ1cm50c2llbm5hIiwiY2FkZXRibHVlIiwiY2hhcnRyZXVzZSIsImNob2NvbGF0ZSIsImNvcmFsIiwiY29ybmZsb3dlcmJsdWUiLCJjb3Juc2lsayIsImNyaW1zb24iLCJkYXJrYmx1ZSIsImRhcmtjeWFuIiwiZGFya2dvbGRlbnJvZCIsImRhcmtncmF5IiwiZGFya2dyZWVuIiwiZGFya2dyZXkiLCJkYXJra2hha2kiLCJkYXJrbWFnZW50YSIsImRhcmtvbGl2ZWdyZWVuIiwiZGFya29yYW5nZSIsImRhcmtvcmNoaWQiLCJkYXJrcmVkIiwiZGFya3NhbG1vbiIsImRhcmtzZWFncmVlbiIsImRhcmtzbGF0ZWJsdWUiLCJkYXJrc2xhdGVncmF5IiwiZGFya3NsYXRlZ3JleSIsImRhcmt0dXJxdW9pc2UiLCJkYXJrdmlvbGV0IiwiZGVlcHBpbmsiLCJkZWVwc2t5Ymx1ZSIsImRpbWdyYXkiLCJkaW1ncmV5IiwiZG9kZ2VyYmx1ZSIsImZpcmVicmljayIsImZsb3JhbHdoaXRlIiwiZm9yZXN0Z3JlZW4iLCJmdWNoc2lhIiwiZ2FpbnNib3JvIiwiZ2hvc3R3aGl0ZSIsImdvbGRlbnJvZCIsImdyYXkiLCJncmVlbnllbGxvdyIsImhvbmV5ZGV3IiwiaG90cGluayIsImluZGlhbnJlZCIsImluZGlnbyIsIml2b3J5Iiwia2hha2kiLCJsYXZlbmRlciIsImxhdmVuZGVyYmx1c2giLCJsYXduZ3JlZW4iLCJsZW1vbmNoaWZmb24iLCJsaWdodGJsdWUiLCJsaWdodGNvcmFsIiwibGlnaHRjeWFuIiwibGlnaHRnb2xkZW5yb2R5ZWxsb3ciLCJsaWdodGdyYXkiLCJsaWdodGdyZWVuIiwibGlnaHRncmV5IiwibGlnaHRwaW5rIiwibGlnaHRzYWxtb24iLCJsaWdodHNlYWdyZWVuIiwibGlnaHRza3libHVlIiwibGlnaHRzbGF0ZWdyYXkiLCJsaWdodHNsYXRlZ3JleSIsImxpZ2h0c3RlZWxibHVlIiwibGlnaHR5ZWxsb3ciLCJsaW1lZ3JlZW4iLCJsaW5lbiIsIm1hcm9vbiIsIm1lZGl1bWFxdWFtYXJpbmUiLCJtZWRpdW1ibHVlIiwibWVkaXVtb3JjaGlkIiwibWVkaXVtcHVycGxlIiwibWVkaXVtc2VhZ3JlZW4iLCJtZWRpdW1zbGF0ZWJsdWUiLCJtZWRpdW1zcHJpbmdncmVlbiIsIm1lZGl1bXR1cnF1b2lzZSIsIm1lZGl1bXZpb2xldHJlZCIsIm1pZG5pZ2h0Ymx1ZSIsIm1pbnRjcmVhbSIsIm1pc3R5cm9zZSIsIm1vY2Nhc2luIiwibmF2YWpvd2hpdGUiLCJuYXZ5Iiwib2xkbGFjZSIsIm9saXZlIiwib2xpdmVkcmFiIiwib3JhbmdlcmVkIiwib3JjaGlkIiwicGFsZWdvbGRlbnJvZCIsInBhbGVncmVlbiIsInBhbGV0dXJxdW9pc2UiLCJwYWxldmlvbGV0cmVkIiwicGFwYXlhd2hpcCIsInBlYWNocHVmZiIsInBlcnUiLCJwaW5rIiwicGx1bSIsInBvd2RlcmJsdWUiLCJyZWJlY2NhcHVycGxlIiwicm9zeWJyb3duIiwicm95YWxibHVlIiwic2FkZGxlYnJvd24iLCJzYWxtb24iLCJzYW5keWJyb3duIiwic2VhZ3JlZW4iLCJzZWFzaGVsbCIsInNpZW5uYSIsInNpbHZlciIsInNreWJsdWUiLCJzbGF0ZWJsdWUiLCJzbGF0ZWdyYXkiLCJzbGF0ZWdyZXkiLCJzbm93Iiwic3ByaW5nZ3JlZW4iLCJzdGVlbGJsdWUiLCJ0YW4iLCJ0ZWFsIiwidGhpc3RsZSIsInRvbWF0byIsInR1cnF1b2lzZSIsInZpb2xldCIsIndoZWF0Iiwid2hpdGUiLCJ3aGl0ZXNtb2tlIiwieWVsbG93Z3JlZW4iLCJmbGlwcGVkIiwiaXNPbmVQb2ludFplcm8iLCJwcm9jZXNzUGVyY2VudCIsImlzUGVyY2VudGFnZSIsIkNTU19VTklUIiwiUEVSTUlTU0lWRV9NQVRDSDMiLCJQRVJNSVNTSVZFX01BVENINCIsInNjcmlwdFVybCIsIl9vcHRpb25zJGV4dHJhQ29tbW9uUCIsImV4dHJhQ29tbW9uUHJvcHMiLCJjdXN0b21DYWNoZSIsInNjcmlwdCIsIkljb25mb250IiwiX2luZGV4IiwiZmlsbFRlc3RlciIsIm91dGxpbmVUZXN0ZXIiLCJ0d29Ub25lVGVzdGVyIiwibmV3VHlwZSIsInRvZGF5IiwiYmFja1RvVG9kYXkiLCJ0aW1lU2VsZWN0IiwiZGF0ZVNlbGVjdCIsIndlZWtTZWxlY3QiLCJtb250aFNlbGVjdCIsInllYXJTZWxlY3QiLCJkZWNhZGVTZWxlY3QiLCJ5ZWFyRm9ybWF0IiwiZGF5Rm9ybWF0IiwiZGF0ZVRpbWVGb3JtYXQiLCJtb250aEJlZm9yZVllYXIiLCJwcmV2aW91c01vbnRoIiwibmV4dE1vbnRoIiwicHJldmlvdXNZZWFyIiwibmV4dFllYXIiLCJwcmV2aW91c0RlY2FkZSIsIm5leHREZWNhZGUiLCJwcmV2aW91c0NlbnR1cnkiLCJuZXh0Q2VudHVyeSIsIl9pbnRlcm9wRGVmYXVsdCIsInNldE1vbWVudExvY2FsZSIsIkxvY2FsZVByb3ZpZGVyIiwid2VicGFja0NvbnRleHQiLCJyZXEiLCJ3ZWJwYWNrQ29udGV4dFJlc29sdmUiLCJfY3JlYXRlUmVhY3RDb250ZXh0IiwiX2d1ZDIiLCJjcmVhdGVFdmVudEVtaXR0ZXIiLCJjaGFuZ2VkQml0cyIsImNhbGN1bGF0ZUNoYW5nZWRCaXRzIiwiX1Byb3ZpZGVyJGNoaWxkQ29udGV4IiwiX0NvbnN1bWVyJGNvbnRleHRUeXBlIiwiY29udGV4dFByb3AiLCJlbWl0dGVyIiwiX0NvbXBvbmVudDIiLCJfdGVtcDIiLCJvblVwZGF0ZSIsIl9wcm9wcyRpbWFnZSIsImZpbGxSdWxlIiwiY3giLCJjeSIsInJ4IiwicnkiLCJzdHJva2UiLCJjb21wYWN0IiwiX2lzTW9iaWxlIiwib25TZWFyY2giLCJyZW5kZXJMb2FkaW5nIiwiZW50ZXJCdXR0b24iLCJyZW5kZXJBZGRvbkFmdGVyIiwiYnRuQ2xhc3NOYW1lIiwiZW50ZXJCdXR0b25Bc0VsZW1lbnQiLCJpc0FudGRCdXR0b24iLCJyZW5kZXJTZWFyY2giLCJjdXN0b21pemVJbnB1dFByZWZpeENscyIsImlucHV0UHJlZml4Q2xzIiwiaW5wdXRDbGFzc05hbWUiLCJtb2JpbGVSRSIsInRhYmxldFJFIiwiZmVhdHVyZURldGVjdCIsIm1heFRvdWNoUG9pbnRzIiwiX3dhdmUiLCJyeFR3b0NOQ2hhciIsImlzVHdvQ05DaGFyIiwic3BhY2VDaGlsZHJlbiIsIm5lZWRJbnNlcnRlZCIsImlzUHJldkNoaWxkUHVyZSIsImlzQ3VycmVudENoaWxkUHVyZSIsImluc2VydFNwYWNlIiwiQnV0dG9uU2hhcGVzIiwiQnV0dG9uU2l6ZXMiLCJCdXR0b25IVE1MVHlwZXMiLCJzYXZlQnV0dG9uUmVmIiwiYnV0dG9uTm9kZSIsImhhbmRsZUNsaWNrIiwicmVuZGVyQnV0dG9uIiwiZ2hvc3QiLCJoYXNUd29DTkNoYXIiLCJhdXRvSW5zZXJ0U3BhY2UiLCJzaXplQ2xzIiwia2lkcyIsImlzTmVlZEluc2VydGVkIiwibGlua0J1dHRvblJlc3RQcm9wcyIsImh0bWxUeXBlIiwiZml4VHdvQ05DaGFyIiwiZGVsYXlUaW1lb3V0IiwiYnV0dG9uVGV4dCIsInN0eWxlRm9yUGVzdWRvIiwiX3JlYWN0RG9tIiwiX0V2ZW50IiwiaXNIaWRkZW4iLCJpc05vdEdyZXkiLCJXYXZlIiwiYW5pbWF0aW9uU3RhcnQiLCJ3YXZlQ29sb3IiLCJpbnNlcnRFeHRyYU5vZGUiLCJleHRyYU5vZGUiLCJnZXRBdHRyaWJ1dGVOYW1lIiwiYm9yZGVyQ29sb3IiLCJvblRyYW5zaXRpb25TdGFydCIsInJlc2V0RWZmZWN0IiwiYmluZEFuaW1hdGlvbkV2ZW50IiwiY2xpY2tXYXZlVGltZW91dElkIiwiYW5pbWF0aW9uU3RhcnRJZCIsInJlbmRlcldhdmUiLCJUcmFuc2l0aW9uRXZlbnRzIiwiZ2V0TmFub1NlY29uZHMiLCJocnRpbWUiLCJsb2FkVGltZSIsIm1vZHVsZUxvYWRUaW1lIiwibm9kZUxvYWRUaW1lIiwidXBUaW1lIiwidXB0aW1lIiwiX1Jlc2l6YWJsZVRleHRBcmVhIiwic2F2ZVRleHRBcmVhIiwicmVzaXphYmxlVGV4dEFyZWEiLCJyZXNpemVUZXh0YXJlYSIsInRleHRBcmVhIiwicmVuZGVyVGV4dEFyZWEiLCJfcmNSZXNpemVPYnNlcnZlciIsIl9jYWxjdWxhdGVOb2RlSGVpZ2h0IiwiUmVzaXphYmxlVGV4dEFyZWEiLCJyZXNpemVPbk5leHRGcmFtZSIsIm5leHRGcmFtZUFjdGlvbklkIiwiYXV0b1NpemUiLCJhdXRvc2l6ZSIsIm1pblJvd3MiLCJtYXhSb3dzIiwidGV4dGFyZWFTdHlsZXMiLCJyZXNpemluZyIsInJlc2l6ZUZyYW1lSWQiLCJmaXhGaXJlZm94QXV0b1Njcm9sbCIsImN1cnJlbnRTdGFydCIsImN1cnJlbnRFbmQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsImZpbmRET01Ob2RlXzEiLCJ0b0FycmF5XzEiLCJ3YXJuaW5nXzEiLCJyZWZfMSIsInJlc2l6ZV9vYnNlcnZlcl9wb2x5ZmlsbF8xIiwiQXN5bmNNb2RlIiwiQ29uY3VycmVudE1vZGUiLCJDb250ZXh0Q29uc3VtZXIiLCJDb250ZXh0UHJvdmlkZXIiLCJpc0FzeW5jTW9kZSIsImlzQ29uY3VycmVudE1vZGUiLCJpc0NvbnRleHRDb25zdW1lciIsImlzQ29udGV4dFByb3ZpZGVyIiwiaXNFbGVtZW50IiwiaXNGb3J3YXJkUmVmIiwiaXNQb3J0YWwiLCJpc1Byb2ZpbGVyIiwiaXNTdHJpY3RNb2RlIiwiaXNTdXNwZW5zZSIsImlzVmFsaWRFbGVtZW50VHlwZSIsInR5cGVPZiIsImNhbGN1bGF0ZU5vZGVTdHlsaW5nIiwidWlUZXh0Tm9kZSIsInVzZUNhY2hlIiwiaGlkZGVuVGV4dGFyZWEiLCJfY2FsY3VsYXRlTm9kZVN0eWxpbmciLCJwYWRkaW5nU2l6ZSIsImJvcmRlclNpemUiLCJzaXppbmdTdHlsZSIsIkhJRERFTl9URVhUQVJFQV9TVFlMRSIsIk1JTl9TQUZFX0lOVEVHRVIiLCJNQVhfU0FGRV9JTlRFR0VSIiwic2luZ2xlUm93SGVpZ2h0IiwiU0laSU5HX1NUWUxFIiwiY29tcHV0ZWRTdHlsZUNhY2hlIiwibm9kZUluZm8iLCJBY3Rpb25NYXAiLCJjbGljayIsIl9pY29uUHJvcHMiLCJpY29uUHJvcHMiLCJ2aXNpYmlsaXR5VG9nZ2xlIiwiX1Byb3BUeXBlcyIsIm1pbmlTdG9yZSIsImZpbm5hbE1hcFN0YXRlVG9Qcm9wcyIsIl9zaGFsbG93ZXF1YWwyIiwid3JhcHBlZEluc3RhbmNlIiwiX0V2ZW50QmFzZU9iamVjdDIiLCJfb2JqZWN0QXNzaWduMiIsImNvbW1vblByb3BzIiwiaXNOdWxsT3JVbmRlZmluZWQiLCJldmVudE5vcm1hbGl6ZXJzIiwiZml4IiwiYXhpcyIsIkhPUklaT05UQUxfQVhJUyIsIlZFUlRJQ0FMX0FYSVMiLCJldmVudERvYyIsInJldFRydWUiLCJyZXRGYWxzZSIsIkRvbUV2ZW50T2JqZWN0IiwiaXNOYXRpdmUiLCJnZXRQcmV2ZW50RGVmYXVsdCIsImZpeEZucyIsIm5vcm1hbGl6ZXIiLCJmaXhGbiIsIkV2ZW50QmFzZU9iamVjdFByb3RvIiwicmV0dXJuRmFsc2UiLCJyZXR1cm5UcnVlIiwiRXZlbnRCYXNlT2JqZWN0IiwiaXNFdmVudE9iamVjdCIsImlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkIiwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwiaGFsdCIsIm1vX2lkIiwiX3BlcmlvZCIsInRha2VSZWNvcmRzIiwiY3NzVGV4dCIsImFsbG93SG9yaXpvbnRhbFNjcm9sbCIsIm9ubHlTY3JvbGxJZk5lZWRlZCIsImFsaWduV2l0aFRvcCIsImFsaWduV2l0aExlZnQiLCJvZmZzZXRUb3AiLCJvZmZzZXRMZWZ0Iiwib2Zmc2V0Qm90dG9tIiwib2Zmc2V0UmlnaHQiLCJpc1dpbiIsImVsZW1PZmZzZXQiLCJldyIsImNvbnRhaW5lck9mZnNldCIsImN3IiwiY29udGFpbmVyU2Nyb2xsIiwiZGlmZlRvcCIsImRpZmZCb3R0b20iLCJ3aW5TY3JvbGwiLCJjb21wdXRlZFN0eWxlXyIsInNjcm9sbFRvIiwiX3JjVGFibGUiLCJfVGFibGUiLCJfc3BpbiIsIl9wYWdpbmF0aW9uIiwiX3VzZVBhZ2luYXRpb24zIiwiX3VzZUxhenlLVk1hcDMiLCJfdXNlU2VsZWN0aW9uMyIsIl91c2VTb3J0ZXIzIiwiX3VzZUZpbHRlcjMiLCJfdXNlVGl0bGVDb2x1bW5zMyIsIl9FeHBhbmRJY29uIiwiX3Njcm9sbFRvIiwiX0NvbHVtbiIsIl9Db2x1bW5Hcm91cCIsIl91c2VCcmVha3BvaW50IiwiRU1QVFlfTElTVCIsImN1c3RvbWl6ZURyb3Bkb3duUHJlZml4Q2xzIiwiZHJvcGRvd25QcmVmaXhDbHMiLCJkYXRhU291cmNlIiwicGFnaW5hdGlvbiIsInJvd1NlbGVjdGlvbiIsImxlZ2FjeUNoaWxkcmVuQ29sdW1uTmFtZSIsInNvcnREaXJlY3Rpb25zIiwiX3Byb3BzJHNob3dTb3J0ZXJUb29sIiwic2hvd1NvcnRlclRvb2x0aXAiLCJyZXNwb25zaXZlIiwidGFibGVQcm9wcyIsIl9SZWFjdCR1c2VDb250ZXh0JGxvYyIsImNvbnRleHRMb2NhbGUiLCJ0YWJsZUxvY2FsZSIsInJhd0RhdGEiLCJfbWVyZ2VkRXhwYW5kYWJsZSRjaGkiLCJleHBhbmRUeXBlIiwiX3VzZUxhenlLVk1hcCIsImdldFJlY29yZEJ5S2V5IiwiY2hhbmdlRXZlbnRJbmZvIiwidHJpZ2dlck9uQ2hhbmdlIiwicmVzZXQiLCJjaGFuZ2VJbmZvIiwicmVzZXRQYWdpbmF0aW9uIiwicGFnZVNpemUiLCJzY3JvbGxUb0ZpcnN0Um93T25DaGFuZ2UiLCJmaWx0ZXJzIiwic29ydGVyIiwiY3VycmVudERhdGFTb3VyY2UiLCJnZXRGaWx0ZXJEYXRhIiwiZ2V0U29ydERhdGEiLCJzb3J0ZXJTdGF0ZXMiLCJmaWx0ZXJTdGF0ZXMiLCJfdXNlU29ydGVyIiwib25Tb3J0ZXJDaGFuZ2UiLCJfdXNlU29ydGVyMiIsInRyYW5zZm9ybVNvcnRlckNvbHVtbnMiLCJzb3J0U3RhdGVzIiwic29ydGVyVGl0bGVQcm9wcyIsImdldFNvcnRlcnMiLCJzb3J0ZWREYXRhIiwiX3VzZUZpbHRlciIsIm9uRmlsdGVyQ2hhbmdlIiwiX3VzZUZpbHRlcjIiLCJ0cmFuc2Zvcm1GaWx0ZXJDb2x1bW5zIiwiZ2V0RmlsdGVycyIsImNvbHVtblRpdGxlUHJvcHMiLCJfdXNlVGl0bGVDb2x1bW5zIiwidHJhbnNmb3JtVGl0bGVDb2x1bW5zIiwiX3VzZVBhZ2luYXRpb24iLCJfdXNlUGFnaW5hdGlvbjIiLCJtZXJnZWRQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvblBhcmFtIiwicGFnZURhdGEiLCJfbWVyZ2VkUGFnaW5hdGlvbiRjdXIiLCJfbWVyZ2VkUGFnaW5hdGlvbiRwYWciLCJERUZBVUxUX1BBR0VfU0laRSIsIl91c2VTZWxlY3Rpb24iLCJfdXNlU2VsZWN0aW9uMiIsInRyYW5zZm9ybVNlbGVjdGlvbkNvbHVtbnMiLCJzZWxlY3RlZEtleVNldCIsInRvcFBhZ2luYXRpb25Ob2RlIiwiYm90dG9tUGFnaW5hdGlvbk5vZGUiLCJzcGluUHJvcHMiLCJpbm5lckNvbHVtbnMiLCJwYWdpbmF0aW9uU2l6ZSIsInJlbmRlclBhZ2luYXRpb24iLCJkZWZhdWx0UG9zaXRpb24iLCJ0b3BQb3MiLCJib3R0b21Qb3MiLCJpc0Rpc2FibGUiLCJ3cmFwcGVyQ2xhc3NOYW1lcyIsIm1lcmdlZFJvd0NsYXNzTmFtZSIsIklOVEVSTkFMX0hPT0tTIiwiU0VMRUNUSU9OX0FMTCIsIlNFTEVDVElPTl9JTlZFUlQiLCJTRUxFQ1RJT05fTk9ORSIsIl9pc1Zpc2libGUiLCJfc2hhbGxvd2VxdWFsIiwiX2dldFNjcm9sbEJhclNpemUiLCJfRml4ZWRIZWFkZXIiLCJfSGVhZGVyIiwiX0JvZHlDb250ZXh0IiwiX0JvZHkiLCJfdXNlQ29sdW1uczMiLCJfdXNlRnJhbWUiLCJfUmVzaXplQ29udGV4dCIsIl91c2VTdGlja3lPZmZzZXRzIiwiX0NvbEdyb3VwIiwiX1BhbmVsIiwiX0Zvb3RlciIsIl9leHBhbmRVdGlsIiwiX2ZpeFV0aWwiLCJfc3RpY2t5U2Nyb2xsQmFyIiwiX3VzZVN0aWNreTIiLCJfQm9keVJvdyIsIl9FeHBhbmRlZFJvdyIsIl9NZWFzdXJlQ2VsbCIsIl9Sb3ciLCJfY3NzIiwiU3RpY2t5U2Nyb2xsQmFyIiwiZmxvYXRNYXAiLCJnZXRTdHlsZVZhbHVlIiwiUElYRUxfUEFUVEVSTiIsImdldE91dGVyV2lkdGgiLCJnZXRPdXRlckhlaWdodCIsImdldERvY1NpemUiLCJnZXRDbGllbnRTaXplIiwicmVtb3ZlUGl4ZWwiLCJjc3NGbG9hdCIsInN0eWxlRmxvYXQiLCJmbG9hdCIsInRvTnVtYmVyIiwibmF0aXZlTWF4IiwibmF0aXZlTWluIiwibGFzdEFyZ3MiLCJsYXN0VGhpcyIsIm1heFdhaXQiLCJ0aW1lcklkIiwibGFzdEludm9rZVRpbWUiLCJsZWFkaW5nIiwibWF4aW5nIiwidHJhaWxpbmciLCJpbnZva2VGdW5jIiwibGVhZGluZ0VkZ2UiLCJ0aW1lckV4cGlyZWQiLCJzaG91bGRJbnZva2UiLCJ0aW1lU2luY2VMYXN0Q2FsbCIsInRyYWlsaW5nRWRnZSIsInRpbWVXYWl0aW5nIiwicmVtYWluaW5nV2FpdCIsImlzSW52b2tpbmciLCJiYXNlVHJpbSIsInJlSXNCYWRIZXgiLCJyZUlzQmluYXJ5IiwicmVJc09jdGFsIiwiZnJlZVBhcnNlSW50IiwiaXNCaW5hcnkiLCJ0cmltbWVkRW5kSW5kZXgiLCJyZVRyaW1TdGFydCIsInJlV2hpdGVzcGFjZSIsIm9iamVjdFByb3RvIiwibmF0aXZlT2JqZWN0VG9TdHJpbmciLCJpc093biIsInVubWFza2VkIiwicnVudGltZSIsIk9wIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiQ29udGV4dCIsIl9pbnZva2UiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJDb250aW51ZVNlbnRpbmVsIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJ0cnlDYXRjaCIsIm1ha2VJbnZva2VNZXRob2QiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiZ2V0UHJvdG8iLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwicHJldmlvdXNQcm9taXNlIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJpbnZva2UiLCJfX2F3YWl0IiwidW53cmFwcGVkIiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImF3cmFwIiwiYXN5bmMiLCJza2lwVGVtcFJlc2V0Iiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJmaW5pc2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwicmVnZW5lcmF0b3JSdW50aW1lIiwiYWNjaWRlbnRhbFN0cmljdE1vZGUiLCJjb25kaXRpb24iLCJzaG91bGRVcGRhdGUiLCJfQW50ZEljb24iLCJMb2FkaW5nT3V0bGluZWQiLCJFeGNsYW1hdGlvbkNpcmNsZUZpbGxlZCIsIkNsb3NlQ2lyY2xlRmlsbGVkIiwiQ2hlY2tDaXJjbGVGaWxsZWQiLCJJbmZvQ2lyY2xlRmlsbGVkIiwiZ2V0UmNOb3RpZmljYXRpb25JbnN0YW5jZSIsImlubmVySW5zdGFuY2UiLCJfdXNlUkNOb3RpZmljYXRpb24iLCJfdXNlTm90aWZpY2F0aW9uIiwiX3VzZVJDTm90aWZpY2F0aW9uMiIsImhvb2tOb3RpZnkiLCJob29rQXBpUmVmIiwiX3JlZ2VuZXJhdG9yIiwiX0Nsb3NlT3V0bGluZWQiLCJfQ2hlY2tDaXJjbGVPdXRsaW5lZCIsIl9DbG9zZUNpcmNsZU91dGxpbmVkIiwiX0V4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQiLCJfSW5mb0NpcmNsZU91dGxpbmVkIiwiZGVmYXVsdEdldENvbnRhaW5lciIsImRlZmF1bHRDbG9zZUljb24iLCJfX2F3YWl0ZXIiLCJfYXJndW1lbnRzIiwiZnVsZmlsbGVkIiwiZGVmYXVsdEJvdHRvbSIsImRlZmF1bHRQbGFjZW1lbnQiLCJnZXRQbGFjZW1lbnRTdHlsZSIsImdldE5vdGlmaWNhdGlvbkluc3RhbmNlIiwiX2FyZ3MkcGxhY2VtZW50IiwiX2FyZ3MkZ2V0Q29udGFpbmVyIiwiX2FyZ3MkY2xvc2VJY29uIiwiY2FjaGVLZXkiLCJjYWNoZUluc3RhbmNlIiwibm90aWZpY2F0aW9uQ2xhc3MiLCJkdXJhdGlvbkFyZyIsImJ0biIsImF1dG9NYXJnaW5UYWciLCJDbG9zZU91dGxpbmVkIiwiQ2hlY2tDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmVkIiwiSW5mb0NpcmNsZU91dGxpbmVkIiwiX3JjUGFnaW5hdGlvbiIsIl9Eb3VibGVMZWZ0T3V0bGluZWQiLCJfRG91YmxlUmlnaHRPdXRsaW5lZCIsIl9NaW5pU2VsZWN0IiwiX3NlbGVjdCIsIl91c2VCcmVha3BvaW50MiIsImN1c3RvbWl6ZVNlbGVjdFByZWZpeENscyIsInNlbGVjdFByZWZpeENscyIsImN1c3RvbUxvY2FsZSIsImlzU21hbGwiLCJleHRlbmRlZENsYXNzTmFtZSIsIm1pbmkiLCJwcmV2SWNvbiIsIm5leHRJY29uIiwianVtcFByZXZJY29uIiwianVtcE5leHRJY29uIiwiZ2V0SWNvbnNQcm9wcyIsInNlbGVjdENvbXBvbmVudENsYXNzIiwiTGVmdE91dGxpbmVkIiwiUmlnaHRPdXRsaW5lZCIsIkRvdWJsZUxlZnRPdXRsaW5lZCIsIkRvdWJsZVJpZ2h0T3V0bGluZWQiLCJNaW5pU2VsZWN0IiwibWVyZ2VkQ2xlYXJJY29uIiwibWVyZ2VkU3VmZml4SWNvbiIsImljb25DbHMiLCJfU2VhcmNoT3V0bGluZWQiLCJfRG93bk91dGxpbmVkIiwibWVyZ2VkSXRlbUljb24iLCJfQ2hlY2tPdXRsaW5lZCIsIm1lcmdlZFJlbW92ZUljb24iLCJEb3duT3V0bGluZWQiLCJDaGVja091dGxpbmVkIiwiU2VhcmNoT3V0bGluZWQiLCJyZXNwb25zaXZlTWFwIiwicmVzcG9uc2l2ZUFycmF5Iiwic3Vic2NyaWJlcnMiLCJzdWJVaWQiLCJtYXRjaEhhbmRsZXJzIiwicG9pbnRNYXAiLCJ1bnJlZ2lzdGVyIiwic2NyZWVuIiwibWF0Y2hNZWRpYVF1ZXJ5IiwicGFnaW5hdGlvbk9iaiIsInBhZ2VQcm9wIiwiX2EkdG90YWwiLCJwYWdpbmF0aW9uVG90YWwiLCJkZWZhdWx0Q3VycmVudCIsImRlZmF1bHRQYWdlU2l6ZSIsImlubmVyUGFnaW5hdGlvbiIsInNldElubmVyUGFnaW5hdGlvbiIsImV4dGVuZHNPYmplY3QiLCJtYXhQYWdlIiwicmVmcmVzaFBhZ2luYXRpb24iLCJtYXBDYWNoZVJlZiIsImt2TWFwIiwicHJlc2VydmVTZWxlY3RlZFJvd0tleXMiLCJzZWxlY3RlZFJvd0tleXMiLCJkZWZhdWx0U2VsZWN0ZWRSb3dLZXlzIiwiZ2V0Q2hlY2tib3hQcm9wcyIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwib25TZWxlY3RBbGwiLCJvblNlbGVjdEludmVydCIsIm9uU2VsZWN0Tm9uZSIsIm9uU2VsZWN0TXVsdGlwbGUiLCJzZWxlY3Rpb25Db2xXaWR0aCIsInNlbGVjdGlvblR5cGUiLCJzZWxlY3Rpb25zIiwiY3VzdG9taXplUmVuZGVyQ2VsbCIsInJlbmRlckNlbGwiLCJoaWRlU2VsZWN0QWxsIiwiX3JlZiRjaGVja1N0cmljdGx5IiwiY2hlY2tTdHJpY3RseSIsInByZXNlcnZlUmVjb3Jkc1JlZiIsIm1lcmdlZFNlbGVjdGVkS2V5cyIsInNldE1lcmdlZFNlbGVjdGVkS2V5cyIsIl90cmVlVXRpbCIsImZsYXR0ZWREYXRhIiwiZmxhdHRlbkRhdGEiLCJjaGVja2JveFByb3BzTWFwIiwiaXNDaGVja2JveERpc2FibGVkIiwiX3VzZU1lbW8yIiwiX2NvbmR1Y3RDaGVjayIsIl9jb25kdWN0VXRpbCIsImNvbmR1Y3RDaGVjayIsIl91c2VNZW1vMyIsImRlcml2ZWRTZWxlY3RlZEtleXMiLCJkZXJpdmVkSGFsZlNlbGVjdGVkS2V5cyIsImRlcml2ZWRTZWxlY3RlZEtleVNldCIsImRlcml2ZWRIYWxmU2VsZWN0ZWRLZXlTZXQiLCJsYXN0U2VsZWN0ZWRLZXkiLCJzZXRMYXN0U2VsZWN0ZWRLZXkiLCJzZXRTZWxlY3RlZEtleXMiLCJhdmFpbGFibGVLZXlzIiwibmV3Q2FjaGUiLCJ0cmlnZ2VyU2luZ2xlU2VsZWN0aW9uIiwibWVyZ2VkU2VsZWN0aW9ucyIsInNlbGVjdGlvbiIsImtleVNldCIsInJlY29yZEtleXMiLCJjaGVja2VkQ3VycmVudEFsbCIsImNoZWNrZWRDdXJyZW50U29tZSIsImN1c3RvbWl6ZVNlbGVjdGlvbnMiLCJfbWVudSIsIm9uU2VsZWN0aW9uQ2xpY2siLCJfZHJvcGRvd24iLCJhbGxEaXNhYmxlZCIsIl9jaGVja2JveCIsImNoYW5nZUtleXMiLCJtZXJnZWRJbmRldGVybWluYXRlIiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwicG9pbnRLZXlzIiwicmVjb3JkSW5kZXgiLCJyYW5nZUtleXMiLCJjaGFuZ2VkS2V5cyIsIm9yaWdpbkNoZWNrZWRLZXlzIiwiX2NoZWNrZWRLZXlzIiwibmV4dENoZWNrZWRLZXlzIiwidGVtcEtleVNldCIsInNlbGVjdGlvbkNvbHVtbiIsImNvbHVtblRpdGxlIiwiX3JlbmRlckNlbGwiLCJfY29sdW1ucyIsIl90b0FycmF5MiIsInJlc3RDb2x1bW5zIiwic2VsZWN0aW9uRml4ZWQiLCJnZXRGaXhlZFR5cGUiLCJJbnRlcm5hbFRyZWVOb2RlIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZDIiLCJfY29udGV4dFR5cGVzIiwiX0luZGVudCIsImRyYWdOb2RlSGlnaGxpZ2h0Iiwib25TZWxlY3RvckNsaWNrIiwib25Ob2RlQ2xpY2siLCJpc1NlbGVjdGFibGUiLCJvbkNoZWNrIiwib25TZWxlY3RvckRvdWJsZUNsaWNrIiwib25Ob2RlRG91YmxlQ2xpY2siLCJvbk5vZGVTZWxlY3QiLCJkaXNhYmxlQ2hlY2tib3giLCJvbk5vZGVDaGVjayIsImlzQ2hlY2thYmxlIiwidGFyZ2V0Q2hlY2tlZCIsIm9uTm9kZU1vdXNlRW50ZXIiLCJvbk5vZGVNb3VzZUxlYXZlIiwib25Ob2RlQ29udGV4dE1lbnUiLCJvbkRyYWdTdGFydCIsIm9uTm9kZURyYWdTdGFydCIsInNldERhdGEiLCJvbkRyYWdFbnRlciIsIm9uTm9kZURyYWdFbnRlciIsIm9uRHJhZ092ZXIiLCJvbk5vZGVEcmFnT3ZlciIsIm9uRHJhZ0xlYXZlIiwib25Ob2RlRHJhZ0xlYXZlIiwib25EcmFnRW5kIiwib25Ob2RlRHJhZ0VuZCIsIm9uRHJvcCIsIm9uTm9kZURyb3AiLCJvbk5vZGVFeHBhbmQiLCJzZXRTZWxlY3RIYW5kbGUiLCJzZWxlY3RIYW5kbGUiLCJnZXROb2RlU3RhdGUiLCJpc0xlYWYiLCJoYXNDaGlsZHJlbiIsImxvYWREYXRhIiwiY2hlY2thYmxlIiwidHJlZUNoZWNrYWJsZSIsInN5bmNMb2FkRGF0YSIsIl90aGlzJHByb3BzJGNvbnRleHQiLCJvbk5vZGVMb2FkIiwicmVuZGVyU3dpdGNoZXJJY29uRG9tIiwic3dpdGNoZXJJY29uRnJvbVByb3BzIiwic3dpdGNoZXJJY29uIiwic3dpdGNoZXJJY29uRnJvbUN0eCIsInJlbmRlclN3aXRjaGVyIiwiX3N3aXRjaGVySWNvbkRvbSIsInN3aXRjaGVyQ2xzIiwic3dpdGNoZXJJY29uRG9tIiwicmVuZGVyQ2hlY2tib3giLCIkY3VzdG9tIiwicmVuZGVySWNvbiIsInJlbmRlclNlbGVjdG9yIiwiJGljb24iLCJ0aXRsZU5vZGUiLCJfdGhpcyRwcm9wcyRjb250ZXh0MiIsInRyZWVJY29uIiwiZHJhZ2dhYmxlIiwidGl0bGVSZW5kZXIiLCJtZXJnZWREcmFnZ2FibGUiLCJ3cmFwQ2xhc3MiLCJjdXJyZW50SWNvbiIsIiR0aXRsZSIsIm9uRG91YmxlQ2xpY2siLCJyZW5kZXJEcm9wSW5kaWNhdG9yIiwiX3RoaXMkcHJvcHMkY29udGV4dDMiLCJkcm9wSW5kaWNhdG9yUmVuZGVyIiwidHJlZVNlbGVjdGFibGUiLCJkb21SZWYiLCJfdGhpcyRwcm9wcyRjb250ZXh0NCIsImZpbHRlclRyZWVOb2RlIiwiaXNFbmROb2RlIiwiQ29udGV4dFRyZWVOb2RlIiwiVHJlZUNvbnRleHQiLCJiYXNlQ2xhc3NOYW1lIiwiaXNDaGVja0Rpc2FibGVkIiwiZ2V0Q2hlY2tEaXNhYmxlZCIsInN5bnRoZXRpY0dldENoZWNrRGlzYWJsZWQiLCJ3YXJuaW5nTWlzc0tleXMiLCJoYXNFbnRpdHkiLCJsZXZlbEVudGl0aWVzIiwibWF4TGV2ZWwiLCJsZXZlbFNldCIsIl9lbnRpdHkkY2hpbGRyZW4iLCJjaGlsZEVudGl0eSIsInZpc2l0ZWRLZXlzIiwiX2xldmVsIiwiYWxsQ2hlY2tlZCIsInBhcnRpYWxDaGVja2VkIiwicmVtb3ZlRnJvbUNoZWNrZWRLZXlzIiwiZmlsbENvbmR1Y3RDaGVjayIsImhhbGZLZXlzIiwiX2VudGl0eSRjaGlsZHJlbjIiLCJfbGV2ZWwyIiwiY2xlYW5Db25kdWN0Q2hlY2siLCJmaWx0ZXJlZEtleXMiLCJfRWxsaXBzaXNPdXRsaW5lZCIsIkJ1dHRvbkdyb3VwIiwiRHJvcGRvd25CdXR0b24iLCJfcHJvcHMkaWNvbiIsImJ1dHRvbnNSZW5kZXIiLCJkcm9wZG93blByb3BzIiwiX2J1dHRvbnNSZW5kZXIiLCJfYnV0dG9uc1JlbmRlcjIiLCJsZWZ0QnV0dG9uVG9SZW5kZXIiLCJyaWdodEJ1dHRvblRvUmVuZGVyIiwiRWxsaXBzaXNPdXRsaW5lZCIsImNvbnZlcnRMZWdhY3lQcm9wcyIsImRhbmdlciIsIl9Mb2FkaW5nSWNvbiIsImlzVW5ib3JkZXJlZEJ1dHRvblR5cGUiLCJJbnRlcm5hbEJ1dHRvbiIsImxvYWRpbmdPckRlbGF5IiwiX3Byb3BzJGxvYWRpbmciLCJfcHJvcHMkZ2hvc3QiLCJfcHJvcHMkYmxvY2siLCJfcHJvcHMkaHRtbFR5cGUiLCJpbm5lckxvYWRpbmciLCJzZXRMb2FkaW5nIiwic2V0SGFzVHdvQ05DaGFyIiwiYnV0dG9uUmVmIiwiZGVsYXlUaW1lb3V0UmVmIiwiZXhpc3RJY29uIiwiX3VucmVhY2hhYmxlRXhjZXB0aW9uIiwiVW5yZWFjaGFibGVFeGNlcHRpb24iLCJzdHlsZUZvclBzZXVkbyIsImRlc3Ryb3llZCIsIm5vZGVSb290IiwiZ2V0Um9vdE5vZGUiLCJub2RlQm9keSIsIl9yY01vdGlvbiIsImdldENvbGxhcHNlZFdpZHRoIiwiZ2V0UmVhbFdpZHRoIiwidGl0bGVJc1NwYW4iLCJyZW5kZXJUaXRsZSIsIl90b29sdGlwIiwicmVuZGVySXRlbSIsInRvb2x0aXBUaXRsZSIsInRvb2x0aXBQcm9wcyIsImNoaWxkcmVuTGVuZ3RoIiwicmVuZGVySXRlbUNoaWxkcmVuIiwiZ2V0T3ZlcmZsb3dPcHRpb25zIiwiX2NvbmZpZyRhcnJvd1dpZHRoIiwiYXJyb3dXaWR0aCIsIl9jb25maWckaG9yaXpvbnRhbEFyciIsImhvcml6b250YWxBcnJvd1NoaWZ0IiwiX2NvbmZpZyR2ZXJ0aWNhbEFycm93IiwicGxhY2VtZW50TWFwIiwidG9wUmlnaHQiLCJib3R0b21SaWdodCIsInJpZ2h0Qm90dG9tIiwibGVmdEJvdHRvbSIsImF1dG9BZGp1c3RPdmVyZmxvd0VuYWJsZWQiLCJhdXRvQWRqdXN0T3ZlcmZsb3dEaXNhYmxlZCIsIlByZXNldFN0YXR1c0NvbG9yVHlwZXMiLCJCYXJzT3V0bGluZWQiLCJDb250ZW50IiwiRm9vdGVyIiwiSGVhZGVyIiwiQmFzaWNDb21wb25lbnQiLCJBZGFwdGVyIiwiQmFzaWMiLCJMYXlvdXQiLCJzaWRlcnMiLCJzZXRTaWRlcnMiLCJoYXNTaWRlciIsImN1cnJlbnRJZCIsIlJhZGlvR3JvdXAiLCJldiIsImxhc3RWYWx1ZSIsIm9wdGlvblR5cGUiLCJfcHJvcHMkYnV0dG9uU3R5bGUiLCJjaGlsZHJlblRvUmVuZGVyIiwib3B0aW9uc1ByZWZpeENscyIsInJlbmRlckdyb3VwIiwiUmFkaW9CdXR0b24iLCJyYWRpb0dyb3VwQ29udGV4dCIsImlubmVyU29ydGVyU3RhdGVzIiwibXVsdGlwbGVQcmlvcml0eSIsImNsb25lRGF0YSIsInJ1bm5pbmdTb3J0ZXJzIiwic29ydE9yZGVyIiwiZ2V0U29ydEZ1bmN0aW9uIiwicmVjb3JkMSIsInJlY29yZDIiLCJzb3J0ZXJTdGF0ZSIsImNvbXBhcmVGbiIsImNvbXBhcmVSZXN1bHQiLCJzdWJSZWNvcmRzIiwiY29sbGVjdFNvcnRTdGF0ZXMiLCJzZXRTb3J0U3RhdGVzIiwibWVyZ2VkU29ydGVyU3RhdGVzIiwiY29sbGVjdGVkU3RhdGVzIiwidmFsaWRhdGVTdGF0ZXMiLCJwYXRjaFN0YXRlcyIsIm11bHRpcGxlTW9kZSIsImNvbHVtblRpdGxlU29ydGVyUHJvcHMiLCJzb3J0Q29sdW1ucyIsInNvcnRDb2x1bW4iLCJ0cmlnZ2VyU29ydGVyIiwic29ydFN0YXRlIiwibmV3U29ydGVyU3RhdGVzIiwiZ2VuZXJhdGVTb3J0ZXJJbmZvIiwiaW5qZWN0U29ydGVyIiwic29ydGVyU2F0ZXMiLCJkZWZhdWx0U29ydERpcmVjdGlvbnMiLCJ0YWJsZVNob3dTb3J0ZXJUb29sdGlwIiwiY29sdW1uUG9zIiwibmV3Q29sdW1uIiwic29ydGVyT3JkZXIiLCJuZXh0U29ydE9yZGVyIiwibmV4dFNvcnREaXJlY3Rpb24iLCJ1cE5vZGUiLCJfQ2FyZXRVcE91dGxpbmVkIiwiZG93bk5vZGUiLCJfQ2FyZXREb3duT3V0bGluZWQiLCJzb3J0VGlwIiwicmVuZGVyUHJvcHMiLCJyZW5kZXJTb3J0VGl0bGUiLCJvcmlnaW5PbkNsaWNrIiwiZ2V0TXVsdGlwbGVQcmlvcml0eSIsInB1c2hTdGF0ZSIsImRlZmF1bHRTb3J0T3JkZXIiLCJzdGF0ZVRvSW5mbyIsIkNhcmV0RG93bk91dGxpbmVkIiwiQ2FyZXRVcE91dGxpbmVkIiwiY3VycmVudERhdGEiLCJmaWx0ZXJTdGF0ZSIsIl9maWx0ZXJTdGF0ZSRjb2x1bW4iLCJvbkZpbHRlciIsImZsYXR0ZW5LZXlzIiwia2V5SW5kZXgiLCJyZWFsS2V5IiwiX0ZpbHRlckRyb3Bkb3duIiwiY29sbGVjdEZpbHRlclN0YXRlcyIsImZpbHRlcmVkVmFsdWVzIiwiZmlsdGVyZWRWYWx1ZSIsImZvcmNlRmlsdGVyZWQiLCJmaWx0ZXJlZCIsImRlZmF1bHRGaWx0ZXJlZFZhbHVlIiwiZ2VuZXJhdGVGaWx0ZXJJbmZvIiwiY3VycmVudEZpbHRlcnMiLCJmaWx0ZXJEcm9wZG93biIsIm9yaWdpbktleSIsInNldEZpbHRlclN0YXRlcyIsIm1lcmdlZEZpbHRlclN0YXRlcyIsInRyaWdnZXJGaWx0ZXIiLCJuZXdGaWx0ZXJTdGF0ZXMiLCJpbmplY3RGaWx0ZXIiLCJfY29sdW1uJGZpbHRlck11bHRpcGwiLCJmaWx0ZXJNdWx0aXBsZSIsIl9pc0VxdWFsIiwiX0ZpbHRlckZpbGxlZCIsIl9GaWx0ZXJXcmFwcGVyIiwiX3VzZVN5bmNTdGF0ZTMiLCJmaWx0ZXJEcm9wZG93blZpc2libGUiLCJvbkZpbHRlckRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsInRyaWdnZXJWaXNpYmxlIiwibmV3VmlzaWJsZSIsInByb3BGaWx0ZXJlZEtleXMiLCJfdXNlU3luY1N0YXRlIiwiX3VzZVN5bmNTdGF0ZTIiLCJnZXRGaWx0ZXJlZEtleXNTeW5jIiwic2V0RmlsdGVyZWRLZXlzU3luYyIsIm9uU2VsZWN0S2V5cyIsInNldE9wZW5LZXlzIiwib3BlblJlZiIsImRyb3Bkb3duQ29udGVudCIsImludGVybmFsVHJpZ2dlckZpbHRlciIsIm1lcmdlZEtleXMiLCJvbkNvbmZpcm0iLCJvblJlc2V0IiwiZHJvcGRvd25NZW51Q2xhc3MiLCJjbG9zZURyb3Bkb3duIiwiY2xlYXJGaWx0ZXJzIiwicmVuZGVyRmlsdGVySXRlbXMiLCJtYXJnaW4iLCJmaWx0ZXJJY29uIiwiYmFzZUlzRXF1YWwiLCJiYXNlSXNFcXVhbERlZXAiLCJTdGFjayIsImVxdWFsQXJyYXlzIiwiZXF1YWxCeVRhZyIsImVxdWFsT2JqZWN0cyIsImdldFRhZyIsIm9iamVjdFRhZyIsIm9iaklzQXJyIiwib3RoSXNBcnIiLCJvYmpUYWciLCJvdGhUYWciLCJvYmpJc09iaiIsIm90aElzT2JqIiwiaXNTYW1lVGFnIiwib2JqSXNXcmFwcGVkIiwib3RoSXNXcmFwcGVkIiwib2JqVW53cmFwcGVkIiwib3RoVW53cmFwcGVkIiwic3RhY2tDbGVhciIsInN0YWNrRGVsZXRlIiwic3RhY2tHZXQiLCJzdGFja0hhcyIsInN0YWNrU2V0IiwiYXNzb2NJbmRleE9mIiwicGFpcnMiLCJMQVJHRV9BUlJBWV9TSVpFIiwiaXNNYXNrZWQiLCJ0b1NvdXJjZSIsInJlSXNIb3N0Q3RvciIsImZ1bmNQcm90byIsInJlSXNOYXRpdmUiLCJjb3JlSnNEYXRhIiwibWFza1NyY0tleSIsIkhhc2giLCJoYXNoQ2xlYXIiLCJoYXNoRGVsZXRlIiwiaGFzaEdldCIsImhhc2hIYXMiLCJoYXNoU2V0IiwiZ2V0TWFwRGF0YSIsInNldENhY2hlQWRkIiwic2V0Q2FjaGVIYXMiLCJwcmVkaWNhdGUiLCJtYXBUb0FycmF5Iiwic2V0VG9BcnJheSIsInN5bWJvbFByb3RvIiwic3ltYm9sVmFsdWVPZiIsInN0YWNrZWQiLCJnZXRBbGxLZXlzIiwib2JqUHJvcHMiLCJvYmpMZW5ndGgiLCJvYmpTdGFja2VkIiwic2tpcEN0b3IiLCJvYmpWYWx1ZSIsIm9iakN0b3IiLCJvdGhDdG9yIiwiYmFzZUdldEFsbEtleXMiLCJhcnJheVB1c2giLCJrZXlzRnVuYyIsInN5bWJvbHNGdW5jIiwiYXJyYXlGaWx0ZXIiLCJzdHViQXJyYXkiLCJuYXRpdmVHZXRTeW1ib2xzIiwicmVzSW5kZXgiLCJhcnJheUxpa2VLZXlzIiwiYmFzZUtleXMiLCJpc0FycmF5TGlrZSIsImJhc2VUaW1lcyIsImlzQXJndW1lbnRzIiwiaXNJbmRleCIsImluaGVyaXRlZCIsImlzQXJyIiwiaXNBcmciLCJpc0J1ZmYiLCJpc1R5cGUiLCJza2lwSW5kZXhlcyIsIml0ZXJhdGVlIiwiYmFzZUlzQXJndW1lbnRzIiwiaXNMZW5ndGgiLCJ0eXBlZEFycmF5VGFncyIsImZyZWVQcm9jZXNzIiwicmVxdWlyZSIsImlzUHJvdG90eXBlIiwibmF0aXZlS2V5cyIsIkN0b3IiLCJvdmVyQXJnIiwiRGF0YVZpZXciLCJkYXRhVmlld0N0b3JTdHJpbmciLCJtYXBDdG9yU3RyaW5nIiwicHJvbWlzZUN0b3JTdHJpbmciLCJzZXRDdG9yU3RyaW5nIiwid2Vha01hcEN0b3JTdHJpbmciLCJjdG9yU3RyaW5nIiwiRmlsdGVyRmlsbGVkIiwiX3VzZUZvcmNlVXBkYXRlIiwiX1JlYWN0JHVzZVJlZHVjZXIiLCJmaWxsVGl0bGUiLCJjbG9uZUNvbHVtbiIsImljb25QcmVmaXgiLCJfb3B0aW9ucyRnZXRDb250YWluZXIiLCJfb3B0aW9ucyRkdXJhdGlvbiIsIl9nZXRTY3JvbGwiLCJmcmFtZUZ1bmMiLCJuZXh0U2Nyb2xsVG9wIiwiX2Vhc2luZ3MiLCJlYXNlSW5PdXRDdWJpYyIsIkhUTUxEb2N1bWVudCIsIl9jb25maWckYXV0b0FkanVzdE92ZSIsInNpbmdsZU1hdGNoZXIiLCJtdWx0aU1hdGNoZXIiLCJkZWNvZGVDb21wb25lbnRzIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiZGVjb2RlIiwiZW5jb2RlZFVSSSIsInJlcGxhY2VNYXAiLCJjdXN0b21EZWNvZGVVUklDb21wb25lbnQiLCJfbGltaXQiLCJpbml0RnVuYyIsIl9pbml0aWFsaXplZCIsIl9pbml0RnVuYyIsImNhbGxiYWNrZm4iLCJFbXB0eVNldEl0ZXJhdG9yIiwiWE1MQnVpbGRlckltcGxfMSIsIndyaXRlcnNfMSIsIl9kb21Ob2RlIiwiX29wdGlvbnMiLCJfZGVidWdJbmZvIiwiX2R1bW15IiwidHh0IiwiaW5zSW5kZXgiLCJpbnNUYXJnZXQiLCJpbnNWYWx1ZSIsImNvbSIsImRhdCIsIl9leHRyYWN0TmFtZXNwYWNlIiwiX2RvYyIsIm9sZERvY1R5cGUiLCJjcmVhdGVEb2N1bWVudFR5cGUiLCJyZXBsYWNlQ2hpbGQiLCJ1cCIsImF0dE5hbWUiLCJhdHRWYWx1ZSIsInJlbW92ZUF0dCIsInJlbW92ZUF0dHJpYnV0ZU5TIiwiY3JlYXRlQ29tbWVudCIsImNyZWF0ZUNEQVRBU2VjdGlvbiIsImNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbiIsInB1YklEIiwic3lzSUQiLCJob3N0Tm9kZSIsImhvc3REb2MiLCJpbXBvcnRlZE5vZGUiLCJlbGVtZW50Tm9kZSIsInJlY3Vyc2l2ZSIsIl9nZXRGaXJzdERlc2NlbmRhbnROb2RlIiwiX3NlcmlhbGl6ZSIsIlN0cmluZ1dyaXRlckltcGwiLCJNYXBXcml0ZXJJbXBsIiwiSlNPTldyaXRlckltcGwiLCJhdEluZGV4IiwiZG9jTm9kZSIsInBhcmVudE5hbWUiLCJNYXBXcml0ZXJJbXBsXzEiLCJTdHJpbmdXcml0ZXJJbXBsXzEiLCJPYmplY3RXcml0ZXJJbXBsXzEiLCJKU09OV3JpdGVySW1wbF8xIiwib2JqZWN0V3JpdGVyT3B0aW9ucyIsIl9jb252ZXJ0T2JqZWN0IiwibWFwQ29weSIsInByZWZlcnJlZFByZWZpeCIsImNhbmRpZGF0ZXNMaXN0IiwiQ29kZVBvaW50c18xIiwiZm9yZ2l2aW5nQmFzZTY0RW5jb2RlIiwiZm9yZ2l2aW5nQmFzZTY0RGVjb2RlIiwiYjY0IiwibGVucyIsImdldExlbnMiLCJ2YWxpZExlbiIsInBsYWNlSG9sZGVyc0xlbiIsIkFyciIsIl9ieXRlTGVuZ3RoIiwiY3VyQnl0ZSIsInJldkxvb2t1cCIsInVpbnQ4IiwiZXh0cmFCeXRlcyIsImxlbjIiLCJlbmNvZGVDaHVuayIsImxvb2t1cCIsImlzTEUiLCJtTGVuIiwibkJ5dGVzIiwiZUxlbiIsImVNYXgiLCJlQmlhcyIsIm5CaXRzIiwicnQiLCJMTjIiLCJjb252ZXJ0QUpTT05EZXJpdmVkSmF2YVNjcmlwdFZhbHVlVG9BbkluZnJhVmFsdWUiLCJqc1ZhbHVlIiwianNWYWx1ZUF0SW5kZXgiLCJqc1ZhbHVlQXRLZXkiLCJwYXJzZUpTT05Gcm9tQnl0ZXMiLCJqc29uVGV4dCIsInNlcmlhbGl6ZUpTT05Ub0J5dGVzIiwianNvblN0cmluZyIsInBhcnNlSlNPTkludG9JbmZyYVZhbHVlcyIsImNvbmRpdGlvbk9ySXRlbSIsIm9sZEl0ZW0iLCJzb3J0SW5Bc2NlbmRpbmdPcmRlciIsImxlc3NUaGFuQWxnbyIsIml0ZW1BIiwiaXRlbUIiLCJzb3J0SW5EZXNjZW5kaW5nT3JkZXIiLCJ0b1JlbW92ZSIsIk1hdGhNTCIsIlhMaW5rIiwiZW5xdWV1ZSIsImRlcXVldWUiLCJpc1N1YnNldE9mIiwic3Vic2V0Iiwic3VwZXJzZXQiLCJzZXRBIiwic2V0QiIsIm5ld1NldCIsImlzU3VwZXJzZXRPZiIsImludGVyc2VjdGlvbiIsInVuaW9uIiwiQnl0ZVNlcXVlbmNlXzEiLCJCeXRlXzEiLCJpc0NvZGVVbml0UHJlZml4IiwiYUNvZGVVbml0IiwiYkNvZGVVbml0IiwiaXNvbW9ycGhpY0VuY29kZSIsImNvZGVQb2ludEF0IiwiaXNBU0NJSVN0cmluZyIsImFzY2lpTG93ZXJjYXNlIiwic3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdBU0NJSVdoaXRlc3BhY2UiLCJjb2xsZWN0QVNlcXVlbmNlT2ZDb2RlUG9pbnRzIiwic2tpcEFTQ0lJV2hpdGVzcGFjZSIsImlzQ29kZVVuaXRMZXNzVGhhbiIsImFzY2lpVXBwZXJjYXNlIiwiYXNjaWlDYXNlSW5zZW5zaXRpdmVNYXRjaCIsImFzY2lpRW5jb2RlIiwiYXNjaWlEZWNvZGUiLCJzdHJpcE5ld2xpbmVzIiwibm9ybWFsaXplTmV3bGluZXMiLCJzdHJpcEFuZENvbGxhcHNlQVNDSUlXaGl0ZXNwYWNlIiwic3RyaWN0bHlTcGxpdCIsImRlbGltaXRlciIsInNwbGl0QVN0cmluZ09uQ29tbWFzIiwiY29uY2F0ZW5hdGUiLCJhYm9ydF9hZGQiLCJhbGdvcml0aG0iLCJhYm9ydF9yZW1vdmUiLCJTdHJpbmdXYWxrZXJfMSIsIl9wb2ludGVyIiwiX2NoYXJzIiwiX2NvZGVQb2ludCIsIl9jIiwiX3JlbWFpbmluZyIsIl9zdWJzdHJpbmciLCJwdW55Y29kZSIsIlVybCIsInByb3RvY29sIiwic2xhc2hlcyIsImF1dGgiLCJob3N0bmFtZSIsImhhc2giLCJwYXRobmFtZSIsInVybFBhcnNlIiwicmVsYXRpdmUiLCJyZXNvbHZlT2JqZWN0IiwicHJvdG9jb2xQYXR0ZXJuIiwicG9ydFBhdHRlcm4iLCJzaW1wbGVQYXRoUGF0dGVybiIsInVud2lzZSIsImF1dG9Fc2NhcGUiLCJub25Ib3N0Q2hhcnMiLCJob3N0RW5kaW5nQ2hhcnMiLCJob3N0bmFtZVBhcnRQYXR0ZXJuIiwiaG9zdG5hbWVQYXJ0U3RhcnQiLCJ1bnNhZmVQcm90b2NvbCIsImhvc3RsZXNzUHJvdG9jb2wiLCJzbGFzaGVkUHJvdG9jb2wiLCJxdWVyeXN0cmluZyIsInBhcnNlUXVlcnlTdHJpbmciLCJzbGFzaGVzRGVub3RlSG9zdCIsInF1ZXJ5SW5kZXgiLCJzcGxpdHRlciIsInVTcGxpdCIsInNpbXBsZVBhdGgiLCJsb3dlclByb3RvIiwiYXRTaWduIiwiaG9zdEVuZCIsImhlYyIsInBhcnNlSG9zdCIsImlwdjZIb3N0bmFtZSIsImhvc3RwYXJ0cyIsIm5ld3BhcnQiLCJ2YWxpZFBhcnRzIiwibm90SG9zdCIsImJpdCIsInRvQVNDSUkiLCJlc2MiLCJxbSIsInJlbCIsInRrZXlzIiwidGsiLCJ0a2V5IiwicmtleXMiLCJyayIsInJrZXkiLCJyZWxQYXRoIiwiaXNTb3VyY2VBYnMiLCJpc1JlbEFicyIsIm11c3RFbmRBYnMiLCJyZW1vdmVBbGxEb3RzIiwic3JjUGF0aCIsInBzeWNob3RpYyIsImF1dGhJbkhvc3QiLCJpc051bGwiLCJoYXNUcmFpbGluZ1NsYXNoIiwiaXNBYnNvbHV0ZSIsIm1heEludCIsInJlZ2V4UHVueWNvZGUiLCJyZWdleE5vbkFTQ0lJIiwicmVnZXhTZXBhcmF0b3JzIiwic3RyaW5nRnJvbUNoYXJDb2RlIiwibWFwRG9tYWluIiwidWNzMmRlY29kZSIsInVjczJlbmNvZGUiLCJkaWdpdFRvQmFzaWMiLCJkaWdpdCIsImZsYWciLCJhZGFwdCIsIm51bVBvaW50cyIsImJhc2VNaW51c1RNaW4iLCJiYXNpYyIsIm9sZGkiLCJiYXNlTWludXNUIiwiaW5wdXRMZW5ndGgiLCJiaWFzIiwiaGFuZGxlZENQQ291bnQiLCJiYXNpY0xlbmd0aCIsImN1cnJlbnRWYWx1ZSIsImhhbmRsZWRDUENvdW50UGx1c09uZSIsInFNaW51c1QiLCJxcyIsInNlcCIsIm1heEtleXMiLCJrc3RyIiwidnN0ciIsInN0cmluZ2lmeVByaW1pdGl2ZSIsIm9iamVjdEtleXMiLCJrcyIsInZpYWJsZVByZXZpb3VzU2libGluZyIsInBhcmVudE5vZGVfY29udmVydE5vZGVzSW50b0FOb2RlIiwidmlhYmxlTmV4dFNpYmxpbmciLCJET01JbXBsIiwiX2ZlYXR1cmVzIiwiX2NvbXBhcmVDYWNoZSIsIl9yYW5nZUxpc3QiLCJfaW5zdGFuY2UiLCJpc1JlZ2lzdGVyZWQiLCJjb3B0aW9ucyIsInNlbGVjdG9yc19zY29wZU1hdGNoQVNlbGVjdG9yc1N0cmluZyIsIl9fbmFtZSIsIl9fYXNzaWduZWRTbG90Iiwic3RhcnRDb250YWluZXIiLCJlbmRDb250YWluZXIiLCJzdGFydE9mZnNldCIsImVuZE9mZnNldCIsInRva2VuTGlzdCIsImV2ZW50VGFyZ2V0X3JlbW92ZUFsbEV2ZW50TGlzdGVuZXJzIiwiQm91bmRhcnlQb2ludEFsZ29yaXRobV8xIiwiTm9kZUFsZ29yaXRobV8xIiwiVGV4dEFsZ29yaXRobV8xIiwicmFuZ2VfaXNQYXJ0aWFsbHlDb250YWluZWQiLCJzdGFydENoZWNrIiwiZW5kQ2hlY2siLCJjb21tb25BbmNlc3RvciIsImZpcnN0UGFydGlhbGx5Q29udGFpbmVkQ2hpbGQiLCJsYXN0UGFydGlhbGx5Q29udGFpbmVkQ2hpbGQiLCJjb250YWluZWRDaGlsZHJlbiIsInN1YmZyYWdtZW50IiwiY29tbW9uQW5jZXN0b3JDb250YWluZXIiLCJfaW5kZW50YXRpb24iLCJfbGVuZ3RoVG9MYXN0TmV3bGluZSIsImhlYWRsZXNzIiwicHJldHR5UHJpbnQiLCJuZXdsaW5lIiwiYWxsb3dFbXB0eVRhZ3MiLCJpbmRlbnRUZXh0T25seU5vZGVzIiwic3BhY2VCZWZvcmVTbGFzaCIsIl9yZWZzIiwic3VwcHJlc3NQcmV0dHkiLCJfcHJlIiwiX2JlZ2luTGluZSIsIl9lbmRMaW5lIiwic2VsZkNsb3NpbmciLCJ2b2lkRWxlbWVudCIsInRleHRPbmx5Tm9kZSIsIl9pbmRlbnQiLCJfaXNMZWFmTm9kZSIsImluZGVudExldmVsIiwiX2Rlc2NlbmRhbnRDb3VudCIsImRvbV8yIiwicGFyc2VyXzEiLCJzZXJpYWxpemVyXzEiLCJYTUxTZXJpYWxpemVyIiwiRE9NUGFyc2VySW1wbF8xIiwiRE9NUGFyc2VySW1wbCIsIlhNTFBhcnNlckltcGxfMSIsIm1pbWVUeXBlIiwiWE1MUGFyc2VySW1wbCIsIlhNTFN0cmluZ0xleGVyXzEiLCJsZXhlciIsIlhNTFN0cmluZ0xleGVyIiwic2tpcFdoaXRlc3BhY2VPbmx5VGV4dCIsIm5leHRUb2tlbiIsIkVPRiIsIkRlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb24iLCJEb2NUeXBlIiwicHViSWQiLCJzeXNJZCIsIkNEQVRBIiwiUEkiLCJsb29rdXBOYW1lc3BhY2VVUkkiLCJhdHRQcmVmaXgiLCJhdHRMb2NhbE5hbWUiLCJhdHROYW1lc3BhY2UiLCJpc0RlZmF1bHROYW1lc3BhY2UiLCJDbG9zaW5nVGFnIiwiX3N0ciIsInNraXBJZlN0YXJ0c1dpdGgiLCJvcGVuQnJhY2tldCIsImlzV2hpdGVTcGFjZVRva2VuIiwib3BlblRhZyIsInNraXBTcGFjZSIsInRha2VVbnRpbDIiLCJxdW90ZWRTdHJpbmciLCJza2lwVW50aWwiLCJ0YWtlVW50aWxTdGFydHNXaXRoIiwic2VlayIsInRha2VVbnRpbCIsInN0YXJ0UXVvdGUiLCJ0YWtlIiwiaXNRdW90ZSIsInN0ckxlbmd0aCIsImlzU3BhY2UiLCJjaGFyMSIsImNoYXIyIiwiWE1MU2VyaWFsaXplckltcGxfMSIsIlhNTFNlcmlhbGl6ZXJJbXBsIiwiWE1MU2VyaWFsaXplck5TSW1wbF8xIiwiWE1MU2VyaWFsaXplck5vTlNJbXBsXzEiLCJYTUxTZXJpYWxpemVyTlNJbXBsIiwic2VyaWFsaXplVG9TdHJpbmciLCJYTUxTZXJpYWxpemVyTm9OU0ltcGwiLCJfeG1sU2VyaWFsaXphdGlvbiIsInNlcmlhbGl6ZWREb2N1bWVudCIsIm5vRGVwcmVjYXRpb24iLCJ0aHJvd0RlcHJlY2F0aW9uIiwidHJhY2VEZXByZWNhdGlvbiIsInRyYWNlIiwiZGVidWdFbnZpcm9uIiwiZGVidWdzIiwic3R5bGl6ZSIsInN0eWxpemVOb0NvbG9yIiwiZGVwdGgiLCJzaG93SGlkZGVuIiwiX2V4dGVuZCIsImN1c3RvbUluc3BlY3QiLCJzdHlsaXplV2l0aENvbG9yIiwiZm9ybWF0VmFsdWUiLCJzdHlsZVR5cGUiLCJyZWN1cnNlVGltZXMiLCJwcmltaXRpdmUiLCJzaW1wbGUiLCJmb3JtYXRQcmltaXRpdmUiLCJ2aXNpYmxlS2V5cyIsImFycmF5VG9IYXNoIiwiaXNFcnJvciIsImZvcm1hdEVycm9yIiwiaXNSZWdFeHAiLCJicmFjZXMiLCJ0b1VUQ1N0cmluZyIsImZvcm1hdFByb3BlcnR5IiwiZm9ybWF0QXJyYXkiLCJudW1MaW5lc0VzdCIsInJlZHVjZVRvU2luZ2xlU3RyaW5nIiwibGluZSIsImFyIiwiZGVidWdsb2ciLCJOT0RFX0RFQlVHIiwiaXNQcmltaXRpdmUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiaW5oZXJpdHMiLCJrQ3VzdG9tUHJvbWlzaWZpZWRTeW1ib2wiLCJjYWxsYmFja2lmeU9uUmVqZWN0ZWQiLCJyZWFzb24iLCJuZXdSZWFzb24iLCJwcm9taXNpZnkiLCJwcm9taXNlUmVzb2x2ZSIsInByb21pc2VSZWplY3QiLCJjdXN0b20iLCJjYWxsYmFja2lmeSIsImNhbGxiYWNraWZpZWQiLCJtYXliZUNiIiwicmVqIiwic3VwZXJDdG9yIiwic3VwZXJfIiwiVGVtcEN0b3IiLCJfYWRkRG9tRXZlbnRMaXN0ZW5lciIsInVubW91bnRSZXN1bHQiLCJ0cmlnZ2VyQ2FuY2VsIiwiQ29uZmlybURpYWxvZyIsInVwZGF0ZSIsIm5ld0NvbmZpZyIsIl9BY3Rpb25CdXR0b24iLCJrZXlib2FyZCIsIm1hc2tTdHlsZSIsIl9wcm9wcyRpY29uVHlwZSIsImNvbnRlbnRQcmVmaXhDbHMiLCJhdXRvRm9jdXNCdXR0b24iLCJjYW5jZWxCdXR0b24iLCJhY3Rpb25GbiIsImNsb3NlTW9kYWwiLCJidXR0b25Qcm9wcyIsIkFjdGlvbkJ1dHRvbiIsInRpbWVvdXRJZCIsInJlVHJpbSIsIl9jcmVhdGVET01Gb3JtIiwiX2NyZWF0ZUZvcm1GaWVsZCIsIl9Gb3JtSXRlbSIsIkZvcm1MYXlvdXRzIiwicmVuZGVyRm9ybSIsImhpZGVSZXF1aXJlZE1hcmsiLCJsYXlvdXQiLCJmb3JtQ2xhc3NOYW1lIiwib25TdWJtaXQiLCJjcmVhdGVGb3JtRmllbGQiLCJfcmVhY3REb20yIiwiX2RvbVNjcm9sbEludG9WaWV3MiIsIl9oYXMyIiwiX2NyZWF0ZUJhc2VGb3JtMiIsIl9jcmVhdGVGb3JtIiwiY3VycmVudFN0eWxlIiwibWl4aW4iLCJ2YWxpZGF0ZUZpZWxkc0FuZFNjcm9sbCIsInZhbGlkTmFtZXMiLCJmaXJzdFRvcCIsImdldFNjcm9sbGFibGVDb250YWluZXIiLCJiYXNlSGFzIiwiaGFzUGF0aCIsImNhc3RQYXRoIiwidG9LZXkiLCJoYXNGdW5jIiwicmVJc0RlZXBQcm9wIiwicmVJc1BsYWluUHJvcCIsIm1lbW9pemVDYXBwZWQiLCJyZVByb3BOYW1lIiwicmVFc2NhcGVDaGFyIiwicXVvdGUiLCJzdWJTdHJpbmciLCJtZW1vaXplIiwicmVzb2x2ZXIiLCJtZW1vaXplZCIsIkNhY2hlIiwiYmFzZVRvU3RyaW5nIiwiYXJyYXlNYXAiLCJzeW1ib2xUb1N0cmluZyIsIl9mcm9tIiwiX2Zyb20yIiwiaXNBcnJheUl0ZXIiLCJjcmVhdGVQcm9wZXJ0eSIsImdldEl0ZXJGbiIsImFycmF5TGlrZSIsIm1hcGZuIiwibWFwcGluZyIsIml0ZXJGbiIsIkFycmF5UHJvdG8iLCJjbGFzc29mIiwiZ2V0SXRlcmF0b3JNZXRob2QiLCJBUkciLCJ0cnlHZXQiLCJTQUZFX0NMT1NJTkciLCJyaXRlciIsInNraXBDbG9zaW5nIiwic2FmZSIsIlJlYWN0Tm9vcFVwZGF0ZVF1ZXVlIiwiZW1wdHlPYmplY3QiLCJfaW52YXJpYW50IiwiUmVhY3RDb21wb25lbnQiLCJpbmplY3RlZE1peGlucyIsIlJlYWN0Q2xhc3NJbnRlcmZhY2UiLCJzdGF0aWNzIiwidXBkYXRlQ29tcG9uZW50IiwiUmVhY3RDbGFzc1N0YXRpY0ludGVyZmFjZSIsIlJFU0VSVkVEX1NQRUNfS0VZUyIsIm1peFNwZWNJbnRvQ29tcG9uZW50IiwiY3JlYXRlTWVyZ2VkUmVzdWx0RnVuY3Rpb24iLCJzcGVjUG9saWN5IiwibWl4U3RhdGljU3BlY0ludG9Db21wb25lbnQiLCJhdXRvYmluZCIsInZhbGlkYXRlTWV0aG9kT3ZlcnJpZGUiLCJpc0FscmVhZHlEZWZpbmVkIiwiUmVhY3RDbGFzc01peGluIiwic3BlYyIsImF1dG9CaW5kUGFpcnMiLCJfX3JlYWN0QXV0b0JpbmRQYWlycyIsImlzUmVhY3RDbGFzc01ldGhvZCIsIm1lcmdlSW50b1dpdGhOb0R1cGxpY2F0ZUtleXMiLCJ0d28iLCJiaW5kQXV0b0JpbmRNZXRob2QiLCJJc01vdW50ZWRQcmVNaXhpbiIsIl9faXNNb3VudGVkIiwiSXNNb3VudGVkUG9zdE1peGluIiwicmVwbGFjZVN0YXRlIiwiUmVhY3RDbGFzc0NvbXBvbmVudCIsImF1dG9CaW5kS2V5IiwiYmluZEF1dG9CaW5kTWV0aG9kcyIsIm1ldGhvZE5hbWUiLCJhcmdJbmRleCIsImZyYW1lc1RvUG9wIiwiX3ZhbGlkYXRvciIsIl92YWxpZGF0b3IyIiwiX21lc3NhZ2VzMiIsIl9zdHJpbmcyIiwiX21ldGhvZDIiLCJfbnVtYmVyMiIsIl9ib29sZWFuMiIsIl9yZWdleHAyIiwiX2ludGVnZXIyIiwiX2Zsb2F0MiIsIl9hcnJheTIiLCJfb2JqZWN0MiIsIl9kYXRlMiIsImJvb2xlYW4iLCJfcnVsZSIsIl9ydWxlMiIsIl9yZXF1aXJlZCIsImJhc2VHZXQiLCJhc3NpZ25WYWx1ZSIsIm5lc3RlZCIsImJhc2VBc3NpZ25WYWx1ZSIsIl9jcmVhdGVDbGFzczMiLCJGaWVsZHNTdG9yZSIsIl9jcmVhdGVGb3JtRmllbGQyIiwicGFydE9mIiwiaW50ZXJuYWxGbGF0dGVuRmllbGRzIiwiX2luaXRpYWxpc2VQcm9wcyIsInZhbGlkRmllbGRzTmFtZSIsIm5vd0ZpZWxkcyIsIm5vd1ZhbHVlcyIsImdldFZhbHVlRnJvbUZpZWxkcyIsIm5vcm1hbGl6ZSIsIm1heWJlUGFydGlhbE5hbWUiLCJtYXliZVBhcnRpYWxOYW1lcyIsImZ1bGxOYW1lIiwicGFydGlhbE5hbWUiLCJnZXRWYWx1ZVByb3BzIiwiZ2V0Tm90Q29sbGVjdGVkRmllbGRzIiwibWVtYmVyIiwiZnVsbE5hbWVzIiwiaXNBcnJheVZhbHVlIiwic3VmZml4TmFtZVN0YXJ0SW5kZXgiLCJzZXRGaWVsZHNJbml0aWFsVmFsdWUiLCJpbml0aWFsVmFsdWVzIiwiZmxhdHRlbmVkSW5pdGlhbFZhbHVlcyIsImdldE5lc3RlZEZpZWxkcyIsImdldE5lc3RlZEZpZWxkIiwiZ2V0RmllbGRzRXJyb3IiLCJnZXRGaWVsZEVycm9yIiwiZ2V0RmllbGRNZW1iZXIiLCJpc0ZpZWxkVmFsaWRhdGluZyIsImlzRmllbGRzVmFsaWRhdGluZyIsImlzRmllbGRUb3VjaGVkIiwiaXNGaWVsZHNUb3VjaGVkIiwiX2NyZWF0ZUJhc2VGb3JtIiwiX1Jvd0NvbnRleHQiLCJSb3dBbGlnbnMiLCJSb3dKdXN0aWZ5IiwicmVuZGVyUm93IiwianVzdGlmeSIsImd1dHRlciIsImdldEd1dHRlciIsInJvd1N0eWxlIiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwiZW5xdWlyZSIsIm1lZGlhUXVlcnkiLCJtZWRpYSIsInVubWF0Y2giLCJNZWRpYVF1ZXJ5RGlzcGF0Y2giLCJNZWRpYVF1ZXJ5IiwiVXRpbCIsInF1ZXJpZXMiLCJicm93c2VySXNJbmNhcGFibGUiLCJzaG91bGREZWdyYWRlIiwiaXNVbmNvbmRpdGlvbmFsIiwiYWRkSGFuZGxlciIsInJlbW92ZUhhbmRsZXIiLCJRdWVyeUhhbmRsZXIiLCJhc3Nlc3MiLCJjb25zdHVjdG9yIiwiZGVmZXJTZXR1cCIsInNldHVwIiwiaW5pdGlhbGlzZWQiLCJvYmplY3RPck51bWJlciIsIkNvbCIsInJlbmRlckNvbCIsInNwYW4iLCJwdWxsIiwic2l6ZUNsYXNzT2JqIiwic2l6ZVByb3BzIiwicHJvcFNpemUiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSIsInJhbmRvbVN0cmluZyIsIkFjdGlvblR5cGVzIiwiSU5JVCIsIlJFUExBQ0UiLCJQUk9CRV9VTktOT1dOX0FDVElPTiIsImNyZWF0ZVN0b3JlIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsImN1cnJlbnRSZWR1Y2VyIiwiY3VycmVudFN0YXRlIiwiY3VycmVudExpc3RlbmVycyIsIm5leHRMaXN0ZW5lcnMiLCJpc0Rpc3BhdGNoaW5nIiwiZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycyIsImlzU3Vic2NyaWJlZCIsInJlcGxhY2VSZWR1Y2VyIiwibmV4dFJlZHVjZXIiLCJvdXRlclN1YnNjcmliZSIsIm9ic2VydmVTdGF0ZSIsImNvbXBvc2UiLCJmdW5jcyIsImFwcGx5TWlkZGxld2FyZSIsIm1pZGRsZXdhcmVzIiwiX2Rpc3BhdGNoIiwibWlkZGxld2FyZUFQSSIsImNoYWluIiwibWlkZGxld2FyZSIsImNyZWF0ZVRodW5rTWlkZGxld2FyZSIsImV4dHJhQXJndW1lbnQiLCJ0aHVuayIsIndpdGhFeHRyYUFyZ3VtZW50IiwiaXNPYmplY3RPYmplY3QiLCJwcm90IiwidXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCIsImNyZWF0ZVN0b3JlU3RhdGVIb29rIiwibWFwU3RhdGUiLCJlcXVhbGl0eUZuIiwibWFwU3RhdGVSZWYiLCJzdWJzY3JpcHRpb25NYXBTdGF0ZUVycm9yIiwiY2hlY2tNYXBTdGF0ZSIsImNyZWF0ZVN0b3JlQWN0aW9uc0hvb2siLCJtYXBBY3Rpb25zIiwiZ2V0QWN0aW9ucyIsImNyZWF0ZVN0b3JlRGlzcGF0Y2hIb29rIiwiY3JlYXRlU3RvcmVSZWh5ZHJhdGVkSG9vayIsInJlaHlkcmF0ZWQiLCJzZXRSZWh5ZHJhdGVkIiwicmVzb2x2ZVJlaHlkcmF0aW9uIiwiZGVmYXVsdFN0YXRlUmVzb2x2ZXJzIiwiY29tcHV0ZWQiLCJmbk9yU3RhdGVSZXNvbHZlcnMiLCJzdGF0ZVJlc29sdmVycyIsInJlY3Vyc2l2ZUNsb25lIiwiaXNQcm9taXNlIiwiY3JlYXRlU2ltcGxlUHJvZHVjZSIsImRpc2FibGVJbW1lciIsIm5ld2lmeSIsImN1cnJlbnRQYXRoIiwiZmluYWxWYWx1ZSIsIl9kcmFmdCIsInBhcmVudFBhdGgiLCJjcmVhdGVSZWR1Y2VyIiwiYWN0aW9uUmVkdWNlcnNEaWN0IiwiY3VzdG9tUmVkdWNlcnMiLCJjb21wdXRlZFByb3BlcnRpZXMiLCJzaW1wbGVQcm9kdWNlIiwicmVkdWNlckZvckFjdGlvbnMiLCJhY3Rpb25SZWR1Y2VyIiwicnVuQWN0aW9uUmVkdWNlckF0UGF0aCIsInN0YXRlQWZ0ZXJBY3Rpb25zIiwicmVkdWNlckZvckN1c3RvbVJlZHVjZXJzIiwiYmluZENvbXB1dGVkUHJvcGVydHkiLCJub29wU3RvcmFnZSIsImdldEl0ZW0iLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsImxvY2FsU3RvcmFnZSIsInNlc3Npb25TdG9yYWdlIiwiY3JlYXRlU3RvcmFnZVdyYXBwZXIiLCJzdG9yYWdlIiwidHJhbnNmb3JtZXJzIiwib3V0VHJhbnNmb3JtZXJzIiwiZGVzZXJpYWxpemUiLCJzaW1wbGVLZXkiLCJpc0FzeW5jIiwid3JhcHBlZCIsInRyYW5zZm9ybWVkIiwiaW4iLCJyZXNvbHZlUGVyc2lzdFRhcmdldHMiLCJ3aGl0ZWxpc3QiLCJ0YXJnZXRzIiwiY3JlYXRlTGlzdGVuZXJNaWRkbGV3YXJlIiwicmVmZXJlbmNlcyIsImludGVybmFscyIsImxpc3RlbmVyQWN0aW9uTWFwIiwic291cmNlQWN0aW9uIiwiYWN0aW9uQ3JlYXRvckRpY3QiLCJhY3Rpb25DcmVhdG9yIiwiY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0aWVzTWlkZGxld2FyZSIsImNvbXB1dGVkU3RhdGUiLCJpc0luUmVkdWNlciIsImV4dHJhY3REYXRhRnJvbU1vZGVsIiwiaW5qZWN0aW9ucyIsImFjdGlvbkNyZWF0b3JzIiwiYWN0aW9uVGh1bmtzIiwibGlzdGVuZXJBY3Rpb25DcmVhdG9ycyIsImxpc3RlbmVyRGVmaW5pdGlvbnMiLCJwZXJzaXN0ZW5jZUNvbmZpZyIsInJlY3Vyc2l2ZUV4dHJhY3RGcm9tTW9kZWwiLCJoYW5kbGVWYWx1ZUFzU3RhdGUiLCJpbml0aWFsUGFyZW50UmVmIiwiYWN0aW9uRGVmaW5pdGlvbiIsImFjdGlvbk1ldGEiLCJhY3Rpb25OYW1lIiwicmVzb2x2ZWRUYXJnZXRzIiwiY3JlYXRlQWN0aW9uQ3JlYXRvciIsInRodW5rSGFuZGxlciIsInRodW5rRGVmaW5pdGlvbiIsInRodW5rTWV0YSIsImhlbHBlcnMiLCJnZXRTdG9yZUFjdGlvbnMiLCJnZXRTdG9yZVN0YXRlIiwiY3JlYXRlVGh1bmtIYW5kbGVyIiwiX2FjdGlvbkNyZWF0b3IiLCJzdGFydFR5cGUiLCJzdWNjZXNzVHlwZSIsImZhaWxUeXBlIiwiZGlzcGF0Y2hFcnJvciIsImRpc3BhdGNoU3VjY2VzcyIsInJlc29sdmVkIiwiY3JlYXRlVGh1bmtBY3Rpb25zQ3JlYXRvciIsImNvbXB1dGVkTWV0YSIsIm1lbW9pc2VkUmVzdWx0Rm4iLCJzdG9yZVN0YXRlIiwiaW5wdXRzIiwiY3JlYXRlQ29tcHV0ZWRQcm9wZXJ0eUJpbmRlciIsInBlcnNpc3REZWZpbml0aW9uIiwibWVyZ2VTdHJhdGVneSIsImV4dHJhY3RQZXJzaXN0Q29uZmlnIiwibGlzdGVuZXJBY3Rpb25PclRodW5rIiwibGlzdGVuZXJNZXRhIiwidGFyZ2V0UmVzb2x2ZXIiLCJ0YXJnZXRUeXBlcyIsInRhcmdldFR5cGUiLCJsaXN0ZW5lclJlZyIsImJpbmRMaXN0ZW5lckRlZmluaXRpb25zIiwibW9kZWxDbG9uZSIsImNvbXBvc2UkMSIsIl9vcHRpb25zJGRldlRvb2xzIiwiZGV2VG9vbHMiLCJfb3B0aW9ucyRkaXNhYmxlSW1tZXIiLCJfb3B0aW9ucyRlbmhhbmNlcnMiLCJlbmhhbmNlcnMiLCJfb3B0aW9ucyRpbml0aWFsU3RhdGUiLCJfb3B0aW9ucyRtaWRkbGV3YXJlIiwiX29wdGlvbnMkbW9ja0FjdGlvbnMiLCJtb2NrQWN0aW9ucyIsIl9vcHRpb25zJG5hbWUiLCJzdG9yZU5hbWUiLCJfb3B0aW9ucyRyZWR1Y2VyRW5oYW4iLCJyZWR1Y2VyRW5oYW5jZXIiLCJyb290UmVkdWNlciIsImJpbmRSZXBsYWNlU3RhdGUiLCJtb2RlbERlZiIsImVQUlMiLCJtb2RlbERlZmluaXRpb24iLCJtb2NrZWRBY3Rpb25zIiwicGVyc2lzdEtleSIsInRhcmdldFBhdGgiLCJwZXJzaXN0b3IiLCJjcmVhdGVQZXJzaXN0b3IiLCJwZXJzaXN0TWlkZGxld2FyZSIsImNyZWF0ZVBlcnNpc3RNaWRkbGV3YXJlIiwiY2xlYXJQZXJzaXN0YW5jZSIsImFsbCIsImNyZWF0ZVBlcnNpc3RlbmNlQ2xlYXJlciIsImJpbmRTdG9yZUludGVybmFscyIsIl9leHRyYWN0RGF0YUZyb21Nb2RlbCIsImNyZWF0ZVN0b3JlSW50ZXJuYWxzIiwiY29tcG9zZUVuaGFuY2VycyIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX0NPTVBPU0VfXyIsImVhc3lQZWFzeU1pZGRsZXdhcmUiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJhY3Rpb25zS2V5IiwicmViaW5kU3RvcmUiLCJfcmVzb2x2ZVJlaHlkcmF0aW9uIiwicGVyc2lzdEluc3RhbmNlIiwiYXBwbHlSZWh5ZHJhdGlvblN0cmF0ZWd5Iiwib3JpZ2luYWxTdGF0ZSIsInJlaHlkcmF0ZWRTdGF0ZSIsInNldEF0IiwiY3VycmVudE5leHQiLCJhc3luY1N0YXRlUmVzb2x2ZXJzIiwiZGF0YVByb21pc2UiLCJyZXNvbHZlZERhdGEiLCJyZWh5ZHJhdGVTdGF0ZUZyb21QZXJzaXN0SWZOZWVkZWQiLCJhZGRNb2RlbCIsIm1vZGVsRm9yS2V5IiwiY2xlYXJNb2NrZWRBY3Rpb25zIiwiZ2V0TGlzdGVuZXJzIiwiZ2V0TW9ja2VkQWN0aW9ucyIsInJlY29uZmlndXJlIiwibmV3TW9kZWwiLCJyZW1vdmVNb2RlbCIsIlN0b3JlUHJvdmlkZXIiLCJfaXNUcmFuc2Zvcm1lciIsIl9kaXNwYXRjaGFibGUiLCJtZXRob2ROYW1lcyIsIl9pc0FycmF5IiwidHJhbnNkdWNlciIsIl9pc09iamVjdCIsIl9pc1N0cmluZyIsIlhXcmFwIiwiX2l0ZXJhYmxlUmVkdWNlIiwiX21ldGhvZFJlZHVjZSIsInN5bUl0ZXJhdG9yIiwiX3JlZHVjZSIsIl94d3JhcCIsIl9hcnJheVJlZHVjZSIsIlhGaWx0ZXIiLCJfeGZCYXNlIiwiX2hhcyIsImhhc0VudW1CdWciLCJub25FbnVtZXJhYmxlUHJvcHMiLCJoYXNBcmdzRW51bUJ1ZyIsIm5JZHgiLCJjaGVja0FyZ3NMZW5ndGgiLCJwcmVkIiwiZmlsdGVyYWJsZSIsIl9tYXAiLCJmdW5jdG9yIiwiWE1hcCIsInBhdGhzQXJyYXkiLCJfaXNJbnRlZ2VyIiwicGF0aEFyIiwiX2N1cnJ5MyIsImYzIiwicHJlZHMiLCJzZWFyY2hGaWx0ZXIiLCJwaHJhc2UiLCJ0eXBlRmlsdGVyIiwidmFsdWVUeXBlIiwicmVnaXN0ZXJlZEZpbHRlciIsInJlZ2lzdGVyZWRTdGF0ZSIsIl9hcnJheUZyb21JdGVyYXRvciIsIl9pbmNsdWRlc1dpdGgiLCJfdW5pcUNvbnRlbnRFcXVhbHMiLCJhSXRlcmF0b3IiLCJiSXRlcmF0b3IiLCJzdGFja0EiLCJzdGFja0IiLCJfZXF1YWxzIiwiYUl0ZW0iLCJ0eXBlQSIsImlnbm9yZUNhc2UiLCJtdWx0aWxpbmUiLCJ1bmljb2RlIiwiZXh0ZW5kZWRTdGFja0EiLCJleHRlbmRlZFN0YWNrQiIsIl9pbmNsdWRlcyIsImluZiIsIl9pbmRleE9mIiwic2V0SXRlbXMiLCJmaWx0ZXJlZEl0ZW1zIiwic2VsZWN0ZWRJdGVtcyIsInNldFNlYXJjaCIsInNldFR5cGUiLCJzZXRSZWdpc3RlcmVkU3RhdGUiLCJyZXNldEVycm9yIiwic2V0U2VsZWN0ZWQiLCJyZXNldFNlbGVjdGVkIiwic2V0U2VsZWN0ZWRSb3dLZXlzIiwicmVzZXRTZWxlY3RlZFJvd0tleXMiLCJjbGlja2VkUm93S2V5cyIsInNldENsaWNrZWRSb3dLZXlzIiwicmVxdWVzdEluUHJvZ3Jlc3MiLCJzZXRSZXF1ZXN0SW5Qcm9ncmVzcyIsInJlc2V0UmVxdWVzdEluUHJvZ3Jlc3MiLCJleHBvcnRNb2RhbE9wZW5lZCIsInNldEV4cG9ydE1vZGFsT3BlbmVkIiwicmVzZXRFeHBvcnRNb2RhbE9wZW5lZCIsImdldFN0b3JlUHJvcGVydHkiLCJ1c2VTdG9yZVN0YXRlIiwiZ2V0U3RvcmVBY3Rpb24iLCJ1c2VTdG9yZUFjdGlvbnMiLCJnZXRTdG9yZSIsImNhcGl0YWxpemUiLCJ1c2VTdG9yZSIsIl9waXBlIiwiX2NoZWNrRm9yTWV0aG9kIiwibWV0aG9kbmFtZSIsInRvSW5kZXgiLCJwaXBlIiwid3AiLCJpMThuIiwic3ByaW50Zk9uZUFyZyIsInNwcmludGZGcm9tTm9kZSIsInVuUmVnaXN0ZXIiLCJub3RSZWdpc3RlcmVkIiwicmVnaXN0ZXJlZEFuZExvY2tlZCIsIm51bWVyaWMiLCJlcnJvckRlc2NyaXB0aW9uIiwiYWxsTnVtYmVyIiwicmVnaXN0ZXJlZE51bWJlciIsIm5vdFJlZ2lzdGVyZWROdW1iZXIiLCJsb2NrZWQiLCJleHBvcnRCdXR0b24iLCJleHBvcnRUaXRsZSIsImV4cG9ydEluZm8iLCJub09wdGlvbkZvdW5kIiwibm9PcHRpb25IZWxwIiwib25UeXBlIiwiWFRha2UiLCJfY29uY2F0IiwibGVuMSIsIl9jcmVhdGVQYXJ0aWFsQXBwbGljYXRvciIsIlJlZ2lzdGVyZWRMaW5rIiwiY291bnRPZlN1YnNldCIsImlzTm90UmVnaXN0ZXJlZCIsImxvY2FsZUNvbXBhcmUiLCJzZWxlY3RlZFJvd3MiLCJzaG93U2l6ZUNoYW5nZXIiLCJwYWdlU2l6ZU9wdGlvbnMiLCJJZGVudGl0eSIsInRvRnVuY3RvckZuIiwib25UcnVlIiwib25GYWxzZSIsIl9pZGVudGl0eSIsIlhUYXAiLCJhamF4IiwidXBkYXRlUmVnaXN0ZXJlZExhYmVsIiwib3ZlciIsImxlbnNQcm9wIiwidXBkYXRlSXRlbSIsImlmRWxzZSIsInZhbGlkYXRlUmVzcG9uc2UiLCJzZXRDb21tdW5pY2F0aW9uRXJyb3IiLCJvblJlZ2lzdGVyU3RyaW5nIiwicGx1Y2siLCJ0YXAiLCJfaXNGdW5jdGlvbiIsIl9xdW90ZSIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsIl90b1N0cmluZyIsInJlY3VyIiwibWFwUGFpcnMiLCJyZXByIiwibWVyZ2VEZWVwV2l0aEtleSIsImxPYmoiLCJyT2JqIiwibFZhbCIsInJWYWwiLCJuYW1lTGVuc2UiLCJzcGxpdE5hbWVJbnRvUGFydHMiLCJtYWtlT2JqIiwiYXNzb2MiLCJpc05vdEVtcHR5Iiwibm90IiwiYW55UGFzcyIsImJ1aWxkTGVhZiIsImNyZWF0ZUxlYWZOb2RlIiwiYWRkTm9kZXMiLCJmb3JFYWNoT2JqSW5kZXhlZCIsIm1lcmdlRGVlcFJpZ2h0IiwiY3JlYXRlVHJlZSIsImRlc3Ryb3lPbkNsb3NlIiwiWE1MR2VuZXJhdG9yIiwiY3VzdG9taXplUmVuZGVyRW1wdHlUYWJsZSIsIkFwcCIsIlJlZ2lzdGVyZWRTdGF0ZSIsIlR5cGVzIiwiUmVnaXN0ZXJCdXR0b24iLCJFeHBvcnRCdXR0b24iLCJFeHBvcnRNb2RhbCIsInN0UGFnZUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsIndwbWxfYWRtaW5fc3RyaW5ncyIsInByb3BMaXN0IiwicGlja0F0dHJzIiwibWVyZ2VkQ29uZmlnIiwiYXJpYU9ubHkiLCJhcmlhIiwiRmlsbGVyIiwib25Jbm5lclJlc2l6ZSIsImlubmVyU3R5bGUiLCJmbGV4RGlyZWN0aW9uIiwiZ2V0UGFnZVkiLCJTY3JvbGxCYXIiLCJtb3ZlUmFmIiwic2Nyb2xsYmFyUmVmIiwidGh1bWJSZWYiLCJ2aXNpYmxlVGltZW91dCIsImRyYWdnaW5nIiwic3RhcnRUb3AiLCJkZWxheUhpZGRlbiIsIm9uU2Nyb2xsYmFyVG91Y2hTdGFydCIsIm9uQ29udGFpbmVyTW91c2VEb3duIiwicGF0Y2hFdmVudHMiLCJyZW1vdmVFdmVudHMiLCJvblN0YXJ0TW92ZSIsImdldFRvcCIsIm5ld1RvcCIsImVuYWJsZVNjcm9sbFJhbmdlIiwiZ2V0RW5hYmxlU2Nyb2xsUmFuZ2UiLCJlbmFibGVIZWlnaHRSYW5nZSIsImdldEVuYWJsZUhlaWdodFJhbmdlIiwicHRnIiwibmV3U2Nyb2xsVG9wIiwib25TdG9wTW92ZSIsImdldFNwaW5IZWlnaHQiLCJiYXNlSGVpZ2h0Iiwic3BpbkhlaWdodCIsImJvcmRlclJhZGl1cyIsInVzZXJTZWxlY3QiLCJzZXRSZWYiLCJyZWZGdW5jIiwiQ2FjaGVNYXAiLCJtYXBzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwidXNlSGVpZ2h0cyIsIm9uSXRlbUFkZCIsIm9uSXRlbVJlbW92ZSIsInVwZGF0ZWRNYXJrIiwic2V0VXBkYXRlZE1hcmsiLCJpbnN0YW5jZVJlZiIsImhlaWdodHNSZWYiLCJoZWlnaHRVcGRhdGVJZFJlZiIsImNvbGxlY3RIZWlnaHQiLCJ1c2VEaWZmSXRlbSIsIm9uRGlmZiIsInByZXZEYXRhIiwic2V0UHJldkRhdGEiLCJkaWZmSXRlbSIsInNldERpZmZJdGVtIiwib3JpZ2luTGlzdCIsInRhcmdldExpc3QiLCJzaG9ydExpc3QiLCJsb25nTGlzdCIsIm9yaWdpbkxlbiIsInRhcmdldExlbiIsIm5vdEV4aXN0S2V5IiwiX19FTVBUWV9JVEVNX18iLCJnZXRJdGVtS2V5IiwiZGlmZkluZGV4Iiwic2hvcnRLZXkiLCJmaW5kTGlzdERpZmZJbmRleCIsImxvY2tSZWYiLCJsb2NrVGltZW91dFJlZiIsImxvY2tTY3JvbGwiLCJzY3JvbGxQaW5nUmVmIiwiaXNTY3JvbGxBdFRvcCIsImlzU2Nyb2xsQXRCb3R0b20iLCJzbW9vdGhPZmZzZXQiLCJvcmlnaW5TY3JvbGwiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsIlNjcm9sbFN0eWxlIiwib3ZlcmZsb3dBbmNob3IiLCJSYXdMaXN0IiwiX3Byb3BzJHByZWZpeENscyIsIml0ZW1IZWlnaHQiLCJfcHJvcHMkZnVsbEhlaWdodCIsImZ1bGxIZWlnaHQiLCJpdGVtS2V5IiwiX3Byb3BzJGNvbXBvbmVudCIsInVzZVZpcnR1YWwiLCJpblZpcnR1YWwiLCJzZXRTY3JvbGxUb3AiLCJzY3JvbGxNb3ZpbmciLCJzZXRTY3JvbGxNb3ZpbmciLCJjb21wb25lbnRSZWYiLCJmaWxsZXJJbm5lclJlZiIsInNoYXJlZENvbmZpZyIsInN5bmNTY3JvbGxUb3AiLCJhbGlnbmVkVG9wIiwibWF4U2Nyb2xsSGVpZ2h0UmVmIiwia2VlcEluUmFuZ2UiLCJyYW5nZVJlZiIsImRpZmZJdGVtUmVmIiwiX3VzZUhlaWdodHMyIiwic2V0SW5zdGFuY2VSZWYiLCJoZWlnaHRzIiwiaGVpZ2h0VXBkYXRlZE1hcmsiLCJfUmVhY3QkdXNlTWVtbyIsIl9maWxsZXJJbm5lclJlZiRjdXJyZSIsIml0ZW1Ub3AiLCJkYXRhTGVuIiwiY2FjaGVIZWlnaHQiLCJjdXJyZW50SXRlbUJvdHRvbSIsIm1heFNjcm9sbEhlaWdodCIsInVzZU9yaWdpblNjcm9sbCIsIl91c2VGcmFtZVdoZWVsMiIsIm9uV2hlZWxEZWx0YSIsIm9mZnNldFJlZiIsIndoZWVsVmFsdWVSZWYiLCJpc01vdXNlU2Nyb2xsUmVmIiwicGF0Y2hNdWx0aXBsZSIsInVzZUZyYW1lV2hlZWwiLCJvZmZzZXRZIiwib25SYXdXaGVlbCIsIm9uRmlyZUZveFNjcm9sbCIsImxpc3RSZWYiLCJjbGVhblVwRXZlbnRzIiwidG91Y2hlZFJlZiIsInRvdWNoWVJlZiIsImludGVydmFsUmVmIiwib25Ub3VjaE1vdmUiLCJjdXJyZW50WSIsImNsZWFySW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsIm9uVG91Y2hFbmQiLCJ1c2VNb2JpbGVUb3VjaE1vdmUiLCJvbk1vek1vdXNlUGl4ZWxTY3JvbGwiLCJ0cmlnZ2VyRmxhc2giLCJfYXJnJG9mZnNldCIsInN5bmNTY3JvbGwiLCJ0YXJnZXRBbGlnbiIsIm5lZWRDb2xsZWN0SGVpZ2h0IiwibmV3VGFyZ2V0QWxpZ24iLCJtZXJnZWRBbGlnbiIsInN0YWNrVG9wIiwiaXRlbUJvdHRvbSIsIm1heExlbiIsInRhcmdldFRvcCIsInVzZVNjcm9sbFRvIiwiX3Njcm9sbEJhclJlZiRjdXJyZW50IiwibGlzdENoaWxkcmVuIiwicmVuZGVyRnVuYyIsInVzZUNoaWxkcmVuIiwiY29tcG9uZW50U3R5bGUiLCJMaXN0IiwiY3VzdG9taXplSWNvbiIsImN1c3RvbWl6ZUljb25Qcm9wcyIsIl9vbk1vdXNlRG93biIsIldlYmtpdFVzZXJTZWxlY3QiLCJ1bnNlbGVjdGFibGUiLCJmbGF0dGVuT3B0aW9ucyIsImNoaWxkcmVuQXNEYXRhIiwic2VhcmNoVmFsdWUiLCJkZWZhdWx0QWN0aXZlRmlyc3RPcHRpb24iLCJvblRvZ2dsZU9wZW4iLCJvbkFjdGl2ZVZhbHVlIiwiaXRlbVByZWZpeENscyIsIm1lbW9GbGF0dGVuT3B0aW9ucyIsIm9uTGlzdE1vdXNlRG93biIsInNjcm9sbEludG9WaWV3IiwiZ2V0RW5hYmxlZEFjdGl2ZUluZGV4IiwiX21lbW9GbGF0dGVuT3B0aW9ucyRjIiwiZ3JvdXAiLCJzZXRBY3RpdmVJbmRleCIsImZyb21LZXlib2FyZCIsImZsYXR0ZW5JdGVtIiwiX2xpc3RSZWYkY3VycmVudCIsIm9uU2VsZWN0VmFsdWUiLCJuZXh0QWN0aXZlSW5kZXgiLCJpdGVtRGF0YSIsIm1lcmdlZExhYmVsIiwiaXRlbUluZGV4IiwiZ3JvdXBPcHRpb24iLCJvcHRpb25QcmVmaXhDbHMiLCJvcHRpb25DbGFzc05hbWUiLCJpY29uVmlzaWJsZSIsIm9wdGlvblRpdGxlIiwiUmVmT3B0aW9uTGlzdCIsImlzU2VsZWN0T3B0aW9uIiwiaXNTZWxlY3RPcHRHcm91cCIsImNvbnZlcnROb2RlVG9PcHRpb24iLCJfbm9kZSRwcm9wcyIsIm9wdGlvbk9ubHkiLCJfbm9kZSRwcm9wczIiLCJyZW1vdmVMYXN0RW5hYmxlZFZhbHVlIiwibWVhc3VyZVZhbHVlcyIsInJlbW92ZUluZGV4IiwibmV3VmFsdWVzIiwicmVtb3ZlZFZhbHVlIiwiaXNCcm93c2VyQ2xpZW50IiwidXVpZCIsImluamVjdFByb3BzV2l0aE9wdGlvbiIsIm5ld09wdGlvbiIsIl9yZWYkcHJldlZhbHVlT3B0aW9ucyIsInByZXZWYWx1ZU9wdGlvbnMiLCJvcHRpb25NYXAiLCJfSU5URVJOQUxfT1BUSU9OX1ZBTFVFXyIsInRvUmF3U3RyaW5nIiwiZ2V0U2VwYXJhdGVkQ29udGVudCIsInNlcGFyYXRlIiwicmVzdFRva2VucyIsInByZXZMaXN0IiwidW5pdFN0ciIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInJlZ2lzdGVyU2l6ZSIsIm1lcmdlZEhpZGRlbiIsImludGVybmFsUmVnaXN0ZXJTaXplIiwiaXRlbU5vZGUiLCJkZWZhdWx0UmVuZGVyUmVzdCIsIm9taXR0ZWRJdGVtcyIsIk92ZXJmbG93Iiwic3RhdGVzUmVmIiwid2Fsa2luZ0luZGV4IiwiYmVmb3JlRnJhbWVJZCIsIl9wcm9wcyRkYXRhIiwiX3Byb3BzJGl0ZW1XaWR0aCIsIml0ZW1XaWR0aCIsIl9wcm9wcyRyZW5kZXJSZXN0IiwicmVuZGVyUmVzdCIsInJlbmRlckl0ZW1Qcm9wcyIsIl9wcm9wcyRpdGVtQ29tcG9uZW50IiwiaXRlbUNvbXBvbmVudCIsImNyZWF0ZVVzZVN0YXRlIiwibXlJbmRleCIsIl9jcmVhdGVVc2VTdGF0ZTIiLCJjb250YWluZXJXaWR0aCIsInNldENvbnRhaW5lcldpZHRoIiwiX2NyZWF0ZVVzZVN0YXRlNCIsIml0ZW1XaWR0aHMiLCJzZXRJdGVtV2lkdGhzIiwiX2NyZWF0ZVVzZVN0YXRlNiIsInByZXZSZXN0V2lkdGgiLCJzZXRQcmV2UmVzdFdpZHRoIiwiX2NyZWF0ZVVzZVN0YXRlOCIsInJlc3RXaWR0aCIsInNldFJlc3RXaWR0aCIsIl9jcmVhdGVVc2VTdGF0ZTEwIiwic3VmZml4V2lkdGgiLCJzZXRTdWZmaXhXaWR0aCIsInN1ZmZpeEZpeGVkU3RhcnQiLCJzZXRTdWZmaXhGaXhlZFN0YXJ0IiwiZGlzcGxheUNvdW50Iiwic2V0RGlzcGxheUNvdW50IiwicmVzdFJlYWR5Iiwic2V0UmVzdFJlYWR5IiwibWVyZ2VkUmVzdFdpZHRoIiwiaXNSZXNwb25zaXZlIiwic2hvd1Jlc3QiLCJtZXJnZWRSZW5kZXJJdGVtIiwidXBkYXRlRGlzcGxheUNvdW50Iiwibm90UmVhZHkiLCJnZXRJdGVtV2lkdGgiLCJ0b3RhbFdpZHRoIiwiY3VycmVudEl0ZW1XaWR0aCIsImRpc3BsYXlSZXN0Iiwic3VmZml4U3R5bGUiLCJpdGVtU2hhcmVkUHJvcHMiLCJvdmVyZmxvd05vZGUiLCJGb3J3YXJkT3ZlcmZsb3ciLCJfaW5wdXROb2RlMiIsIl9pbnB1dE5vZGUyJHByb3BzIiwiaW5wdXRFbGVtZW50IiwiYXV0b0NvbXBsZXRlIiwiZWRpdGFibGUiLCJhY2Nlc3NpYmlsaXR5SW5kZXgiLCJfb25LZXlEb3duIiwiX29uQ2hhbmdlIiwib25QYXN0ZSIsIl9vbkNvbXBvc2l0aW9uU3RhcnQiLCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJfb25Db21wb3NpdGlvbkVuZCIsIm9uQ29tcG9zaXRpb25FbmQiLCJpbnB1dE5vZGUiLCJfaW5wdXROb2RlIiwiX2lucHV0Tm9kZSRwcm9wcyIsIm9uT3JpZ2luS2V5RG93biIsIm9uT3JpZ2luQ2hhbmdlIiwib25PcmlnaW5Nb3VzZURvd24iLCJvbk9yaWdpbkNvbXBvc2l0aW9uU3RhcnQiLCJvbk9yaWdpbkNvbXBvc2l0aW9uRW5kIiwiUmVmSW5wdXQiLCJlZmZlY3QiLCJvblByZXZlbnRNb3VzZURvd24iLCJpbnB1dFJlZiIsIm1heFRhZ0NvdW50IiwibWF4VGFnVGV4dExlbmd0aCIsIl9wcm9wcyRtYXhUYWdQbGFjZWhvbCIsIm1heFRhZ1BsYWNlaG9sZGVyIiwib21pdHRlZFZhbHVlcyIsInRhZ1JlbmRlciIsIm9uSW5wdXRDaGFuZ2UiLCJvbklucHV0UGFzdGUiLCJvbklucHV0S2V5RG93biIsIm9uSW5wdXRNb3VzZURvd24iLCJvbklucHV0Q29tcG9zaXRpb25TdGFydCIsIm9uSW5wdXRDb21wb3NpdGlvbkVuZCIsIm1lYXN1cmVSZWYiLCJpbnB1dFdpZHRoIiwic2V0SW5wdXRXaWR0aCIsImZvY3VzZWQiLCJzZXRGb2N1c2VkIiwic2VsZWN0aW9uUHJlZml4Q2xzIiwiaW5wdXRWYWx1ZSIsImlucHV0RWRpdGFibGUiLCJkZWZhdWx0UmVuZGVyU2VsZWN0b3IiLCJpdGVtRGlzYWJsZWQiLCJzZWxlY3Rpb25Ob2RlIiwiZGlzcGxheUxhYmVsIiwic3RyTGFiZWwiLCJjdXN0b21pemVSZW5kZXJTZWxlY3RvciIsImFjdGl2ZVZhbHVlIiwiaW5wdXRDaGFuZ2VkIiwic2V0SW5wdXRDaGFuZ2VkIiwiaGFzVGV4dElucHV0IiwidXNlTG9jayIsImRvTG9jayIsImNvbXBvc2l0aW9uU3RhdHVzUmVmIiwidG9rZW5XaXRoRW50ZXIiLCJvblNlYXJjaFN1Ym1pdCIsIl91c2VMb2NrIiwiX3VzZUxvY2syIiwiZ2V0SW5wdXRNb3VzZURvd24iLCJzZXRJbnB1dE1vdXNlRG93biIsInBhc3RlZFRleHRSZWYiLCJ0cmlnZ2VyT25TZWFyY2giLCJzaGFyZWRQcm9wcyIsInJlcGxhY2VkVGV4dCIsImdldERhdGEiLCJzZWxlY3ROb2RlIiwiTXVsdGlwbGVTZWxlY3RvciIsIm1zVG91Y2hBY3Rpb24iLCJpbnB1dE1vdXNlRG93biIsIkZvcndhcmRTZWxlY3RvciIsInBvcHVwRWxlbWVudCIsImRyb3Bkb3duU3R5bGUiLCJfcHJvcHMkZGlyZWN0aW9uIiwiX3Byb3BzJGRyb3Bkb3duTWF0Y2hTIiwiZHJvcGRvd25SZW5kZXIiLCJkcm9wZG93bkFsaWduIiwiYnVpbHRJblBsYWNlbWVudHMiLCJnZXRCdWlsdEluUGxhY2VtZW50cyIsIm1lcmdlZFRyYW5zaXRpb25OYW1lIiwiUmVmU2VsZWN0VHJpZ2dlciIsIkRFRkFVTFRfT01JVF9QUk9QUyIsImJhY2tmaWxsIiwiZ2V0SW5wdXRFbGVtZW50IiwiZGVmYXVsdE9wZW4iLCJsYWJlbEluVmFsdWUiLCJtZXJnZWRTaG93U2VhcmNoIiwibWVyZ2VkT3B0aW9ucyIsImhhc051bWJlclZhbHVlIiwiaW52YWxpZGF0ZUNoaWxkVHlwZSIsIk9wdGlvbkxpc3QiLCJvcHRpb25MaXN0IiwiY29udmVydENoaWxkcmVuVG9EYXRhIiwiZ2V0TGFiZWxlZFZhbHVlIiwiZmlsdGVyT3B0aW9ucyIsImlzVmFsdWVEaXNhYmxlZCIsImZpbmRWYWx1ZU9wdGlvbiIsImZpbGxPcHRpb25zV2l0aE1pc3NpbmdWYWx1ZSIsIndhcm5pbmdQcm9wcyIsIm9taXRET01Qcm9wcyIsImZpbHRlck9wdGlvbiIsImZpbHRlclNvcnQiLCJfcHJvcHMkb3B0aW9uRmlsdGVyUHIiLCJvcHRpb25GaWx0ZXJQcm9wIiwiX3Byb3BzJGF1dG9DbGVhclNlYXJjIiwiYXV0b0NsZWFyU2VhcmNoVmFsdWUiLCJfcHJvcHMkbm90Rm91bmRDb250ZW4iLCJfcHJvcHMkbGlzdEhlaWdodCIsIl9wcm9wcyRsaXN0SXRlbUhlaWdodCIsIl9wcm9wcyRzaG93QWN0aW9uIiwidG9rZW5TZXBhcmF0b3JzIiwib25Qb3B1cFNjcm9sbCIsIm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlIiwib25DbGVhciIsIl9wcm9wcyRpbnRlcm5hbFByb3BzIiwiaW50ZXJuYWxQcm9wcyIsInVzZUludGVybmFsUHJvcHMiLCJzZWxlY3RvclJlZiIsInRva2VuU2VwYXJhdG9yIiwiX3VzZURlbGF5UmVzZXQiLCJzZXRCb29sIiwiZGVsYXlSZWYiLCJjYW5jZWxMYXRlc3QiLCJkZWxheVNldEJvb2wiLCJ1c2VEZWxheVJlc2V0IiwiX3VzZURlbGF5UmVzZXQyIiwibW9ja0ZvY3VzZWQiLCJzZXRNb2NrRm9jdXNlZCIsImNhbmNlbFNldE1vY2tGb2N1c2VkIiwiaW5uZXJJZCIsInNldElubmVySWQiLCJyZXRJZCIsIm1lcmdlZElkIiwibWVyZ2VkT3B0aW9uTGFiZWxQcm9wIiwibWVyZ2VkTGFiZWxJblZhbHVlIiwic2V0TW9iaWxlIiwic2VsZWN0b3JEb21SZWYiLCJfc2VsZWN0b3JSZWYkY3VycmVudCIsIl9zZWxlY3RvclJlZiRjdXJyZW50MiIsInNldE1lcmdlZFZhbHVlIiwidmFsdWVNYXAiLCJyYXdWYWx1ZXMiLCJpdGVtVmFsdWUiLCJmaW5hbFZhbCIsInRvSW5uZXJWYWx1ZSIsIm1lcmdlZFJhd1ZhbHVlIiwibWVyZ2VkVmFsdWVNYXAiLCJfdXNlU3RhdGU1Iiwic2V0QWN0aXZlVmFsdWUiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwibWVyZ2VkU2VhcmNoVmFsdWUiLCJuZXdPcHRpb25zIiwibWVyZ2VkRmxhdHRlbk9wdGlvbnMiLCJnZXRWYWx1ZU9wdGlvbiIsInByZXZPcHRpb25NYXBSZWYiLCJ2YWxzIiwidXNlQ2FjaGVPcHRpb25zIiwiZGlzcGxheU9wdGlvbnMiLCJmaWx0ZXJlZE9wdGlvbnMiLCJkaXNwbGF5RmxhdHRlbk9wdGlvbnMiLCJwcmV2VmFsdWVzUmVmIiwiZGlzcGxheVZhbHVlcyIsInRtcFZhbHVlcyIsInZhbHVlT3B0aW9ucyIsImRpc3BsYXlWYWx1ZSIsInByZXZWYWx1ZU1hcCIsInZhbHVlTGFiZWxzIiwicmVzdWx0VmFsdWVzIiwiY2FjaGVMYWJlbCIsImlzQ2FjaGVhYmxlIiwidHJpZ2dlclNlbGVjdCIsImlzU2VsZWN0IiwibmV3VmFsdWVPcHRpb24iLCJvdXRPcHRpb24iLCJza2lwVHJpZ2dlclNlbGVjdCIsInNlbGVjdFZhbHVlIiwib25SYXdTZWxlY3QiLCJvblJhd0Rlc2VsZWN0IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2V0UHJldlZhbHVlT3B0aW9ucyIsInRyaWdnZXJDaGFuZ2UiLCJuZXdSYXdWYWx1ZXMiLCJza2lwVHJpZ2dlckNoYW5nZSIsIm5ld1Jhd1ZhbHVlc09wdGlvbnMiLCJvdXRWYWx1ZXMiLCJ2YWx1ZUxpc3QiLCJ0b091dGVyVmFsdWVzIiwib3V0VmFsdWUiLCJvdXRPcHRpb25zIiwib25JbnRlcm5hbFNlbGVjdCIsIm5ld1Jhd1ZhbHVlIiwiY3VzdG9taXplSW5wdXRFbGVtZW50IiwiX3VzZU1lcmdlZFN0YXRlNCIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsIm1lcmdlZE9wZW4iLCJlbXB0eUxpc3RDb250ZW50IiwidHJpZ2dlck9wZW4iLCJuZXdPcGVuIiwibmV4dE9wZW4iLCJwcm9wc1JlZiIsIm9uR2xvYmFsTW91c2VEb3duIiwidXNlU2VsZWN0VHJpZ2dlckNvbnRyb2wiLCJ0cmlnZ2VyU2VhcmNoIiwic2VhcmNoVGV4dCIsImZyb21UeXBpbmciLCJpc0NvbXBvc2l0aW5nIiwibmV3U2VhcmNoVGV4dCIsInBhdGNoTGFiZWxzIiwicGF0Y2hSYXdWYWx1ZXMiLCJnZXRDbGVhckxvY2siLCJzZXRDbGVhckxvY2siLCJmb2N1c1JlZiIsImFjdGl2ZVRpbWVvdXRJZHMiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwic2V0QWNjZXNzaWJpbGl0eUluZGV4IiwibWVyZ2VkRGVmYXVsdEFjdGl2ZUZpcnN0T3B0aW9uIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIl91c2VTdGF0ZTE1IiwibmV3V2lkdGgiLCJjbGVhck5vZGUiLCJfcmVmMyRzb3VyY2UiLCJhcnJvd05vZGUiLCJtZXJnZWRTaG93QXJyb3ciLCJfc2VsZWN0b3JSZWYkY3VycmVudDMiLCJfbGVuMyIsInJlc3RBcmdzIiwiX2xpc3RSZWYkY3VycmVudDIiLCJjbGVhckxvY2siLCJyZW1vdmVJbmZvIiwiX2xpc3RSZWYkY3VycmVudDMiLCJnZW5lcmF0ZVNlbGVjdG9yIiwiaXNHcm91cE9wdGlvbiIsInByZXZWYWxJdGVtIiwiZmlsdGVyRnVuYyIsImxvd2VyU2VhcmNoVGV4dCIsImdldEZpbHRlckZ1bmN0aW9uIiwic3ViT3B0aW9ucyIsInN1Ykl0ZW0iLCJjbG9uZU9wdGlvbnMiLCJvcHRpb25WYWx1ZXMiLCJzdWJPcHQiLCJzZWxlY3RSZWYiLCJIT09LX01BUksiLCJnZXRJbnRlcm5hbEhvb2tzIiwiaW5pdEVudGl0eVZhbHVlIiwicmVnaXN0ZXJGaWVsZCIsInVzZVN1YnNjcmliZSIsInNldEluaXRpYWxWYWx1ZXMiLCJnZXRGaWVsZHMiLCJzZXRWYWxpZGF0ZU1lc3NhZ2VzIiwic2V0UHJlc2VydmUiLCJpbnRlcm5hbFNldCIsInJlbW92ZUlmVW5kZWZpbmVkIiwiX3BhdGhzIiwiZ2V0TmFtZVBhdGgiLCJuYW1lUGF0aCIsIm5ld1N0b3JlIiwiY2xvbmVCeU5hbWVQYXRoTGlzdCIsIm5hbWVQYXRoTGlzdCIsImNvbnRhaW5zTmFtZVBhdGgiLCJtYXRjaE5hbWVQYXRoIiwiaW50ZXJuYWxTZXRWYWx1ZXMiLCJzZXRWYWx1ZXMiLCJyZXN0VmFsdWVzIiwiY2hhbmdlZE5hbWVQYXRoIiwibmFtZVVuaXQiLCJkZWZhdWx0R2V0VmFsdWVGcm9tRXZlbnQiLCJtb3ZlSW5kZXgiLCJlbnVtIiwiQXN5bmNWYWxpZGF0b3IiLCJjb252ZXJ0TWVzc2FnZXMiLCJtZXNzYWdlVmFyaWFibGVzIiwia3YiLCJyZXBsYWNlRnVuYyIsInRlbXBsYXRlIiwiYWRkaXRpb25hbEtWIiwicmVwbGFjZU1lc3NhZ2UiLCJmaWxsVGVtcGxhdGUiLCJydWxlTmFtZSIsInZhbGlkYXRlUnVsZSIsIl94IiwiX3gyIiwiX3gzIiwiX3g0IiwiX3g1IiwiX3ZhbGlkYXRlUnVsZSIsIl9jYWxsZWUyIiwiY2xvbmVSdWxlIiwic3ViUnVsZUZpZWxkIiwic3ViUmVzdWx0cyIsIl9jb250ZXh0MiIsInQwIiwic3ViVmFsdWUiLCJzdW1tYXJ5UHJvbWlzZSIsImZpbGxlZFJ1bGVzIiwiY3VycmVudFJ1bGUiLCJvcmlnaW5WYWxpZGF0b3JGdW5jIiwiaGFzUHJvbWlzZSIsIl94NiIsIl94NyIsInJ1bGVQcm9taXNlcyIsIl94OSIsIl9maW5pc2hPbkZpcnN0RmFpbGVkIiwiZmluaXNoT25GaXJzdEZhaWxlZCIsIl94OCIsIl9maW5pc2hPbkFsbEZhaWxlZCIsImZpbmlzaE9uQWxsRmFpbGVkIiwiX2NhbGxlZTMiLCJfY29udGV4dDMiLCJlcnJvcnNMaXN0IiwiX2NhbGxlZTQiLCJfY29udGV4dDQiLCJyZXF1aXJlVXBkYXRlIiwibmV4dFZhbHVlIiwicmVzZXRDb3VudCIsImNhbmNlbFJlZ2lzdGVyRnVuYyIsIm1vdW50ZWQiLCJ2YWxpZGF0ZVByb21pc2UiLCJjYW5jZWxSZWdpc3RlciIsImlzTGlzdEZpZWxkIiwiX2ZpZWxkQ29udGV4dCRwcmVmaXhOIiwiZmllbGRDb250ZXh0IiwicHJlZml4TmFtZSIsIl90aGlzJHByb3BzMyRydWxlcyIsIm9uU3RvcmVDaGFuZ2UiLCJwcmV2U3RvcmUiLCJfdGhpcyRwcm9wczQkZGVwZW5kZW4iLCJjdXJWYWx1ZSIsIm5hbWVQYXRoTWF0Y2giLCJyZVJlbmRlciIsImRlcGVuZGVuY3kiLCJyZWxhdGVkRmllbGRzIiwicm9vdFByb21pc2UiLCJfdGhpcyRwcm9wczUkdmFsaWRhdGUiLCJ0cmlnZ2VyTmFtZSIsImZpbHRlcmVkUnVsZXMiLCJpc0ZpZWxkRGlydHkiLCJnZXRFcnJvcnMiLCJpc0xpc3QiLCJpc1ByZXNlcnZlIiwicHJldlZhbGlkYXRpbmciLCJnZXRPbmx5Q2hpbGQiLCJnZXRDb250cm9sbGVkIiwibWVyZ2VkVmFsaWRhdGVUcmlnZ2VyIiwiX2dldEludGVybmFsSG9va3MiLCJtZXJnZWRHZXRWYWx1ZVByb3BzIiwib3JpZ2luVHJpZ2dlckZ1bmMiLCJ2YWxpZGF0ZVRyaWdnZXJMaXN0Iiwib3JpZ2luVHJpZ2dlciIsInJldHVybkNoaWxkTm9kZSIsIl90aGlzJGdldE9ubHlDaGlsZCIsIkZpZWxkQ29udGV4dCIsImtleU1hbmFnZXIiLCJwYXJlbnRQcmVmaXhOYW1lIiwiX3JlZjMkdmFsdWUiLCJnZXROZXdWYWx1ZSIsIm9wZXJhdGlvbnMiLCJpbmRleFNldCIsImtleXNJbmRleCIsInZhbHVlSW5kZXgiLCJtb3ZlIiwibGlzdFZhbHVlIiwiU1BMSVQiLCJOYW1lTWFwIiwia3ZzIiwiX2NlbGwkbWF0Y2gyIiwiRm9ybVN0b3JlIiwiZm9yY2VSb290VXBkYXRlIiwiZm9ybUhvb2tlZCIsInN1YnNjcmliYWJsZSIsImZpZWxkRW50aXRpZXMiLCJjYWxsYmFja3MiLCJsYXN0VmFsaWRhdGVQcm9taXNlIiwiZ2V0SW5pdGlhbFZhbHVlIiwid2FybmluZ1VuaG9va2VkIiwiZ2V0RmllbGRFbnRpdGllcyIsInB1cmUiLCJnZXRGaWVsZHNNYXAiLCJnZXRGaWVsZEVudGl0aWVzRm9yTmFtZVBhdGhMaXN0IiwibmFtZUxpc3QiLCJJTlZBTElEQVRFX05BTUVfUEFUSCIsImZpbHRlcmVkTmFtZUxpc3QiLCJfZW50aXR5JGlzTGlzdEZpZWxkIiwiYXJnMCIsImFyZzEiLCJpc0FsbEZpZWxkc1RvdWNoZWQiLCJzaG9ydE5hbWVQYXRoIiwiZmllbGROYW1lUGF0aCIsImlzTmFtZVBhdGhMaXN0VG91Y2hlZCIsImVudGl0aWVzIiwibmFtZVBhdGhMaXN0RW50aXRpZXMiLCJ0ZXN0RmllbGQiLCJyZXNldFdpdGhGaWVsZEluaXRpYWxWYWx1ZSIsInJlcXVpcmVkRmllbGRFbnRpdGllcyIsInJlc2V0V2l0aEZpZWxkcyIsIm9yaWdpblZhbHVlIiwic2tpcEV4aXN0IiwiX3JlcXVpcmVkRmllbGRFbnRpdGllIiwibm90aWZ5T2JzZXJ2ZXJzIiwiZmllbGREYXRhIiwic3ViTmFtZVBhdGgiLCJtZXJnZWRQcmVzZXJ2ZSIsInVwZGF0ZVZhbHVlIiwiX25hbWVQYXRoIiwibWVyZ2VkSW5mbyIsImNoaWxkcmVuRmllbGRzIiwiZ2V0RGVwZW5kZW5jeUNoaWxkcmVuRmllbGRzIiwidHJpZ2dlck9uRmllbGRzQ2hhbmdlIiwicm9vdE5hbWVQYXRoIiwiZGVwZW5kZW5jaWVzMmZpZWxkcyIsImRlcGVuZGVuY3lOYW1lUGF0aCIsImZpbGxDaGlsZHJlbiIsImZpbGVkRXJyb3JzIiwicHJvdmlkZU5hbWVMaXN0IiwicHJvbWlzZUxpc3QiLCJhbGxQcm9taXNlRmluaXNoIiwicmVzdWx0TmFtZVBhdGhMaXN0IiwicmV0dXJuUHJvbWlzZSIsImVycm9yTGlzdCIsIm91dE9mRGF0ZSIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJmb3JtUmVmIiwiZm9ybVN0b3JlIiwiRm9ybUNvbnRleHQiLCJ0cmlnZ2VyRm9ybUNoYW5nZSIsInRyaWdnZXJGb3JtRmluaXNoIiwicmVnaXN0ZXJGb3JtIiwidW5yZWdpc3RlckZvcm0iLCJvbkZvcm1DaGFuZ2UiLCJvbkZvcm1GaW5pc2giLCJmb3JtQ29udGV4dCIsImZvcm1zUmVmIiwibmV3Rm9ybXMiLCJfcmVmJHZhbGlkYXRlVHJpZ2dlciIsIl9vbkZpZWxkc0NoYW5nZSIsIl9vbkZpbmlzaCIsImZvcm1JbnN0YW5jZSIsIl9mb3JtSW5zdGFuY2UkZ2V0SW50ZSIsIm1vdW50UmVmIiwiY2hpbGRyZW5Ob2RlIiwiY2hpbGRyZW5SZW5kZXJQcm9wcyIsInByZXZGaWVsZHNSZWYiLCJ0YXJnZXRLZXlzIiwic291cmNlVmFsdWUiLCJ0YXJnZXRWYWx1ZSIsImlzU2ltaWxhciIsImZvcm1Db250ZXh0VmFsdWUiLCJ3cmFwcGVyTm9kZSIsIl9yZXN0UHJvcHMkb25SZXNldCIsIlJlZkZvcm0iLCJ1c2VGb3JtIiwicHJvcHNWYWx1ZVR5cGUiLCJiYXNpY1R5cGUiLCJsYWJlbEluVmFsdWVTaGFwZSIsIl92YWxpZGF0ZSIsImNhblVzZURPTSIsIk1vdGlvblByb3BUeXBlcyIsIm9uRG9tVXBkYXRlIiwibmV3U3RhdHVzIiwiJGNhY2hlRWxlIiwidXBkYXRlU3RhdHVzIiwidXBkYXRlQWN0aXZlU3RhdHVzIiwib25Nb3Rpb25FbmQiLCJfdGhpcyRzdGF0ZTIiLCJzdGF0dXNBY3RpdmUiLCJpbnRlcm5hbFJlZiIsInN0eWxlRnVuYyIsImFkZGl0aW9uYWxTdGF0ZSIsIl9kZXN0cm95ZWQiLCJjdXJyZW50U3RhdHVzIiwicHJldlN0YXR1cyIsImdldE9wZW5UcmFuc2l0aW9uTmFtZSIsInRvVGl0bGUiLCJnZXRWYWx1ZVByb3BWYWx1ZSIsImdldFByb3BWYWx1ZSIsImlzTXVsdGlwbGVPclRhZ3MiLCJpc011bHRpcGxlT3JUYWdzT3JDb21ib2JveCIsImlzU2luZ2xlTW9kZSIsImdldE1hcEtleSIsInByZXZlbnREZWZhdWx0RXZlbnQiLCJmaW5kSW5kZXhJblZhbHVlQnlTaW5nbGVWYWx1ZSIsInNpbmdsZVZhbHVlIiwiZ2V0TGFiZWxGcm9tUHJvcHNWYWx1ZSIsIlVOU0VMRUNUQUJMRV9TVFlMRSIsIlVOU0VMRUNUQUJMRV9BVFRSSUJVVEUiLCJkZWZhdWx0RmlsdGVyRm4iLCJEcm9wZG93bk1lbnUiLCJyYWZJbnN0YW5jZSIsImxhc3RWaXNpYmxlIiwic2Nyb2xsQWN0aXZlSXRlbVRvVmlldyIsImZpcnN0QWN0aXZlSXRlbSIsImZpcnN0QWN0aXZlVmFsdWUiLCJzY3JvbGxJbnRvVmlld09wdHMiLCJtZW51UmVmIiwibWVudUl0ZW1zIiwib25NZW51U2VsZWN0IiwiYmFja2ZpbGxWYWx1ZSIsIm9uTWVudURlc2VsZWN0IiwibWVudVByb3BzIiwiZ2V0U2VsZWN0S2V5cyIsImFjdGl2ZUtleVByb3BzIiwiY2xvbmVkTWVudUl0ZW1zIiwiZm91bmRGaXJzdCIsImxhc3RJbnB1dFZhbHVlIiwic2F2ZU1lbnVSZWYiLCJkcm9wZG93bk1lbnVTdHlsZSIsImFyaWFJZCIsIm9uUG9wdXBGb2N1cyIsIm9uTWVudURlU2VsZWN0IiwiQlVJTFRfSU5fUExBQ0VNRU5UUyIsIlNlbGVjdFRyaWdnZXIiLCJkcm9wZG93bk1lbnVSZWYiLCJzZXREcm9wZG93bldpZHRoIiwiY2FuY2VsUmFmSW5zdGFuY2UiLCJkcm9wZG93bldpZHRoIiwiZ2V0SW5uZXJNZW51IiwiZ2V0UG9wdXBET01Ob2RlIiwiZ2V0RHJvcGRvd25FbGVtZW50IiwibWVudU5vZGUiLCJzYXZlRHJvcGRvd25NZW51UmVmIiwiZ2V0RHJvcGRvd25QcmVmaXhDbHMiLCJnZXREcm9wZG93blRyYW5zaXRpb25OYW1lIiwic2F2ZVRyaWdnZXJSZWYiLCJfcG9wdXBDbGFzc05hbWUiLCJ3aWR0aFByb3AiLCJjaGFpbmluZyIsImZucyIsImlucHV0TWlycm9yUmVmIiwidG9wQ3RybFJlZiIsInNlbGVjdFRyaWdnZXJSZWYiLCJyb290UmVmIiwic2VsZWN0aW9uUmVmIiwiZHJvcGRvd25Db250YWluZXIiLCJibHVyVGltZXIiLCJmb2N1c1RpbWVyIiwiY29tYm9ib3hUaW1lciIsIl9mb2N1c2VkIiwiX21vdXNlRG93biIsInNlcGFyYXRvcnMiLCJpbmNsdWRlc1NlcGFyYXRvcnMiLCJnZXRWYWx1ZUJ5SW5wdXQiLCJmaXJlQ2hhbmdlIiwic2V0T3BlblN0YXRlIiwibmVlZEZvY3VzIiwic2V0SW5wdXRWYWx1ZSIsImNsZWFyQmx1clRpbWUiLCJ0aW1lb3V0Rm9jdXMiLCJ1cGRhdGVGb2N1c0NsYXNzTmFtZSIsImdldElucHV0RE9NTm9kZSIsImlzUmVhbE9wZW4iLCJnZXRSZWFsT3BlblN0YXRlIiwib3BlbklmSGFzQ2hpbGRyZW4iLCJoYW5kbGVCYWNrZmlsbCIsInJlbW92ZVNlbGVjdGVkIiwic2VsZWN0ZWRWYWx1ZSIsInNraXBUcmlnZ2VyIiwiZmlyZVNlYXJjaCIsImZpcmVTZWxlY3QiLCJtZW51SXRlbURvbU5vZGUiLCJvbkFycm93Q2xpY2siLCJvblBsYWNlaG9sZGVyQ2xpY2siLCJvbk91dGVyRm9jdXMiLCJtYXliZUZvY3VzIiwib25PdXRlckJsdXIiLCJmaXJzdE9wdGlvbiIsImZpbmRGaXJzdE1lbnVJdGVtIiwidG1wVmFsdWUiLCJnZXRWTEZvck9uQ2hhbmdlIiwib25DbGVhclNlbGVjdGlvbiIsIm9uQ2hvaWNlQW5pbWF0aW9uTGVhdmUiLCJnZXRPcHRpb25JbmZvQnlTaW5nbGVWYWx1ZSIsIm9wdGlvbnNJbmZvIiwiZGVmYXVsdExhYmVsIiwidmFsdWVMYWJlbCIsImRlZmF1bHRWYWx1ZUxhYmVsIiwiZ2V0T3B0aW9uQnlTaW5nbGVWYWx1ZSIsImdldE9wdGlvbnNCeVNpbmdsZVZhbHVlIiwiZ2V0VmFsdWVCeUxhYmVsIiwib2xkTGFibGUiLCJnZXRWTEJ5U2luZ2xlVmFsdWUiLCJnZXRMYWJlbEJ5U2luZ2xlVmFsdWUiLCJ2bHNTIiwidmxzIiwidmwiLCJnZXREcm9wZG93bkNvbnRhaW5lciIsImdldFBsYWNlaG9sZGVyRWxlbWVudCIsImRlZmF1bHRJbnB1dCIsImlucHV0Q2xzIiwic2F2ZUlucHV0UmVmIiwic2F2ZUlucHV0TWlycm9yUmVmIiwiZ2V0SW5wdXRNaXJyb3JET01Ob2RlIiwiZ2V0UG9wdXBNZW51Q29tcG9uZW50IiwiaGFzTmV3VmFsdWUiLCJzcGxpdEJ5U2VwYXJhdG9ycyIsIl9vcGVuIiwibWFya01vdXNlRG93biIsIm1hcmtNb3VzZUxlYXZlIiwiZGVmYXVsdEZpbHRlciIsImZpbHRlckZuIiwiY2xlYXJGb2N1c1RpbWUiLCJjbGVhckNvbWJvYm94VGltZSIsImlzQ2hpbGREaXNhYmxlZCIsInJlbmRlckZpbHRlck9wdGlvbnMiLCJjaGlsZHJlbktleXMiLCJyZW5kZXJGaWx0ZXJPcHRpb25zRnJvbUNoaWxkcmVuIiwibWVudUl0ZW0iLCJzZWwiLCJpbm5lckl0ZW1zIiwic3ViQ2hpbGQiLCJjaGlsZFZhbHVlU3ViIiwiX2lubmVySXRlbXMiLCJjaGlsZFZhbHVlIiwidmFsaWRhdGVPcHRpb25WYWx1ZSIsInJlbmRlclRvcENvbnRyb2xOb2RlIiwiaW5uZXJOb2RlIiwic2hvd1NlbGVjdGVkVmFsdWUiLCJfdGhpcyRnZXRPcHRpb25JbmZvQnkzIiwibWF4VGFnUGxhY2Vob2xkZXJFbCIsInNlbGVjdGVkVmFsdWVOb2RlcyIsImxpbWl0ZWRDb3VudFZhbHVlIiwiY2hvaWNlQ2xhc3NOYW1lIiwic2F2ZVRvcEN0cmxSZWYiLCJnZXRPcHRpb25zSW5mb0Zyb21Qcm9wcyIsImlzRGlzYWJsZWRFeGlzdCIsImdldFZhbHVlRnJvbVByb3BzIiwiZ2V0SW5wdXRWYWx1ZUZvckNvbWJvYm94Iiwic2tpcEJ1aWxkT3B0aW9uc0luZm8iLCJzYXZlU2VsZWN0VHJpZ2dlclJlZiIsInNhdmVSb290UmVmIiwic2F2ZVNlbGVjdGlvblJlZiIsIm1pcnJvck5vZGUiLCJfdGhpcyRwcm9wczQkc2hvd0Fycm8iLCJkZWZhdWx0SWNvbiIsIl9yb290Q2xzIiwiX3Byb3BzJHNob3dBcnJvdyIsImN0cmxOb2RlIiwicmVhbE9wZW4iLCJleHRyYVNlbGVjdGlvblByb3BzIiwicm9vdENscyIsIm9uTW91c2VPdXQiLCJyZW5kZXJDbGVhciIsInJlbmRlckFycm93IiwiZ2V0T3B0aW9uc0Zyb21DaGlsZHJlbiIsInVzZURlZmF1bHRWYWx1ZSIsImdldExhYmVsRnJvbU9wdGlvbiIsInByZVN0YXRlIiwib2xkT3B0aW9uc0luZm8iLCJ1c2VDbGFzc05hbWUiLCJzZXRUcmFuc2Zvcm1PcmlnaW4iLCJEaWFsb2ciLCJpblRyYW5zaXRpb24iLCJvbkFuaW1hdGVMZWF2ZSIsInN3aXRjaFNjcm9sbGluZ0VmZmVjdCIsIm9uRGlhbG9nTW91c2VEb3duIiwiZGlhbG9nTW91c2VEb3duIiwib25NYXNrTW91c2VVcCIsIm9uTWFza0NsaWNrIiwib3BlblRpbWUiLCJzZW50aW5lbFN0YXJ0Iiwic2VudGluZWxFbmQiLCJnZXREaWFsb2dFbGVtZW50IiwiZGVzdCIsImhlYWRlciIsInRpdGxlSWQiLCJjbG9zZXIiLCJzZW50aW5lbFN0eWxlIiwiZGlhbG9nRWxlbWVudCIsImJvZHlQcm9wcyIsImdldFdyYXBTdHlsZSIsIndyYXBTdHlsZSIsImdldE1hc2tTdHlsZSIsIm1hc2tQcm9wcyIsImZvY3VzVHJpZ2dlckFmdGVyQ2xvc2UiLCJ0cnlGb2N1cyIsImRpYWxvZ05vZGUiLCJkaWFsb2ciLCJlbE9mZnNldCIsImxhc3RPdXRTaWRlRm9jdXNOb2RlIiwiZ2V0T3BlbkNvdW50Iiwid3JhcFByb3BzIiwiX29wdGlvbnMkZWxlbWVudCIsIm9sZFN0eWxlIiwic3R5bGVLZXlzIiwiY2FjaGVTdHlsZSIsInNjcm9sbGluZ0VmZmVjdENsYXNzTmFtZVJlZyIsImJvZHlDbGFzc05hbWUiLCJzY3JvbGxCYXJTaXplIiwiYWRkQ2xhc3NOYW1lIiwib3BlbkNvdW50Iiwid2luZG93SXNVbmRlZmluZWQiLCJjYWNoZU92ZXJmbG93IiwiUG9ydGFsV3JhcHBlciIsImdldFBhcmVudCIsInNldFdyYXBwZXJDbGFzc05hbWUiLCJzYXZlUG9ydGFsIiwicmVtb3ZlQ3VycmVudENvbnRhaW5lciIsIl92aXNpYmxlIiwiX3NlbGYiLCJwcmV2VmlzaWJsZSIsInByZXZHZXRDb250YWluZXIiLCJpdGVtUmVuZGVyIiwiT3B0aW9ucyIsImdvSW5wdXRUZXh0IiwiYnVpbGRPcHRpb25UZXh0IiwiY2hhbmdlU2l6ZSIsImhhbmRsZUJsdXIiLCJnb0J1dHRvbiIsInF1aWNrR28iLCJnZXRWYWxpZFZhbHVlIiwiZ28iLCJjaGFuZ2VTZWxlY3QiLCJnb0lucHV0IiwiZ290b0J1dHRvbiIsImdldFBhZ2VTaXplT3B0aW9ucyIsImNhbGN1bGF0ZVBhZ2UiLCJnZXRKdW1wUHJldlBhZ2UiLCJzaG93TGVzc0l0ZW1zIiwiZ2V0SnVtcE5leHRQYWdlIiwiZ2V0SXRlbUljb24iLCJzYXZlUGFnaW5hdGlvbk5vZGUiLCJwYWdpbmF0aW9uTm9kZSIsInNob3VsZERpc3BsYXlRdWlja0p1bXBlciIsInNob3dRdWlja0p1bXBlciIsImhhbmRsZUtleVVwIiwiY3VycmVudElucHV0VmFsdWUiLCJjaGFuZ2VQYWdlU2l6ZSIsIm5ld0N1cnJlbnQiLCJvblNob3dTaXplQ2hhbmdlIiwiY3VycmVudFBhZ2UiLCJqdW1wUHJldiIsImp1bXBOZXh0IiwicnVuSWZFbnRlciIsInJlc3RQYXJhbXMiLCJydW5JZkVudGVyUHJldiIsInJ1bklmRW50ZXJOZXh0IiwicnVuSWZFbnRlckp1bXBQcmV2IiwicnVuSWZFbnRlckp1bXBOZXh0IiwiaGFuZGxlR29UTyIsImhhc09uQ2hhbmdlIiwiX3BhZ2VTaXplIiwibGFzdEN1cnJlbnROb2RlIiwiYWxsUGFnZXMiLCJ0b3RhbEJvdW5kYXJ5U2hvd1NpemVDaGFuZ2VyIiwicHJldlBhZ2UiLCJwcmV2QnV0dG9uIiwibmV4dFBhZ2UiLCJuZXh0QnV0dG9uIiwiaGlkZU9uU2luZ2xlUGFnZSIsInNob3dUb3RhbCIsInNob3dQcmV2TmV4dEp1bXBlcnMiLCJwYWdlckxpc3QiLCJmaXJzdFBhZ2VyIiwibGFzdFBhZ2VyIiwicGFnZUJ1ZmZlclNpemUiLCJyZW5kZXJQcmV2IiwicmVuZGVyTmV4dCIsInBhZ2VyUHJvcHMiLCJwcmV2SXRlbVRpdGxlIiwibmV4dEl0ZW1UaXRsZSIsIl9hY3RpdmUiLCJ0b3RhbFRleHQiLCJwcmV2RGlzYWJsZWQiLCJuZXh0RGlzYWJsZWQiLCJnZXRTaG93U2l6ZUNoYW5nZXIiLCJpc1BlcmNlbnQiLCJkYXJrQ29sb3JNYXAiLCJfaHN2IiwiX2NvbG9yU3RyaW5nIiwiYmFja2dyb3VuZENvbG9yIiwicHJlc2V0RGFya1BhbGV0dGVzIiwic2F2ZVRyaWdnZXIiLCJvdmVybGF5U3R5bGUiLCJhZnRlclZpc2libGVDaGFuZ2UiLCJkZXN0cm95VG9vbHRpcE9uSGlkZSIsIl9wcm9wcyR0cmlnZ2VyIiwiX3Byb3BzJG1vdXNlRW50ZXJEZWxhIiwiX3Byb3BzJG1vdXNlTGVhdmVEZWxhIiwiX3Byb3BzJGFsaWduIiwiX3Byb3BzJGRlc3Ryb3lUb29sdGlwIiwiZGVzdHJveVRvb2x0aXAiLCJrZWVwUGFyZW50IiwiX3Byb3BzJGFycm93Q29udGVudCIsInRvcENlbnRlciIsImJvdHRvbUNlbnRlciIsIl9wcm9wcyRhcnJvdyIsIl9wcm9wcyRwbGFjZW1lbnRzIiwic2V0VHJpZ2dlclZpc2libGUiLCJjaGlsZENsYXNzTmFtZSIsIm1pbk92ZXJsYXlXaWR0aE1hdGNoVHJpZ2dlciIsImdldE92ZXJsYXlFbGVtZW50Iiwib25PdmVybGF5Q2xpY2siLCJnZXRNZW51RWxlbWVudCIsIm92ZXJsYXlFbGVtZW50IiwiZXh0cmFPdmVybGF5UHJvcHMiLCJ0cmlnZ2VySGlkZUFjdGlvbiJdLCJtYXBwaW5ncyI6ImFBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVBR0pGLEVBQU9ELFFBS2ZGLEVBQW9CUSxFQUFJRixFQUd4Qk4sRUFBb0JTLEVBQUlWLEVBR3hCQyxFQUFvQlUsRUFBSSxTQUFTUixFQUFTUyxFQUFNQyxHQUMzQ1osRUFBb0JhLEVBQUVYLEVBQVNTLElBQ2xDRyxPQUFPQyxlQUFlYixFQUFTUyxFQUFNLENBQUVLLFlBQVksRUFBTUMsSUFBS0wsS0FLaEVaLEVBQW9Ca0IsRUFBSSxTQUFTaEIsR0FDWCxvQkFBWGlCLFFBQTBCQSxPQUFPQyxhQUMxQ04sT0FBT0MsZUFBZWIsRUFBU2lCLE9BQU9D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LElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsYUFBYyxJQUNkLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxRQUFTLElBQ1QsV0FBWSxJQUNaLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsVUFBVyxJQUNYLGFBQWMsSUFDZCxVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxhQUFjLElBQ2QsZ0JBQWlCLElBQ2pCLGFBQWMsSUFDZCxnQkFBaUIsSUFDakIsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLFVBQVcsSUFDWCxhQUFjLElBQ2QsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLFdBQVksSUFDWixjQUFlLElBQ2YsVUFBVyxJQUNYLGFBQWMsSUFDZCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsYUFBYyxJQUNkLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFVBQVcsSUFDWCxPQUFRLElBQ1IsVUFBVyxJQUNYLE9BQVEsSUFDUixVQUFXLElBQ1gsT0FBUSxJQUNSLFlBQWEsSUFD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Z0JJLEVBQ2hCZ0MsV0FBWXpNLEVBQ1orSyxvQkFBcUJsc0IsRUFDckJpc0IsZUFBZ0I5c0IsRUFDaEJ5cEIsYUFBY3hpQixFQUNkNGQsU0FqRElzNlEsRUFBOEIzbFQsRUFBTTJsVCw0QkFDcEM1eVEsRUFBYS95QyxFQUFNK3lDLFlBRW5CLGdDQUFpQy95QyxFQUM1QjJsVCxHQUdENXlRLEdBMENvQyxXQUFhLElBQ3pEUyxNQTFEdUIsbUJBRlR4ekMsRUFBTTA3RyxRQUdYb3FNLEVBR0ZBLElBdURQendRLHFCQXZGb0IsU0FBeUJ0c0IsR0FDN0MsSUFBSXEyRixFQUFrQnAvRyxFQUFNby9HLGdCQUM1QnFtTSxFQUFrQjE4UixHQUVhLG1CQUFwQnEyRixHQUNUQSxFQUFnQnIyRixJQW1GbEI1UixrQkFBbUJBLEtBL0JmalUsRUFBV2xELEVBQU1rRCxTQUNqQmlqRCxFQUFnQmpqRCxFQUFTbEQsTUFBUWtELEVBQVNsRCxNQUFRLEdBQ2xEMGxULEVBQWlCLElBQVd2L1AsRUFBY3Q4QyxlQVZ4QjloQyxLQUZsQjIySSxFQUFnQjErRyxFQUFNMCtHLGVBR2pCQSxFQUdGLEdBQUducEksT0FBT3V1QixFQUFXLFVBT3JCZzVPLEdBQWtCNTVPLEVBQVcsZUFBbUJBLEVBQVUsQ0FDL0QyRyxVQUFXNjdTLElBQ1J4aVQsT0NqSU0sYSw2QkNEZixvQkF1QklneUQsRUFFSixhQUFRLFNBQWN6dkYsR0FDcEIsT0FBTyxZQUFPQSxFQUFHbEMsUUFBUSxTQUFVc0IsRUFBR0MsR0FDcEMsSUFBSW1GLEVBQU9oRyxNQUFNM0IsVUFBVTRILE1BQU1ySixLQUFLeUMsVUFBVyxHQUdqRCxPQUZBMkcsRUFBSyxHQUFLbkYsRUFDVm1GLEVBQUssR0FBS3BGLEVBQ0hZLEVBQUd0QyxNQUFNa0YsS0FBTTRCLFNBSVgiLCJmaWxlIjoianMvYWRtaW4tc3RyaW5ncy9hcHAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNTE3KTtcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUmVhY3RJcyA9IHJlcXVpcmUoJ3JlYWN0LWlzJyk7XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUeXBlQ2hlY2tlcnMnKShSZWFjdElzLmlzRWxlbWVudCwgdGhyb3dPbkRpcmVjdEFjY2Vzcyk7XG59IGVsc2Uge1xuICAvLyBCeSBleHBsaWNpdGx5IHVzaW5nIGBwcm9wLXR5cGVzYCB5b3UgYXJlIG9wdGluZyBpbnRvIG5ldyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9mYWN0b3J5V2l0aFRocm93aW5nU2hpbXMnKSgpO1xufVxuIiwiaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gXCIuL2RlZmluZVByb3BlcnR5LmpzXCI7XG5cbmZ1bmN0aW9uIG93bktleXMob2JqZWN0LCBlbnVtZXJhYmxlT25seSkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTtcblxuICAgIGlmIChlbnVtZXJhYmxlT25seSkge1xuICAgICAgc3ltYm9scyA9IHN5bWJvbHMuZmlsdGVyKGZ1bmN0aW9uIChzeW0pIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBzeW0pLmVudW1lcmFibGU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2guYXBwbHkoa2V5cywgc3ltYm9scyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX29iamVjdFNwcmVhZDIodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307XG5cbiAgICBpZiAoaSAlIDIpIHtcbiAgICAgIG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn0iLCIvKiFcbiAgQ29weXJpZ2h0IChjKSAyMDE3IEplZCBXYXRzb24uXG4gIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZSAoTUlUKSwgc2VlXG4gIGh0dHA6Ly9qZWR3YXRzb24uZ2l0aHViLmlvL2NsYXNzbmFtZXNcbiovXG4vKiBnbG9iYWwgZGVmaW5lICovXG5cbihmdW5jdGlvbiAoKSB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHR2YXIgaGFzT3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cblx0ZnVuY3Rpb24gY2xhc3NOYW1lcyAoKSB7XG5cdFx0dmFyIGNsYXNzZXMgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgYXJnID0gYXJndW1lbnRzW2ldO1xuXHRcdFx0aWYgKCFhcmcpIGNvbnRpbnVlO1xuXG5cdFx0XHR2YXIgYXJnVHlwZSA9IHR5cGVvZiBhcmc7XG5cblx0XHRcdGlmIChhcmdUeXBlID09PSAnc3RyaW5nJyB8fCBhcmdUeXBlID09PSAnbnVtYmVyJykge1xuXHRcdFx0XHRjbGFzc2VzLnB1c2goYXJnKTtcblx0XHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpICYmIGFyZy5sZW5ndGgpIHtcblx0XHRcdFx0dmFyIGlubmVyID0gY2xhc3NOYW1lcy5hcHBseShudWxsLCBhcmcpO1xuXHRcdFx0XHRpZiAoaW5uZXIpIHtcblx0XHRcdFx0XHRjbGFzc2VzLnB1c2goaW5uZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKGFyZ1R5cGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGZvciAodmFyIGtleSBpbiBhcmcpIHtcblx0XHRcdFx0XHRpZiAoaGFzT3duLmNhbGwoYXJnLCBrZXkpICYmIGFyZ1trZXldKSB7XG5cdFx0XHRcdFx0XHRjbGFzc2VzLnB1c2goa2V5KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG5cdH1cblxuXHRpZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRjbGFzc05hbWVzLmRlZmF1bHQgPSBjbGFzc05hbWVzO1xuXHRcdG1vZHVsZS5leHBvcnRzID0gY2xhc3NOYW1lcztcblx0fSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkZWZpbmUuYW1kID09PSAnb2JqZWN0JyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0Ly8gcmVnaXN0ZXIgYXMgJ2NsYXNzbmFtZXMnLCBjb25zaXN0ZW50IHdpdGggbnBtIHBhY2thZ2UgbmFtZVxuXHRcdGRlZmluZSgnY2xhc3NuYW1lcycsIFtdLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRyZXR1cm4gY2xhc3NOYW1lcztcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuY2xhc3NOYW1lcyA9IGNsYXNzTmFtZXM7XG5cdH1cbn0oKSk7XG4iLCIvLyEgbW9tZW50LmpzXG4vLyEgdmVyc2lvbiA6IDIuMjcuMFxuLy8hIGF1dGhvcnMgOiBUaW0gV29vZCwgSXNrcmVuIENoZXJuZXYsIE1vbWVudC5qcyBjb250cmlidXRvcnNcbi8vISBsaWNlbnNlIDogTUlUXG4vLyEgbW9tZW50anMuY29tXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcbiAgICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAgIGdsb2JhbC5tb21lbnQgPSBmYWN0b3J5KClcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIGhvb2tDYWxsYmFjaztcblxuICAgIGZ1bmN0aW9uIGhvb2tzKCkge1xuICAgICAgICByZXR1cm4gaG9va0NhbGxiYWNrLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBpcyBkb25lIHRvIHJlZ2lzdGVyIHRoZSBtZXRob2QgY2FsbGVkIHdpdGggbW9tZW50KClcbiAgICAvLyB3aXRob3V0IGNyZWF0aW5nIGNpcmN1bGFyIGRlcGVuZGVuY2llcy5cbiAgICBmdW5jdGlvbiBzZXRIb29rQ2FsbGJhY2soY2FsbGJhY2spIHtcbiAgICAgICAgaG9va0NhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBcnJheShpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaW5wdXQgaW5zdGFuY2VvZiBBcnJheSB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2JqZWN0KGlucHV0KSB7XG4gICAgICAgIC8vIElFOCB3aWxsIHRyZWF0IHVuZGVmaW5lZCBhbmQgbnVsbCBhcyBvYmplY3QgaWYgaXQgd2Fzbid0IGZvclxuICAgICAgICAvLyBpbnB1dCAhPSBudWxsXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbnB1dCAhPSBudWxsICYmXG4gICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBPYmplY3RdJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhc093blByb3AoYSwgYikge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsIGIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2JqZWN0RW1wdHkob2JqKSB7XG4gICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikubGVuZ3RoID09PSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGs7XG4gICAgICAgICAgICBmb3IgKGsgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc093blByb3Aob2JqLCBrKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT09IHZvaWQgMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc051bWJlcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgTnVtYmVyXSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RhdGUoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGlucHV0IGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFwKGFyciwgZm4pIHtcbiAgICAgICAgdmFyIHJlcyA9IFtdLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgcmVzLnB1c2goZm4oYXJyW2ldLCBpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHRlbmQoYSwgYikge1xuICAgICAgICBmb3IgKHZhciBpIGluIGIpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGIsIGkpKSB7XG4gICAgICAgICAgICAgICAgYVtpXSA9IGJbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndG9TdHJpbmcnKSkge1xuICAgICAgICAgICAgYS50b1N0cmluZyA9IGIudG9TdHJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndmFsdWVPZicpKSB7XG4gICAgICAgICAgICBhLnZhbHVlT2YgPSBiLnZhbHVlT2Y7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIHRydWUpLnV0YygpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmF1bHRQYXJzaW5nRmxhZ3MoKSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gZGVlcCBjbG9uZSB0aGlzIG9iamVjdC5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVtcHR5OiBmYWxzZSxcbiAgICAgICAgICAgIHVudXNlZFRva2VuczogW10sXG4gICAgICAgICAgICB1bnVzZWRJbnB1dDogW10sXG4gICAgICAgICAgICBvdmVyZmxvdzogLTIsXG4gICAgICAgICAgICBjaGFyc0xlZnRPdmVyOiAwLFxuICAgICAgICAgICAgbnVsbElucHV0OiBmYWxzZSxcbiAgICAgICAgICAgIGludmFsaWRFcmE6IG51bGwsXG4gICAgICAgICAgICBpbnZhbGlkTW9udGg6IG51bGwsXG4gICAgICAgICAgICBpbnZhbGlkRm9ybWF0OiBmYWxzZSxcbiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZDogZmFsc2UsXG4gICAgICAgICAgICBpc286IGZhbHNlLFxuICAgICAgICAgICAgcGFyc2VkRGF0ZVBhcnRzOiBbXSxcbiAgICAgICAgICAgIGVyYTogbnVsbCxcbiAgICAgICAgICAgIG1lcmlkaWVtOiBudWxsLFxuICAgICAgICAgICAgcmZjMjgyMjogZmFsc2UsXG4gICAgICAgICAgICB3ZWVrZGF5TWlzbWF0Y2g6IGZhbHNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcnNpbmdGbGFncyhtKSB7XG4gICAgICAgIGlmIChtLl9wZiA9PSBudWxsKSB7XG4gICAgICAgICAgICBtLl9wZiA9IGRlZmF1bHRQYXJzaW5nRmxhZ3MoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbS5fcGY7XG4gICAgfVxuXG4gICAgdmFyIHNvbWU7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5zb21lKSB7XG4gICAgICAgIHNvbWUgPSBBcnJheS5wcm90b3R5cGUuc29tZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzb21lID0gZnVuY3Rpb24gKGZ1bikge1xuICAgICAgICAgICAgdmFyIHQgPSBPYmplY3QodGhpcyksXG4gICAgICAgICAgICAgICAgbGVuID0gdC5sZW5ndGggPj4+IDAsXG4gICAgICAgICAgICAgICAgaTtcblxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgaW4gdCAmJiBmdW4uY2FsbCh0aGlzLCB0W2ldLCBpLCB0KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkKG0pIHtcbiAgICAgICAgaWYgKG0uX2lzVmFsaWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGZsYWdzID0gZ2V0UGFyc2luZ0ZsYWdzKG0pLFxuICAgICAgICAgICAgICAgIHBhcnNlZFBhcnRzID0gc29tZS5jYWxsKGZsYWdzLnBhcnNlZERhdGVQYXJ0cywgZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBpc05vd1ZhbGlkID1cbiAgICAgICAgICAgICAgICAgICAgIWlzTmFOKG0uX2QuZ2V0VGltZSgpKSAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5vdmVyZmxvdyA8IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmVtcHR5ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkRXJhICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkTW9udGggJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRXZWVrZGF5ICYmXG4gICAgICAgICAgICAgICAgICAgICFmbGFncy53ZWVrZGF5TWlzbWF0Y2ggJiZcbiAgICAgICAgICAgICAgICAgICAgIWZsYWdzLm51bGxJbnB1dCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZEZvcm1hdCAmJlxuICAgICAgICAgICAgICAgICAgICAhZmxhZ3MudXNlckludmFsaWRhdGVkICYmXG4gICAgICAgICAgICAgICAgICAgICghZmxhZ3MubWVyaWRpZW0gfHwgKGZsYWdzLm1lcmlkaWVtICYmIHBhcnNlZFBhcnRzKSk7XG5cbiAgICAgICAgICAgIGlmIChtLl9zdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBpc05vd1ZhbGlkID1cbiAgICAgICAgICAgICAgICAgICAgaXNOb3dWYWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5jaGFyc0xlZnRPdmVyID09PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLnVudXNlZFRva2Vucy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MuYmlnSG91ciA9PT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmlzRnJvemVuID09IG51bGwgfHwgIU9iamVjdC5pc0Zyb3plbihtKSkge1xuICAgICAgICAgICAgICAgIG0uX2lzVmFsaWQgPSBpc05vd1ZhbGlkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbS5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkKGZsYWdzKSB7XG4gICAgICAgIHZhciBtID0gY3JlYXRlVVRDKE5hTik7XG4gICAgICAgIGlmIChmbGFncyAhPSBudWxsKSB7XG4gICAgICAgICAgICBleHRlbmQoZ2V0UGFyc2luZ0ZsYWdzKG0pLCBmbGFncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MobSkudXNlckludmFsaWRhdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIC8vIFBsdWdpbnMgdGhhdCBhZGQgcHJvcGVydGllcyBzaG91bGQgYWxzbyBhZGQgdGhlIGtleSBoZXJlIChudWxsIHZhbHVlKSxcbiAgICAvLyBzbyB3ZSBjYW4gcHJvcGVybHkgY2xvbmUgb3Vyc2VsdmVzLlxuICAgIHZhciBtb21lbnRQcm9wZXJ0aWVzID0gKGhvb2tzLm1vbWVudFByb3BlcnRpZXMgPSBbXSksXG4gICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9uIGNvcHlDb25maWcodG8sIGZyb20pIHtcbiAgICAgICAgdmFyIGksIHByb3AsIHZhbDtcblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgICAgICB0by5fcGYgPSBnZXRQYXJzaW5nRmxhZ3MoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgICAgICB0by5fbG9jYWxlID0gZnJvbS5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vbWVudFByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1vbWVudFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgICAgICB2YWwgPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG87XG4gICAgfVxuXG4gICAgLy8gTW9tZW50IHByb3RvdHlwZSBvYmplY3RcbiAgICBmdW5jdGlvbiBNb21lbnQoY29uZmlnKSB7XG4gICAgICAgIGNvcHlDb25maWcodGhpcywgY29uZmlnKTtcbiAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKGNvbmZpZy5fZCAhPSBudWxsID8gY29uZmlnLl9kLmdldFRpbWUoKSA6IE5hTik7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICB9XG4gICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUgbG9vcCBpbiBjYXNlIHVwZGF0ZU9mZnNldCBjcmVhdGVzIG5ldyBtb21lbnRcbiAgICAgICAgLy8gb2JqZWN0cy5cbiAgICAgICAgaWYgKHVwZGF0ZUluUHJvZ3Jlc3MgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTW9tZW50KG9iaikge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgb2JqIGluc3RhbmNlb2YgTW9tZW50IHx8IChvYmogIT0gbnVsbCAmJiBvYmouX2lzQU1vbWVudE9iamVjdCAhPSBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdhcm4obXNnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9PT0gZmFsc2UgJiZcbiAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZShtc2csIGZuKSB7XG4gICAgICAgIHZhciBmaXJzdFRpbWUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBleHRlbmQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsIG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXSxcbiAgICAgICAgICAgICAgICAgICAgYXJnLFxuICAgICAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgICAgICBrZXk7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBhcmcgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0gJ1xcblsnICsgaSArICddICc7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSBpbiBhcmd1bWVudHNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChhcmd1bWVudHNbMF0sIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9IGtleSArICc6ICcgKyBhcmd1bWVudHNbMF1ba2V5XSArICcsICc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDAsIC0yKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGNvbW1hIGFuZCBzcGFjZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgICAgICAgICBtc2cgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1xcbkFyZ3VtZW50czogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKS5qb2luKCcnKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZmlyc3RUaW1lID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgfSwgZm4pO1xuICAgIH1cblxuICAgIHZhciBkZXByZWNhdGlvbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCBtc2cpIHtcbiAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIobmFtZSwgbXNnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRlcHJlY2F0aW9uc1tuYW1lXSkge1xuICAgICAgICAgICAgd2Fybihtc2cpO1xuICAgICAgICAgICAgZGVwcmVjYXRpb25zW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhvb2tzLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncyA9IGZhbHNlO1xuICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciA9IG51bGw7XG5cbiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKGlucHV0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodHlwZW9mIEZ1bmN0aW9uICE9PSAndW5kZWZpbmVkJyAmJiBpbnB1dCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB8fFxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldChjb25maWcpIHtcbiAgICAgICAgdmFyIHByb3AsIGk7XG4gICAgICAgIGZvciAoaSBpbiBjb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGNvbmZpZywgaSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbaV0gPSBwcm9wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbJ18nICsgaV0gPSBwcm9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIC8vIExlbmllbnQgb3JkaW5hbCBwYXJzaW5nIGFjY2VwdHMganVzdCBhIG51bWJlciBpbiBhZGRpdGlvbiB0b1xuICAgICAgICAvLyBudW1iZXIgKyAocG9zc2libHkpIHN0dWZmIGNvbWluZyBmcm9tIF9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLlxuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICh0aGlzLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlLnNvdXJjZSB8fCB0aGlzLl9vcmRpbmFsUGFyc2Uuc291cmNlKSArXG4gICAgICAgICAgICAgICAgJ3wnICtcbiAgICAgICAgICAgICAgICAvXFxkezEsMn0vLnNvdXJjZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNoaWxkQ29uZmlnKSB7XG4gICAgICAgIHZhciByZXMgPSBleHRlbmQoe30sIHBhcmVudENvbmZpZyksXG4gICAgICAgICAgICBwcm9wO1xuICAgICAgICBmb3IgKHByb3AgaW4gY2hpbGRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGNoaWxkQ29uZmlnLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pICYmIGlzT2JqZWN0KGNoaWxkQ29uZmlnW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgcGFyZW50Q29uZmlnW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgY2hpbGRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGRDb25maWdbcHJvcF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSBjaGlsZENvbmZpZ1twcm9wXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcmVzW3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHByb3AgaW4gcGFyZW50Q29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaGFzT3duUHJvcChwYXJlbnRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgIWhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgaXNPYmplY3QocGFyZW50Q29uZmlnW3Byb3BdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGNoYW5nZXMgdG8gcHJvcGVydGllcyBkb24ndCBtb2RpZnkgcGFyZW50IGNvbmZpZ1xuICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGV4dGVuZCh7fSwgcmVzW3Byb3BdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIExvY2FsZShjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNldChjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXM7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMpIHtcbiAgICAgICAga2V5cyA9IE9iamVjdC5rZXlzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgICAgICByZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRDYWxlbmRhciA9IHtcbiAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY2FsZW5kYXIoa2V5LCBtb20sIG5vdykge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJba2V5XSB8fCB0aGlzLl9jYWxlbmRhclsnc2FtZUVsc2UnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KSA/IG91dHB1dC5jYWxsKG1vbSwgbm93KSA6IG91dHB1dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB6ZXJvRmlsbChudW1iZXIsIHRhcmdldExlbmd0aCwgZm9yY2VTaWduKSB7XG4gICAgICAgIHZhciBhYnNOdW1iZXIgPSAnJyArIE1hdGguYWJzKG51bWJlciksXG4gICAgICAgICAgICB6ZXJvc1RvRmlsbCA9IHRhcmdldExlbmd0aCAtIGFic051bWJlci5sZW5ndGgsXG4gICAgICAgICAgICBzaWduID0gbnVtYmVyID49IDA7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoc2lnbiA/IChmb3JjZVNpZ24gPyAnKycgOiAnJykgOiAnLScpICtcbiAgICAgICAgICAgIE1hdGgucG93KDEwLCBNYXRoLm1heCgwLCB6ZXJvc1RvRmlsbCkpLnRvU3RyaW5nKCkuc3Vic3RyKDEpICtcbiAgICAgICAgICAgIGFic051bWJlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIHZhciBmb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KFtIaF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xOezEsNX18WVlZWVlZfFlZWVlZfFlZWVl8WVl8eXsyLDR9fHlvP3xnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhIP3xraz98bW0/fHNzP3xTezEsOX18eHxYfHp6P3xaWj98LikvZyxcbiAgICAgICAgbG9jYWxGb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KExUU3xMVHxMTD9MP0w/fGx7MSw0fSkvZyxcbiAgICAgICAgZm9ybWF0RnVuY3Rpb25zID0ge30sXG4gICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zID0ge307XG5cbiAgICAvLyB0b2tlbjogICAgJ00nXG4gICAgLy8gcGFkZGVkOiAgIFsnTU0nLCAyXVxuICAgIC8vIG9yZGluYWw6ICAnTW8nXG4gICAgLy8gY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHsgdGhpcy5tb250aCgpICsgMSB9XG4gICAgZnVuY3Rpb24gYWRkRm9ybWF0VG9rZW4odG9rZW4sIHBhZGRlZCwgb3JkaW5hbCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBjYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbY2FsbGJhY2tdKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dID0gZnVuYztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFkZGVkKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1twYWRkZWRbMF1dID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB6ZXJvRmlsbChmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksIHBhZGRlZFsxXSwgcGFkZGVkWzJdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9yZGluYWwpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW29yZGluYWxdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5vcmRpbmFsKFxuICAgICAgICAgICAgICAgICAgICBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksXG4gICAgICAgICAgICAgICAgICAgIHRva2VuXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVGb3JtYXR0aW5nVG9rZW5zKGlucHV0KSB7XG4gICAgICAgIGlmIChpbnB1dC5tYXRjaCgvXFxbW1xcc1xcU10vKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL15cXFt8XFxdJC9nLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL1xcXFwvZywgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VGb3JtYXRGdW5jdGlvbihmb3JtYXQpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gZm9ybWF0Lm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIGxlbmd0aDtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXSkge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoYXJyYXlbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChtb20pIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJyxcbiAgICAgICAgICAgICAgICBpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9IGlzRnVuY3Rpb24oYXJyYXlbaV0pXG4gICAgICAgICAgICAgICAgICAgID8gYXJyYXlbaV0uY2FsbChtb20sIGZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgOiBhcnJheVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZm9ybWF0IGRhdGUgdXNpbmcgbmF0aXZlIGRhdGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gZm9ybWF0TW9tZW50KG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbS5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm1hdCA9IGV4cGFuZEZvcm1hdChmb3JtYXQsIG0ubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gPVxuICAgICAgICAgICAgZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gfHwgbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdKG0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4cGFuZEZvcm1hdChmb3JtYXQsIGxvY2FsZSkge1xuICAgICAgICB2YXIgaSA9IDU7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoaSA+PSAwICYmIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2VucyxcbiAgICAgICAgICAgICAgICByZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGkgLT0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb25nRGF0ZUZvcm1hdCA9IHtcbiAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICBMOiAnTU0vREQvWVlZWScsXG4gICAgICAgIExMOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgTExMOiAnTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbG9uZ0RhdGVGb3JtYXQoa2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldLFxuICAgICAgICAgICAgZm9ybWF0VXBwZXIgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV07XG5cbiAgICAgICAgaWYgKGZvcm1hdCB8fCAhZm9ybWF0VXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gZm9ybWF0VXBwZXJcbiAgICAgICAgICAgIC5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKVxuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAodG9rKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB0b2sgPT09ICdNTU1NJyB8fFxuICAgICAgICAgICAgICAgICAgICB0b2sgPT09ICdNTScgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9rID09PSAnREQnIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvayA9PT0gJ2RkZGQnXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2suc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0b2s7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oJycpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0SW52YWxpZERhdGUgPSAnSW52YWxpZCBkYXRlJztcblxuICAgIGZ1bmN0aW9uIGludmFsaWREYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRPcmRpbmFsID0gJyVkJyxcbiAgICAgICAgZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UgPSAvXFxkezEsMn0vO1xuXG4gICAgZnVuY3Rpb24gb3JkaW5hbChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yZGluYWwucmVwbGFjZSgnJWQnLCBudW1iZXIpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0UmVsYXRpdmVUaW1lID0ge1xuICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgIHc6ICdhIHdlZWsnLFxuICAgICAgICB3dzogJyVkIHdlZWtzJyxcbiAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW3N0cmluZ107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKG91dHB1dClcbiAgICAgICAgICAgID8gb3V0cHV0KG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSlcbiAgICAgICAgICAgIDogb3V0cHV0LnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFzdEZ1dHVyZShkaWZmLCBvdXRwdXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX3JlbGF0aXZlVGltZVtkaWZmID4gMCA/ICdmdXR1cmUnIDogJ3Bhc3QnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oZm9ybWF0KSA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFsaWFzZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFVuaXRBbGlhcyh1bml0LCBzaG9ydGhhbmQpIHtcbiAgICAgICAgdmFyIGxvd2VyQ2FzZSA9IHVuaXQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgYWxpYXNlc1tsb3dlckNhc2VdID0gYWxpYXNlc1tsb3dlckNhc2UgKyAncyddID0gYWxpYXNlc1tzaG9ydGhhbmRdID0gdW5pdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVVbml0cyh1bml0cykge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHVuaXRzID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBhbGlhc2VzW3VuaXRzXSB8fCBhbGlhc2VzW3VuaXRzLnRvTG93ZXJDYXNlKCldXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVPYmplY3RVbml0cyhpbnB1dE9iamVjdCkge1xuICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0ge30sXG4gICAgICAgICAgICBub3JtYWxpemVkUHJvcCxcbiAgICAgICAgICAgIHByb3A7XG5cbiAgICAgICAgZm9yIChwcm9wIGluIGlucHV0T2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChpbnB1dE9iamVjdCwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkUHJvcCA9IG5vcm1hbGl6ZVVuaXRzKHByb3ApO1xuICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkUHJvcCkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkSW5wdXRbbm9ybWFsaXplZFByb3BdID0gaW5wdXRPYmplY3RbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRJbnB1dDtcbiAgICB9XG5cbiAgICB2YXIgcHJpb3JpdGllcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkVW5pdFByaW9yaXR5KHVuaXQsIHByaW9yaXR5KSB7XG4gICAgICAgIHByaW9yaXRpZXNbdW5pdF0gPSBwcmlvcml0eTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzT2JqKSB7XG4gICAgICAgIHZhciB1bml0cyA9IFtdLFxuICAgICAgICAgICAgdTtcbiAgICAgICAgZm9yICh1IGluIHVuaXRzT2JqKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcCh1bml0c09iaiwgdSkpIHtcbiAgICAgICAgICAgICAgICB1bml0cy5wdXNoKHsgdW5pdDogdSwgcHJpb3JpdHk6IHByaW9yaXRpZXNbdV0gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVuaXRzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzRmxvb3IobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICAvLyAtMCAtPiAwXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlcikgfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0ludChhcmd1bWVudEZvckNvZXJjaW9uKSB7XG4gICAgICAgIHZhciBjb2VyY2VkTnVtYmVyID0gK2FyZ3VtZW50Rm9yQ29lcmNpb24sXG4gICAgICAgICAgICB2YWx1ZSA9IDA7XG5cbiAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgIT09IDAgJiYgaXNGaW5pdGUoY29lcmNlZE51bWJlcikpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYWJzRmxvb3IoY29lcmNlZE51bWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUdldFNldCh1bml0LCBrZWVwVGltZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldCQxKHRoaXMsIHVuaXQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywga2VlcFRpbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsIHVuaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldChtb20sIHVuaXQpIHtcbiAgICAgICAgcmV0dXJuIG1vbS5pc1ZhbGlkKClcbiAgICAgICAgICAgID8gbW9tLl9kWydnZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKClcbiAgICAgICAgICAgIDogTmFOO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldCQxKG1vbSwgdW5pdCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKG1vbS5pc1ZhbGlkKCkgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHVuaXQgPT09ICdGdWxsWWVhcicgJiZcbiAgICAgICAgICAgICAgICBpc0xlYXBZZWFyKG1vbS55ZWFyKCkpICYmXG4gICAgICAgICAgICAgICAgbW9tLm1vbnRoKCkgPT09IDEgJiZcbiAgICAgICAgICAgICAgICBtb20uZGF0ZSgpID09PSAyOVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0b0ludCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbW9tLm1vbnRoKCksXG4gICAgICAgICAgICAgICAgICAgIGRheXNJbk1vbnRoKHZhbHVlLCBtb20ubW9udGgoKSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc3RyaW5nR2V0KHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzW3VuaXRzXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3VuaXRzXSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0cmluZ1NldCh1bml0cywgdmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1bml0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplT2JqZWN0VW5pdHModW5pdHMpO1xuICAgICAgICAgICAgdmFyIHByaW9yaXRpemVkID0gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0cyksXG4gICAgICAgICAgICAgICAgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcmlvcml0aXplZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXNbcHJpb3JpdGl6ZWRbaV0udW5pdF0odW5pdHNbcHJpb3JpdGl6ZWRbaV0udW5pdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzW3VuaXRzXSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1t1bml0c10odmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHZhciBtYXRjaDEgPSAvXFxkLywgLy8gICAgICAgMCAtIDlcbiAgICAgICAgbWF0Y2gyID0gL1xcZFxcZC8sIC8vICAgICAgMDAgLSA5OVxuICAgICAgICBtYXRjaDMgPSAvXFxkezN9LywgLy8gICAgIDAwMCAtIDk5OVxuICAgICAgICBtYXRjaDQgPSAvXFxkezR9LywgLy8gICAgMDAwMCAtIDk5OTlcbiAgICAgICAgbWF0Y2g2ID0gL1srLV0/XFxkezZ9LywgLy8gLTk5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaDF0bzIgPSAvXFxkXFxkPy8sIC8vICAgICAgIDAgLSA5OVxuICAgICAgICBtYXRjaDN0bzQgPSAvXFxkXFxkXFxkXFxkPy8sIC8vICAgICA5OTkgLSA5OTk5XG4gICAgICAgIG1hdGNoNXRvNiA9IC9cXGRcXGRcXGRcXGRcXGRcXGQ/LywgLy8gICA5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaDF0bzMgPSAvXFxkezEsM30vLCAvLyAgICAgICAwIC0gOTk5XG4gICAgICAgIG1hdGNoMXRvNCA9IC9cXGR7MSw0fS8sIC8vICAgICAgIDAgLSA5OTk5XG4gICAgICAgIG1hdGNoMXRvNiA9IC9bKy1dP1xcZHsxLDZ9LywgLy8gLTk5OTk5OSAtIDk5OTk5OVxuICAgICAgICBtYXRjaFVuc2lnbmVkID0gL1xcZCsvLCAvLyAgICAgICAwIC0gaW5mXG4gICAgICAgIG1hdGNoU2lnbmVkID0gL1srLV0/XFxkKy8sIC8vICAgIC1pbmYgLSBpbmZcbiAgICAgICAgbWF0Y2hPZmZzZXQgPSAvWnxbKy1dXFxkXFxkOj9cXGRcXGQvZ2ksIC8vICswMDowMCAtMDA6MDAgKzAwMDAgLTAwMDAgb3IgWlxuICAgICAgICBtYXRjaFNob3J0T2Zmc2V0ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vZ2ksIC8vICswMCAtMDAgKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgICAgIG1hdGNoVGltZXN0YW1wID0gL1srLV0/XFxkKyhcXC5cXGR7MSwzfSk/LywgLy8gMTIzNDU2Nzg5IDEyMzQ1Njc4OS4xMjNcbiAgICAgICAgLy8gYW55IHdvcmQgKG9yIHR3bykgY2hhcmFjdGVycyBvciBudW1iZXJzIGluY2x1ZGluZyB0d28vdGhyZWUgd29yZCBtb250aCBpbiBhcmFiaWMuXG4gICAgICAgIC8vIGluY2x1ZGVzIHNjb3R0aXNoIGdhZWxpYyB0d28gd29yZCBhbmQgaHlwaGVuYXRlZCBtb250aHNcbiAgICAgICAgbWF0Y2hXb3JkID0gL1swLTldezAsMjU2fVsnYS16XFx1MDBBMC1cXHUwNUZGXFx1MDcwMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRjA3XFx1RkYxMC1cXHVGRkVGXXsxLDI1Nn18W1xcdTA2MDAtXFx1MDZGRlxcL117MSwyNTZ9KFxccyo/W1xcdTA2MDAtXFx1MDZGRl17MSwyNTZ9KXsxLDJ9L2ksXG4gICAgICAgIHJlZ2V4ZXM7XG5cbiAgICByZWdleGVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRSZWdleFRva2VuKHRva2VuLCByZWdleCwgc3RyaWN0UmVnZXgpIHtcbiAgICAgICAgcmVnZXhlc1t0b2tlbl0gPSBpc0Z1bmN0aW9uKHJlZ2V4KVxuICAgICAgICAgICAgPyByZWdleFxuICAgICAgICAgICAgOiBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZURhdGEpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpc1N0cmljdCAmJiBzdHJpY3RSZWdleCA/IHN0cmljdFJlZ2V4IDogcmVnZXg7XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpIHtcbiAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHJlZ2V4ZXMsIHRva2VuKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAodW5lc2NhcGVGb3JtYXQodG9rZW4pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWdleGVzW3Rva2VuXShjb25maWcuX3N0cmljdCwgY29uZmlnLl9sb2NhbGUpO1xuICAgIH1cblxuICAgIC8vIENvZGUgZnJvbSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1NjE0OTMvaXMtdGhlcmUtYS1yZWdleHAtZXNjYXBlLWZ1bmN0aW9uLWluLWphdmFzY3JpcHRcbiAgICBmdW5jdGlvbiB1bmVzY2FwZUZvcm1hdChzKSB7XG4gICAgICAgIHJldHVybiByZWdleEVzY2FwZShcbiAgICAgICAgICAgIHNcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgnXFxcXCcsICcnKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFxcKFxcWyl8XFxcXChcXF0pfFxcWyhbXlxcXVxcW10qKVxcXXxcXFxcKC4pL2csIGZ1bmN0aW9uIChcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCxcbiAgICAgICAgICAgICAgICAgICAgcDEsXG4gICAgICAgICAgICAgICAgICAgIHAyLFxuICAgICAgICAgICAgICAgICAgICBwMyxcbiAgICAgICAgICAgICAgICAgICAgcDRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAxIHx8IHAyIHx8IHAzIHx8IHA0O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVnZXhFc2NhcGUocykge1xuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9bLVxcL1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKTtcbiAgICB9XG5cbiAgICB2YXIgdG9rZW5zID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRQYXJzZVRva2VuKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGZ1bmMgPSBjYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRva2VuID0gW3Rva2VuXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOdW1iZXIoY2FsbGJhY2spKSB7XG4gICAgICAgICAgICBmdW5jID0gZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICAgICAgICAgIGFycmF5W2NhbGxiYWNrXSA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2VuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5baV1dID0gZnVuYztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtQYXJzZVRva2VuKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICBhZGRQYXJzZVRva2VuKHRva2VuLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307XG4gICAgICAgICAgICBjYWxsYmFjayhpbnB1dCwgY29uZmlnLl93LCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIGlucHV0LCBjb25maWcpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwgJiYgaGFzT3duUHJvcCh0b2tlbnMsIHRva2VuKSkge1xuICAgICAgICAgICAgdG9rZW5zW3Rva2VuXShpbnB1dCwgY29uZmlnLl9hLCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBZRUFSID0gMCxcbiAgICAgICAgTU9OVEggPSAxLFxuICAgICAgICBEQVRFID0gMixcbiAgICAgICAgSE9VUiA9IDMsXG4gICAgICAgIE1JTlVURSA9IDQsXG4gICAgICAgIFNFQ09ORCA9IDUsXG4gICAgICAgIE1JTExJU0VDT05EID0gNixcbiAgICAgICAgV0VFSyA9IDcsXG4gICAgICAgIFdFRUtEQVkgPSA4O1xuXG4gICAgZnVuY3Rpb24gbW9kKG4sIHgpIHtcbiAgICAgICAgcmV0dXJuICgobiAlIHgpICsgeCkgJSB4O1xuICAgIH1cblxuICAgIHZhciBpbmRleE9mO1xuXG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gICAgICAgIGluZGV4T2YgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleE9mID0gZnVuY3Rpb24gKG8pIHtcbiAgICAgICAgICAgIC8vIEkga25vd1xuICAgICAgICAgICAgdmFyIGk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzW2ldID09PSBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkge1xuICAgICAgICBpZiAoaXNOYU4oeWVhcikgfHwgaXNOYU4obW9udGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtb2RNb250aCA9IG1vZChtb250aCwgMTIpO1xuICAgICAgICB5ZWFyICs9IChtb250aCAtIG1vZE1vbnRoKSAvIDEyO1xuICAgICAgICByZXR1cm4gbW9kTW9udGggPT09IDFcbiAgICAgICAgICAgID8gaXNMZWFwWWVhcih5ZWFyKVxuICAgICAgICAgICAgICAgID8gMjlcbiAgICAgICAgICAgICAgICA6IDI4XG4gICAgICAgICAgICA6IDMxIC0gKChtb2RNb250aCAlIDcpICUgMik7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ00nLCBbJ01NJywgMl0sICdNbycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGgoKSArIDE7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21vbnRoJywgJ00nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21vbnRoJywgOCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdNJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTU0nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTU0nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNJywgJ01NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gdG9JbnQoaW5wdXQpIC0gMTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNTU0nLCAnTU1NTSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciBtb250aCA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBhIG1vbnRoIG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZC5cbiAgICAgICAgaWYgKG1vbnRoICE9IG51bGwpIHtcbiAgICAgICAgICAgIGFycmF5W01PTlRIXSA9IG1vbnRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZE1vbnRoID0gaW5wdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIHZhciBkZWZhdWx0TG9jYWxlTW9udGhzID0gJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCA9ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgTU9OVEhTX0lOX0ZPUk1BVCA9IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/LyxcbiAgICAgICAgZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXggPSBtYXRjaFdvcmQsXG4gICAgICAgIGRlZmF1bHRNb250aHNSZWdleCA9IG1hdGNoV29yZDtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRocyhtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHMpXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9tb250aHNcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1snc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocylcbiAgICAgICAgICAgID8gdGhpcy5fbW9udGhzW20ubW9udGgoKV1cbiAgICAgICAgICAgIDogdGhpcy5fbW9udGhzW1xuICAgICAgICAgICAgICAgICAgKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgICAgICAgICAgICA/ICdmb3JtYXQnXG4gICAgICAgICAgICAgICAgICAgICAgOiAnc3RhbmRhbG9uZSdcbiAgICAgICAgICAgICAgXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1Nob3J0KG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRoc1Nob3J0KVxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1Nob3J0WydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpXG4gICAgICAgICAgICA/IHRoaXMuX21vbnRoc1Nob3J0W20ubW9udGgoKV1cbiAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRbXG4gICAgICAgICAgICAgICAgICBNT05USFNfSU5fRk9STUFULnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXG4gICAgICAgICAgICAgIF1bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYW5kbGVTdHJpY3RQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgaWksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgdXNlZFxuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHNTaG9ydChcbiAgICAgICAgICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRocyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHNQYXJzZShtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UuY2FsbCh0aGlzLCBtb250aE5hbWUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fbW9udGhzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFkZCBzb3J0aW5nXG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXJcbiAgICAgICAgLy8gc2VlIHNvcnRpbmcgaW4gY29tcHV0ZU1vbnRoc1BhcnNlXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy5tb250aHMobW9tLCAnJykucmVwbGFjZSgnLicsICcnKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPVxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdNTU1NJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdNTU0nICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXS50ZXN0KG1vbnRoTmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc2V0TW9udGgobW9tLCB2YWx1ZSkge1xuICAgICAgICB2YXIgZGF5T2ZNb250aDtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICAgICAgaWYgKCFpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArICdNb250aCddKHZhbHVlLCBkYXlPZk1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRNb250aCh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TW9udGgodGhpcywgdmFsdWUpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsICdNb250aCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF5c0luTW9udGgoKSB7XG4gICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aHNTaG9ydFJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoc1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IGRlZmF1bHRNb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXhcbiAgICAgICAgICAgICAgICA6IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcHV0ZU1vbnRoc1BhcnNlKCkge1xuICAgICAgICBmdW5jdGlvbiBjbXBMZW5SZXYoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2hvcnRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGxvbmdQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbW9tO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgbW9udGggKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXIgaXRcbiAgICAgICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgICAgICBzaG9ydFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGxvbmdQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjQ7IGkrKykge1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgbG9uZ1BpZWNlcy5qb2luKCd8JykgKyAnKScsXG4gICAgICAgICAgICAnaSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1knLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB5ID0gdGhpcy55ZWFyKCk7XG4gICAgICAgIHJldHVybiB5IDw9IDk5OTkgPyB6ZXJvRmlsbCh5LCA0KSA6ICcrJyArIHk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZJywgNF0sIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWScsIDVdLCAwLCAneWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWVlZJywgNiwgdHJ1ZV0sIDAsICd5ZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3llYXInLCAneScpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd5ZWFyJywgMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdZJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVknLCBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVlZJywgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ1lZWVlZJywgJ1lZWVlZWSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKCdZWVlZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9XG4gICAgICAgICAgICBpbnB1dC5sZW5ndGggPT09IDIgPyBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCkgOiB0b0ludChpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1knLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgaG9va3MucGFyc2VUd29EaWdpdFllYXIgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTtcbiAgICB9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldFllYXIgPSBtYWtlR2V0U2V0KCdGdWxsWWVhcicsIHRydWUpO1xuXG4gICAgZnVuY3Rpb24gZ2V0SXNMZWFwWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZURhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpIHtcbiAgICAgICAgLy8gY2FuJ3QganVzdCBhcHBseSgpIHRvIGNyZWF0ZSBhIGRhdGU6XG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8xODEzNDhcbiAgICAgICAgdmFyIGRhdGU7XG4gICAgICAgIC8vIHRoZSBkYXRlIGNvbnN0cnVjdG9yIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoeSArIDQwMCwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgICAgICAgICAgaWYgKGlzRmluaXRlKGRhdGUuZ2V0RnVsbFllYXIoKSkpIHtcbiAgICAgICAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKHksIG0sIGQsIGgsIE0sIHMsIG1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQ0RhdGUoeSkge1xuICAgICAgICB2YXIgZGF0ZSwgYXJncztcbiAgICAgICAgLy8gdGhlIERhdGUuVVRDIGZ1bmN0aW9uIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIGFyZ3NbMF0gPSB5ICsgNDAwO1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUuVVRDLmFwcGx5KG51bGwsIGFyZ3MpKTtcbiAgICAgICAgICAgIGlmIChpc0Zpbml0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0LW9mLWZpcnN0LXdlZWsgLSBzdGFydC1vZi15ZWFyXG4gICAgZnVuY3Rpb24gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciAvLyBmaXJzdC13ZWVrIGRheSAtLSB3aGljaCBqYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayAoNCBmb3IgaXNvLCAxIGZvciBvdGhlcilcbiAgICAgICAgICAgIGZ3ZCA9IDcgKyBkb3cgLSBkb3ksXG4gICAgICAgICAgICAvLyBmaXJzdC13ZWVrIGRheSBsb2NhbCB3ZWVrZGF5IC0tIHdoaWNoIGxvY2FsIHdlZWtkYXkgaXMgZndkXG4gICAgICAgICAgICBmd2RsdyA9ICg3ICsgY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCBmd2QpLmdldFVUQ0RheSgpIC0gZG93KSAlIDc7XG5cbiAgICAgICAgcmV0dXJuIC1md2RsdyArIGZ3ZCAtIDE7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZSNDYWxjdWxhdGluZ19hX2RhdGVfZ2l2ZW5fdGhlX3llYXIuMkNfd2Vla19udW1iZXJfYW5kX3dlZWtkYXlcbiAgICBmdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla3MoeWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGxvY2FsV2Vla2RheSA9ICg3ICsgd2Vla2RheSAtIGRvdykgJSA3LFxuICAgICAgICAgICAgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXlPZlllYXIgPSAxICsgNyAqICh3ZWVrIC0gMSkgKyBsb2NhbFdlZWtkYXkgKyB3ZWVrT2Zmc2V0LFxuICAgICAgICAgICAgcmVzWWVhcixcbiAgICAgICAgICAgIHJlc0RheU9mWWVhcjtcblxuICAgICAgICBpZiAoZGF5T2ZZZWFyIDw9IDApIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyIC0gMTtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheXNJblllYXIocmVzWWVhcikgKyBkYXlPZlllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgKyAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyIC0gZGF5c0luWWVhcih5ZWFyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgICAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhcixcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrT2ZZZWFyKG1vbSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQobW9tLnllYXIoKSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2VlayA9IE1hdGguZmxvb3IoKG1vbS5kYXlPZlllYXIoKSAtIHdlZWtPZmZzZXQgLSAxKSAvIDcpICsgMSxcbiAgICAgICAgICAgIHJlc1dlZWssXG4gICAgICAgICAgICByZXNZZWFyO1xuXG4gICAgICAgIGlmICh3ZWVrIDwgMSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgLSAxO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgKyB3ZWVrc0luWWVhcihyZXNZZWFyLCBkb3csIGRveSk7XG4gICAgICAgIH0gZWxzZSBpZiAod2VlayA+IHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KSkge1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgLSB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSk7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdlZWs6IHJlc1dlZWssXG4gICAgICAgICAgICB5ZWFyOiByZXNZZWFyLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtzSW5ZZWFyKHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWtPZmZzZXROZXh0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIgKyAxLCBkb3csIGRveSk7XG4gICAgICAgIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd3JywgWyd3dycsIDJdLCAnd28nLCAnd2VlaycpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrJywgJ3cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrJywgNSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd3JywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCd3dycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdXJywgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdXVycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsndycsICd3dycsICdXJywgJ1dXJ10sIGZ1bmN0aW9uIChcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHdlZWssXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgdG9rZW5cbiAgICApIHtcbiAgICAgICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMSldID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vlayhtb20pIHtcbiAgICAgICAgcmV0dXJuIHdlZWtPZlllYXIobW9tLCB0aGlzLl93ZWVrLmRvdywgdGhpcy5fd2Vlay5kb3kpLndlZWs7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrID0ge1xuICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRmlyc3REYXlPZldlZWsoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrLmRvdztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVGaXJzdERheU9mWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG95O1xuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWsoaW5wdXQpIHtcbiAgICAgICAgdmFyIHdlZWsgPSB0aGlzLmxvY2FsZURhdGEoKS53ZWVrKHRoaXMpO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPV2VlayhpbnB1dCkge1xuICAgICAgICB2YXIgd2VlayA9IHdlZWtPZlllYXIodGhpcywgMSwgNCkud2VlaztcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkJywgMCwgJ2RvJywgJ2RheScpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNNaW4odGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c1Nob3J0KHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGRkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZScsIDAsIDAsICd3ZWVrZGF5Jyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ0UnLCAwLCAwLCAnaXNvV2Vla2RheScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXknLCAnZCcpO1xuICAgIGFkZFVuaXRBbGlhcygnd2Vla2RheScsICdlJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrZGF5JywgJ0UnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrZGF5JywgMTEpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnaXNvV2Vla2RheScsIDExKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2QnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2UnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0UnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2RkJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c01pblJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGQnLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkZCcsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2RkJywgJ2RkZCcsICdkZGRkJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB2YXIgd2Vla2RheSA9IGNvbmZpZy5fbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSB3ZWVrZGF5IG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZFxuICAgICAgICBpZiAod2Vla2RheSAhPSBudWxsKSB7XG4gICAgICAgICAgICB3ZWVrLmQgPSB3ZWVrZGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZFdlZWtkYXkgPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydkJywgJ2UnLCAnRSddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbl0gPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICBmdW5jdGlvbiBwYXJzZVdlZWtkYXkoaW5wdXQsIGxvY2FsZSkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc05hTihpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUludChpbnB1dCwgMTApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQgPSBsb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCk7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUlzb1dlZWtkYXkoaW5wdXQsIGxvY2FsZSkge1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KSAlIDcgfHwgNztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNOYU4oaW5wdXQpID8gbnVsbCA6IGlucHV0O1xuICAgIH1cblxuICAgIC8vIExPQ0FMRVNcbiAgICBmdW5jdGlvbiBzaGlmdFdlZWtkYXlzKHdzLCBuKSB7XG4gICAgICAgIHJldHVybiB3cy5zbGljZShuLCA3KS5jb25jYXQod3Muc2xpY2UoMCwgbikpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXMgPSAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0ID0gJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluID0gJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBkZWZhdWx0V2Vla2RheXNSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCA9IG1hdGNoV29yZCxcbiAgICAgICAgZGVmYXVsdFdlZWtkYXlzTWluUmVnZXggPSBtYXRjaFdvcmQ7XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5cyhtLCBmb3JtYXQpIHtcbiAgICAgICAgdmFyIHdlZWtkYXlzID0gaXNBcnJheSh0aGlzLl93ZWVrZGF5cylcbiAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNcbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNbXG4gICAgICAgICAgICAgICAgICBtICYmIG0gIT09IHRydWUgJiYgdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChmb3JtYXQpXG4gICAgICAgICAgICAgICAgICAgICAgPyAnZm9ybWF0J1xuICAgICAgICAgICAgICAgICAgICAgIDogJ3N0YW5kYWxvbmUnXG4gICAgICAgICAgICAgIF07XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXMod2Vla2RheXMsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHdlZWtkYXlzW20uZGF5KCldXG4gICAgICAgICAgICA6IHdlZWtkYXlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzU2hvcnQobSkge1xuICAgICAgICByZXR1cm4gbSA9PT0gdHJ1ZVxuICAgICAgICAgICAgPyBzaGlmdFdlZWtkYXlzKHRoaXMuX3dlZWtkYXlzU2hvcnQsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzU2hvcnRbbS5kYXkoKV1cbiAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c01pbihtKSB7XG4gICAgICAgIHJldHVybiBtID09PSB0cnVlXG4gICAgICAgICAgICA/IHNoaWZ0V2Vla2RheXModGhpcy5fd2Vla2RheXNNaW4sIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiBtXG4gICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldXG4gICAgICAgICAgICA6IHRoaXMuX3dlZWtkYXlzTWluO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlJDEod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgaWksXG4gICAgICAgICAgICBtb20sXG4gICAgICAgICAgICBsbGMgPSB3ZWVrZGF5TmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgKytpKSB7XG4gICAgICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzTWluKFxuICAgICAgICAgICAgICAgICAgICBtb20sXG4gICAgICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICAgICAgKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNTaG9ydChcbiAgICAgICAgICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgICAgICAgICAnJ1xuICAgICAgICAgICAgICAgICkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNQYXJzZSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlJDEuY2FsbCh0aGlzLCB3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcblxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAgICAgICAgICdeJyArIHRoaXMud2Vla2RheXMobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgICAgICAgICAnXicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJyxcbiAgICAgICAgICAgICAgICAgICAgJ2knXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICAgICAgICAgJ14nICsgdGhpcy53ZWVrZGF5c01pbihtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLFxuICAgICAgICAgICAgICAgICAgICAnaSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPVxuICAgICAgICAgICAgICAgICAgICAnXicgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXlzKG1vbSwgJycpICtcbiAgICAgICAgICAgICAgICAgICAgJ3xeJyArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSArXG4gICAgICAgICAgICAgICAgICAgICd8XicgK1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN0cmljdCAmJlxuICAgICAgICAgICAgICAgIGZvcm1hdCA9PT0gJ2RkZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBzdHJpY3QgJiZcbiAgICAgICAgICAgICAgICBmb3JtYXQgPT09ICdkZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgc3RyaWN0ICYmXG4gICAgICAgICAgICAgICAgZm9ybWF0ID09PSAnZGQnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fd2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5ID0gdGhpcy5faXNVVEMgPyB0aGlzLl9kLmdldFVUQ0RheSgpIDogdGhpcy5fZC5nZXREYXkoKTtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0ID0gcGFyc2VXZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQoaW5wdXQgLSBkYXksICdkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2Vla2RheSA9ICh0aGlzLmRheSgpICsgNyAtIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdykgJSA3O1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPRGF5T2ZXZWVrKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJlaGF2ZXMgdGhlIHNhbWUgYXMgbW9tZW50I2RheSBleGNlcHRcbiAgICAgICAgLy8gYXMgYSBnZXR0ZXIsIHJldHVybnMgNyBpbnN0ZWFkIG9mIDAgKDEtNyByYW5nZSBpbnN0ZWFkIG9mIDAtNilcbiAgICAgICAgLy8gYXMgYSBzZXR0ZXIsIHN1bmRheSBzaG91bGQgYmVsb25nIHRvIHRoZSBwcmV2aW91cyB3ZWVrLlxuXG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgd2Vla2RheSA9IHBhcnNlSXNvV2Vla2RheShpbnB1dCwgdGhpcy5sb2NhbGVEYXRhKCkpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KHRoaXMuZGF5KCkgJSA3ID8gd2Vla2RheSA6IHdlZWtkYXkgLSA3KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpIHx8IDc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCAmJiBpc1N0cmljdFxuICAgICAgICAgICAgICAgID8gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3RcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleFxuICAgICAgICAgICAgICAgIDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla2RheXNNaW5SZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNNaW5SZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggJiYgaXNTdHJpY3RcbiAgICAgICAgICAgICAgICA/IHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXhcbiAgICAgICAgICAgICAgICA6IHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlV2Vla2RheXNQYXJzZSgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1pblBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgc2hvcnRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGxvbmdQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgbW9tLFxuICAgICAgICAgICAgbWlucCxcbiAgICAgICAgICAgIHNob3J0cCxcbiAgICAgICAgICAgIGxvbmdwO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgIG1pbnAgPSByZWdleEVzY2FwZSh0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpKTtcbiAgICAgICAgICAgIHNob3J0cCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKSk7XG4gICAgICAgICAgICBsb25ncCA9IHJlZ2V4RXNjYXBlKHRoaXMud2Vla2RheXMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWluUGllY2VzLnB1c2gobWlucCk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgd2Vla2RheSAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIG1pblBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcblxuICAgICAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgICAgICAgICdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLFxuICAgICAgICAgICAgJ2knXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgZnVuY3Rpb24gaEZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSAlIDEyIHx8IDEyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGtGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgfHwgMjQ7XG4gICAgfVxuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0gnLCBbJ0hIJywgMl0sIDAsICdob3VyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2gnLCBbJ2hoJywgMl0sIDAsIGhGb3JtYXQpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdrJywgWydraycsIDJdLCAwLCBrRm9ybWF0KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIGhGb3JtYXQuYXBwbHkodGhpcykgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tc3MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAnJyArXG4gICAgICAgICAgICBoRm9ybWF0LmFwcGx5KHRoaXMpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMilcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIHRoaXMuaG91cnMoKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICcnICtcbiAgICAgICAgICAgIHRoaXMuaG91cnMoKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMikgK1xuICAgICAgICAgICAgemVyb0ZpbGwodGhpcy5zZWNvbmRzKCksIDIpXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbSh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0oXG4gICAgICAgICAgICAgICAgdGhpcy5ob3VycygpLFxuICAgICAgICAgICAgICAgIHRoaXMubWludXRlcygpLFxuICAgICAgICAgICAgICAgIGxvd2VyY2FzZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVyaWRpZW0oJ2EnLCB0cnVlKTtcbiAgICBtZXJpZGllbSgnQScsIGZhbHNlKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnaG91cicsIDEzKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGZ1bmN0aW9uIG1hdGNoTWVyaWRpZW0oaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLl9tZXJpZGllbVBhcnNlO1xuICAgIH1cblxuICAgIGFkZFJlZ2V4VG9rZW4oJ2EnLCBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdBJywgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignSCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaycsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignaGgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbigna2snLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbXNzJywgbWF0Y2g1dG82KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydIJywgJ0hIJ10sIEhPVVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydrJywgJ2trJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBhcnJheVtIT1VSXSA9IGtJbnB1dCA9PT0gMjQgPyAwIDoga0lucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5faXNQbSA9IGNvbmZpZy5fbG9jYWxlLmlzUE0oaW5wdXQpO1xuICAgICAgICBjb25maWcuX21lcmlkaWVtID0gaW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2gnLCAnaGgnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQsXG4gICAgICAgICAgICBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0LFxuICAgICAgICAgICAgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlSXNQTShpbnB1dCkge1xuICAgICAgICAvLyBJRTggUXVpcmtzIE1vZGUgJiBJRTcgU3RhbmRhcmRzIE1vZGUgZG8gbm90IGFsbG93IGFjY2Vzc2luZyBzdHJpbmdzIGxpa2UgYXJyYXlzXG4gICAgICAgIC8vIFVzaW5nIGNoYXJBdCBzaG91bGQgYmUgbW9yZSBjb21wYXRpYmxlLlxuICAgICAgICByZXR1cm4gKGlucHV0ICsgJycpLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApID09PSAncCc7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlID0gL1thcF1cXC4/bT9cXC4/L2ksXG4gICAgICAgIC8vIFNldHRpbmcgdGhlIGhvdXIgc2hvdWxkIGtlZXAgdGhlIHRpbWUsIGJlY2F1c2UgdGhlIHVzZXIgZXhwbGljaXRseVxuICAgICAgICAvLyBzcGVjaWZpZWQgd2hpY2ggaG91ciB0aGV5IHdhbnQuIFNvIHRyeWluZyB0byBtYWludGFpbiB0aGUgc2FtZSBob3VyIChpblxuICAgICAgICAvLyBhIG5ldyB0aW1lem9uZSkgbWFrZXMgc2Vuc2UuIEFkZGluZy9zdWJ0cmFjdGluZyBob3VycyBkb2VzIG5vdCBmb2xsb3dcbiAgICAgICAgLy8gdGhpcyBydWxlLlxuICAgICAgICBnZXRTZXRIb3VyID0gbWFrZUdldFNldCgnSG91cnMnLCB0cnVlKTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZU1lcmlkaWVtKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwbScgOiAnUE0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnYW0nIDogJ0FNJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBiYXNlQ29uZmlnID0ge1xuICAgICAgICBjYWxlbmRhcjogZGVmYXVsdENhbGVuZGFyLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDogZGVmYXVsdExvbmdEYXRlRm9ybWF0LFxuICAgICAgICBpbnZhbGlkRGF0ZTogZGVmYXVsdEludmFsaWREYXRlLFxuICAgICAgICBvcmRpbmFsOiBkZWZhdWx0T3JkaW5hbCxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UsXG4gICAgICAgIHJlbGF0aXZlVGltZTogZGVmYXVsdFJlbGF0aXZlVGltZSxcblxuICAgICAgICBtb250aHM6IGRlZmF1bHRMb2NhbGVNb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQsXG5cbiAgICAgICAgd2VlazogZGVmYXVsdExvY2FsZVdlZWssXG5cbiAgICAgICAgd2Vla2RheXM6IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbixcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQsXG5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2UsXG4gICAgfTtcblxuICAgIC8vIGludGVybmFsIHN0b3JhZ2UgZm9yIGxvY2FsZSBjb25maWcgZmlsZXNcbiAgICB2YXIgbG9jYWxlcyA9IHt9LFxuICAgICAgICBsb2NhbGVGYW1pbGllcyA9IHt9LFxuICAgICAgICBnbG9iYWxMb2NhbGU7XG5cbiAgICBmdW5jdGlvbiBjb21tb25QcmVmaXgoYXJyMSwgYXJyMikge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIG1pbmwgPSBNYXRoLm1pbihhcnIxLmxlbmd0aCwgYXJyMi5sZW5ndGgpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWlubDsgaSArPSAxKSB7XG4gICAgICAgICAgICBpZiAoYXJyMVtpXSAhPT0gYXJyMltpXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtaW5sO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZShrZXkpIHtcbiAgICAgICAgcmV0dXJuIGtleSA/IGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ18nLCAnLScpIDoga2V5O1xuICAgIH1cblxuICAgIC8vIHBpY2sgdGhlIGxvY2FsZSBmcm9tIHRoZSBhcnJheVxuICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoXG4gICAgLy8gc3Vic3RyaW5nIGZyb20gbW9zdCBzcGVjaWZpYyB0byBsZWFzdCwgYnV0IG1vdmUgdG8gdGhlIG5leHQgYXJyYXkgaXRlbSBpZiBpdCdzIGEgbW9yZSBzcGVjaWZpYyB2YXJpYW50IHRoYW4gdGhlIGN1cnJlbnQgcm9vdFxuICAgIGZ1bmN0aW9uIGNob29zZUxvY2FsZShuYW1lcykge1xuICAgICAgICB2YXIgaSA9IDAsXG4gICAgICAgICAgICBqLFxuICAgICAgICAgICAgbmV4dCxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHNwbGl0O1xuXG4gICAgICAgIHdoaWxlIChpIDwgbmFtZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzcGxpdCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpXSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGogPSBzcGxpdC5sZW5ndGg7XG4gICAgICAgICAgICBuZXh0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2kgKyAxXSk7XG4gICAgICAgICAgICBuZXh0ID0gbmV4dCA/IG5leHQuc3BsaXQoJy0nKSA6IG51bGw7XG4gICAgICAgICAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKHNwbGl0LnNsaWNlKDAsIGopLmpvaW4oJy0nKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIG5leHQgJiZcbiAgICAgICAgICAgICAgICAgICAgbmV4dC5sZW5ndGggPj0gaiAmJlxuICAgICAgICAgICAgICAgICAgICBjb21tb25QcmVmaXgoc3BsaXQsIG5leHQpID49IGogLSAxXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhlIG5leHQgYXJyYXkgaXRlbSBpcyBiZXR0ZXIgdGhhbiBhIHNoYWxsb3dlciBzdWJzdHJpbmcgb2YgdGhpcyBvbmVcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGotLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvYWRMb2NhbGUobmFtZSkge1xuICAgICAgICB2YXIgb2xkTG9jYWxlID0gbnVsbCxcbiAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlO1xuICAgICAgICAvLyBUT0RPOiBGaW5kIGEgYmV0dGVyIHdheSB0byByZWdpc3RlciBhbmQgbG9hZCBhbGwgdGhlIGxvY2FsZXMgaW4gTm9kZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID09PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBtb2R1bGUgJiZcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvbGRMb2NhbGUgPSBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgICAgICAgICAgICAgYWxpYXNlZFJlcXVpcmUgPSByZXF1aXJlO1xuICAgICAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7XG4gICAgICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG9sZExvY2FsZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBub3QgZm91bmQgdG8gYXZvaWQgcmVwZWF0aW5nIGV4cGVuc2l2ZSBmaWxlIHJlcXVpcmUgY2FsbCBjYXVzaW5nIGhpZ2ggQ1BVXG4gICAgICAgICAgICAgICAgLy8gd2hlbiB0cnlpbmcgdG8gZmluZCBlbi1VUywgZW5fVVMsIGVuLXVzIGZvciBldmVyeSBmb3JtYXQgY2FsbFxuICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBudWxsOyAvLyBudWxsIG1lYW5zIG5vdCBmb3VuZFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZlxuICAgIC8vIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluLCBpdCB3aWxsIHNpbXBseSByZXR1cm4gdGhlIGN1cnJlbnQgZ2xvYmFsXG4gICAgLy8gbG9jYWxlIGtleS5cbiAgICBmdW5jdGlvbiBnZXRTZXRHbG9iYWxMb2NhbGUoa2V5LCB2YWx1ZXMpIHtcbiAgICAgICAgdmFyIGRhdGE7XG4gICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh2YWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsZShrZXkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZGVmaW5lTG9jYWxlKGtleSwgdmFsdWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAvLyBtb21lbnQuZHVyYXRpb24uX2xvY2FsZSA9IG1vbWVudC5fbG9jYWxlID0gZGF0YTtcbiAgICAgICAgICAgICAgICBnbG9iYWxMb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgICAgICAgICAvL3dhcm4gdXNlciBpZiBhcmd1bWVudHMgYXJlIHBhc3NlZCBidXQgdGhlIGxvY2FsZSBjb3VsZCBub3QgYmUgc2V0XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICdMb2NhbGUgJyArIGtleSArICcgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PydcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlLl9hYmJyO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlZmluZUxvY2FsZShuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmluZUxvY2FsZU92ZXJyaWRlJyxcbiAgICAgICAgICAgICAgICAgICAgJ3VzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcpIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbbmFtZV0uX2NvbmZpZztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShjb25maWcucGFyZW50TG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbmV3IExvY2FsZShtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpKTtcblxuICAgICAgICAgICAgaWYgKGxvY2FsZUZhbWlsaWVzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbbmFtZV0uZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVMb2NhbGUoeC5uYW1lLCB4LmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXQgZm9yIG5vdzogYWxzbyBzZXQgdGhlIGxvY2FsZVxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIHNldCB0aGUgbG9jYWxlIEFGVEVSIGFsbCBjaGlsZCBsb2NhbGVzIGhhdmUgYmVlblxuICAgICAgICAgICAgLy8gY3JlYXRlZCwgc28gd2Ugd29uJ3QgZW5kIHVwIHdpdGggdGhlIGNoaWxkIGxvY2FsZSBzZXQuXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdXNlZnVsIGZvciB0ZXN0aW5nXG4gICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlTG9jYWxlKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBsb2NhbGUsXG4gICAgICAgICAgICAgICAgdG1wTG9jYWxlLFxuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG5cbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwgJiYgbG9jYWxlc1tuYW1lXS5wYXJlbnRMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBjaGlsZCBsb2NhbGUgaW4tcGxhY2UgdG8gYXZvaWQgbWVtb3J5LWxlYWtzXG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXS5zZXQobWVyZ2VDb25maWdzKGxvY2FsZXNbbmFtZV0uX2NvbmZpZywgY29uZmlnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE1FUkdFXG4gICAgICAgICAgICAgICAgdG1wTG9jYWxlID0gbG9hZExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAodG1wTG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gdG1wTG9jYWxlLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgaWYgKHRtcExvY2FsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZUxvY2FsZSBpcyBjYWxsZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZVxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgYWJiciBzbyBpdCB3aWxsIGhhdmUgYSBuYW1lIChnZXR0ZXJzIHJldHVyblxuICAgICAgICAgICAgICAgICAgICAvLyB1bmRlZmluZWQgb3RoZXJ3aXNlKS5cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgbG9jYWxlLnBhcmVudExvY2FsZSA9IGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwYXNzIG51bGwgZm9yIGNvbmZpZyB0byB1bnVwZGF0ZSwgdXNlZnVsIGZvciB0ZXN0c1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09IGdldFNldEdsb2JhbExvY2FsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YVxuICAgIGZ1bmN0aW9uIGdldExvY2FsZShrZXkpIHtcbiAgICAgICAgdmFyIGxvY2FsZTtcblxuICAgICAgICBpZiAoa2V5ICYmIGtleS5fbG9jYWxlICYmIGtleS5fbG9jYWxlLl9hYmJyKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuX2xvY2FsZS5fYWJicjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsTG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0FycmF5KGtleSkpIHtcbiAgICAgICAgICAgIC8vc2hvcnQtY2lyY3VpdCBldmVyeXRoaW5nIGVsc2VcbiAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ID0gW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hvb3NlTG9jYWxlKGtleSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdExvY2FsZXMoKSB7XG4gICAgICAgIHJldHVybiBrZXlzKGxvY2FsZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrT3ZlcmZsb3cobSkge1xuICAgICAgICB2YXIgb3ZlcmZsb3csXG4gICAgICAgICAgICBhID0gbS5fYTtcblxuICAgICAgICBpZiAoYSAmJiBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPT09IC0yKSB7XG4gICAgICAgICAgICBvdmVyZmxvdyA9XG4gICAgICAgICAgICAgICAgYVtNT05USF0gPCAwIHx8IGFbTU9OVEhdID4gMTFcbiAgICAgICAgICAgICAgICAgICAgPyBNT05USFxuICAgICAgICAgICAgICAgICAgICA6IGFbREFURV0gPCAxIHx8IGFbREFURV0gPiBkYXlzSW5Nb250aChhW1lFQVJdLCBhW01PTlRIXSlcbiAgICAgICAgICAgICAgICAgICAgPyBEQVRFXG4gICAgICAgICAgICAgICAgICAgIDogYVtIT1VSXSA8IDAgfHxcbiAgICAgICAgICAgICAgICAgICAgICBhW0hPVVJdID4gMjQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoYVtIT1VSXSA9PT0gMjQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGFbTUlOVVRFXSAhPT0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtTRUNPTkRdICE9PSAwIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhW01JTExJU0VDT05EXSAhPT0gMCkpXG4gICAgICAgICAgICAgICAgICAgID8gSE9VUlxuICAgICAgICAgICAgICAgICAgICA6IGFbTUlOVVRFXSA8IDAgfHwgYVtNSU5VVEVdID4gNTlcbiAgICAgICAgICAgICAgICAgICAgPyBNSU5VVEVcbiAgICAgICAgICAgICAgICAgICAgOiBhW1NFQ09ORF0gPCAwIHx8IGFbU0VDT05EXSA+IDU5XG4gICAgICAgICAgICAgICAgICAgID8gU0VDT05EXG4gICAgICAgICAgICAgICAgICAgIDogYVtNSUxMSVNFQ09ORF0gPCAwIHx8IGFbTUlMTElTRUNPTkRdID4gOTk5XG4gICAgICAgICAgICAgICAgICAgID8gTUlMTElTRUNPTkRcbiAgICAgICAgICAgICAgICAgICAgOiAtMTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dEYXlPZlllYXIgJiZcbiAgICAgICAgICAgICAgICAob3ZlcmZsb3cgPCBZRUFSIHx8IG92ZXJmbG93ID4gREFURSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gREFURTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla3MgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrZGF5ICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFS0RBWTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLm92ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBpc28gODYwMSByZWdleFxuICAgIC8vIDAwMDAtMDAtMDAgMDAwMC1XMDAgb3IgMDAwMC1XMDAtMCArIFQgKyAwMCBvciAwMDowMCBvciAwMDowMDowMCBvciAwMDowMDowMC4wMDAgKyArMDA6MDAgb3IgKzAwMDAgb3IgKzAwKVxuICAgIHZhciBleHRlbmRlZElzb1JlZ2V4ID0gL15cXHMqKCg/OlsrLV1cXGR7Nn18XFxkezR9KS0oPzpcXGRcXGQtXFxkXFxkfFdcXGRcXGQtXFxkfFdcXGRcXGR8XFxkXFxkXFxkfFxcZFxcZCkpKD86KFR8ICkoXFxkXFxkKD86OlxcZFxcZCg/OjpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoWystXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC8sXG4gICAgICAgIGJhc2ljSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pKD86XFxkXFxkXFxkXFxkfFdcXGRcXGRcXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkfCkpKD86KFR8ICkoXFxkXFxkKD86XFxkXFxkKD86XFxkXFxkKD86Wy4sXVxcZCspPyk/KT8pKFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvLFxuICAgICAgICB0elJlZ2V4ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vLFxuICAgICAgICBpc29EYXRlcyA9IFtcbiAgICAgICAgICAgIFsnWVlZWVlZLU1NLUREJywgL1srLV1cXGR7Nn0tXFxkXFxkLVxcZFxcZC9dLFxuICAgICAgICAgICAgWydZWVlZLU1NLUREJywgL1xcZHs0fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgICAgICBbJ0dHR0ctW1ddV1ctRScsIC9cXGR7NH0tV1xcZFxcZC1cXGQvXSxcbiAgICAgICAgICAgIFsnR0dHRy1bV11XVycsIC9cXGR7NH0tV1xcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWS1EREQnLCAvXFxkezR9LVxcZHszfS9dLFxuICAgICAgICAgICAgWydZWVlZLU1NJywgL1xcZHs0fS1cXGRcXGQvLCBmYWxzZV0sXG4gICAgICAgICAgICBbJ1lZWVlZWU1NREQnLCAvWystXVxcZHsxMH0vXSxcbiAgICAgICAgICAgIFsnWVlZWU1NREQnLCAvXFxkezh9L10sXG4gICAgICAgICAgICBbJ0dHR0dbV11XV0UnLCAvXFxkezR9V1xcZHszfS9dLFxuICAgICAgICAgICAgWydHR0dHW1ddV1cnLCAvXFxkezR9V1xcZHsyfS8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWURERCcsIC9cXGR7N30vXSxcbiAgICAgICAgICAgIFsnWVlZWU1NJywgL1xcZHs2fS8sIGZhbHNlXSxcbiAgICAgICAgICAgIFsnWVlZWScsIC9cXGR7NH0vLCBmYWxzZV0sXG4gICAgICAgIF0sXG4gICAgICAgIC8vIGlzbyB0aW1lIGZvcm1hdHMgYW5kIHJlZ2V4ZXNcbiAgICAgICAgaXNvVGltZXMgPSBbXG4gICAgICAgICAgICBbJ0hIOm1tOnNzLlNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGRcXC5cXGQrL10sXG4gICAgICAgICAgICBbJ0hIOm1tOnNzLFNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQsXFxkKy9dLFxuICAgICAgICAgICAgWydISDptbTpzcycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZC9dLFxuICAgICAgICAgICAgWydISDptbScsIC9cXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgICAgICBbJ0hIbW1zcy5TU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgICAgIFsnSEhtbXNzLFNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkLFxcZCsvXSxcbiAgICAgICAgICAgIFsnSEhtbXNzJywgL1xcZFxcZFxcZFxcZFxcZFxcZC9dLFxuICAgICAgICAgICAgWydISG1tJywgL1xcZFxcZFxcZFxcZC9dLFxuICAgICAgICAgICAgWydISCcsIC9cXGRcXGQvXSxcbiAgICAgICAgXSxcbiAgICAgICAgYXNwTmV0SnNvblJlZ2V4ID0gL15cXC8/RGF0ZVxcKCgtP1xcZCspL2ksXG4gICAgICAgIC8vIFJGQyAyODIyIHJlZ2V4OiBGb3IgZGV0YWlscyBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI4MjIjc2VjdGlvbi0zLjNcbiAgICAgICAgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksP1xccyk/KFxcZHsxLDJ9KVxccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylcXHMoXFxkezIsNH0pXFxzKFxcZFxcZCk6KFxcZFxcZCkoPzo6KFxcZFxcZCkpP1xccyg/OihVVHxHTVR8W0VDTVBdW1NEXVQpfChbWnpdKXwoWystXVxcZHs0fSkpJC8sXG4gICAgICAgIG9ic09mZnNldHMgPSB7XG4gICAgICAgICAgICBVVDogMCxcbiAgICAgICAgICAgIEdNVDogMCxcbiAgICAgICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgICAgIEVTVDogLTUgKiA2MCxcbiAgICAgICAgICAgIENEVDogLTUgKiA2MCxcbiAgICAgICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgICAgIE1EVDogLTYgKiA2MCxcbiAgICAgICAgICAgIE1TVDogLTcgKiA2MCxcbiAgICAgICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgICAgIFBTVDogLTggKiA2MCxcbiAgICAgICAgfTtcblxuICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlTTyhjb25maWcpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgc3RyaW5nID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgbWF0Y2ggPSBleHRlbmRlZElzb1JlZ2V4LmV4ZWMoc3RyaW5nKSB8fCBiYXNpY0lzb1JlZ2V4LmV4ZWMoc3RyaW5nKSxcbiAgICAgICAgICAgIGFsbG93VGltZSxcbiAgICAgICAgICAgIGRhdGVGb3JtYXQsXG4gICAgICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICAgICAgdHpGb3JtYXQ7XG5cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pc28gPSB0cnVlO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvRGF0ZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzb0RhdGVzW2ldWzFdLmV4ZWMobWF0Y2hbMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgPSBpc29EYXRlc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dUaW1lID0gaXNvRGF0ZXNbaV1bMl0gIT09IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0ZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoWzNdKSB7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb1RpbWVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhtYXRjaFszXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoWzJdIHNob3VsZCBiZSAnVCcgb3Igc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQgPSAobWF0Y2hbMl0gfHwgJyAnKSArIGlzb1RpbWVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRpbWVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghYWxsb3dUaW1lICYmIHRpbWVGb3JtYXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFs0XSkge1xuICAgICAgICAgICAgICAgIGlmICh0elJlZ2V4LmV4ZWMobWF0Y2hbNF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHR6Rm9ybWF0ID0gJ1onO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uZmlnLl9mID0gZGF0ZUZvcm1hdCArICh0aW1lRm9ybWF0IHx8ICcnKSArICh0ekZvcm1hdCB8fCAnJyk7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoXG4gICAgICAgIHllYXJTdHIsXG4gICAgICAgIG1vbnRoU3RyLFxuICAgICAgICBkYXlTdHIsXG4gICAgICAgIGhvdXJTdHIsXG4gICAgICAgIG1pbnV0ZVN0cixcbiAgICAgICAgc2Vjb25kU3RyXG4gICAgKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBbXG4gICAgICAgICAgICB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydC5pbmRleE9mKG1vbnRoU3RyKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGRheVN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQoaG91clN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQobWludXRlU3RyLCAxMCksXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHNlY29uZFN0cikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VJbnQoc2Vjb25kU3RyLCAxMCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSB7XG4gICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuICAgICAgICBpZiAoeWVhciA8PSA0OSkge1xuICAgICAgICAgICAgcmV0dXJuIDIwMDAgKyB5ZWFyO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXIgPD0gOTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTkwMCArIHllYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHllYXI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAgICAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICAgICAgICByZXR1cm4gc1xuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFteKV0qXFwpfFtcXG5cXHRdL2csICcgJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oXFxzXFxzKykvZywgJyAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL15cXHNcXHMqLywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxzXFxzKiQvLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tXZWVrZGF5KHdlZWtkYXlTdHIsIHBhcnNlZElucHV0LCBjb25maWcpIHtcbiAgICAgICAgaWYgKHdlZWtkYXlTdHIpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFJlcGxhY2UgdGhlIHZhbmlsbGEgSlMgRGF0ZSBvYmplY3Qgd2l0aCBhbiBpbmRlcGVuZGVudCBkYXktb2Ytd2VlayBjaGVjay5cbiAgICAgICAgICAgIHZhciB3ZWVrZGF5UHJvdmlkZWQgPSBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydC5pbmRleE9mKHdlZWtkYXlTdHIpLFxuICAgICAgICAgICAgICAgIHdlZWtkYXlBY3R1YWwgPSBuZXcgRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VkSW5wdXRbMF0sXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlZElucHV0WzFdLFxuICAgICAgICAgICAgICAgICAgICBwYXJzZWRJbnB1dFsyXVxuICAgICAgICAgICAgICAgICkuZ2V0RGF5KCk7XG4gICAgICAgICAgICBpZiAod2Vla2RheVByb3ZpZGVkICE9PSB3ZWVrZGF5QWN0dWFsKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsY3VsYXRlT2Zmc2V0KG9ic09mZnNldCwgbWlsaXRhcnlPZmZzZXQsIG51bU9mZnNldCkge1xuICAgICAgICBpZiAob2JzT2Zmc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzT2Zmc2V0c1tvYnNPZmZzZXRdO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbGl0YXJ5T2Zmc2V0KSB7XG4gICAgICAgICAgICAvLyB0aGUgb25seSBhbGxvd2VkIG1pbGl0YXJ5IHR6IGlzIFpcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGhtID0gcGFyc2VJbnQobnVtT2Zmc2V0LCAxMCksXG4gICAgICAgICAgICAgICAgbSA9IGhtICUgMTAwLFxuICAgICAgICAgICAgICAgIGggPSAoaG0gLSBtKSAvIDEwMDtcbiAgICAgICAgICAgIHJldHVybiBoICogNjAgKyBtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBhbmQgdGltZSBmcm9tIHJlZiAyODIyIGZvcm1hdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZykge1xuICAgICAgICB2YXIgbWF0Y2ggPSByZmMyODIyLmV4ZWMocHJlcHJvY2Vzc1JGQzI4MjIoY29uZmlnLl9pKSksXG4gICAgICAgICAgICBwYXJzZWRBcnJheTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICBwYXJzZWRBcnJheSA9IGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoXG4gICAgICAgICAgICAgICAgbWF0Y2hbNF0sXG4gICAgICAgICAgICAgICAgbWF0Y2hbM10sXG4gICAgICAgICAgICAgICAgbWF0Y2hbMl0sXG4gICAgICAgICAgICAgICAgbWF0Y2hbNV0sXG4gICAgICAgICAgICAgICAgbWF0Y2hbNl0sXG4gICAgICAgICAgICAgICAgbWF0Y2hbN11cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWNoZWNrV2Vla2RheShtYXRjaFsxXSwgcGFyc2VkQXJyYXksIGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IHBhcnNlZEFycmF5O1xuICAgICAgICAgICAgY29uZmlnLl90em0gPSBjYWxjdWxhdGVPZmZzZXQobWF0Y2hbOF0sIG1hdGNoWzldLCBtYXRjaFsxMF0pO1xuXG4gICAgICAgICAgICBjb25maWcuX2QgPSBjcmVhdGVVVENEYXRlLmFwcGx5KG51bGwsIGNvbmZpZy5fYSk7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5yZmMyODIyID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBmcm9tIDEpIEFTUC5ORVQsIDIpIElTTywgMykgUkZDIDI4MjIgZm9ybWF0cywgb3IgNCkgb3B0aW9uYWwgZmFsbGJhY2sgaWYgcGFyc2luZyBpc24ndCBzdHJpY3RcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nKGNvbmZpZykge1xuICAgICAgICB2YXIgbWF0Y2hlZCA9IGFzcE5ldEpzb25SZWdleC5leGVjKGNvbmZpZy5faSk7XG4gICAgICAgIGlmIChtYXRjaGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgrbWF0Y2hlZFsxXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9zdHJpY3QpIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmluYWwgYXR0ZW1wdCwgdXNlIElucHV0IEZhbGxiYWNrXG4gICAgICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2sgPSBkZXByZWNhdGUoXG4gICAgICAgICd2YWx1ZSBwcm92aWRlZCBpcyBub3QgaW4gYSByZWNvZ25pemVkIFJGQzI4MjIgb3IgSVNPIGZvcm1hdC4gbW9tZW50IGNvbnN0cnVjdGlvbiBmYWxscyBiYWNrIHRvIGpzIERhdGUoKSwgJyArXG4gICAgICAgICAgICAnd2hpY2ggaXMgbm90IHJlbGlhYmxlIGFjcm9zcyBhbGwgYnJvd3NlcnMgYW5kIHZlcnNpb25zLiBOb24gUkZDMjgyMi9JU08gZGF0ZSBmb3JtYXRzIGFyZSAnICtcbiAgICAgICAgICAgICdkaXNjb3VyYWdlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIG1ham9yIHJlbGVhc2UuIFBsZWFzZSByZWZlciB0byAnICtcbiAgICAgICAgICAgICdodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uJyxcbiAgICAgICAgZnVuY3Rpb24gKGNvbmZpZykge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoY29uZmlnLl9pICsgKGNvbmZpZy5fdXNlVVRDID8gJyBVVEMnIDogJycpKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBQaWNrIHRoZSBmaXJzdCBkZWZpbmVkIG9mIHR3byBvciB0aHJlZSBhcmd1bWVudHMuXG4gICAgZnVuY3Rpb24gZGVmYXVsdHMoYSwgYiwgYykge1xuICAgICAgICBpZiAoYSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYiAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZykge1xuICAgICAgICAvLyBob29rcyBpcyBhY3R1YWxseSB0aGUgZXhwb3J0ZWQgbW9tZW50IG9iamVjdFxuICAgICAgICB2YXIgbm93VmFsdWUgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIGlmIChjb25maWcuX3VzZVVUQykge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBub3dWYWx1ZS5nZXRVVENGdWxsWWVhcigpLFxuICAgICAgICAgICAgICAgIG5vd1ZhbHVlLmdldFVUQ01vbnRoKCksXG4gICAgICAgICAgICAgICAgbm93VmFsdWUuZ2V0VVRDRGF0ZSgpLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG4gICAgfVxuXG4gICAgLy8gY29udmVydCBhbiBhcnJheSB0byBhIGRhdGUuXG4gICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbiAgICAvLyBub3RlOiBhbGwgdmFsdWVzIHBhc3QgdGhlIHllYXIgYXJlIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gdGhlIGxvd2VzdCBwb3NzaWJsZSB2YWx1ZS5cbiAgICAvLyBbeWVhciwgbW9udGgsIGRheSAsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF1cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgIGlucHV0ID0gW10sXG4gICAgICAgICAgICBjdXJyZW50RGF0ZSxcbiAgICAgICAgICAgIGV4cGVjdGVkV2Vla2RheSxcbiAgICAgICAgICAgIHllYXJUb1VzZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKTtcblxuICAgICAgICAvL2NvbXB1dGUgZGF5IG9mIHRoZSB5ZWFyIGZyb20gd2Vla3MgYW5kIHdlZWtkYXlzXG4gICAgICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7XG4gICAgICAgICAgICBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vaWYgdGhlIGRheSBvZiB0aGUgeWVhciBpcyBzZXQsIGZpZ3VyZSBvdXQgd2hhdCBpdCBpc1xuICAgICAgICBpZiAoY29uZmlnLl9kYXlPZlllYXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgeWVhclRvVXNlID0gZGVmYXVsdHMoY29uZmlnLl9hW1lFQVJdLCBjdXJyZW50RGF0ZVtZRUFSXSk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSB8fFxuICAgICAgICAgICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID09PSAwXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dEYXlPZlllYXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZSh5ZWFyVG9Vc2UsIDAsIGNvbmZpZy5fZGF5T2ZZZWFyKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgICAgICAgICBjb25maWcuX2FbREFURV0gPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCBkYXRlLlxuICAgICAgICAvLyAqIGlmIG5vIHllYXIsIG1vbnRoLCBkYXkgb2YgbW9udGggYXJlIGdpdmVuLCBkZWZhdWx0IHRvIHRvZGF5XG4gICAgICAgIC8vICogaWYgZGF5IG9mIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG1vbnRoIGFuZCB5ZWFyXG4gICAgICAgIC8vICogaWYgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgb25seSB5ZWFyXG4gICAgICAgIC8vICogaWYgeWVhciBpcyBnaXZlbiwgZG9uJ3QgZGVmYXVsdCBhbnl0aGluZ1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyAmJiBjb25maWcuX2FbaV0gPT0gbnVsbDsgKytpKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IGN1cnJlbnREYXRlW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gWmVybyBvdXQgd2hhdGV2ZXIgd2FzIG5vdCBkZWZhdWx0ZWQsIGluY2x1ZGluZyB0aW1lXG4gICAgICAgIGZvciAoOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9XG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW2ldID09IG51bGwgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDBcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID09PSAyNCAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiZcbiAgICAgICAgICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmXG4gICAgICAgICAgICBjb25maWcuX2FbTUlMTElTRUNPTkRdID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uZmlnLl9uZXh0RGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWcuX2QgPSAoY29uZmlnLl91c2VVVEMgPyBjcmVhdGVVVENEYXRlIDogY3JlYXRlRGF0ZSkuYXBwbHkoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgaW5wdXRcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0ZWRXZWVrZGF5ID0gY29uZmlnLl91c2VVVENcbiAgICAgICAgICAgID8gY29uZmlnLl9kLmdldFVUQ0RheSgpXG4gICAgICAgICAgICA6IGNvbmZpZy5fZC5nZXREYXkoKTtcblxuICAgICAgICAvLyBBcHBseSB0aW1lem9uZSBvZmZzZXQgZnJvbSBpbnB1dC4gVGhlIGFjdHVhbCB1dGNPZmZzZXQgY2FuIGJlIGNoYW5nZWRcbiAgICAgICAgLy8gd2l0aCBwYXJzZVpvbmUuXG4gICAgICAgIGlmIChjb25maWcuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBmb3IgbWlzbWF0Y2hpbmcgZGF5IG9mIHdlZWtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl93ICYmXG4gICAgICAgICAgICB0eXBlb2YgY29uZmlnLl93LmQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICBjb25maWcuX3cuZCAhPT0gZXhwZWN0ZWRXZWVrZGF5XG4gICAgICAgICkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpIHtcbiAgICAgICAgdmFyIHcsIHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSwgdGVtcCwgd2Vla2RheU92ZXJmbG93LCBjdXJXZWVrO1xuXG4gICAgICAgIHcgPSBjb25maWcuX3c7XG4gICAgICAgIGlmICh3LkdHICE9IG51bGwgfHwgdy5XICE9IG51bGwgfHwgdy5FICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRvdyA9IDE7XG4gICAgICAgICAgICBkb3kgPSA0O1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBuZWVkIHRvIHRha2UgdGhlIGN1cnJlbnQgaXNvV2Vla1llYXIsIGJ1dCB0aGF0IGRlcGVuZHMgb25cbiAgICAgICAgICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGVcbiAgICAgICAgICAgIC8vIGEgbm93IHZlcnNpb24gb2YgY3VycmVudCBjb25maWcgKHRha2UgbG9jYWwvdXRjL29mZnNldCBmbGFncywgYW5kXG4gICAgICAgICAgICAvLyBjcmVhdGUgbm93KS5cbiAgICAgICAgICAgIHdlZWtZZWFyID0gZGVmYXVsdHMoXG4gICAgICAgICAgICAgICAgdy5HRyxcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbWUVBUl0sXG4gICAgICAgICAgICAgICAgd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCAxLCA0KS55ZWFyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcuVywgMSk7XG4gICAgICAgICAgICB3ZWVrZGF5ID0gZGVmYXVsdHMody5FLCAxKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMSB8fCB3ZWVrZGF5ID4gNykge1xuICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb3cgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3c7XG4gICAgICAgICAgICBkb3kgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3k7XG5cbiAgICAgICAgICAgIGN1cldlZWsgPSB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIGRvdywgZG95KTtcblxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LmdnLCBjb25maWcuX2FbWUVBUl0sIGN1cldlZWsueWVhcik7XG5cbiAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCB3ZWVrLlxuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcudywgY3VyV2Vlay53ZWVrKTtcblxuICAgICAgICAgICAgaWYgKHcuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZDtcbiAgICAgICAgICAgICAgICBpZiAod2Vla2RheSA8IDAgfHwgd2Vla2RheSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHcuZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gbG9jYWwgd2Vla2RheSAtLSBjb3VudGluZyBzdGFydHMgZnJvbSBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSB3LmUgKyBkb3c7XG4gICAgICAgICAgICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdlZWsgPCAxIHx8IHdlZWsgPiB3ZWVrc0luWWVhcih3ZWVrWWVhciwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla2RheU92ZXJmbG93ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcCA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gdGVtcC55ZWFyO1xuICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmRcbiAgICBob29rcy5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIFJGQyAyODIyIGZvcm1cbiAgICBob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZ1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBhbm90aGVyIHBhcnQgb2YgdGhlIGNyZWF0aW9uIGZsb3cgdG8gcHJldmVudCBjaXJjdWxhciBkZXBzXG4gICAgICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLklTT184NjAxKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuUkZDXzI4MjIpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlnLl9hID0gW107XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIGFycmF5IGlzIHVzZWQgdG8gbWFrZSBhIERhdGUsIGVpdGhlciB3aXRoIGBuZXcgRGF0ZWAgb3IgYERhdGUuVVRDYFxuICAgICAgICB2YXIgc3RyaW5nID0gJycgKyBjb25maWcuX2ksXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgcGFyc2VkSW5wdXQsXG4gICAgICAgICAgICB0b2tlbnMsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIHNraXBwZWQsXG4gICAgICAgICAgICBzdHJpbmdMZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCA9IDAsXG4gICAgICAgICAgICBlcmE7XG5cbiAgICAgICAgdG9rZW5zID1cbiAgICAgICAgICAgIGV4cGFuZEZvcm1hdChjb25maWcuX2YsIGNvbmZpZy5fbG9jYWxlKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSB8fCBbXTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgICAgIHBhcnNlZElucHV0ID0gKHN0cmluZy5tYXRjaChnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykpIHx8XG4gICAgICAgICAgICAgICAgW10pWzBdO1xuICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgc2tpcHBlZCA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpKTtcbiAgICAgICAgICAgICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc2tpcHBlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0cmluZyA9IHN0cmluZy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpICsgcGFyc2VkSW5wdXQubGVuZ3RoXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoICs9IHBhcnNlZElucHV0Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvbid0IHBhcnNlIGlmIGl0J3Mgbm90IGEga25vd24gdG9rZW5cbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0pIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBwYXJzZWRJbnB1dCwgY29uZmlnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLl9zdHJpY3QgJiYgIXBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWRkIHJlbWFpbmluZyB1bnBhcnNlZCBpbnB1dCBsZW5ndGggdG8gdGhlIHN0cmluZ1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5jaGFyc0xlZnRPdmVyID1cbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgXzEyaCBmbGFnIGlmIGhvdXIgaXMgPD0gMTJcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdIDw9IDEyICYmXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID09PSB0cnVlICYmXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPiAwXG4gICAgICAgICkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnBhcnNlZERhdGVQYXJ0cyA9IGNvbmZpZy5fYS5zbGljZSgwKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykubWVyaWRpZW0gPSBjb25maWcuX21lcmlkaWVtO1xuICAgICAgICAvLyBoYW5kbGUgbWVyaWRpZW1cbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gbWVyaWRpZW1GaXhXcmFwKFxuICAgICAgICAgICAgY29uZmlnLl9sb2NhbGUsXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0sXG4gICAgICAgICAgICBjb25maWcuX21lcmlkaWVtXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGVyYVxuICAgICAgICBlcmEgPSBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5lcmE7XG4gICAgICAgIGlmIChlcmEgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtZRUFSXSA9IGNvbmZpZy5fbG9jYWxlLmVyYXNDb252ZXJ0WWVhcihlcmEsIGNvbmZpZy5fYVtZRUFSXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgY2hlY2tPdmVyZmxvdyhjb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtRml4V3JhcChsb2NhbGUsIGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgIHZhciBpc1BtO1xuXG4gICAgICAgIGlmIChtZXJpZGllbSA9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxlLm1lcmlkaWVtSG91ciAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLm1lcmlkaWVtSG91cihob3VyLCBtZXJpZGllbSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlLmlzUE0gIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIGlzUG0gPSBsb2NhbGUuaXNQTShtZXJpZGllbSk7XG4gICAgICAgICAgICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyICs9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHN1cHBvc2VkIHRvIGhhcHBlblxuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBhcnJheSBvZiBmb3JtYXQgc3RyaW5nc1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpIHtcbiAgICAgICAgdmFyIHRlbXBDb25maWcsXG4gICAgICAgICAgICBiZXN0TW9tZW50LFxuICAgICAgICAgICAgc2NvcmVUb0JlYXQsXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgY3VycmVudFNjb3JlLFxuICAgICAgICAgICAgdmFsaWRGb3JtYXRGb3VuZCxcbiAgICAgICAgICAgIGJlc3RGb3JtYXRJc1ZhbGlkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRGb3JtYXQgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWcuX2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSA9IDA7XG4gICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICB0ZW1wQ29uZmlnID0gY29weUNvbmZpZyh7fSwgY29uZmlnKTtcbiAgICAgICAgICAgIGlmIChjb25maWcuX3VzZVVUQyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGVtcENvbmZpZy5fdXNlVVRDID0gY29uZmlnLl91c2VVVEM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCh0ZW1wQ29uZmlnKTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQodGVtcENvbmZpZykpIHtcbiAgICAgICAgICAgICAgICB2YWxpZEZvcm1hdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYW55IGlucHV0IHRoYXQgd2FzIG5vdCBwYXJzZWQgYWRkIGEgcGVuYWx0eSBmb3IgdGhhdCBmb3JtYXRcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuY2hhcnNMZWZ0T3ZlcjtcblxuICAgICAgICAgICAgLy9vciB0b2tlbnNcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykudW51c2VkVG9rZW5zLmxlbmd0aCAqIDEwO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuc2NvcmUgPSBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgICAgIGlmICghYmVzdEZvcm1hdElzVmFsaWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIHNjb3JlVG9CZWF0ID09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFNjb3JlIDwgc2NvcmVUb0JlYXQgfHxcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRGb3JtYXRGb3VuZFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1vbWVudCA9IHRlbXBDb25maWc7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZEZvcm1hdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZXN0Rm9ybWF0SXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCkge1xuICAgICAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdE1vbWVudCA9IHRlbXBDb25maWc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXh0ZW5kKGNvbmZpZywgYmVzdE1vbWVudCB8fCB0ZW1wQ29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tT2JqZWN0KGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaSA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGNvbmZpZy5faSksXG4gICAgICAgICAgICBkYXlPckRhdGUgPSBpLmRheSA9PT0gdW5kZWZpbmVkID8gaS5kYXRlIDogaS5kYXk7XG4gICAgICAgIGNvbmZpZy5fYSA9IG1hcChcbiAgICAgICAgICAgIFtpLnllYXIsIGkubW9udGgsIGRheU9yRGF0ZSwgaS5ob3VyLCBpLm1pbnV0ZSwgaS5zZWNvbmQsIGkubWlsbGlzZWNvbmRdLFxuICAgICAgICAgICAgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmogJiYgcGFyc2VJbnQob2JqLCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRnJvbUNvbmZpZyhjb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhwcmVwYXJlQ29uZmlnKGNvbmZpZykpKTtcbiAgICAgICAgaWYgKHJlcy5fbmV4dERheSkge1xuICAgICAgICAgICAgLy8gQWRkaW5nIGlzIHNtYXJ0IGVub3VnaCBhcm91bmQgRFNUXG4gICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICByZXMuX25leHREYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXBhcmVDb25maWcoY29uZmlnKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIGZvcm1hdCA9IGNvbmZpZy5fZjtcblxuICAgICAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IGdldExvY2FsZShjb25maWcuX2wpO1xuXG4gICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCAoZm9ybWF0ID09PSB1bmRlZmluZWQgJiYgaW5wdXQgPT09ICcnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoeyBudWxsSW5wdXQ6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uZmlnLl9pID0gaW5wdXQgPSBjb25maWcuX2xvY2FsZS5wcmVwYXJzZShpbnB1dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNb21lbnQoaW5wdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vbWVudChjaGVja092ZXJmbG93KGlucHV0KSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gaW5wdXQ7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShmb3JtYXQpKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc1ZhbGlkKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pO1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nKGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IG1hcChpbnB1dC5zbGljZSgwKSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tT2JqZWN0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICAvLyBmcm9tIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIGlzVVRDKSB7XG4gICAgICAgIHZhciBjID0ge307XG5cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gdHJ1ZSB8fCBmb3JtYXQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBzdHJpY3QgPSBmb3JtYXQ7XG4gICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9jYWxlID09PSB0cnVlIHx8IGxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHN0cmljdCA9IGxvY2FsZTtcbiAgICAgICAgICAgIGxvY2FsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChpc09iamVjdChpbnB1dCkgJiYgaXNPYmplY3RFbXB0eShpbnB1dCkpIHx8XG4gICAgICAgICAgICAoaXNBcnJheShpbnB1dCkgJiYgaW5wdXQubGVuZ3RoID09PSAwKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGlucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gbXVzdCBiZSBkb25lIHRoaXMgd2F5LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyM1xuICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlO1xuICAgICAgICBjLl91c2VVVEMgPSBjLl9pc1VUQyA9IGlzVVRDO1xuICAgICAgICBjLl9sID0gbG9jYWxlO1xuICAgICAgICBjLl9pID0gaW5wdXQ7XG4gICAgICAgIGMuX2YgPSBmb3JtYXQ7XG4gICAgICAgIGMuX3N0cmljdCA9IHN0cmljdDtcblxuICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUNvbmZpZyhjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbChpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHZhciBwcm90b3R5cGVNaW4gPSBkZXByZWNhdGUoXG4gICAgICAgICAgICAnbW9tZW50KCkubWluIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPCB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBwcm90b3R5cGVNYXggPSBkZXByZWNhdGUoXG4gICAgICAgICAgICAnbW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWluIGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPiB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgLy8gUGljayBhIG1vbWVudCBtIGZyb20gbW9tZW50cyBzbyB0aGF0IG1bZm5dKG90aGVyKSBpcyB0cnVlIGZvciBhbGxcbiAgICAvLyBvdGhlci4gVGhpcyByZWxpZXMgb24gdGhlIGZ1bmN0aW9uIGZuIHRvIGJlIHRyYW5zaXRpdmUuXG4gICAgLy9cbiAgICAvLyBtb21lbnRzIHNob3VsZCBlaXRoZXIgYmUgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMgb3IgYW4gYXJyYXksIHdob3NlXG4gICAgLy8gZmlyc3QgZWxlbWVudCBpcyBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cy5cbiAgICBmdW5jdGlvbiBwaWNrQnkoZm4sIG1vbWVudHMpIHtcbiAgICAgICAgdmFyIHJlcywgaTtcbiAgICAgICAgaWYgKG1vbWVudHMubGVuZ3RoID09PSAxICYmIGlzQXJyYXkobW9tZW50c1swXSkpIHtcbiAgICAgICAgICAgIG1vbWVudHMgPSBtb21lbnRzWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9tZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbCgpO1xuICAgICAgICB9XG4gICAgICAgIHJlcyA9IG1vbWVudHNbMF07XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBtb21lbnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudHNbaV0uaXNWYWxpZCgpIHx8IG1vbWVudHNbaV1bZm5dKHJlcykpIHtcbiAgICAgICAgICAgICAgICByZXMgPSBtb21lbnRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVXNlIFtdLnNvcnQgaW5zdGVhZD9cbiAgICBmdW5jdGlvbiBtaW4oKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQmVmb3JlJywgYXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF4KCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgICAgICByZXR1cm4gcGlja0J5KCdpc0FmdGVyJywgYXJncyk7XG4gICAgfVxuXG4gICAgdmFyIG5vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93ID8gRGF0ZS5ub3coKSA6ICtuZXcgRGF0ZSgpO1xuICAgIH07XG5cbiAgICB2YXIgb3JkZXJpbmcgPSBbXG4gICAgICAgICd5ZWFyJyxcbiAgICAgICAgJ3F1YXJ0ZXInLFxuICAgICAgICAnbW9udGgnLFxuICAgICAgICAnd2VlaycsXG4gICAgICAgICdkYXknLFxuICAgICAgICAnaG91cicsXG4gICAgICAgICdtaW51dGUnLFxuICAgICAgICAnc2Vjb25kJyxcbiAgICAgICAgJ21pbGxpc2Vjb25kJyxcbiAgICBdO1xuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvblZhbGlkKG0pIHtcbiAgICAgICAgdmFyIGtleSxcbiAgICAgICAgICAgIHVuaXRIYXNEZWNpbWFsID0gZmFsc2UsXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGtleSBpbiBtKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgaGFzT3duUHJvcChtLCBrZXkpICYmXG4gICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgaW5kZXhPZi5jYWxsKG9yZGVyaW5nLCBrZXkpICE9PSAtMSAmJlxuICAgICAgICAgICAgICAgICAgICAobVtrZXldID09IG51bGwgfHwgIWlzTmFOKG1ba2V5XSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IG9yZGVyaW5nLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAobVtvcmRlcmluZ1tpXV0pIHtcbiAgICAgICAgICAgICAgICBpZiAodW5pdEhhc0RlY2ltYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBvbmx5IGFsbG93IG5vbi1pbnRlZ2VycyBmb3Igc21hbGxlc3QgdW5pdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VGbG9hdChtW29yZGVyaW5nW2ldXSkgIT09IHRvSW50KG1bb3JkZXJpbmdbaV1dKSkge1xuICAgICAgICAgICAgICAgICAgICB1bml0SGFzRGVjaW1hbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbihOYU4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIER1cmF0aW9uKGR1cmF0aW9uKSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSBub3JtYWxpemVPYmplY3RVbml0cyhkdXJhdGlvbiksXG4gICAgICAgICAgICB5ZWFycyA9IG5vcm1hbGl6ZWRJbnB1dC55ZWFyIHx8IDAsXG4gICAgICAgICAgICBxdWFydGVycyA9IG5vcm1hbGl6ZWRJbnB1dC5xdWFydGVyIHx8IDAsXG4gICAgICAgICAgICBtb250aHMgPSBub3JtYWxpemVkSW5wdXQubW9udGggfHwgMCxcbiAgICAgICAgICAgIHdlZWtzID0gbm9ybWFsaXplZElucHV0LndlZWsgfHwgbm9ybWFsaXplZElucHV0Lmlzb1dlZWsgfHwgMCxcbiAgICAgICAgICAgIGRheXMgPSBub3JtYWxpemVkSW5wdXQuZGF5IHx8IDAsXG4gICAgICAgICAgICBob3VycyA9IG5vcm1hbGl6ZWRJbnB1dC5ob3VyIHx8IDAsXG4gICAgICAgICAgICBtaW51dGVzID0gbm9ybWFsaXplZElucHV0Lm1pbnV0ZSB8fCAwLFxuICAgICAgICAgICAgc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5zZWNvbmQgfHwgMCxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kcyA9IG5vcm1hbGl6ZWRJbnB1dC5taWxsaXNlY29uZCB8fCAwO1xuXG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSBpc0R1cmF0aW9uVmFsaWQobm9ybWFsaXplZElucHV0KTtcblxuICAgICAgICAvLyByZXByZXNlbnRhdGlvbiBmb3IgZGF0ZUFkZFJlbW92ZVxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPVxuICAgICAgICAgICAgK21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICBzZWNvbmRzICogMWUzICsgLy8gMTAwMFxuICAgICAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MFxuICAgICAgICAgICAgaG91cnMgKiAxMDAwICogNjAgKiA2MDsgLy91c2luZyAxMDAwICogNjAgKiA2MCBpbnN0ZWFkIG9mIDM2ZTUgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yOTc4XG4gICAgICAgIC8vIEJlY2F1c2Ugb2YgZGF0ZUFkZFJlbW92ZSB0cmVhdHMgMjQgaG91cnMgYXMgZGlmZmVyZW50IGZyb20gYVxuICAgICAgICAvLyBkYXkgd2hlbiB3b3JraW5nIGFyb3VuZCBEU1QsIHdlIG5lZWQgdG8gc3RvcmUgdGhlbSBzZXBhcmF0ZWx5XG4gICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArIHdlZWtzICogNztcbiAgICAgICAgLy8gSXQgaXMgaW1wb3NzaWJsZSB0byB0cmFuc2xhdGUgbW9udGhzIGludG8gZGF5cyB3aXRob3V0IGtub3dpbmdcbiAgICAgICAgLy8gd2hpY2ggbW9udGhzIHlvdSBhcmUgYXJlIHRhbGtpbmcgYWJvdXQsIHNvIHdlIGhhdmUgdG8gc3RvcmVcbiAgICAgICAgLy8gaXQgc2VwYXJhdGVseS5cbiAgICAgICAgdGhpcy5fbW9udGhzID0gK21vbnRocyArIHF1YXJ0ZXJzICogMyArIHllYXJzICogMTI7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IGdldExvY2FsZSgpO1xuXG4gICAgICAgIHRoaXMuX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRHVyYXRpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEdXJhdGlvbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNSb3VuZChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNvbXBhcmUgdHdvIGFycmF5cywgcmV0dXJuIHRoZSBudW1iZXIgb2YgZGlmZmVyZW5jZXNcbiAgICBmdW5jdGlvbiBjb21wYXJlQXJyYXlzKGFycmF5MSwgYXJyYXkyLCBkb250Q29udmVydCkge1xuICAgICAgICB2YXIgbGVuID0gTWF0aC5taW4oYXJyYXkxLmxlbmd0aCwgYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBsZW5ndGhEaWZmID0gTWF0aC5hYnMoYXJyYXkxLmxlbmd0aCAtIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgZGlmZnMgPSAwLFxuICAgICAgICAgICAgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGRvbnRDb252ZXJ0ICYmIGFycmF5MVtpXSAhPT0gYXJyYXkyW2ldKSB8fFxuICAgICAgICAgICAgICAgICghZG9udENvbnZlcnQgJiYgdG9JbnQoYXJyYXkxW2ldKSAhPT0gdG9JbnQoYXJyYXkyW2ldKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpZmZzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpZmZzICsgbGVuZ3RoRGlmZjtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBvZmZzZXQodG9rZW4sIHNlcGFyYXRvcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMudXRjT2Zmc2V0KCksXG4gICAgICAgICAgICAgICAgc2lnbiA9ICcrJztcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgICAgICAgICAgICBzaWduID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBzaWduICtcbiAgICAgICAgICAgICAgICB6ZXJvRmlsbCh+fihvZmZzZXQgLyA2MCksIDIpICtcbiAgICAgICAgICAgICAgICBzZXBhcmF0b3IgK1xuICAgICAgICAgICAgICAgIHplcm9GaWxsKH5+b2Zmc2V0ICUgNjAsIDIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvZmZzZXQoJ1onLCAnOicpO1xuICAgIG9mZnNldCgnWlonLCAnJyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdaJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gICAgYWRkUmVnZXhUb2tlbignWlonLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnWicsICdaWiddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl91c2VVVEMgPSB0cnVlO1xuICAgICAgICBjb25maWcuX3R6bSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gdGltZXpvbmUgY2h1bmtlclxuICAgIC8vICcrMTA6MDAnID4gWycxMCcsICAnMDAnXVxuICAgIC8vICctMTUzMCcgID4gWyctMTUnLCAnMzAnXVxuICAgIHZhciBjaHVua09mZnNldCA9IC8oW1xcK1xcLV18XFxkXFxkKS9naTtcblxuICAgIGZ1bmN0aW9uIG9mZnNldEZyb21TdHJpbmcobWF0Y2hlciwgc3RyaW5nKSB7XG4gICAgICAgIHZhciBtYXRjaGVzID0gKHN0cmluZyB8fCAnJykubWF0Y2gobWF0Y2hlciksXG4gICAgICAgICAgICBjaHVuayxcbiAgICAgICAgICAgIHBhcnRzLFxuICAgICAgICAgICAgbWludXRlcztcblxuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjaHVuayA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICAgICAgcGFydHMgPSAoY2h1bmsgKyAnJykubWF0Y2goY2h1bmtPZmZzZXQpIHx8IFsnLScsIDAsIDBdO1xuICAgICAgICBtaW51dGVzID0gKyhwYXJ0c1sxXSAqIDYwKSArIHRvSW50KHBhcnRzWzJdKTtcblxuICAgICAgICByZXR1cm4gbWludXRlcyA9PT0gMCA/IDAgOiBwYXJ0c1swXSA9PT0gJysnID8gbWludXRlcyA6IC1taW51dGVzO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhIG1vbWVudCBmcm9tIGlucHV0LCB0aGF0IGlzIGxvY2FsL3V0Yy96b25lIGVxdWl2YWxlbnQgdG8gbW9kZWwuXG4gICAgZnVuY3Rpb24gY2xvbmVXaXRoT2Zmc2V0KGlucHV0LCBtb2RlbCkge1xuICAgICAgICB2YXIgcmVzLCBkaWZmO1xuICAgICAgICBpZiAobW9kZWwuX2lzVVRDKSB7XG4gICAgICAgICAgICByZXMgPSBtb2RlbC5jbG9uZSgpO1xuICAgICAgICAgICAgZGlmZiA9XG4gICAgICAgICAgICAgICAgKGlzTW9tZW50KGlucHV0KSB8fCBpc0RhdGUoaW5wdXQpXG4gICAgICAgICAgICAgICAgICAgID8gaW5wdXQudmFsdWVPZigpXG4gICAgICAgICAgICAgICAgICAgIDogY3JlYXRlTG9jYWwoaW5wdXQpLnZhbHVlT2YoKSkgLSByZXMudmFsdWVPZigpO1xuICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICAgICAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHJlcywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCkubG9jYWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERhdGVPZmZzZXQobSkge1xuICAgICAgICAvLyBPbiBGaXJlZm94LjI0IERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyBhIGZsb2F0aW5nIHBvaW50LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9wdWxsLzE4NzFcbiAgICAgICAgcmV0dXJuIC1NYXRoLnJvdW5kKG0uX2QuZ2V0VGltZXpvbmVPZmZzZXQoKSk7XG4gICAgfVxuXG4gICAgLy8gSE9PS1NcblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgYSBtb21lbnQgaXMgbXV0YXRlZC5cbiAgICAvLyBJdCBpcyBpbnRlbmRlZCB0byBrZWVwIHRoZSBvZmZzZXQgaW4gc3luYyB3aXRoIHRoZSB0aW1lem9uZS5cbiAgICBob29rcy51cGRhdGVPZmZzZXQgPSBmdW5jdGlvbiAoKSB7fTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIC8vIGtlZXBMb2NhbFRpbWUgPSB0cnVlIG1lYW5zIG9ubHkgY2hhbmdlIHRoZSB0aW1lem9uZSwgd2l0aG91dFxuICAgIC8vIGFmZmVjdGluZyB0aGUgbG9jYWwgaG91ci4gU28gNTozMToyNiArMDMwMCAtLVt1dGNPZmZzZXQoMiwgdHJ1ZSldLS0+XG4gICAgLy8gNTozMToyNiArMDIwMCBJdCBpcyBwb3NzaWJsZSB0aGF0IDU6MzE6MjYgZG9lc24ndCBleGlzdCB3aXRoIG9mZnNldFxuICAgIC8vICswMjAwLCBzbyB3ZSBhZGp1c3QgdGhlIHRpbWUgYXMgbmVlZGVkLCB0byBiZSB2YWxpZC5cbiAgICAvL1xuICAgIC8vIEtlZXBpbmcgdGhlIHRpbWUgYWN0dWFsbHkgYWRkcy9zdWJ0cmFjdHMgKG9uZSBob3VyKVxuICAgIC8vIGZyb20gdGhlIGFjdHVhbCByZXByZXNlbnRlZCB0aW1lLiBUaGF0IGlzIHdoeSB3ZSBjYWxsIHVwZGF0ZU9mZnNldFxuICAgIC8vIGEgc2Vjb25kIHRpbWUuIEluIGNhc2UgaXQgd2FudHMgdXMgdG8gY2hhbmdlIHRoZSBvZmZzZXQgYWdhaW5cbiAgICAvLyBfY2hhbmdlSW5Qcm9ncmVzcyA9PSB0cnVlIGNhc2UsIHRoZW4gd2UgaGF2ZSB0byBhZGp1c3QsIGJlY2F1c2VcbiAgICAvLyB0aGVyZSBpcyBubyBzdWNoIHRpbWUgaW4gdGhlIGdpdmVuIHRpbWV6b25lLlxuICAgIGZ1bmN0aW9uIGdldFNldE9mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSwga2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMuX29mZnNldCB8fCAwLFxuICAgICAgICAgICAgbG9jYWxBZGp1c3Q7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGlucHV0KSA8IDE2ICYmICFrZWVwTWludXRlcykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX29mZnNldCA9IGlucHV0O1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGxvY2FsQWRqdXN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChsb2NhbEFkanVzdCwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU3VidHJhY3QoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRHVyYXRpb24oaW5wdXQgLSBvZmZzZXQsICdtJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFpvbmUoaW5wdXQsIGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSAtaW5wdXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gLXRoaXMudXRjT2Zmc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb1VUQyhrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb0xvY2FsKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChnZXREYXRlT2Zmc2V0KHRoaXMpLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0KCkge1xuICAgICAgICBpZiAodGhpcy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRoaXMuX3R6bSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9pID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFyIHRab25lID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaE9mZnNldCwgdGhpcy5faSk7XG4gICAgICAgICAgICBpZiAodFpvbmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoMCwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzQWxpZ25lZEhvdXJPZmZzZXQoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0ID0gaW5wdXQgPyBjcmVhdGVMb2NhbChpbnB1dCkudXRjT2Zmc2V0KCkgOiAwO1xuXG4gICAgICAgIHJldHVybiAodGhpcy51dGNPZmZzZXQoKSAtIGlucHV0KSAlIDYwID09PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCgwKS51dGNPZmZzZXQoKSB8fFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCg1KS51dGNPZmZzZXQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZCgpIHtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLl9pc0RTVFNoaWZ0ZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGMgPSB7fSxcbiAgICAgICAgICAgIG90aGVyO1xuXG4gICAgICAgIGNvcHlDb25maWcoYywgdGhpcyk7XG4gICAgICAgIGMgPSBwcmVwYXJlQ29uZmlnKGMpO1xuXG4gICAgICAgIGlmIChjLl9hKSB7XG4gICAgICAgICAgICBvdGhlciA9IGMuX2lzVVRDID8gY3JlYXRlVVRDKGMuX2EpIDogY3JlYXRlTG9jYWwoYy5fYSk7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPVxuICAgICAgICAgICAgICAgIHRoaXMuaXNWYWxpZCgpICYmIGNvbXBhcmVBcnJheXMoYy5fYSwgb3RoZXIudG9BcnJheSgpKSA+IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMb2NhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gIXRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGNPZmZzZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDICYmIHRoaXMuX29mZnNldCA9PT0gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEFTUC5ORVQganNvbiBkYXRlIGZvcm1hdCByZWdleFxuICAgIHZhciBhc3BOZXRSZWdleCA9IC9eKC18XFwrKT8oPzooXFxkKilbLiBdKT8oXFxkKyk6KFxcZCspKD86OihcXGQrKShcXC5cXGQqKT8pPyQvLFxuICAgICAgICAvLyBmcm9tIGh0dHA6Ly9kb2NzLmNsb3N1cmUtbGlicmFyeS5nb29nbGVjb2RlLmNvbS9naXQvY2xvc3VyZV9nb29nX2RhdGVfZGF0ZS5qcy5zb3VyY2UuaHRtbFxuICAgICAgICAvLyBzb21ld2hhdCBtb3JlIGluIGxpbmUgd2l0aCA0LjQuMy4yIDIwMDQgc3BlYywgYnV0IGFsbG93cyBkZWNpbWFsIGFueXdoZXJlXG4gICAgICAgIC8vIGFuZCBmdXJ0aGVyIG1vZGlmaWVkIHRvIGFsbG93IGZvciBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB3ZWVrIGFuZCBkYXlcbiAgICAgICAgaXNvUmVnZXggPSAvXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlRHVyYXRpb24oaW5wdXQsIGtleSkge1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBpbnB1dCxcbiAgICAgICAgICAgIC8vIG1hdGNoaW5nIGFnYWluc3QgcmVnZXhwIGlzIGV4cGVuc2l2ZSwgZG8gaXQgb24gZGVtYW5kXG4gICAgICAgICAgICBtYXRjaCA9IG51bGwsXG4gICAgICAgICAgICBzaWduLFxuICAgICAgICAgICAgcmV0LFxuICAgICAgICAgICAgZGlmZlJlcztcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIG1zOiBpbnB1dC5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgICAgIGQ6IGlucHV0Ll9kYXlzLFxuICAgICAgICAgICAgICAgIE06IGlucHV0Ll9tb250aHMsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGlucHV0KSB8fCAhaXNOYU4oK2lucHV0KSkge1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7fTtcbiAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbltrZXldID0gK2lucHV0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbi5taWxsaXNlY29uZHMgPSAraW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoKG1hdGNoID0gYXNwTmV0UmVnZXguZXhlYyhpbnB1dCkpKSB7XG4gICAgICAgICAgICBzaWduID0gbWF0Y2hbMV0gPT09ICctJyA/IC0xIDogMTtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICAgICAgZDogdG9JbnQobWF0Y2hbREFURV0pICogc2lnbixcbiAgICAgICAgICAgICAgICBoOiB0b0ludChtYXRjaFtIT1VSXSkgKiBzaWduLFxuICAgICAgICAgICAgICAgIG06IHRvSW50KG1hdGNoW01JTlVURV0pICogc2lnbixcbiAgICAgICAgICAgICAgICBzOiB0b0ludChtYXRjaFtTRUNPTkRdKSAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbXM6IHRvSW50KGFic1JvdW5kKG1hdGNoW01JTExJU0VDT05EXSAqIDEwMDApKSAqIHNpZ24sIC8vIHRoZSBtaWxsaXNlY29uZCBkZWNpbWFsIHBvaW50IGlzIGluY2x1ZGVkIGluIHRoZSBtYXRjaFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICgobWF0Y2ggPSBpc29SZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSBtYXRjaFsxXSA9PT0gJy0nID8gLTEgOiAxO1xuICAgICAgICAgICAgZHVyYXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeTogcGFyc2VJc28obWF0Y2hbMl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIE06IHBhcnNlSXNvKG1hdGNoWzNdLCBzaWduKSxcbiAgICAgICAgICAgICAgICB3OiBwYXJzZUlzbyhtYXRjaFs0XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgZDogcGFyc2VJc28obWF0Y2hbNV0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIGg6IHBhcnNlSXNvKG1hdGNoWzZdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBtOiBwYXJzZUlzbyhtYXRjaFs3XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgczogcGFyc2VJc28obWF0Y2hbOF0sIHNpZ24pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChkdXJhdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGR1cmF0aW9uID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgKCdmcm9tJyBpbiBkdXJhdGlvbiB8fCAndG8nIGluIGR1cmF0aW9uKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGRpZmZSZXMgPSBtb21lbnRzRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbChkdXJhdGlvbi5mcm9tKSxcbiAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbChkdXJhdGlvbi50bylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgICAgICBkdXJhdGlvbi5tcyA9IGRpZmZSZXMubWlsbGlzZWNvbmRzO1xuICAgICAgICAgICAgZHVyYXRpb24uTSA9IGRpZmZSZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0ID0gbmV3IER1cmF0aW9uKGR1cmF0aW9uKTtcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkgJiYgaGFzT3duUHJvcChpbnB1dCwgJ19sb2NhbGUnKSkge1xuICAgICAgICAgICAgcmV0Ll9sb2NhbGUgPSBpbnB1dC5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpICYmIGhhc093blByb3AoaW5wdXQsICdfaXNWYWxpZCcpKSB7XG4gICAgICAgICAgICByZXQuX2lzVmFsaWQgPSBpbnB1dC5faXNWYWxpZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgY3JlYXRlRHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGU7XG4gICAgY3JlYXRlRHVyYXRpb24uaW52YWxpZCA9IGNyZWF0ZUludmFsaWQkMTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvKGlucCwgc2lnbikge1xuICAgICAgICAvLyBXZSdkIG5vcm1hbGx5IHVzZSB+fmlucCBmb3IgdGhpcywgYnV0IHVuZm9ydHVuYXRlbHkgaXQgYWxzb1xuICAgICAgICAvLyBjb252ZXJ0cyBmbG9hdHMgdG8gaW50cy5cbiAgICAgICAgLy8gaW5wIG1heSBiZSB1bmRlZmluZWQsIHNvIGNhcmVmdWwgY2FsbGluZyByZXBsYWNlIG9uIGl0LlxuICAgICAgICB2YXIgcmVzID0gaW5wICYmIHBhcnNlRmxvYXQoaW5wLnJlcGxhY2UoJywnLCAnLicpKTtcbiAgICAgICAgLy8gYXBwbHkgc2lnbiB3aGlsZSB3ZSdyZSBhdCBpdFxuICAgICAgICByZXR1cm4gKGlzTmFOKHJlcykgPyAwIDogcmVzKSAqIHNpZ247XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcikge1xuICAgICAgICB2YXIgcmVzID0ge307XG5cbiAgICAgICAgcmVzLm1vbnRocyA9XG4gICAgICAgICAgICBvdGhlci5tb250aCgpIC0gYmFzZS5tb250aCgpICsgKG90aGVyLnllYXIoKSAtIGJhc2UueWVhcigpKSAqIDEyO1xuICAgICAgICBpZiAoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpLmlzQWZ0ZXIob3RoZXIpKSB7XG4gICAgICAgICAgICAtLXJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXMubWlsbGlzZWNvbmRzID0gK290aGVyIC0gK2Jhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKTtcblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXM7XG4gICAgICAgIGlmICghKGJhc2UuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7IG1pbGxpc2Vjb25kczogMCwgbW9udGhzOiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBvdGhlciA9IGNsb25lV2l0aE9mZnNldChvdGhlciwgYmFzZSk7XG4gICAgICAgIGlmIChiYXNlLmlzQmVmb3JlKG90aGVyKSkge1xuICAgICAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKG90aGVyLCBiYXNlKTtcbiAgICAgICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSAtcmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgIHJlcy5tb250aHMgPSAtcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVtb3ZlICduYW1lJyBhcmcgYWZ0ZXIgZGVwcmVjYXRpb24gaXMgcmVtb3ZlZFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUFkZGVyKGRpcmVjdGlvbiwgbmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCwgcGVyaW9kKSB7XG4gICAgICAgICAgICB2YXIgZHVyLCB0bXA7XG4gICAgICAgICAgICAvL2ludmVydCB0aGUgYXJndW1lbnRzLCBidXQgY29tcGxhaW4gYWJvdXQgaXRcbiAgICAgICAgICAgIGlmIChwZXJpb2QgIT09IG51bGwgJiYgIWlzTmFOKCtwZXJpb2QpKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAnbW9tZW50KCkuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcocGVyaW9kLCBudW1iZXIpIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgbW9tZW50KCkuJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcobnVtYmVyLCBwZXJpb2QpLiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3JlIGluZm8uJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdG1wID0gdmFsO1xuICAgICAgICAgICAgICAgIHZhbCA9IHBlcmlvZDtcbiAgICAgICAgICAgICAgICBwZXJpb2QgPSB0bXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGR1ciA9IGNyZWF0ZUR1cmF0aW9uKHZhbCwgcGVyaW9kKTtcbiAgICAgICAgICAgIGFkZFN1YnRyYWN0KHRoaXMsIGR1ciwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0KG1vbSwgZHVyYXRpb24sIGlzQWRkaW5nLCB1cGRhdGVPZmZzZXQpIHtcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IGR1cmF0aW9uLl9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICBkYXlzID0gYWJzUm91bmQoZHVyYXRpb24uX2RheXMpLFxuICAgICAgICAgICAgbW9udGhzID0gYWJzUm91bmQoZHVyYXRpb24uX21vbnRocyk7XG5cbiAgICAgICAgaWYgKCFtb20uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAvLyBObyBvcFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlT2Zmc2V0ID0gdXBkYXRlT2Zmc2V0ID09IG51bGwgPyB0cnVlIDogdXBkYXRlT2Zmc2V0O1xuXG4gICAgICAgIGlmIChtb250aHMpIHtcbiAgICAgICAgICAgIHNldE1vbnRoKG1vbSwgZ2V0KG1vbSwgJ01vbnRoJykgKyBtb250aHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRheXMpIHtcbiAgICAgICAgICAgIHNldCQxKG1vbSwgJ0RhdGUnLCBnZXQobW9tLCAnRGF0ZScpICsgZGF5cyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWlsbGlzZWNvbmRzKSB7XG4gICAgICAgICAgICBtb20uX2Quc2V0VGltZShtb20uX2QudmFsdWVPZigpICsgbWlsbGlzZWNvbmRzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1cGRhdGVPZmZzZXQpIHtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldChtb20sIGRheXMgfHwgbW9udGhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBhZGQgPSBjcmVhdGVBZGRlcigxLCAnYWRkJyksXG4gICAgICAgIHN1YnRyYWN0ID0gY3JlYXRlQWRkZXIoLTEsICdzdWJ0cmFjdCcpO1xuXG4gICAgZnVuY3Rpb24gaXNTdHJpbmcoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XG4gICAgfVxuXG4gICAgLy8gdHlwZSBNb21lbnRJbnB1dCA9IE1vbWVudCB8IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCAobnVtYmVyIHwgc3RyaW5nKVtdIHwgTW9tZW50SW5wdXRPYmplY3QgfCB2b2lkOyAvLyBudWxsIHwgdW5kZWZpbmVkXG4gICAgZnVuY3Rpb24gaXNNb21lbnRJbnB1dChpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaXNNb21lbnQoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc0RhdGUoaW5wdXQpIHx8XG4gICAgICAgICAgICBpc1N0cmluZyhpbnB1dCkgfHxcbiAgICAgICAgICAgIGlzTnVtYmVyKGlucHV0KSB8fFxuICAgICAgICAgICAgaXNOdW1iZXJPclN0cmluZ0FycmF5KGlucHV0KSB8fFxuICAgICAgICAgICAgaXNNb21lbnRJbnB1dE9iamVjdChpbnB1dCkgfHxcbiAgICAgICAgICAgIGlucHV0ID09PSBudWxsIHx8XG4gICAgICAgICAgICBpbnB1dCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNNb21lbnRJbnB1dE9iamVjdChpbnB1dCkge1xuICAgICAgICB2YXIgb2JqZWN0VGVzdCA9IGlzT2JqZWN0KGlucHV0KSAmJiAhaXNPYmplY3RFbXB0eShpbnB1dCksXG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbXG4gICAgICAgICAgICAgICAgJ3llYXJzJyxcbiAgICAgICAgICAgICAgICAneWVhcicsXG4gICAgICAgICAgICAgICAgJ3knLFxuICAgICAgICAgICAgICAgICdtb250aHMnLFxuICAgICAgICAgICAgICAgICdtb250aCcsXG4gICAgICAgICAgICAgICAgJ00nLFxuICAgICAgICAgICAgICAgICdkYXlzJyxcbiAgICAgICAgICAgICAgICAnZGF5JyxcbiAgICAgICAgICAgICAgICAnZCcsXG4gICAgICAgICAgICAgICAgJ2RhdGVzJyxcbiAgICAgICAgICAgICAgICAnZGF0ZScsXG4gICAgICAgICAgICAgICAgJ0QnLFxuICAgICAgICAgICAgICAgICdob3VycycsXG4gICAgICAgICAgICAgICAgJ2hvdXInLFxuICAgICAgICAgICAgICAgICdoJyxcbiAgICAgICAgICAgICAgICAnbWludXRlcycsXG4gICAgICAgICAgICAgICAgJ21pbnV0ZScsXG4gICAgICAgICAgICAgICAgJ20nLFxuICAgICAgICAgICAgICAgICdzZWNvbmRzJyxcbiAgICAgICAgICAgICAgICAnc2Vjb25kJyxcbiAgICAgICAgICAgICAgICAncycsXG4gICAgICAgICAgICAgICAgJ21pbGxpc2Vjb25kcycsXG4gICAgICAgICAgICAgICAgJ21pbGxpc2Vjb25kJyxcbiAgICAgICAgICAgICAgICAnbXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBwcm9wZXJ0eTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW2ldO1xuICAgICAgICAgICAgcHJvcGVydHlUZXN0ID0gcHJvcGVydHlUZXN0IHx8IGhhc093blByb3AoaW5wdXQsIHByb3BlcnR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYmplY3RUZXN0ICYmIHByb3BlcnR5VGVzdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc051bWJlck9yU3RyaW5nQXJyYXkoaW5wdXQpIHtcbiAgICAgICAgdmFyIGFycmF5VGVzdCA9IGlzQXJyYXkoaW5wdXQpLFxuICAgICAgICAgICAgZGF0YVR5cGVUZXN0ID0gZmFsc2U7XG4gICAgICAgIGlmIChhcnJheVRlc3QpIHtcbiAgICAgICAgICAgIGRhdGFUeXBlVGVzdCA9XG4gICAgICAgICAgICAgICAgaW5wdXQuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhaXNOdW1iZXIoaXRlbSkgJiYgaXNTdHJpbmcoaW5wdXQpO1xuICAgICAgICAgICAgICAgIH0pLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXJyYXlUZXN0ICYmIGRhdGFUeXBlVGVzdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0NhbGVuZGFyU3BlYyhpbnB1dCkge1xuICAgICAgICB2YXIgb2JqZWN0VGVzdCA9IGlzT2JqZWN0KGlucHV0KSAmJiAhaXNPYmplY3RFbXB0eShpbnB1dCksXG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBmYWxzZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBbXG4gICAgICAgICAgICAgICAgJ3NhbWVEYXknLFxuICAgICAgICAgICAgICAgICduZXh0RGF5JyxcbiAgICAgICAgICAgICAgICAnbGFzdERheScsXG4gICAgICAgICAgICAgICAgJ25leHRXZWVrJyxcbiAgICAgICAgICAgICAgICAnbGFzdFdlZWsnLFxuICAgICAgICAgICAgICAgICdzYW1lRWxzZScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIHByb3BlcnR5O1xuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICBwcm9wZXJ0eVRlc3QgPSBwcm9wZXJ0eVRlc3QgfHwgaGFzT3duUHJvcChpbnB1dCwgcHJvcGVydHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9iamVjdFRlc3QgJiYgcHJvcGVydHlUZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENhbGVuZGFyRm9ybWF0KG15TW9tZW50LCBub3cpIHtcbiAgICAgICAgdmFyIGRpZmYgPSBteU1vbWVudC5kaWZmKG5vdywgJ2RheXMnLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIGRpZmYgPCAtNlxuICAgICAgICAgICAgPyAnc2FtZUVsc2UnXG4gICAgICAgICAgICA6IGRpZmYgPCAtMVxuICAgICAgICAgICAgPyAnbGFzdFdlZWsnXG4gICAgICAgICAgICA6IGRpZmYgPCAwXG4gICAgICAgICAgICA/ICdsYXN0RGF5J1xuICAgICAgICAgICAgOiBkaWZmIDwgMVxuICAgICAgICAgICAgPyAnc2FtZURheSdcbiAgICAgICAgICAgIDogZGlmZiA8IDJcbiAgICAgICAgICAgID8gJ25leHREYXknXG4gICAgICAgICAgICA6IGRpZmYgPCA3XG4gICAgICAgICAgICA/ICduZXh0V2VlaydcbiAgICAgICAgICAgIDogJ3NhbWVFbHNlJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhciQxKHRpbWUsIGZvcm1hdHMpIHtcbiAgICAgICAgLy8gU3VwcG9ydCBmb3Igc2luZ2xlIHBhcmFtZXRlciwgZm9ybWF0cyBvbmx5IG92ZXJsb2FkIHRvIHRoZSBjYWxlbmRhciBmdW5jdGlvblxuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgaWYgKGlzTW9tZW50SW5wdXQoYXJndW1lbnRzWzBdKSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgICAgICAgZm9ybWF0cyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNDYWxlbmRhclNwZWMoYXJndW1lbnRzWzBdKSkge1xuICAgICAgICAgICAgICAgIGZvcm1hdHMgPSBhcmd1bWVudHNbMF07XG4gICAgICAgICAgICAgICAgdGltZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXZSB3YW50IHRvIGNvbXBhcmUgdGhlIHN0YXJ0IG9mIHRvZGF5LCB2cyB0aGlzLlxuICAgICAgICAvLyBHZXR0aW5nIHN0YXJ0LW9mLXRvZGF5IGRlcGVuZHMgb24gd2hldGhlciB3ZSdyZSBsb2NhbC91dGMvb2Zmc2V0IG9yIG5vdC5cbiAgICAgICAgdmFyIG5vdyA9IHRpbWUgfHwgY3JlYXRlTG9jYWwoKSxcbiAgICAgICAgICAgIHNvZCA9IGNsb25lV2l0aE9mZnNldChub3csIHRoaXMpLnN0YXJ0T2YoJ2RheScpLFxuICAgICAgICAgICAgZm9ybWF0ID0gaG9va3MuY2FsZW5kYXJGb3JtYXQodGhpcywgc29kKSB8fCAnc2FtZUVsc2UnLFxuICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICBmb3JtYXRzICYmXG4gICAgICAgICAgICAgICAgKGlzRnVuY3Rpb24oZm9ybWF0c1tmb3JtYXRdKVxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1hdHNbZm9ybWF0XS5jYWxsKHRoaXMsIG5vdylcbiAgICAgICAgICAgICAgICAgICAgOiBmb3JtYXRzW2Zvcm1hdF0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChcbiAgICAgICAgICAgIG91dHB1dCB8fCB0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcihmb3JtYXQsIHRoaXMsIGNyZWF0ZUxvY2FsKG5vdykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvbmUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9tZW50KHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQWZ0ZXIoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpIHx8ICdtaWxsaXNlY29uZCc7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID4gbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxJbnB1dC52YWx1ZU9mKCkgPCB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZWZvcmUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpIHx8ICdtaWxsaXNlY29uZCc7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpIDwgbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQmV0d2Vlbihmcm9tLCB0bywgdW5pdHMsIGluY2x1c2l2aXR5KSB7XG4gICAgICAgIHZhciBsb2NhbEZyb20gPSBpc01vbWVudChmcm9tKSA/IGZyb20gOiBjcmVhdGVMb2NhbChmcm9tKSxcbiAgICAgICAgICAgIGxvY2FsVG8gPSBpc01vbWVudCh0bykgPyB0byA6IGNyZWF0ZUxvY2FsKHRvKTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxGcm9tLmlzVmFsaWQoKSAmJiBsb2NhbFRvLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpbmNsdXNpdml0eSA9IGluY2x1c2l2aXR5IHx8ICcoKSc7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoaW5jbHVzaXZpdHlbMF0gPT09ICcoJ1xuICAgICAgICAgICAgICAgID8gdGhpcy5pc0FmdGVyKGxvY2FsRnJvbSwgdW5pdHMpXG4gICAgICAgICAgICAgICAgOiAhdGhpcy5pc0JlZm9yZShsb2NhbEZyb20sIHVuaXRzKSkgJiZcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVsxXSA9PT0gJyknXG4gICAgICAgICAgICAgICAgPyB0aGlzLmlzQmVmb3JlKGxvY2FsVG8sIHVuaXRzKVxuICAgICAgICAgICAgICAgIDogIXRoaXMuaXNBZnRlcihsb2NhbFRvLCB1bml0cykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lKGlucHV0LCB1bml0cykge1xuICAgICAgICB2YXIgbG9jYWxJbnB1dCA9IGlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogY3JlYXRlTG9jYWwoaW5wdXQpLFxuICAgICAgICAgICAgaW5wdXRNcztcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5wdXRNcyA9IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpIDw9IGlucHV0TXMgJiZcbiAgICAgICAgICAgICAgICBpbnB1dE1zIDw9IHRoaXMuY2xvbmUoKS5lbmRPZih1bml0cykudmFsdWVPZigpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lT3JBZnRlcihpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTYW1lKGlucHV0LCB1bml0cykgfHwgdGhpcy5pc0FmdGVyKGlucHV0LCB1bml0cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lT3JCZWZvcmUoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShpbnB1dCwgdW5pdHMpIHx8IHRoaXMuaXNCZWZvcmUoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaWZmKGlucHV0LCB1bml0cywgYXNGbG9hdCkge1xuICAgICAgICB2YXIgdGhhdCwgem9uZURlbHRhLCBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoYXQgPSBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIHRoaXMpO1xuXG4gICAgICAgIGlmICghdGhhdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB6b25lRGVsdGEgPSAodGhhdC51dGNPZmZzZXQoKSAtIHRoaXMudXRjT2Zmc2V0KCkpICogNmU0O1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KSAvIDEyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KSAvIDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAxZTM7XG4gICAgICAgICAgICAgICAgYnJlYWs7IC8vIDEwMDBcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDZlNDtcbiAgICAgICAgICAgICAgICBicmVhazsgLy8gMTAwMCAqIDYwXG4gICAgICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gMzZlNTtcbiAgICAgICAgICAgICAgICBicmVhazsgLy8gMTAwMCAqIDYwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRoaXMgLSB0aGF0IC0gem9uZURlbHRhKSAvIDg2NGU1O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MCAqIDI0LCBuZWdhdGUgZHN0XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gNjA0OGU1O1xuICAgICAgICAgICAgICAgIGJyZWFrOyAvLyAxMDAwICogNjAgKiA2MCAqIDI0ICogNywgbmVnYXRlIGRzdFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSB0aGlzIC0gdGhhdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhc0Zsb2F0ID8gb3V0cHV0IDogYWJzRmxvb3Iob3V0cHV0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aERpZmYoYSwgYikge1xuICAgICAgICBpZiAoYS5kYXRlKCkgPCBiLmRhdGUoKSkge1xuICAgICAgICAgICAgLy8gZW5kLW9mLW1vbnRoIGNhbGN1bGF0aW9ucyB3b3JrIGNvcnJlY3Qgd2hlbiB0aGUgc3RhcnQgbW9udGggaGFzIG1vcmVcbiAgICAgICAgICAgIC8vIGRheXMgdGhhbiB0aGUgZW5kIG1vbnRoLlxuICAgICAgICAgICAgcmV0dXJuIC1tb250aERpZmYoYiwgYSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGlmZmVyZW5jZSBpbiBtb250aHNcbiAgICAgICAgdmFyIHdob2xlTW9udGhEaWZmID0gKGIueWVhcigpIC0gYS55ZWFyKCkpICogMTIgKyAoYi5tb250aCgpIC0gYS5tb250aCgpKSxcbiAgICAgICAgICAgIC8vIGIgaXMgaW4gKGFuY2hvciAtIDEgbW9udGgsIGFuY2hvciArIDEgbW9udGgpXG4gICAgICAgICAgICBhbmNob3IgPSBhLmNsb25lKCkuYWRkKHdob2xlTW9udGhEaWZmLCAnbW9udGhzJyksXG4gICAgICAgICAgICBhbmNob3IyLFxuICAgICAgICAgICAgYWRqdXN0O1xuXG4gICAgICAgIGlmIChiIC0gYW5jaG9yIDwgMCkge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgLSAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvciAtIGFuY2hvcjIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgKyAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvcjIgLSBhbmNob3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jaGVjayBmb3IgbmVnYXRpdmUgemVybywgcmV0dXJuIHplcm8gaWYgbmVnYXRpdmUgemVyb1xuICAgICAgICByZXR1cm4gLSh3aG9sZU1vbnRoRGlmZiArIGFkanVzdCkgfHwgMDtcbiAgICB9XG5cbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0ID0gJ1lZWVktTU0tRERUSEg6bW06c3NaJztcbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0VXRjID0gJ1lZWVktTU0tRERUSEg6bW06c3NbWl0nO1xuXG4gICAgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkubG9jYWxlKCdlbicpLmZvcm1hdCgnZGRkIE1NTSBERCBZWVlZIEhIOm1tOnNzIFtHTVRdWlonKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0lTT1N0cmluZyhrZWVwT2Zmc2V0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciB1dGMgPSBrZWVwT2Zmc2V0ICE9PSB0cnVlLFxuICAgICAgICAgICAgbSA9IHV0YyA/IHRoaXMuY2xvbmUoKS51dGMoKSA6IHRoaXM7XG4gICAgICAgIGlmIChtLnllYXIoKSA8IDAgfHwgbS55ZWFyKCkgPiA5OTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0TW9tZW50KFxuICAgICAgICAgICAgICAgIG0sXG4gICAgICAgICAgICAgICAgdXRjXG4gICAgICAgICAgICAgICAgICAgID8gJ1lZWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXSdcbiAgICAgICAgICAgICAgICAgICAgOiAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhblxuICAgICAgICAgICAgaWYgKHV0Yykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSArIHRoaXMudXRjT2Zmc2V0KCkgKiA2MCAqIDEwMDApXG4gICAgICAgICAgICAgICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCdaJywgZm9ybWF0TW9tZW50KG0sICdaJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXRNb21lbnQoXG4gICAgICAgICAgICBtLFxuICAgICAgICAgICAgdXRjID8gJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NbWl0nIDogJ1lZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGh1bWFuIHJlYWRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgbW9tZW50IHRoYXQgY2FuXG4gICAgICogYWxzbyBiZSBldmFsdWF0ZWQgdG8gZ2V0IGEgbmV3IG1vbWVudCB3aGljaCBpcyB0aGUgc2FtZVxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0L2RvY3MvYXBpL3V0aWwuaHRtbCN1dGlsX2N1c3RvbV9pbnNwZWN0X2Z1bmN0aW9uX29uX29iamVjdHNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnNwZWN0KCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ21vbWVudC5pbnZhbGlkKC8qICcgKyB0aGlzLl9pICsgJyAqLyknO1xuICAgICAgICB9XG4gICAgICAgIHZhciBmdW5jID0gJ21vbWVudCcsXG4gICAgICAgICAgICB6b25lID0gJycsXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgZGF0ZXRpbWUsXG4gICAgICAgICAgICBzdWZmaXg7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2FsKCkpIHtcbiAgICAgICAgICAgIGZ1bmMgPSB0aGlzLnV0Y09mZnNldCgpID09PSAwID8gJ21vbWVudC51dGMnIDogJ21vbWVudC5wYXJzZVpvbmUnO1xuICAgICAgICAgICAgem9uZSA9ICdaJztcbiAgICAgICAgfVxuICAgICAgICBwcmVmaXggPSAnWycgKyBmdW5jICsgJyhcIl0nO1xuICAgICAgICB5ZWFyID0gMCA8PSB0aGlzLnllYXIoKSAmJiB0aGlzLnllYXIoKSA8PSA5OTk5ID8gJ1lZWVknIDogJ1lZWVlZWSc7XG4gICAgICAgIGRhdGV0aW1lID0gJy1NTS1ERFtUXUhIOm1tOnNzLlNTUyc7XG4gICAgICAgIHN1ZmZpeCA9IHpvbmUgKyAnW1wiKV0nO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChwcmVmaXggKyB5ZWFyICsgZGF0ZXRpbWUgKyBzdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZvcm1hdChpbnB1dFN0cmluZykge1xuICAgICAgICBpZiAoIWlucHV0U3RyaW5nKSB7XG4gICAgICAgICAgICBpbnB1dFN0cmluZyA9IHRoaXMuaXNVdGMoKVxuICAgICAgICAgICAgICAgID8gaG9va3MuZGVmYXVsdEZvcm1hdFV0Y1xuICAgICAgICAgICAgICAgIDogaG9va3MuZGVmYXVsdEZvcm1hdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb3V0cHV0ID0gZm9ybWF0TW9tZW50KHRoaXMsIGlucHV0U3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLnBvc3Rmb3JtYXQob3V0cHV0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmcm9tKHRpbWUsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8IGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oeyB0bzogdGhpcywgZnJvbTogdGltZSB9KVxuICAgICAgICAgICAgICAgIC5sb2NhbGUodGhpcy5sb2NhbGUoKSlcbiAgICAgICAgICAgICAgICAuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmcm9tTm93KHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbShjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0byh0aW1lLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZCgpICYmXG4gICAgICAgICAgICAoKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpKSB8fCBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKHsgZnJvbTogdGhpcywgdG86IHRpbWUgfSlcbiAgICAgICAgICAgICAgICAubG9jYWxlKHRoaXMubG9jYWxlKCkpXG4gICAgICAgICAgICAgICAgLmh1bWFuaXplKCF3aXRob3V0U3VmZml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9Ob3cod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy50byhjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG5cbiAgICAvLyBJZiBwYXNzZWQgYSBsb2NhbGUga2V5LCBpdCB3aWxsIHNldCB0aGUgbG9jYWxlIGZvciB0aGlzXG4gICAgLy8gaW5zdGFuY2UuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBsb2NhbGUgY29uZmlndXJhdGlvblxuICAgIC8vIHZhcmlhYmxlcyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICBmdW5jdGlvbiBsb2NhbGUoa2V5KSB7XG4gICAgICAgIHZhciBuZXdMb2NhbGVEYXRhO1xuXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZS5fYWJicjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0xvY2FsZURhdGEgPSBnZXRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIGlmIChuZXdMb2NhbGVEYXRhICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2NhbGUgPSBuZXdMb2NhbGVEYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbGFuZyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLmxhbmcoKSBpcyBkZXByZWNhdGVkLiBJbnN0ZWFkLCB1c2UgbW9tZW50KCkubG9jYWxlRGF0YSgpIHRvIGdldCB0aGUgbGFuZ3VhZ2UgY29uZmlndXJhdGlvbi4gVXNlIG1vbWVudCgpLmxvY2FsZSgpIHRvIGNoYW5nZSBsYW5ndWFnZXMuJyxcbiAgICAgICAgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVEYXRhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgIH1cblxuICAgIHZhciBNU19QRVJfU0VDT05EID0gMTAwMCxcbiAgICAgICAgTVNfUEVSX01JTlVURSA9IDYwICogTVNfUEVSX1NFQ09ORCxcbiAgICAgICAgTVNfUEVSX0hPVVIgPSA2MCAqIE1TX1BFUl9NSU5VVEUsXG4gICAgICAgIE1TX1BFUl80MDBfWUVBUlMgPSAoMzY1ICogNDAwICsgOTcpICogMjQgKiBNU19QRVJfSE9VUjtcblxuICAgIC8vIGFjdHVhbCBtb2R1bG8gLSBoYW5kbGVzIG5lZ2F0aXZlIG51bWJlcnMgKGZvciBkYXRlcyBiZWZvcmUgMTk3MCk6XG4gICAgZnVuY3Rpb24gbW9kJDEoZGl2aWRlbmQsIGRpdmlzb3IpIHtcbiAgICAgICAgcmV0dXJuICgoZGl2aWRlbmQgJSBkaXZpc29yKSArIGRpdmlzb3IpICUgZGl2aXNvcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbFN0YXJ0T2ZEYXRlKHksIG0sIGQpIHtcbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkKSAtIE1TX1BFUl80MDBfWUVBUlM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoeSwgbSwgZCkudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXRjU3RhcnRPZkRhdGUoeSwgbSwgZCkge1xuICAgICAgICAvLyBEYXRlLlVUQyByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgcmV0dXJuIERhdGUuVVRDKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlLlVUQyh5LCBtLCBkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0T2YodW5pdHMpIHtcbiAgICAgICAgdmFyIHRpbWUsIHN0YXJ0T2ZEYXRlO1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSB1bmRlZmluZWQgfHwgdW5pdHMgPT09ICdtaWxsaXNlY29uZCcgfHwgIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0T2ZEYXRlID0gdGhpcy5faXNVVEMgPyB1dGNTdGFydE9mRGF0ZSA6IGxvY2FsU3RhcnRPZkRhdGU7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCAwLCAxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSAtICh0aGlzLm1vbnRoKCkgJSAzKSxcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKCkgLSAodGhpcy5pc29XZWVrZGF5KCkgLSAxKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCksIHRoaXMuZGF0ZSgpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lIC09IG1vZCQxKFxuICAgICAgICAgICAgICAgICAgICB0aW1lICsgKHRoaXMuX2lzVVRDID8gMCA6IHRoaXMudXRjT2Zmc2V0KCkgKiBNU19QRVJfTUlOVVRFKSxcbiAgICAgICAgICAgICAgICAgICAgTVNfUEVSX0hPVVJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSAtPSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEodGltZSwgTVNfUEVSX1NFQ09ORCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW5kT2YodW5pdHMpIHtcbiAgICAgICAgdmFyIHRpbWUsIHN0YXJ0T2ZEYXRlO1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSB1bmRlZmluZWQgfHwgdW5pdHMgPT09ICdtaWxsaXNlY29uZCcgfHwgIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0T2ZEYXRlID0gdGhpcy5faXNVVEMgPyB1dGNTdGFydE9mRGF0ZSA6IGxvY2FsU3RhcnRPZkRhdGU7XG5cbiAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpICsgMSwgMCwgMSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgdGltZSA9XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZEYXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy55ZWFyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKCkgLSAodGhpcy5tb250aCgpICUgMykgKyAzLFxuICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICApIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSArIDEsIDEpIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPVxuICAgICAgICAgICAgICAgICAgICBzdGFydE9mRGF0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMueWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb250aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKCkgLSB0aGlzLndlZWtkYXkoKSArIDdcbiAgICAgICAgICAgICAgICAgICAgKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpc29XZWVrJzpcbiAgICAgICAgICAgICAgICB0aW1lID1cbiAgICAgICAgICAgICAgICAgICAgc3RhcnRPZkRhdGUoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnllYXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9udGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgpIC0gKHRoaXMuaXNvV2Vla2RheSgpIC0gMSkgKyA3XG4gICAgICAgICAgICAgICAgICAgICkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSArIDEpIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9XG4gICAgICAgICAgICAgICAgICAgIE1TX1BFUl9IT1VSIC1cbiAgICAgICAgICAgICAgICAgICAgbW9kJDEoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lICsgKHRoaXMuX2lzVVRDID8gMCA6IHRoaXMudXRjT2Zmc2V0KCkgKiBNU19QRVJfTUlOVVRFKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIE1TX1BFUl9IT1VSXG4gICAgICAgICAgICAgICAgICAgICkgLVxuICAgICAgICAgICAgICAgICAgICAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSArPSBNU19QRVJfTUlOVVRFIC0gbW9kJDEodGltZSwgTVNfUEVSX01JTlVURSkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gdGhpcy5fZC52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgdGltZSArPSBNU19QRVJfU0VDT05EIC0gbW9kJDEodGltZSwgTVNfUEVSX1NFQ09ORCkgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZC5zZXRUaW1lKHRpbWUpO1xuICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbHVlT2YoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kLnZhbHVlT2YoKSAtICh0aGlzLl9vZmZzZXQgfHwgMCkgKiA2MDAwMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bml4KCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKSAvIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0FycmF5KCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBtLnllYXIoKSxcbiAgICAgICAgICAgIG0ubW9udGgoKSxcbiAgICAgICAgICAgIG0uZGF0ZSgpLFxuICAgICAgICAgICAgbS5ob3VyKCksXG4gICAgICAgICAgICBtLm1pbnV0ZSgpLFxuICAgICAgICAgICAgbS5zZWNvbmQoKSxcbiAgICAgICAgICAgIG0ubWlsbGlzZWNvbmQoKSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b09iamVjdCgpIHtcbiAgICAgICAgdmFyIG0gPSB0aGlzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcnM6IG0ueWVhcigpLFxuICAgICAgICAgICAgbW9udGhzOiBtLm1vbnRoKCksXG4gICAgICAgICAgICBkYXRlOiBtLmRhdGUoKSxcbiAgICAgICAgICAgIGhvdXJzOiBtLmhvdXJzKCksXG4gICAgICAgICAgICBtaW51dGVzOiBtLm1pbnV0ZXMoKSxcbiAgICAgICAgICAgIHNlY29uZHM6IG0uc2Vjb25kcygpLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzOiBtLm1pbGxpc2Vjb25kcygpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAgICAgLy8gbmV3IERhdGUoTmFOKS50b0pTT04oKSA9PT0gbnVsbFxuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLnRvSVNPU3RyaW5nKCkgOiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQkMigpIHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2luZ0ZsYWdzKCkge1xuICAgICAgICByZXR1cm4gZXh0ZW5kKHt9LCBnZXRQYXJzaW5nRmxhZ3ModGhpcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGludmFsaWRBdCgpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhcnNpbmdGbGFncyh0aGlzKS5vdmVyZmxvdztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGlvbkRhdGEoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnB1dDogdGhpcy5faSxcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5fZixcbiAgICAgICAgICAgIGxvY2FsZTogdGhpcy5fbG9jYWxlLFxuICAgICAgICAgICAgaXNVVEM6IHRoaXMuX2lzVVRDLFxuICAgICAgICAgICAgc3RyaWN0OiB0aGlzLl9zdHJpY3QsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ04nLCAwLCAwLCAnZXJhQWJicicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdOTicsIDAsIDAsICdlcmFBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OTicsIDAsIDAsICdlcmFBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ05OTk4nLCAwLCAwLCAnZXJhTmFtZScpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdOTk5OTicsIDAsIDAsICdlcmFOYXJyb3cnKTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCd5JywgWyd5JywgMV0sICd5bycsICdlcmFZZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3l5JywgMl0sIDAsICdlcmFZZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3knLCBbJ3l5eScsIDNdLCAwLCAnZXJhWWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd5JywgWyd5eXl5JywgNF0sIDAsICdlcmFZZWFyJyk7XG5cbiAgICBhZGRSZWdleFRva2VuKCdOJywgbWF0Y2hFcmFBYmJyKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTicsIG1hdGNoRXJhQWJicik7XG4gICAgYWRkUmVnZXhUb2tlbignTk5OJywgbWF0Y2hFcmFBYmJyKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTk5OJywgbWF0Y2hFcmFOYW1lKTtcbiAgICBhZGRSZWdleFRva2VuKCdOTk5OTicsIG1hdGNoRXJhTmFycm93KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydOJywgJ05OJywgJ05OTicsICdOTk5OJywgJ05OTk5OJ10sIGZ1bmN0aW9uIChcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGFycmF5LFxuICAgICAgICBjb25maWcsXG4gICAgICAgIHRva2VuXG4gICAgKSB7XG4gICAgICAgIHZhciBlcmEgPSBjb25maWcuX2xvY2FsZS5lcmFzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIGlmIChlcmEpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVyYSA9IGVyYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRFcmEgPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgYWRkUmVnZXhUb2tlbigneScsIG1hdGNoVW5zaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3l5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXl5JywgbWF0Y2hVbnNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbigneXl5eScsIG1hdGNoVW5zaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3lvJywgbWF0Y2hFcmFZZWFyT3JkaW5hbCk7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsneScsICd5eScsICd5eXknLCAneXl5eSddLCBZRUFSKTtcbiAgICBhZGRQYXJzZVRva2VuKFsneW8nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB2YXIgbWF0Y2g7XG4gICAgICAgIGlmIChjb25maWcuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCkge1xuICAgICAgICAgICAgbWF0Y2ggPSBpbnB1dC5tYXRjaChjb25maWcuX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZSkge1xuICAgICAgICAgICAgYXJyYXlbWUVBUl0gPSBjb25maWcuX2xvY2FsZS5lcmFZZWFyT3JkaW5hbFBhcnNlKGlucHV0LCBtYXRjaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcnJheVtZRUFSXSA9IHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXMobSwgZm9ybWF0KSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGRhdGUsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5fZXJhcyB8fCBnZXRMb2NhbGUoJ2VuJykuX2VyYXM7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgZXJhc1tpXS5zaW5jZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgICAgIC8vIHRydW5jYXRlIHRpbWVcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGhvb2tzKGVyYXNbaV0uc2luY2UpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnNpbmNlID0gZGF0ZS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgICAgICAgICAgICAgZXJhc1tpXS51bnRpbCA9ICtJbmZpbml0eTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgICAgICAgICBkYXRlID0gaG9va3MoZXJhc1tpXS51bnRpbCkuc3RhcnRPZignZGF5JykudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgICAgICBlcmFzW2ldLnVudGlsID0gZGF0ZS52YWx1ZU9mKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlcmFzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUVyYXNQYXJzZShlcmFOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5lcmFzKCksXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgYWJicixcbiAgICAgICAgICAgIG5hcnJvdztcbiAgICAgICAgZXJhTmFtZSA9IGVyYU5hbWUudG9VcHBlckNhc2UoKTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsID0gZXJhcy5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICAgICAgICAgIG5hbWUgPSBlcmFzW2ldLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGFiYnIgPSBlcmFzW2ldLmFiYnIudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIG5hcnJvdyA9IGVyYXNbaV0ubmFycm93LnRvVXBwZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdOJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTk4nOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdOTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFiYnIgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTk4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ05OTk5OJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYXJyb3cgPT09IGVyYU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoW25hbWUsIGFiYnIsIG5hcnJvd10uaW5kZXhPZihlcmFOYW1lKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVFcmFzQ29udmVydFllYXIoZXJhLCB5ZWFyKSB7XG4gICAgICAgIHZhciBkaXIgPSBlcmEuc2luY2UgPD0gZXJhLnVudGlsID8gKzEgOiAtMTtcbiAgICAgICAgaWYgKHllYXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGhvb2tzKGVyYS5zaW5jZSkueWVhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGhvb2tzKGVyYS5zaW5jZSkueWVhcigpICsgKHllYXIgLSBlcmEub2Zmc2V0KSAqIGRpcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYU5hbWUoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgdmFsID0gdGhpcy5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLm5hbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5uYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYU5hcnJvdygpIHtcbiAgICAgICAgdmFyIGksXG4gICAgICAgICAgICBsLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgZXJhcyA9IHRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtcbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICAvLyB0cnVuY2F0ZSB0aW1lXG4gICAgICAgICAgICB2YWwgPSB0aGlzLnN0YXJ0T2YoJ2RheScpLnZhbHVlT2YoKTtcblxuICAgICAgICAgICAgaWYgKGVyYXNbaV0uc2luY2UgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnVudGlsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFycm93O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVyYXNbaV0udW50aWwgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnNpbmNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVyYXNbaV0ubmFycm93O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYUFiYnIoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgdmFsID0gdGhpcy5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgICAgIGlmIChlcmFzW2ldLnNpbmNlIDw9IHZhbCAmJiB2YWwgPD0gZXJhc1tpXS51bnRpbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlcmFzW2ldLmFiYnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJhc1tpXS51bnRpbCA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0uc2luY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJhc1tpXS5hYmJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEVyYVllYXIoKSB7XG4gICAgICAgIHZhciBpLFxuICAgICAgICAgICAgbCxcbiAgICAgICAgICAgIGRpcixcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIGVyYXMgPSB0aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7XG4gICAgICAgIGZvciAoaSA9IDAsIGwgPSBlcmFzLmxlbmd0aDsgaSA8IGw7ICsraSkge1xuICAgICAgICAgICAgZGlyID0gZXJhc1tpXS5zaW5jZSA8PSBlcmFzW2ldLnVudGlsID8gKzEgOiAtMTtcblxuICAgICAgICAgICAgLy8gdHJ1bmNhdGUgdGltZVxuICAgICAgICAgICAgdmFsID0gdGhpcy5zdGFydE9mKCdkYXknKS52YWx1ZU9mKCk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoZXJhc1tpXS5zaW5jZSA8PSB2YWwgJiYgdmFsIDw9IGVyYXNbaV0udW50aWwpIHx8XG4gICAgICAgICAgICAgICAgKGVyYXNbaV0udW50aWwgPD0gdmFsICYmIHZhbCA8PSBlcmFzW2ldLnNpbmNlKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMueWVhcigpIC0gaG9va3MoZXJhc1tpXS5zaW5jZSkueWVhcigpKSAqIGRpciArXG4gICAgICAgICAgICAgICAgICAgIGVyYXNbaV0ub2Zmc2V0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlcmFzTmFtZVJlZ2V4KGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX2VyYXNOYW1lUmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IHRoaXMuX2VyYXNOYW1lUmVnZXggOiB0aGlzLl9lcmFzUmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXJhc0FiYnJSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19lcmFzQWJiclJlZ2V4JykpIHtcbiAgICAgICAgICAgIGNvbXB1dGVFcmFzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNTdHJpY3QgPyB0aGlzLl9lcmFzQWJiclJlZ2V4IDogdGhpcy5fZXJhc1JlZ2V4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVyYXNOYXJyb3dSZWdleChpc1N0cmljdCkge1xuICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19lcmFzTmFycm93UmVnZXgnKSkge1xuICAgICAgICAgICAgY29tcHV0ZUVyYXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1N0cmljdCA/IHRoaXMuX2VyYXNOYXJyb3dSZWdleCA6IHRoaXMuX2VyYXNSZWdleDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEVyYUFiYnIoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLmVyYXNBYmJyUmVnZXgoaXNTdHJpY3QpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hdGNoRXJhTmFtZShpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuZXJhc05hbWVSZWdleChpc1N0cmljdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hFcmFOYXJyb3coaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLmVyYXNOYXJyb3dSZWdleChpc1N0cmljdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWF0Y2hFcmFZZWFyT3JkaW5hbChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuX2VyYVllYXJPcmRpbmFsUmVnZXggfHwgbWF0Y2hVbnNpZ25lZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlRXJhc1BhcnNlKCkge1xuICAgICAgICB2YXIgYWJiclBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbmFtZVBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgbmFycm93UGllY2VzID0gW10sXG4gICAgICAgICAgICBtaXhlZFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIGwsXG4gICAgICAgICAgICBlcmFzID0gdGhpcy5lcmFzKCk7XG5cbiAgICAgICAgZm9yIChpID0gMCwgbCA9IGVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKSB7XG4gICAgICAgICAgICBuYW1lUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYW1lKSk7XG4gICAgICAgICAgICBhYmJyUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5hYmJyKSk7XG4gICAgICAgICAgICBuYXJyb3dQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLm5hcnJvdykpO1xuXG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHJlZ2V4RXNjYXBlKGVyYXNbaV0ubmFtZSkpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChyZWdleEVzY2FwZShlcmFzW2ldLmFiYnIpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gocmVnZXhFc2NhcGUoZXJhc1tpXS5uYXJyb3cpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VyYXNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fZXJhc05hbWVSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG5hbWVQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9lcmFzQWJiclJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgYWJiclBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX2VyYXNOYXJyb3dSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAnXignICsgbmFycm93UGllY2VzLmpvaW4oJ3wnKSArICcpJyxcbiAgICAgICAgICAgICdpJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnZ2cnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53ZWVrWWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydHRycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzb1dlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBhZGRXZWVrWWVhckZvcm1hdFRva2VuKHRva2VuLCBnZXR0ZXIpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4oMCwgW3Rva2VuLCB0b2tlbi5sZW5ndGhdLCAwLCBnZXR0ZXIpO1xuICAgIH1cblxuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2cnLCAnd2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnZycsICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0cnLCAnaXNvV2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdHR0dHRycsICdpc29XZWVrWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrWWVhcicsICdnZycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2Vla1llYXInLCAnR0cnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtZZWFyJywgMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrWWVhcicsIDEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignRycsIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdnJywgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0cnLCBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignZ2dnZycsIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdHR0dHRycsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnZycsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2dnZycsICdnZ2dnZycsICdHR0dHJywgJ0dHR0dHJ10sIGZ1bmN0aW9uIChcbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHdlZWssXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgdG9rZW5cbiAgICApIHtcbiAgICAgICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMildID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZycsICdHRyddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrWWVhcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gZ2V0U2V0V2Vla1llYXJIZWxwZXIuY2FsbChcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgIHRoaXMud2VlaygpLFxuICAgICAgICAgICAgdGhpcy53ZWVrZGF5KCksXG4gICAgICAgICAgICB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3csXG4gICAgICAgICAgICB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3lcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrWWVhcihpbnB1dCkge1xuICAgICAgICByZXR1cm4gZ2V0U2V0V2Vla1llYXJIZWxwZXIuY2FsbChcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgIHRoaXMuaXNvV2VlaygpLFxuICAgICAgICAgICAgdGhpcy5pc29XZWVrZGF5KCksXG4gICAgICAgICAgICAxLFxuICAgICAgICAgICAgNFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldElTT1dlZWtzSW5ZZWFyKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldElTT1dlZWtzSW5JU09XZWVrWWVhcigpIHtcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMuaXNvV2Vla1llYXIoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0V2Vla3NJblllYXIoKSB7XG4gICAgICAgIHZhciB3ZWVrSW5mbyA9IHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIHdlZWtJbmZvLmRvdywgd2Vla0luZm8uZG95KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRXZWVrc0luV2Vla1llYXIoKSB7XG4gICAgICAgIHZhciB3ZWVrSW5mbyA9IHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy53ZWVrWWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXJIZWxwZXIoaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrc1RhcmdldDtcbiAgICAgICAgaWYgKGlucHV0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWVrT2ZZZWFyKHRoaXMsIGRvdywgZG95KS55ZWFyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2Vla3NUYXJnZXQgPSB3ZWVrc0luWWVhcihpbnB1dCwgZG93LCBkb3kpO1xuICAgICAgICAgICAgaWYgKHdlZWsgPiB3ZWVrc1RhcmdldCkge1xuICAgICAgICAgICAgICAgIHdlZWsgPSB3ZWVrc1RhcmdldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZXRXZWVrQWxsLmNhbGwodGhpcywgaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFdlZWtBbGwod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciBkYXlPZlllYXJEYXRhID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZShkYXlPZlllYXJEYXRhLnllYXIsIDAsIGRheU9mWWVhckRhdGEuZGF5T2ZZZWFyKTtcblxuICAgICAgICB0aGlzLnllYXIoZGF0ZS5nZXRVVENGdWxsWWVhcigpKTtcbiAgICAgICAgdGhpcy5tb250aChkYXRlLmdldFVUQ01vbnRoKCkpO1xuICAgICAgICB0aGlzLmRhdGUoZGF0ZS5nZXRVVENEYXRlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignUScsIDAsICdRbycsICdxdWFydGVyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3F1YXJ0ZXInLCAnUScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgncXVhcnRlcicsIDcpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUScsIG1hdGNoMSk7XG4gICAgYWRkUGFyc2VUb2tlbignUScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gKHRvSW50KGlucHV0KSAtIDEpICogMztcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFF1YXJ0ZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGxcbiAgICAgICAgICAgID8gTWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkgKyAxKSAvIDMpXG4gICAgICAgICAgICA6IHRoaXMubW9udGgoKGlucHV0IC0gMSkgKiAzICsgKHRoaXMubW9udGgoKSAlIDMpKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignRCcsIFsnREQnLCAyXSwgJ0RvJywgJ2RhdGUnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF0ZScsICdEJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF0ZScsIDkpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignRCcsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignREQnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignRG8nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICAvLyBUT0RPOiBSZW1vdmUgXCJvcmRpbmFsUGFyc2VcIiBmYWxsYmFjayBpbiBuZXh0IG1ham9yIHJlbGVhc2UuXG4gICAgICAgIHJldHVybiBpc1N0cmljdFxuICAgICAgICAgICAgPyBsb2NhbGUuX2RheU9mTW9udGhPcmRpbmFsUGFyc2UgfHwgbG9jYWxlLl9vcmRpbmFsUGFyc2VcbiAgICAgICAgICAgIDogbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudDtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydEJywgJ0REJ10sIERBVEUpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtEQVRFXSA9IHRvSW50KGlucHV0Lm1hdGNoKG1hdGNoMXRvMilbMF0pO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldERheU9mTW9udGggPSBtYWtlR2V0U2V0KCdEYXRlJywgdHJ1ZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignREREJywgWydEREREJywgM10sICdERERvJywgJ2RheU9mWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXlPZlllYXInLCAnREREJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF5T2ZZZWFyJywgNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEREQnLCBtYXRjaDF0bzMpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0REREQnLCBtYXRjaDMpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydEREQnLCAnRERERCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXREYXlPZlllYXIoaW5wdXQpIHtcbiAgICAgICAgdmFyIGRheU9mWWVhciA9XG4gICAgICAgICAgICBNYXRoLnJvdW5kKFxuICAgICAgICAgICAgICAgICh0aGlzLmNsb25lKCkuc3RhcnRPZignZGF5JykgLSB0aGlzLmNsb25lKCkuc3RhcnRPZigneWVhcicpKSAvIDg2NGU1XG4gICAgICAgICAgICApICsgMTtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyBkYXlPZlllYXIgOiB0aGlzLmFkZChpbnB1dCAtIGRheU9mWWVhciwgJ2QnKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignbScsIFsnbW0nLCAyXSwgMCwgJ21pbnV0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdtaW51dGUnLCAnbScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbWludXRlJywgMTQpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignbScsIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignbW0nLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ20nLCAnbW0nXSwgTUlOVVRFKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRNaW51dGUgPSBtYWtlR2V0U2V0KCdNaW51dGVzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3MnLCBbJ3NzJywgMl0sIDAsICdzZWNvbmQnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnc2Vjb25kJywgJ3MnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3NlY29uZCcsIDE1KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3MnLCBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3NzJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydzJywgJ3NzJ10sIFNFQ09ORCk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0U2Vjb25kID0gbWFrZUdldFNldCgnU2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdTJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTAwKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1MnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1MnLCAzXSwgMCwgJ21pbGxpc2Vjb25kJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTJywgNF0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1MnLCA1XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTJywgNl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTJywgN10sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1MnLCA4XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1NTJywgOV0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDA7XG4gICAgfSk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21pbGxpc2Vjb25kJywgJ21zJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdtaWxsaXNlY29uZCcsIDE2KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1MnLCBtYXRjaDF0bzMsIG1hdGNoMSk7XG4gICAgYWRkUmVnZXhUb2tlbignU1MnLCBtYXRjaDF0bzMsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignU1NTJywgbWF0Y2gxdG8zLCBtYXRjaDMpO1xuXG4gICAgdmFyIHRva2VuLCBnZXRTZXRNaWxsaXNlY29uZDtcbiAgICBmb3IgKHRva2VuID0gJ1NTU1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgICAgIGFkZFJlZ2V4VG9rZW4odG9rZW4sIG1hdGNoVW5zaWduZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTXMoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01JTExJU0VDT05EXSA9IHRvSW50KCgnMC4nICsgaW5wdXQpICogMTAwMCk7XG4gICAgfVxuXG4gICAgZm9yICh0b2tlbiA9ICdTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRQYXJzZVRva2VuKHRva2VuLCBwYXJzZU1zKTtcbiAgICB9XG5cbiAgICBnZXRTZXRNaWxsaXNlY29uZCA9IG1ha2VHZXRTZXQoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd6JywgMCwgMCwgJ3pvbmVBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3p6JywgMCwgMCwgJ3pvbmVOYW1lJyk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRab25lQWJicigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ1VUQycgOiAnJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRab25lTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lJyA6ICcnO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE1vbWVudC5wcm90b3R5cGU7XG5cbiAgICBwcm90by5hZGQgPSBhZGQ7XG4gICAgcHJvdG8uY2FsZW5kYXIgPSBjYWxlbmRhciQxO1xuICAgIHByb3RvLmNsb25lID0gY2xvbmU7XG4gICAgcHJvdG8uZGlmZiA9IGRpZmY7XG4gICAgcHJvdG8uZW5kT2YgPSBlbmRPZjtcbiAgICBwcm90by5mb3JtYXQgPSBmb3JtYXQ7XG4gICAgcHJvdG8uZnJvbSA9IGZyb207XG4gICAgcHJvdG8uZnJvbU5vdyA9IGZyb21Ob3c7XG4gICAgcHJvdG8udG8gPSB0bztcbiAgICBwcm90by50b05vdyA9IHRvTm93O1xuICAgIHByb3RvLmdldCA9IHN0cmluZ0dldDtcbiAgICBwcm90by5pbnZhbGlkQXQgPSBpbnZhbGlkQXQ7XG4gICAgcHJvdG8uaXNBZnRlciA9IGlzQWZ0ZXI7XG4gICAgcHJvdG8uaXNCZWZvcmUgPSBpc0JlZm9yZTtcbiAgICBwcm90by5pc0JldHdlZW4gPSBpc0JldHdlZW47XG4gICAgcHJvdG8uaXNTYW1lID0gaXNTYW1lO1xuICAgIHByb3RvLmlzU2FtZU9yQWZ0ZXIgPSBpc1NhbWVPckFmdGVyO1xuICAgIHByb3RvLmlzU2FtZU9yQmVmb3JlID0gaXNTYW1lT3JCZWZvcmU7XG4gICAgcHJvdG8uaXNWYWxpZCA9IGlzVmFsaWQkMjtcbiAgICBwcm90by5sYW5nID0gbGFuZztcbiAgICBwcm90by5sb2NhbGUgPSBsb2NhbGU7XG4gICAgcHJvdG8ubG9jYWxlRGF0YSA9IGxvY2FsZURhdGE7XG4gICAgcHJvdG8ubWF4ID0gcHJvdG90eXBlTWF4O1xuICAgIHByb3RvLm1pbiA9IHByb3RvdHlwZU1pbjtcbiAgICBwcm90by5wYXJzaW5nRmxhZ3MgPSBwYXJzaW5nRmxhZ3M7XG4gICAgcHJvdG8uc2V0ID0gc3RyaW5nU2V0O1xuICAgIHByb3RvLnN0YXJ0T2YgPSBzdGFydE9mO1xuICAgIHByb3RvLnN1YnRyYWN0ID0gc3VidHJhY3Q7XG4gICAgcHJvdG8udG9BcnJheSA9IHRvQXJyYXk7XG4gICAgcHJvdG8udG9PYmplY3QgPSB0b09iamVjdDtcbiAgICBwcm90by50b0RhdGUgPSB0b0RhdGU7XG4gICAgcHJvdG8udG9JU09TdHJpbmcgPSB0b0lTT1N0cmluZztcbiAgICBwcm90by5pbnNwZWN0ID0gaW5zcGVjdDtcbiAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLmZvciAhPSBudWxsKSB7XG4gICAgICAgIHByb3RvW1N5bWJvbC5mb3IoJ25vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tJyldID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICdNb21lbnQ8JyArIHRoaXMuZm9ybWF0KCkgKyAnPic7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHByb3RvLnRvSlNPTiA9IHRvSlNPTjtcbiAgICBwcm90by50b1N0cmluZyA9IHRvU3RyaW5nO1xuICAgIHByb3RvLnVuaXggPSB1bml4O1xuICAgIHByb3RvLnZhbHVlT2YgPSB2YWx1ZU9mO1xuICAgIHByb3RvLmNyZWF0aW9uRGF0YSA9IGNyZWF0aW9uRGF0YTtcbiAgICBwcm90by5lcmFOYW1lID0gZ2V0RXJhTmFtZTtcbiAgICBwcm90by5lcmFOYXJyb3cgPSBnZXRFcmFOYXJyb3c7XG4gICAgcHJvdG8uZXJhQWJiciA9IGdldEVyYUFiYnI7XG4gICAgcHJvdG8uZXJhWWVhciA9IGdldEVyYVllYXI7XG4gICAgcHJvdG8ueWVhciA9IGdldFNldFllYXI7XG4gICAgcHJvdG8uaXNMZWFwWWVhciA9IGdldElzTGVhcFllYXI7XG4gICAgcHJvdG8ud2Vla1llYXIgPSBnZXRTZXRXZWVrWWVhcjtcbiAgICBwcm90by5pc29XZWVrWWVhciA9IGdldFNldElTT1dlZWtZZWFyO1xuICAgIHByb3RvLnF1YXJ0ZXIgPSBwcm90by5xdWFydGVycyA9IGdldFNldFF1YXJ0ZXI7XG4gICAgcHJvdG8ubW9udGggPSBnZXRTZXRNb250aDtcbiAgICBwcm90by5kYXlzSW5Nb250aCA9IGdldERheXNJbk1vbnRoO1xuICAgIHByb3RvLndlZWsgPSBwcm90by53ZWVrcyA9IGdldFNldFdlZWs7XG4gICAgcHJvdG8uaXNvV2VlayA9IHByb3RvLmlzb1dlZWtzID0gZ2V0U2V0SVNPV2VlaztcbiAgICBwcm90by53ZWVrc0luWWVhciA9IGdldFdlZWtzSW5ZZWFyO1xuICAgIHByb3RvLndlZWtzSW5XZWVrWWVhciA9IGdldFdlZWtzSW5XZWVrWWVhcjtcbiAgICBwcm90by5pc29XZWVrc0luWWVhciA9IGdldElTT1dlZWtzSW5ZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5JU09XZWVrWWVhciA9IGdldElTT1dlZWtzSW5JU09XZWVrWWVhcjtcbiAgICBwcm90by5kYXRlID0gZ2V0U2V0RGF5T2ZNb250aDtcbiAgICBwcm90by5kYXkgPSBwcm90by5kYXlzID0gZ2V0U2V0RGF5T2ZXZWVrO1xuICAgIHByb3RvLndlZWtkYXkgPSBnZXRTZXRMb2NhbGVEYXlPZldlZWs7XG4gICAgcHJvdG8uaXNvV2Vla2RheSA9IGdldFNldElTT0RheU9mV2VlaztcbiAgICBwcm90by5kYXlPZlllYXIgPSBnZXRTZXREYXlPZlllYXI7XG4gICAgcHJvdG8uaG91ciA9IHByb3RvLmhvdXJzID0gZ2V0U2V0SG91cjtcbiAgICBwcm90by5taW51dGUgPSBwcm90by5taW51dGVzID0gZ2V0U2V0TWludXRlO1xuICAgIHByb3RvLnNlY29uZCA9IHByb3RvLnNlY29uZHMgPSBnZXRTZXRTZWNvbmQ7XG4gICAgcHJvdG8ubWlsbGlzZWNvbmQgPSBwcm90by5taWxsaXNlY29uZHMgPSBnZXRTZXRNaWxsaXNlY29uZDtcbiAgICBwcm90by51dGNPZmZzZXQgPSBnZXRTZXRPZmZzZXQ7XG4gICAgcHJvdG8udXRjID0gc2V0T2Zmc2V0VG9VVEM7XG4gICAgcHJvdG8ubG9jYWwgPSBzZXRPZmZzZXRUb0xvY2FsO1xuICAgIHByb3RvLnBhcnNlWm9uZSA9IHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0O1xuICAgIHByb3RvLmhhc0FsaWduZWRIb3VyT2Zmc2V0ID0gaGFzQWxpZ25lZEhvdXJPZmZzZXQ7XG4gICAgcHJvdG8uaXNEU1QgPSBpc0RheWxpZ2h0U2F2aW5nVGltZTtcbiAgICBwcm90by5pc0xvY2FsID0gaXNMb2NhbDtcbiAgICBwcm90by5pc1V0Y09mZnNldCA9IGlzVXRjT2Zmc2V0O1xuICAgIHByb3RvLmlzVXRjID0gaXNVdGM7XG4gICAgcHJvdG8uaXNVVEMgPSBpc1V0YztcbiAgICBwcm90by56b25lQWJiciA9IGdldFpvbmVBYmJyO1xuICAgIHByb3RvLnpvbmVOYW1lID0gZ2V0Wm9uZU5hbWU7XG4gICAgcHJvdG8uZGF0ZXMgPSBkZXByZWNhdGUoXG4gICAgICAgICdkYXRlcyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgZGF0ZSBpbnN0ZWFkLicsXG4gICAgICAgIGdldFNldERheU9mTW9udGhcbiAgICApO1xuICAgIHByb3RvLm1vbnRocyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCcsXG4gICAgICAgIGdldFNldE1vbnRoXG4gICAgKTtcbiAgICBwcm90by55ZWFycyA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3llYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQnLFxuICAgICAgICBnZXRTZXRZZWFyXG4gICAgKTtcbiAgICBwcm90by56b25lID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkuem9uZSBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50KCkudXRjT2Zmc2V0IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3Mvem9uZS8nLFxuICAgICAgICBnZXRTZXRab25lXG4gICAgKTtcbiAgICBwcm90by5pc0RTVFNoaWZ0ZWQgPSBkZXByZWNhdGUoXG4gICAgICAgICdpc0RTVFNoaWZ0ZWQgaXMgZGVwcmVjYXRlZC4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZHN0LXNoaWZ0ZWQvIGZvciBtb3JlIGluZm9ybWF0aW9uJyxcbiAgICAgICAgaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkXG4gICAgKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVuaXgoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0ICogMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW5ab25lKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5wYXJzZVpvbmUoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVQYXJzZVBvc3RGb3JtYXQoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDEgPSBMb2NhbGUucHJvdG90eXBlO1xuXG4gICAgcHJvdG8kMS5jYWxlbmRhciA9IGNhbGVuZGFyO1xuICAgIHByb3RvJDEubG9uZ0RhdGVGb3JtYXQgPSBsb25nRGF0ZUZvcm1hdDtcbiAgICBwcm90byQxLmludmFsaWREYXRlID0gaW52YWxpZERhdGU7XG4gICAgcHJvdG8kMS5vcmRpbmFsID0gb3JkaW5hbDtcbiAgICBwcm90byQxLnByZXBhcnNlID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucG9zdGZvcm1hdCA9IHByZVBhcnNlUG9zdEZvcm1hdDtcbiAgICBwcm90byQxLnJlbGF0aXZlVGltZSA9IHJlbGF0aXZlVGltZTtcbiAgICBwcm90byQxLnBhc3RGdXR1cmUgPSBwYXN0RnV0dXJlO1xuICAgIHByb3RvJDEuc2V0ID0gc2V0O1xuICAgIHByb3RvJDEuZXJhcyA9IGxvY2FsZUVyYXM7XG4gICAgcHJvdG8kMS5lcmFzUGFyc2UgPSBsb2NhbGVFcmFzUGFyc2U7XG4gICAgcHJvdG8kMS5lcmFzQ29udmVydFllYXIgPSBsb2NhbGVFcmFzQ29udmVydFllYXI7XG4gICAgcHJvdG8kMS5lcmFzQWJiclJlZ2V4ID0gZXJhc0FiYnJSZWdleDtcbiAgICBwcm90byQxLmVyYXNOYW1lUmVnZXggPSBlcmFzTmFtZVJlZ2V4O1xuICAgIHByb3RvJDEuZXJhc05hcnJvd1JlZ2V4ID0gZXJhc05hcnJvd1JlZ2V4O1xuXG4gICAgcHJvdG8kMS5tb250aHMgPSBsb2NhbGVNb250aHM7XG4gICAgcHJvdG8kMS5tb250aHNTaG9ydCA9IGxvY2FsZU1vbnRoc1Nob3J0O1xuICAgIHByb3RvJDEubW9udGhzUGFyc2UgPSBsb2NhbGVNb250aHNQYXJzZTtcbiAgICBwcm90byQxLm1vbnRoc1JlZ2V4ID0gbW9udGhzUmVnZXg7XG4gICAgcHJvdG8kMS5tb250aHNTaG9ydFJlZ2V4ID0gbW9udGhzU2hvcnRSZWdleDtcbiAgICBwcm90byQxLndlZWsgPSBsb2NhbGVXZWVrO1xuICAgIHByb3RvJDEuZmlyc3REYXlPZlllYXIgPSBsb2NhbGVGaXJzdERheU9mWWVhcjtcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZXZWVrID0gbG9jYWxlRmlyc3REYXlPZldlZWs7XG5cbiAgICBwcm90byQxLndlZWtkYXlzID0gbG9jYWxlV2Vla2RheXM7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pbiA9IGxvY2FsZVdlZWtkYXlzTWluO1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydCA9IGxvY2FsZVdlZWtkYXlzU2hvcnQ7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1BhcnNlID0gbG9jYWxlV2Vla2RheXNQYXJzZTtcblxuICAgIHByb3RvJDEud2Vla2RheXNSZWdleCA9IHdlZWtkYXlzUmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0UmVnZXggPSB3ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pblJlZ2V4ID0gd2Vla2RheXNNaW5SZWdleDtcblxuICAgIHByb3RvJDEuaXNQTSA9IGxvY2FsZUlzUE07XG4gICAgcHJvdG8kMS5tZXJpZGllbSA9IGxvY2FsZU1lcmlkaWVtO1xuXG4gICAgZnVuY3Rpb24gZ2V0JDEoZm9ybWF0LCBpbmRleCwgZmllbGQsIHNldHRlcikge1xuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICB1dGMgPSBjcmVhdGVVVEMoKS5zZXQoc2V0dGVyLCBpbmRleCk7XG4gICAgICAgIHJldHVybiBsb2NhbGVbZmllbGRdKHV0YywgZm9ybWF0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCBmaWVsZCkge1xuICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgJ21vbnRoJyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaSxcbiAgICAgICAgICAgIG91dCA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCBpLCBmaWVsZCwgJ21vbnRoJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICAvLyAoKVxuICAgIC8vICg1KVxuICAgIC8vIChmbXQsIDUpXG4gICAgLy8gKGZtdClcbiAgICAvLyAodHJ1ZSlcbiAgICAvLyAodHJ1ZSwgNSlcbiAgICAvLyAodHJ1ZSwgZm10LCA1KVxuICAgIC8vICh0cnVlLCBmbXQpXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsIGZpZWxkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbG9jYWxlU29ydGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtYXQgPSBsb2NhbGVTb3J0ZWQ7XG4gICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgIGxvY2FsZVNvcnRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxvY2FsZSA9IGdldExvY2FsZSgpLFxuICAgICAgICAgICAgc2hpZnQgPSBsb2NhbGVTb3J0ZWQgPyBsb2NhbGUuX3dlZWsuZG93IDogMCxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBvdXQgPSBbXTtcblxuICAgICAgICBpZiAoaW5kZXggIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGdldCQxKGZvcm1hdCwgKGluZGV4ICsgc2hpZnQpICUgNywgZmllbGQsICdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgKGkgKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRocyhmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRoc1Nob3J0KGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHNTaG9ydCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5cyhsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXNTaG9ydChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXNTaG9ydCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c01pbihsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXNNaW4nKTtcbiAgICB9XG5cbiAgICBnZXRTZXRHbG9iYWxMb2NhbGUoJ2VuJywge1xuICAgICAgICBlcmFzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcwMDAxLTAxLTAxJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogK0luZmluaXR5LFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAnQW5ubyBEb21pbmknLFxuICAgICAgICAgICAgICAgIG5hcnJvdzogJ0FEJyxcbiAgICAgICAgICAgICAgICBhYmJyOiAnQUQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzAwMDAtMTItMzEnLFxuICAgICAgICAgICAgICAgIHVudGlsOiAtSW5maW5pdHksXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAxLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdCZWZvcmUgQ2hyaXN0JyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICdCQycsXG4gICAgICAgICAgICAgICAgYWJicjogJ0JDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSh0aHxzdHxuZHxyZCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIHRvSW50KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cbiAgICBob29rcy5sYW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50LmxhbmcgaXMgZGVwcmVjYXRlZC4gVXNlIG1vbWVudC5sb2NhbGUgaW5zdGVhZC4nLFxuICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGVcbiAgICApO1xuICAgIGhvb2tzLmxhbmdEYXRhID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50LmxhbmdEYXRhIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlRGF0YSBpbnN0ZWFkLicsXG4gICAgICAgIGdldExvY2FsZVxuICAgICk7XG5cbiAgICB2YXIgbWF0aEFicyA9IE1hdGguYWJzO1xuXG4gICAgZnVuY3Rpb24gYWJzKCkge1xuICAgICAgICB2YXIgZGF0YSA9IHRoaXMuX2RhdGE7XG5cbiAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gbWF0aEFicyh0aGlzLl9taWxsaXNlY29uZHMpO1xuICAgICAgICB0aGlzLl9kYXlzID0gbWF0aEFicyh0aGlzLl9kYXlzKTtcbiAgICAgICAgdGhpcy5fbW9udGhzID0gbWF0aEFicyh0aGlzLl9tb250aHMpO1xuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWF0aEFicyhkYXRhLm1pbGxpc2Vjb25kcyk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyA9IG1hdGhBYnMoZGF0YS5zZWNvbmRzKTtcbiAgICAgICAgZGF0YS5taW51dGVzID0gbWF0aEFicyhkYXRhLm1pbnV0ZXMpO1xuICAgICAgICBkYXRhLmhvdXJzID0gbWF0aEFicyhkYXRhLmhvdXJzKTtcbiAgICAgICAgZGF0YS5tb250aHMgPSBtYXRoQWJzKGRhdGEubW9udGhzKTtcbiAgICAgICAgZGF0YS55ZWFycyA9IG1hdGhBYnMoZGF0YS55ZWFycyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QkMShkdXJhdGlvbiwgaW5wdXQsIHZhbHVlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlRHVyYXRpb24oaW5wdXQsIHZhbHVlKTtcblxuICAgICAgICBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9taWxsaXNlY29uZHM7XG4gICAgICAgIGR1cmF0aW9uLl9kYXlzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9kYXlzO1xuICAgICAgICBkdXJhdGlvbi5fbW9udGhzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9tb250aHM7XG5cbiAgICAgICAgcmV0dXJuIGR1cmF0aW9uLl9idWJibGUoKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBhZGQoMSwgJ3MnKSBvciBhZGQoZHVyYXRpb24pXG4gICAgZnVuY3Rpb24gYWRkJDEoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgMSk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgc3VidHJhY3QoMSwgJ3MnKSBvciBzdWJ0cmFjdChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBzdWJ0cmFjdCQxKGlucHV0LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIC0xKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNDZWlsKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGJ1YmJsZSgpIHtcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzLFxuICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzLFxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuX2RhdGEsXG4gICAgICAgICAgICBzZWNvbmRzLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgeWVhcnMsXG4gICAgICAgICAgICBtb250aHNGcm9tRGF5cztcblxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgbWl4IG9mIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB2YWx1ZXMsIGJ1YmJsZSBkb3duIGZpcnN0XG4gICAgICAgIC8vIGNoZWNrOiBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjE2NlxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgIChtaWxsaXNlY29uZHMgPj0gMCAmJiBkYXlzID49IDAgJiYgbW9udGhzID49IDApIHx8XG4gICAgICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyA8PSAwICYmIGRheXMgPD0gMCAmJiBtb250aHMgPD0gMClcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBtaWxsaXNlY29uZHMgKz0gYWJzQ2VpbChtb250aHNUb0RheXMobW9udGhzKSArIGRheXMpICogODY0ZTU7XG4gICAgICAgICAgICBkYXlzID0gMDtcbiAgICAgICAgICAgIG1vbnRocyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgYnViYmxlcyB1cCB2YWx1ZXMsIHNlZSB0aGUgdGVzdHMgZm9yXG4gICAgICAgIC8vIGV4YW1wbGVzIG9mIHdoYXQgdGhhdCBtZWFucy5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHMgJSAxMDAwO1xuXG4gICAgICAgIHNlY29uZHMgPSBhYnNGbG9vcihtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICAgICAgZGF0YS5zZWNvbmRzID0gc2Vjb25kcyAlIDYwO1xuXG4gICAgICAgIG1pbnV0ZXMgPSBhYnNGbG9vcihzZWNvbmRzIC8gNjApO1xuICAgICAgICBkYXRhLm1pbnV0ZXMgPSBtaW51dGVzICUgNjA7XG5cbiAgICAgICAgaG91cnMgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBkYXRhLmhvdXJzID0gaG91cnMgJSAyNDtcblxuICAgICAgICBkYXlzICs9IGFic0Zsb29yKGhvdXJzIC8gMjQpO1xuXG4gICAgICAgIC8vIGNvbnZlcnQgZGF5cyB0byBtb250aHNcbiAgICAgICAgbW9udGhzRnJvbURheXMgPSBhYnNGbG9vcihkYXlzVG9Nb250aHMoZGF5cykpO1xuICAgICAgICBtb250aHMgKz0gbW9udGhzRnJvbURheXM7XG4gICAgICAgIGRheXMgLT0gYWJzQ2VpbChtb250aHNUb0RheXMobW9udGhzRnJvbURheXMpKTtcblxuICAgICAgICAvLyAxMiBtb250aHMgLT4gMSB5ZWFyXG4gICAgICAgIHllYXJzID0gYWJzRmxvb3IobW9udGhzIC8gMTIpO1xuICAgICAgICBtb250aHMgJT0gMTI7XG5cbiAgICAgICAgZGF0YS5kYXlzID0gZGF5cztcbiAgICAgICAgZGF0YS5tb250aHMgPSBtb250aHM7XG4gICAgICAgIGRhdGEueWVhcnMgPSB5ZWFycztcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlzVG9Nb250aHMoZGF5cykge1xuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxNDYwOTcgZGF5cyAodGFraW5nIGludG8gYWNjb3VudCBsZWFwIHllYXIgcnVsZXMpXG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDEyIG1vbnRocyA9PT0gNDgwMFxuICAgICAgICByZXR1cm4gKGRheXMgKiA0ODAwKSAvIDE0NjA5NztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aHNUb0RheXMobW9udGhzKSB7XG4gICAgICAgIC8vIHRoZSByZXZlcnNlIG9mIGRheXNUb01vbnRoc1xuICAgICAgICByZXR1cm4gKG1vbnRocyAqIDE0NjA5NykgLyA0ODAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzKHVuaXRzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheXMsXG4gICAgICAgICAgICBtb250aHMsXG4gICAgICAgICAgICBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHM7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgaWYgKHVuaXRzID09PSAnbW9udGgnIHx8IHVuaXRzID09PSAncXVhcnRlcicgfHwgdW5pdHMgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgZGF5cyA9IHRoaXMuX2RheXMgKyBtaWxsaXNlY29uZHMgLyA4NjRlNTtcbiAgICAgICAgICAgIG1vbnRocyA9IHRoaXMuX21vbnRocyArIGRheXNUb01vbnRocyhkYXlzKTtcbiAgICAgICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb250aHM7XG4gICAgICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb250aHMgLyAzO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzIC8gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgbWlsbGlzZWNvbmRzIHNlcGFyYXRlbHkgYmVjYXVzZSBvZiBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyAoaXNzdWUgIzE4NjcpXG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIE1hdGgucm91bmQobW9udGhzVG9EYXlzKHRoaXMuX21vbnRocykpO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF5cyAvIDcgKyBtaWxsaXNlY29uZHMgLyA2MDQ4ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKyBtaWxsaXNlY29uZHMgLyA4NjRlNTtcbiAgICAgICAgICAgICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiAyNCArIG1pbGxpc2Vjb25kcyAvIDM2ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRheXMgKiAxNDQwICsgbWlsbGlzZWNvbmRzIC8gNmU0O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXlzICogODY0MDAgKyBtaWxsaXNlY29uZHMgLyAxMDAwO1xuICAgICAgICAgICAgICAgIC8vIE1hdGguZmxvb3IgcHJldmVudHMgZmxvYXRpbmcgcG9pbnQgbWF0aCBlcnJvcnMgaGVyZVxuICAgICAgICAgICAgICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGF5cyAqIDg2NGU1KSArIG1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdW5pdCAnICsgdW5pdHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVXNlIHRoaXMuYXMoJ21zJyk/XG4gICAgZnVuY3Rpb24gdmFsdWVPZiQxKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgK1xuICAgICAgICAgICAgdGhpcy5fZGF5cyAqIDg2NGU1ICtcbiAgICAgICAgICAgICh0aGlzLl9tb250aHMgJSAxMikgKiAyNTkyZTYgK1xuICAgICAgICAgICAgdG9JbnQodGhpcy5fbW9udGhzIC8gMTIpICogMzE1MzZlNlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VBcyhhbGlhcykge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXMoYWxpYXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBhc01pbGxpc2Vjb25kcyA9IG1ha2VBcygnbXMnKSxcbiAgICAgICAgYXNTZWNvbmRzID0gbWFrZUFzKCdzJyksXG4gICAgICAgIGFzTWludXRlcyA9IG1ha2VBcygnbScpLFxuICAgICAgICBhc0hvdXJzID0gbWFrZUFzKCdoJyksXG4gICAgICAgIGFzRGF5cyA9IG1ha2VBcygnZCcpLFxuICAgICAgICBhc1dlZWtzID0gbWFrZUFzKCd3JyksXG4gICAgICAgIGFzTW9udGhzID0gbWFrZUFzKCdNJyksXG4gICAgICAgIGFzUXVhcnRlcnMgPSBtYWtlQXMoJ1EnKSxcbiAgICAgICAgYXNZZWFycyA9IG1ha2VBcygneScpO1xuXG4gICAgZnVuY3Rpb24gY2xvbmUkMSgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUR1cmF0aW9uKHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldCQyKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzW3VuaXRzICsgJ3MnXSgpIDogTmFOO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXR0ZXIobmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5fZGF0YVtuYW1lXSA6IE5hTjtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gbWFrZUdldHRlcignbWlsbGlzZWNvbmRzJyksXG4gICAgICAgIHNlY29uZHMgPSBtYWtlR2V0dGVyKCdzZWNvbmRzJyksXG4gICAgICAgIG1pbnV0ZXMgPSBtYWtlR2V0dGVyKCdtaW51dGVzJyksXG4gICAgICAgIGhvdXJzID0gbWFrZUdldHRlcignaG91cnMnKSxcbiAgICAgICAgZGF5cyA9IG1ha2VHZXR0ZXIoJ2RheXMnKSxcbiAgICAgICAgbW9udGhzID0gbWFrZUdldHRlcignbW9udGhzJyksXG4gICAgICAgIHllYXJzID0gbWFrZUdldHRlcigneWVhcnMnKTtcblxuICAgIGZ1bmN0aW9uIHdlZWtzKCkge1xuICAgICAgICByZXR1cm4gYWJzRmxvb3IodGhpcy5kYXlzKCkgLyA3KTtcbiAgICB9XG5cbiAgICB2YXIgcm91bmQgPSBNYXRoLnJvdW5kLFxuICAgICAgICB0aHJlc2hvbGRzID0ge1xuICAgICAgICAgICAgc3M6IDQ0LCAvLyBhIGZldyBzZWNvbmRzIHRvIHNlY29uZHNcbiAgICAgICAgICAgIHM6IDQ1LCAvLyBzZWNvbmRzIHRvIG1pbnV0ZVxuICAgICAgICAgICAgbTogNDUsIC8vIG1pbnV0ZXMgdG8gaG91clxuICAgICAgICAgICAgaDogMjIsIC8vIGhvdXJzIHRvIGRheVxuICAgICAgICAgICAgZDogMjYsIC8vIGRheXMgdG8gbW9udGgvd2Vla1xuICAgICAgICAgICAgdzogbnVsbCwgLy8gd2Vla3MgdG8gbW9udGhcbiAgICAgICAgICAgIE06IDExLCAvLyBtb250aHMgdG8geWVhclxuICAgICAgICB9O1xuXG4gICAgLy8gaGVscGVyIGZ1bmN0aW9uIGZvciBtb21lbnQuZm4uZnJvbSwgbW9tZW50LmZuLmZyb21Ob3csIGFuZCBtb21lbnQuZHVyYXRpb24uZm4uaHVtYW5pemVcbiAgICBmdW5jdGlvbiBzdWJzdGl0dXRlVGltZUFnbyhzdHJpbmcsIG51bWJlciwgd2l0aG91dFN1ZmZpeCwgaXNGdXR1cmUsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLnJlbGF0aXZlVGltZShudW1iZXIgfHwgMSwgISF3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUkMShwb3NOZWdEdXJhdGlvbiwgd2l0aG91dFN1ZmZpeCwgdGhyZXNob2xkcywgbG9jYWxlKSB7XG4gICAgICAgIHZhciBkdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uKHBvc05lZ0R1cmF0aW9uKS5hYnMoKSxcbiAgICAgICAgICAgIHNlY29uZHMgPSByb3VuZChkdXJhdGlvbi5hcygncycpKSxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSByb3VuZChkdXJhdGlvbi5hcygnbScpKSxcbiAgICAgICAgICAgIGhvdXJzID0gcm91bmQoZHVyYXRpb24uYXMoJ2gnKSksXG4gICAgICAgICAgICBkYXlzID0gcm91bmQoZHVyYXRpb24uYXMoJ2QnKSksXG4gICAgICAgICAgICBtb250aHMgPSByb3VuZChkdXJhdGlvbi5hcygnTScpKSxcbiAgICAgICAgICAgIHdlZWtzID0gcm91bmQoZHVyYXRpb24uYXMoJ3cnKSksXG4gICAgICAgICAgICB5ZWFycyA9IHJvdW5kKGR1cmF0aW9uLmFzKCd5JykpLFxuICAgICAgICAgICAgYSA9XG4gICAgICAgICAgICAgICAgKHNlY29uZHMgPD0gdGhyZXNob2xkcy5zcyAmJiBbJ3MnLCBzZWNvbmRzXSkgfHxcbiAgICAgICAgICAgICAgICAoc2Vjb25kcyA8IHRocmVzaG9sZHMucyAmJiBbJ3NzJywgc2Vjb25kc10pIHx8XG4gICAgICAgICAgICAgICAgKG1pbnV0ZXMgPD0gMSAmJiBbJ20nXSkgfHxcbiAgICAgICAgICAgICAgICAobWludXRlcyA8IHRocmVzaG9sZHMubSAmJiBbJ21tJywgbWludXRlc10pIHx8XG4gICAgICAgICAgICAgICAgKGhvdXJzIDw9IDEgJiYgWydoJ10pIHx8XG4gICAgICAgICAgICAgICAgKGhvdXJzIDwgdGhyZXNob2xkcy5oICYmIFsnaGgnLCBob3Vyc10pIHx8XG4gICAgICAgICAgICAgICAgKGRheXMgPD0gMSAmJiBbJ2QnXSkgfHxcbiAgICAgICAgICAgICAgICAoZGF5cyA8IHRocmVzaG9sZHMuZCAmJiBbJ2RkJywgZGF5c10pO1xuXG4gICAgICAgIGlmICh0aHJlc2hvbGRzLncgIT0gbnVsbCkge1xuICAgICAgICAgICAgYSA9XG4gICAgICAgICAgICAgICAgYSB8fFxuICAgICAgICAgICAgICAgICh3ZWVrcyA8PSAxICYmIFsndyddKSB8fFxuICAgICAgICAgICAgICAgICh3ZWVrcyA8IHRocmVzaG9sZHMudyAmJiBbJ3d3Jywgd2Vla3NdKTtcbiAgICAgICAgfVxuICAgICAgICBhID0gYSB8fFxuICAgICAgICAgICAgKG1vbnRocyA8PSAxICYmIFsnTSddKSB8fFxuICAgICAgICAgICAgKG1vbnRocyA8IHRocmVzaG9sZHMuTSAmJiBbJ01NJywgbW9udGhzXSkgfHxcbiAgICAgICAgICAgICh5ZWFycyA8PSAxICYmIFsneSddKSB8fCBbJ3l5JywgeWVhcnNdO1xuXG4gICAgICAgIGFbMl0gPSB3aXRob3V0U3VmZml4O1xuICAgICAgICBhWzNdID0gK3Bvc05lZ0R1cmF0aW9uID4gMDtcbiAgICAgICAgYVs0XSA9IGxvY2FsZTtcbiAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGVUaW1lQWdvLmFwcGx5KG51bGwsIGEpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBzZXQgdGhlIHJvdW5kaW5nIGZ1bmN0aW9uIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbiAgICBmdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZyhyb3VuZGluZ0Z1bmN0aW9uKSB7XG4gICAgICAgIGlmIChyb3VuZGluZ0Z1bmN0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByb3VuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJvdW5kaW5nRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJvdW5kID0gcm91bmRpbmdGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IGEgdGhyZXNob2xkIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbiAgICBmdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQodGhyZXNob2xkLCBsaW1pdCkge1xuICAgICAgICBpZiAodGhyZXNob2xkc1t0aHJlc2hvbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGltaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRocmVzaG9sZHNbdGhyZXNob2xkXTtcbiAgICAgICAgfVxuICAgICAgICB0aHJlc2hvbGRzW3RocmVzaG9sZF0gPSBsaW1pdDtcbiAgICAgICAgaWYgKHRocmVzaG9sZCA9PT0gJ3MnKSB7XG4gICAgICAgICAgICB0aHJlc2hvbGRzLnNzID0gbGltaXQgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGh1bWFuaXplKGFyZ1dpdGhTdWZmaXgsIGFyZ1RocmVzaG9sZHMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgd2l0aFN1ZmZpeCA9IGZhbHNlLFxuICAgICAgICAgICAgdGggPSB0aHJlc2hvbGRzLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgb3V0cHV0O1xuXG4gICAgICAgIGlmICh0eXBlb2YgYXJnV2l0aFN1ZmZpeCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGFyZ1RocmVzaG9sZHMgPSBhcmdXaXRoU3VmZml4O1xuICAgICAgICAgICAgYXJnV2l0aFN1ZmZpeCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYXJnV2l0aFN1ZmZpeCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICB3aXRoU3VmZml4ID0gYXJnV2l0aFN1ZmZpeDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGFyZ1RocmVzaG9sZHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aCA9IE9iamVjdC5hc3NpZ24oe30sIHRocmVzaG9sZHMsIGFyZ1RocmVzaG9sZHMpO1xuICAgICAgICAgICAgaWYgKGFyZ1RocmVzaG9sZHMucyAhPSBudWxsICYmIGFyZ1RocmVzaG9sZHMuc3MgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoLnNzID0gYXJnVGhyZXNob2xkcy5zIC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlRGF0YSgpO1xuICAgICAgICBvdXRwdXQgPSByZWxhdGl2ZVRpbWUkMSh0aGlzLCAhd2l0aFN1ZmZpeCwgdGgsIGxvY2FsZSk7XG5cbiAgICAgICAgaWYgKHdpdGhTdWZmaXgpIHtcbiAgICAgICAgICAgIG91dHB1dCA9IGxvY2FsZS5wYXN0RnV0dXJlKCt0aGlzLCBvdXRwdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxvY2FsZS5wb3N0Zm9ybWF0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFicyQxID0gTWF0aC5hYnM7XG5cbiAgICBmdW5jdGlvbiBzaWduKHgpIHtcbiAgICAgICAgcmV0dXJuICh4ID4gMCkgLSAoeCA8IDApIHx8ICt4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nJDEoKSB7XG4gICAgICAgIC8vIGZvciBJU08gc3RyaW5ncyB3ZSBkbyBub3QgdXNlIHRoZSBub3JtYWwgYnViYmxpbmcgcnVsZXM6XG4gICAgICAgIC8vICAqIG1pbGxpc2Vjb25kcyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgaG91cnNcbiAgICAgICAgLy8gICogZGF5cyBkbyBub3QgYnViYmxlIGF0IGFsbFxuICAgICAgICAvLyAgKiBtb250aHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIHllYXJzXG4gICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB0aGVyZSBpcyBubyBjb250ZXh0LWZyZWUgY29udmVyc2lvbiBiZXR3ZWVuIGhvdXJzIGFuZCBkYXlzXG4gICAgICAgIC8vICh0aGluayBvZiBjbG9jayBjaGFuZ2VzKVxuICAgICAgICAvLyBhbmQgYWxzbyBub3QgYmV0d2VlbiBkYXlzIGFuZCBtb250aHMgKDI4LTMxIGRheXMgcGVyIG1vbnRoKVxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWNvbmRzID0gYWJzJDEodGhpcy5fbWlsbGlzZWNvbmRzKSAvIDEwMDAsXG4gICAgICAgICAgICBkYXlzID0gYWJzJDEodGhpcy5fZGF5cyksXG4gICAgICAgICAgICBtb250aHMgPSBhYnMkMSh0aGlzLl9tb250aHMpLFxuICAgICAgICAgICAgbWludXRlcyxcbiAgICAgICAgICAgIGhvdXJzLFxuICAgICAgICAgICAgeWVhcnMsXG4gICAgICAgICAgICBzLFxuICAgICAgICAgICAgdG90YWwgPSB0aGlzLmFzU2Vjb25kcygpLFxuICAgICAgICAgICAgdG90YWxTaWduLFxuICAgICAgICAgICAgeW1TaWduLFxuICAgICAgICAgICAgZGF5c1NpZ24sXG4gICAgICAgICAgICBobXNTaWduO1xuXG4gICAgICAgIGlmICghdG90YWwpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgdGhlIHNhbWUgYXMgQyMncyAoTm9kYSkgYW5kIHB5dGhvbiAoaXNvZGF0ZSkuLi5cbiAgICAgICAgICAgIC8vIGJ1dCBub3Qgb3RoZXIgSlMgKGdvb2cuZGF0ZSlcbiAgICAgICAgICAgIHJldHVybiAnUDBEJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDM2MDAgc2Vjb25kcyAtPiA2MCBtaW51dGVzIC0+IDEgaG91clxuICAgICAgICBtaW51dGVzID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgaG91cnMgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBzZWNvbmRzICU9IDYwO1xuICAgICAgICBtaW51dGVzICU9IDYwO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qc1xuICAgICAgICBzID0gc2Vjb25kcyA/IHNlY29uZHMudG9GaXhlZCgzKS5yZXBsYWNlKC9cXC4/MCskLywgJycpIDogJyc7XG5cbiAgICAgICAgdG90YWxTaWduID0gdG90YWwgPCAwID8gJy0nIDogJyc7XG4gICAgICAgIHltU2lnbiA9IHNpZ24odGhpcy5fbW9udGhzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcbiAgICAgICAgZGF5c1NpZ24gPSBzaWduKHRoaXMuX2RheXMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICBobXNTaWduID0gc2lnbih0aGlzLl9taWxsaXNlY29uZHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0b3RhbFNpZ24gK1xuICAgICAgICAgICAgJ1AnICtcbiAgICAgICAgICAgICh5ZWFycyA/IHltU2lnbiArIHllYXJzICsgJ1knIDogJycpICtcbiAgICAgICAgICAgIChtb250aHMgPyB5bVNpZ24gKyBtb250aHMgKyAnTScgOiAnJykgK1xuICAgICAgICAgICAgKGRheXMgPyBkYXlzU2lnbiArIGRheXMgKyAnRCcgOiAnJykgK1xuICAgICAgICAgICAgKGhvdXJzIHx8IG1pbnV0ZXMgfHwgc2Vjb25kcyA/ICdUJyA6ICcnKSArXG4gICAgICAgICAgICAoaG91cnMgPyBobXNTaWduICsgaG91cnMgKyAnSCcgOiAnJykgK1xuICAgICAgICAgICAgKG1pbnV0ZXMgPyBobXNTaWduICsgbWludXRlcyArICdNJyA6ICcnKSArXG4gICAgICAgICAgICAoc2Vjb25kcyA/IGhtc1NpZ24gKyBzICsgJ1MnIDogJycpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDIgPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5cbiAgICBwcm90byQyLmlzVmFsaWQgPSBpc1ZhbGlkJDE7XG4gICAgcHJvdG8kMi5hYnMgPSBhYnM7XG4gICAgcHJvdG8kMi5hZGQgPSBhZGQkMTtcbiAgICBwcm90byQyLnN1YnRyYWN0ID0gc3VidHJhY3QkMTtcbiAgICBwcm90byQyLmFzID0gYXM7XG4gICAgcHJvdG8kMi5hc01pbGxpc2Vjb25kcyA9IGFzTWlsbGlzZWNvbmRzO1xuICAgIHByb3RvJDIuYXNTZWNvbmRzID0gYXNTZWNvbmRzO1xuICAgIHByb3RvJDIuYXNNaW51dGVzID0gYXNNaW51dGVzO1xuICAgIHByb3RvJDIuYXNIb3VycyA9IGFzSG91cnM7XG4gICAgcHJvdG8kMi5hc0RheXMgPSBhc0RheXM7XG4gICAgcHJvdG8kMi5hc1dlZWtzID0gYXNXZWVrcztcbiAgICBwcm90byQyLmFzTW9udGhzID0gYXNNb250aHM7XG4gICAgcHJvdG8kMi5hc1F1YXJ0ZXJzID0gYXNRdWFydGVycztcbiAgICBwcm90byQyLmFzWWVhcnMgPSBhc1llYXJzO1xuICAgIHByb3RvJDIudmFsdWVPZiA9IHZhbHVlT2YkMTtcbiAgICBwcm90byQyLl9idWJibGUgPSBidWJibGU7XG4gICAgcHJvdG8kMi5jbG9uZSA9IGNsb25lJDE7XG4gICAgcHJvdG8kMi5nZXQgPSBnZXQkMjtcbiAgICBwcm90byQyLm1pbGxpc2Vjb25kcyA9IG1pbGxpc2Vjb25kcztcbiAgICBwcm90byQyLnNlY29uZHMgPSBzZWNvbmRzO1xuICAgIHByb3RvJDIubWludXRlcyA9IG1pbnV0ZXM7XG4gICAgcHJvdG8kMi5ob3VycyA9IGhvdXJzO1xuICAgIHByb3RvJDIuZGF5cyA9IGRheXM7XG4gICAgcHJvdG8kMi53ZWVrcyA9IHdlZWtzO1xuICAgIHByb3RvJDIubW9udGhzID0gbW9udGhzO1xuICAgIHByb3RvJDIueWVhcnMgPSB5ZWFycztcbiAgICBwcm90byQyLmh1bWFuaXplID0gaHVtYW5pemU7XG4gICAgcHJvdG8kMi50b0lTT1N0cmluZyA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi50b1N0cmluZyA9IHRvSVNPU3RyaW5nJDE7XG4gICAgcHJvdG8kMi50b0pTT04gPSB0b0lTT1N0cmluZyQxO1xuICAgIHByb3RvJDIubG9jYWxlID0gbG9jYWxlO1xuICAgIHByb3RvJDIubG9jYWxlRGF0YSA9IGxvY2FsZURhdGE7XG5cbiAgICBwcm90byQyLnRvSXNvU3RyaW5nID0gZGVwcmVjYXRlKFxuICAgICAgICAndG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscyknLFxuICAgICAgICB0b0lTT1N0cmluZyQxXG4gICAgKTtcbiAgICBwcm90byQyLmxhbmcgPSBsYW5nO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1gnLCAwLCAwLCAndW5peCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd4JywgMCwgMCwgJ3ZhbHVlT2YnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWCcsIG1hdGNoVGltZXN0YW1wKTtcbiAgICBhZGRQYXJzZVRva2VuKCdYJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQpICogMTAwMCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbigneCcsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpO1xuICAgIH0pO1xuXG4gICAgLy8hIG1vbWVudC5qc1xuXG4gICAgaG9va3MudmVyc2lvbiA9ICcyLjI3LjAnO1xuXG4gICAgc2V0SG9va0NhbGxiYWNrKGNyZWF0ZUxvY2FsKTtcblxuICAgIGhvb2tzLmZuID0gcHJvdG87XG4gICAgaG9va3MubWluID0gbWluO1xuICAgIGhvb2tzLm1heCA9IG1heDtcbiAgICBob29rcy5ub3cgPSBub3c7XG4gICAgaG9va3MudXRjID0gY3JlYXRlVVRDO1xuICAgIGhvb2tzLnVuaXggPSBjcmVhdGVVbml4O1xuICAgIGhvb2tzLm1vbnRocyA9IGxpc3RNb250aHM7XG4gICAgaG9va3MuaXNEYXRlID0gaXNEYXRlO1xuICAgIGhvb2tzLmxvY2FsZSA9IGdldFNldEdsb2JhbExvY2FsZTtcbiAgICBob29rcy5pbnZhbGlkID0gY3JlYXRlSW52YWxpZDtcbiAgICBob29rcy5kdXJhdGlvbiA9IGNyZWF0ZUR1cmF0aW9uO1xuICAgIGhvb2tzLmlzTW9tZW50ID0gaXNNb21lbnQ7XG4gICAgaG9va3Mud2Vla2RheXMgPSBsaXN0V2Vla2RheXM7XG4gICAgaG9va3MucGFyc2Vab25lID0gY3JlYXRlSW5ab25lO1xuICAgIGhvb2tzLmxvY2FsZURhdGEgPSBnZXRMb2NhbGU7XG4gICAgaG9va3MuaXNEdXJhdGlvbiA9IGlzRHVyYXRpb247XG4gICAgaG9va3MubW9udGhzU2hvcnQgPSBsaXN0TW9udGhzU2hvcnQ7XG4gICAgaG9va3Mud2Vla2RheXNNaW4gPSBsaXN0V2Vla2RheXNNaW47XG4gICAgaG9va3MuZGVmaW5lTG9jYWxlID0gZGVmaW5lTG9jYWxlO1xuICAgIGhvb2tzLnVwZGF0ZUxvY2FsZSA9IHVwZGF0ZUxvY2FsZTtcbiAgICBob29rcy5sb2NhbGVzID0gbGlzdExvY2FsZXM7XG4gICAgaG9va3Mud2Vla2RheXNTaG9ydCA9IGxpc3RXZWVrZGF5c1Nob3J0O1xuICAgIGhvb2tzLm5vcm1hbGl6ZVVuaXRzID0gbm9ybWFsaXplVW5pdHM7XG4gICAgaG9va3MucmVsYXRpdmVUaW1lUm91bmRpbmcgPSBnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZztcbiAgICBob29rcy5yZWxhdGl2ZVRpbWVUaHJlc2hvbGQgPSBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQ7XG4gICAgaG9va3MuY2FsZW5kYXJGb3JtYXQgPSBnZXRDYWxlbmRhckZvcm1hdDtcbiAgICBob29rcy5wcm90b3R5cGUgPSBwcm90bztcblxuICAgIC8vIGN1cnJlbnRseSBIVE1MNSBpbnB1dCB0eXBlIG9ubHkgc3VwcG9ydHMgMjQtaG91ciBmb3JtYXRzXG4gICAgaG9va3MuSFRNTDVfRk1UID0ge1xuICAgICAgICBEQVRFVElNRV9MT0NBTDogJ1lZWVktTU0tRERUSEg6bW0nLCAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfU0VDT05EUzogJ1lZWVktTU0tRERUSEg6bW06c3MnLCAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgc3RlcD1cIjFcIiAvPlxuICAgICAgICBEQVRFVElNRV9MT0NBTF9NUzogJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJywgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIERBVEU6ICdZWVlZLU1NLUREJywgLy8gPGlucHV0IHR5cGU9XCJkYXRlXCIgLz5cbiAgICAgICAgVElNRTogJ0hIOm1tJywgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgLz5cbiAgICAgICAgVElNRV9TRUNPTkRTOiAnSEg6bW06c3MnLCAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiBzdGVwPVwiMVwiIC8+XG4gICAgICAgIFRJTUVfTVM6ICdISDptbTpzcy5TU1MnLCAvLyA8aW5wdXQgdHlwZT1cInRpbWVcIiBzdGVwPVwiMC4wMDFcIiAvPlxuICAgICAgICBXRUVLOiAnR0dHRy1bV11XVycsIC8vIDxpbnB1dCB0eXBlPVwid2Vla1wiIC8+XG4gICAgICAgIE1PTlRIOiAnWVlZWS1NTScsIC8vIDxpbnB1dCB0eXBlPVwibW9udGhcIiAvPlxuICAgIH07XG5cbiAgICByZXR1cm4gaG9va3M7XG5cbn0pKSk7XG4iLCJmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgIFwiZGVmYXVsdFwiOiBvYmpcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufSIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59IiwiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImltcG9ydCBhcnJheVdpdGhIb2xlcyBmcm9tIFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiO1xuaW1wb3J0IGl0ZXJhYmxlVG9BcnJheUxpbWl0IGZyb20gXCIuL2l0ZXJhYmxlVG9BcnJheUxpbWl0LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVJlc3QgZnJvbSBcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHtcbiAgcmV0dXJuIGFycmF5V2l0aEhvbGVzKGFycikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IG5vbkl0ZXJhYmxlUmVzdCgpO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHtcbiAgdmFyIF9pID0gYXJyICYmICh0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIGFycltTeW1ib2wuaXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl0pO1xuXG4gIGlmIChfaSA9PSBudWxsKSByZXR1cm47XG4gIHZhciBfYXJyID0gW107XG4gIHZhciBfbiA9IHRydWU7XG4gIHZhciBfZCA9IGZhbHNlO1xuXG4gIHZhciBfcywgX2U7XG5cbiAgdHJ5IHtcbiAgICBmb3IgKF9pID0gX2kuY2FsbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7XG4gICAgICBfYXJyLnB1c2goX3MudmFsdWUpO1xuXG4gICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBfZCA9IHRydWU7XG4gICAgX2UgPSBlcnI7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0gIT0gbnVsbCkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKF9kKSB0aHJvdyBfZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gX2Fycjtcbn0iLCJpbXBvcnQgX2N1cnJ5MSBmcm9tIFwiLi9fY3VycnkxLmpzXCI7XG5pbXBvcnQgX2lzUGxhY2Vob2xkZXIgZnJvbSBcIi4vX2lzUGxhY2Vob2xkZXIuanNcIjtcbi8qKlxuICogT3B0aW1pemVkIGludGVybmFsIHR3by1hcml0eSBjdXJyeSBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gVGhlIGN1cnJpZWQgZnVuY3Rpb24uXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2N1cnJ5Mihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gZjIoYSwgYikge1xuICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gZjI7XG5cbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIF9pc1BsYWNlaG9sZGVyKGEpID8gZjIgOiBfY3VycnkxKGZ1bmN0aW9uIChfYikge1xuICAgICAgICAgIHJldHVybiBmbihhLCBfYik7XG4gICAgICAgIH0pO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gX2lzUGxhY2Vob2xkZXIoYSkgJiYgX2lzUGxhY2Vob2xkZXIoYikgPyBmMiA6IF9pc1BsYWNlaG9sZGVyKGEpID8gX2N1cnJ5MShmdW5jdGlvbiAoX2EpIHtcbiAgICAgICAgICByZXR1cm4gZm4oX2EsIGIpO1xuICAgICAgICB9KSA6IF9pc1BsYWNlaG9sZGVyKGIpID8gX2N1cnJ5MShmdW5jdGlvbiAoX2IpIHtcbiAgICAgICAgICByZXR1cm4gZm4oYSwgX2IpO1xuICAgICAgICB9KSA6IGZuKGEsIGIpO1xuICAgIH1cbiAgfTtcbn0iLCJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKVtcImRlZmF1bHRcIl07XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gIH0pKG5vZGVJbnRlcm9wKTtcbn1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgXCJkZWZhdWx0XCI6IG9ialxuICAgIH07XG4gIH1cblxuICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgfVxuXG4gIHZhciBuZXdPYmogPSB7fTtcbiAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcblxuICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqO1xuXG4gIGlmIChjYWNoZSkge1xuICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gIH1cblxuICByZXR1cm4gbmV3T2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2Fzc2lnbiA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9hc3NpZ25cIik7XG5cbnZhciBfYXNzaWduMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Fzc2lnbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9hc3NpZ24yLmRlZmF1bHQgfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59OyIsImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBtb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcblxuICBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImltcG9ydCBfaXNQbGFjZWhvbGRlciBmcm9tIFwiLi9faXNQbGFjZWhvbGRlci5qc1wiO1xuLyoqXG4gKiBPcHRpbWl6ZWQgaW50ZXJuYWwgb25lLWFyaXR5IGN1cnJ5IGZ1bmN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgY3VycmllZCBmdW5jdGlvbi5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3VycnkxKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmMShhKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDAgfHwgX2lzUGxhY2Vob2xkZXIoYSkpIHtcbiAgICAgIHJldHVybiBmMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9O1xufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9kZWZpbmVQcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn07IiwiaW1wb3J0IGFycmF5V2l0aG91dEhvbGVzIGZyb20gXCIuL2FycmF5V2l0aG91dEhvbGVzLmpzXCI7XG5pbXBvcnQgaXRlcmFibGVUb0FycmF5IGZyb20gXCIuL2l0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVTcHJlYWQgZnJvbSBcIi4vbm9uSXRlcmFibGVTcHJlYWQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aG91dEhvbGVzKGFycikgfHwgaXRlcmFibGVUb0FycmF5KGFycikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBub25JdGVyYWJsZVNwcmVhZCgpO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkoYXJyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX3R5cGVvZjIgPSByZXF1aXJlKFwiLi4vaGVscGVycy90eXBlb2ZcIik7XG5cbnZhciBfdHlwZW9mMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3R5cGVvZjIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoc2VsZiwgY2FsbCkge1xuICBpZiAoIXNlbGYpIHtcbiAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7XG4gIH1cblxuICByZXR1cm4gY2FsbCAmJiAoKHR5cGVvZiBjYWxsID09PSBcInVuZGVmaW5lZFwiID8gXCJ1bmRlZmluZWRcIiA6ICgwLCBfdHlwZW9mMy5kZWZhdWx0KShjYWxsKSkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vQWJvcnRBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vQXR0ckFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9Cb3VuZGFyeVBvaW50QWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0NoYXJhY3RlckRhdGFBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vQ3JlYXRlQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0N1c3RvbUVsZW1lbnRBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRG9jdW1lbnRBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRE9NQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0RPTVRva2VuTGlzdEFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FbGVtZW50QWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50QWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50VGFyZ2V0QWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL011dGF0aW9uQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL011dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vTmFtZXNwYWNlQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL05vZGVBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vTm9kZUl0ZXJhdG9yQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL09yZGVyZWRTZXRBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vUGFyZW50Tm9kZUFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9SYW5nZUFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9TZWxlY3RvcnNBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vU2hhZG93VHJlZUFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9UZXh0QWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL1RyYXZlcnNhbEFsZ29yaXRobVwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9UcmVlQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL1RyZWVXYWxrZXJBbGdvcml0aG1cIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vV2ViSURMQWxnb3JpdGhtXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL1hNTEFsZ29yaXRobVwiKSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJpbXBvcnQgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSBmcm9tIFwiLi9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCk7XG4gIHZhciBrZXksIGk7XG5cbiAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICB2YXIgc291cmNlU3ltYm9sS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBrZXkgPSBzb3VyY2VTeW1ib2xLZXlzW2ldO1xuICAgICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7XG4gICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZlwiKTtcblxudmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7XG5cbnZhciBfY3JlYXRlID0gcmVxdWlyZShcIi4uL2NvcmUtanMvb2JqZWN0L2NyZWF0ZVwiKTtcblxudmFyIF9jcmVhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlKTtcblxudmFyIF90eXBlb2YyID0gcmVxdWlyZShcIi4uL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG52YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArICh0eXBlb2Ygc3VwZXJDbGFzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTtcbiAgfVxuXG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mMi5kZWZhdWx0ID8gKDAsIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCkoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzcztcbn07IiwiLyoqXG4gKiBAaWdub3JlXG4gKiBzb21lIGtleS1jb2RlcyBkZWZpbml0aW9uIGFuZCB1dGlscyBmcm9tIGNsb3N1cmUtbGlicmFyeVxuICogQGF1dGhvciB5aW1pbmdoZUBnbWFpbC5jb21cbiAqL1xudmFyIEtleUNvZGUgPSB7XG4gIC8qKlxuICAgKiBNQUNfRU5URVJcbiAgICovXG4gIE1BQ19FTlRFUjogMyxcblxuICAvKipcbiAgICogQkFDS1NQQUNFXG4gICAqL1xuICBCQUNLU1BBQ0U6IDgsXG5cbiAgLyoqXG4gICAqIFRBQlxuICAgKi9cbiAgVEFCOiA5LFxuXG4gIC8qKlxuICAgKiBOVU1MT0NLIG9uIEZGL1NhZmFyaSBNYWNcbiAgICovXG4gIE5VTV9DRU5URVI6IDEyLFxuXG4gIC8qKlxuICAgKiBFTlRFUlxuICAgKi9cbiAgRU5URVI6IDEzLFxuXG4gIC8qKlxuICAgKiBTSElGVFxuICAgKi9cbiAgU0hJRlQ6IDE2LFxuXG4gIC8qKlxuICAgKiBDVFJMXG4gICAqL1xuICBDVFJMOiAxNyxcblxuICAvKipcbiAgICogQUxUXG4gICAqL1xuICBBTFQ6IDE4LFxuXG4gIC8qKlxuICAgKiBQQVVTRVxuICAgKi9cbiAgUEFVU0U6IDE5LFxuXG4gIC8qKlxuICAgKiBDQVBTX0xPQ0tcbiAgICovXG4gIENBUFNfTE9DSzogMjAsXG5cbiAgLyoqXG4gICAqIEVTQ1xuICAgKi9cbiAgRVNDOiAyNyxcblxuICAvKipcbiAgICogU1BBQ0VcbiAgICovXG4gIFNQQUNFOiAzMixcblxuICAvKipcbiAgICogUEFHRV9VUFxuICAgKi9cbiAgUEFHRV9VUDogMzMsXG5cbiAgLyoqXG4gICAqIFBBR0VfRE9XTlxuICAgKi9cbiAgUEFHRV9ET1dOOiAzNCxcblxuICAvKipcbiAgICogRU5EXG4gICAqL1xuICBFTkQ6IDM1LFxuXG4gIC8qKlxuICAgKiBIT01FXG4gICAqL1xuICBIT01FOiAzNixcblxuICAvKipcbiAgICogTEVGVFxuICAgKi9cbiAgTEVGVDogMzcsXG5cbiAgLyoqXG4gICAqIFVQXG4gICAqL1xuICBVUDogMzgsXG5cbiAgLyoqXG4gICAqIFJJR0hUXG4gICAqL1xuICBSSUdIVDogMzksXG5cbiAgLyoqXG4gICAqIERPV05cbiAgICovXG4gIERPV046IDQwLFxuXG4gIC8qKlxuICAgKiBQUklOVF9TQ1JFRU5cbiAgICovXG4gIFBSSU5UX1NDUkVFTjogNDQsXG5cbiAgLyoqXG4gICAqIElOU0VSVFxuICAgKi9cbiAgSU5TRVJUOiA0NSxcblxuICAvKipcbiAgICogREVMRVRFXG4gICAqL1xuICBERUxFVEU6IDQ2LFxuXG4gIC8qKlxuICAgKiBaRVJPXG4gICAqL1xuICBaRVJPOiA0OCxcblxuICAvKipcbiAgICogT05FXG4gICAqL1xuICBPTkU6IDQ5LFxuXG4gIC8qKlxuICAgKiBUV09cbiAgICovXG4gIFRXTzogNTAsXG5cbiAgLyoqXG4gICAqIFRIUkVFXG4gICAqL1xuICBUSFJFRTogNTEsXG5cbiAgLyoqXG4gICAqIEZPVVJcbiAgICovXG4gIEZPVVI6IDUyLFxuXG4gIC8qKlxuICAgKiBGSVZFXG4gICAqL1xuICBGSVZFOiA1MyxcblxuICAvKipcbiAgICogU0lYXG4gICAqL1xuICBTSVg6IDU0LFxuXG4gIC8qKlxuICAgKiBTRVZFTlxuICAgKi9cbiAgU0VWRU46IDU1LFxuXG4gIC8qKlxuICAgKiBFSUdIVFxuICAgKi9cbiAgRUlHSFQ6IDU2LFxuXG4gIC8qKlxuICAgKiBOSU5FXG4gICAqL1xuICBOSU5FOiA1NyxcblxuICAvKipcbiAgICogUVVFU1RJT05fTUFSS1xuICAgKi9cbiAgUVVFU1RJT05fTUFSSzogNjMsXG5cbiAgLyoqXG4gICAqIEFcbiAgICovXG4gIEE6IDY1LFxuXG4gIC8qKlxuICAgKiBCXG4gICAqL1xuICBCOiA2NixcblxuICAvKipcbiAgICogQ1xuICAgKi9cbiAgQzogNjcsXG5cbiAgLyoqXG4gICAqIERcbiAgICovXG4gIEQ6IDY4LFxuXG4gIC8qKlxuICAgKiBFXG4gICAqL1xuICBFOiA2OSxcblxuICAvKipcbiAgICogRlxuICAgKi9cbiAgRjogNzAsXG5cbiAgLyoqXG4gICAqIEdcbiAgICovXG4gIEc6IDcxLFxuXG4gIC8qKlxuICAgKiBIXG4gICAqL1xuICBIOiA3MixcblxuICAvKipcbiAgICogSVxuICAgKi9cbiAgSTogNzMsXG5cbiAgLyoqXG4gICAqIEpcbiAgICovXG4gIEo6IDc0LFxuXG4gIC8qKlxuICAgKiBLXG4gICAqL1xuICBLOiA3NSxcblxuICAvKipcbiAgICogTFxuICAgKi9cbiAgTDogNzYsXG5cbiAgLyoqXG4gICAqIE1cbiAgICovXG4gIE06IDc3LFxuXG4gIC8qKlxuICAgKiBOXG4gICAqL1xuICBOOiA3OCxcblxuICAvKipcbiAgICogT1xuICAgKi9cbiAgTzogNzksXG5cbiAgLyoqXG4gICAqIFBcbiAgICovXG4gIFA6IDgwLFxuXG4gIC8qKlxuICAgKiBRXG4gICAqL1xuICBROiA4MSxcblxuICAvKipcbiAgICogUlxuICAgKi9cbiAgUjogODIsXG5cbiAgLyoqXG4gICAqIFNcbiAgICovXG4gIFM6IDgzLFxuXG4gIC8qKlxuICAgKiBUXG4gICAqL1xuICBUOiA4NCxcblxuICAvKipcbiAgICogVVxuICAgKi9cbiAgVTogODUsXG5cbiAgLyoqXG4gICAqIFZcbiAgICovXG4gIFY6IDg2LFxuXG4gIC8qKlxuICAgKiBXXG4gICAqL1xuICBXOiA4NyxcblxuICAvKipcbiAgICogWFxuICAgKi9cbiAgWDogODgsXG5cbiAgLyoqXG4gICAqIFlcbiAgICovXG4gIFk6IDg5LFxuXG4gIC8qKlxuICAgKiBaXG4gICAqL1xuICBaOiA5MCxcblxuICAvKipcbiAgICogTUVUQVxuICAgKi9cbiAgTUVUQTogOTEsXG5cbiAgLyoqXG4gICAqIFdJTl9LRVlfUklHSFRcbiAgICovXG4gIFdJTl9LRVlfUklHSFQ6IDkyLFxuXG4gIC8qKlxuICAgKiBDT05URVhUX01FTlVcbiAgICovXG4gIENPTlRFWFRfTUVOVTogOTMsXG5cbiAgLyoqXG4gICAqIE5VTV9aRVJPXG4gICAqL1xuICBOVU1fWkVSTzogOTYsXG5cbiAgLyoqXG4gICAqIE5VTV9PTkVcbiAgICovXG4gIE5VTV9PTkU6IDk3LFxuXG4gIC8qKlxuICAgKiBOVU1fVFdPXG4gICAqL1xuICBOVU1fVFdPOiA5OCxcblxuICAvKipcbiAgICogTlVNX1RIUkVFXG4gICAqL1xuICBOVU1fVEhSRUU6IDk5LFxuXG4gIC8qKlxuICAgKiBOVU1fRk9VUlxuICAgKi9cbiAgTlVNX0ZPVVI6IDEwMCxcblxuICAvKipcbiAgICogTlVNX0ZJVkVcbiAgICovXG4gIE5VTV9GSVZFOiAxMDEsXG5cbiAgLyoqXG4gICAqIE5VTV9TSVhcbiAgICovXG4gIE5VTV9TSVg6IDEwMixcblxuICAvKipcbiAgICogTlVNX1NFVkVOXG4gICAqL1xuICBOVU1fU0VWRU46IDEwMyxcblxuICAvKipcbiAgICogTlVNX0VJR0hUXG4gICAqL1xuICBOVU1fRUlHSFQ6IDEwNCxcblxuICAvKipcbiAgICogTlVNX05JTkVcbiAgICovXG4gIE5VTV9OSU5FOiAxMDUsXG5cbiAgLyoqXG4gICAqIE5VTV9NVUxUSVBMWVxuICAgKi9cbiAgTlVNX01VTFRJUExZOiAxMDYsXG5cbiAgLyoqXG4gICAqIE5VTV9QTFVTXG4gICAqL1xuICBOVU1fUExVUzogMTA3LFxuXG4gIC8qKlxuICAgKiBOVU1fTUlOVVNcbiAgICovXG4gIE5VTV9NSU5VUzogMTA5LFxuXG4gIC8qKlxuICAgKiBOVU1fUEVSSU9EXG4gICAqL1xuICBOVU1fUEVSSU9EOiAxMTAsXG5cbiAgLyoqXG4gICAqIE5VTV9ESVZJU0lPTlxuICAgKi9cbiAgTlVNX0RJVklTSU9OOiAxMTEsXG5cbiAgLyoqXG4gICAqIEYxXG4gICAqL1xuICBGMTogMTEyLFxuXG4gIC8qKlxuICAgKiBGMlxuICAgKi9cbiAgRjI6IDExMyxcblxuICAvKipcbiAgICogRjNcbiAgICovXG4gIEYzOiAxMTQsXG5cbiAgLyoqXG4gICAqIEY0XG4gICAqL1xuICBGNDogMTE1LFxuXG4gIC8qKlxuICAgKiBGNVxuICAgKi9cbiAgRjU6IDExNixcblxuICAvKipcbiAgICogRjZcbiAgICovXG4gIEY2OiAxMTcsXG5cbiAgLyoqXG4gICAqIEY3XG4gICAqL1xuICBGNzogMTE4LFxuXG4gIC8qKlxuICAgKiBGOFxuICAgKi9cbiAgRjg6IDExOSxcblxuICAvKipcbiAgICogRjlcbiAgICovXG4gIEY5OiAxMjAsXG5cbiAgLyoqXG4gICAqIEYxMFxuICAgKi9cbiAgRjEwOiAxMjEsXG5cbiAgLyoqXG4gICAqIEYxMVxuICAgKi9cbiAgRjExOiAxMjIsXG5cbiAgLyoqXG4gICAqIEYxMlxuICAgKi9cbiAgRjEyOiAxMjMsXG5cbiAgLyoqXG4gICAqIE5VTUxPQ0tcbiAgICovXG4gIE5VTUxPQ0s6IDE0NCxcblxuICAvKipcbiAgICogU0VNSUNPTE9OXG4gICAqL1xuICBTRU1JQ09MT046IDE4NixcblxuICAvKipcbiAgICogREFTSFxuICAgKi9cbiAgREFTSDogMTg5LFxuXG4gIC8qKlxuICAgKiBFUVVBTFNcbiAgICovXG4gIEVRVUFMUzogMTg3LFxuXG4gIC8qKlxuICAgKiBDT01NQVxuICAgKi9cbiAgQ09NTUE6IDE4OCxcblxuICAvKipcbiAgICogUEVSSU9EXG4gICAqL1xuICBQRVJJT0Q6IDE5MCxcblxuICAvKipcbiAgICogU0xBU0hcbiAgICovXG4gIFNMQVNIOiAxOTEsXG5cbiAgLyoqXG4gICAqIEFQT1NUUk9QSEVcbiAgICovXG4gIEFQT1NUUk9QSEU6IDE5MixcblxuICAvKipcbiAgICogU0lOR0xFX1FVT1RFXG4gICAqL1xuICBTSU5HTEVfUVVPVEU6IDIyMixcblxuICAvKipcbiAgICogT1BFTl9TUVVBUkVfQlJBQ0tFVFxuICAgKi9cbiAgT1BFTl9TUVVBUkVfQlJBQ0tFVDogMjE5LFxuXG4gIC8qKlxuICAgKiBCQUNLU0xBU0hcbiAgICovXG4gIEJBQ0tTTEFTSDogMjIwLFxuXG4gIC8qKlxuICAgKiBDTE9TRV9TUVVBUkVfQlJBQ0tFVFxuICAgKi9cbiAgQ0xPU0VfU1FVQVJFX0JSQUNLRVQ6IDIyMSxcblxuICAvKipcbiAgICogV0lOX0tFWVxuICAgKi9cbiAgV0lOX0tFWTogMjI0LFxuXG4gIC8qKlxuICAgKiBNQUNfRkZfTUVUQVxuICAgKi9cbiAgTUFDX0ZGX01FVEE6IDIyNCxcblxuICAvKipcbiAgICogV0lOX0lNRVxuICAgKi9cbiAgV0lOX0lNRTogMjI5LFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0gRnVuY3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIHdoZXRoZXIgdGV4dCBhbmQgbW9kaWZpZWQga2V5IGlzIGVudGVyZWQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICovXG4gIGlzVGV4dE1vZGlmeWluZ0tleUV2ZW50OiBmdW5jdGlvbiBpc1RleHRNb2RpZnlpbmdLZXlFdmVudChlKSB7XG4gICAgdmFyIGtleUNvZGUgPSBlLmtleUNvZGU7XG5cbiAgICBpZiAoZS5hbHRLZXkgJiYgIWUuY3RybEtleSB8fCBlLm1ldGFLZXkgfHwgLy8gRnVuY3Rpb24ga2V5cyBkb24ndCBnZW5lcmF0ZSB0ZXh0XG4gICAga2V5Q29kZSA+PSBLZXlDb2RlLkYxICYmIGtleUNvZGUgPD0gS2V5Q29kZS5GMTIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIFRoZSBmb2xsb3dpbmcga2V5cyBhcmUgcXVpdGUgaGFybWxlc3MsIGV2ZW4gaW4gY29tYmluYXRpb24gd2l0aFxuICAgIC8vIENUUkwsIEFMVCBvciBTSElGVC5cblxuXG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEtleUNvZGUuQUxUOlxuICAgICAgY2FzZSBLZXlDb2RlLkNBUFNfTE9DSzpcbiAgICAgIGNhc2UgS2V5Q29kZS5DT05URVhUX01FTlU6XG4gICAgICBjYXNlIEtleUNvZGUuQ1RSTDpcbiAgICAgIGNhc2UgS2V5Q29kZS5ET1dOOlxuICAgICAgY2FzZSBLZXlDb2RlLkVORDpcbiAgICAgIGNhc2UgS2V5Q29kZS5FU0M6XG4gICAgICBjYXNlIEtleUNvZGUuSE9NRTpcbiAgICAgIGNhc2UgS2V5Q29kZS5JTlNFUlQ6XG4gICAgICBjYXNlIEtleUNvZGUuTEVGVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5NQUNfRkZfTUVUQTpcbiAgICAgIGNhc2UgS2V5Q29kZS5NRVRBOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTUxPQ0s6XG4gICAgICBjYXNlIEtleUNvZGUuTlVNX0NFTlRFUjpcbiAgICAgIGNhc2UgS2V5Q29kZS5QQUdFX0RPV046XG4gICAgICBjYXNlIEtleUNvZGUuUEFHRV9VUDpcbiAgICAgIGNhc2UgS2V5Q29kZS5QQVVTRTpcbiAgICAgIGNhc2UgS2V5Q29kZS5QUklOVF9TQ1JFRU46XG4gICAgICBjYXNlIEtleUNvZGUuUklHSFQ6XG4gICAgICBjYXNlIEtleUNvZGUuU0hJRlQ6XG4gICAgICBjYXNlIEtleUNvZGUuVVA6XG4gICAgICBjYXNlIEtleUNvZGUuV0lOX0tFWTpcbiAgICAgIGNhc2UgS2V5Q29kZS5XSU5fS0VZX1JJR0hUOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogd2hldGhlciBjaGFyYWN0ZXIgaXMgZW50ZXJlZC5cbiAgICovXG4gIGlzQ2hhcmFjdGVyS2V5OiBmdW5jdGlvbiBpc0NoYXJhY3RlcktleShrZXlDb2RlKSB7XG4gICAgaWYgKGtleUNvZGUgPj0gS2V5Q29kZS5aRVJPICYmIGtleUNvZGUgPD0gS2V5Q29kZS5OSU5FKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoa2V5Q29kZSA+PSBLZXlDb2RlLk5VTV9aRVJPICYmIGtleUNvZGUgPD0gS2V5Q29kZS5OVU1fTVVMVElQTFkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID49IEtleUNvZGUuQSAmJiBrZXlDb2RlIDw9IEtleUNvZGUuWikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBTYWZhcmkgc2VuZHMgemVybyBrZXkgY29kZSBmb3Igbm9uLWxhdGluIGNoYXJhY3RlcnMuXG5cblxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdXZWJLaXQnKSAhPT0gLTEgJiYga2V5Q29kZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEtleUNvZGUuU1BBQ0U6XG4gICAgICBjYXNlIEtleUNvZGUuUVVFU1RJT05fTUFSSzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fUExVUzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fTUlOVVM6XG4gICAgICBjYXNlIEtleUNvZGUuTlVNX1BFUklPRDpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fRElWSVNJT046XG4gICAgICBjYXNlIEtleUNvZGUuU0VNSUNPTE9OOlxuICAgICAgY2FzZSBLZXlDb2RlLkRBU0g6XG4gICAgICBjYXNlIEtleUNvZGUuRVFVQUxTOlxuICAgICAgY2FzZSBLZXlDb2RlLkNPTU1BOlxuICAgICAgY2FzZSBLZXlDb2RlLlBFUklPRDpcbiAgICAgIGNhc2UgS2V5Q29kZS5TTEFTSDpcbiAgICAgIGNhc2UgS2V5Q29kZS5BUE9TVFJPUEhFOlxuICAgICAgY2FzZSBLZXlDb2RlLlNJTkdMRV9RVU9URTpcbiAgICAgIGNhc2UgS2V5Q29kZS5PUEVOX1NRVUFSRV9CUkFDS0VUOlxuICAgICAgY2FzZSBLZXlDb2RlLkJBQ0tTTEFTSDpcbiAgICAgIGNhc2UgS2V5Q29kZS5DTE9TRV9TUVVBUkVfQlJBQ0tFVDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCBLZXlDb2RlOyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiBhIGJvdW5kYXJ5IHBvaW50IHJlbGF0aXZlIHRvIGFub3RoZXIuXG4gKi9cbnZhciBCb3VuZGFyeVBvc2l0aW9uO1xuKGZ1bmN0aW9uIChCb3VuZGFyeVBvc2l0aW9uKSB7XG4gICAgQm91bmRhcnlQb3NpdGlvbltCb3VuZGFyeVBvc2l0aW9uW1wiQmVmb3JlXCJdID0gMF0gPSBcIkJlZm9yZVwiO1xuICAgIEJvdW5kYXJ5UG9zaXRpb25bQm91bmRhcnlQb3NpdGlvbltcIkVxdWFsXCJdID0gMV0gPSBcIkVxdWFsXCI7XG4gICAgQm91bmRhcnlQb3NpdGlvbltCb3VuZGFyeVBvc2l0aW9uW1wiQWZ0ZXJcIl0gPSAyXSA9IFwiQWZ0ZXJcIjtcbn0pKEJvdW5kYXJ5UG9zaXRpb24gPSBleHBvcnRzLkJvdW5kYXJ5UG9zaXRpb24gfHwgKGV4cG9ydHMuQm91bmRhcnlQb3NpdGlvbiA9IHt9KSk7XG4vKipcbiAqIERlZmluZXMgdGhlIGV2ZW50IHBoYXNlLlxuICovXG52YXIgRXZlbnRQaGFzZTtcbihmdW5jdGlvbiAoRXZlbnRQaGFzZSkge1xuICAgIEV2ZW50UGhhc2VbRXZlbnRQaGFzZVtcIk5vbmVcIl0gPSAwXSA9IFwiTm9uZVwiO1xuICAgIEV2ZW50UGhhc2VbRXZlbnRQaGFzZVtcIkNhcHR1cmluZ1wiXSA9IDFdID0gXCJDYXB0dXJpbmdcIjtcbiAgICBFdmVudFBoYXNlW0V2ZW50UGhhc2VbXCJBdFRhcmdldFwiXSA9IDJdID0gXCJBdFRhcmdldFwiO1xuICAgIEV2ZW50UGhhc2VbRXZlbnRQaGFzZVtcIkJ1YmJsaW5nXCJdID0gM10gPSBcIkJ1YmJsaW5nXCI7XG59KShFdmVudFBoYXNlID0gZXhwb3J0cy5FdmVudFBoYXNlIHx8IChleHBvcnRzLkV2ZW50UGhhc2UgPSB7fSkpO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGEgbm9kZSBvYmplY3QuXG4gKi9cbnZhciBOb2RlVHlwZTtcbihmdW5jdGlvbiAoTm9kZVR5cGUpIHtcbiAgICBOb2RlVHlwZVtOb2RlVHlwZVtcIkVsZW1lbnRcIl0gPSAxXSA9IFwiRWxlbWVudFwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiQXR0cmlidXRlXCJdID0gMl0gPSBcIkF0dHJpYnV0ZVwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiVGV4dFwiXSA9IDNdID0gXCJUZXh0XCI7XG4gICAgTm9kZVR5cGVbTm9kZVR5cGVbXCJDRGF0YVwiXSA9IDRdID0gXCJDRGF0YVwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiRW50aXR5UmVmZXJlbmNlXCJdID0gNV0gPSBcIkVudGl0eVJlZmVyZW5jZVwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiRW50aXR5XCJdID0gNl0gPSBcIkVudGl0eVwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiUHJvY2Vzc2luZ0luc3RydWN0aW9uXCJdID0gN10gPSBcIlByb2Nlc3NpbmdJbnN0cnVjdGlvblwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiQ29tbWVudFwiXSA9IDhdID0gXCJDb21tZW50XCI7XG4gICAgTm9kZVR5cGVbTm9kZVR5cGVbXCJEb2N1bWVudFwiXSA9IDldID0gXCJEb2N1bWVudFwiO1xuICAgIE5vZGVUeXBlW05vZGVUeXBlW1wiRG9jdW1lbnRUeXBlXCJdID0gMTBdID0gXCJEb2N1bWVudFR5cGVcIjtcbiAgICBOb2RlVHlwZVtOb2RlVHlwZVtcIkRvY3VtZW50RnJhZ21lbnRcIl0gPSAxMV0gPSBcIkRvY3VtZW50RnJhZ21lbnRcIjtcbiAgICBOb2RlVHlwZVtOb2RlVHlwZVtcIk5vdGF0aW9uXCJdID0gMTJdID0gXCJOb3RhdGlvblwiOyAvLyBoaXN0b3JpY2FsXG59KShOb2RlVHlwZSA9IGV4cG9ydHMuTm9kZVR5cGUgfHwgKGV4cG9ydHMuTm9kZVR5cGUgPSB7fSkpO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiBhIG5vZGUgaW4gdGhlIGRvY3VtZW50IHJlbGF0aXZlIHRvIGFub3RoZXJcbiAqIG5vZGUuXG4gKi9cbnZhciBQb3NpdGlvbjtcbihmdW5jdGlvbiAoUG9zaXRpb24pIHtcbiAgICBQb3NpdGlvbltQb3NpdGlvbltcIkRpc2Nvbm5lY3RlZFwiXSA9IDFdID0gXCJEaXNjb25uZWN0ZWRcIjtcbiAgICBQb3NpdGlvbltQb3NpdGlvbltcIlByZWNlZGluZ1wiXSA9IDJdID0gXCJQcmVjZWRpbmdcIjtcbiAgICBQb3NpdGlvbltQb3NpdGlvbltcIkZvbGxvd2luZ1wiXSA9IDRdID0gXCJGb2xsb3dpbmdcIjtcbiAgICBQb3NpdGlvbltQb3NpdGlvbltcIkNvbnRhaW5zXCJdID0gOF0gPSBcIkNvbnRhaW5zXCI7XG4gICAgUG9zaXRpb25bUG9zaXRpb25bXCJDb250YWluZWRCeVwiXSA9IDE2XSA9IFwiQ29udGFpbmVkQnlcIjtcbiAgICBQb3NpdGlvbltQb3NpdGlvbltcIkltcGxlbWVudGF0aW9uU3BlY2lmaWNcIl0gPSAzMl0gPSBcIkltcGxlbWVudGF0aW9uU3BlY2lmaWNcIjtcbn0pKFBvc2l0aW9uID0gZXhwb3J0cy5Qb3NpdGlvbiB8fCAoZXhwb3J0cy5Qb3NpdGlvbiA9IHt9KSk7XG4vKipcbiAqIERlZmluZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBhIGZpbHRlciBjYWxsYmFjay5cbiAqL1xudmFyIEZpbHRlclJlc3VsdDtcbihmdW5jdGlvbiAoRmlsdGVyUmVzdWx0KSB7XG4gICAgRmlsdGVyUmVzdWx0W0ZpbHRlclJlc3VsdFtcIkFjY2VwdFwiXSA9IDFdID0gXCJBY2NlcHRcIjtcbiAgICBGaWx0ZXJSZXN1bHRbRmlsdGVyUmVzdWx0W1wiUmVqZWN0XCJdID0gMl0gPSBcIlJlamVjdFwiO1xuICAgIEZpbHRlclJlc3VsdFtGaWx0ZXJSZXN1bHRbXCJTa2lwXCJdID0gM10gPSBcIlNraXBcIjtcbn0pKEZpbHRlclJlc3VsdCA9IGV4cG9ydHMuRmlsdGVyUmVzdWx0IHx8IChleHBvcnRzLkZpbHRlclJlc3VsdCA9IHt9KSk7XG4vKipcbiAqIERlZmluZXMgd2hhdCB0byBzaG93IGluIG5vZGUgZmlsdGVyLlxuICovXG52YXIgV2hhdFRvU2hvdztcbihmdW5jdGlvbiAoV2hhdFRvU2hvdykge1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIkFsbFwiXSA9IDQyOTQ5NjcyOTVdID0gXCJBbGxcIjtcbiAgICBXaGF0VG9TaG93W1doYXRUb1Nob3dbXCJFbGVtZW50XCJdID0gMV0gPSBcIkVsZW1lbnRcIjtcbiAgICBXaGF0VG9TaG93W1doYXRUb1Nob3dbXCJBdHRyaWJ1dGVcIl0gPSAyXSA9IFwiQXR0cmlidXRlXCI7XG4gICAgV2hhdFRvU2hvd1tXaGF0VG9TaG93W1wiVGV4dFwiXSA9IDRdID0gXCJUZXh0XCI7XG4gICAgV2hhdFRvU2hvd1tXaGF0VG9TaG93W1wiQ0RhdGFTZWN0aW9uXCJdID0gOF0gPSBcIkNEYXRhU2VjdGlvblwiO1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIkVudGl0eVJlZmVyZW5jZVwiXSA9IDE2XSA9IFwiRW50aXR5UmVmZXJlbmNlXCI7XG4gICAgV2hhdFRvU2hvd1tXaGF0VG9TaG93W1wiRW50aXR5XCJdID0gMzJdID0gXCJFbnRpdHlcIjtcbiAgICBXaGF0VG9TaG93W1doYXRUb1Nob3dbXCJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25cIl0gPSA2NF0gPSBcIlByb2Nlc3NpbmdJbnN0cnVjdGlvblwiO1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIkNvbW1lbnRcIl0gPSAxMjhdID0gXCJDb21tZW50XCI7XG4gICAgV2hhdFRvU2hvd1tXaGF0VG9TaG93W1wiRG9jdW1lbnRcIl0gPSAyNTZdID0gXCJEb2N1bWVudFwiO1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIkRvY3VtZW50VHlwZVwiXSA9IDUxMl0gPSBcIkRvY3VtZW50VHlwZVwiO1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIkRvY3VtZW50RnJhZ21lbnRcIl0gPSAxMDI0XSA9IFwiRG9jdW1lbnRGcmFnbWVudFwiO1xuICAgIFdoYXRUb1Nob3dbV2hhdFRvU2hvd1tcIk5vdGF0aW9uXCJdID0gMjA0OF0gPSBcIk5vdGF0aW9uXCI7XG59KShXaGF0VG9TaG93ID0gZXhwb3J0cy5XaGF0VG9TaG93IHx8IChleHBvcnRzLldoYXRUb1Nob3cgPSB7fSkpO1xuLyoqXG4gKiBEZWZpbmVzIGhvdyBib3VuZGFyeSBwb2ludHMgYXJlIGNvbXBhcmVkLlxuICovXG52YXIgSG93VG9Db21wYXJlO1xuKGZ1bmN0aW9uIChIb3dUb0NvbXBhcmUpIHtcbiAgICBIb3dUb0NvbXBhcmVbSG93VG9Db21wYXJlW1wiU3RhcnRUb1N0YXJ0XCJdID0gMF0gPSBcIlN0YXJ0VG9TdGFydFwiO1xuICAgIEhvd1RvQ29tcGFyZVtIb3dUb0NvbXBhcmVbXCJTdGFydFRvRW5kXCJdID0gMV0gPSBcIlN0YXJ0VG9FbmRcIjtcbiAgICBIb3dUb0NvbXBhcmVbSG93VG9Db21wYXJlW1wiRW5kVG9FbmRcIl0gPSAyXSA9IFwiRW5kVG9FbmRcIjtcbiAgICBIb3dUb0NvbXBhcmVbSG93VG9Db21wYXJlW1wiRW5kVG9TdGFydFwiXSA9IDNdID0gXCJFbmRUb1N0YXJ0XCI7XG59KShIb3dUb0NvbXBhcmUgPSBleHBvcnRzLkhvd1RvQ29tcGFyZSB8fCAoZXhwb3J0cy5Ib3dUb0NvbXBhcmUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJmYWNlcy5qcy5tYXAiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNQbGFjZWhvbGRlcihhKSB7XG4gIHJldHVybiBhICE9IG51bGwgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnICYmIGFbJ0BAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciddID09PSB0cnVlO1xufSIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIENhc3RfMSA9IHJlcXVpcmUoXCIuL0Nhc3RcIik7XG5leHBvcnRzLkNhc3QgPSBDYXN0XzEuQ2FzdDtcbnZhciBHdWFyZF8xID0gcmVxdWlyZShcIi4vR3VhcmRcIik7XG5leHBvcnRzLkd1YXJkID0gR3VhcmRfMS5HdWFyZDtcbnZhciBFbXB0eVNldF8xID0gcmVxdWlyZShcIi4vRW1wdHlTZXRcIik7XG5leHBvcnRzLkVtcHR5U2V0ID0gRW1wdHlTZXRfMS5FbXB0eVNldDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gICAgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTtcbiAgfTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIjtcbmltcG9ydCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSBcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSIsImltcG9ydCBnZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiO1xuaW1wb3J0IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCBmcm9tIFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIjtcbmltcG9ydCBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCIuL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7XG4gIHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7XG4gIHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHtcbiAgICB2YXIgU3VwZXIgPSBnZXRQcm90b3R5cGVPZihEZXJpdmVkKSxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHtcbiAgICAgIHZhciBOZXdUYXJnZXQgPSBnZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtcbiAgICAgIHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTtcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7XG4gIGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7XG5cbiAgdHJ5IHtcbiAgICBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iLCJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iLCJ2YXIgYXJyYXlXaXRoSG9sZXMgPSByZXF1aXJlKFwiLi9hcnJheVdpdGhIb2xlcy5qc1wiKTtcblxudmFyIGl0ZXJhYmxlVG9BcnJheUxpbWl0ID0gcmVxdWlyZShcIi4vaXRlcmFibGVUb0FycmF5TGltaXQuanNcIik7XG5cbnZhciB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgbm9uSXRlcmFibGVSZXN0ID0gcmVxdWlyZShcIi4vbm9uSXRlcmFibGVSZXN0LmpzXCIpO1xuXG5mdW5jdGlvbiBfc2xpY2VkVG9BcnJheShhcnIsIGkpIHtcbiAgcmV0dXJuIGFycmF5V2l0aEhvbGVzKGFycikgfHwgaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIsIGkpIHx8IG5vbkl0ZXJhYmxlUmVzdCgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9zbGljZWRUb0FycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsInZhciBhcnJheVdpdGhIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5TGltaXQgPSByZXF1aXJlKFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVJlc3QgPSByZXF1aXJlKFwiLi9ub25JdGVyYWJsZVJlc3QuanNcIik7XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgbm9uSXRlcmFibGVSZXN0KCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3NsaWNlZFRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvbmZpZ0NvbnN1bWVyXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIF9jb250ZXh0LkNvbmZpZ0NvbnN1bWVyO1xuICB9XG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkNvbmZpZ0NvbnRleHRcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2NvbnRleHQuQ29uZmlnQ29udGV4dDtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuZ2xvYmFsQ29uZmlnID0gZXhwb3J0cy5kZWZhdWx0UHJlZml4Q2xzID0gZXhwb3J0cy5jb25maWdDb25zdW1lclByb3BzID0gdm9pZCAwO1xuXG52YXIgX2V4dGVuZHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzXCIpKTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9Db250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vaWNvbnMvbGliL2NvbXBvbmVudHMvQ29udGV4dFwiKSk7XG5cbnZhciBfcmNGaWVsZEZvcm0gPSByZXF1aXJlKFwicmMtZmllbGQtZm9ybVwiKTtcblxudmFyIF91c2VNZW1vID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvaG9va3MvdXNlTWVtb1wiKSk7XG5cbnZhciBfbG9jYWxlUHJvdmlkZXIgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyXCIpKTtcblxudmFyIF9Mb2NhbGVSZWNlaXZlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS1wcm92aWRlci9Mb2NhbGVSZWNlaXZlclwiKSk7XG5cbnZhciBfY29udGV4dCA9IHJlcXVpcmUoXCIuL2NvbnRleHRcIik7XG5cbnZhciBfU2l6ZUNvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9TaXplQ29udGV4dFwiKSk7XG5cbnZhciBfbWVzc2FnZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL21lc3NhZ2VcIikpO1xuXG52YXIgX25vdGlmaWNhdGlvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL25vdGlmaWNhdGlvblwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIGNvbmZpZ0NvbnN1bWVyUHJvcHMgPSBbJ2dldFRhcmdldENvbnRhaW5lcicsICdnZXRQb3B1cENvbnRhaW5lcicsICdyb290UHJlZml4Q2xzJywgJ2dldFByZWZpeENscycsICdyZW5kZXJFbXB0eScsICdjc3AnLCAnYXV0b0luc2VydFNwYWNlSW5CdXR0b24nLCAnbG9jYWxlJywgJ3BhZ2VIZWFkZXInXTsgLy8gVGhlc2UgcHJvcHMgaXMgdXNlZCBieSBgdXNlQ29udGV4dGAgZGlyZWN0bHkgaW4gc3ViIGNvbXBvbmVudFxuXG5leHBvcnRzLmNvbmZpZ0NvbnN1bWVyUHJvcHMgPSBjb25maWdDb25zdW1lclByb3BzO1xudmFyIFBBU1NFRF9QUk9QUyA9IFsnZ2V0VGFyZ2V0Q29udGFpbmVyJywgJ2dldFBvcHVwQ29udGFpbmVyJywgJ3JlbmRlckVtcHR5JywgJ3BhZ2VIZWFkZXInLCAnaW5wdXQnLCAnZm9ybSddO1xudmFyIGRlZmF1bHRQcmVmaXhDbHMgPSAnYW50JztcbmV4cG9ydHMuZGVmYXVsdFByZWZpeENscyA9IGRlZmF1bHRQcmVmaXhDbHM7XG52YXIgZ2xvYmFsUHJlZml4Q2xzO1xuXG52YXIgc2V0R2xvYmFsQ29uZmlnID0gZnVuY3Rpb24gc2V0R2xvYmFsQ29uZmlnKHBhcmFtcykge1xuICBpZiAocGFyYW1zLnByZWZpeENscyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZ2xvYmFsUHJlZml4Q2xzID0gcGFyYW1zLnByZWZpeENscztcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2V0R2xvYmFsUHJlZml4Q2xzKCkge1xuICByZXR1cm4gZ2xvYmFsUHJlZml4Q2xzIHx8IGRlZmF1bHRQcmVmaXhDbHM7XG59XG5cbnZhciBnbG9iYWxDb25maWcgPSBmdW5jdGlvbiBnbG9iYWxDb25maWcoKSB7XG4gIHJldHVybiB7XG4gICAgZ2V0UHJlZml4Q2xzOiBmdW5jdGlvbiBnZXRQcmVmaXhDbHMoc3VmZml4Q2xzLCBjdXN0b21pemVQcmVmaXhDbHMpIHtcbiAgICAgIGlmIChjdXN0b21pemVQcmVmaXhDbHMpIHJldHVybiBjdXN0b21pemVQcmVmaXhDbHM7XG4gICAgICByZXR1cm4gc3VmZml4Q2xzID8gXCJcIi5jb25jYXQoZ2V0R2xvYmFsUHJlZml4Q2xzKCksIFwiLVwiKS5jb25jYXQoc3VmZml4Q2xzKSA6IGdldEdsb2JhbFByZWZpeENscygpO1xuICAgIH0sXG4gICAgZ2V0Um9vdFByZWZpeENsczogZnVuY3Rpb24gZ2V0Um9vdFByZWZpeENscyhyb290UHJlZml4Q2xzLCBjdXN0b21pemVQcmVmaXhDbHMpIHtcbiAgICAgIC8vIEN1c3RvbWl6ZSByb290UHJlZml4Q2xzIGlzIGZpcnN0IHByaW9yaXR5XG4gICAgICBpZiAocm9vdFByZWZpeENscykge1xuICAgICAgICByZXR1cm4gcm9vdFByZWZpeENscztcbiAgICAgIH0gLy8gSWYgR2xvYmFsIHByZWZpeENscyBwcm92aWRlZCwgdXNlIHRoaXNcblxuXG4gICAgICBpZiAoZ2xvYmFsUHJlZml4Q2xzKSB7XG4gICAgICAgIHJldHVybiBnbG9iYWxQcmVmaXhDbHM7XG4gICAgICB9IC8vIFtMZWdhY3ldIElmIGN1c3RvbWl6ZSBwcmVmaXhDbHMgcHJvdmlkZWQsIHdlIGN1dCBpdCB0byBnZXQgdGhlIHByZWZpeENsc1xuXG5cbiAgICAgIGlmIChjdXN0b21pemVQcmVmaXhDbHMgJiYgY3VzdG9taXplUHJlZml4Q2xzLmluY2x1ZGVzKCctJykpIHtcbiAgICAgICAgcmV0dXJuIGN1c3RvbWl6ZVByZWZpeENscy5yZXBsYWNlKC9eKC4qKS1bXi1dKiQvLCAnJDEnKTtcbiAgICAgIH0gLy8gRmFsbGJhY2sgdG8gZGVmYXVsdCBwcmVmaXhDbHNcblxuXG4gICAgICByZXR1cm4gZ2V0R2xvYmFsUHJlZml4Q2xzKCk7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5nbG9iYWxDb25maWcgPSBnbG9iYWxDb25maWc7XG5cbnZhciBQcm92aWRlckNoaWxkcmVuID0gZnVuY3Rpb24gUHJvdmlkZXJDaGlsZHJlbihwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgIGNzcCA9IHByb3BzLmNzcCxcbiAgICAgIGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uID0gcHJvcHMuYXV0b0luc2VydFNwYWNlSW5CdXR0b24sXG4gICAgICBmb3JtID0gcHJvcHMuZm9ybSxcbiAgICAgIGxvY2FsZSA9IHByb3BzLmxvY2FsZSxcbiAgICAgIGNvbXBvbmVudFNpemUgPSBwcm9wcy5jb21wb25lbnRTaXplLFxuICAgICAgZGlyZWN0aW9uID0gcHJvcHMuZGlyZWN0aW9uLFxuICAgICAgc3BhY2UgPSBwcm9wcy5zcGFjZSxcbiAgICAgIHZpcnR1YWwgPSBwcm9wcy52aXJ0dWFsLFxuICAgICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoID0gcHJvcHMuZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLFxuICAgICAgbGVnYWN5TG9jYWxlID0gcHJvcHMubGVnYWN5TG9jYWxlLFxuICAgICAgcGFyZW50Q29udGV4dCA9IHByb3BzLnBhcmVudENvbnRleHQsXG4gICAgICBpY29uUHJlZml4Q2xzID0gcHJvcHMuaWNvblByZWZpeENscztcbiAgdmFyIGdldFByZWZpeENscyA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChzdWZmaXhDbHMsIGN1c3RvbWl6ZVByZWZpeENscykge1xuICAgIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHM7XG4gICAgaWYgKGN1c3RvbWl6ZVByZWZpeENscykgcmV0dXJuIGN1c3RvbWl6ZVByZWZpeENscztcbiAgICB2YXIgbWVyZ2VkUHJlZml4Q2xzID0gcHJlZml4Q2xzIHx8IHBhcmVudENvbnRleHQuZ2V0UHJlZml4Q2xzKCcnKTtcbiAgICByZXR1cm4gc3VmZml4Q2xzID8gXCJcIi5jb25jYXQobWVyZ2VkUHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHN1ZmZpeENscykgOiBtZXJnZWRQcmVmaXhDbHM7XG4gIH0sIFtwYXJlbnRDb250ZXh0LmdldFByZWZpeENsc10pO1xuICB2YXIgY29uZmlnID0gKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKCgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgcGFyZW50Q29udGV4dCksIHtcbiAgICBjc3A6IGNzcCxcbiAgICBhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbjogYXV0b0luc2VydFNwYWNlSW5CdXR0b24sXG4gICAgbG9jYWxlOiBsb2NhbGUgfHwgbGVnYWN5TG9jYWxlLFxuICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLFxuICAgIHNwYWNlOiBzcGFjZSxcbiAgICB2aXJ0dWFsOiB2aXJ0dWFsLFxuICAgIGRyb3Bkb3duTWF0Y2hTZWxlY3RXaWR0aDogZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoLFxuICAgIGdldFByZWZpeENsczogZ2V0UHJlZml4Q2xzXG4gIH0pOyAvLyBQYXNzIHRoZSBwcm9wcyB1c2VkIGJ5IGB1c2VDb250ZXh0YCBkaXJlY3RseSB3aXRoIGNoaWxkIGNvbXBvbmVudC5cbiAgLy8gVGhlc2UgcHJvcHMgc2hvdWxkIG1lcmdlZCBpbnRvIGBjb25maWdgLlxuXG4gIFBBU1NFRF9QUk9QUy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG5cbiAgICBpZiAocHJvcFZhbHVlKSB7XG4gICAgICBjb25maWdbcHJvcE5hbWVdID0gcHJvcFZhbHVlO1xuICAgIH1cbiAgfSk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzI3NjE3XG5cbiAgdmFyIG1lbW9lZENvbmZpZyA9ICgwLCBfdXNlTWVtb1tcImRlZmF1bHRcIl0pKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9LCBjb25maWcsIGZ1bmN0aW9uIChwcmV2Q29uZmlnLCBjdXJyZW50Q29uZmlnKSB7XG4gICAgdmFyIHByZXZLZXlzID0gT2JqZWN0LmtleXMocHJldkNvbmZpZyk7XG4gICAgdmFyIGN1cnJlbnRLZXlzID0gT2JqZWN0LmtleXMoY3VycmVudENvbmZpZyk7XG4gICAgcmV0dXJuIHByZXZLZXlzLmxlbmd0aCAhPT0gY3VycmVudEtleXMubGVuZ3RoIHx8IHByZXZLZXlzLnNvbWUoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIHByZXZDb25maWdba2V5XSAhPT0gY3VycmVudENvbmZpZ1trZXldO1xuICAgIH0pO1xuICB9KTtcbiAgdmFyIG1lbW9JY29uQ29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZWZpeENsczogaWNvblByZWZpeENscyxcbiAgICAgIGNzcDogY3NwXG4gICAgfTtcbiAgfSwgW2ljb25QcmVmaXhDbHNdKTtcbiAgdmFyIGNoaWxkTm9kZSA9IGNoaWxkcmVuOyAvLyBBZGRpdGlvbmFsIEZvcm0gcHJvdmlkZXJcblxuICB2YXIgdmFsaWRhdGVNZXNzYWdlcyA9IHt9O1xuXG4gIGlmIChsb2NhbGUgJiYgbG9jYWxlLkZvcm0gJiYgbG9jYWxlLkZvcm0uZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXMpIHtcbiAgICB2YWxpZGF0ZU1lc3NhZ2VzID0gbG9jYWxlLkZvcm0uZGVmYXVsdFZhbGlkYXRlTWVzc2FnZXM7XG4gIH1cblxuICBpZiAoZm9ybSAmJiBmb3JtLnZhbGlkYXRlTWVzc2FnZXMpIHtcbiAgICB2YWxpZGF0ZU1lc3NhZ2VzID0gKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKCgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgdmFsaWRhdGVNZXNzYWdlcyksIGZvcm0udmFsaWRhdGVNZXNzYWdlcyk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmtleXModmFsaWRhdGVNZXNzYWdlcykubGVuZ3RoID4gMCkge1xuICAgIGNoaWxkTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yY0ZpZWxkRm9ybS5Gb3JtUHJvdmlkZXIsIHtcbiAgICAgIHZhbGlkYXRlTWVzc2FnZXM6IHZhbGlkYXRlTWVzc2FnZXNcbiAgICB9LCBjaGlsZHJlbik7XG4gIH1cblxuICBpZiAobG9jYWxlKSB7XG4gICAgY2hpbGROb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2xvY2FsZVByb3ZpZGVyW1wiZGVmYXVsdFwiXSwge1xuICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICBfQU5UX01BUktfXzogX2xvY2FsZVByb3ZpZGVyLkFOVF9NQVJLXG4gICAgfSwgY2hpbGROb2RlKTtcbiAgfVxuXG4gIGlmIChpY29uUHJlZml4Q2xzKSB7XG4gICAgY2hpbGROb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0NvbnRleHRbXCJkZWZhdWx0XCJdLlByb3ZpZGVyLCB7XG4gICAgICB2YWx1ZTogbWVtb0ljb25Db250ZXh0VmFsdWVcbiAgICB9LCBjaGlsZE5vZGUpO1xuICB9XG5cbiAgaWYgKGNvbXBvbmVudFNpemUpIHtcbiAgICBjaGlsZE5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfU2l6ZUNvbnRleHQuU2l6ZUNvbnRleHRQcm92aWRlciwge1xuICAgICAgc2l6ZTogY29tcG9uZW50U2l6ZVxuICAgIH0sIGNoaWxkTm9kZSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbnRleHQuQ29uZmlnQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBtZW1vZWRDb25maWdcbiAgfSwgY2hpbGROb2RlKTtcbn07XG5cbnZhciBDb25maWdQcm92aWRlciA9IGZ1bmN0aW9uIENvbmZpZ1Byb3ZpZGVyKHByb3BzKSB7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHByb3BzLmRpcmVjdGlvbikge1xuICAgICAgX21lc3NhZ2VbXCJkZWZhdWx0XCJdLmNvbmZpZyh7XG4gICAgICAgIHJ0bDogcHJvcHMuZGlyZWN0aW9uID09PSAncnRsJ1xuICAgICAgfSk7XG5cbiAgICAgIF9ub3RpZmljYXRpb25bXCJkZWZhdWx0XCJdLmNvbmZpZyh7XG4gICAgICAgIHJ0bDogcHJvcHMuZGlyZWN0aW9uID09PSAncnRsJ1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJvcHMuZGlyZWN0aW9uXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTG9jYWxlUmVjZWl2ZXJbXCJkZWZhdWx0XCJdLCBudWxsLCBmdW5jdGlvbiAoXywgX18sIGxlZ2FjeUxvY2FsZSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29udGV4dC5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQcm92aWRlckNoaWxkcmVuLCAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICBwYXJlbnRDb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBsZWdhY3lMb2NhbGU6IGxlZ2FjeUxvY2FsZVxuICAgICAgfSwgcHJvcHMpKTtcbiAgICB9KTtcbiAgfSk7XG59O1xuLyoqIEBwcml2YXRlIGludGVybmFsIFVzYWdlLiBkbyBub3QgdXNlIGluIHlvdXIgcHJvZHVjdGlvbiAqL1xuXG5cbkNvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnRleHQgPSBfY29udGV4dC5Db25maWdDb250ZXh0O1xuQ29uZmlnUHJvdmlkZXIuU2l6ZUNvbnRleHQgPSBfU2l6ZUNvbnRleHRbXCJkZWZhdWx0XCJdO1xuQ29uZmlnUHJvdmlkZXIuY29uZmlnID0gc2V0R2xvYmFsQ29uZmlnO1xudmFyIF9kZWZhdWx0ID0gQ29uZmlnUHJvdmlkZXI7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEZpeGVkU2l6ZVNldF8xID0gcmVxdWlyZShcIi4vRml4ZWRTaXplU2V0XCIpO1xuZXhwb3J0cy5GaXhlZFNpemVTZXQgPSBGaXhlZFNpemVTZXRfMS5GaXhlZFNpemVTZXQ7XG52YXIgT2JqZWN0Q2FjaGVfMSA9IHJlcXVpcmUoXCIuL09iamVjdENhY2hlXCIpO1xuZXhwb3J0cy5PYmplY3RDYWNoZSA9IE9iamVjdENhY2hlXzEuT2JqZWN0Q2FjaGU7XG52YXIgQ29tcGFyZUNhY2hlXzEgPSByZXF1aXJlKFwiLi9Db21wYXJlQ2FjaGVcIik7XG5leHBvcnRzLkNvbXBhcmVDYWNoZSA9IENvbXBhcmVDYWNoZV8xLkNvbXBhcmVDYWNoZTtcbnZhciBMYXp5XzEgPSByZXF1aXJlKFwiLi9MYXp5XCIpO1xuZXhwb3J0cy5MYXp5ID0gTGF6eV8xLkxhenk7XG4vKipcbiAqIEFwcGxpZXMgdGhlIG1peGluIHRvIGEgZ2l2ZW4gY2xhc3MuXG4gKlxuICogQHBhcmFtIGJhc2VDbGFzcyAtIGNsYXNzIHRvIHJlY2VpdmUgdGhlIG1peGluXG4gKiBAcGFyYW0gbWl4aW5DbGFzcyAtIG1peGluIGNsYXNzXG4gKiBAcGFyYW0gb3ZlcnJpZGVzIC0gYW4gYXJyYXkgd2l0aCBuYW1lcyBvZiBmdW5jdGlvbiBvdmVycmlkZXMuIEJhc2UgY2xhc3NcbiAqIGZ1bmN0aW9ucyB3aG9zZSBuYW1lcyBhcmUgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGtlcHQgYnkgcHJlcGVuZGluZyBhblxuICogdW5kZXJzY29yZSB0byB0aGVpciBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXBwbHlNaXhpbihiYXNlQ2xhc3MsIG1peGluQ2xhc3MsIC4uLm92ZXJyaWRlcykge1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1peGluQ2xhc3MucHJvdG90eXBlKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBpZiAob3ZlcnJpZGVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgICBjb25zdCBvcmdQcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZUNsYXNzLnByb3RvdHlwZSwgbmFtZSk7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9yZ1Byb3BEZXNjKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJhc2VDbGFzcy5wcm90b3R5cGUsIFwiX1wiICsgbmFtZSwgb3JnUHJvcERlc2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtaXhpbkNsYXNzLnByb3RvdHlwZSwgbmFtZSk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwcm9wRGVzYykge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJhc2VDbGFzcy5wcm90b3R5cGUsIG5hbWUsIHByb3BEZXNjKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0cy5hcHBseU1peGluID0gYXBwbHlNaXhpbjtcbi8qKlxuICogQXBwbGllcyBkZWZhdWx0IHZhbHVlcyB0byB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBhbiBvYmplY3RcbiAqIEBwYXJhbSBkZWZhdWx0cyAtIGFuIG9iamVjdCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKiBAcGFyYW0gb3ZlcndyaXRlIC0gaWYgc2V0IHRvIGB0cnVlYCBkZWZhdWx0cyBvYmplY3QgYWx3YXlzIG92ZXJ3cml0ZXMgb2JqZWN0XG4gKiB2YWx1ZXMsIHdoZXRoZXIgdGhleSBhcmUgYHVuZGVmaW5lZGAgb3Igbm90LlxuICovXG5mdW5jdGlvbiBhcHBseURlZmF1bHRzKG9iaiwgZGVmYXVsdHMsIG92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gY2xvbmUob2JqIHx8IHt9KTtcbiAgICBmb3JFYWNoT2JqZWN0KGRlZmF1bHRzLCAoa2V5LCB2YWwpID0+IHtcbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gYXBwbHlEZWZhdWx0cyhyZXN1bHRba2V5XSwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvdmVyd3JpdGUgfHwgcmVzdWx0W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5hcHBseURlZmF1bHRzID0gYXBwbHlEZWZhdWx0cztcbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBpdGVtcyBvZiBhbiBhcnJheSBvciBzZXQuXG4gKlxuICogQHBhcmFtIGFyciAtIGFycmF5IG9yIHNldCB0byBpdGVyYXRlXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHJlY2VpdmVzIGVhY2ggYXJyYXkgaXRlbSBhcyBpdHNcbiAqIHNpbmdsZSBhcmd1bWVudFxuICogQHBhcmFtIHRoaXNBcmcgLSB0aGUgdmFsdWUgb2YgdGhpcyBpbnNpZGUgY2FsbGJhY2tcbiAqL1xuZnVuY3Rpb24gZm9yRWFjaEFycmF5KGFyciwgY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICBhcnIuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7XG59XG5leHBvcnRzLmZvckVhY2hBcnJheSA9IGZvckVhY2hBcnJheTtcbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBrZXkvdmFsdWUgcGFpcnMgb2YgYSBtYXAgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBtYXAgb3Igb2JqZWN0IHRvIGl0ZXJhdGVcbiAqIEBwYXJhbSBjYWxsYmFjayAtIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggcmVjZWl2ZXMgb2JqZWN0IGtleSBhcyBpdHMgZmlyc3RcbiAqIGFyZ3VtZW50IGFuZCBvYmplY3QgdmFsdWUgYXMgaXRzIHNlY29uZCBhcmd1bWVudFxuICogQHBhcmFtIHRoaXNBcmcgLSB0aGUgdmFsdWUgb2YgdGhpcyBpbnNpZGUgY2FsbGJhY2tcbiAqL1xuZnVuY3Rpb24gZm9yRWFjaE9iamVjdChvYmosIGNhbGxiYWNrLCB0aGlzQXJnKSB7XG4gICAgaWYgKGlzTWFwKG9iaikpIHtcbiAgICAgICAgb2JqLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IGNhbGxiYWNrLmNhbGwodGhpc0FyZywga2V5LCB2YWx1ZSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCBrZXksIG9ialtrZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuZm9yRWFjaE9iamVjdCA9IGZvckVhY2hPYmplY3Q7XG4vKipcbiAqIFJldHVybnMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIGFuIGFycmF5IG9yIHNldC5cbiAqXG4gKiBAcGFyYW0gYXJyIC0gYXJyYXkgb3Igc2V0XG4gKi9cbmZ1bmN0aW9uIGFycmF5TGVuZ3RoKG9iaikge1xuICAgIGlmIChpc1NldChvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmouc2l6ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBvYmoubGVuZ3RoO1xuICAgIH1cbn1cbmV4cG9ydHMuYXJyYXlMZW5ndGggPSBhcnJheUxlbmd0aDtcbi8qKlxuICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gYSBtYXAgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBtYXAgb3Igb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIG9iamVjdExlbmd0aChvYmopIHtcbiAgICBpZiAoaXNNYXAob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqLnNpemU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGg7XG4gICAgfVxufVxuZXhwb3J0cy5vYmplY3RMZW5ndGggPSBvYmplY3RMZW5ndGg7XG4vKipcbiAqIEdldHMgdGhlIHZhbHVlIG9mIGEga2V5IGZyb20gYSBtYXAgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBtYXAgb3Igb2JqZWN0XG4gKiBAcGFyYW0ga2V5IC0gdGhlIGtleSB0byByZXRyaWV2ZVxuICovXG5mdW5jdGlvbiBnZXRPYmplY3RWYWx1ZShvYmosIGtleSkge1xuICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmouZ2V0KGtleSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gb2JqW2tleV07XG4gICAgfVxufVxuZXhwb3J0cy5nZXRPYmplY3RWYWx1ZSA9IGdldE9iamVjdFZhbHVlO1xuLyoqXG4gKiBSZW1vdmVzIGEgcHJvcGVydHkgZnJvbSBhIG1hcCBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIG9iaiAtIG1hcCBvciBvYmplY3RcbiAqIEBwYXJhbSBrZXkgLSB0aGUga2V5IHRvIHJlbW92ZVxuICovXG5mdW5jdGlvbiByZW1vdmVPYmplY3RWYWx1ZShvYmosIGtleSkge1xuICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIG9iai5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBvYmpba2V5XTtcbiAgICB9XG59XG5leHBvcnRzLnJlbW92ZU9iamVjdFZhbHVlID0gcmVtb3ZlT2JqZWN0VmFsdWU7XG4vKipcbiAqIERlZXAgY2xvbmVzIHRoZSBnaXZlbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIG9iaiAtIGFuIG9iamVjdFxuICovXG5mdW5jdGlvbiBjbG9uZShvYmopIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzQXJyYXkob2JqKSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY2xvbmUoaXRlbSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG9ialtrZXldO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xvbmUodmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG59XG5leHBvcnRzLmNsb25lID0gY2xvbmU7XG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIGJvb2xlYW4gdHlwZXNcbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gdHlwZSBjaGVja1xuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4oeCkge1xuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJib29sZWFuXCI7XG59XG5leHBvcnRzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbi8qKlxuICogVHlwZSBndWFyZCBmb3IgbnVtZXJpYyB0eXBlc1xuICpcbiAqIEBwYXJhbSB4IC0gYSB2YXJpYWJsZSB0byB0eXBlIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHggPT09IFwibnVtYmVyXCI7XG59XG5leHBvcnRzLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIHN0cmluZ3NcbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gdHlwZSBjaGVja1xuICovXG5mdW5jdGlvbiBpc1N0cmluZyh4KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN0cmluZ1wiO1xufVxuZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nO1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBmdW5jdGlvbiBvYmplY3RzXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuICEheCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG59XG5leHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBKUyBvYmplY3RzXG4gKlxuICogX05vdGU6XyBGdW5jdGlvbnMgYXJlIG9iamVjdHMgdG9vXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QoeCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgeDtcbiAgICByZXR1cm4gISF4ICYmICh0eXBlID09PSAnZnVuY3Rpb24nIHx8IHR5cGUgPT09ICdvYmplY3QnKTtcbn1cbmV4cG9ydHMuaXNPYmplY3QgPSBpc09iamVjdDtcbi8qKlxuICogVHlwZSBndWFyZCBmb3IgYXJyYXlzXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh4KSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoeCk7XG59XG5leHBvcnRzLmlzQXJyYXkgPSBpc0FycmF5O1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBzZXRzLlxuICpcbiAqIEBwYXJhbSB4IC0gYSB2YXJpYWJsZSB0byBjaGVja1xuICovXG5mdW5jdGlvbiBpc1NldCh4KSB7XG4gICAgcmV0dXJuIHggaW5zdGFuY2VvZiBTZXQ7XG59XG5leHBvcnRzLmlzU2V0ID0gaXNTZXQ7XG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIG1hcHMuXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzTWFwKHgpIHtcbiAgICByZXR1cm4geCBpbnN0YW5jZW9mIE1hcDtcbn1cbmV4cG9ydHMuaXNNYXAgPSBpc01hcDtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBgeGAgaXMgYW4gZW1wdHkgQXJyYXkgb3IgYW4gT2JqZWN0IHdpdGggbm8gb3duIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkoeCkge1xuICAgIGlmIChpc0FycmF5KHgpKSB7XG4gICAgICAgIHJldHVybiAheC5sZW5ndGg7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzU2V0KHgpKSB7XG4gICAgICAgIHJldHVybiAheC5zaXplO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc01hcCh4KSkge1xuICAgICAgICByZXR1cm4gIXguc2l6ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoeCkpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4geCkge1xuICAgICAgICAgICAgaWYgKHguaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZXhwb3J0cy5pc0VtcHR5ID0gaXNFbXB0eTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBgeGAgaXMgYSBwbGFpbiBPYmplY3QuXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QoeCkge1xuICAgIGlmIChpc09iamVjdCh4KSkge1xuICAgICAgICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih4KTtcbiAgICAgICAgY29uc3QgY3RvciA9IHByb3RvLmNvbnN0cnVjdG9yO1xuICAgICAgICByZXR1cm4gcHJvdG8gJiYgY3RvciAmJlxuICAgICAgICAgICAgKHR5cGVvZiBjdG9yID09PSAnZnVuY3Rpb24nKSAmJiAoY3RvciBpbnN0YW5jZW9mIGN0b3IpICYmXG4gICAgICAgICAgICAoRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoY3RvcikgPT09IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnRzLmlzUGxhaW5PYmplY3QgPSBpc1BsYWluT2JqZWN0O1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGB4YCBpcyBhbiBpdGVyYWJsZSBPYmplY3QuXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmFibGUoeCkge1xuICAgIHJldHVybiB4ICYmICh0eXBlb2YgeFtTeW1ib2wuaXRlcmF0b3JdID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydHMuaXNJdGVyYWJsZSA9IGlzSXRlcmFibGU7XG4vKipcbiAqIEdldHMgdGhlIHByaW1pdGl2ZSB2YWx1ZSBvZiBhbiBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlKG9iaikge1xuICAgIGlmIChpc0Z1bmN0aW9uKG9iai52YWx1ZU9mKSkge1xuICAgICAgICByZXR1cm4gb2JqLnZhbHVlT2YoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxufVxuZXhwb3J0cy5nZXRWYWx1ZSA9IGdldFZhbHVlO1xuLyoqXG4gKiBVVEYtOCBlbmNvZGVzIHRoZSBnaXZlbiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGlucHV0IC0gYSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gdXRmOEVuY29kZShpbnB1dCkge1xuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoaW5wdXQubGVuZ3RoICogNCk7XG4gICAgbGV0IGJ5dGVJbmRleCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY2hhciA9IGlucHV0LmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGlmIChjaGFyIDwgMTI4KSB7XG4gICAgICAgICAgICBieXRlc1tieXRlSW5kZXgrK10gPSBjaGFyO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoY2hhciA8IDIwNDgpIHtcbiAgICAgICAgICAgIGJ5dGVzW2J5dGVJbmRleCsrXSA9IGNoYXIgPj4gNiB8IDE5MjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChjaGFyID4gMHhkN2ZmICYmIGNoYXIgPCAweGRjMDApIHtcbiAgICAgICAgICAgICAgICBpZiAoKytpID49IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvbXBsZXRlIHN1cnJvZ2F0ZSBwYWlyLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYzIgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgICAgIGlmIChjMiA8IDB4ZGMwMCB8fCBjMiA+IDB4ZGZmZikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjaGFyID0gMHgxMDAwMCArICgoY2hhciAmIDB4MDNmZikgPDwgMTApICsgKGMyICYgMHgwM2ZmKTtcbiAgICAgICAgICAgICAgICBieXRlc1tieXRlSW5kZXgrK10gPSBjaGFyID4+IDE4IHwgMjQwO1xuICAgICAgICAgICAgICAgIGJ5dGVzW2J5dGVJbmRleCsrXSA9IGNoYXIgPj4gMTIgJiA2MyB8IDEyODtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGJ5dGVzW2J5dGVJbmRleCsrXSA9IGNoYXIgPj4gMTIgfCAyMjQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBieXRlc1tieXRlSW5kZXgrK10gPSBjaGFyID4+IDYgJiA2MyB8IDEyODtcbiAgICAgICAgfVxuICAgICAgICBieXRlc1tieXRlSW5kZXgrK10gPSBjaGFyICYgNjMgfCAxMjg7XG4gICAgfVxuICAgIHJldHVybiBieXRlcy5zdWJhcnJheSgwLCBieXRlSW5kZXgpO1xufVxuZXhwb3J0cy51dGY4RW5jb2RlID0gdXRmOEVuY29kZTtcbi8qKlxuICogVVRGLTggZGVjb2RlcyB0aGUgZ2l2ZW4gYnl0ZSBzZXF1ZW5jZSBpbnRvIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiB1dGY4RGVjb2RlKGJ5dGVzKSB7XG4gICAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlIChpIDwgYnl0ZXMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBjID0gYnl0ZXNbaSsrXTtcbiAgICAgICAgaWYgKGMgPiAxMjcpIHtcbiAgICAgICAgICAgIGlmIChjID4gMTkxICYmIGMgPCAyMjQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSBieXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb21wbGV0ZSAyLWJ5dGUgc2VxdWVuY2UuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjID0gKGMgJiAzMSkgPDwgNiB8IGJ5dGVzW2krK10gJiA2MztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPiAyMjMgJiYgYyA8IDI0MCkge1xuICAgICAgICAgICAgICAgIGlmIChpICsgMSA+PSBieXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5jb21wbGV0ZSAzLWJ5dGUgc2VxdWVuY2UuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjID0gKGMgJiAxNSkgPDwgMTIgfCAoYnl0ZXNbaSsrXSAmIDYzKSA8PCA2IHwgYnl0ZXNbaSsrXSAmIDYzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoYyA+IDIzOSAmJiBjIDwgMjQ4KSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgKyAyID49IGJ5dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbmNvbXBsZXRlIDQtYnl0ZSBzZXF1ZW5jZS5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGMgPSAoYyAmIDcpIDw8IDE4IHwgKGJ5dGVzW2krK10gJiA2MykgPDwgMTIgfCAoYnl0ZXNbaSsrXSAmIDYzKSA8PCA2IHwgYnl0ZXNbaSsrXSAmIDYzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBtdWx0aS1ieXRlIHN0YXJ0LlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYyA8PSAweGZmZmYpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGMgPD0gMHgxMGZmZmYpIHtcbiAgICAgICAgICAgIGMgLT0gMHgxMDAwMDtcbiAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMgPj4gMTAgfCAweGQ4MDApO1xuICAgICAgICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYyAmIDB4M0ZGIHwgMHhkYzAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvZGUgcG9pbnQgZXhjZWVkcyBVVEYtMTYgbGltaXQuXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLnV0ZjhEZWNvZGUgPSB1dGY4RGVjb2RlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xudmFyIHdhcm5lZCA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIHdhcm5pbmcodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJXYXJuaW5nOiBcIi5jb25jYXQobWVzc2FnZSkpO1xuICB9XG59XG5leHBvcnQgZnVuY3Rpb24gbm90ZSh2YWxpZCwgbWVzc2FnZSkge1xuICAvLyBTdXBwb3J0IHVnbGlmeVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhdmFsaWQgJiYgY29uc29sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc29sZS53YXJuKFwiTm90ZTogXCIuY29uY2F0KG1lc3NhZ2UpKTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0V2FybmVkKCkge1xuICB3YXJuZWQgPSB7fTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjYWxsKG1ldGhvZCwgdmFsaWQsIG1lc3NhZ2UpIHtcbiAgaWYgKCF2YWxpZCAmJiAhd2FybmVkW21lc3NhZ2VdKSB7XG4gICAgbWV0aG9kKGZhbHNlLCBtZXNzYWdlKTtcbiAgICB3YXJuZWRbbWVzc2FnZV0gPSB0cnVlO1xuICB9XG59XG5leHBvcnQgZnVuY3Rpb24gd2FybmluZ09uY2UodmFsaWQsIG1lc3NhZ2UpIHtcbiAgY2FsbCh3YXJuaW5nLCB2YWxpZCwgbWVzc2FnZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gbm90ZU9uY2UodmFsaWQsIG1lc3NhZ2UpIHtcbiAgY2FsbChub3RlLCB2YWxpZCwgbWVzc2FnZSk7XG59XG5leHBvcnQgZGVmYXVsdCB3YXJuaW5nT25jZTtcbi8qIGVzbGludC1lbmFibGUgKi8iLCIvKipcbiAqIEBpZ25vcmVcbiAqIHNvbWUga2V5LWNvZGVzIGRlZmluaXRpb24gYW5kIHV0aWxzIGZyb20gY2xvc3VyZS1saWJyYXJ5XG4gKiBAYXV0aG9yIHlpbWluZ2hlQGdtYWlsLmNvbVxuICovXG52YXIgS2V5Q29kZSA9IHtcbiAgLyoqXG4gICAqIE1BQ19FTlRFUlxuICAgKi9cbiAgTUFDX0VOVEVSOiAzLFxuXG4gIC8qKlxuICAgKiBCQUNLU1BBQ0VcbiAgICovXG4gIEJBQ0tTUEFDRTogOCxcblxuICAvKipcbiAgICogVEFCXG4gICAqL1xuICBUQUI6IDksXG5cbiAgLyoqXG4gICAqIE5VTUxPQ0sgb24gRkYvU2FmYXJpIE1hY1xuICAgKi9cbiAgTlVNX0NFTlRFUjogMTIsXG5cbiAgLyoqXG4gICAqIEVOVEVSXG4gICAqL1xuICBFTlRFUjogMTMsXG5cbiAgLyoqXG4gICAqIFNISUZUXG4gICAqL1xuICBTSElGVDogMTYsXG5cbiAgLyoqXG4gICAqIENUUkxcbiAgICovXG4gIENUUkw6IDE3LFxuXG4gIC8qKlxuICAgKiBBTFRcbiAgICovXG4gIEFMVDogMTgsXG5cbiAgLyoqXG4gICAqIFBBVVNFXG4gICAqL1xuICBQQVVTRTogMTksXG5cbiAgLyoqXG4gICAqIENBUFNfTE9DS1xuICAgKi9cbiAgQ0FQU19MT0NLOiAyMCxcblxuICAvKipcbiAgICogRVNDXG4gICAqL1xuICBFU0M6IDI3LFxuXG4gIC8qKlxuICAgKiBTUEFDRVxuICAgKi9cbiAgU1BBQ0U6IDMyLFxuXG4gIC8qKlxuICAgKiBQQUdFX1VQXG4gICAqL1xuICBQQUdFX1VQOiAzMyxcblxuICAvKipcbiAgICogUEFHRV9ET1dOXG4gICAqL1xuICBQQUdFX0RPV046IDM0LFxuXG4gIC8qKlxuICAgKiBFTkRcbiAgICovXG4gIEVORDogMzUsXG5cbiAgLyoqXG4gICAqIEhPTUVcbiAgICovXG4gIEhPTUU6IDM2LFxuXG4gIC8qKlxuICAgKiBMRUZUXG4gICAqL1xuICBMRUZUOiAzNyxcblxuICAvKipcbiAgICogVVBcbiAgICovXG4gIFVQOiAzOCxcblxuICAvKipcbiAgICogUklHSFRcbiAgICovXG4gIFJJR0hUOiAzOSxcblxuICAvKipcbiAgICogRE9XTlxuICAgKi9cbiAgRE9XTjogNDAsXG5cbiAgLyoqXG4gICAqIFBSSU5UX1NDUkVFTlxuICAgKi9cbiAgUFJJTlRfU0NSRUVOOiA0NCxcblxuICAvKipcbiAgICogSU5TRVJUXG4gICAqL1xuICBJTlNFUlQ6IDQ1LFxuXG4gIC8qKlxuICAgKiBERUxFVEVcbiAgICovXG4gIERFTEVURTogNDYsXG5cbiAgLyoqXG4gICAqIFpFUk9cbiAgICovXG4gIFpFUk86IDQ4LFxuXG4gIC8qKlxuICAgKiBPTkVcbiAgICovXG4gIE9ORTogNDksXG5cbiAgLyoqXG4gICAqIFRXT1xuICAgKi9cbiAgVFdPOiA1MCxcblxuICAvKipcbiAgICogVEhSRUVcbiAgICovXG4gIFRIUkVFOiA1MSxcblxuICAvKipcbiAgICogRk9VUlxuICAgKi9cbiAgRk9VUjogNTIsXG5cbiAgLyoqXG4gICAqIEZJVkVcbiAgICovXG4gIEZJVkU6IDUzLFxuXG4gIC8qKlxuICAgKiBTSVhcbiAgICovXG4gIFNJWDogNTQsXG5cbiAgLyoqXG4gICAqIFNFVkVOXG4gICAqL1xuICBTRVZFTjogNTUsXG5cbiAgLyoqXG4gICAqIEVJR0hUXG4gICAqL1xuICBFSUdIVDogNTYsXG5cbiAgLyoqXG4gICAqIE5JTkVcbiAgICovXG4gIE5JTkU6IDU3LFxuXG4gIC8qKlxuICAgKiBRVUVTVElPTl9NQVJLXG4gICAqL1xuICBRVUVTVElPTl9NQVJLOiA2MyxcblxuICAvKipcbiAgICogQVxuICAgKi9cbiAgQTogNjUsXG5cbiAgLyoqXG4gICAqIEJcbiAgICovXG4gIEI6IDY2LFxuXG4gIC8qKlxuICAgKiBDXG4gICAqL1xuICBDOiA2NyxcblxuICAvKipcbiAgICogRFxuICAgKi9cbiAgRDogNjgsXG5cbiAgLyoqXG4gICAqIEVcbiAgICovXG4gIEU6IDY5LFxuXG4gIC8qKlxuICAgKiBGXG4gICAqL1xuICBGOiA3MCxcblxuICAvKipcbiAgICogR1xuICAgKi9cbiAgRzogNzEsXG5cbiAgLyoqXG4gICAqIEhcbiAgICovXG4gIEg6IDcyLFxuXG4gIC8qKlxuICAgKiBJXG4gICAqL1xuICBJOiA3MyxcblxuICAvKipcbiAgICogSlxuICAgKi9cbiAgSjogNzQsXG5cbiAgLyoqXG4gICAqIEtcbiAgICovXG4gIEs6IDc1LFxuXG4gIC8qKlxuICAgKiBMXG4gICAqL1xuICBMOiA3NixcblxuICAvKipcbiAgICogTVxuICAgKi9cbiAgTTogNzcsXG5cbiAgLyoqXG4gICAqIE5cbiAgICovXG4gIE46IDc4LFxuXG4gIC8qKlxuICAgKiBPXG4gICAqL1xuICBPOiA3OSxcblxuICAvKipcbiAgICogUFxuICAgKi9cbiAgUDogODAsXG5cbiAgLyoqXG4gICAqIFFcbiAgICovXG4gIFE6IDgxLFxuXG4gIC8qKlxuICAgKiBSXG4gICAqL1xuICBSOiA4MixcblxuICAvKipcbiAgICogU1xuICAgKi9cbiAgUzogODMsXG5cbiAgLyoqXG4gICAqIFRcbiAgICovXG4gIFQ6IDg0LFxuXG4gIC8qKlxuICAgKiBVXG4gICAqL1xuICBVOiA4NSxcblxuICAvKipcbiAgICogVlxuICAgKi9cbiAgVjogODYsXG5cbiAgLyoqXG4gICAqIFdcbiAgICovXG4gIFc6IDg3LFxuXG4gIC8qKlxuICAgKiBYXG4gICAqL1xuICBYOiA4OCxcblxuICAvKipcbiAgICogWVxuICAgKi9cbiAgWTogODksXG5cbiAgLyoqXG4gICAqIFpcbiAgICovXG4gIFo6IDkwLFxuXG4gIC8qKlxuICAgKiBNRVRBXG4gICAqL1xuICBNRVRBOiA5MSxcblxuICAvKipcbiAgICogV0lOX0tFWV9SSUdIVFxuICAgKi9cbiAgV0lOX0tFWV9SSUdIVDogOTIsXG5cbiAgLyoqXG4gICAqIENPTlRFWFRfTUVOVVxuICAgKi9cbiAgQ09OVEVYVF9NRU5VOiA5MyxcblxuICAvKipcbiAgICogTlVNX1pFUk9cbiAgICovXG4gIE5VTV9aRVJPOiA5NixcblxuICAvKipcbiAgICogTlVNX09ORVxuICAgKi9cbiAgTlVNX09ORTogOTcsXG5cbiAgLyoqXG4gICAqIE5VTV9UV09cbiAgICovXG4gIE5VTV9UV086IDk4LFxuXG4gIC8qKlxuICAgKiBOVU1fVEhSRUVcbiAgICovXG4gIE5VTV9USFJFRTogOTksXG5cbiAgLyoqXG4gICAqIE5VTV9GT1VSXG4gICAqL1xuICBOVU1fRk9VUjogMTAwLFxuXG4gIC8qKlxuICAgKiBOVU1fRklWRVxuICAgKi9cbiAgTlVNX0ZJVkU6IDEwMSxcblxuICAvKipcbiAgICogTlVNX1NJWFxuICAgKi9cbiAgTlVNX1NJWDogMTAyLFxuXG4gIC8qKlxuICAgKiBOVU1fU0VWRU5cbiAgICovXG4gIE5VTV9TRVZFTjogMTAzLFxuXG4gIC8qKlxuICAgKiBOVU1fRUlHSFRcbiAgICovXG4gIE5VTV9FSUdIVDogMTA0LFxuXG4gIC8qKlxuICAgKiBOVU1fTklORVxuICAgKi9cbiAgTlVNX05JTkU6IDEwNSxcblxuICAvKipcbiAgICogTlVNX01VTFRJUExZXG4gICAqL1xuICBOVU1fTVVMVElQTFk6IDEwNixcblxuICAvKipcbiAgICogTlVNX1BMVVNcbiAgICovXG4gIE5VTV9QTFVTOiAxMDcsXG5cbiAgLyoqXG4gICAqIE5VTV9NSU5VU1xuICAgKi9cbiAgTlVNX01JTlVTOiAxMDksXG5cbiAgLyoqXG4gICAqIE5VTV9QRVJJT0RcbiAgICovXG4gIE5VTV9QRVJJT0Q6IDExMCxcblxuICAvKipcbiAgICogTlVNX0RJVklTSU9OXG4gICAqL1xuICBOVU1fRElWSVNJT046IDExMSxcblxuICAvKipcbiAgICogRjFcbiAgICovXG4gIEYxOiAxMTIsXG5cbiAgLyoqXG4gICAqIEYyXG4gICAqL1xuICBGMjogMTEzLFxuXG4gIC8qKlxuICAgKiBGM1xuICAgKi9cbiAgRjM6IDExNCxcblxuICAvKipcbiAgICogRjRcbiAgICovXG4gIEY0OiAxMTUsXG5cbiAgLyoqXG4gICAqIEY1XG4gICAqL1xuICBGNTogMTE2LFxuXG4gIC8qKlxuICAgKiBGNlxuICAgKi9cbiAgRjY6IDExNyxcblxuICAvKipcbiAgICogRjdcbiAgICovXG4gIEY3OiAxMTgsXG5cbiAgLyoqXG4gICAqIEY4XG4gICAqL1xuICBGODogMTE5LFxuXG4gIC8qKlxuICAgKiBGOVxuICAgKi9cbiAgRjk6IDEyMCxcblxuICAvKipcbiAgICogRjEwXG4gICAqL1xuICBGMTA6IDEyMSxcblxuICAvKipcbiAgICogRjExXG4gICAqL1xuICBGMTE6IDEyMixcblxuICAvKipcbiAgICogRjEyXG4gICAqL1xuICBGMTI6IDEyMyxcblxuICAvKipcbiAgICogTlVNTE9DS1xuICAgKi9cbiAgTlVNTE9DSzogMTQ0LFxuXG4gIC8qKlxuICAgKiBTRU1JQ09MT05cbiAgICovXG4gIFNFTUlDT0xPTjogMTg2LFxuXG4gIC8qKlxuICAgKiBEQVNIXG4gICAqL1xuICBEQVNIOiAxODksXG5cbiAgLyoqXG4gICAqIEVRVUFMU1xuICAgKi9cbiAgRVFVQUxTOiAxODcsXG5cbiAgLyoqXG4gICAqIENPTU1BXG4gICAqL1xuICBDT01NQTogMTg4LFxuXG4gIC8qKlxuICAgKiBQRVJJT0RcbiAgICovXG4gIFBFUklPRDogMTkwLFxuXG4gIC8qKlxuICAgKiBTTEFTSFxuICAgKi9cbiAgU0xBU0g6IDE5MSxcblxuICAvKipcbiAgICogQVBPU1RST1BIRVxuICAgKi9cbiAgQVBPU1RST1BIRTogMTkyLFxuXG4gIC8qKlxuICAgKiBTSU5HTEVfUVVPVEVcbiAgICovXG4gIFNJTkdMRV9RVU9URTogMjIyLFxuXG4gIC8qKlxuICAgKiBPUEVOX1NRVUFSRV9CUkFDS0VUXG4gICAqL1xuICBPUEVOX1NRVUFSRV9CUkFDS0VUOiAyMTksXG5cbiAgLyoqXG4gICAqIEJBQ0tTTEFTSFxuICAgKi9cbiAgQkFDS1NMQVNIOiAyMjAsXG5cbiAgLyoqXG4gICAqIENMT1NFX1NRVUFSRV9CUkFDS0VUXG4gICAqL1xuICBDTE9TRV9TUVVBUkVfQlJBQ0tFVDogMjIxLFxuXG4gIC8qKlxuICAgKiBXSU5fS0VZXG4gICAqL1xuICBXSU5fS0VZOiAyMjQsXG5cbiAgLyoqXG4gICAqIE1BQ19GRl9NRVRBXG4gICAqL1xuICBNQUNfRkZfTUVUQTogMjI0LFxuXG4gIC8qKlxuICAgKiBXSU5fSU1FXG4gICAqL1xuICBXSU5fSU1FOiAyMjksXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBGdW5jdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogd2hldGhlciB0ZXh0IGFuZCBtb2RpZmllZCBrZXkgaXMgZW50ZXJlZCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKi9cbiAgaXNUZXh0TW9kaWZ5aW5nS2V5RXZlbnQ6IGZ1bmN0aW9uIGlzVGV4dE1vZGlmeWluZ0tleUV2ZW50KGUpIHtcbiAgICB2YXIga2V5Q29kZSA9IGUua2V5Q29kZTtcblxuICAgIGlmIChlLmFsdEtleSAmJiAhZS5jdHJsS2V5IHx8IGUubWV0YUtleSB8fCAvLyBGdW5jdGlvbiBrZXlzIGRvbid0IGdlbmVyYXRlIHRleHRcbiAgICBrZXlDb2RlID49IEtleUNvZGUuRjEgJiYga2V5Q29kZSA8PSBLZXlDb2RlLkYxMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gLy8gVGhlIGZvbGxvd2luZyBrZXlzIGFyZSBxdWl0ZSBoYXJtbGVzcywgZXZlbiBpbiBjb21iaW5hdGlvbiB3aXRoXG4gICAgLy8gQ1RSTCwgQUxUIG9yIFNISUZULlxuXG5cbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgS2V5Q29kZS5BTFQ6XG4gICAgICBjYXNlIEtleUNvZGUuQ0FQU19MT0NLOlxuICAgICAgY2FzZSBLZXlDb2RlLkNPTlRFWFRfTUVOVTpcbiAgICAgIGNhc2UgS2V5Q29kZS5DVFJMOlxuICAgICAgY2FzZSBLZXlDb2RlLkRPV046XG4gICAgICBjYXNlIEtleUNvZGUuRU5EOlxuICAgICAgY2FzZSBLZXlDb2RlLkVTQzpcbiAgICAgIGNhc2UgS2V5Q29kZS5IT01FOlxuICAgICAgY2FzZSBLZXlDb2RlLklOU0VSVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5MRUZUOlxuICAgICAgY2FzZSBLZXlDb2RlLk1BQ19GRl9NRVRBOlxuICAgICAgY2FzZSBLZXlDb2RlLk1FVEE6XG4gICAgICBjYXNlIEtleUNvZGUuTlVNTE9DSzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fQ0VOVEVSOlxuICAgICAgY2FzZSBLZXlDb2RlLlBBR0VfRE9XTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5QQUdFX1VQOlxuICAgICAgY2FzZSBLZXlDb2RlLlBBVVNFOlxuICAgICAgY2FzZSBLZXlDb2RlLlBSSU5UX1NDUkVFTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5SSUdIVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5TSElGVDpcbiAgICAgIGNhc2UgS2V5Q29kZS5VUDpcbiAgICAgIGNhc2UgS2V5Q29kZS5XSU5fS0VZOlxuICAgICAgY2FzZSBLZXlDb2RlLldJTl9LRVlfUklHSFQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiB3aGV0aGVyIGNoYXJhY3RlciBpcyBlbnRlcmVkLlxuICAgKi9cbiAgaXNDaGFyYWN0ZXJLZXk6IGZ1bmN0aW9uIGlzQ2hhcmFjdGVyS2V5KGtleUNvZGUpIHtcbiAgICBpZiAoa2V5Q29kZSA+PSBLZXlDb2RlLlpFUk8gJiYga2V5Q29kZSA8PSBLZXlDb2RlLk5JTkUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChrZXlDb2RlID49IEtleUNvZGUuTlVNX1pFUk8gJiYga2V5Q29kZSA8PSBLZXlDb2RlLk5VTV9NVUxUSVBMWSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGtleUNvZGUgPj0gS2V5Q29kZS5BICYmIGtleUNvZGUgPD0gS2V5Q29kZS5aKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIFNhZmFyaSBzZW5kcyB6ZXJvIGtleSBjb2RlIGZvciBub24tbGF0aW4gY2hhcmFjdGVycy5cblxuXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1dlYktpdCcpICE9PSAtMSAmJiBrZXlDb2RlID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgS2V5Q29kZS5TUEFDRTpcbiAgICAgIGNhc2UgS2V5Q29kZS5RVUVTVElPTl9NQVJLOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9QTFVTOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9NSU5VUzpcbiAgICAgIGNhc2UgS2V5Q29kZS5OVU1fUEVSSU9EOlxuICAgICAgY2FzZSBLZXlDb2RlLk5VTV9ESVZJU0lPTjpcbiAgICAgIGNhc2UgS2V5Q29kZS5TRU1JQ09MT046XG4gICAgICBjYXNlIEtleUNvZGUuREFTSDpcbiAgICAgIGNhc2UgS2V5Q29kZS5FUVVBTFM6XG4gICAgICBjYXNlIEtleUNvZGUuQ09NTUE6XG4gICAgICBjYXNlIEtleUNvZGUuUEVSSU9EOlxuICAgICAgY2FzZSBLZXlDb2RlLlNMQVNIOlxuICAgICAgY2FzZSBLZXlDb2RlLkFQT1NUUk9QSEU6XG4gICAgICBjYXNlIEtleUNvZGUuU0lOR0xFX1FVT1RFOlxuICAgICAgY2FzZSBLZXlDb2RlLk9QRU5fU1FVQVJFX0JSQUNLRVQ6XG4gICAgICBjYXNlIEtleUNvZGUuQkFDS1NMQVNIOlxuICAgICAgY2FzZSBLZXlDb2RlLkNMT1NFX1NRVUFSRV9CUkFDS0VUOlxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufTtcbmV4cG9ydCBkZWZhdWx0IEtleUNvZGU7IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9zbGljZWRUb0FycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheVwiKSk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG5cbnZhciBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKSk7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX0NvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0NvbnRleHRcIikpO1xuXG52YXIgX0ljb25CYXNlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9JY29uQmFzZVwiKSk7XG5cbnZhciBfdHdvVG9uZVByaW1hcnlDb2xvciA9IHJlcXVpcmUoXCIuL3R3b1RvbmVQcmltYXJ5Q29sb3JcIik7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5cbi8vIEluaXRpYWwgc2V0dGluZ1xuLy8gc2hvdWxkIG1vdmUgaXQgdG8gYW50ZCBtYWluIHJlcG8/XG4oMCwgX3R3b1RvbmVQcmltYXJ5Q29sb3Iuc2V0VHdvVG9uZUNvbG9yKSgnIzE4OTBmZicpO1xudmFyIEljb24gPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiAocHJvcHMsIHJlZikge1xuICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIGljb24gPSBwcm9wcy5pY29uLFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICByb3RhdGUgPSBwcm9wcy5yb3RhdGUsXG4gICAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICB0d29Ub25lQ29sb3IgPSBwcm9wcy50d29Ub25lQ29sb3IsXG4gICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMi5kZWZhdWx0KShwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwiaWNvblwiLCBcInNwaW5cIiwgXCJyb3RhdGVcIiwgXCJ0YWJJbmRleFwiLCBcIm9uQ2xpY2tcIiwgXCJ0d29Ub25lQ29sb3JcIl0pO1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoX0NvbnRleHQuZGVmYXVsdCksXG4gICAgICBfUmVhY3QkdXNlQ29udGV4dCRwcmUgPSBfUmVhY3QkdXNlQ29udGV4dC5wcmVmaXhDbHMsXG4gICAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dCRwcmUgPT09IHZvaWQgMCA/ICdhbnRpY29uJyA6IF9SZWFjdCR1c2VDb250ZXh0JHByZTtcblxuICB2YXIgY2xhc3NTdHJpbmcgPSAoMCwgX2NsYXNzbmFtZXMuZGVmYXVsdCkocHJlZml4Q2xzLCAoX2NsYXNzTmFtZXMgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChpY29uLm5hbWUpLCAhIWljb24ubmFtZSksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNwaW5cIiksICEhc3BpbiB8fCBpY29uLm5hbWUgPT09ICdsb2FkaW5nJyksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKTtcbiAgdmFyIGljb25UYWJJbmRleCA9IHRhYkluZGV4O1xuXG4gIGlmIChpY29uVGFiSW5kZXggPT09IHVuZGVmaW5lZCAmJiBvbkNsaWNrKSB7XG4gICAgaWNvblRhYkluZGV4ID0gLTE7XG4gIH1cblxuICB2YXIgc3ZnU3R5bGUgPSByb3RhdGUgPyB7XG4gICAgbXNUcmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKSxcbiAgICB0cmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKVxuICB9IDogdW5kZWZpbmVkO1xuXG4gIHZhciBfbm9ybWFsaXplVHdvVG9uZUNvbG8gPSAoMCwgX3V0aWxzLm5vcm1hbGl6ZVR3b1RvbmVDb2xvcnMpKHR3b1RvbmVDb2xvciksXG4gICAgICBfbm9ybWFsaXplVHdvVG9uZUNvbG8yID0gKDAsIF9zbGljZWRUb0FycmF5Mi5kZWZhdWx0KShfbm9ybWFsaXplVHdvVG9uZUNvbG8sIDIpLFxuICAgICAgcHJpbWFyeUNvbG9yID0gX25vcm1hbGl6ZVR3b1RvbmVDb2xvMlswXSxcbiAgICAgIHNlY29uZGFyeUNvbG9yID0gX25vcm1hbGl6ZVR3b1RvbmVDb2xvMlsxXTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIE9iamVjdC5hc3NpZ24oe1xuICAgIHJvbGU6IFwiaW1nXCIsXG4gICAgXCJhcmlhLWxhYmVsXCI6IGljb24ubmFtZVxuICB9LCByZXN0UHJvcHMsIHtcbiAgICByZWY6IHJlZixcbiAgICB0YWJJbmRleDogaWNvblRhYkluZGV4LFxuICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZ1xuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0ljb25CYXNlLmRlZmF1bHQsIHtcbiAgICBpY29uOiBpY29uLFxuICAgIHByaW1hcnlDb2xvcjogcHJpbWFyeUNvbG9yLFxuICAgIHNlY29uZGFyeUNvbG9yOiBzZWNvbmRhcnlDb2xvcixcbiAgICBzdHlsZTogc3ZnU3R5bGVcbiAgfSkpO1xufSk7XG5JY29uLmRpc3BsYXlOYW1lID0gJ0FudGRJY29uJztcbkljb24uZ2V0VHdvVG9uZUNvbG9yID0gX3R3b1RvbmVQcmltYXJ5Q29sb3IuZ2V0VHdvVG9uZUNvbG9yO1xuSWNvbi5zZXRUd29Ub25lQ29sb3IgPSBfdHdvVG9uZVByaW1hcnlDb2xvci5zZXRUd29Ub25lQ29sb3I7XG52YXIgX2RlZmF1bHQgPSBJY29uO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL3V0aWxcIik7XG4vLyBJbXBvcnQgaW1wbGVtZW50YXRpb24gY2xhc3Nlc1xuY29uc3QgQWJvcnRDb250cm9sbGVySW1wbF8xID0gcmVxdWlyZShcIi4vQWJvcnRDb250cm9sbGVySW1wbFwiKTtcbmV4cG9ydHMuQWJvcnRDb250cm9sbGVyID0gQWJvcnRDb250cm9sbGVySW1wbF8xLkFib3J0Q29udHJvbGxlckltcGw7XG5jb25zdCBBYm9ydFNpZ25hbEltcGxfMSA9IHJlcXVpcmUoXCIuL0Fib3J0U2lnbmFsSW1wbFwiKTtcbmV4cG9ydHMuQWJvcnRTaWduYWwgPSBBYm9ydFNpZ25hbEltcGxfMS5BYm9ydFNpZ25hbEltcGw7XG5jb25zdCBBYnN0cmFjdFJhbmdlSW1wbF8xID0gcmVxdWlyZShcIi4vQWJzdHJhY3RSYW5nZUltcGxcIik7XG5leHBvcnRzLkFic3RyYWN0UmFuZ2UgPSBBYnN0cmFjdFJhbmdlSW1wbF8xLkFic3RyYWN0UmFuZ2VJbXBsO1xuY29uc3QgQXR0ckltcGxfMSA9IHJlcXVpcmUoXCIuL0F0dHJJbXBsXCIpO1xuZXhwb3J0cy5BdHRyID0gQXR0ckltcGxfMS5BdHRySW1wbDtcbmNvbnN0IENEQVRBU2VjdGlvbkltcGxfMSA9IHJlcXVpcmUoXCIuL0NEQVRBU2VjdGlvbkltcGxcIik7XG5leHBvcnRzLkNEQVRBU2VjdGlvbiA9IENEQVRBU2VjdGlvbkltcGxfMS5DREFUQVNlY3Rpb25JbXBsO1xuY29uc3QgQ2hhcmFjdGVyRGF0YUltcGxfMSA9IHJlcXVpcmUoXCIuL0NoYXJhY3RlckRhdGFJbXBsXCIpO1xuZXhwb3J0cy5DaGFyYWN0ZXJEYXRhID0gQ2hhcmFjdGVyRGF0YUltcGxfMS5DaGFyYWN0ZXJEYXRhSW1wbDtcbmNvbnN0IENoaWxkTm9kZUltcGxfMSA9IHJlcXVpcmUoXCIuL0NoaWxkTm9kZUltcGxcIik7XG5jb25zdCBDb21tZW50SW1wbF8xID0gcmVxdWlyZShcIi4vQ29tbWVudEltcGxcIik7XG5leHBvcnRzLkNvbW1lbnQgPSBDb21tZW50SW1wbF8xLkNvbW1lbnRJbXBsO1xuY29uc3QgQ3VzdG9tRXZlbnRJbXBsXzEgPSByZXF1aXJlKFwiLi9DdXN0b21FdmVudEltcGxcIik7XG5leHBvcnRzLkN1c3RvbUV2ZW50ID0gQ3VzdG9tRXZlbnRJbXBsXzEuQ3VzdG9tRXZlbnRJbXBsO1xuY29uc3QgRG9jdW1lbnRGcmFnbWVudEltcGxfMSA9IHJlcXVpcmUoXCIuL0RvY3VtZW50RnJhZ21lbnRJbXBsXCIpO1xuZXhwb3J0cy5Eb2N1bWVudEZyYWdtZW50ID0gRG9jdW1lbnRGcmFnbWVudEltcGxfMS5Eb2N1bWVudEZyYWdtZW50SW1wbDtcbmNvbnN0IERvY3VtZW50SW1wbF8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRJbXBsXCIpO1xuZXhwb3J0cy5Eb2N1bWVudCA9IERvY3VtZW50SW1wbF8xLkRvY3VtZW50SW1wbDtcbmNvbnN0IERvY3VtZW50T3JTaGFkb3dSb290SW1wbF8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRPclNoYWRvd1Jvb3RJbXBsXCIpO1xuY29uc3QgRG9jdW1lbnRUeXBlSW1wbF8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRUeXBlSW1wbFwiKTtcbmV4cG9ydHMuRG9jdW1lbnRUeXBlID0gRG9jdW1lbnRUeXBlSW1wbF8xLkRvY3VtZW50VHlwZUltcGw7XG5jb25zdCBET01JbXBsXzEgPSByZXF1aXJlKFwiLi9ET01JbXBsXCIpO1xuZXhwb3J0cy5kb20gPSBET01JbXBsXzEuZG9tO1xuY29uc3QgRE9NSW1wbGVtZW50YXRpb25JbXBsXzEgPSByZXF1aXJlKFwiLi9ET01JbXBsZW1lbnRhdGlvbkltcGxcIik7XG5leHBvcnRzLkRPTUltcGxlbWVudGF0aW9uID0gRE9NSW1wbGVtZW50YXRpb25JbXBsXzEuRE9NSW1wbGVtZW50YXRpb25JbXBsO1xuY29uc3QgRE9NVG9rZW5MaXN0SW1wbF8xID0gcmVxdWlyZShcIi4vRE9NVG9rZW5MaXN0SW1wbFwiKTtcbmV4cG9ydHMuRE9NVG9rZW5MaXN0ID0gRE9NVG9rZW5MaXN0SW1wbF8xLkRPTVRva2VuTGlzdEltcGw7XG5jb25zdCBFbGVtZW50SW1wbF8xID0gcmVxdWlyZShcIi4vRWxlbWVudEltcGxcIik7XG5leHBvcnRzLkVsZW1lbnQgPSBFbGVtZW50SW1wbF8xLkVsZW1lbnRJbXBsO1xuY29uc3QgRXZlbnRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudEltcGxcIik7XG5leHBvcnRzLkV2ZW50ID0gRXZlbnRJbXBsXzEuRXZlbnRJbXBsO1xuY29uc3QgRXZlbnRUYXJnZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudFRhcmdldEltcGxcIik7XG5leHBvcnRzLkV2ZW50VGFyZ2V0ID0gRXZlbnRUYXJnZXRJbXBsXzEuRXZlbnRUYXJnZXRJbXBsO1xuY29uc3QgSFRNTENvbGxlY3Rpb25JbXBsXzEgPSByZXF1aXJlKFwiLi9IVE1MQ29sbGVjdGlvbkltcGxcIik7XG5leHBvcnRzLkhUTUxDb2xsZWN0aW9uID0gSFRNTENvbGxlY3Rpb25JbXBsXzEuSFRNTENvbGxlY3Rpb25JbXBsO1xuY29uc3QgTXV0YXRpb25PYnNlcnZlckltcGxfMSA9IHJlcXVpcmUoXCIuL011dGF0aW9uT2JzZXJ2ZXJJbXBsXCIpO1xuZXhwb3J0cy5NdXRhdGlvbk9ic2VydmVyID0gTXV0YXRpb25PYnNlcnZlckltcGxfMS5NdXRhdGlvbk9ic2VydmVySW1wbDtcbmNvbnN0IE11dGF0aW9uUmVjb3JkSW1wbF8xID0gcmVxdWlyZShcIi4vTXV0YXRpb25SZWNvcmRJbXBsXCIpO1xuZXhwb3J0cy5NdXRhdGlvblJlY29yZCA9IE11dGF0aW9uUmVjb3JkSW1wbF8xLk11dGF0aW9uUmVjb3JkSW1wbDtcbmNvbnN0IE5hbWVkTm9kZU1hcEltcGxfMSA9IHJlcXVpcmUoXCIuL05hbWVkTm9kZU1hcEltcGxcIik7XG5leHBvcnRzLk5hbWVkTm9kZU1hcCA9IE5hbWVkTm9kZU1hcEltcGxfMS5OYW1lZE5vZGVNYXBJbXBsO1xuY29uc3QgTm9kZUZpbHRlckltcGxfMSA9IHJlcXVpcmUoXCIuL05vZGVGaWx0ZXJJbXBsXCIpO1xuZXhwb3J0cy5Ob2RlRmlsdGVyID0gTm9kZUZpbHRlckltcGxfMS5Ob2RlRmlsdGVySW1wbDtcbmNvbnN0IE5vZGVJbXBsXzEgPSByZXF1aXJlKFwiLi9Ob2RlSW1wbFwiKTtcbmV4cG9ydHMuTm9kZSA9IE5vZGVJbXBsXzEuTm9kZUltcGw7XG5jb25zdCBOb2RlSXRlcmF0b3JJbXBsXzEgPSByZXF1aXJlKFwiLi9Ob2RlSXRlcmF0b3JJbXBsXCIpO1xuZXhwb3J0cy5Ob2RlSXRlcmF0b3IgPSBOb2RlSXRlcmF0b3JJbXBsXzEuTm9kZUl0ZXJhdG9ySW1wbDtcbmNvbnN0IE5vZGVMaXN0SW1wbF8xID0gcmVxdWlyZShcIi4vTm9kZUxpc3RJbXBsXCIpO1xuZXhwb3J0cy5Ob2RlTGlzdCA9IE5vZGVMaXN0SW1wbF8xLk5vZGVMaXN0SW1wbDtcbmNvbnN0IE5vZGVMaXN0U3RhdGljSW1wbF8xID0gcmVxdWlyZShcIi4vTm9kZUxpc3RTdGF0aWNJbXBsXCIpO1xuZXhwb3J0cy5Ob2RlTGlzdFN0YXRpYyA9IE5vZGVMaXN0U3RhdGljSW1wbF8xLk5vZGVMaXN0U3RhdGljSW1wbDtcbmNvbnN0IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZUltcGxfMSA9IHJlcXVpcmUoXCIuL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZUltcGxcIik7XG5jb25zdCBOb25FbGVtZW50UGFyZW50Tm9kZUltcGxfMSA9IHJlcXVpcmUoXCIuL05vbkVsZW1lbnRQYXJlbnROb2RlSW1wbFwiKTtcbmNvbnN0IFBhcmVudE5vZGVJbXBsXzEgPSByZXF1aXJlKFwiLi9QYXJlbnROb2RlSW1wbFwiKTtcbmNvbnN0IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGxfMSA9IHJlcXVpcmUoXCIuL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGxcIik7XG5leHBvcnRzLlByb2Nlc3NpbmdJbnN0cnVjdGlvbiA9IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGxfMS5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsO1xuY29uc3QgUmFuZ2VJbXBsXzEgPSByZXF1aXJlKFwiLi9SYW5nZUltcGxcIik7XG5leHBvcnRzLlJhbmdlID0gUmFuZ2VJbXBsXzEuUmFuZ2VJbXBsO1xuY29uc3QgU2hhZG93Um9vdEltcGxfMSA9IHJlcXVpcmUoXCIuL1NoYWRvd1Jvb3RJbXBsXCIpO1xuZXhwb3J0cy5TaGFkb3dSb290ID0gU2hhZG93Um9vdEltcGxfMS5TaGFkb3dSb290SW1wbDtcbmNvbnN0IFNsb3RhYmxlSW1wbF8xID0gcmVxdWlyZShcIi4vU2xvdGFibGVJbXBsXCIpO1xuY29uc3QgU3RhdGljUmFuZ2VJbXBsXzEgPSByZXF1aXJlKFwiLi9TdGF0aWNSYW5nZUltcGxcIik7XG5leHBvcnRzLlN0YXRpY1JhbmdlID0gU3RhdGljUmFuZ2VJbXBsXzEuU3RhdGljUmFuZ2VJbXBsO1xuY29uc3QgVGV4dEltcGxfMSA9IHJlcXVpcmUoXCIuL1RleHRJbXBsXCIpO1xuZXhwb3J0cy5UZXh0ID0gVGV4dEltcGxfMS5UZXh0SW1wbDtcbmNvbnN0IFRyYXZlcnNlckltcGxfMSA9IHJlcXVpcmUoXCIuL1RyYXZlcnNlckltcGxcIik7XG5leHBvcnRzLlRyYXZlcnNlciA9IFRyYXZlcnNlckltcGxfMS5UcmF2ZXJzZXJJbXBsO1xuY29uc3QgVHJlZVdhbGtlckltcGxfMSA9IHJlcXVpcmUoXCIuL1RyZWVXYWxrZXJJbXBsXCIpO1xuZXhwb3J0cy5UcmVlV2Fsa2VyID0gVHJlZVdhbGtlckltcGxfMS5UcmVlV2Fsa2VySW1wbDtcbmNvbnN0IFdpbmRvd0ltcGxfMSA9IHJlcXVpcmUoXCIuL1dpbmRvd0ltcGxcIik7XG5leHBvcnRzLldpbmRvdyA9IFdpbmRvd0ltcGxfMS5XaW5kb3dJbXBsO1xuY29uc3QgWE1MRG9jdW1lbnRJbXBsXzEgPSByZXF1aXJlKFwiLi9YTUxEb2N1bWVudEltcGxcIik7XG5leHBvcnRzLlhNTERvY3VtZW50ID0gWE1MRG9jdW1lbnRJbXBsXzEuWE1MRG9jdW1lbnRJbXBsO1xuLy8gQXBwbHkgbWl4aW5zXG4vLyBDaGlsZE5vZGVcbnV0aWxfMS5hcHBseU1peGluKEVsZW1lbnRJbXBsXzEuRWxlbWVudEltcGwsIENoaWxkTm9kZUltcGxfMS5DaGlsZE5vZGVJbXBsKTtcbnV0aWxfMS5hcHBseU1peGluKENoYXJhY3RlckRhdGFJbXBsXzEuQ2hhcmFjdGVyRGF0YUltcGwsIENoaWxkTm9kZUltcGxfMS5DaGlsZE5vZGVJbXBsKTtcbnV0aWxfMS5hcHBseU1peGluKERvY3VtZW50VHlwZUltcGxfMS5Eb2N1bWVudFR5cGVJbXBsLCBDaGlsZE5vZGVJbXBsXzEuQ2hpbGROb2RlSW1wbCk7XG4vLyBEb2N1bWVudE9yU2hhZG93Um9vdFxudXRpbF8xLmFwcGx5TWl4aW4oRG9jdW1lbnRJbXBsXzEuRG9jdW1lbnRJbXBsLCBEb2N1bWVudE9yU2hhZG93Um9vdEltcGxfMS5Eb2N1bWVudE9yU2hhZG93Um9vdEltcGwpO1xudXRpbF8xLmFwcGx5TWl4aW4oU2hhZG93Um9vdEltcGxfMS5TaGFkb3dSb290SW1wbCwgRG9jdW1lbnRPclNoYWRvd1Jvb3RJbXBsXzEuRG9jdW1lbnRPclNoYWRvd1Jvb3RJbXBsKTtcbi8vIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZVxudXRpbF8xLmFwcGx5TWl4aW4oRWxlbWVudEltcGxfMS5FbGVtZW50SW1wbCwgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlSW1wbF8xLk5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZUltcGwpO1xudXRpbF8xLmFwcGx5TWl4aW4oQ2hhcmFjdGVyRGF0YUltcGxfMS5DaGFyYWN0ZXJEYXRhSW1wbCwgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlSW1wbF8xLk5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZUltcGwpO1xuLy8gTm9uRWxlbWVudFBhcmVudE5vZGVcbnV0aWxfMS5hcHBseU1peGluKERvY3VtZW50SW1wbF8xLkRvY3VtZW50SW1wbCwgTm9uRWxlbWVudFBhcmVudE5vZGVJbXBsXzEuTm9uRWxlbWVudFBhcmVudE5vZGVJbXBsKTtcbnV0aWxfMS5hcHBseU1peGluKERvY3VtZW50RnJhZ21lbnRJbXBsXzEuRG9jdW1lbnRGcmFnbWVudEltcGwsIE5vbkVsZW1lbnRQYXJlbnROb2RlSW1wbF8xLk5vbkVsZW1lbnRQYXJlbnROb2RlSW1wbCk7XG4vLyBQYXJlbnROb2RlXG51dGlsXzEuYXBwbHlNaXhpbihEb2N1bWVudEltcGxfMS5Eb2N1bWVudEltcGwsIFBhcmVudE5vZGVJbXBsXzEuUGFyZW50Tm9kZUltcGwpO1xudXRpbF8xLmFwcGx5TWl4aW4oRG9jdW1lbnRGcmFnbWVudEltcGxfMS5Eb2N1bWVudEZyYWdtZW50SW1wbCwgUGFyZW50Tm9kZUltcGxfMS5QYXJlbnROb2RlSW1wbCk7XG51dGlsXzEuYXBwbHlNaXhpbihFbGVtZW50SW1wbF8xLkVsZW1lbnRJbXBsLCBQYXJlbnROb2RlSW1wbF8xLlBhcmVudE5vZGVJbXBsKTtcbi8vIFNsb3RhYmxlXG51dGlsXzEuYXBwbHlNaXhpbihUZXh0SW1wbF8xLlRleHRJbXBsLCBTbG90YWJsZUltcGxfMS5TbG90YWJsZUltcGwpO1xudXRpbF8xLmFwcGx5TWl4aW4oRWxlbWVudEltcGxfMS5FbGVtZW50SW1wbCwgU2xvdGFibGVJbXBsXzEuU2xvdGFibGVJbXBsKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGJhc2UgY2xhc3Mgb2YgYEVycm9yYCBvYmplY3RzIHVzZWQgYnkgdGhpcyBtb2R1bGUuXG4gKi9cbmNsYXNzIERPTUV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gbWVzc2FnZSBuYW1lXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobmFtZSwgbWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgfVxufVxuZXhwb3J0cy5ET01FeGNlcHRpb24gPSBET01FeGNlcHRpb247XG5jbGFzcyBET01TdHJpbmdTaXplRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIkRPTVN0cmluZ1NpemVFcnJvclwiLCBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLkRPTVN0cmluZ1NpemVFcnJvciA9IERPTVN0cmluZ1NpemVFcnJvcjtcbmNsYXNzIFdyb25nRG9jdW1lbnRFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiV3JvbmdEb2N1bWVudEVycm9yXCIsIFwiVGhlIG9iamVjdCBpcyBpbiB0aGUgd3JvbmcgZG9jdW1lbnQuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Xcm9uZ0RvY3VtZW50RXJyb3IgPSBXcm9uZ0RvY3VtZW50RXJyb3I7XG5jbGFzcyBOb0RhdGFBbGxvd2VkRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIk5vRGF0YUFsbG93ZWRFcnJvclwiLCBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLk5vRGF0YUFsbG93ZWRFcnJvciA9IE5vRGF0YUFsbG93ZWRFcnJvcjtcbmNsYXNzIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvclwiLCBcIlRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLk5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yID0gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I7XG5jbGFzcyBOb3RTdXBwb3J0ZWRFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiTm90U3VwcG9ydGVkRXJyb3JcIiwgXCJUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Ob3RTdXBwb3J0ZWRFcnJvciA9IE5vdFN1cHBvcnRlZEVycm9yO1xuY2xhc3MgSW5Vc2VBdHRyaWJ1dGVFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiSW5Vc2VBdHRyaWJ1dGVFcnJvclwiLCBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLkluVXNlQXR0cmlidXRlRXJyb3IgPSBJblVzZUF0dHJpYnV0ZUVycm9yO1xuY2xhc3MgSW52YWxpZFN0YXRlRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIkludmFsaWRTdGF0ZUVycm9yXCIsIFwiVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZFN0YXRlRXJyb3IgPSBJbnZhbGlkU3RhdGVFcnJvcjtcbmNsYXNzIEludmFsaWRNb2RpZmljYXRpb25FcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yXCIsIFwiVGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkIGluIHRoaXMgd2F5LiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yID0gSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yO1xuY2xhc3MgTmFtZXNwYWNlRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIk5hbWVzcGFjZUVycm9yXCIsIFwiVGhlIG9wZXJhdGlvbiBpcyBub3QgYWxsb3dlZCBieSBOYW1lc3BhY2VzIGluIFhNTC4gW1hNTE5TXSBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuTmFtZXNwYWNlRXJyb3IgPSBOYW1lc3BhY2VFcnJvcjtcbmNsYXNzIEludmFsaWRBY2Nlc3NFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiSW52YWxpZEFjY2Vzc0Vycm9yXCIsIFwiVGhlIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBvcGVyYXRpb24gb3IgYXJndW1lbnQuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5JbnZhbGlkQWNjZXNzRXJyb3IgPSBJbnZhbGlkQWNjZXNzRXJyb3I7XG5jbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIlZhbGlkYXRpb25FcnJvclwiLCBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLlZhbGlkYXRpb25FcnJvciA9IFZhbGlkYXRpb25FcnJvcjtcbmNsYXNzIFR5cGVNaXNtYXRjaEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJUeXBlTWlzbWF0Y2hFcnJvclwiLCBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLlR5cGVNaXNtYXRjaEVycm9yID0gVHlwZU1pc21hdGNoRXJyb3I7XG5jbGFzcyBTZWN1cml0eUVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJTZWN1cml0eUVycm9yXCIsIFwiVGhlIG9wZXJhdGlvbiBpcyBpbnNlY3VyZS4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLlNlY3VyaXR5RXJyb3IgPSBTZWN1cml0eUVycm9yO1xuY2xhc3MgTmV0d29ya0Vycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJOZXR3b3JrRXJyb3JcIiwgXCJBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5OZXR3b3JrRXJyb3IgPSBOZXR3b3JrRXJyb3I7XG5jbGFzcyBBYm9ydEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJBYm9ydEVycm9yXCIsIFwiVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLkFib3J0RXJyb3IgPSBBYm9ydEVycm9yO1xuY2xhc3MgVVJMTWlzbWF0Y2hFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiVVJMTWlzbWF0Y2hFcnJvclwiLCBcIlRoZSBnaXZlbiBVUkwgZG9lcyBub3QgbWF0Y2ggYW5vdGhlciBVUkwuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5VUkxNaXNtYXRjaEVycm9yID0gVVJMTWlzbWF0Y2hFcnJvcjtcbmNsYXNzIFF1b3RhRXhjZWVkZWRFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiUXVvdGFFeGNlZWRlZEVycm9yXCIsIFwiVGhlIHF1b3RhIGhhcyBiZWVuIGV4Y2VlZGVkLiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuUXVvdGFFeGNlZWRlZEVycm9yID0gUXVvdGFFeGNlZWRlZEVycm9yO1xuY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJUaW1lb3V0RXJyb3JcIiwgXCJUaGUgb3BlcmF0aW9uIHRpbWVkIG91dC4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLlRpbWVvdXRFcnJvciA9IFRpbWVvdXRFcnJvcjtcbmNsYXNzIEludmFsaWROb2RlVHlwZUVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiLCBcIlRoZSBzdXBwbGllZCBub2RlIGlzIGluY29ycmVjdCBvciBoYXMgYW4gaW5jb3JyZWN0IGFuY2VzdG9yIGZvciB0aGlzIG9wZXJhdGlvbi4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLkludmFsaWROb2RlVHlwZUVycm9yID0gSW52YWxpZE5vZGVUeXBlRXJyb3I7XG5jbGFzcyBEYXRhQ2xvbmVFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiRGF0YUNsb25lRXJyb3JcIiwgXCJUaGUgb2JqZWN0IGNhbiBub3QgYmUgY2xvbmVkLiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuRGF0YUNsb25lRXJyb3IgPSBEYXRhQ2xvbmVFcnJvcjtcbmNsYXNzIE5vdEltcGxlbWVudGVkRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIk5vdEltcGxlbWVudGVkRXJyb3JcIiwgXCJUaGUgRE9NIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhpcyBtb2R1bGUuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5Ob3RJbXBsZW1lbnRlZEVycm9yID0gTm90SW1wbGVtZW50ZWRFcnJvcjtcbmNsYXNzIEhpZXJhcmNoeVJlcXVlc3RFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3JcIiwgXCJUaGUgb3BlcmF0aW9uIHdvdWxkIHlpZWxkIGFuIGluY29ycmVjdCBub2RlIHRyZWUuIFwiICsgbWVzc2FnZSk7XG4gICAgfVxufVxuZXhwb3J0cy5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IgPSBIaWVyYXJjaHlSZXF1ZXN0RXJyb3I7XG5jbGFzcyBOb3RGb3VuZEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIk5vdEZvdW5kRXJyb3JcIiwgXCJUaGUgb2JqZWN0IGNhbiBub3QgYmUgZm91bmQgaGVyZS4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLk5vdEZvdW5kRXJyb3IgPSBOb3RGb3VuZEVycm9yO1xuY2xhc3MgSW5kZXhTaXplRXJyb3IgZXh0ZW5kcyBET01FeGNlcHRpb24ge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlIC0gZXJyb3IgbWVzc2FnZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBcIlwiKSB7XG4gICAgICAgIHN1cGVyKFwiSW5kZXhTaXplRXJyb3JcIiwgXCJUaGUgaW5kZXggaXMgbm90IGluIHRoZSBhbGxvd2VkIHJhbmdlLiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuSW5kZXhTaXplRXJyb3IgPSBJbmRleFNpemVFcnJvcjtcbmNsYXNzIFN5bnRheEVycm9yIGV4dGVuZHMgRE9NRXhjZXB0aW9uIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSAtIGVycm9yIG1lc3NhZ2VcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gXCJcIikge1xuICAgICAgICBzdXBlcihcIlN5bnRheEVycm9yXCIsIFwiVGhlIHN0cmluZyBkaWQgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBwYXR0ZXJuLiBcIiArIG1lc3NhZ2UpO1xuICAgIH1cbn1cbmV4cG9ydHMuU3ludGF4RXJyb3IgPSBTeW50YXhFcnJvcjtcbmNsYXNzIEludmFsaWRDaGFyYWN0ZXJFcnJvciBleHRlbmRzIERPTUV4Y2VwdGlvbiB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWVzc2FnZSA9IFwiXCIpIHtcbiAgICAgICAgc3VwZXIoXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiwgXCJUaGUgc3RyaW5nIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycy4gXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG5leHBvcnRzLkludmFsaWRDaGFyYWN0ZXJFcnJvciA9IEludmFsaWRDaGFyYWN0ZXJFcnJvcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURPTUV4Y2VwdGlvbi5qcy5tYXAiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTtcblxuZXhwb3J0cy5jb252ZXJ0RmllbGRzRXJyb3IgPSBjb252ZXJ0RmllbGRzRXJyb3I7XG5leHBvcnRzLmZvcm1hdCA9IGZvcm1hdDtcbmV4cG9ydHMuaXNFbXB0eVZhbHVlID0gaXNFbXB0eVZhbHVlO1xuZXhwb3J0cy5pc0VtcHR5T2JqZWN0ID0gaXNFbXB0eU9iamVjdDtcbmV4cG9ydHMuYXN5bmNNYXAgPSBhc3luY01hcDtcbmV4cG9ydHMuY29tcGxlbWVudEVycm9yID0gY29tcGxlbWVudEVycm9yO1xuZXhwb3J0cy5kZWVwTWVyZ2UgPSBkZWVwTWVyZ2U7XG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXG5cbnZhciBmb3JtYXRSZWdFeHAgPSAvJVtzZGolXS9nO1xuXG52YXIgd2FybmluZyA9IGV4cG9ydHMud2FybmluZyA9IGZ1bmN0aW9uIHdhcm5pbmcoKSB7fTtcblxuLy8gZG9uJ3QgcHJpbnQgd2FybmluZyBtZXNzYWdlIHdoZW4gaW4gcHJvZHVjdGlvbiBlbnYgb3Igbm9kZSBydW50aW1lXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gIGV4cG9ydHMud2FybmluZyA9IHdhcm5pbmcgPSBmdW5jdGlvbiB3YXJuaW5nKHR5cGUsIGVycm9ycykge1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICBpZiAoZXJyb3JzLmV2ZXJ5KGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgZSA9PT0gJ3N0cmluZyc7XG4gICAgICB9KSkge1xuICAgICAgICBjb25zb2xlLndhcm4odHlwZSwgZXJyb3JzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRGaWVsZHNFcnJvcihlcnJvcnMpIHtcbiAgaWYgKCFlcnJvcnMgfHwgIWVycm9ycy5sZW5ndGgpIHJldHVybiBudWxsO1xuICB2YXIgZmllbGRzID0ge307XG4gIGVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uIChlcnJvcikge1xuICAgIHZhciBmaWVsZCA9IGVycm9yLmZpZWxkO1xuICAgIGZpZWxkc1tmaWVsZF0gPSBmaWVsZHNbZmllbGRdIHx8IFtdO1xuICAgIGZpZWxkc1tmaWVsZF0ucHVzaChlcnJvcik7XG4gIH0pO1xuICByZXR1cm4gZmllbGRzO1xufVxuXG5mdW5jdGlvbiBmb3JtYXQoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHZhciBpID0gMTtcbiAgdmFyIGYgPSBhcmdzWzBdO1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG4gIGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3Muc2xpY2UoMSkpO1xuICB9XG4gIGlmICh0eXBlb2YgZiA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgc3RyID0gU3RyaW5nKGYpLnJlcGxhY2UoZm9ybWF0UmVnRXhwLCBmdW5jdGlvbiAoeCkge1xuICAgICAgaWYgKHggPT09ICclJScpIHtcbiAgICAgICAgcmV0dXJuICclJztcbiAgICAgIH1cbiAgICAgIGlmIChpID49IGxlbikge1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAoeCkge1xuICAgICAgICBjYXNlICclcyc6XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyhhcmdzW2krK10pO1xuICAgICAgICBjYXNlICclZCc6XG4gICAgICAgICAgcmV0dXJuIE51bWJlcihhcmdzW2krK10pO1xuICAgICAgICBjYXNlICclaic6XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pO1xuICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB4O1xuICAgICAgfVxuICAgIH0pO1xuICAgIGZvciAodmFyIGFyZyA9IGFyZ3NbaV07IGkgPCBsZW47IGFyZyA9IGFyZ3NbKytpXSkge1xuICAgICAgc3RyICs9ICcgJyArIGFyZztcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICByZXR1cm4gZjtcbn1cblxuZnVuY3Rpb24gaXNOYXRpdmVTdHJpbmdUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGUgPT09ICd1cmwnIHx8IHR5cGUgPT09ICdoZXgnIHx8IHR5cGUgPT09ICdlbWFpbCcgfHwgdHlwZSA9PT0gJ3BhdHRlcm4nO1xufVxuXG5mdW5jdGlvbiBpc0VtcHR5VmFsdWUodmFsdWUsIHR5cGUpIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZSA9PT0gJ2FycmF5JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAhdmFsdWUubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBhc3luY1BhcmFsbGVsQXJyYXkoYXJyLCBmdW5jLCBjYWxsYmFjaykge1xuICB2YXIgcmVzdWx0cyA9IFtdO1xuICB2YXIgdG90YWwgPSAwO1xuICB2YXIgYXJyTGVuZ3RoID0gYXJyLmxlbmd0aDtcblxuICBmdW5jdGlvbiBjb3VudChlcnJvcnMpIHtcbiAgICByZXN1bHRzLnB1c2guYXBwbHkocmVzdWx0cywgZXJyb3JzKTtcbiAgICB0b3RhbCsrO1xuICAgIGlmICh0b3RhbCA9PT0gYXJyTGVuZ3RoKSB7XG4gICAgICBjYWxsYmFjayhyZXN1bHRzKTtcbiAgICB9XG4gIH1cblxuICBhcnIuZm9yRWFjaChmdW5jdGlvbiAoYSkge1xuICAgIGZ1bmMoYSwgY291bnQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYXN5bmNTZXJpYWxBcnJheShhcnIsIGZ1bmMsIGNhbGxiYWNrKSB7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIG5leHQoZXJyb3JzKSB7XG4gICAgaWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKSB7XG4gICAgICBjYWxsYmFjayhlcnJvcnMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgb3JpZ2luYWwgPSBpbmRleDtcbiAgICBpbmRleCA9IGluZGV4ICsgMTtcbiAgICBpZiAob3JpZ2luYWwgPCBhcnJMZW5ndGgpIHtcbiAgICAgIGZ1bmMoYXJyW29yaWdpbmFsXSwgbmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKFtdKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KFtdKTtcbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iakFycihvYmpBcnIpIHtcbiAgdmFyIHJldCA9IFtdO1xuICBPYmplY3Qua2V5cyhvYmpBcnIpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIG9iakFycltrXSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBhc3luY01hcChvYmpBcnIsIG9wdGlvbiwgZnVuYywgY2FsbGJhY2spIHtcbiAgaWYgKG9wdGlvbi5maXJzdCkge1xuICAgIHZhciBmbGF0dGVuQXJyID0gZmxhdHRlbk9iakFycihvYmpBcnIpO1xuICAgIHJldHVybiBhc3luY1NlcmlhbEFycmF5KGZsYXR0ZW5BcnIsIGZ1bmMsIGNhbGxiYWNrKTtcbiAgfVxuICB2YXIgZmlyc3RGaWVsZHMgPSBvcHRpb24uZmlyc3RGaWVsZHMgfHwgW107XG4gIGlmIChmaXJzdEZpZWxkcyA9PT0gdHJ1ZSkge1xuICAgIGZpcnN0RmllbGRzID0gT2JqZWN0LmtleXMob2JqQXJyKTtcbiAgfVxuICB2YXIgb2JqQXJyS2V5cyA9IE9iamVjdC5rZXlzKG9iakFycik7XG4gIHZhciBvYmpBcnJMZW5ndGggPSBvYmpBcnJLZXlzLmxlbmd0aDtcbiAgdmFyIHRvdGFsID0gMDtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgdmFyIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIG5leHQgPSBmdW5jdGlvbiBuZXh0KGVycm9ycykge1xuICAgICAgcmVzdWx0cy5wdXNoLmFwcGx5KHJlc3VsdHMsIGVycm9ycyk7XG4gICAgICB0b3RhbCsrO1xuICAgICAgaWYgKHRvdGFsID09PSBvYmpBcnJMZW5ndGgpIHtcbiAgICAgICAgY2FsbGJhY2socmVzdWx0cyk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmxlbmd0aCA/IHJlamVjdCh7IGVycm9yczogcmVzdWx0cywgZmllbGRzOiBjb252ZXJ0RmllbGRzRXJyb3IocmVzdWx0cykgfSkgOiByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBvYmpBcnJLZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgdmFyIGFyciA9IG9iakFycltrZXldO1xuICAgICAgaWYgKGZpcnN0RmllbGRzLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcbiAgICAgICAgYXN5bmNTZXJpYWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXN5bmNQYXJhbGxlbEFycmF5KGFyciwgZnVuYywgbmV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBwZW5kaW5nWydjYXRjaCddKGZ1bmN0aW9uIChlKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0pO1xuICByZXR1cm4gcGVuZGluZztcbn1cblxuZnVuY3Rpb24gY29tcGxlbWVudEVycm9yKHJ1bGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvZSkge1xuICAgIGlmIChvZSAmJiBvZS5tZXNzYWdlKSB7XG4gICAgICBvZS5maWVsZCA9IG9lLmZpZWxkIHx8IHJ1bGUuZnVsbEZpZWxkO1xuICAgICAgcmV0dXJuIG9lO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogdHlwZW9mIG9lID09PSAnZnVuY3Rpb24nID8gb2UoKSA6IG9lLFxuICAgICAgZmllbGQ6IG9lLmZpZWxkIHx8IHJ1bGUuZnVsbEZpZWxkXG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZGVlcE1lcmdlKHRhcmdldCwgc291cmNlKSB7XG4gIGlmIChzb3VyY2UpIHtcbiAgICBmb3IgKHZhciBzIGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShzKSkge1xuICAgICAgICB2YXIgdmFsdWUgPSBzb3VyY2Vbc107XG4gICAgICAgIGlmICgodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZih2YWx1ZSkpID09PSAnb2JqZWN0JyAmJiBfdHlwZW9mKHRhcmdldFtzXSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGFyZ2V0W3NdID0gX2V4dGVuZHMoe30sIHRhcmdldFtzXSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtzXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0YXJnZXQ7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJDb25maWdDb25zdW1lclwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfY29udGV4dC5Db25maWdDb25zdW1lcjtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuY29uZmlnQ29uc3VtZXJQcm9wcyA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9sb2NhbGVQcm92aWRlciA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi9sb2NhbGUtcHJvdmlkZXJcIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF9jb250ZXh0ID0gcmVxdWlyZShcIi4vY29udGV4dFwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIGNvbmZpZ0NvbnN1bWVyUHJvcHMgPSBbJ2dldFBvcHVwQ29udGFpbmVyJywgJ3Jvb3RQcmVmaXhDbHMnLCAnZ2V0UHJlZml4Q2xzJywgJ3JlbmRlckVtcHR5JywgJ2NzcCcsICdhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbicsICdsb2NhbGUnLCAncGFnZUhlYWRlciddO1xuZXhwb3J0cy5jb25maWdDb25zdW1lclByb3BzID0gY29uZmlnQ29uc3VtZXJQcm9wcztcblxudmFyIENvbmZpZ1Byb3ZpZGVyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhDb25maWdQcm92aWRlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDb25maWdQcm92aWRlcik7XG5cbiAgZnVuY3Rpb24gQ29uZmlnUHJvdmlkZXIoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbmZpZ1Byb3ZpZGVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5nZXRQcmVmaXhDbHMgPSBmdW5jdGlvbiAoc3VmZml4Q2xzLCBjdXN0b21pemVQcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyRwcmVmaXhDbHMgPSBfdGhpcy5wcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMkcHJlZml4Q2xzID09PSB2b2lkIDAgPyAnYW50JyA6IF90aGlzJHByb3BzJHByZWZpeENscztcbiAgICAgIGlmIChjdXN0b21pemVQcmVmaXhDbHMpIHJldHVybiBjdXN0b21pemVQcmVmaXhDbHM7XG4gICAgICByZXR1cm4gc3VmZml4Q2xzID8gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHN1ZmZpeENscykgOiBwcmVmaXhDbHM7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlclByb3ZpZGVyID0gZnVuY3Rpb24gKGNvbnRleHQsIGxlZ2FjeUxvY2FsZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBnZXRQb3B1cENvbnRhaW5lciA9IF90aGlzJHByb3BzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgIHJlbmRlckVtcHR5ID0gX3RoaXMkcHJvcHMucmVuZGVyRW1wdHksXG4gICAgICAgICAgY3NwID0gX3RoaXMkcHJvcHMuY3NwLFxuICAgICAgICAgIGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uID0gX3RoaXMkcHJvcHMuYXV0b0luc2VydFNwYWNlSW5CdXR0b24sXG4gICAgICAgICAgbG9jYWxlID0gX3RoaXMkcHJvcHMubG9jYWxlLFxuICAgICAgICAgIHBhZ2VIZWFkZXIgPSBfdGhpcyRwcm9wcy5wYWdlSGVhZGVyO1xuXG4gICAgICB2YXIgY29uZmlnID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIGNvbnRleHQpLCB7XG4gICAgICAgIGdldFByZWZpeENsczogX3RoaXMuZ2V0UHJlZml4Q2xzLFxuICAgICAgICBjc3A6IGNzcCxcbiAgICAgICAgYXV0b0luc2VydFNwYWNlSW5CdXR0b246IGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uXG4gICAgICB9KTtcblxuICAgICAgaWYgKGdldFBvcHVwQ29udGFpbmVyKSB7XG4gICAgICAgIGNvbmZpZy5nZXRQb3B1cENvbnRhaW5lciA9IGdldFBvcHVwQ29udGFpbmVyO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVuZGVyRW1wdHkpIHtcbiAgICAgICAgY29uZmlnLnJlbmRlckVtcHR5ID0gcmVuZGVyRW1wdHk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYWdlSGVhZGVyKSB7XG4gICAgICAgIGNvbmZpZy5wYWdlSGVhZGVyID0gcGFnZUhlYWRlcjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb250ZXh0LkNvbmZpZ0NvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ1xuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2xvY2FsZVByb3ZpZGVyW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBsb2NhbGU6IGxvY2FsZSB8fCBsZWdhY3lMb2NhbGUsXG4gICAgICAgIF9BTlRfTUFSS19fOiBfbG9jYWxlUHJvdmlkZXIuQU5UX01BUktcbiAgICAgIH0sIGNoaWxkcmVuKSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDb25maWdQcm92aWRlciwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0xvY2FsZVJlY2VpdmVyW1wiZGVmYXVsdFwiXSwgbnVsbCwgZnVuY3Rpb24gKF8sIF9fLCBsZWdhY3lMb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb250ZXh0LkNvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICAgIHJldHVybiBfdGhpczIucmVuZGVyUHJvdmlkZXIoY29udGV4dCwgbGVnYWN5TG9jYWxlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ29uZmlnUHJvdmlkZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbnZhciBfZGVmYXVsdCA9IENvbmZpZ1Byb3ZpZGVyO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIik7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmaW5lUHJvcGVydHkpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICAgIGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICAgIHJldHVybiBDb25zdHJ1Y3RvcjtcbiAgfTtcbn0oKTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIik7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmaW5lUHJvcGVydHkpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0U3RhcikgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7XG4gICAgdmFyIHJlc3VsdCA9IHt9O1xuICAgIGlmIChtb2QgIT0gbnVsbCkgZm9yICh2YXIgayBpbiBtb2QpIGlmIChPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSByZXN1bHRba10gPSBtb2Rba107XG4gICAgcmVzdWx0W1wiZGVmYXVsdFwiXSA9IG1vZDtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGJhc2U2NCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9CYXNlNjRcIikpO1xuZXhwb3J0cy5iYXNlNjQgPSBiYXNlNjQ7XG5jb25zdCBieXRlID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL0J5dGVcIikpO1xuZXhwb3J0cy5ieXRlID0gYnl0ZTtcbmNvbnN0IGJ5dGVTZXF1ZW5jZSA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9CeXRlU2VxdWVuY2VcIikpO1xuZXhwb3J0cy5ieXRlU2VxdWVuY2UgPSBieXRlU2VxdWVuY2U7XG5jb25zdCBjb2RlUG9pbnQgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vQ29kZVBvaW50c1wiKSk7XG5leHBvcnRzLmNvZGVQb2ludCA9IGNvZGVQb2ludDtcbmNvbnN0IGpzb24gPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vSlNPTlwiKSk7XG5leHBvcnRzLmpzb24gPSBqc29uO1xuY29uc3QgbGlzdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9MaXN0XCIpKTtcbmV4cG9ydHMubGlzdCA9IGxpc3Q7XG5jb25zdCBtYXAgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vTWFwXCIpKTtcbmV4cG9ydHMubWFwID0gbWFwO1xuY29uc3QgbmFtZXNwYWNlID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL05hbWVzcGFjZVwiKSk7XG5leHBvcnRzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbmNvbnN0IHF1ZXVlID0gX19pbXBvcnRTdGFyKHJlcXVpcmUoXCIuL1F1ZXVlXCIpKTtcbmV4cG9ydHMucXVldWUgPSBxdWV1ZTtcbmNvbnN0IHNldCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9TZXRcIikpO1xuZXhwb3J0cy5zZXQgPSBzZXQ7XG5jb25zdCBzdGFjayA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwiLi9TdGFja1wiKSk7XG5leHBvcnRzLnN0YWNrID0gc3RhY2s7XG5jb25zdCBzdHJpbmcgPSBfX2ltcG9ydFN0YXIocmVxdWlyZShcIi4vU3RyaW5nXCIpKTtcbmV4cG9ydHMuc3RyaW5nID0gc3RyaW5nO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIERlZmluZXMgYSBXZWJJREwgYENvbnN0YCBwcm9wZXJ0eSBvbiB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvIC0gb2JqZWN0IG9uIHdoaWNoIHRvIGFkZCB0aGUgcHJvcGVydHlcbiAqIEBwYXJhbSBuYW1lIC0gcHJvcGVydHkgbmFtZVxuICogQHBhcmFtIHZhbHVlIC0gcHJvcGVydHkgdmFsdWVcbiAqL1xuZnVuY3Rpb24gaWRsX2RlZmluZUNvbnN0KG8sIG5hbWUsIHZhbHVlKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIG5hbWUsIHsgd3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCB2YWx1ZTogdmFsdWUgfSk7XG59XG5leHBvcnRzLmlkbF9kZWZpbmVDb25zdCA9IGlkbF9kZWZpbmVDb25zdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVdlYklETEFsZ29yaXRobS5qcy5tYXAiLCIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxNb3VudCgpIHtcbiAgLy8gQ2FsbCB0aGlzLmNvbnN0cnVjdG9yLmdEU0ZQIHRvIHN1cHBvcnQgc3ViLWNsYXNzZXMuXG4gIHZhciBzdGF0ZSA9IHRoaXMuY29uc3RydWN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHRoaXMucHJvcHMsIHRoaXMuc3RhdGUpO1xuICBpZiAoc3RhdGUgIT09IG51bGwgJiYgc3RhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2V0U3RhdGUoc3RhdGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gIC8vIENhbGwgdGhpcy5jb25zdHJ1Y3Rvci5nRFNGUCB0byBzdXBwb3J0IHN1Yi1jbGFzc2VzLlxuICAvLyBVc2UgdGhlIHNldFN0YXRlKCkgdXBkYXRlciB0byBlbnN1cmUgc3RhdGUgaXNuJ3Qgc3RhbGUgaW4gY2VydGFpbiBlZGdlIGNhc2VzLlxuICBmdW5jdGlvbiB1cGRhdGVyKHByZXZTdGF0ZSkge1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuY29uc3RydWN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICByZXR1cm4gc3RhdGUgIT09IG51bGwgJiYgc3RhdGUgIT09IHVuZGVmaW5lZCA/IHN0YXRlIDogbnVsbDtcbiAgfVxuICAvLyBCaW5kaW5nIFwidGhpc1wiIGlzIGltcG9ydGFudCBmb3Igc2hhbGxvdyByZW5kZXJlciBzdXBwb3J0LlxuICB0aGlzLnNldFN0YXRlKHVwZGF0ZXIuYmluZCh0aGlzKSk7XG59XG5cbmZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXh0U3RhdGUpIHtcbiAgdHJ5IHtcbiAgICB2YXIgcHJldlByb3BzID0gdGhpcy5wcm9wcztcbiAgICB2YXIgcHJldlN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICB0aGlzLnByb3BzID0gbmV4dFByb3BzO1xuICAgIHRoaXMuc3RhdGUgPSBuZXh0U3RhdGU7XG4gICAgdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMuX19yZWFjdEludGVybmFsU25hcHNob3QgPSB0aGlzLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKFxuICAgICAgcHJldlByb3BzLFxuICAgICAgcHJldlN0YXRlXG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLnByb3BzID0gcHJldlByb3BzO1xuICAgIHRoaXMuc3RhdGUgPSBwcmV2U3RhdGU7XG4gIH1cbn1cblxuLy8gUmVhY3QgbWF5IHdhcm4gYWJvdXQgY1dNL2NXUlAvY1dVIG1ldGhvZHMgYmVpbmcgZGVwcmVjYXRlZC5cbi8vIEFkZCBhIGZsYWcgdG8gc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MgZm9yIHRoaXMgc3BlY2lhbCBjYXNlLlxuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgPSB0cnVlO1xuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nID0gdHJ1ZTtcbmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyA9IHRydWU7XG5cbmZ1bmN0aW9uIHBvbHlmaWxsKENvbXBvbmVudCkge1xuICB2YXIgcHJvdG90eXBlID0gQ29tcG9uZW50LnByb3RvdHlwZTtcblxuICBpZiAoIXByb3RvdHlwZSB8fCAhcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBvbmx5IHBvbHlmaWxsIGNsYXNzIGNvbXBvbmVudHMnKTtcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBwcm90b3R5cGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuIENvbXBvbmVudDtcbiAgfVxuXG4gIC8vIElmIG5ldyBjb21wb25lbnQgQVBJcyBhcmUgZGVmaW5lZCwgXCJ1bnNhZmVcIiBsaWZlY3ljbGVzIHdvbid0IGJlIGNhbGxlZC5cbiAgLy8gRXJyb3IgaWYgYW55IG9mIHRoZXNlIGxpZmVjeWNsZXMgYXJlIHByZXNlbnQsXG4gIC8vIEJlY2F1c2UgdGhleSB3b3VsZCB3b3JrIGRpZmZlcmVudGx5IGJldHdlZW4gb2xkZXIgYW5kIG5ld2VyICgxNi4zKykgdmVyc2lvbnMgb2YgUmVhY3QuXG4gIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICB2YXIgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSA9IG51bGw7XG4gIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gbnVsbDtcbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsTW91bnROYW1lID0gJ2NvbXBvbmVudFdpbGxNb3VudCc7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHByb3RvdHlwZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICB9XG4gIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMnO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBwcm90b3R5cGUuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgfVxuICBpZiAodHlwZW9mIHByb3RvdHlwZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdjb21wb25lbnRXaWxsVXBkYXRlJztcbiAgfSBlbHNlIGlmICh0eXBlb2YgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gIH1cbiAgaWYgKFxuICAgIGZvdW5kV2lsbE1vdW50TmFtZSAhPT0gbnVsbCB8fFxuICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGwgfHxcbiAgICBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsXG4gICkge1xuICAgIHZhciBjb21wb25lbnROYW1lID0gQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lO1xuICAgIHZhciBuZXdBcGlOYW1lID1cbiAgICAgIHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gJ2dldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpJ1xuICAgICAgICA6ICdnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpJztcblxuICAgIHRocm93IEVycm9yKFxuICAgICAgJ1Vuc2FmZSBsZWdhY3kgbGlmZWN5Y2xlcyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgbmV3IGNvbXBvbmVudCBBUElzLlxcblxcbicgK1xuICAgICAgICBjb21wb25lbnROYW1lICtcbiAgICAgICAgJyB1c2VzICcgK1xuICAgICAgICBuZXdBcGlOYW1lICtcbiAgICAgICAgJyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOicgK1xuICAgICAgICAoZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsID8gJ1xcbiAgJyArIGZvdW5kV2lsbE1vdW50TmFtZSA6ICcnKSArXG4gICAgICAgIChmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lICE9PSBudWxsXG4gICAgICAgICAgPyAnXFxuICAnICsgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZVxuICAgICAgICAgIDogJycpICtcbiAgICAgICAgKGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGwgPyAnXFxuICAnICsgZm91bmRXaWxsVXBkYXRlTmFtZSA6ICcnKSArXG4gICAgICAgICdcXG5cXG5UaGUgYWJvdmUgbGlmZWN5Y2xlcyBzaG91bGQgYmUgcmVtb3ZlZC4gTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTpcXG4nICtcbiAgICAgICAgJ2h0dHBzOi8vZmIubWUvcmVhY3QtYXN5bmMtY29tcG9uZW50LWxpZmVjeWNsZS1ob29rcydcbiAgICApO1xuICB9XG5cbiAgLy8gUmVhY3QgPD0gMTYuMiBkb2VzIG5vdCBzdXBwb3J0IHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuXG4gIC8vIEFzIGEgd29ya2Fyb3VuZCwgdXNlIGNXTSBhbmQgY1dSUCB0byBpbnZva2UgdGhlIG5ldyBzdGF0aWMgbGlmZWN5Y2xlLlxuICAvLyBOZXdlciB2ZXJzaW9ucyBvZiBSZWFjdCB3aWxsIGlnbm9yZSB0aGVzZSBsaWZlY3ljbGVzIGlmIGdEU0ZQIGV4aXN0cy5cbiAgaWYgKHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcHJvdG90eXBlLmNvbXBvbmVudFdpbGxNb3VudCA9IGNvbXBvbmVudFdpbGxNb3VudDtcbiAgICBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM7XG4gIH1cblxuICAvLyBSZWFjdCA8PSAxNi4yIGRvZXMgbm90IHN1cHBvcnQgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuXG4gIC8vIEFzIGEgd29ya2Fyb3VuZCwgdXNlIGNXVSB0byBpbnZva2UgdGhlIG5ldyBsaWZlY3ljbGUuXG4gIC8vIE5ld2VyIHZlcnNpb25zIG9mIFJlYWN0IHdpbGwgaWdub3JlIHRoYXQgbGlmZWN5Y2xlIGlmIGdTQlUgZXhpc3RzLlxuICBpZiAodHlwZW9mIHByb3RvdHlwZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlb2YgcHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2Fubm90IHBvbHlmaWxsIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgZm9yIGNvbXBvbmVudHMgdGhhdCBkbyBub3QgZGVmaW5lIGNvbXBvbmVudERpZFVwZGF0ZSgpIG9uIHRoZSBwcm90b3R5cGUnXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RvdHlwZS5jb21wb25lbnRXaWxsVXBkYXRlID0gY29tcG9uZW50V2lsbFVwZGF0ZTtcblxuICAgIHZhciBjb21wb25lbnREaWRVcGRhdGUgPSBwcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlO1xuXG4gICAgcHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZVBvbHlmaWxsKFxuICAgICAgcHJldlByb3BzLFxuICAgICAgcHJldlN0YXRlLFxuICAgICAgbWF5YmVTbmFwc2hvdFxuICAgICkge1xuICAgICAgLy8gMTYuMysgd2lsbCBub3QgZXhlY3V0ZSBvdXIgd2lsbC11cGRhdGUgbWV0aG9kO1xuICAgICAgLy8gSXQgd2lsbCBwYXNzIGEgc25hcHNob3QgdmFsdWUgdG8gZGlkLXVwZGF0ZSB0aG91Z2guXG4gICAgICAvLyBPbGRlciB2ZXJzaW9ucyB3aWxsIHJlcXVpcmUgb3VyIHBvbHlmaWxsZWQgd2lsbC11cGRhdGUgdmFsdWUuXG4gICAgICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBib3RoIGNhc2VzLCBidXQgY2FuJ3QganVzdCBjaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIFwibWF5YmVTbmFwc2hvdFwiLFxuICAgICAgLy8gQmVjYXVzZSBmb3IgPD0gMTUueCB2ZXJzaW9ucyB0aGlzIG1pZ2h0IGJlIGEgXCJwcmV2Q29udGV4dFwiIG9iamVjdC5cbiAgICAgIC8vIFdlIGFsc28gY2FuJ3QganVzdCBjaGVjayBcIl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90XCIsXG4gICAgICAvLyBCZWNhdXNlIGdldC1zbmFwc2hvdCBtaWdodCByZXR1cm4gYSBmYWxzeSB2YWx1ZS5cbiAgICAgIC8vIFNvIGNoZWNrIGZvciB0aGUgZXhwbGljaXQgX19yZWFjdEludGVybmFsU25hcHNob3RGbGFnIGZsYWcgdG8gZGV0ZXJtaW5lIGJlaGF2aW9yLlxuICAgICAgdmFyIHNuYXBzaG90ID0gdGhpcy5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEZsYWdcbiAgICAgICAgPyB0aGlzLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90XG4gICAgICAgIDogbWF5YmVTbmFwc2hvdDtcblxuICAgICAgY29tcG9uZW50RGlkVXBkYXRlLmNhbGwodGhpcywgcHJldlByb3BzLCBwcmV2U3RhdGUsIHNuYXBzaG90KTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIENvbXBvbmVudDtcbn1cblxuZXhwb3J0IHsgcG9seWZpbGwgfTtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9yZXF1aXJlZCA9IHJlcXVpcmUoJy4vcmVxdWlyZWQnKTtcblxudmFyIF9yZXF1aXJlZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZXF1aXJlZCk7XG5cbnZhciBfd2hpdGVzcGFjZSA9IHJlcXVpcmUoJy4vd2hpdGVzcGFjZScpO1xuXG52YXIgX3doaXRlc3BhY2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2hpdGVzcGFjZSk7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoJy4vdHlwZScpO1xuXG52YXIgX3R5cGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdHlwZSk7XG5cbnZhciBfcmFuZ2UgPSByZXF1aXJlKCcuL3JhbmdlJyk7XG5cbnZhciBfcmFuZ2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmFuZ2UpO1xuXG52YXIgX2VudW0gPSByZXF1aXJlKCcuL2VudW0nKTtcblxudmFyIF9lbnVtMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VudW0pO1xuXG52YXIgX3BhdHRlcm4gPSByZXF1aXJlKCcuL3BhdHRlcm4nKTtcblxudmFyIF9wYXR0ZXJuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3BhdHRlcm4pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgcmVxdWlyZWQ6IF9yZXF1aXJlZDJbJ2RlZmF1bHQnXSxcbiAgd2hpdGVzcGFjZTogX3doaXRlc3BhY2UyWydkZWZhdWx0J10sXG4gIHR5cGU6IF90eXBlMlsnZGVmYXVsdCddLFxuICByYW5nZTogX3JhbmdlMlsnZGVmYXVsdCddLFxuICAnZW51bSc6IF9lbnVtMlsnZGVmYXVsdCddLFxuICBwYXR0ZXJuOiBfcGF0dGVybjJbJ2RlZmF1bHQnXVxufTsiLCJpbXBvcnQgX2FyaXR5IGZyb20gXCIuL2ludGVybmFsL19hcml0eS5qc1wiO1xuaW1wb3J0IF9jdXJyeTEgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5MS5qc1wiO1xuaW1wb3J0IF9jdXJyeTIgZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Mi5qc1wiO1xuaW1wb3J0IF9jdXJyeU4gZnJvbSBcIi4vaW50ZXJuYWwvX2N1cnJ5Ti5qc1wiO1xuLyoqXG4gKiBSZXR1cm5zIGEgY3VycmllZCBlcXVpdmFsZW50IG9mIHRoZSBwcm92aWRlZCBmdW5jdGlvbiwgd2l0aCB0aGUgc3BlY2lmaWVkXG4gKiBhcml0eS4gVGhlIGN1cnJpZWQgZnVuY3Rpb24gaGFzIHR3byB1bnVzdWFsIGNhcGFiaWxpdGllcy4gRmlyc3QsIGl0c1xuICogYXJndW1lbnRzIG5lZWRuJ3QgYmUgcHJvdmlkZWQgb25lIGF0IGEgdGltZS4gSWYgYGdgIGlzIGBSLmN1cnJ5TigzLCBmKWAsIHRoZVxuICogZm9sbG93aW5nIGFyZSBlcXVpdmFsZW50OlxuICpcbiAqICAgLSBgZygxKSgyKSgzKWBcbiAqICAgLSBgZygxKSgyLCAzKWBcbiAqICAgLSBgZygxLCAyKSgzKWBcbiAqICAgLSBgZygxLCAyLCAzKWBcbiAqXG4gKiBTZWNvbmRseSwgdGhlIHNwZWNpYWwgcGxhY2Vob2xkZXIgdmFsdWUgW2BSLl9fYF0oI19fKSBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5XG4gKiBcImdhcHNcIiwgYWxsb3dpbmcgcGFydGlhbCBhcHBsaWNhdGlvbiBvZiBhbnkgY29tYmluYXRpb24gb2YgYXJndW1lbnRzLFxuICogcmVnYXJkbGVzcyBvZiB0aGVpciBwb3NpdGlvbnMuIElmIGBnYCBpcyBhcyBhYm92ZSBhbmQgYF9gIGlzIFtgUi5fX2BdKCNfXyksXG4gKiB0aGUgZm9sbG93aW5nIGFyZSBlcXVpdmFsZW50OlxuICpcbiAqICAgLSBgZygxLCAyLCAzKWBcbiAqICAgLSBgZyhfLCAyLCAzKSgxKWBcbiAqICAgLSBgZyhfLCBfLCAzKSgxKSgyKWBcbiAqICAgLSBgZyhfLCBfLCAzKSgxLCAyKWBcbiAqICAgLSBgZyhfLCAyKSgxKSgzKWBcbiAqICAgLSBgZyhfLCAyKSgxLCAzKWBcbiAqICAgLSBgZyhfLCAyKShfLCAzKSgxKWBcbiAqXG4gKiBAZnVuY1xuICogQG1lbWJlck9mIFJcbiAqIEBzaW5jZSB2MC41LjBcbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHNpZyBOdW1iZXIgLT4gKCogLT4gYSkgLT4gKCogLT4gYSlcbiAqIEBwYXJhbSB7TnVtYmVyfSBsZW5ndGggVGhlIGFyaXR5IGZvciB0aGUgcmV0dXJuZWQgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gY3VycnkuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBuZXcsIGN1cnJpZWQgZnVuY3Rpb24uXG4gKiBAc2VlIFIuY3VycnlcbiAqIEBleGFtcGxlXG4gKlxuICogICAgICBjb25zdCBzdW1BcmdzID0gKC4uLmFyZ3MpID0+IFIuc3VtKGFyZ3MpO1xuICpcbiAqICAgICAgY29uc3QgY3VycmllZEFkZEZvdXJOdW1iZXJzID0gUi5jdXJyeU4oNCwgc3VtQXJncyk7XG4gKiAgICAgIGNvbnN0IGYgPSBjdXJyaWVkQWRkRm91ck51bWJlcnMoMSwgMik7XG4gKiAgICAgIGNvbnN0IGcgPSBmKDMpO1xuICogICAgICBnKDQpOyAvLz0+IDEwXG4gKi9cblxudmFyIGN1cnJ5TiA9XG4vKiNfX1BVUkVfXyovXG5fY3VycnkyKGZ1bmN0aW9uIGN1cnJ5TihsZW5ndGgsIGZuKSB7XG4gIGlmIChsZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gX2N1cnJ5MShmbik7XG4gIH1cblxuICByZXR1cm4gX2FyaXR5KGxlbmd0aCwgX2N1cnJ5TihsZW5ndGgsIFtdLCBmbikpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGN1cnJ5TjsiLCJpbXBvcnQgX2FyaXR5IGZyb20gXCIuL19hcml0eS5qc1wiO1xuaW1wb3J0IF9pc1BsYWNlaG9sZGVyIGZyb20gXCIuL19pc1BsYWNlaG9sZGVyLmpzXCI7XG4vKipcbiAqIEludGVybmFsIGN1cnJ5TiBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNhdGVnb3J5IEZ1bmN0aW9uXG4gKiBAcGFyYW0ge051bWJlcn0gbGVuZ3RoIFRoZSBhcml0eSBvZiB0aGUgY3VycmllZCBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7QXJyYXl9IHJlY2VpdmVkIEFuIGFycmF5IG9mIGFyZ3VtZW50cyByZWNlaXZlZCB0aHVzIGZhci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBjdXJyeS5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBUaGUgY3VycmllZCBmdW5jdGlvbi5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3VycnlOKGxlbmd0aCwgcmVjZWl2ZWQsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNvbWJpbmVkID0gW107XG4gICAgdmFyIGFyZ3NJZHggPSAwO1xuICAgIHZhciBsZWZ0ID0gbGVuZ3RoO1xuICAgIHZhciBjb21iaW5lZElkeCA9IDA7XG5cbiAgICB3aGlsZSAoY29tYmluZWRJZHggPCByZWNlaXZlZC5sZW5ndGggfHwgYXJnc0lkeCA8IGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIHZhciByZXN1bHQ7XG5cbiAgICAgIGlmIChjb21iaW5lZElkeCA8IHJlY2VpdmVkLmxlbmd0aCAmJiAoIV9pc1BsYWNlaG9sZGVyKHJlY2VpdmVkW2NvbWJpbmVkSWR4XSkgfHwgYXJnc0lkeCA+PSBhcmd1bWVudHMubGVuZ3RoKSkge1xuICAgICAgICByZXN1bHQgPSByZWNlaXZlZFtjb21iaW5lZElkeF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBhcmd1bWVudHNbYXJnc0lkeF07XG4gICAgICAgIGFyZ3NJZHggKz0gMTtcbiAgICAgIH1cblxuICAgICAgY29tYmluZWRbY29tYmluZWRJZHhdID0gcmVzdWx0O1xuXG4gICAgICBpZiAoIV9pc1BsYWNlaG9sZGVyKHJlc3VsdCkpIHtcbiAgICAgICAgbGVmdCAtPSAxO1xuICAgICAgfVxuXG4gICAgICBjb21iaW5lZElkeCArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBsZWZ0IDw9IDAgPyBmbi5hcHBseSh0aGlzLCBjb21iaW5lZCkgOiBfYXJpdHkobGVmdCwgX2N1cnJ5TihsZW5ndGgsIGNvbWJpbmVkLCBmbikpO1xuICB9O1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBhbGxJY29ucyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9saWIvZGlzdFwiKSk7XG5cbnZhciBfaWNvbnNSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zLXJlYWN0XCIpKTtcblxudmFyIF9JY29uRm9udCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vSWNvbkZvbnRcIikpO1xuXG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG52YXIgX0xvY2FsZVJlY2VpdmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbG9jYWxlLXByb3ZpZGVyL0xvY2FsZVJlY2VpdmVyXCIpKTtcblxudmFyIF90d29Ub25lUHJpbWFyeUNvbG9yID0gcmVxdWlyZShcIi4vdHdvVG9uZVByaW1hcnlDb2xvclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHsgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHsgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChpdGVyKSkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkoYXJyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG4vKiBlc2xpbnQtZGlzYWJsZSBjYW1lbGNhc2UgKi9cblxuXG4vLyBJbml0aWFsIHNldHRpbmdcbl9pY29uc1JlYWN0W1wiZGVmYXVsdFwiXS5hZGQuYXBwbHkoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCBfdG9Db25zdW1hYmxlQXJyYXkoT2JqZWN0LmtleXMoYWxsSWNvbnMpLm1hcChmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBhbGxJY29uc1trZXldO1xufSkpKTtcblxuKDAsIF90d29Ub25lUHJpbWFyeUNvbG9yLnNldFR3b1RvbmVDb2xvcikoJyMxODkwZmYnKTtcbnZhciBkZWZhdWx0VGhlbWUgPSAnb3V0bGluZWQnO1xudmFyIGRhbmdlcm91c1RoZW1lO1xuXG5mdW5jdGlvbiB1bnN0YWJsZV9DaGFuZ2VUaGVtZU9mSWNvbnNEYW5nZXJvdXNseSh0aGVtZSkge1xuICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShmYWxzZSwgJ0ljb24nLCBcIllvdSBhcmUgdXNpbmcgdGhlIHVuc3RhYmxlIG1ldGhvZCAnSWNvbi51bnN0YWJsZV9DaGFuZ2VUaGVtZU9mQWxsSWNvbnNEYW5nZXJvdXNseScsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRhbmdlcm91c1RoZW1lID0gdGhlbWU7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX0NoYW5nZURlZmF1bHRUaGVtZU9mSWNvbnModGhlbWUpIHtcbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoZmFsc2UsICdJY29uJywgXCJZb3UgYXJlIHVzaW5nIHRoZSB1bnN0YWJsZSBtZXRob2QgJ0ljb24udW5zdGFibGVfQ2hhbmdlRGVmYXVsdFRoZW1lT2ZJY29ucycsIFwiICsgXCJtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGljb25zIHdpdGggdGhlbWUgJ1wiLmNvbmNhdCh0aGVtZSwgXCInIGRpc3BsYXkgY29ycmVjdGx5LlwiKSk7XG4gIGRlZmF1bHRUaGVtZSA9IHRoZW1lO1xufVxuXG52YXIgSWNvbiA9IGZ1bmN0aW9uIEljb24ocHJvcHMpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICB0eXBlID0gcHJvcHMudHlwZSxcbiAgICAgIENvbXBvbmVudCA9IHByb3BzLmNvbXBvbmVudCxcbiAgICAgIHZpZXdCb3ggPSBwcm9wcy52aWV3Qm94LFxuICAgICAgc3BpbiA9IHByb3BzLnNwaW4sXG4gICAgICByb3RhdGUgPSBwcm9wcy5yb3RhdGUsXG4gICAgICB0YWJJbmRleCA9IHByb3BzLnRhYkluZGV4LFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgdGhlbWUgPSBwcm9wcy50aGVtZSxcbiAgICAgIHR3b1RvbmVDb2xvciA9IHByb3BzLnR3b1RvbmVDb2xvcixcbiAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwidHlwZVwiLCBcImNvbXBvbmVudFwiLCBcInZpZXdCb3hcIiwgXCJzcGluXCIsIFwicm90YXRlXCIsIFwidGFiSW5kZXhcIiwgXCJvbkNsaWNrXCIsIFwiY2hpbGRyZW5cIiwgXCJ0aGVtZVwiLCBcInR3b1RvbmVDb2xvclwiXSk7XG5cbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoQm9vbGVhbih0eXBlIHx8IENvbXBvbmVudCB8fCBjaGlsZHJlbiksICdJY29uJywgJ1Nob3VsZCBoYXZlIGB0eXBlYCBwcm9wIG9yIGBjb21wb25lbnRgIHByb3Agb3IgYGNoaWxkcmVuYC4nKTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJhbnRpY29uXCIsIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiYW50aWNvbi1cIi5jb25jYXQodHlwZSksIEJvb2xlYW4odHlwZSkpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7XG4gIHZhciBzdmdDbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJhbnRpY29uLXNwaW5cIiwgISFzcGluIHx8IHR5cGUgPT09ICdsb2FkaW5nJykpO1xuICB2YXIgc3ZnU3R5bGUgPSByb3RhdGUgPyB7XG4gICAgbXNUcmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKSxcbiAgICB0cmFuc2Zvcm06IFwicm90YXRlKFwiLmNvbmNhdChyb3RhdGUsIFwiZGVnKVwiKVxuICB9IDogdW5kZWZpbmVkO1xuXG4gIHZhciBpbm5lclN2Z1Byb3BzID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIF91dGlscy5zdmdCYXNlUHJvcHMpLCB7XG4gICAgY2xhc3NOYW1lOiBzdmdDbGFzc1N0cmluZyxcbiAgICBzdHlsZTogc3ZnU3R5bGUsXG4gICAgdmlld0JveDogdmlld0JveFxuICB9KTtcblxuICBpZiAoIXZpZXdCb3gpIHtcbiAgICBkZWxldGUgaW5uZXJTdmdQcm9wcy52aWV3Qm94O1xuICB9XG5cbiAgdmFyIHJlbmRlcklubmVyTm9kZSA9IGZ1bmN0aW9uIHJlbmRlcklubmVyTm9kZSgpIHtcbiAgICAvLyBjb21wb25lbnQgPiBjaGlsZHJlbiA+IHR5cGVcbiAgICBpZiAoQ29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBpbm5lclN2Z1Byb3BzLCBjaGlsZHJlbik7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShCb29sZWFuKHZpZXdCb3gpIHx8IFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA9PT0gMSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pICYmIFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pLnR5cGUgPT09ICd1c2UnLCAnSWNvbicsICdNYWtlIHN1cmUgdGhhdCB5b3UgcHJvdmlkZSBjb3JyZWN0IGB2aWV3Qm94YCcgKyAnIHByb3AgKGRlZmF1bHQgYDAgMCAxMDI0IDEwMjRgKSB0byB0aGUgaWNvbi4nKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCBfZXh0ZW5kcyh7fSwgaW5uZXJTdmdQcm9wcywge1xuICAgICAgICB2aWV3Qm94OiB2aWV3Qm94XG4gICAgICB9KSwgY2hpbGRyZW4pO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBjb21wdXRlZFR5cGUgPSB0eXBlO1xuXG4gICAgICBpZiAodGhlbWUpIHtcbiAgICAgICAgdmFyIHRoZW1lSW5OYW1lID0gKDAsIF91dGlscy5nZXRUaGVtZUZyb21UeXBlTmFtZSkodHlwZSk7XG4gICAgICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKCF0aGVtZUluTmFtZSB8fCB0aGVtZSA9PT0gdGhlbWVJbk5hbWUsICdJY29uJywgXCJUaGUgaWNvbiBuYW1lICdcIi5jb25jYXQodHlwZSwgXCInIGFscmVhZHkgc3BlY2lmeSBhIHRoZW1lICdcIikuY29uY2F0KHRoZW1lSW5OYW1lLCBcIicsXCIpICsgXCIgdGhlICd0aGVtZScgcHJvcCAnXCIuY29uY2F0KHRoZW1lLCBcIicgd2lsbCBiZSBpZ25vcmVkLlwiKSk7XG4gICAgICB9XG5cbiAgICAgIGNvbXB1dGVkVHlwZSA9ICgwLCBfdXRpbHMud2l0aFRoZW1lU3VmZml4KSgoMCwgX3V0aWxzLnJlbW92ZVR5cGVUaGVtZSkoKDAsIF91dGlscy5hbGlhcykoY29tcHV0ZWRUeXBlKSksIGRhbmdlcm91c1RoZW1lIHx8IHRoZW1lIHx8IGRlZmF1bHRUaGVtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25zUmVhY3RbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNsYXNzTmFtZTogc3ZnQ2xhc3NTdHJpbmcsXG4gICAgICAgIHR5cGU6IGNvbXB1dGVkVHlwZSxcbiAgICAgICAgcHJpbWFyeUNvbG9yOiB0d29Ub25lQ29sb3IsXG4gICAgICAgIHN0eWxlOiBzdmdTdHlsZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHZhciBpY29uVGFiSW5kZXggPSB0YWJJbmRleDtcblxuICBpZiAoaWNvblRhYkluZGV4ID09PSB1bmRlZmluZWQgJiYgb25DbGljaykge1xuICAgIGljb25UYWJJbmRleCA9IC0xO1xuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9Mb2NhbGVSZWNlaXZlcltcImRlZmF1bHRcIl0sIHtcbiAgICBjb21wb25lbnROYW1lOiBcIkljb25cIlxuICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaVwiLCBfZXh0ZW5kcyh7XG4gICAgICBcImFyaWEtbGFiZWxcIjogdHlwZSAmJiBcIlwiLmNvbmNhdChsb2NhbGUuaWNvbiwgXCI6IFwiKS5jb25jYXQodHlwZSlcbiAgICB9LCByZXN0UHJvcHMsIHtcbiAgICAgIHRhYkluZGV4OiBpY29uVGFiSW5kZXgsXG4gICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZ1xuICAgIH0pLCByZW5kZXJJbm5lck5vZGUoKSk7XG4gIH0pO1xufTtcblxuSWNvbi5jcmVhdGVGcm9tSWNvbmZvbnRDTiA9IF9JY29uRm9udFtcImRlZmF1bHRcIl07XG5JY29uLmdldFR3b1RvbmVDb2xvciA9IF90d29Ub25lUHJpbWFyeUNvbG9yLmdldFR3b1RvbmVDb2xvcjtcbkljb24uc2V0VHdvVG9uZUNvbG9yID0gX3R3b1RvbmVQcmltYXJ5Q29sb3Iuc2V0VHdvVG9uZUNvbG9yO1xudmFyIF9kZWZhdWx0ID0gSWNvbjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuLi9kb20vaW50ZXJmYWNlc1wiKTtcbi8qKlxuICogR2V0cyB0aGUgbmV4dCBkZXNjZW5kYW50IG9mIHRoZSBnaXZlbiBub2RlIG9mIHRoZSB0cmVlIHJvb3RlZCBhdCBgcm9vdGBcbiAqIGluIGRlcHRoLWZpcnN0IHByZS1vcmRlci5cbiAqXG4gKiBAcGFyYW0gcm9vdCAtIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZVxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGVcbiAqIEBwYXJhbSBzaGFkb3cgLSB3aGV0aGVyIHRvIHZpc2l0IHNoYWRvdyB0cmVlIG5vZGVzXG4gKi9cbmZ1bmN0aW9uIF9nZXROZXh0RGVzY2VuZGFudE5vZGUocm9vdCwgbm9kZSwgc2hhZG93ID0gZmFsc2UpIHtcbiAgICAvLyB0cmF2ZXJzZSBzaGFkb3cgdHJlZVxuICAgIGlmIChzaGFkb3cgJiYgdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUobm9kZSkgJiYgdXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChub2RlLnNoYWRvd1Jvb3QpKSB7XG4gICAgICAgIGlmIChub2RlLnNoYWRvd1Jvb3QuX2ZpcnN0Q2hpbGQpXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5zaGFkb3dSb290Ll9maXJzdENoaWxkO1xuICAgIH1cbiAgICAvLyB0cmF2ZXJzZSBjaGlsZCBub2Rlc1xuICAgIGlmIChub2RlLl9maXJzdENoaWxkKVxuICAgICAgICByZXR1cm4gbm9kZS5fZmlyc3RDaGlsZDtcbiAgICBpZiAobm9kZSA9PT0gcm9vdClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgLy8gdHJhdmVyc2Ugc2libGluZ3NcbiAgICBpZiAobm9kZS5fbmV4dFNpYmxpbmcpXG4gICAgICAgIHJldHVybiBub2RlLl9uZXh0U2libGluZztcbiAgICAvLyB0cmF2ZXJzZSBwYXJlbnQncyBuZXh0IHNpYmxpbmdcbiAgICBsZXQgcGFyZW50ID0gbm9kZS5fcGFyZW50O1xuICAgIHdoaWxlIChwYXJlbnQgJiYgcGFyZW50ICE9PSByb290KSB7XG4gICAgICAgIGlmIChwYXJlbnQuX25leHRTaWJsaW5nKVxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudC5fbmV4dFNpYmxpbmc7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5fcGFyZW50O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cbmZ1bmN0aW9uIF9lbXB0eUl0ZXJhdG9yKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgZGVzY2VuZGFudCBub2RlIG9mIHRoZSB0cmVlIHJvb3RlZCBhdCBgbm9kZWAgaW5cbiAqIGRlcHRoLWZpcnN0IHByZS1vcmRlci5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZVxuICogQHBhcmFtIHNlbGYgLSB3aGV0aGVyIHRvIGluY2x1ZGUgYG5vZGVgIGluIHRyYXZlcnNhbFxuICogQHBhcmFtIHNoYWRvdyAtIHdoZXRoZXIgdG8gdmlzaXQgc2hhZG93IHRyZWUgbm9kZXNcbiAqIEBwYXJhbSBmaWx0ZXIgLSBhIGZ1bmN0aW9uIHRvIGZpbHRlciBub2Rlc1xuICovXG5mdW5jdGlvbiB0cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUobm9kZSwgc2VsZiA9IGZhbHNlLCBzaGFkb3cgPSBmYWxzZSwgZmlsdGVyKSB7XG4gICAgbGV0IGZpcnN0Tm9kZSA9IChzZWxmID8gbm9kZSA6IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgbm9kZSwgc2hhZG93KSk7XG4gICAgd2hpbGUgKGZpcnN0Tm9kZSAmJiBmaWx0ZXIgJiYgIWZpbHRlcihmaXJzdE5vZGUpKSB7XG4gICAgICAgIGZpcnN0Tm9kZSA9IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgZmlyc3ROb2RlLCBzaGFkb3cpO1xuICAgIH1cbiAgICByZXR1cm4gZmlyc3ROb2RlO1xufVxuZXhwb3J0cy50cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUgPSB0cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGU7XG4vKipcbiAqIFJldHVybnMgdGhlIG5leHQgZGVzY2VuZGFudCBub2RlIG9mIHRoZSB0cmVlIHJvb3RlZCBhdCBgbm9kZWAgaW5cbiAqIGRlcHRoLWZpcnN0IHByZS1vcmRlci5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZVxuICogQHBhcmFtIGN1cnJlbnROb2RlIC0gY3VycmVudCBkZXNjZW5kYW50IG5vZGVcbiAqIEBwYXJhbSBzZWxmIC0gd2hldGhlciB0byBpbmNsdWRlIGBub2RlYCBpbiB0cmF2ZXJzYWxcbiAqIEBwYXJhbSBzaGFkb3cgLSB3aGV0aGVyIHRvIHZpc2l0IHNoYWRvdyB0cmVlIG5vZGVzXG4gKiBAcGFyYW0gZmlsdGVyIC0gYSBmdW5jdGlvbiB0byBmaWx0ZXIgbm9kZXNcbiAqL1xuZnVuY3Rpb24gdHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgY3VycmVudE5vZGUsIHNlbGYgPSBmYWxzZSwgc2hhZG93ID0gZmFsc2UsIGZpbHRlcikge1xuICAgIGxldCBuZXh0Tm9kZSA9IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgY3VycmVudE5vZGUsIHNoYWRvdyk7XG4gICAgd2hpbGUgKG5leHROb2RlICYmIGZpbHRlciAmJiAhZmlsdGVyKG5leHROb2RlKSkge1xuICAgICAgICBuZXh0Tm9kZSA9IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgbmV4dE5vZGUsIHNoYWRvdyk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0Tm9kZTtcbn1cbmV4cG9ydHMudHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUgPSB0cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZTtcbi8qKlxuICogVHJhdmVyc2VzIHRocm91Z2ggYWxsIGRlc2NlbmRhbnQgbm9kZXMgb2YgdGhlIHRyZWUgcm9vdGVkIGF0XG4gKiBgbm9kZWAgaW4gZGVwdGgtZmlyc3QgcHJlLW9yZGVyLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gcm9vdCBub2RlIG9mIHRoZSB0cmVlXG4gKiBAcGFyYW0gc2VsZiAtIHdoZXRoZXIgdG8gaW5jbHVkZSBgbm9kZWAgaW4gdHJhdmVyc2FsXG4gKiBAcGFyYW0gc2hhZG93IC0gd2hldGhlciB0byB2aXNpdCBzaGFkb3cgdHJlZSBub2Rlc1xuICogQHBhcmFtIGZpbHRlciAtIGEgZnVuY3Rpb24gdG8gZmlsdGVyIG5vZGVzXG4gKi9cbmZ1bmN0aW9uIHRyZWVfZ2V0RGVzY2VuZGFudE5vZGVzKG5vZGUsIHNlbGYgPSBmYWxzZSwgc2hhZG93ID0gZmFsc2UsIGZpbHRlcikge1xuICAgIGlmICghc2VsZiAmJiBub2RlLl9jaGlsZHJlbi5zaXplID09PSAwKSB7XG4gICAgICAgIHJldHVybiBfZW1wdHlJdGVyYXRvcigpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnROb2RlID0gKHNlbGYgPyBub2RlIDogX2dldE5leHREZXNjZW5kYW50Tm9kZShub2RlLCBub2RlLCBzaGFkb3cpKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudE5vZGUgJiYgZmlsdGVyICYmICFmaWx0ZXIoY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgY3VycmVudE5vZGUsIHNoYWRvdyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBkb25lOiBmYWxzZSwgdmFsdWU6IGN1cnJlbnROb2RlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IF9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgY3VycmVudE5vZGUsIHNoYWRvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG59XG5leHBvcnRzLnRyZWVfZ2V0RGVzY2VuZGFudE5vZGVzID0gdHJlZV9nZXREZXNjZW5kYW50Tm9kZXM7XG4vKipcbiAqIFRyYXZlcnNlcyB0aHJvdWdoIGFsbCBkZXNjZW5kYW50IGVsZW1lbnQgbm9kZXMgb2YgdGhlIHRyZWUgcm9vdGVkIGF0XG4gKiBgbm9kZWAgaW4gZGVwdGgtZmlyc3QgcHJlb3JkZXIuXG4gKlxuICogQHBhcmFtIG5vZGUgLSByb290IG5vZGUgb2YgdGhlIHRyZWVcbiAqIEBwYXJhbSBzZWxmIC0gd2hldGhlciB0byBpbmNsdWRlIGBub2RlYCBpbiB0cmF2ZXJzYWxcbiAqIEBwYXJhbSBzaGFkb3cgLSB3aGV0aGVyIHRvIHZpc2l0IHNoYWRvdyB0cmVlIG5vZGVzXG4gKiBAcGFyYW0gZmlsdGVyIC0gYSBmdW5jdGlvbiB0byBmaWx0ZXIgbm9kZXNcbiAqL1xuZnVuY3Rpb24gdHJlZV9nZXREZXNjZW5kYW50RWxlbWVudHMobm9kZSwgc2VsZiA9IGZhbHNlLCBzaGFkb3cgPSBmYWxzZSwgZmlsdGVyKSB7XG4gICAgaWYgKCFzZWxmICYmIG5vZGUuX2NoaWxkcmVuLnNpemUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIF9lbXB0eUl0ZXJhdG9yKCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdCA9IHRyZWVfZ2V0RGVzY2VuZGFudE5vZGVzKG5vZGUsIHNlbGYsIHNoYWRvdywgKGUpID0+IHV0aWxfMS5HdWFyZC5pc0VsZW1lbnROb2RlKGUpKVtTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBpdC5uZXh0KCkudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5leHQoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Tm9kZSAmJiBmaWx0ZXIgJiYgIWZpbHRlcihjdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gaXQubmV4dCgpLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHsgZG9uZTogZmFsc2UsIHZhbHVlOiBjdXJyZW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBpdC5uZXh0KCkudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG59XG5leHBvcnRzLnRyZWVfZ2V0RGVzY2VuZGFudEVsZW1lbnRzID0gdHJlZV9nZXREZXNjZW5kYW50RWxlbWVudHM7XG4vKipcbiAqIFRyYXZlcnNlcyB0aHJvdWdoIGFsbCBzaWJsaW5nIG5vZGVzIG9mIGBub2RlYC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZVxuICogQHBhcmFtIHNlbGYgLSB3aGV0aGVyIHRvIGluY2x1ZGUgYG5vZGVgIGluIHRyYXZlcnNhbFxuICogQHBhcmFtIGZpbHRlciAtIGEgZnVuY3Rpb24gdG8gZmlsdGVyIG5vZGVzXG4gKi9cbmZ1bmN0aW9uIHRyZWVfZ2V0U2libGluZ05vZGVzKG5vZGUsIHNlbGYgPSBmYWxzZSwgZmlsdGVyKSB7XG4gICAgaWYgKCFub2RlLl9wYXJlbnQgfHwgbm9kZS5fcGFyZW50Ll9jaGlsZHJlbi5zaXplID09PSAwKSB7XG4gICAgICAgIHJldHVybiBfZW1wdHlJdGVyYXRvcigpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IG5vZGUuX3BhcmVudCA/IG5vZGUuX3BhcmVudC5fZmlyc3RDaGlsZCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5leHQoKSB7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Tm9kZSAmJiAoZmlsdGVyICYmICFmaWx0ZXIoY3VycmVudE5vZGUpIHx8ICghc2VsZiAmJiBjdXJyZW50Tm9kZSA9PT0gbm9kZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogY3VycmVudE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUuX25leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuZXhwb3J0cy50cmVlX2dldFNpYmxpbmdOb2RlcyA9IHRyZWVfZ2V0U2libGluZ05vZGVzO1xuLyoqXG4gKiBHZXRzIHRoZSBmaXJzdCBhbmNlc3RvciBvZiBgbm9kZWAgaW4gcmV2ZXJzZSB0cmVlIG9yZGVyLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gcm9vdCBub2RlIG9mIHRoZSB0cmVlXG4gKiBAcGFyYW0gc2VsZiAtIHdoZXRoZXIgdG8gaW5jbHVkZSBgbm9kZWAgaW4gdHJhdmVyc2FsXG4gKiBAcGFyYW0gZmlsdGVyIC0gYSBmdW5jdGlvbiB0byBmaWx0ZXIgbm9kZXNcbiAqL1xuZnVuY3Rpb24gdHJlZV9nZXRGaXJzdEFuY2VzdG9yTm9kZShub2RlLCBzZWxmID0gZmFsc2UsIGZpbHRlcikge1xuICAgIGxldCBmaXJzdE5vZGUgPSBzZWxmID8gbm9kZSA6IG5vZGUuX3BhcmVudDtcbiAgICB3aGlsZSAoZmlyc3ROb2RlICYmIGZpbHRlciAmJiAhZmlsdGVyKGZpcnN0Tm9kZSkpIHtcbiAgICAgICAgZmlyc3ROb2RlID0gZmlyc3ROb2RlLl9wYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBmaXJzdE5vZGU7XG59XG5leHBvcnRzLnRyZWVfZ2V0Rmlyc3RBbmNlc3Rvck5vZGUgPSB0cmVlX2dldEZpcnN0QW5jZXN0b3JOb2RlO1xuLyoqXG4gKiBHZXRzIHRoZSBmaXJzdCBhbmNlc3RvciBvZiBgbm9kZWAgaW4gcmV2ZXJzZSB0cmVlIG9yZGVyLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gcm9vdCBub2RlIG9mIHRoZSB0cmVlXG4gKiBAcGFyYW0gc2VsZiAtIHdoZXRoZXIgdG8gaW5jbHVkZSBgbm9kZWAgaW4gdHJhdmVyc2FsXG4gKiBAcGFyYW0gZmlsdGVyIC0gYSBmdW5jdGlvbiB0byBmaWx0ZXIgbm9kZXNcbiAqL1xuZnVuY3Rpb24gdHJlZV9nZXROZXh0QW5jZXN0b3JOb2RlKG5vZGUsIGN1cnJlbnROb2RlLCBzZWxmID0gZmFsc2UsIGZpbHRlcikge1xuICAgIGxldCBuZXh0Tm9kZSA9IGN1cnJlbnROb2RlLl9wYXJlbnQ7XG4gICAgd2hpbGUgKG5leHROb2RlICYmIGZpbHRlciAmJiAhZmlsdGVyKG5leHROb2RlKSkge1xuICAgICAgICBuZXh0Tm9kZSA9IG5leHROb2RlLl9wYXJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBuZXh0Tm9kZTtcbn1cbmV4cG9ydHMudHJlZV9nZXROZXh0QW5jZXN0b3JOb2RlID0gdHJlZV9nZXROZXh0QW5jZXN0b3JOb2RlO1xuLyoqXG4gKiBUcmF2ZXJzZXMgdGhyb3VnaCBhbGwgYW5jZXN0b3Igbm9kZXMgYG5vZGVgIGluIHJldmVyc2UgdHJlZSBvcmRlci5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIHJvb3Qgbm9kZSBvZiB0aGUgdHJlZVxuICogQHBhcmFtIHNlbGYgLSB3aGV0aGVyIHRvIGluY2x1ZGUgYG5vZGVgIGluIHRyYXZlcnNhbFxuICogQHBhcmFtIGZpbHRlciAtIGEgZnVuY3Rpb24gdG8gZmlsdGVyIG5vZGVzXG4gKi9cbmZ1bmN0aW9uIHRyZWVfZ2V0QW5jZXN0b3JOb2Rlcyhub2RlLCBzZWxmID0gZmFsc2UsIGZpbHRlcikge1xuICAgIGlmICghc2VsZiAmJiAhbm9kZS5fcGFyZW50KSB7XG4gICAgICAgIHJldHVybiBfZW1wdHlJdGVyYXRvcigpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50Tm9kZSA9IHRyZWVfZ2V0Rmlyc3RBbmNlc3Rvck5vZGUobm9kZSwgc2VsZiwgZmlsdGVyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBkb25lOiBmYWxzZSwgdmFsdWU6IGN1cnJlbnROb2RlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IHRyZWVfZ2V0TmV4dEFuY2VzdG9yTm9kZShub2RlLCBjdXJyZW50Tm9kZSwgc2VsZiwgZmlsdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfTtcbn1cbmV4cG9ydHMudHJlZV9nZXRBbmNlc3Rvck5vZGVzID0gdHJlZV9nZXRBbmNlc3Rvck5vZGVzO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb21tb24gYW5jZXN0b3Igb2YgdGhlIGdpdmVuIG5vZGVzLlxuICpcbiAqIEBwYXJhbSBub2RlQSAtIGEgbm9kZVxuICogQHBhcmFtIG5vZGVCIC0gYSBub2RlXG4gKi9cbmZ1bmN0aW9uIHRyZWVfZ2V0Q29tbW9uQW5jZXN0b3Iobm9kZUEsIG5vZGVCKSB7XG4gICAgaWYgKG5vZGVBID09PSBub2RlQikge1xuICAgICAgICByZXR1cm4gbm9kZUEuX3BhcmVudDtcbiAgICB9XG4gICAgLy8gbGlzdHMgb2YgcGFyZW50IG5vZGVzXG4gICAgY29uc3QgcGFyZW50c0EgPSBbXTtcbiAgICBjb25zdCBwYXJlbnRzQiA9IFtdO1xuICAgIGxldCBwQSA9IHRyZWVfZ2V0Rmlyc3RBbmNlc3Rvck5vZGUobm9kZUEsIHRydWUpO1xuICAgIHdoaWxlIChwQSAhPT0gbnVsbCkge1xuICAgICAgICBwYXJlbnRzQS5wdXNoKHBBKTtcbiAgICAgICAgcEEgPSB0cmVlX2dldE5leHRBbmNlc3Rvck5vZGUobm9kZUEsIHBBLCB0cnVlKTtcbiAgICB9XG4gICAgbGV0IHBCID0gdHJlZV9nZXRGaXJzdEFuY2VzdG9yTm9kZShub2RlQiwgdHJ1ZSk7XG4gICAgd2hpbGUgKHBCICE9PSBudWxsKSB7XG4gICAgICAgIHBhcmVudHNCLnB1c2gocEIpO1xuICAgICAgICBwQiA9IHRyZWVfZ2V0TmV4dEFuY2VzdG9yTm9kZShub2RlQiwgcEIsIHRydWUpO1xuICAgIH1cbiAgICAvLyB3YWxrIHRocm91Z2ggcGFyZW50cyBiYWNrd2FyZHMgdW50aWwgdGhleSBkaWZmZXJcbiAgICBsZXQgcG9zMSA9IHBhcmVudHNBLmxlbmd0aDtcbiAgICBsZXQgcG9zMiA9IHBhcmVudHNCLmxlbmd0aDtcbiAgICBsZXQgcGFyZW50ID0gbnVsbDtcbiAgICBmb3IgKGxldCBpID0gTWF0aC5taW4ocG9zMSwgcG9zMik7IGkgPiAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgcGFyZW50MSA9IHBhcmVudHNBWy0tcG9zMV07XG4gICAgICAgIGNvbnN0IHBhcmVudDIgPSBwYXJlbnRzQlstLXBvczJdO1xuICAgICAgICBpZiAocGFyZW50MSAhPT0gcGFyZW50Mikge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gcGFyZW50MTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudDtcbn1cbmV4cG9ydHMudHJlZV9nZXRDb21tb25BbmNlc3RvciA9IHRyZWVfZ2V0Q29tbW9uQW5jZXN0b3I7XG4vKipcbiAqIFJldHVybnMgdGhlIG5vZGUgZm9sbG93aW5nIGBub2RlYCBpbiBkZXB0aC1maXJzdCBwcmVvcmRlci5cbiAqXG4gKiBAcGFyYW0gcm9vdCAtIHJvb3Qgb2YgdGhlIHN1YnRyZWVcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlXG4gKi9cbmZ1bmN0aW9uIHRyZWVfZ2V0Rm9sbG93aW5nTm9kZShyb290LCBub2RlKSB7XG4gICAgaWYgKG5vZGUuX2ZpcnN0Q2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuX2ZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKG5vZGUuX25leHRTaWJsaW5nKSB7XG4gICAgICAgIHJldHVybiBub2RlLl9uZXh0U2libGluZztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgICAgICBpZiAocGFyZW50ID09PSBudWxsIHx8IHBhcmVudCA9PT0gcm9vdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAocGFyZW50Ll9uZXh0U2libGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnQuX25leHRTaWJsaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZSA9IHBhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMudHJlZV9nZXRGb2xsb3dpbmdOb2RlID0gdHJlZV9nZXRGb2xsb3dpbmdOb2RlO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBub2RlIHByZWNlZGluZyBgbm9kZWAgaW4gZGVwdGgtZmlyc3QgcHJlb3JkZXIuXG4gKlxuICogQHBhcmFtIHJvb3QgLSByb290IG9mIHRoZSBzdWJ0cmVlXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICovXG5mdW5jdGlvbiB0cmVlX2dldFByZWNlZGluZ05vZGUocm9vdCwgbm9kZSkge1xuICAgIGlmIChub2RlID09PSByb290KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAobm9kZS5fcHJldmlvdXNTaWJsaW5nKSB7XG4gICAgICAgIG5vZGUgPSBub2RlLl9wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgIGlmIChub2RlLl9sYXN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHJldHVybiBub2RlLl9sYXN0Q2hpbGQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuX3BhcmVudDtcbiAgICB9XG59XG5leHBvcnRzLnRyZWVfZ2V0UHJlY2VkaW5nTm9kZSA9IHRyZWVfZ2V0UHJlY2VkaW5nTm9kZTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgbm9kZSB0cmVlIGlzIGNvbnN0cmFpbmVkLiBBIG5vZGUgdHJlZSBpc1xuICogY29uc3RyYWluZWQgYXMgZm9sbG93cywgZXhwcmVzc2VkIGFzIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlXG4gKiB0eXBlIG9mIG5vZGUgYW5kIGl0cyBhbGxvd2VkIGNoaWxkcmVuOlxuICogIC0gRG9jdW1lbnQgKEluIHRyZWUgb3JkZXIpXG4gKiAgICAqIFplcm8gb3IgbW9yZSBub2RlcyBlYWNoIG9mIHdoaWNoIGlzIFByb2Nlc3NpbmdJbnN0cnVjdGlvblxuICogICAgICBvciBDb21tZW50LlxuICogICAgKiBPcHRpb25hbGx5IG9uZSBEb2N1bWVudFR5cGUgbm9kZS5cbiAqICAgICogWmVybyBvciBtb3JlIG5vZGVzIGVhY2ggb2Ygd2hpY2ggaXMgUHJvY2Vzc2luZ0luc3RydWN0aW9uXG4gKiAgICAgIG9yIENvbW1lbnQuXG4gKiAgICAqIE9wdGlvbmFsbHkgb25lIEVsZW1lbnQgbm9kZS5cbiAqICAgICogWmVybyBvciBtb3JlIG5vZGVzIGVhY2ggb2Ygd2hpY2ggaXMgUHJvY2Vzc2luZ0luc3RydWN0aW9uXG4gKiAgICAgIG9yIENvbW1lbnQuXG4gKiAgLSBEb2N1bWVudEZyYWdtZW50LCBFbGVtZW50XG4gKiAgICAqIFplcm8gb3IgbW9yZSBub2RlcyBlYWNoIG9mIHdoaWNoIGlzIEVsZW1lbnQsIFRleHQsXG4gKiAgICAgIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgb3IgQ29tbWVudC5cbiAqICAtIERvY3VtZW50VHlwZSwgVGV4dCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBDb21tZW50XG4gKiAgICAqIE5vbmUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSB0aGUgcm9vdCBvZiB0aGUgdHJlZVxuICovXG5mdW5jdGlvbiB0cmVlX2lzQ29uc3RyYWluZWQobm9kZSkge1xuICAgIHN3aXRjaCAobm9kZS5fbm9kZVR5cGUpIHtcbiAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICBsZXQgaGFzRG9jVHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGhhc0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGlsZE5vZGUuX25vZGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGU6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzRG9jVHlwZSB8fCBoYXNFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RvY1R5cGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50OlxuICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50OlxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoaWxkTm9kZS5fbm9kZVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuUHJvY2Vzc2luZ0luc3RydWN0aW9uOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5DRGF0YTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGU6XG4gICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQ6XG4gICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbjpcbiAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGE6XG4gICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNvbW1lbnQ6XG4gICAgICAgICAgICByZXR1cm4gKCFub2RlLmhhc0NoaWxkTm9kZXMoKSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgY2hpbGROb2RlIG9mIG5vZGUuX2NoaWxkcmVuKSB7XG4gICAgICAgIC8vIHJlY3Vyc2l2ZWx5IGNoZWNrIGNoaWxkIG5vZGVzXG4gICAgICAgIGlmICghdHJlZV9pc0NvbnN0cmFpbmVkKGNoaWxkTm9kZSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0cy50cmVlX2lzQ29uc3RyYWluZWQgPSB0cmVlX2lzQ29uc3RyYWluZWQ7XG4vKipcbiAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiBhIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gdHJlZV9ub2RlTGVuZ3RoKG5vZGUpIHtcbiAgICAvKipcbiAgICAgICAgKiBUbyBkZXRlcm1pbmUgdGhlIGxlbmd0aCBvZiBhIG5vZGUgbm9kZSwgc3dpdGNoIG9uIG5vZGU6XG4gICAgICAgICogLSBEb2N1bWVudFR5cGVcbiAgICAgICAgKiBaZXJvLlxuICAgICAgICAqIC0gVGV4dFxuICAgICAgICAqIC0gUHJvY2Vzc2luZ0luc3RydWN0aW9uXG4gICAgICAgICogLSBDb21tZW50XG4gICAgICAgICogSXRzIGRhdGHigJlzIGxlbmd0aC5cbiAgICAgICAgKiAtIEFueSBvdGhlciBub2RlXG4gICAgICAgICogSXRzIG51bWJlciBvZiBjaGlsZHJlbi5cbiAgICAgICAgKi9cbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQ2hhcmFjdGVyRGF0YU5vZGUobm9kZSkpIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuX2RhdGEubGVuZ3RoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5vZGUuX2NoaWxkcmVuLnNpemU7XG4gICAgfVxufVxuZXhwb3J0cy50cmVlX25vZGVMZW5ndGggPSB0cmVlX25vZGVMZW5ndGg7XG4vKipcbiAqIERldGVybWluZXMgaWYgYSBub2RlIGlzIGVtcHR5LlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIHRyZWVfaXNFbXB0eShub2RlKSB7XG4gICAgLyoqXG4gICAgICAgICogQSBub2RlIGlzIGNvbnNpZGVyZWQgZW1wdHkgaWYgaXRzIGxlbmd0aCBpcyB6ZXJvLlxuICAgICAgICAqL1xuICAgIHJldHVybiAodHJlZV9ub2RlTGVuZ3RoKG5vZGUpID09PSAwKTtcbn1cbmV4cG9ydHMudHJlZV9pc0VtcHR5ID0gdHJlZV9pc0VtcHR5O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSByb290IG5vZGUgb2YgYSB0cmVlLiBUaGUgcm9vdCBvZiBhbiBvYmplY3QgaXMgaXRzZWxmLFxuICogaWYgaXRzIHBhcmVudCBpcyBgbnVsbGAsIG9yIGVsc2UgaXQgaXMgdGhlIHJvb3Qgb2YgaXRzIHBhcmVudC5cbiAqIFRoZSByb290IG9mIGEgdHJlZSBpcyBhbnkgb2JqZWN0IHBhcnRpY2lwYXRpbmcgaW4gdGhhdCB0cmVlXG4gKiB3aG9zZSBwYXJlbnQgaXMgYG51bGxgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlIG9mIHRoZSB0cmVlXG4gKiBAcGFyYW0gc2hhZG93IC0gYHRydWVgIHRvIHJldHVybiBzaGFkb3ctaW5jbHVkaW5nIHJvb3QsIG90aGVyd2lzZVxuICogYGZhbHNlYFxuICovXG5mdW5jdGlvbiB0cmVlX3Jvb3ROb2RlKG5vZGUsIHNoYWRvdyA9IGZhbHNlKSB7XG4gICAgLyoqXG4gICAgICAgICogVGhlIHJvb3Qgb2YgYW4gb2JqZWN0IGlzIGl0c2VsZiwgaWYgaXRzIHBhcmVudCBpcyBudWxsLCBvciBlbHNlIGl0IGlzIHRoZVxuICAgICAgICAqIHJvb3Qgb2YgaXRzIHBhcmVudC4gVGhlIHJvb3Qgb2YgYSB0cmVlIGlzIGFueSBvYmplY3QgcGFydGljaXBhdGluZyBpblxuICAgICAgICAqIHRoYXQgdHJlZSB3aG9zZSBwYXJlbnQgaXMgbnVsbC5cbiAgICAgICAgKi9cbiAgICBpZiAoc2hhZG93KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSB0cmVlX3Jvb3ROb2RlKG5vZGUsIGZhbHNlKTtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3Qocm9vdCkpXG4gICAgICAgICAgICByZXR1cm4gdHJlZV9yb290Tm9kZShyb290Ll9ob3N0LCB0cnVlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoIW5vZGUuX3BhcmVudClcbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gdHJlZV9yb290Tm9kZShub2RlLl9wYXJlbnQpO1xuICAgIH1cbn1cbmV4cG9ydHMudHJlZV9yb290Tm9kZSA9IHRyZWVfcm9vdE5vZGU7XG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBgb3RoZXJgIGlzIGEgZGVzY2VuZGFudCBvZiBgbm9kZWAuIEFuIG9iamVjdFxuICogQSBpcyBjYWxsZWQgYSBkZXNjZW5kYW50IG9mIGFuIG9iamVjdCBCLCBpZiBlaXRoZXIgQSBpcyBhIGNoaWxkXG4gKiBvZiBCIG9yIEEgaXMgYSBjaGlsZCBvZiBhbiBvYmplY3QgQyB0aGF0IGlzIGEgZGVzY2VuZGFudCBvZiBCLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlXG4gKiBAcGFyYW0gb3RoZXIgLSB0aGUgbm9kZSB0byBjaGVja1xuICogQHBhcmFtIHNlbGYgLSBpZiBgdHJ1ZWAsIHRyYXZlcnNhbCBpbmNsdWRlcyBgbm9kZWAgaXRzZWxmXG4gKiBAcGFyYW0gc2hhZG93IC0gaWYgYHRydWVgLCB0cmF2ZXJzYWwgaW5jbHVkZXMgdGhlXG4gKiBub2RlJ3MgYW5kIGl0cyBkZXNjZW5kYW50J3Mgc2hhZG93IHRyZWVzIGFzIHdlbGwuXG4gKi9cbmZ1bmN0aW9uIHRyZWVfaXNEZXNjZW5kYW50T2Yobm9kZSwgb3RoZXIsIHNlbGYgPSBmYWxzZSwgc2hhZG93ID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgICAgKiBBbiBvYmplY3QgQSBpcyBjYWxsZWQgYSBkZXNjZW5kYW50IG9mIGFuIG9iamVjdCBCLCBpZiBlaXRoZXIgQSBpcyBhXG4gICAgICAgICogY2hpbGQgb2YgQiBvciBBIGlzIGEgY2hpbGQgb2YgYW4gb2JqZWN0IEMgdGhhdCBpcyBhIGRlc2NlbmRhbnQgb2YgQi5cbiAgICAgICAgKlxuICAgICAgICAqIEFuIGluY2x1c2l2ZSBkZXNjZW5kYW50IGlzIGFuIG9iamVjdCBvciBvbmUgb2YgaXRzIGRlc2NlbmRhbnRzLlxuICAgICovXG4gICAgbGV0IGNoaWxkID0gdHJlZV9nZXRGaXJzdERlc2NlbmRhbnROb2RlKG5vZGUsIHNlbGYsIHNoYWRvdyk7XG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChjaGlsZCA9PT0gb3RoZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNoaWxkID0gdHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgY2hpbGQsIHNlbGYsIHNoYWRvdyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMudHJlZV9pc0Rlc2NlbmRhbnRPZiA9IHRyZWVfaXNEZXNjZW5kYW50T2Y7XG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBgb3RoZXJgIGlzIGFuIGFuY2VzdG9yIG9mIGBub2RlYC4gQW4gb2JqZWN0IEFcbiAqIGlzIGNhbGxlZCBhbiBhbmNlc3RvciBvZiBhbiBvYmplY3QgQiBpZiBhbmQgb25seSBpZiBCIGlzIGFcbiAqIGRlc2NlbmRhbnQgb2YgQS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICogQHBhcmFtIG90aGVyIC0gdGhlIG5vZGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBzZWxmIC0gaWYgYHRydWVgLCB0cmF2ZXJzYWwgaW5jbHVkZXMgYG5vZGVgIGl0c2VsZlxuICogQHBhcmFtIHNoYWRvdyAtIGlmIGB0cnVlYCwgdHJhdmVyc2FsIGluY2x1ZGVzIHRoZVxuICogbm9kZSdzIGFuZCBpdHMgZGVzY2VuZGFudCdzIHNoYWRvdyB0cmVlcyBhcyB3ZWxsLlxuICovXG5mdW5jdGlvbiB0cmVlX2lzQW5jZXN0b3JPZihub2RlLCBvdGhlciwgc2VsZiA9IGZhbHNlLCBzaGFkb3cgPSBmYWxzZSkge1xuICAgIGxldCBhbmNlc3RvciA9IHNlbGYgPyBub2RlIDogc2hhZG93ICYmIHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3Qobm9kZSkgP1xuICAgICAgICBub2RlLl9ob3N0IDogbm9kZS5fcGFyZW50O1xuICAgIHdoaWxlIChhbmNlc3RvciAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoYW5jZXN0b3IgPT09IG90aGVyKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGFuY2VzdG9yID0gc2hhZG93ICYmIHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3QoYW5jZXN0b3IpID9cbiAgICAgICAgICAgIGFuY2VzdG9yLl9ob3N0IDogYW5jZXN0b3IuX3BhcmVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZXhwb3J0cy50cmVlX2lzQW5jZXN0b3JPZiA9IHRyZWVfaXNBbmNlc3Rvck9mO1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYG90aGVyYCBpcyBhIGhvc3QtaW5jbHVkaW5nIGFuY2VzdG9yIG9mIGBub2RlYC4gQW5cbiAqIG9iamVjdCBBIGlzIGEgaG9zdC1pbmNsdWRpbmcgaW5jbHVzaXZlIGFuY2VzdG9yIG9mIGFuIG9iamVjdCBCLCBpZiBlaXRoZXJcbiAqIEEgaXMgYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIEIsIG9yIGlmIELigJlzIHJvb3QgaGFzIGEgbm9uLW51bGwgaG9zdCBhbmRcbiAqIEEgaXMgYSBob3N0LWluY2x1ZGluZyBpbmNsdXNpdmUgYW5jZXN0b3Igb2YgQuKAmXMgcm9vdOKAmXMgaG9zdC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICogQHBhcmFtIG90aGVyIC0gdGhlIG5vZGUgdG8gY2hlY2tcbiAqIEBwYXJhbSBzZWxmIC0gaWYgYHRydWVgLCB0cmF2ZXJzYWwgaW5jbHVkZXMgYG5vZGVgIGl0c2VsZlxuICovXG5mdW5jdGlvbiB0cmVlX2lzSG9zdEluY2x1ZGluZ0FuY2VzdG9yT2Yobm9kZSwgb3RoZXIsIHNlbGYgPSBmYWxzZSkge1xuICAgIGlmICh0cmVlX2lzQW5jZXN0b3JPZihub2RlLCBvdGhlciwgc2VsZikpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHJvb3QgPSB0cmVlX3Jvb3ROb2RlKG5vZGUpO1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudEZyYWdtZW50Tm9kZShyb290KSAmJiByb290Ll9ob3N0ICE9PSBudWxsICYmXG4gICAgICAgIHRyZWVfaXNIb3N0SW5jbHVkaW5nQW5jZXN0b3JPZihyb290Ll9ob3N0LCBvdGhlciwgc2VsZikpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMudHJlZV9pc0hvc3RJbmNsdWRpbmdBbmNlc3Rvck9mID0gdHJlZV9pc0hvc3RJbmNsdWRpbmdBbmNlc3Rvck9mO1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYG90aGVyYCBpcyBhIHNpYmxpbmcgb2YgYG5vZGVgLiBBbiBvYmplY3QgQSBpc1xuICogY2FsbGVkIGEgc2libGluZyBvZiBhbiBvYmplY3QgQiwgaWYgYW5kIG9ubHkgaWYgQiBhbmQgQSBzaGFyZVxuICogdGhlIHNhbWUgbm9uLW51bGwgcGFyZW50LlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlXG4gKiBAcGFyYW0gb3RoZXIgLSB0aGUgbm9kZSB0byBjaGVja1xuICogQHBhcmFtIHNlbGYgLSBpZiBgdHJ1ZWAsIHRyYXZlcnNhbCBpbmNsdWRlcyBgbm9kZWAgaXRzZWxmXG4gKi9cbmZ1bmN0aW9uIHRyZWVfaXNTaWJsaW5nT2Yobm9kZSwgb3RoZXIsIHNlbGYgPSBmYWxzZSkge1xuICAgIC8qKlxuICAgICAgICAqIEFuIG9iamVjdCBBIGlzIGNhbGxlZCBhIHNpYmxpbmcgb2YgYW4gb2JqZWN0IEIsIGlmIGFuZCBvbmx5IGlmIEIgYW5kIEFcbiAgICAgICAgKiBzaGFyZSB0aGUgc2FtZSBub24tbnVsbCBwYXJlbnQuXG4gICAgICAgICpcbiAgICAgICAgKiBBbiBpbmNsdXNpdmUgc2libGluZyBpcyBhbiBvYmplY3Qgb3Igb25lIG9mIGl0cyBzaWJsaW5ncy5cbiAgICAgICAgKi9cbiAgICBpZiAobm9kZSA9PT0gb3RoZXIpIHtcbiAgICAgICAgaWYgKHNlbGYpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiAobm9kZS5fcGFyZW50ICE9PSBudWxsICYmIG5vZGUuX3BhcmVudCA9PT0gb3RoZXIuX3BhcmVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMudHJlZV9pc1NpYmxpbmdPZiA9IHRyZWVfaXNTaWJsaW5nT2Y7XG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBgb3RoZXJgIGlzIHByZWNlZGluZyBgbm9kZWAuIEFuIG9iamVjdCBBIGlzXG4gKiBwcmVjZWRpbmcgYW4gb2JqZWN0IEIgaWYgQSBhbmQgQiBhcmUgaW4gdGhlIHNhbWUgdHJlZSBhbmQgQSBjb21lc1xuICogYmVmb3JlIEIgaW4gdHJlZSBvcmRlci5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICogQHBhcmFtIG90aGVyIC0gdGhlIG5vZGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gdHJlZV9pc1ByZWNlZGluZyhub2RlLCBvdGhlcikge1xuICAgIC8qKlxuICAgICAgICAqIEFuIG9iamVjdCBBIGlzIHByZWNlZGluZyBhbiBvYmplY3QgQiBpZiBBIGFuZCBCIGFyZSBpbiB0aGUgc2FtZSB0cmVlIGFuZFxuICAgICAgICAqIEEgY29tZXMgYmVmb3JlIEIgaW4gdHJlZSBvcmRlci5cbiAgICAgICAgKi9cbiAgICBjb25zdCBub2RlUG9zID0gdHJlZV90cmVlUG9zaXRpb24obm9kZSk7XG4gICAgY29uc3Qgb3RoZXJQb3MgPSB0cmVlX3RyZWVQb3NpdGlvbihvdGhlcik7XG4gICAgaWYgKG5vZGVQb3MgPT09IC0xIHx8IG90aGVyUG9zID09PSAtMSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGVsc2UgaWYgKHRyZWVfcm9vdE5vZGUobm9kZSkgIT09IHRyZWVfcm9vdE5vZGUob3RoZXIpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gb3RoZXJQb3MgPCBub2RlUG9zO1xufVxuZXhwb3J0cy50cmVlX2lzUHJlY2VkaW5nID0gdHJlZV9pc1ByZWNlZGluZztcbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGBvdGhlcmAgaXMgZm9sbG93aW5nIGBub2RlYC4gQW4gb2JqZWN0IEEgaXNcbiAqIGZvbGxvd2luZyBhbiBvYmplY3QgQiBpZiBBIGFuZCBCIGFyZSBpbiB0aGUgc2FtZSB0cmVlIGFuZCBBIGNvbWVzXG4gKiBhZnRlciBCIGluIHRyZWUgb3JkZXIuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGVcbiAqIEBwYXJhbSBvdGhlciAtIHRoZSBub2RlIHRvIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIHRyZWVfaXNGb2xsb3dpbmcobm9kZSwgb3RoZXIpIHtcbiAgICAvKipcbiAgICAgICAgKiBBbiBvYmplY3QgQSBpcyBmb2xsb3dpbmcgYW4gb2JqZWN0IEIgaWYgQSBhbmQgQiBhcmUgaW4gdGhlIHNhbWUgdHJlZSBhbmRcbiAgICAgICAgKiBBIGNvbWVzIGFmdGVyIEIgaW4gdHJlZSBvcmRlci5cbiAgICAgICAgKi9cbiAgICBjb25zdCBub2RlUG9zID0gdHJlZV90cmVlUG9zaXRpb24obm9kZSk7XG4gICAgY29uc3Qgb3RoZXJQb3MgPSB0cmVlX3RyZWVQb3NpdGlvbihvdGhlcik7XG4gICAgaWYgKG5vZGVQb3MgPT09IC0xIHx8IG90aGVyUG9zID09PSAtMSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGVsc2UgaWYgKHRyZWVfcm9vdE5vZGUobm9kZSkgIT09IHRyZWVfcm9vdE5vZGUob3RoZXIpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gb3RoZXJQb3MgPiBub2RlUG9zO1xufVxuZXhwb3J0cy50cmVlX2lzRm9sbG93aW5nID0gdHJlZV9pc0ZvbGxvd2luZztcbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGBvdGhlcmAgaXMgdGhlIHBhcmVudCBub2RlIG9mIGBub2RlYC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICogQHBhcmFtIG90aGVyIC0gdGhlIG5vZGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gdHJlZV9pc1BhcmVudE9mKG5vZGUsIG90aGVyKSB7XG4gICAgLyoqXG4gICAgICAgICogQW4gb2JqZWN0IHRoYXQgcGFydGljaXBhdGVzIGluIGEgdHJlZSBoYXMgYSBwYXJlbnQsIHdoaWNoIGlzIGVpdGhlclxuICAgICAgICAqIG51bGwgb3IgYW4gb2JqZWN0LCBhbmQgaGFzIGNoaWxkcmVuLCB3aGljaCBpcyBhbiBvcmRlcmVkIHNldCBvZiBvYmplY3RzLlxuICAgICAgICAqIEFuIG9iamVjdCBBIHdob3NlIHBhcmVudCBpcyBvYmplY3QgQiBpcyBhIGNoaWxkIG9mIEIuXG4gICAgICAgICovXG4gICAgcmV0dXJuIChub2RlLl9wYXJlbnQgPT09IG90aGVyKTtcbn1cbmV4cG9ydHMudHJlZV9pc1BhcmVudE9mID0gdHJlZV9pc1BhcmVudE9mO1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYG90aGVyYCBpcyBhIGNoaWxkIG5vZGUgb2YgYG5vZGVgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlXG4gKiBAcGFyYW0gb3RoZXIgLSB0aGUgbm9kZSB0byBjaGVja1xuICovXG5mdW5jdGlvbiB0cmVlX2lzQ2hpbGRPZihub2RlLCBvdGhlcikge1xuICAgIC8qKlxuICAgICAgICAqIEFuIG9iamVjdCB0aGF0IHBhcnRpY2lwYXRlcyBpbiBhIHRyZWUgaGFzIGEgcGFyZW50LCB3aGljaCBpcyBlaXRoZXJcbiAgICAgICAgKiBudWxsIG9yIGFuIG9iamVjdCwgYW5kIGhhcyBjaGlsZHJlbiwgd2hpY2ggaXMgYW4gb3JkZXJlZCBzZXQgb2Ygb2JqZWN0cy5cbiAgICAgICAgKiBBbiBvYmplY3QgQSB3aG9zZSBwYXJlbnQgaXMgb2JqZWN0IEIgaXMgYSBjaGlsZCBvZiBCLlxuICAgICAgICAqL1xuICAgIHJldHVybiAob3RoZXIuX3BhcmVudCA9PT0gbm9kZSk7XG59XG5leHBvcnRzLnRyZWVfaXNDaGlsZE9mID0gdHJlZV9pc0NoaWxkT2Y7XG4vKipcbiAqIFJldHVybnMgdGhlIHByZXZpb3VzIHNpYmxpbmcgbm9kZSBvZiBgbm9kZWAgb3IgbnVsbCBpZiBpdCBoYXMgbm9cbiAqIHByZWNlZGluZyBzaWJsaW5nLlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKi9cbmZ1bmN0aW9uIHRyZWVfcHJldmlvdXNTaWJsaW5nKG5vZGUpIHtcbiAgICAvKipcbiAgICAgICAgKiBUaGUgcHJldmlvdXMgc2libGluZyBvZiBhbiBvYmplY3QgaXMgaXRzIGZpcnN0IHByZWNlZGluZyBzaWJsaW5nIG9yIG51bGxcbiAgICAgICAgKiBpZiBpdCBoYXMgbm8gcHJlY2VkaW5nIHNpYmxpbmcuXG4gICAgICAgICovXG4gICAgcmV0dXJuIG5vZGUuX3ByZXZpb3VzU2libGluZztcbn1cbmV4cG9ydHMudHJlZV9wcmV2aW91c1NpYmxpbmcgPSB0cmVlX3ByZXZpb3VzU2libGluZztcbi8qKlxuICogUmV0dXJucyB0aGUgbmV4dCBzaWJsaW5nIG5vZGUgb2YgYG5vZGVgIG9yIG51bGwgaWYgaXQgaGFzIG5vXG4gKiBmb2xsb3dpbmcgc2libGluZy5cbiAqXG4gKiBAcGFyYW0gbm9kZVxuICovXG5mdW5jdGlvbiB0cmVlX25leHRTaWJsaW5nKG5vZGUpIHtcbiAgICAvKipcbiAgICAgICAgKiBUaGUgbmV4dCBzaWJsaW5nIG9mIGFuIG9iamVjdCBpcyBpdHMgZmlyc3QgZm9sbG93aW5nIHNpYmxpbmcgb3IgbnVsbFxuICAgICAgICAqIGlmIGl0IGhhcyBubyBmb2xsb3dpbmcgc2libGluZy5cbiAgICAgICAgKi9cbiAgICByZXR1cm4gbm9kZS5fbmV4dFNpYmxpbmc7XG59XG5leHBvcnRzLnRyZWVfbmV4dFNpYmxpbmcgPSB0cmVlX25leHRTaWJsaW5nO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCBjaGlsZCBub2RlIG9mIGBub2RlYCBvciBudWxsIGlmIGl0IGhhcyBub1xuICogY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIG5vZGVcbiAqL1xuZnVuY3Rpb24gdHJlZV9maXJzdENoaWxkKG5vZGUpIHtcbiAgICAvKipcbiAgICAgICAgKiBUaGUgZmlyc3QgY2hpbGQgb2YgYW4gb2JqZWN0IGlzIGl0cyBmaXJzdCBjaGlsZCBvciBudWxsIGlmIGl0IGhhcyBub1xuICAgICAgICAqIGNoaWxkcmVuLlxuICAgICAgICAqL1xuICAgIHJldHVybiBub2RlLl9maXJzdENoaWxkO1xufVxuZXhwb3J0cy50cmVlX2ZpcnN0Q2hpbGQgPSB0cmVlX2ZpcnN0Q2hpbGQ7XG4vKipcbiAqIFJldHVybnMgdGhlIGxhc3QgY2hpbGQgbm9kZSBvZiBgbm9kZWAgb3IgbnVsbCBpZiBpdCBoYXMgbm9cbiAqIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSBub2RlXG4gKi9cbmZ1bmN0aW9uIHRyZWVfbGFzdENoaWxkKG5vZGUpIHtcbiAgICAvKipcbiAgICAgICAgKiBUaGUgbGFzdCBjaGlsZCBvZiBhbiBvYmplY3QgaXMgaXRzIGxhc3QgY2hpbGQgb3IgbnVsbCBpZiBpdCBoYXMgbm9cbiAgICAgICAgKiBjaGlsZHJlbi5cbiAgICAgICAgKi9cbiAgICByZXR1cm4gbm9kZS5fbGFzdENoaWxkO1xufVxuZXhwb3J0cy50cmVlX2xhc3RDaGlsZCA9IHRyZWVfbGFzdENoaWxkO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSB6ZXJvLWJhc2VkIGluZGV4IG9mIGBub2RlYCB3aGVuIGNvdW50ZWQgcHJlb3JkZXIgaW5cbiAqIHRoZSB0cmVlIHJvb3RlZCBhdCBgcm9vdGAuIFJldHVybnMgYC0xYCBpZiBgbm9kZWAgaXMgbm90IGluXG4gKiB0aGUgdHJlZS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIHRoZSBub2RlIHRvIGdldCB0aGUgaW5kZXggb2ZcbiAqL1xuZnVuY3Rpb24gdHJlZV90cmVlUG9zaXRpb24obm9kZSkge1xuICAgIGNvbnN0IHJvb3QgPSB0cmVlX3Jvb3ROb2RlKG5vZGUpO1xuICAgIGxldCBwb3MgPSAwO1xuICAgIGxldCBjaGlsZE5vZGUgPSB0cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUocm9vdCk7XG4gICAgd2hpbGUgKGNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBwb3MrKztcbiAgICAgICAgaWYgKGNoaWxkTm9kZSA9PT0gbm9kZSlcbiAgICAgICAgICAgIHJldHVybiBwb3M7XG4gICAgICAgIGNoaWxkTm9kZSA9IHRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlKHJvb3QsIGNoaWxkTm9kZSk7XG4gICAgfVxuICAgIHJldHVybiAtMTtcbn1cbmV4cG9ydHMudHJlZV90cmVlUG9zaXRpb24gPSB0cmVlX3RyZWVQb3NpdGlvbjtcbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgaW5kZXggb2YgYG5vZGVgLiBUaGUgaW5kZXggb2YgYW4gb2JqZWN0IGlzIGl0cyBudW1iZXIgb2ZcbiAqIHByZWNlZGluZyBzaWJsaW5ncywgb3IgMCBpZiBpdCBoYXMgbm9uZS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICogQHBhcmFtIG90aGVyIC0gdGhlIG5vZGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gdHJlZV9pbmRleChub2RlKSB7XG4gICAgLyoqXG4gICAgICAgICogVGhlIGluZGV4IG9mIGFuIG9iamVjdCBpcyBpdHMgbnVtYmVyIG9mIHByZWNlZGluZyBzaWJsaW5ncywgb3IgMCBpZiBpdFxuICAgICAgICAqIGhhcyBub25lLlxuICAgICAgICAqL1xuICAgIGxldCBuID0gMDtcbiAgICB3aGlsZSAobm9kZS5fcHJldmlvdXNTaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgIG4rKztcbiAgICAgICAgbm9kZSA9IG5vZGUuX3ByZXZpb3VzU2libGluZztcbiAgICB9XG4gICAgcmV0dXJuIG47XG59XG5leHBvcnRzLnRyZWVfaW5kZXggPSB0cmVlX2luZGV4O1xuLyoqXG4gKiBSZXRhcmdldHMgYW4gb2JqZWN0IGFnYWluc3QgYW5vdGhlciBvYmplY3QuXG4gKlxuICogQHBhcmFtIGEgLSBhbiBvYmplY3QgdG8gcmV0YXJnZXRcbiAqIEBwYXJhbSBiIC0gYW4gb2JqZWN0IHRvIHJldGFyZ2V0IGFnYWluc3RcbiAqL1xuZnVuY3Rpb24gdHJlZV9yZXRhcmdldChhLCBiKSB7XG4gICAgLyoqXG4gICAgICAgICogVG8gcmV0YXJnZXQgYW4gb2JqZWN0IEEgYWdhaW5zdCBhbiBvYmplY3QgQiwgcmVwZWF0IHRoZXNlIHN0ZXBzIHVudGlsXG4gICAgICAgICogdGhleSByZXR1cm4gYW4gb2JqZWN0OlxuICAgICAgICAqIDEuIElmIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWVcbiAgICAgICAgKiAtIEEgaXMgbm90IGEgbm9kZVxuICAgICAgICAqIC0gQSdzIHJvb3QgaXMgbm90IGEgc2hhZG93IHJvb3RcbiAgICAgICAgKiAtIEIgaXMgYSBub2RlIGFuZCBBJ3Mgcm9vdCBpcyBhIHNoYWRvdy1pbmNsdWRpbmcgaW5jbHVzaXZlIGFuY2VzdG9yXG4gICAgICAgICogb2YgQlxuICAgICAgICAqIHRoZW4gcmV0dXJuIEEuXG4gICAgICAgICogMi4gU2V0IEEgdG8gQSdzIHJvb3QncyBob3N0LlxuICAgICAgICAqL1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGlmICghYSB8fCAhdXRpbF8xLkd1YXJkLmlzTm9kZShhKSkge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm9vdE9mQSA9IHRyZWVfcm9vdE5vZGUoYSk7XG4gICAgICAgIGlmICghdXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChyb290T2ZBKSkge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGIgJiYgdXRpbF8xLkd1YXJkLmlzTm9kZShiKSAmJiB0cmVlX2lzQW5jZXN0b3JPZihyb290T2ZBLCBiLCB0cnVlLCB0cnVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgYSA9IHJvb3RPZkEuaG9zdDtcbiAgICB9XG59XG5leHBvcnRzLnRyZWVfcmV0YXJnZXQgPSB0cmVlX3JldGFyZ2V0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJlZUFsZ29yaXRobS5qcy5tYXAiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSBcIi4vZGVmaW5lUHJvcGVydHkuanNcIjtcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuXG4gICAgaWYgKGVudW1lcmFibGVPbmx5KSB7XG4gICAgICBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfb2JqZWN0U3ByZWFkMih0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTtcblxuICAgIGlmIChpICUgMikge1xuICAgICAgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gIF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7XG4gICAgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTtcbiAgfTtcbiAgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIjtcbmltcG9ydCBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQgZnJvbSBcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7XG4gIGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7XG4gICAgcmV0dXJuIGNhbGw7XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59IiwiaW1wb3J0IGdldFByb3RvdHlwZU9mIGZyb20gXCIuL2dldFByb3RvdHlwZU9mLmpzXCI7XG5pbXBvcnQgaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IGZyb20gXCIuL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qc1wiO1xuaW1wb3J0IHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSBcIi4vcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHtcbiAgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBpc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkge1xuICAgIHZhciBTdXBlciA9IGdldFByb3RvdHlwZU9mKERlcml2ZWQpLFxuICAgICAgICByZXN1bHQ7XG5cbiAgICBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkge1xuICAgICAgdmFyIE5ld1RhcmdldCA9IGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICAgICAgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpO1xuICB9O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7XG4gIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTtcbiAgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTtcblxuICB0cnkge1xuICAgIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLCBbXSwgZnVuY3Rpb24gKCkge30pKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSIsIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbnZhciB3YXJuZWQgPSB7fTtcbmV4cG9ydCBmdW5jdGlvbiB3YXJuaW5nKHZhbGlkLCBtZXNzYWdlKSB7XG4gIC8vIFN1cHBvcnQgdWdsaWZ5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICF2YWxpZCAmJiBjb25zb2xlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiV2FybmluZzogXCIuY29uY2F0KG1lc3NhZ2UpKTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIG5vdGUodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcIk5vdGU6IFwiLmNvbmNhdChtZXNzYWdlKSk7XG4gIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNldFdhcm5lZCgpIHtcbiAgd2FybmVkID0ge307XG59XG5leHBvcnQgZnVuY3Rpb24gY2FsbChtZXRob2QsIHZhbGlkLCBtZXNzYWdlKSB7XG4gIGlmICghdmFsaWQgJiYgIXdhcm5lZFttZXNzYWdlXSkge1xuICAgIG1ldGhvZChmYWxzZSwgbWVzc2FnZSk7XG4gICAgd2FybmVkW21lc3NhZ2VdID0gdHJ1ZTtcbiAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIHdhcm5pbmdPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwod2FybmluZywgdmFsaWQsIG1lc3NhZ2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG5vdGVPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwobm90ZSwgdmFsaWQsIG1lc3NhZ2UpO1xufVxuZXhwb3J0IGRlZmF1bHQgd2FybmluZ09uY2U7XG4vKiBlc2xpbnQtZW5hYmxlICovIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX3R5cGVvZihvYmopO1xufSIsImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCB7IGlzTWVtbyB9IGZyb20gJ3JlYWN0LWlzJztcbmV4cG9ydCBmdW5jdGlvbiBmaWxsUmVmKHJlZiwgbm9kZSkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZihub2RlKTtcbiAgfSBlbHNlIGlmIChfdHlwZW9mKHJlZikgPT09ICdvYmplY3QnICYmIHJlZiAmJiAnY3VycmVudCcgaW4gcmVmKSB7XG4gICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICB9XG59XG4vKipcbiAqIE1lcmdlIHJlZnMgaW50byBvbmUgcmVmIGZ1bmN0aW9uIHRvIHN1cHBvcnQgcmVmIHBhc3NpbmcuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2VSZWYoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZWZzLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0pO1xuICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRSZWYobm9kZU9yQ29tcG9uZW50KSB7XG4gIHZhciBfdHlwZSRwcm90b3R5cGUsIF9ub2RlT3JDb21wb25lbnQkcHJvdDtcblxuICB2YXIgdHlwZSA9IGlzTWVtbyhub2RlT3JDb21wb25lbnQpID8gbm9kZU9yQ29tcG9uZW50LnR5cGUudHlwZSA6IG5vZGVPckNvbXBvbmVudC50eXBlOyAvLyBGdW5jdGlvbiBjb21wb25lbnQgbm9kZVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhKChfdHlwZSRwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZSkgPT09IG51bGwgfHwgX3R5cGUkcHJvdG90eXBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHlwZSRwcm90b3R5cGUucmVuZGVyKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBDbGFzcyBjb21wb25lbnRcblxuXG4gIGlmICh0eXBlb2Ygbm9kZU9yQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmICEoKF9ub2RlT3JDb21wb25lbnQkcHJvdCA9IG5vZGVPckNvbXBvbmVudC5wcm90b3R5cGUpID09PSBudWxsIHx8IF9ub2RlT3JDb21wb25lbnQkcHJvdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGVPckNvbXBvbmVudCRwcm90LnJlbmRlcikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbi8qIGVzbGludC1lbmFibGUgKi8iLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBmaW5kRE9NTm9kZSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vZmluZERPTU5vZGVcIjtcbmltcG9ydCB0b0FycmF5IGZyb20gXCJyYy11dGlsL2VzL0NoaWxkcmVuL3RvQXJyYXlcIjtcbmltcG9ydCB3YXJuaW5nIGZyb20gXCJyYy11dGlsL2VzL3dhcm5pbmdcIjtcbmltcG9ydCB7IGNvbXBvc2VSZWYsIHN1cHBvcnRSZWYgfSBmcm9tIFwicmMtdXRpbC9lcy9yZWZcIjtcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICdyZXNpemUtb2JzZXJ2ZXItcG9seWZpbGwnO1xudmFyIElOVEVSTkFMX1BSRUZJWF9LRVkgPSAncmMtb2JzZXJ2ZXIta2V5JzsgLy8gU3RpbGwgbmVlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggUmVhY3QgMTUsIHdlIHVzZSBjbGFzcyBjb21wb25lbnQgaGVyZVxuXG52YXIgUmVhY3RSZXNpemVPYnNlcnZlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUmVhY3RSZXNpemVPYnNlcnZlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihSZWFjdFJlc2l6ZU9ic2VydmVyKTtcblxuICBmdW5jdGlvbiBSZWFjdFJlc2l6ZU9ic2VydmVyKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZWFjdFJlc2l6ZU9ic2VydmVyKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgX3RoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgIF90aGlzLmNoaWxkTm9kZSA9IG51bGw7XG4gICAgX3RoaXMuY3VycmVudEVsZW1lbnQgPSBudWxsO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBvZmZzZXRIZWlnaHQ6IDAsXG4gICAgICBvZmZzZXRXaWR0aDogMFxuICAgIH07XG5cbiAgICBfdGhpcy5vblJlc2l6ZSA9IGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgICB2YXIgb25SZXNpemUgPSBfdGhpcy5wcm9wcy5vblJlc2l6ZTtcbiAgICAgIHZhciB0YXJnZXQgPSBlbnRyaWVzWzBdLnRhcmdldDtcblxuICAgICAgdmFyIF90YXJnZXQkZ2V0Qm91bmRpbmdDbCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICB3aWR0aCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC53aWR0aCxcbiAgICAgICAgICBoZWlnaHQgPSBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wuaGVpZ2h0O1xuXG4gICAgICB2YXIgb2Zmc2V0V2lkdGggPSB0YXJnZXQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgb2Zmc2V0SGVpZ2h0ID0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgIC8qKlxuICAgICAgICogUmVzaXplIG9ic2VydmVyIHRyaWdnZXIgd2hlbiBjb250ZW50IHNpemUgY2hhbmdlZC5cbiAgICAgICAqIEluIG1vc3QgY2FzZSB3ZSBqdXN0IGNhcmUgYWJvdXQgZWxlbWVudCBzaXplLFxuICAgICAgICogbGV0J3MgdXNlIGBib3VuZGFyeWAgaW5zdGVhZCBvZiBgY29udGVudFJlY3RgIGhlcmUgdG8gYXZvaWQgc2hha2luZy5cbiAgICAgICAqL1xuXG4gICAgICB2YXIgZml4ZWRXaWR0aCA9IE1hdGguZmxvb3Iod2lkdGgpO1xuICAgICAgdmFyIGZpeGVkSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQpO1xuXG4gICAgICBpZiAoX3RoaXMuc3RhdGUud2lkdGggIT09IGZpeGVkV2lkdGggfHwgX3RoaXMuc3RhdGUuaGVpZ2h0ICE9PSBmaXhlZEhlaWdodCB8fCBfdGhpcy5zdGF0ZS5vZmZzZXRXaWR0aCAhPT0gb2Zmc2V0V2lkdGggfHwgX3RoaXMuc3RhdGUub2Zmc2V0SGVpZ2h0ICE9PSBvZmZzZXRIZWlnaHQpIHtcbiAgICAgICAgdmFyIHNpemUgPSB7XG4gICAgICAgICAgd2lkdGg6IGZpeGVkV2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiBmaXhlZEhlaWdodCxcbiAgICAgICAgICBvZmZzZXRXaWR0aDogb2Zmc2V0V2lkdGgsXG4gICAgICAgICAgb2Zmc2V0SGVpZ2h0OiBvZmZzZXRIZWlnaHRcbiAgICAgICAgfTtcblxuICAgICAgICBfdGhpcy5zZXRTdGF0ZShzaXplKTtcblxuICAgICAgICBpZiAob25SZXNpemUpIHtcbiAgICAgICAgICAvLyBkZWZlciB0aGUgY2FsbGJhY2sgYnV0IG5vdCBkZWZlciB0byBuZXh0IGZyYW1lXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvblJlc2l6ZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNpemUpLCB7fSwge1xuICAgICAgICAgICAgICBvZmZzZXRXaWR0aDogb2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgIG9mZnNldEhlaWdodDogb2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICB9KSwgdGFyZ2V0KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5zZXRDaGlsZE5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgX3RoaXMuY2hpbGROb2RlID0gbm9kZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFJlYWN0UmVzaXplT2JzZXJ2ZXIsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5vbkNvbXBvbmVudFVwZGF0ZWQoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHRoaXMub25Db21wb25lbnRVcGRhdGVkKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwib25Db21wb25lbnRVcGRhdGVkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uQ29tcG9uZW50VXBkYXRlZCgpIHtcbiAgICAgIHZhciBkaXNhYmxlZCA9IHRoaXMucHJvcHMuZGlzYWJsZWQ7IC8vIFVucmVnaXN0ZXIgaWYgZGlzYWJsZWRcblxuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gLy8gVW5yZWdpc3RlciBpZiBlbGVtZW50IGNoYW5nZWRcblxuXG4gICAgICB2YXIgZWxlbWVudCA9IGZpbmRET01Ob2RlKHRoaXMuY2hpbGROb2RlIHx8IHRoaXMpO1xuICAgICAgdmFyIGVsZW1lbnRDaGFuZ2VkID0gZWxlbWVudCAhPT0gdGhpcy5jdXJyZW50RWxlbWVudDtcblxuICAgICAgaWYgKGVsZW1lbnRDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKCk7XG4gICAgICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucmVzaXplT2JzZXJ2ZXIgJiYgZWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMub25SZXNpemUpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImRlc3Ryb3lPYnNlcnZlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZXN0cm95T2JzZXJ2ZXIoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIGNoaWxkTm9kZXMgPSB0b0FycmF5KGNoaWxkcmVuKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID4gMSkge1xuICAgICAgICB3YXJuaW5nKGZhbHNlLCAnRmluZCBtb3JlIHRoYW4gb25lIGNoaWxkIG5vZGUgd2l0aCBgY2hpbGRyZW5gIGluIFJlc2l6ZU9ic2VydmVyLiBXaWxsIG9ubHkgb2JzZXJ2ZSBmaXJzdCBvbmUuJyk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHdhcm5pbmcoZmFsc2UsICdgY2hpbGRyZW5gIG9mIFJlc2l6ZU9ic2VydmVyIGlzIGVtcHR5LiBOb3RoaW5nIGlzIGluIG9ic2VydmUuJyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIgY2hpbGROb2RlID0gY2hpbGROb2Rlc1swXTtcblxuICAgICAgaWYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSAmJiBzdXBwb3J0UmVmKGNoaWxkTm9kZSkpIHtcbiAgICAgICAgdmFyIHJlZiA9IGNoaWxkTm9kZS5yZWY7XG4gICAgICAgIGNoaWxkTm9kZXNbMF0gPSAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkTm9kZSwge1xuICAgICAgICAgIHJlZjogY29tcG9zZVJlZihyZWYsIHRoaXMuc2V0Q2hpbGROb2RlKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkTm9kZXMubGVuZ3RoID09PSAxID8gY2hpbGROb2Rlc1swXSA6IGNoaWxkTm9kZXMubWFwKGZ1bmN0aW9uIChub2RlLCBpbmRleCkge1xuICAgICAgICBpZiAoISAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQobm9kZSkgfHwgJ2tleScgaW4gbm9kZSAmJiBub2RlLmtleSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQobm9kZSwge1xuICAgICAgICAgIGtleTogXCJcIi5jb25jYXQoSU5URVJOQUxfUFJFRklYX0tFWSwgXCItXCIpLmNvbmNhdChpbmRleClcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gUmVhY3RSZXNpemVPYnNlcnZlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuUmVhY3RSZXNpemVPYnNlcnZlci5kaXNwbGF5TmFtZSA9ICdSZXNpemVPYnNlcnZlcic7XG5leHBvcnQgZGVmYXVsdCBSZWFjdFJlc2l6ZU9ic2VydmVyOyIsImltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufSIsImltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuLyoqXG4gKiBSZXR1cm4gaWYgYSBub2RlIGlzIGEgRE9NIG5vZGUuIEVsc2Ugd2lsbCByZXR1cm4gYnkgYGZpbmRET01Ob2RlYFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZpbmRET01Ob2RlKG5vZGUpIHtcbiAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0RE9NLmZpbmRET01Ob2RlKG5vZGUpO1xufSIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBpc0ZyYWdtZW50IH0gZnJvbSAncmVhY3QtaXMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9BcnJheShjaGlsZHJlbikge1xuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgdmFyIHJldCA9IFtdO1xuICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoKGNoaWxkID09PSB1bmRlZmluZWQgfHwgY2hpbGQgPT09IG51bGwpICYmICFvcHRpb24ua2VlcEVtcHR5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRvQXJyYXkoY2hpbGQpKTtcbiAgICB9IGVsc2UgaWYgKGlzRnJhZ21lbnQoY2hpbGQpICYmIGNoaWxkLnByb3BzKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRvQXJyYXkoY2hpbGQucHJvcHMuY2hpbGRyZW4sIG9wdGlvbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucHVzaChjaGlsZCk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJldDtcbn0iLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgeyBpc01lbW8gfSBmcm9tICdyZWFjdC1pcyc7XG5leHBvcnQgZnVuY3Rpb24gZmlsbFJlZihyZWYsIG5vZGUpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZWYobm9kZSk7XG4gIH0gZWxzZSBpZiAoX3R5cGVvZihyZWYpID09PSAnb2JqZWN0JyAmJiByZWYgJiYgJ2N1cnJlbnQnIGluIHJlZikge1xuICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgfVxufVxuLyoqXG4gKiBNZXJnZSByZWZzIGludG8gb25lIHJlZiBmdW5jdGlvbiB0byBzdXBwb3J0IHJlZiBwYXNzaW5nLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NlUmVmKCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgcmVmcyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICByZWZzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgIGZpbGxSZWYocmVmLCBub2RlKTtcbiAgICB9KTtcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3J0UmVmKG5vZGVPckNvbXBvbmVudCkge1xuICB2YXIgX3R5cGUkcHJvdG90eXBlLCBfbm9kZU9yQ29tcG9uZW50JHByb3Q7XG5cbiAgdmFyIHR5cGUgPSBpc01lbW8obm9kZU9yQ29tcG9uZW50KSA/IG5vZGVPckNvbXBvbmVudC50eXBlLnR5cGUgOiBub2RlT3JDb21wb25lbnQudHlwZTsgLy8gRnVuY3Rpb24gY29tcG9uZW50IG5vZGVcblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgJiYgISgoX3R5cGUkcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGUpID09PSBudWxsIHx8IF90eXBlJHByb3RvdHlwZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3R5cGUkcHJvdG90eXBlLnJlbmRlcikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gLy8gQ2xhc3MgY29tcG9uZW50XG5cblxuICBpZiAodHlwZW9mIG5vZGVPckNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJyAmJiAhKChfbm9kZU9yQ29tcG9uZW50JHByb3QgPSBub2RlT3JDb21wb25lbnQucHJvdG90eXBlKSA9PT0gbnVsbCB8fCBfbm9kZU9yQ29tcG9uZW50JHByb3QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ub2RlT3JDb21wb25lbnQkcHJvdC5yZW5kZXIpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4vKiBlc2xpbnQtZW5hYmxlICovIiwiaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyV3JhcCh0YXJnZXQsIGV2ZW50VHlwZSwgY2IsIG9wdGlvbikge1xuICAvKiBlc2xpbnQgY2FtZWxjYXNlOiAyICovXG4gIHZhciBjYWxsYmFjayA9IFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID8gZnVuY3Rpb24gcnVuKGUpIHtcbiAgICBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhjYiwgZSk7XG4gIH0gOiBjYjtcblxuICBpZiAodGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGNhbGxiYWNrLCBvcHRpb24pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIGlmICh0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59IiwidmFyIHJhZiA9IGZ1bmN0aW9uIHJhZihjYWxsYmFjaykge1xuICByZXR1cm4gK3NldFRpbWVvdXQoY2FsbGJhY2ssIDE2KTtcbn07XG5cbnZhciBjYWYgPSBmdW5jdGlvbiBjYWYobnVtKSB7XG4gIHJldHVybiBjbGVhclRpbWVvdXQobnVtKTtcbn07XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAncmVxdWVzdEFuaW1hdGlvbkZyYW1lJyBpbiB3aW5kb3cpIHtcbiAgcmFmID0gZnVuY3Rpb24gcmFmKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spO1xuICB9O1xuXG4gIGNhZiA9IGZ1bmN0aW9uIGNhZihoYW5kbGUpIHtcbiAgICByZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGhhbmRsZSk7XG4gIH07XG59XG5cbnZhciByYWZVVUlEID0gMDtcbnZhciByYWZJZHMgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIGNsZWFudXAoaWQpIHtcbiAgcmFmSWRzLmRlbGV0ZShpZCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHdyYXBwZXJSYWYoY2FsbGJhY2spIHtcbiAgdmFyIHRpbWVzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAxO1xuICByYWZVVUlEICs9IDE7XG4gIHZhciBpZCA9IHJhZlVVSUQ7XG5cbiAgZnVuY3Rpb24gY2FsbFJlZihsZWZ0VGltZXMpIHtcbiAgICBpZiAobGVmdFRpbWVzID09PSAwKSB7XG4gICAgICAvLyBDbGVhbiB1cFxuICAgICAgY2xlYW51cChpZCk7IC8vIFRyaWdnZXJcblxuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmV4dCByYWZcbiAgICAgIHZhciByZWFsSWQgPSByYWYoZnVuY3Rpb24gKCkge1xuICAgICAgICBjYWxsUmVmKGxlZnRUaW1lcyAtIDEpO1xuICAgICAgfSk7IC8vIEJpbmQgcmVhbCByYWYgaWRcblxuICAgICAgcmFmSWRzLnNldChpZCwgcmVhbElkKTtcbiAgICB9XG4gIH1cblxuICBjYWxsUmVmKHRpbWVzKTtcbiAgcmV0dXJuIGlkO1xufVxuXG53cmFwcGVyUmFmLmNhbmNlbCA9IGZ1bmN0aW9uIChpZCkge1xuICB2YXIgcmVhbElkID0gcmFmSWRzLmdldChpZCk7XG4gIGNsZWFudXAocmVhbElkKTtcbiAgcmV0dXJuIGNhZihyZWFsSWQpO1xufTsiLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi9kZWZpbmVQcm9wZXJ0eS5qc1wiKTtcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuXG4gICAgaWYgKGVudW1lcmFibGVPbmx5KSB7XG4gICAgICBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkMih0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTtcblxuICAgIGlmIChpICUgMikge1xuICAgICAgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9vYmplY3RTcHJlYWQyO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsInZhciBhcnJheVdpdGhvdXRIb2xlcyA9IHJlcXVpcmUoXCIuL2FycmF5V2l0aG91dEhvbGVzLmpzXCIpO1xuXG52YXIgaXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vaXRlcmFibGVUb0FycmF5LmpzXCIpO1xuXG52YXIgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgPSByZXF1aXJlKFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiKTtcblxudmFyIG5vbkl0ZXJhYmxlU3ByZWFkID0gcmVxdWlyZShcIi4vbm9uSXRlcmFibGVTcHJlYWQuanNcIik7XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHtcbiAgcmV0dXJuIGFycmF5V2l0aG91dEhvbGVzKGFycikgfHwgaXRlcmFibGVUb0FycmF5KGFycikgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBub25JdGVyYWJsZVNwcmVhZCgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF90b0NvbnN1bWFibGVBcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCIvL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCLCBjb21wYXJlLCBjb21wYXJlQ29udGV4dCkge1xuICB2YXIgcmV0ID0gY29tcGFyZSA/IGNvbXBhcmUuY2FsbChjb21wYXJlQ29udGV4dCwgb2JqQSwgb2JqQikgOiB2b2lkIDA7XG5cbiAgaWYgKHJldCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuICEhcmV0O1xuICB9XG5cbiAgaWYgKG9iakEgPT09IG9iakIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqQSAhPT0gXCJvYmplY3RcIiB8fCAhb2JqQSB8fCB0eXBlb2Ygb2JqQiAhPT0gXCJvYmplY3RcIiB8fCAhb2JqQikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcblxuICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgYkhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5iaW5kKG9iakIpO1xuXG4gIC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG4gIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGtleXNBLmxlbmd0aDsgaWR4KyspIHtcbiAgICB2YXIga2V5ID0ga2V5c0FbaWR4XTtcblxuICAgIGlmICghYkhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB2YXIgdmFsdWVBID0gb2JqQVtrZXldO1xuICAgIHZhciB2YWx1ZUIgPSBvYmpCW2tleV07XG5cbiAgICByZXQgPSBjb21wYXJlID8gY29tcGFyZS5jYWxsKGNvbXBhcmVDb250ZXh0LCB2YWx1ZUEsIHZhbHVlQiwga2V5KSA6IHZvaWQgMDtcblxuICAgIGlmIChyZXQgPT09IGZhbHNlIHx8IChyZXQgPT09IHZvaWQgMCAmJiB2YWx1ZUEgIT09IHZhbHVlQikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSBcIi4vZGVmaW5lUHJvcGVydHkuanNcIjtcblxuZnVuY3Rpb24gb3duS2V5cyhvYmplY3QsIGVudW1lcmFibGVPbmx5KSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpO1xuXG4gICAgaWYgKGVudW1lcmFibGVPbmx5KSB7XG4gICAgICBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfb2JqZWN0U3ByZWFkMih0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTtcblxuICAgIGlmIChpICUgMikge1xuICAgICAgb3duS2V5cyhPYmplY3Qoc291cmNlKSwgdHJ1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzb3VyY2Vba2V5XSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn0iLCJpbXBvcnQgYXJyYXlXaXRoSG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRoSG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXlMaW1pdCBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXlMaW1pdC5qc1wiO1xuaW1wb3J0IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IGZyb20gXCIuL3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgbm9uSXRlcmFibGVSZXN0IGZyb20gXCIuL25vbkl0ZXJhYmxlUmVzdC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7XG4gIHJldHVybiBhcnJheVdpdGhIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBub25JdGVyYWJsZVJlc3QoKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgJiYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyW1wiQEBpdGVyYXRvclwiXSk7XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7XG4gICAgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mKG9iaik7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IHsgaXNNZW1vIH0gZnJvbSAncmVhY3QtaXMnO1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxSZWYocmVmLCBub2RlKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmVmKG5vZGUpO1xuICB9IGVsc2UgaWYgKF90eXBlb2YocmVmKSA9PT0gJ29iamVjdCcgJiYgcmVmICYmICdjdXJyZW50JyBpbiByZWYpIHtcbiAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gIH1cbn1cbi8qKlxuICogTWVyZ2UgcmVmcyBpbnRvIG9uZSByZWYgZnVuY3Rpb24gdG8gc3VwcG9ydCByZWYgcGFzc2luZy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZVJlZigpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIHJlZnMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgcmVmc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICBmaWxsUmVmKHJlZiwgbm9kZSk7XG4gICAgfSk7XG4gIH07XG59XG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydFJlZihub2RlT3JDb21wb25lbnQpIHtcbiAgdmFyIF90eXBlJHByb3RvdHlwZSwgX25vZGVPckNvbXBvbmVudCRwcm90O1xuXG4gIHZhciB0eXBlID0gaXNNZW1vKG5vZGVPckNvbXBvbmVudCkgPyBub2RlT3JDb21wb25lbnQudHlwZS50eXBlIDogbm9kZU9yQ29tcG9uZW50LnR5cGU7IC8vIEZ1bmN0aW9uIGNvbXBvbmVudCBub2RlXG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmICEoKF90eXBlJHByb3RvdHlwZSA9IHR5cGUucHJvdG90eXBlKSA9PT0gbnVsbCB8fCBfdHlwZSRwcm90b3R5cGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90eXBlJHByb3RvdHlwZS5yZW5kZXIpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIENsYXNzIGNvbXBvbmVudFxuXG5cbiAgaWYgKHR5cGVvZiBub2RlT3JDb21wb25lbnQgPT09ICdmdW5jdGlvbicgJiYgISgoX25vZGVPckNvbXBvbmVudCRwcm90ID0gbm9kZU9yQ29tcG9uZW50LnByb3RvdHlwZSkgPT09IG51bGwgfHwgX25vZGVPckNvbXBvbmVudCRwcm90ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9kZU9yQ29tcG9uZW50JHByb3QucmVuZGVyKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuLyogZXNsaW50LWVuYWJsZSAqLyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNhblVzZURvbSgpIHtcbiAgcmV0dXJuICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuaW1wb3J0IGNhblVzZURPTSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vY2FuVXNlRG9tXCI7IC8vID09PT09PT09PT09PT09PT09IFRyYW5zaXRpb24gPT09PT09PT09PT09PT09PT1cbi8vIEV2ZW50IHdyYXBwZXIuIENvcHkgZnJvbSByZWFjdCBzb3VyY2UgY29kZVxuXG5mdW5jdGlvbiBtYWtlUHJlZml4TWFwKHN0eWxlUHJvcCwgZXZlbnROYW1lKSB7XG4gIHZhciBwcmVmaXhlcyA9IHt9O1xuICBwcmVmaXhlc1tzdHlsZVByb3AudG9Mb3dlckNhc2UoKV0gPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcHJlZml4ZXNbXCJXZWJraXRcIi5jb25jYXQoc3R5bGVQcm9wKV0gPSBcIndlYmtpdFwiLmNvbmNhdChldmVudE5hbWUpO1xuICBwcmVmaXhlc1tcIk1velwiLmNvbmNhdChzdHlsZVByb3ApXSA9IFwibW96XCIuY29uY2F0KGV2ZW50TmFtZSk7XG4gIHByZWZpeGVzW1wibXNcIi5jb25jYXQoc3R5bGVQcm9wKV0gPSBcIk1TXCIuY29uY2F0KGV2ZW50TmFtZSk7XG4gIHByZWZpeGVzW1wiT1wiLmNvbmNhdChzdHlsZVByb3ApXSA9IFwib1wiLmNvbmNhdChldmVudE5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIHJldHVybiBwcmVmaXhlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlbmRvclByZWZpeGVzKGRvbVN1cHBvcnQsIHdpbikge1xuICB2YXIgcHJlZml4ZXMgPSB7XG4gICAgYW5pbWF0aW9uZW5kOiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uRW5kJyksXG4gICAgdHJhbnNpdGlvbmVuZDogbWFrZVByZWZpeE1hcCgnVHJhbnNpdGlvbicsICdUcmFuc2l0aW9uRW5kJylcbiAgfTtcblxuICBpZiAoZG9tU3VwcG9ydCkge1xuICAgIGlmICghKCdBbmltYXRpb25FdmVudCcgaW4gd2luKSkge1xuICAgICAgZGVsZXRlIHByZWZpeGVzLmFuaW1hdGlvbmVuZC5hbmltYXRpb247XG4gICAgfVxuXG4gICAgaWYgKCEoJ1RyYW5zaXRpb25FdmVudCcgaW4gd2luKSkge1xuICAgICAgZGVsZXRlIHByZWZpeGVzLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJlZml4ZXM7XG59XG52YXIgdmVuZG9yUHJlZml4ZXMgPSBnZXRWZW5kb3JQcmVmaXhlcyhjYW5Vc2VET00oKSwgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fSk7XG52YXIgc3R5bGUgPSB7fTtcblxuaWYgKGNhblVzZURPTSgpKSB7XG4gIHZhciBfZG9jdW1lbnQkY3JlYXRlRWxlbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICBzdHlsZSA9IF9kb2N1bWVudCRjcmVhdGVFbGVtZS5zdHlsZTtcbn1cblxudmFyIHByZWZpeGVkRXZlbnROYW1lcyA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKGV2ZW50TmFtZSkge1xuICBpZiAocHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV0pIHtcbiAgICByZXR1cm4gcHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV07XG4gIH1cblxuICB2YXIgcHJlZml4TWFwID0gdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXTtcblxuICBpZiAocHJlZml4TWFwKSB7XG4gICAgdmFyIHN0eWxlUHJvcExpc3QgPSBPYmplY3Qua2V5cyhwcmVmaXhNYXApO1xuICAgIHZhciBsZW4gPSBzdHlsZVByb3BMaXN0Lmxlbmd0aDtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgIHZhciBzdHlsZVByb3AgPSBzdHlsZVByb3BMaXN0W2ldO1xuXG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByZWZpeE1hcCwgc3R5bGVQcm9wKSAmJiBzdHlsZVByb3AgaW4gc3R5bGUpIHtcbiAgICAgICAgcHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV0gPSBwcmVmaXhNYXBbc3R5bGVQcm9wXTtcbiAgICAgICAgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cbnZhciBpbnRlcm5hbEFuaW1hdGlvbkVuZE5hbWUgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZSgnYW5pbWF0aW9uZW5kJyk7XG52YXIgaW50ZXJuYWxUcmFuc2l0aW9uRW5kTmFtZSA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCd0cmFuc2l0aW9uZW5kJyk7XG5leHBvcnQgdmFyIHN1cHBvcnRUcmFuc2l0aW9uID0gISEoaW50ZXJuYWxBbmltYXRpb25FbmROYW1lICYmIGludGVybmFsVHJhbnNpdGlvbkVuZE5hbWUpO1xuZXhwb3J0IHZhciBhbmltYXRpb25FbmROYW1lID0gaW50ZXJuYWxBbmltYXRpb25FbmROYW1lIHx8ICdhbmltYXRpb25lbmQnO1xuZXhwb3J0IHZhciB0cmFuc2l0aW9uRW5kTmFtZSA9IGludGVybmFsVHJhbnNpdGlvbkVuZE5hbWUgfHwgJ3RyYW5zaXRpb25lbmQnO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zaXRpb25OYW1lKHRyYW5zaXRpb25OYW1lLCB0cmFuc2l0aW9uVHlwZSkge1xuICBpZiAoIXRyYW5zaXRpb25OYW1lKSByZXR1cm4gbnVsbDtcblxuICBpZiAoX3R5cGVvZih0cmFuc2l0aW9uTmFtZSkgPT09ICdvYmplY3QnKSB7XG4gICAgdmFyIHR5cGUgPSB0cmFuc2l0aW9uVHlwZS5yZXBsYWNlKC8tXFx3L2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgcmV0dXJuIG1hdGNoWzFdLnRvVXBwZXJDYXNlKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lW3R5cGVdO1xuICB9XG5cbiAgcmV0dXJuIFwiXCIuY29uY2F0KHRyYW5zaXRpb25OYW1lLCBcIi1cIikuY29uY2F0KHRyYW5zaXRpb25UeXBlKTtcbn0iLCJpbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU1vdW50U3RhdHVzKGRlZmF1bHRWYWx1ZSkge1xuICB2YXIgZGVzdHJveVJlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKGRlZmF1bHRWYWx1ZSksXG4gICAgICBfdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIHZhbCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRWYWwgPSBfdXNlU3RhdGUyWzFdO1xuXG4gIGZ1bmN0aW9uIHNldFZhbHVlKG5leHQpIHtcbiAgICBpZiAoIWRlc3Ryb3lSZWYuY3VycmVudCkge1xuICAgICAgc2V0VmFsKG5leHQpO1xuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlc3Ryb3lSZWYuY3VycmVudCA9IHRydWU7XG4gICAgfTtcbiAgfSwgW10pO1xuICByZXR1cm4gW3ZhbCwgc2V0VmFsdWVdO1xufSIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNhblVzZURvbSBmcm9tIFwicmMtdXRpbC9lcy9Eb20vY2FuVXNlRG9tXCI7IC8vIEl0J3Mgc2FmZSB0byB1c2UgYHVzZUxheW91dEVmZmVjdGAgYnV0IHRoZSB3YXJuaW5nIGlzIGFubm95aW5nXG5cbnZhciB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0ID0gY2FuVXNlRG9tKCkgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3Q7XG5leHBvcnQgZGVmYXVsdCB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0OyIsInZhciByYWYgPSBmdW5jdGlvbiByYWYoY2FsbGJhY2spIHtcbiAgcmV0dXJuICtzZXRUaW1lb3V0KGNhbGxiYWNrLCAxNik7XG59O1xuXG52YXIgY2FmID0gZnVuY3Rpb24gY2FmKG51bSkge1xuICByZXR1cm4gY2xlYXJUaW1lb3V0KG51bSk7XG59O1xuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ3JlcXVlc3RBbmltYXRpb25GcmFtZScgaW4gd2luZG93KSB7XG4gIHJhZiA9IGZ1bmN0aW9uIHJhZihjYWxsYmFjaykge1xuICAgIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrKTtcbiAgfTtcblxuICBjYWYgPSBmdW5jdGlvbiBjYWYoaGFuZGxlKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShoYW5kbGUpO1xuICB9O1xufVxuXG52YXIgcmFmVVVJRCA9IDA7XG52YXIgcmFmSWRzID0gbmV3IE1hcCgpO1xuXG5mdW5jdGlvbiBjbGVhbnVwKGlkKSB7XG4gIHJhZklkcy5kZWxldGUoaWQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3cmFwcGVyUmFmKGNhbGxiYWNrKSB7XG4gIHZhciB0aW1lcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMTtcbiAgcmFmVVVJRCArPSAxO1xuICB2YXIgaWQgPSByYWZVVUlEO1xuXG4gIGZ1bmN0aW9uIGNhbGxSZWYobGVmdFRpbWVzKSB7XG4gICAgaWYgKGxlZnRUaW1lcyA9PT0gMCkge1xuICAgICAgLy8gQ2xlYW4gdXBcbiAgICAgIGNsZWFudXAoaWQpOyAvLyBUcmlnZ2VyXG5cbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5leHQgcmFmXG4gICAgICB2YXIgcmVhbElkID0gcmFmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2FsbFJlZihsZWZ0VGltZXMgLSAxKTtcbiAgICAgIH0pOyAvLyBCaW5kIHJlYWwgcmFmIGlkXG5cbiAgICAgIHJhZklkcy5zZXQoaWQsIHJlYWxJZCk7XG4gICAgfVxuICB9XG5cbiAgY2FsbFJlZih0aW1lcyk7XG4gIHJldHVybiBpZDtcbn1cblxud3JhcHBlclJhZi5jYW5jZWwgPSBmdW5jdGlvbiAoaWQpIHtcbiAgdmFyIHJlYWxJZCA9IHJhZklkcy5nZXQoaWQpO1xuICBjbGVhbnVwKHJlYWxJZCk7XG4gIHJldHVybiBjYWYocmVhbElkKTtcbn07IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHJhZiBmcm9tIFwicmMtdXRpbC9lcy9yYWZcIjtcbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAoKSB7XG4gIHZhciBuZXh0RnJhbWVSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG5cbiAgZnVuY3Rpb24gY2FuY2VsTmV4dEZyYW1lKCkge1xuICAgIHJhZi5jYW5jZWwobmV4dEZyYW1lUmVmLmN1cnJlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dEZyYW1lKGNhbGxiYWNrKSB7XG4gICAgdmFyIGRlbGF5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAyO1xuICAgIGNhbmNlbE5leHRGcmFtZSgpO1xuICAgIHZhciBuZXh0RnJhbWVJZCA9IHJhZihmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoZGVsYXkgPD0gMSkge1xuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgaXNDYW5jZWxlZDogZnVuY3Rpb24gaXNDYW5jZWxlZCgpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0RnJhbWVJZCAhPT0gbmV4dEZyYW1lUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRGcmFtZShjYWxsYmFjaywgZGVsYXkgLSAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBuZXh0RnJhbWVSZWYuY3VycmVudCA9IG5leHRGcmFtZUlkO1xuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgY2FuY2VsTmV4dEZyYW1lKCk7XG4gICAgfTtcbiAgfSwgW10pO1xuICByZXR1cm4gW25leHRGcmFtZSwgY2FuY2VsTmV4dEZyYW1lXTtcbn0pOyIsImltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU1RFUF9QUkVQQVJFLCBTVEVQX0FDVElWRSwgU1RFUF9TVEFSVCwgU1RFUF9BQ1RJVkFURUQsIFNURVBfTk9ORSB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCBmcm9tICcuL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QnO1xuaW1wb3J0IHVzZU5leHRGcmFtZSBmcm9tICcuL3VzZU5leHRGcmFtZSc7XG52YXIgU1RFUF9RVUVVRSA9IFtTVEVQX1BSRVBBUkUsIFNURVBfU1RBUlQsIFNURVBfQUNUSVZFLCBTVEVQX0FDVElWQVRFRF07XG4vKiogU2tpcCBjdXJyZW50IHN0ZXAgKi9cblxuZXhwb3J0IHZhciBTa2lwU3RlcCA9IGZhbHNlO1xuLyoqIEN1cnJlbnQgc3RlcCBzaG91bGQgYmUgdXBkYXRlIGluICovXG5cbmV4cG9ydCB2YXIgRG9TdGVwID0gdHJ1ZTtcbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGl2ZShzdGVwKSB7XG4gIHJldHVybiBzdGVwID09PSBTVEVQX0FDVElWRSB8fCBzdGVwID09PSBTVEVQX0FDVElWQVRFRDtcbn1cbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAoc3RhdHVzLCBjYWxsYmFjaykge1xuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoU1RFUF9OT05FKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGUsIDIpLFxuICAgICAgc3RlcCA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRTdGVwID0gX1JlYWN0JHVzZVN0YXRlMlsxXTtcblxuICB2YXIgX3VzZU5leHRGcmFtZSA9IHVzZU5leHRGcmFtZSgpLFxuICAgICAgX3VzZU5leHRGcmFtZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlTmV4dEZyYW1lLCAyKSxcbiAgICAgIG5leHRGcmFtZSA9IF91c2VOZXh0RnJhbWUyWzBdLFxuICAgICAgY2FuY2VsTmV4dEZyYW1lID0gX3VzZU5leHRGcmFtZTJbMV07XG5cbiAgZnVuY3Rpb24gc3RhcnRRdWV1ZSgpIHtcbiAgICBzZXRTdGVwKFNURVBfUFJFUEFSRSk7XG4gIH1cblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc3RlcCAhPT0gU1RFUF9OT05FICYmIHN0ZXAgIT09IFNURVBfQUNUSVZBVEVEKSB7XG4gICAgICB2YXIgaW5kZXggPSBTVEVQX1FVRVVFLmluZGV4T2Yoc3RlcCk7XG4gICAgICB2YXIgbmV4dFN0ZXAgPSBTVEVQX1FVRVVFW2luZGV4ICsgMV07XG4gICAgICB2YXIgcmVzdWx0ID0gY2FsbGJhY2soc3RlcCk7XG5cbiAgICAgIGlmIChyZXN1bHQgPT09IFNraXBTdGVwKSB7XG4gICAgICAgIC8vIFNraXAgd2hlbiBubyBuZWVkZWRcbiAgICAgICAgc2V0U3RlcChuZXh0U3RlcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEbyBhcyBmcmFtZSBmb3Igc3RlcCB1cGRhdGVcbiAgICAgICAgbmV4dEZyYW1lKGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICAgICAgZnVuY3Rpb24gZG9OZXh0KCkge1xuICAgICAgICAgICAgLy8gU2tpcCBzaW5jZSBjdXJyZW50IHF1ZXVlIGlzIG9vZFxuICAgICAgICAgICAgaWYgKGluZm8uaXNDYW5jZWxlZCgpKSByZXR1cm47XG4gICAgICAgICAgICBzZXRTdGVwKG5leHRTdGVwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVzdWx0ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBkb05leHQoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gT25seSBwcm9taXNlIHNob3VsZCBiZSBhc3luY1xuICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCkudGhlbihkb05leHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhdHVzLCBzdGVwXSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbmNlbE5leHRGcmFtZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIFtzdGFydFF1ZXVlLCBzdGVwXTtcbn0pOyIsImV4cG9ydCB2YXIgU1RBVFVTX05PTkUgPSAnbm9uZSc7XG5leHBvcnQgdmFyIFNUQVRVU19BUFBFQVIgPSAnYXBwZWFyJztcbmV4cG9ydCB2YXIgU1RBVFVTX0VOVEVSID0gJ2VudGVyJztcbmV4cG9ydCB2YXIgU1RBVFVTX0xFQVZFID0gJ2xlYXZlJztcbmV4cG9ydCB2YXIgU1RFUF9OT05FID0gJ25vbmUnO1xuZXhwb3J0IHZhciBTVEVQX1BSRVBBUkUgPSAncHJlcGFyZSc7XG5leHBvcnQgdmFyIFNURVBfU1RBUlQgPSAnc3RhcnQnO1xuZXhwb3J0IHZhciBTVEVQX0FDVElWRSA9ICdhY3RpdmUnO1xuZXhwb3J0IHZhciBTVEVQX0FDVElWQVRFRCA9ICdlbmQnOyIsImltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFNUQVRVU19BUFBFQVIsIFNUQVRVU19OT05FLCBTVEFUVVNfTEVBVkUsIFNUQVRVU19FTlRFUiwgU1RFUF9QUkVQQVJFLCBTVEVQX1NUQVJULCBTVEVQX0FDVElWRSB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgdXNlU3RhdGUgZnJvbSAnLi91c2VTdGF0ZSc7XG5pbXBvcnQgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCBmcm9tICcuL3VzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QnO1xuaW1wb3J0IHVzZVN0ZXBRdWV1ZSwgeyBEb1N0ZXAsIFNraXBTdGVwLCBpc0FjdGl2ZSB9IGZyb20gJy4vdXNlU3RlcFF1ZXVlJztcbmltcG9ydCB1c2VEb21Nb3Rpb25FdmVudHMgZnJvbSAnLi91c2VEb21Nb3Rpb25FdmVudHMnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlU3RhdHVzKHN1cHBvcnRNb3Rpb24sIHZpc2libGUsIGdldEVsZW1lbnQsIF9yZWYpIHtcbiAgdmFyIF9yZWYkbW90aW9uRW50ZXIgPSBfcmVmLm1vdGlvbkVudGVyLFxuICAgICAgbW90aW9uRW50ZXIgPSBfcmVmJG1vdGlvbkVudGVyID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZiRtb3Rpb25FbnRlcixcbiAgICAgIF9yZWYkbW90aW9uQXBwZWFyID0gX3JlZi5tb3Rpb25BcHBlYXIsXG4gICAgICBtb3Rpb25BcHBlYXIgPSBfcmVmJG1vdGlvbkFwcGVhciA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYkbW90aW9uQXBwZWFyLFxuICAgICAgX3JlZiRtb3Rpb25MZWF2ZSA9IF9yZWYubW90aW9uTGVhdmUsXG4gICAgICBtb3Rpb25MZWF2ZSA9IF9yZWYkbW90aW9uTGVhdmUgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmJG1vdGlvbkxlYXZlLFxuICAgICAgbW90aW9uRGVhZGxpbmUgPSBfcmVmLm1vdGlvbkRlYWRsaW5lLFxuICAgICAgbW90aW9uTGVhdmVJbW1lZGlhdGVseSA9IF9yZWYubW90aW9uTGVhdmVJbW1lZGlhdGVseSxcbiAgICAgIG9uQXBwZWFyUHJlcGFyZSA9IF9yZWYub25BcHBlYXJQcmVwYXJlLFxuICAgICAgb25FbnRlclByZXBhcmUgPSBfcmVmLm9uRW50ZXJQcmVwYXJlLFxuICAgICAgb25MZWF2ZVByZXBhcmUgPSBfcmVmLm9uTGVhdmVQcmVwYXJlLFxuICAgICAgb25BcHBlYXJTdGFydCA9IF9yZWYub25BcHBlYXJTdGFydCxcbiAgICAgIG9uRW50ZXJTdGFydCA9IF9yZWYub25FbnRlclN0YXJ0LFxuICAgICAgb25MZWF2ZVN0YXJ0ID0gX3JlZi5vbkxlYXZlU3RhcnQsXG4gICAgICBvbkFwcGVhckFjdGl2ZSA9IF9yZWYub25BcHBlYXJBY3RpdmUsXG4gICAgICBvbkVudGVyQWN0aXZlID0gX3JlZi5vbkVudGVyQWN0aXZlLFxuICAgICAgb25MZWF2ZUFjdGl2ZSA9IF9yZWYub25MZWF2ZUFjdGl2ZSxcbiAgICAgIG9uQXBwZWFyRW5kID0gX3JlZi5vbkFwcGVhckVuZCxcbiAgICAgIG9uRW50ZXJFbmQgPSBfcmVmLm9uRW50ZXJFbmQsXG4gICAgICBvbkxlYXZlRW5kID0gX3JlZi5vbkxlYXZlRW5kLFxuICAgICAgb25WaXNpYmxlQ2hhbmdlZCA9IF9yZWYub25WaXNpYmxlQ2hhbmdlZDtcblxuICAvLyBVc2VkIGZvciBvdXRlciByZW5kZXIgdXNhZ2UgdG8gYXZvaWQgYHZpc2libGU6IGZhbHNlICYgc3RhdHVzOiBub25lYCB0byByZW5kZXIgbm90aGluZ1xuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoKSxcbiAgICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgICAgYXN5bmNWaXNpYmxlID0gX3VzZVN0YXRlMlswXSxcbiAgICAgIHNldEFzeW5jVmlzaWJsZSA9IF91c2VTdGF0ZTJbMV07XG5cbiAgdmFyIF91c2VTdGF0ZTMgPSB1c2VTdGF0ZShTVEFUVVNfTk9ORSksXG4gICAgICBfdXNlU3RhdGU0ID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlMywgMiksXG4gICAgICBzdGF0dXMgPSBfdXNlU3RhdGU0WzBdLFxuICAgICAgc2V0U3RhdHVzID0gX3VzZVN0YXRlNFsxXTtcblxuICB2YXIgX3VzZVN0YXRlNSA9IHVzZVN0YXRlKG51bGwpLFxuICAgICAgX3VzZVN0YXRlNiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZTUsIDIpLFxuICAgICAgc3R5bGUgPSBfdXNlU3RhdGU2WzBdLFxuICAgICAgc2V0U3R5bGUgPSBfdXNlU3RhdGU2WzFdO1xuXG4gIHZhciBtb3VudGVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgdmFyIGRlYWRsaW5lUmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgZGVzdHJveWVkUmVmID0gdXNlUmVmKGZhbHNlKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IERvbSBOb2RlID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBjYWNoZUVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG5cbiAgZnVuY3Rpb24gZ2V0RG9tRWxlbWVudCgpIHtcbiAgICB2YXIgZWxlbWVudCA9IGdldEVsZW1lbnQoKTtcbiAgICByZXR1cm4gZWxlbWVudCB8fCBjYWNoZUVsZW1lbnRSZWYuY3VycmVudDtcbiAgfSAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBNb3Rpb24gRW5kID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICB2YXIgYWN0aXZlUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBmdW5jdGlvbiBvbkludGVybmFsTW90aW9uRW5kKGV2ZW50KSB7XG4gICAgdmFyIGVsZW1lbnQgPSBnZXREb21FbGVtZW50KCk7XG5cbiAgICBpZiAoZXZlbnQgJiYgIWV2ZW50LmRlYWRsaW5lICYmIGV2ZW50LnRhcmdldCAhPT0gZWxlbWVudCkge1xuICAgICAgLy8gZXZlbnQgZXhpc3RzXG4gICAgICAvLyBub3QgaW5pdGlhdGVkIGJ5IGRlYWRsaW5lXG4gICAgICAvLyB0cmFuc2l0aW9uRW5kIG5vdCBmaXJlZCBieSBpbm5lciBlbGVtZW50c1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBjYW5FbmQ7XG5cbiAgICBpZiAoc3RhdHVzID09PSBTVEFUVVNfQVBQRUFSICYmIGFjdGl2ZVJlZi5jdXJyZW50KSB7XG4gICAgICBjYW5FbmQgPSBvbkFwcGVhckVuZCA9PT0gbnVsbCB8fCBvbkFwcGVhckVuZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25BcHBlYXJFbmQoZWxlbWVudCwgZXZlbnQpO1xuICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBTVEFUVVNfRU5URVIgJiYgYWN0aXZlUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbkVuZCA9IG9uRW50ZXJFbmQgPT09IG51bGwgfHwgb25FbnRlckVuZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25FbnRlckVuZChlbGVtZW50LCBldmVudCk7XG4gICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IFNUQVRVU19MRUFWRSAmJiBhY3RpdmVSZWYuY3VycmVudCkge1xuICAgICAgY2FuRW5kID0gb25MZWF2ZUVuZCA9PT0gbnVsbCB8fCBvbkxlYXZlRW5kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkxlYXZlRW5kKGVsZW1lbnQsIGV2ZW50KTtcbiAgICB9IC8vIE9ubHkgdXBkYXRlIHN0YXR1cyB3aGVuIGBjYW5FbmRgIGFuZCBub3QgZGVzdHJveWVkXG5cblxuICAgIGlmIChjYW5FbmQgIT09IGZhbHNlICYmICFkZXN0cm95ZWRSZWYuY3VycmVudCkge1xuICAgICAgc2V0U3RhdHVzKFNUQVRVU19OT05FKTtcbiAgICAgIHNldFN0eWxlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBfdXNlRG9tTW90aW9uRXZlbnRzID0gdXNlRG9tTW90aW9uRXZlbnRzKG9uSW50ZXJuYWxNb3Rpb25FbmQpLFxuICAgICAgX3VzZURvbU1vdGlvbkV2ZW50czIgPSBfc2xpY2VkVG9BcnJheShfdXNlRG9tTW90aW9uRXZlbnRzLCAxKSxcbiAgICAgIHBhdGNoTW90aW9uRXZlbnRzID0gX3VzZURvbU1vdGlvbkV2ZW50czJbMF07IC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFN0ZXAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBldmVudEhhbmRsZXJzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9yZWYyLCBfcmVmMywgX3JlZjQ7XG5cbiAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgY2FzZSAnYXBwZWFyJzpcbiAgICAgICAgcmV0dXJuIF9yZWYyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfcmVmMiwgU1RFUF9QUkVQQVJFLCBvbkFwcGVhclByZXBhcmUpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjIsIFNURVBfU1RBUlQsIG9uQXBwZWFyU3RhcnQpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjIsIFNURVBfQUNUSVZFLCBvbkFwcGVhckFjdGl2ZSksIF9yZWYyO1xuXG4gICAgICBjYXNlICdlbnRlcic6XG4gICAgICAgIHJldHVybiBfcmVmMyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX3JlZjMsIFNURVBfUFJFUEFSRSwgb25FbnRlclByZXBhcmUpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjMsIFNURVBfU1RBUlQsIG9uRW50ZXJTdGFydCksIF9kZWZpbmVQcm9wZXJ0eShfcmVmMywgU1RFUF9BQ1RJVkUsIG9uRW50ZXJBY3RpdmUpLCBfcmVmMztcblxuICAgICAgY2FzZSAnbGVhdmUnOlxuICAgICAgICByZXR1cm4gX3JlZjQgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9yZWY0LCBTVEVQX1BSRVBBUkUsIG9uTGVhdmVQcmVwYXJlKSwgX2RlZmluZVByb3BlcnR5KF9yZWY0LCBTVEVQX1NUQVJULCBvbkxlYXZlU3RhcnQpLCBfZGVmaW5lUHJvcGVydHkoX3JlZjQsIFNURVBfQUNUSVZFLCBvbkxlYXZlQWN0aXZlKSwgX3JlZjQ7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH0sIFtzdGF0dXNdKTtcblxuICB2YXIgX3VzZVN0ZXBRdWV1ZSA9IHVzZVN0ZXBRdWV1ZShzdGF0dXMsIGZ1bmN0aW9uIChuZXdTdGVwKSB7XG4gICAgLy8gT25seSBwcmVwYXJlIHN0ZXAgY2FuIGJlIHNraXBcbiAgICBpZiAobmV3U3RlcCA9PT0gU1RFUF9QUkVQQVJFKSB7XG4gICAgICB2YXIgb25QcmVwYXJlID0gZXZlbnRIYW5kbGVyc1tTVEVQX1BSRVBBUkVdO1xuXG4gICAgICBpZiAoIW9uUHJlcGFyZSkge1xuICAgICAgICByZXR1cm4gU2tpcFN0ZXA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvblByZXBhcmUoZ2V0RG9tRWxlbWVudCgpKTtcbiAgICB9IC8vIFJlc3Qgc3RlcCBpcyBzeW5jIHVwZGF0ZVxuXG5cbiAgICAvLyBSZXN0IHN0ZXAgaXMgc3luYyB1cGRhdGVcbiAgICBpZiAoc3RlcCBpbiBldmVudEhhbmRsZXJzKSB7XG4gICAgICB2YXIgX2V2ZW50SGFuZGxlcnMkc3RlcDtcblxuICAgICAgc2V0U3R5bGUoKChfZXZlbnRIYW5kbGVycyRzdGVwID0gZXZlbnRIYW5kbGVyc1tzdGVwXSkgPT09IG51bGwgfHwgX2V2ZW50SGFuZGxlcnMkc3RlcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2V2ZW50SGFuZGxlcnMkc3RlcC5jYWxsKGV2ZW50SGFuZGxlcnMsIGdldERvbUVsZW1lbnQoKSwgbnVsbCkpIHx8IG51bGwpO1xuICAgIH1cblxuICAgIGlmIChzdGVwID09PSBTVEVQX0FDVElWRSkge1xuICAgICAgLy8gUGF0Y2ggZXZlbnRzIHdoZW4gbW90aW9uIG5lZWRlZFxuICAgICAgcGF0Y2hNb3Rpb25FdmVudHMoZ2V0RG9tRWxlbWVudCgpKTtcblxuICAgICAgaWYgKG1vdGlvbkRlYWRsaW5lID4gMCkge1xuICAgICAgICBjbGVhclRpbWVvdXQoZGVhZGxpbmVSZWYuY3VycmVudCk7XG4gICAgICAgIGRlYWRsaW5lUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBvbkludGVybmFsTW90aW9uRW5kKHtcbiAgICAgICAgICAgIGRlYWRsaW5lOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sIG1vdGlvbkRlYWRsaW5lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRG9TdGVwO1xuICB9KSxcbiAgICAgIF91c2VTdGVwUXVldWUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0ZXBRdWV1ZSwgMiksXG4gICAgICBzdGFydFN0ZXAgPSBfdXNlU3RlcFF1ZXVlMlswXSxcbiAgICAgIHN0ZXAgPSBfdXNlU3RlcFF1ZXVlMlsxXTtcblxuICB2YXIgYWN0aXZlID0gaXNBY3RpdmUoc3RlcCk7XG4gIGFjdGl2ZVJlZi5jdXJyZW50ID0gYWN0aXZlOyAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IFN0YXR1cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVwZGF0ZSB3aXRoIG5ldyBzdGF0dXNcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRBc3luY1Zpc2libGUodmlzaWJsZSk7XG4gICAgdmFyIGlzTW91bnRlZCA9IG1vdW50ZWRSZWYuY3VycmVudDtcbiAgICBtb3VudGVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgaWYgKCFzdXBwb3J0TW90aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG5leHRTdGF0dXM7IC8vIEFwcGVhclxuXG4gICAgaWYgKCFpc01vdW50ZWQgJiYgdmlzaWJsZSAmJiBtb3Rpb25BcHBlYXIpIHtcbiAgICAgIG5leHRTdGF0dXMgPSBTVEFUVVNfQVBQRUFSO1xuICAgIH0gLy8gRW50ZXJcblxuXG4gICAgaWYgKGlzTW91bnRlZCAmJiB2aXNpYmxlICYmIG1vdGlvbkVudGVyKSB7XG4gICAgICBuZXh0U3RhdHVzID0gU1RBVFVTX0VOVEVSO1xuICAgIH0gLy8gTGVhdmVcblxuXG4gICAgaWYgKGlzTW91bnRlZCAmJiAhdmlzaWJsZSAmJiBtb3Rpb25MZWF2ZSB8fCAhaXNNb3VudGVkICYmIG1vdGlvbkxlYXZlSW1tZWRpYXRlbHkgJiYgIXZpc2libGUgJiYgbW90aW9uTGVhdmUpIHtcbiAgICAgIG5leHRTdGF0dXMgPSBTVEFUVVNfTEVBVkU7XG4gICAgfSAvLyBVcGRhdGUgdG8gbmV4dCBzdGF0dXNcblxuXG4gICAgaWYgKG5leHRTdGF0dXMpIHtcbiAgICAgIHNldFN0YXR1cyhuZXh0U3RhdHVzKTtcbiAgICAgIHN0YXJ0U3RlcCgpO1xuICAgIH1cbiAgfSwgW3Zpc2libGVdKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFZmZlY3QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSZXNldCB3aGVuIG1vdGlvbiBjaGFuZ2VkXG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIC8vIENhbmNlbCBhcHBlYXJcbiAgICBzdGF0dXMgPT09IFNUQVRVU19BUFBFQVIgJiYgIW1vdGlvbkFwcGVhciB8fCAvLyBDYW5jZWwgZW50ZXJcbiAgICBzdGF0dXMgPT09IFNUQVRVU19FTlRFUiAmJiAhbW90aW9uRW50ZXIgfHwgLy8gQ2FuY2VsIGxlYXZlXG4gICAgc3RhdHVzID09PSBTVEFUVVNfTEVBVkUgJiYgIW1vdGlvbkxlYXZlKSB7XG4gICAgICBzZXRTdGF0dXMoU1RBVFVTX05PTkUpO1xuICAgIH1cbiAgfSwgW21vdGlvbkFwcGVhciwgbW90aW9uRW50ZXIsIG1vdGlvbkxlYXZlXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNsZWFyVGltZW91dChkZWFkbGluZVJlZi5jdXJyZW50KTtcbiAgICAgIGRlc3Ryb3llZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbXSk7IC8vIFRyaWdnZXIgYG9uVmlzaWJsZUNoYW5nZWRgXG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoYXN5bmNWaXNpYmxlICE9PSB1bmRlZmluZWQgJiYgc3RhdHVzID09PSBTVEFUVVNfTk9ORSkge1xuICAgICAgb25WaXNpYmxlQ2hhbmdlZCA9PT0gbnVsbCB8fCBvblZpc2libGVDaGFuZ2VkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblZpc2libGVDaGFuZ2VkKGFzeW5jVmlzaWJsZSk7XG4gICAgfVxuICB9LCBbYXN5bmNWaXNpYmxlLCBzdGF0dXNdKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTdHlsZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBtZXJnZWRTdHlsZSA9IHN0eWxlO1xuXG4gIGlmIChldmVudEhhbmRsZXJzW1NURVBfUFJFUEFSRV0gJiYgc3RlcCA9PT0gU1RFUF9TVEFSVCkge1xuICAgIG1lcmdlZFN0eWxlID0gX29iamVjdFNwcmVhZCh7XG4gICAgICB0cmFuc2l0aW9uOiAnbm9uZSdcbiAgICB9LCBtZXJnZWRTdHlsZSk7XG4gIH1cblxuICByZXR1cm4gW3N0YXR1cywgc3RlcCwgbWVyZ2VkU3R5bGUsIGFzeW5jVmlzaWJsZSAhPT0gbnVsbCAmJiBhc3luY1Zpc2libGUgIT09IHZvaWQgMCA/IGFzeW5jVmlzaWJsZSA6IHZpc2libGVdO1xufSIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGFuaW1hdGlvbkVuZE5hbWUsIHRyYW5zaXRpb25FbmROYW1lIH0gZnJvbSAnLi4vdXRpbC9tb3Rpb24nO1xuZXhwb3J0IGRlZmF1bHQgKGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICB2YXIgY2FjaGVFbGVtZW50UmVmID0gdXNlUmVmKCk7IC8vIENhY2hlIGNhbGxiYWNrXG5cbiAgdmFyIGNhbGxiYWNrUmVmID0gdXNlUmVmKGNhbGxiYWNrKTtcbiAgY2FsbGJhY2tSZWYuY3VycmVudCA9IGNhbGxiYWNrOyAvLyBJbnRlcm5hbCBtb3Rpb24gZXZlbnQgaGFuZGxlclxuXG4gIHZhciBvbkludGVybmFsTW90aW9uRW5kID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgY2FsbGJhY2tSZWYuY3VycmVudChldmVudCk7XG4gIH0sIFtdKTsgLy8gUmVtb3ZlIGV2ZW50c1xuXG4gIGZ1bmN0aW9uIHJlbW92ZU1vdGlvbkV2ZW50cyhlbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0cmFuc2l0aW9uRW5kTmFtZSwgb25JbnRlcm5hbE1vdGlvbkVuZCk7XG4gICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYW5pbWF0aW9uRW5kTmFtZSwgb25JbnRlcm5hbE1vdGlvbkVuZCk7XG4gICAgfVxuICB9IC8vIFBhdGNoIGV2ZW50c1xuXG5cbiAgZnVuY3Rpb24gcGF0Y2hNb3Rpb25FdmVudHMoZWxlbWVudCkge1xuICAgIGlmIChjYWNoZUVsZW1lbnRSZWYuY3VycmVudCAmJiBjYWNoZUVsZW1lbnRSZWYuY3VycmVudCAhPT0gZWxlbWVudCkge1xuICAgICAgcmVtb3ZlTW90aW9uRXZlbnRzKGNhY2hlRWxlbWVudFJlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50ICE9PSBjYWNoZUVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRyYW5zaXRpb25FbmROYW1lLCBvbkludGVybmFsTW90aW9uRW5kKTtcbiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihhbmltYXRpb25FbmROYW1lLCBvbkludGVybmFsTW90aW9uRW5kKTsgLy8gU2F2ZSBhcyBjYWNoZSBpbiBjYXNlIGRvbSByZW1vdmVkIHRyaWdnZXIgYnkgYG1vdGlvbkRlYWRsaW5lYFxuXG4gICAgICBjYWNoZUVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgfVxuICB9IC8vIENsZWFuIHVwIHdoZW4gcmVtb3ZlZFxuXG5cbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmVtb3ZlTW90aW9uRXZlbnRzKGNhY2hlRWxlbWVudFJlZi5jdXJyZW50KTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHJldHVybiBbcGF0Y2hNb3Rpb25FdmVudHMsIHJlbW92ZU1vdGlvbkV2ZW50c107XG59KTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iLCJpbXBvcnQgc2V0UHJvdG90eXBlT2YgZnJvbSBcIi4vc2V0UHJvdG90eXBlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykge1xuICBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpO1xuICB9XG5cbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiBzdWJDbGFzcyxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfVxuICB9KTtcbiAgaWYgKHN1cGVyQ2xhc3MpIHNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59IiwiaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCI7XG5pbXBvcnQgYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCIuL2Fzc2VydFRoaXNJbml0aWFsaXplZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkge1xuICBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkge1xuICAgIHJldHVybiBjYWxsO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSIsImltcG9ydCBnZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiO1xuaW1wb3J0IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCBmcm9tIFwiLi9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanNcIjtcbmltcG9ydCBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gXCIuL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4uanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7XG4gIHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7XG4gIHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHtcbiAgICB2YXIgU3VwZXIgPSBnZXRQcm90b3R5cGVPZihEZXJpdmVkKSxcbiAgICAgICAgcmVzdWx0O1xuXG4gICAgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHtcbiAgICAgIHZhciBOZXdUYXJnZXQgPSBnZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtcbiAgICAgIHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTtcbiAgfTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7XG4gIGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7XG5cbiAgdHJ5IHtcbiAgICBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn0iLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG52YXIgRG9tV3JhcHBlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoRG9tV3JhcHBlciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihEb21XcmFwcGVyKTtcblxuICBmdW5jdGlvbiBEb21XcmFwcGVyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEb21XcmFwcGVyKTtcblxuICAgIHJldHVybiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhEb21XcmFwcGVyLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIERvbVdyYXBwZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydCBkZWZhdWx0IERvbVdyYXBwZXI7IiwiaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZGVmYXVsdC1wcm9wcy1tYXRjaC1wcm9wLXR5cGVzLCByZWFjdC9uby1tdWx0aS1jb21wLCByZWFjdC9wcm9wLXR5cGVzICovXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZmluZERPTU5vZGUgZnJvbSBcInJjLXV0aWwvZXMvRG9tL2ZpbmRET01Ob2RlXCI7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSBcInJjLXV0aWwvZXMvcmVmXCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGdldFRyYW5zaXRpb25OYW1lLCBzdXBwb3J0VHJhbnNpdGlvbiB9IGZyb20gJy4vdXRpbC9tb3Rpb24nO1xuaW1wb3J0IHsgU1RBVFVTX05PTkUsIFNURVBfUFJFUEFSRSwgU1RFUF9TVEFSVCB9IGZyb20gJy4vaW50ZXJmYWNlJztcbmltcG9ydCB1c2VTdGF0dXMgZnJvbSAnLi9ob29rcy91c2VTdGF0dXMnO1xuaW1wb3J0IERvbVdyYXBwZXIgZnJvbSAnLi9Eb21XcmFwcGVyJztcbmltcG9ydCB7IGlzQWN0aXZlIH0gZnJvbSAnLi9ob29rcy91c2VTdGVwUXVldWUnO1xuLyoqXG4gKiBgdHJhbnNpdGlvblN1cHBvcnRgIGlzIHVzZWQgZm9yIG5vbmUgdHJhbnNpdGlvbiB0ZXN0IGNhc2UuXG4gKiBEZWZhdWx0IHdlIHVzZSBicm93c2VyIHRyYW5zaXRpb24gZXZlbnQgc3VwcG9ydCBjaGVjay5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuQ1NTTW90aW9uKGNvbmZpZykge1xuICB2YXIgdHJhbnNpdGlvblN1cHBvcnQgPSBjb25maWc7XG5cbiAgaWYgKF90eXBlb2YoY29uZmlnKSA9PT0gJ29iamVjdCcpIHtcbiAgICB0cmFuc2l0aW9uU3VwcG9ydCA9IGNvbmZpZy50cmFuc2l0aW9uU3VwcG9ydDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3VwcG9ydFRyYW5zaXRpb24ocHJvcHMpIHtcbiAgICByZXR1cm4gISEocHJvcHMubW90aW9uTmFtZSAmJiB0cmFuc2l0aW9uU3VwcG9ydCk7XG4gIH1cblxuICB2YXIgQ1NTTW90aW9uID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICB2YXIgX3Byb3BzJHZpc2libGUgPSBwcm9wcy52aXNpYmxlLFxuICAgICAgICB2aXNpYmxlID0gX3Byb3BzJHZpc2libGUgPT09IHZvaWQgMCA/IHRydWUgOiBfcHJvcHMkdmlzaWJsZSxcbiAgICAgICAgX3Byb3BzJHJlbW92ZU9uTGVhdmUgPSBwcm9wcy5yZW1vdmVPbkxlYXZlLFxuICAgICAgICByZW1vdmVPbkxlYXZlID0gX3Byb3BzJHJlbW92ZU9uTGVhdmUgPT09IHZvaWQgMCA/IHRydWUgOiBfcHJvcHMkcmVtb3ZlT25MZWF2ZSxcbiAgICAgICAgZm9yY2VSZW5kZXIgPSBwcm9wcy5mb3JjZVJlbmRlcixcbiAgICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgbW90aW9uTmFtZSA9IHByb3BzLm1vdGlvbk5hbWUsXG4gICAgICAgIGxlYXZlZENsYXNzTmFtZSA9IHByb3BzLmxlYXZlZENsYXNzTmFtZSxcbiAgICAgICAgZXZlbnRQcm9wcyA9IHByb3BzLmV2ZW50UHJvcHM7XG4gICAgdmFyIHN1cHBvcnRNb3Rpb24gPSBpc1N1cHBvcnRUcmFuc2l0aW9uKHByb3BzKTsgLy8gUmVmIHRvIHRoZSByZWFjdCBub2RlLCBpdCBtYXkgYmUgYSBIVE1MRWxlbWVudFxuXG4gICAgdmFyIG5vZGVSZWYgPSB1c2VSZWYoKTsgLy8gUmVmIHRvIHRoZSBkb20gd3JhcHBlciBpbiBjYXNlIHJlZiBjYW4gbm90IHBhc3MgdG8gSFRNTEVsZW1lbnRcblxuICAgIHZhciB3cmFwcGVyTm9kZVJlZiA9IHVzZVJlZigpO1xuXG4gICAgZnVuY3Rpb24gZ2V0RG9tRWxlbWVudCgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBmaW5kRE9NTm9kZShub2RlUmVmLmN1cnJlbnQgfHwgd3JhcHBlck5vZGVSZWYuY3VycmVudCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE9ubHkgaGFwcGVuIHdoZW4gYG1vdGlvbkRlYWRsaW5lYCB0cmlnZ2VyIGJ1dCBlbGVtZW50IHJlbW92ZWQuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBfdXNlU3RhdHVzID0gdXNlU3RhdHVzKHN1cHBvcnRNb3Rpb24sIHZpc2libGUsIGdldERvbUVsZW1lbnQsIHByb3BzKSxcbiAgICAgICAgX3VzZVN0YXR1czIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdHVzLCA0KSxcbiAgICAgICAgc3RhdHVzID0gX3VzZVN0YXR1czJbMF0sXG4gICAgICAgIHN0YXR1c1N0ZXAgPSBfdXNlU3RhdHVzMlsxXSxcbiAgICAgICAgc3RhdHVzU3R5bGUgPSBfdXNlU3RhdHVzMlsyXSxcbiAgICAgICAgbWVyZ2VkVmlzaWJsZSA9IF91c2VTdGF0dXMyWzNdOyAvLyBSZWNvcmQgd2hldGhlciBjb250ZW50IGhhcyByZW5kZWRcbiAgICAvLyBXaWxsIHJldHVybiBudWxsIGZvciB1bi1yZW5kZXJlZCBldmVuIHdoZW4gYHJlbW92ZU9uTGVhdmU9e2ZhbHNlfWBcblxuXG4gICAgdmFyIHJlbmRlcmVkUmVmID0gUmVhY3QudXNlUmVmKG1lcmdlZFZpc2libGUpO1xuXG4gICAgaWYgKG1lcmdlZFZpc2libGUpIHtcbiAgICAgIHJlbmRlcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PSBSZWZzID09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gICAgdmFyIG9yaWdpblJlZiA9IHVzZVJlZihyZWYpO1xuICAgIG9yaWdpblJlZi5jdXJyZW50ID0gcmVmO1xuICAgIHZhciBzZXROb2RlUmVmID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIG5vZGVSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBmaWxsUmVmKG9yaWdpblJlZi5jdXJyZW50LCBub2RlKTtcbiAgICB9LCBbXSk7IC8vID09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09XG5cbiAgICB2YXIgbW90aW9uQ2hpbGRyZW47XG5cbiAgICB2YXIgbWVyZ2VkUHJvcHMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGV2ZW50UHJvcHMpLCB7fSwge1xuICAgICAgdmlzaWJsZTogdmlzaWJsZVxuICAgIH0pO1xuXG4gICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgLy8gTm8gY2hpbGRyZW5cbiAgICAgIG1vdGlvbkNoaWxkcmVuID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gU1RBVFVTX05PTkUgfHwgIWlzU3VwcG9ydFRyYW5zaXRpb24ocHJvcHMpKSB7XG4gICAgICAvLyBTdGFibGUgY2hpbGRyZW5cbiAgICAgIGlmIChtZXJnZWRWaXNpYmxlKSB7XG4gICAgICAgIG1vdGlvbkNoaWxkcmVuID0gY2hpbGRyZW4oX29iamVjdFNwcmVhZCh7fSwgbWVyZ2VkUHJvcHMpLCBzZXROb2RlUmVmKTtcbiAgICAgIH0gZWxzZSBpZiAoIXJlbW92ZU9uTGVhdmUgJiYgcmVuZGVyZWRSZWYuY3VycmVudCkge1xuICAgICAgICBtb3Rpb25DaGlsZHJlbiA9IGNoaWxkcmVuKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgbWVyZ2VkUHJvcHMpLCB7fSwge1xuICAgICAgICAgIGNsYXNzTmFtZTogbGVhdmVkQ2xhc3NOYW1lXG4gICAgICAgIH0pLCBzZXROb2RlUmVmKTtcbiAgICAgIH0gZWxzZSBpZiAoZm9yY2VSZW5kZXIpIHtcbiAgICAgICAgbW90aW9uQ2hpbGRyZW4gPSBjaGlsZHJlbihfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lcmdlZFByb3BzKSwge30sIHtcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgZGlzcGxheTogJ25vbmUnXG4gICAgICAgICAgfVxuICAgICAgICB9KSwgc2V0Tm9kZVJlZik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb3Rpb25DaGlsZHJlbiA9IG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgLy8gSW4gbW90aW9uXG4gICAgICB2YXIgc3RhdHVzU3VmZml4O1xuXG4gICAgICBpZiAoc3RhdHVzU3RlcCA9PT0gU1RFUF9QUkVQQVJFKSB7XG4gICAgICAgIHN0YXR1c1N1ZmZpeCA9ICdwcmVwYXJlJztcbiAgICAgIH0gZWxzZSBpZiAoaXNBY3RpdmUoc3RhdHVzU3RlcCkpIHtcbiAgICAgICAgc3RhdHVzU3VmZml4ID0gJ2FjdGl2ZSc7XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1c1N0ZXAgPT09IFNURVBfU1RBUlQpIHtcbiAgICAgICAgc3RhdHVzU3VmZml4ID0gJ3N0YXJ0JztcbiAgICAgIH1cblxuICAgICAgbW90aW9uQ2hpbGRyZW4gPSBjaGlsZHJlbihfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1lcmdlZFByb3BzKSwge30sIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldFRyYW5zaXRpb25OYW1lKG1vdGlvbk5hbWUsIHN0YXR1cyksIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIGdldFRyYW5zaXRpb25OYW1lKG1vdGlvbk5hbWUsIFwiXCIuY29uY2F0KHN0YXR1cywgXCItXCIpLmNvbmNhdChzdGF0dXNTdWZmaXgpKSwgc3RhdHVzU3VmZml4KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBtb3Rpb25OYW1lLCB0eXBlb2YgbW90aW9uTmFtZSA9PT0gJ3N0cmluZycpLCBfY2xhc3NOYW1lcykpLFxuICAgICAgICBzdHlsZTogc3RhdHVzU3R5bGVcbiAgICAgIH0pLCBzZXROb2RlUmVmKTtcbiAgICB9XG5cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRG9tV3JhcHBlciwge1xuICAgICAgcmVmOiB3cmFwcGVyTm9kZVJlZlxuICAgIH0sIG1vdGlvbkNoaWxkcmVuKTtcbiAgfSk7XG4gIENTU01vdGlvbi5kaXNwbGF5TmFtZSA9ICdDU1NNb3Rpb24nO1xuICByZXR1cm4gQ1NTTW90aW9uO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2VuQ1NTTW90aW9uKHN1cHBvcnRUcmFuc2l0aW9uKTsiLCJpbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbi8qKlxuICogUmV0dXJuIGlmIGEgbm9kZSBpcyBhIERPTSBub2RlLiBFbHNlIHdpbGwgcmV0dXJuIGJ5IGBmaW5kRE9NTm9kZWBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBmaW5kRE9NTm9kZShub2RlKSB7XG4gIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdERPTS5maW5kRE9NTm9kZShub2RlKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG4gIHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufSIsImltcG9ydCBvYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIGZyb20gXCIuL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0gb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgdmFyIGtleSwgaTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIHZhciBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcbiAgdmFyIGtleSwgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaV07XG4gICAgaWYgKGV4Y2x1ZGVkLmluZGV4T2Yoa2V5KSA+PSAwKSBjb250aW51ZTtcbiAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn0iLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuZXhwb3J0IHZhciBTVEFUVVNfQUREID0gJ2FkZCc7XG5leHBvcnQgdmFyIFNUQVRVU19LRUVQID0gJ2tlZXAnO1xuZXhwb3J0IHZhciBTVEFUVVNfUkVNT1ZFID0gJ3JlbW92ZSc7XG5leHBvcnQgdmFyIFNUQVRVU19SRU1PVkVEID0gJ3JlbW92ZWQnO1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBLZXlUb09iamVjdChrZXkpIHtcbiAgdmFyIGtleU9iajtcblxuICBpZiAoa2V5ICYmIF90eXBlb2Yoa2V5KSA9PT0gJ29iamVjdCcgJiYgJ2tleScgaW4ga2V5KSB7XG4gICAga2V5T2JqID0ga2V5O1xuICB9IGVsc2Uge1xuICAgIGtleU9iaiA9IHtcbiAgICAgIGtleToga2V5XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGtleU9iaiksIHt9LCB7XG4gICAga2V5OiBTdHJpbmcoa2V5T2JqLmtleSlcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLZXlzKCkge1xuICB2YXIga2V5cyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107XG4gIHJldHVybiBrZXlzLm1hcCh3cmFwS2V5VG9PYmplY3QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZLZXlzKCkge1xuICB2YXIgcHJldktleXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IFtdO1xuICB2YXIgY3VycmVudEtleXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFtdO1xuICB2YXIgbGlzdCA9IFtdO1xuICB2YXIgY3VycmVudEluZGV4ID0gMDtcbiAgdmFyIGN1cnJlbnRMZW4gPSBjdXJyZW50S2V5cy5sZW5ndGg7XG4gIHZhciBwcmV2S2V5T2JqZWN0cyA9IHBhcnNlS2V5cyhwcmV2S2V5cyk7XG4gIHZhciBjdXJyZW50S2V5T2JqZWN0cyA9IHBhcnNlS2V5cyhjdXJyZW50S2V5cyk7IC8vIENoZWNrIHByZXYga2V5cyB0byBpbnNlcnQgb3Iga2VlcFxuXG4gIHByZXZLZXlPYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKGtleU9iaikge1xuICAgIHZhciBoaXQgPSBmYWxzZTtcblxuICAgIGZvciAodmFyIGkgPSBjdXJyZW50SW5kZXg7IGkgPCBjdXJyZW50TGVuOyBpICs9IDEpIHtcbiAgICAgIHZhciBjdXJyZW50S2V5T2JqID0gY3VycmVudEtleU9iamVjdHNbaV07XG5cbiAgICAgIGlmIChjdXJyZW50S2V5T2JqLmtleSA9PT0ga2V5T2JqLmtleSkge1xuICAgICAgICAvLyBOZXcgYWRkZWQga2V5cyBzaG91bGQgYWRkIGJlZm9yZSBjdXJyZW50IGtleVxuICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgaSkge1xuICAgICAgICAgIGxpc3QgPSBsaXN0LmNvbmNhdChjdXJyZW50S2V5T2JqZWN0cy5zbGljZShjdXJyZW50SW5kZXgsIGkpLm1hcChmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBvYmopLCB7fSwge1xuICAgICAgICAgICAgICBzdGF0dXM6IFNUQVRVU19BRERcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGlzdC5wdXNoKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgY3VycmVudEtleU9iaiksIHt9LCB7XG4gICAgICAgICAgc3RhdHVzOiBTVEFUVVNfS0VFUFxuICAgICAgICB9KSk7XG4gICAgICAgIGN1cnJlbnRJbmRleCArPSAxO1xuICAgICAgICBoaXQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IC8vIElmIG5vdCBoaXQsIGl0IG1lYW5zIGtleSBpcyByZW1vdmVkXG5cblxuICAgIGlmICghaGl0KSB7XG4gICAgICBsaXN0LnB1c2goX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBrZXlPYmopLCB7fSwge1xuICAgICAgICBzdGF0dXM6IFNUQVRVU19SRU1PVkVcbiAgICAgIH0pKTtcbiAgICB9XG4gIH0pOyAvLyBBZGQgcmVzdCB0byB0aGUgbGlzdFxuXG4gIGlmIChjdXJyZW50SW5kZXggPCBjdXJyZW50TGVuKSB7XG4gICAgbGlzdCA9IGxpc3QuY29uY2F0KGN1cnJlbnRLZXlPYmplY3RzLnNsaWNlKGN1cnJlbnRJbmRleCkubWFwKGZ1bmN0aW9uIChvYmopIHtcbiAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG9iaiksIHt9LCB7XG4gICAgICAgIHN0YXR1czogU1RBVFVTX0FERFxuICAgICAgfSk7XG4gICAgfSkpO1xuICB9XG4gIC8qKlxuICAgKiBNZXJnZSBzYW1lIGtleSB3aGVuIGl0IHJlbW92ZSBhbmQgYWRkIGFnYWluOlxuICAgKiAgICBbMSAtIGFkZCwgMiAtIGtlZXAsIDEgLSByZW1vdmVdIC0+IFsxIC0ga2VlcCwgMiAtIGtlZXBdXG4gICAqL1xuXG5cbiAgdmFyIGtleXMgPSB7fTtcbiAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGtleSA9IF9yZWYua2V5O1xuICAgIGtleXNba2V5XSA9IChrZXlzW2tleV0gfHwgMCkgKyAxO1xuICB9KTtcbiAgdmFyIGR1cGxpY2F0ZWRLZXlzID0gT2JqZWN0LmtleXMoa2V5cykuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4ga2V5c1trZXldID4gMTtcbiAgfSk7XG4gIGR1cGxpY2F0ZWRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG1hdGNoS2V5KSB7XG4gICAgLy8gUmVtb3ZlIGBTVEFUVVNfUkVNT1ZFYCBub2RlLlxuICAgIGxpc3QgPSBsaXN0LmZpbHRlcihmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciBrZXkgPSBfcmVmMi5rZXksXG4gICAgICAgICAgc3RhdHVzID0gX3JlZjIuc3RhdHVzO1xuICAgICAgcmV0dXJuIGtleSAhPT0gbWF0Y2hLZXkgfHwgc3RhdHVzICE9PSBTVEFUVVNfUkVNT1ZFO1xuICAgIH0pOyAvLyBVcGRhdGUgYFNUQVRVU19BRERgIHRvIGBTVEFUVVNfS0VFUGBcblxuICAgIGxpc3QuZm9yRWFjaChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgaWYgKG5vZGUua2V5ID09PSBtYXRjaEtleSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgbm9kZS5zdGF0dXMgPSBTVEFUVVNfS0VFUDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBsaXN0O1xufSIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuXG4vKiBlc2xpbnQgcmVhY3QvcHJvcC10eXBlczogMCAqL1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IE9yaWdpbkNTU01vdGlvbiBmcm9tICcuL0NTU01vdGlvbic7XG5pbXBvcnQgeyBzdXBwb3J0VHJhbnNpdGlvbiB9IGZyb20gJy4vdXRpbC9tb3Rpb24nO1xuaW1wb3J0IHsgU1RBVFVTX0FERCwgU1RBVFVTX0tFRVAsIFNUQVRVU19SRU1PVkUsIFNUQVRVU19SRU1PVkVELCBkaWZmS2V5cywgcGFyc2VLZXlzIH0gZnJvbSAnLi91dGlsL2RpZmYnO1xudmFyIE1PVElPTl9QUk9QX05BTUVTID0gWydldmVudFByb3BzJywgJ3Zpc2libGUnLCAnY2hpbGRyZW4nLCAnbW90aW9uTmFtZScsICdtb3Rpb25BcHBlYXInLCAnbW90aW9uRW50ZXInLCAnbW90aW9uTGVhdmUnLCAnbW90aW9uTGVhdmVJbW1lZGlhdGVseScsICdtb3Rpb25EZWFkbGluZScsICdyZW1vdmVPbkxlYXZlJywgJ2xlYXZlZENsYXNzTmFtZScsICdvbkFwcGVhclN0YXJ0JywgJ29uQXBwZWFyQWN0aXZlJywgJ29uQXBwZWFyRW5kJywgJ29uRW50ZXJTdGFydCcsICdvbkVudGVyQWN0aXZlJywgJ29uRW50ZXJFbmQnLCAnb25MZWF2ZVN0YXJ0JywgJ29uTGVhdmVBY3RpdmUnLCAnb25MZWF2ZUVuZCddO1xuLyoqXG4gKiBHZW5lcmF0ZSBhIENTU01vdGlvbkxpc3QgY29tcG9uZW50IHdpdGggY29uZmlnXG4gKiBAcGFyYW0gdHJhbnNpdGlvblN1cHBvcnQgTm8gbmVlZCBzaW5jZSBDU1NNb3Rpb25MaXN0IG5vIGxvbmdlciBkZXBlbmRzIG9uIHRyYW5zaXRpb24gc3VwcG9ydFxuICogQHBhcmFtIENTU01vdGlvbiBDU1NNb3Rpb24gY29tcG9uZW50XG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbkNTU01vdGlvbkxpc3QodHJhbnNpdGlvblN1cHBvcnQpIHtcbiAgdmFyIENTU01vdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogT3JpZ2luQ1NTTW90aW9uO1xuXG4gIHZhciBDU1NNb3Rpb25MaXN0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKENTU01vdGlvbkxpc3QsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihDU1NNb3Rpb25MaXN0KTtcblxuICAgIGZ1bmN0aW9uIENTU01vdGlvbkxpc3QoKSB7XG4gICAgICB2YXIgX3RoaXM7XG5cbiAgICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDU1NNb3Rpb25MaXN0KTtcblxuICAgICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgICBrZXlFbnRpdGllczogW11cbiAgICAgIH07XG5cbiAgICAgIF90aGlzLnJlbW92ZUtleSA9IGZ1bmN0aW9uIChyZW1vdmVLZXkpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgICB2YXIga2V5RW50aXRpZXMgPSBfcmVmLmtleUVudGl0aWVzO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXlFbnRpdGllczoga2V5RW50aXRpZXMubWFwKGZ1bmN0aW9uIChlbnRpdHkpIHtcbiAgICAgICAgICAgICAgaWYgKGVudGl0eS5rZXkgIT09IHJlbW92ZUtleSkgcmV0dXJuIGVudGl0eTtcbiAgICAgICAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZW50aXR5KSwge30sIHtcbiAgICAgICAgICAgICAgICBzdGF0dXM6IFNUQVRVU19SRU1PVkVEXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoQ1NTTW90aW9uTGlzdCwgW3tcbiAgICAgIGtleTogXCJyZW5kZXJcIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBrZXlFbnRpdGllcyA9IHRoaXMuc3RhdGUua2V5RW50aXRpZXM7XG5cbiAgICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IF90aGlzJHByb3BzLmNvbXBvbmVudCxcbiAgICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICBfb25WaXNpYmxlQ2hhbmdlZCA9IF90aGlzJHByb3BzLm9uVmlzaWJsZUNoYW5nZWQsXG4gICAgICAgICAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHMsIFtcImNvbXBvbmVudFwiLCBcImNoaWxkcmVuXCIsIFwib25WaXNpYmxlQ2hhbmdlZFwiXSk7XG5cbiAgICAgICAgdmFyIENvbXBvbmVudCA9IGNvbXBvbmVudCB8fCBSZWFjdC5GcmFnbWVudDtcbiAgICAgICAgdmFyIG1vdGlvblByb3BzID0ge307XG4gICAgICAgIE1PVElPTl9QUk9QX05BTUVTLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICBtb3Rpb25Qcm9wc1twcm9wXSA9IHJlc3RQcm9wc1twcm9wXTtcbiAgICAgICAgICBkZWxldGUgcmVzdFByb3BzW3Byb3BdO1xuICAgICAgICB9KTtcbiAgICAgICAgZGVsZXRlIHJlc3RQcm9wcy5rZXlzO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCByZXN0UHJvcHMsIGtleUVudGl0aWVzLm1hcChmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgICB2YXIgc3RhdHVzID0gX3JlZjIuc3RhdHVzLFxuICAgICAgICAgICAgICBldmVudFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYyLCBbXCJzdGF0dXNcIl0pO1xuXG4gICAgICAgICAgdmFyIHZpc2libGUgPSBzdGF0dXMgPT09IFNUQVRVU19BREQgfHwgc3RhdHVzID09PSBTVEFUVVNfS0VFUDtcbiAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTTW90aW9uLCBfZXh0ZW5kcyh7fSwgbW90aW9uUHJvcHMsIHtcbiAgICAgICAgICAgIGtleTogZXZlbnRQcm9wcy5rZXksXG4gICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlLFxuICAgICAgICAgICAgZXZlbnRQcm9wczogZXZlbnRQcm9wcyxcbiAgICAgICAgICAgIG9uVmlzaWJsZUNoYW5nZWQ6IGZ1bmN0aW9uIG9uVmlzaWJsZUNoYW5nZWQoY2hhbmdlZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgX29uVmlzaWJsZUNoYW5nZWQgPT09IG51bGwgfHwgX29uVmlzaWJsZUNoYW5nZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9vblZpc2libGVDaGFuZ2VkKGNoYW5nZWRWaXNpYmxlLCB7XG4gICAgICAgICAgICAgICAga2V5OiBldmVudFByb3BzLmtleVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoIWNoYW5nZWRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnJlbW92ZUtleShldmVudFByb3BzLmtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSwgY2hpbGRyZW4pO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfV0sIFt7XG4gICAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYzLCBfcmVmNCkge1xuICAgICAgICB2YXIga2V5cyA9IF9yZWYzLmtleXM7XG4gICAgICAgIHZhciBrZXlFbnRpdGllcyA9IF9yZWY0LmtleUVudGl0aWVzO1xuICAgICAgICB2YXIgcGFyc2VkS2V5T2JqZWN0cyA9IHBhcnNlS2V5cyhrZXlzKTtcbiAgICAgICAgdmFyIG1peGVkS2V5RW50aXRpZXMgPSBkaWZmS2V5cyhrZXlFbnRpdGllcywgcGFyc2VkS2V5T2JqZWN0cyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5RW50aXRpZXM6IG1peGVkS2V5RW50aXRpZXMuZmlsdGVyKGZ1bmN0aW9uIChlbnRpdHkpIHtcbiAgICAgICAgICAgIHZhciBwcmV2RW50aXR5ID0ga2V5RW50aXRpZXMuZmluZChmdW5jdGlvbiAoX3JlZjUpIHtcbiAgICAgICAgICAgICAgdmFyIGtleSA9IF9yZWY1LmtleTtcbiAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eS5rZXkgPT09IGtleTtcbiAgICAgICAgICAgIH0pOyAvLyBSZW1vdmUgaWYgYWxyZWFkeSBtYXJrIGFzIHJlbW92ZWRcblxuICAgICAgICAgICAgaWYgKHByZXZFbnRpdHkgJiYgcHJldkVudGl0eS5zdGF0dXMgPT09IFNUQVRVU19SRU1PVkVEICYmIGVudGl0eS5zdGF0dXMgPT09IFNUQVRVU19SRU1PVkUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBDU1NNb3Rpb25MaXN0O1xuICB9KFJlYWN0LkNvbXBvbmVudCk7XG5cbiAgQ1NTTW90aW9uTGlzdC5kZWZhdWx0UHJvcHMgPSB7XG4gICAgY29tcG9uZW50OiAnZGl2J1xuICB9O1xuICByZXR1cm4gQ1NTTW90aW9uTGlzdDtcbn1cbmV4cG9ydCBkZWZhdWx0IGdlbkNTU01vdGlvbkxpc3Qoc3VwcG9ydFRyYW5zaXRpb24pOyIsImltcG9ydCBDU1NNb3Rpb24gZnJvbSAnLi9DU1NNb3Rpb24nO1xuaW1wb3J0IENTU01vdGlvbkxpc3QgZnJvbSAnLi9DU1NNb3Rpb25MaXN0JztcbmV4cG9ydCB7IENTU01vdGlvbkxpc3QgfTtcbmV4cG9ydCBkZWZhdWx0IENTU01vdGlvbjsiLCJ2YXIgZztcblxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcbmcgPSAoZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzO1xufSkoKTtcblxudHJ5IHtcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXG5cdGcgPSBnIHx8IG5ldyBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCk7XG59IGNhdGNoIChlKSB7XG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKSBnID0gd2luZG93O1xufVxuXG4vLyBnIGNhbiBzdGlsbCBiZSB1bmRlZmluZWQsIGJ1dCBub3RoaW5nIHRvIGRvIGFib3V0IGl0Li4uXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGc7XG4iLCJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjEyJyB9O1xuaWYgKHR5cGVvZiBfX2UgPT0gJ251bWJlcicpIF9fZSA9IGNvcmU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNldFdhcm5lZFwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfd2FybmluZy5yZXNldFdhcm5lZDtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF93YXJuaW5nID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJjLXV0aWwvbGliL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgX2RlZmF1bHQgPSBmdW5jdGlvbiBfZGVmYXVsdCh2YWxpZCwgY29tcG9uZW50LCBtZXNzYWdlKSB7XG4gICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKHZhbGlkLCBcIlthbnRkOiBcIi5jb25jYXQoY29tcG9uZW50LCBcIl0gXCIpLmNvbmNhdChtZXNzYWdlKSk7XG59O1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgVGFibGVDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG52YXIgX2RlZmF1bHQgPSBUYWJsZUNvbnRleHQ7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiLCJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJpdHkobiwgZm4pIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgc3dpdGNoIChuKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCkge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDI6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSkge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDM6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA0OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMykge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDU6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIsIGEzLCBhNCkge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDY6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSA3OlxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNikge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDg6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNykge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG5cbiAgICBjYXNlIDk6XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgY2FzZSAxMDpcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYsIGE3LCBhOCwgYTkpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgYXJndW1lbnQgdG8gX2FyaXR5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciBubyBncmVhdGVyIHRoYW4gdGVuJyk7XG4gIH1cbn0iLCJ2YXIgbm93ID0gcmVxdWlyZSgncGVyZm9ybWFuY2Utbm93JylcbiAgLCByb290ID0gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3dcbiAgLCB2ZW5kb3JzID0gWydtb3onLCAnd2Via2l0J11cbiAgLCBzdWZmaXggPSAnQW5pbWF0aW9uRnJhbWUnXG4gICwgcmFmID0gcm9vdFsncmVxdWVzdCcgKyBzdWZmaXhdXG4gICwgY2FmID0gcm9vdFsnY2FuY2VsJyArIHN1ZmZpeF0gfHwgcm9vdFsnY2FuY2VsUmVxdWVzdCcgKyBzdWZmaXhdXG5cbmZvcih2YXIgaSA9IDA7ICFyYWYgJiYgaSA8IHZlbmRvcnMubGVuZ3RoOyBpKyspIHtcbiAgcmFmID0gcm9vdFt2ZW5kb3JzW2ldICsgJ1JlcXVlc3QnICsgc3VmZml4XVxuICBjYWYgPSByb290W3ZlbmRvcnNbaV0gKyAnQ2FuY2VsJyArIHN1ZmZpeF1cbiAgICAgIHx8IHJvb3RbdmVuZG9yc1tpXSArICdDYW5jZWxSZXF1ZXN0JyArIHN1ZmZpeF1cbn1cblxuLy8gU29tZSB2ZXJzaW9ucyBvZiBGRiBoYXZlIHJBRiBidXQgbm90IGNBRlxuaWYoIXJhZiB8fCAhY2FmKSB7XG4gIHZhciBsYXN0ID0gMFxuICAgICwgaWQgPSAwXG4gICAgLCBxdWV1ZSA9IFtdXG4gICAgLCBmcmFtZUR1cmF0aW9uID0gMTAwMCAvIDYwXG5cbiAgcmFmID0gZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICBpZihxdWV1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhciBfbm93ID0gbm93KClcbiAgICAgICAgLCBuZXh0ID0gTWF0aC5tYXgoMCwgZnJhbWVEdXJhdGlvbiAtIChfbm93IC0gbGFzdCkpXG4gICAgICBsYXN0ID0gbmV4dCArIF9ub3dcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBjcCA9IHF1ZXVlLnNsaWNlKDApXG4gICAgICAgIC8vIENsZWFyIHF1ZXVlIGhlcmUgdG8gcHJldmVudFxuICAgICAgICAvLyBjYWxsYmFja3MgZnJvbSBhcHBlbmRpbmcgbGlzdGVuZXJzXG4gICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IGZyYW1lJ3MgcXVldWVcbiAgICAgICAgcXVldWUubGVuZ3RoID0gMFxuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgY3AubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZighY3BbaV0uY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICB0cnl7XG4gICAgICAgICAgICAgIGNwW2ldLmNhbGxiYWNrKGxhc3QpXG4gICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3cgZSB9LCAwKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgTWF0aC5yb3VuZChuZXh0KSlcbiAgICB9XG4gICAgcXVldWUucHVzaCh7XG4gICAgICBoYW5kbGU6ICsraWQsXG4gICAgICBjYWxsYmFjazogY2FsbGJhY2ssXG4gICAgICBjYW5jZWxsZWQ6IGZhbHNlXG4gICAgfSlcbiAgICByZXR1cm4gaWRcbiAgfVxuXG4gIGNhZiA9IGZ1bmN0aW9uKGhhbmRsZSkge1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYocXVldWVbaV0uaGFuZGxlID09PSBoYW5kbGUpIHtcbiAgICAgICAgcXVldWVbaV0uY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGZuKSB7XG4gIC8vIFdyYXAgaW4gYSBuZXcgZnVuY3Rpb24gdG8gcHJldmVudFxuICAvLyBgY2FuY2VsYCBwb3RlbnRpYWxseSBiZWluZyBhc3NpZ25lZFxuICAvLyB0byB0aGUgbmF0aXZlIHJBRiBmdW5jdGlvblxuICByZXR1cm4gcmFmLmNhbGwocm9vdCwgZm4pXG59XG5tb2R1bGUuZXhwb3J0cy5jYW5jZWwgPSBmdW5jdGlvbigpIHtcbiAgY2FmLmFwcGx5KHJvb3QsIGFyZ3VtZW50cylcbn1cbm1vZHVsZS5leHBvcnRzLnBvbHlmaWxsID0gZnVuY3Rpb24ob2JqZWN0KSB7XG4gIGlmICghb2JqZWN0KSB7XG4gICAgb2JqZWN0ID0gcm9vdDtcbiAgfVxuICBvYmplY3QucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gcmFmXG4gIG9iamVjdC5jYW5jZWxBbmltYXRpb25GcmFtZSA9IGNhZlxufVxuIiwidmFyIG9iajtcbnZhciBOT1RISU5HID0gdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiA/IFN5bWJvbChcImltbWVyLW5vdGhpbmdcIikgOiAoIG9iaiA9IHt9LCBvYmpbXCJpbW1lci1ub3RoaW5nXCJdID0gdHJ1ZSwgb2JqICk7XG52YXIgRFJBRlRBQkxFID0gdHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBTeW1ib2wuZm9yID8gU3ltYm9sLmZvcihcImltbWVyLWRyYWZ0YWJsZVwiKSA6IFwiX18kaW1tZXJfZHJhZnRhYmxlXCI7XG52YXIgRFJBRlRfU1RBVEUgPSB0eXBlb2YgU3ltYm9sICE9PSBcInVuZGVmaW5lZFwiICYmIFN5bWJvbC5mb3IgPyBTeW1ib2wuZm9yKFwiaW1tZXItc3RhdGVcIikgOiBcIl9fJGltbWVyX3N0YXRlXCI7XG5mdW5jdGlvbiBpc0RyYWZ0KHZhbHVlKSB7XG4gIHJldHVybiAhIXZhbHVlICYmICEhdmFsdWVbRFJBRlRfU1RBVEVdO1xufVxuZnVuY3Rpb24gaXNEcmFmdGFibGUodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHsgcmV0dXJuIGZhbHNlOyB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgeyByZXR1cm4gdHJ1ZTsgfVxuICB2YXIgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICBpZiAoIXByb3RvIHx8IHByb3RvID09PSBPYmplY3QucHJvdG90eXBlKSB7IHJldHVybiB0cnVlOyB9XG4gIHJldHVybiAhIXZhbHVlW0RSQUZUQUJMRV0gfHwgISF2YWx1ZS5jb25zdHJ1Y3RvcltEUkFGVEFCTEVdO1xufVxuZnVuY3Rpb24gb3JpZ2luYWwodmFsdWUpIHtcbiAgaWYgKHZhbHVlICYmIHZhbHVlW0RSQUZUX1NUQVRFXSkge1xuICAgIHJldHVybiB2YWx1ZVtEUkFGVF9TVEFURV0uYmFzZTtcbiAgfSAvLyBvdGhlcndpc2UgcmV0dXJuIHVuZGVmaW5lZFxuXG59XG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCB2YWx1ZSkge1xuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoaGFzKHZhbHVlLCBrZXkpKSB7XG4gICAgICB0YXJnZXRba2V5XSA9IHZhbHVlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn07XG52YXIgb3duS2V5cyA9IHR5cGVvZiBSZWZsZWN0ICE9PSBcInVuZGVmaW5lZFwiICYmIFJlZmxlY3Qub3duS2V5cyA/IFJlZmxlY3Qub3duS2V5cyA6IHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICE9PSBcInVuZGVmaW5lZFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmopKTsgfSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzO1xuZnVuY3Rpb24gc2hhbGxvd0NvcHkoYmFzZSwgaW52b2tlR2V0dGVycykge1xuICBpZiAoIGludm9rZUdldHRlcnMgPT09IHZvaWQgMCApIGludm9rZUdldHRlcnMgPSBmYWxzZTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShiYXNlKSkgeyByZXR1cm4gYmFzZS5zbGljZSgpOyB9XG4gIHZhciBjbG9uZSA9IE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKGJhc2UpKTtcbiAgb3duS2V5cyhiYXNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoa2V5ID09PSBEUkFGVF9TVEFURSkge1xuICAgICAgcmV0dXJuOyAvLyBOZXZlciBjb3B5IG92ZXIgZHJhZnQgc3RhdGUuXG4gICAgfVxuXG4gICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGJhc2UsIGtleSk7XG4gICAgdmFyIHZhbHVlID0gZGVzYy52YWx1ZTtcblxuICAgIGlmIChkZXNjLmdldCkge1xuICAgICAgaWYgKGludm9rZUdldHRlcnMpIHtcbiAgICAgICAgdmFsdWUgPSBkZXNjLmdldC5jYWxsKGJhc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXNjLmVudW1lcmFibGUpIHtcbiAgICAgIGNsb25lW2tleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGludm9rZUdldHRlcnMpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbG9uZSwga2V5LCB7XG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGNsb25lO1xufVxuZnVuY3Rpb24gZWFjaCh2YWx1ZSwgY2IpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeyBjYihpLCB2YWx1ZVtpXSwgdmFsdWUpOyB9XG4gIH0gZWxzZSB7XG4gICAgb3duS2V5cyh2YWx1ZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IHJldHVybiBjYihrZXksIHZhbHVlW2tleV0sIHZhbHVlKTsgfSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzRW51bWVyYWJsZShiYXNlLCBwcm9wKSB7XG4gIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlLCBwcm9wKTtcbiAgcmV0dXJuICEhZGVzYyAmJiBkZXNjLmVudW1lcmFibGU7XG59XG5mdW5jdGlvbiBoYXModGhpbmcsIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGluZywgcHJvcCk7XG59XG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIC8vIEZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mYmpzL2Jsb2IvYzY5OTA0YTUxMWI5MDAyNjY5MzUxNjgyMjMwNjNkZDg3NzJkZmM0MC9wYWNrYWdlcy9mYmpzL3NyYy9jb3JlL3NoYWxsb3dFcXVhbC5qc1xuICBpZiAoeCA9PT0geSkge1xuICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICB9XG59XG5cbi8qKiBFYWNoIHNjb3BlIHJlcHJlc2VudHMgYSBgcHJvZHVjZWAgY2FsbC4gKi9cblxudmFyIEltbWVyU2NvcGUgPSBmdW5jdGlvbiBJbW1lclNjb3BlKHBhcmVudCkge1xuICB0aGlzLmRyYWZ0cyA9IFtdO1xuICB0aGlzLnBhcmVudCA9IHBhcmVudDsgLy8gV2hlbmV2ZXIgdGhlIG1vZGlmaWVkIGRyYWZ0IGNvbnRhaW5zIGEgZHJhZnQgZnJvbSBhbm90aGVyIHNjb3BlLCB3ZVxuICAvLyBuZWVkIHRvIHByZXZlbnQgYXV0by1mcmVlemluZyBzbyB0aGUgdW5vd25lZCBkcmFmdCBjYW4gYmUgZmluYWxpemVkLlxuXG4gIHRoaXMuY2FuQXV0b0ZyZWV6ZSA9IHRydWU7IC8vIFRvIGF2b2lkIHByb3RvdHlwZSBsb29rdXBzOlxuXG4gIHRoaXMucGF0Y2hlcyA9IG51bGw7XG59O1xuXG5JbW1lclNjb3BlLnByb3RvdHlwZS51c2VQYXRjaGVzID0gZnVuY3Rpb24gdXNlUGF0Y2hlcyAocGF0Y2hMaXN0ZW5lcikge1xuICBpZiAocGF0Y2hMaXN0ZW5lcikge1xuICAgIHRoaXMucGF0Y2hlcyA9IFtdO1xuICAgIHRoaXMuaW52ZXJzZVBhdGNoZXMgPSBbXTtcbiAgICB0aGlzLnBhdGNoTGlzdGVuZXIgPSBwYXRjaExpc3RlbmVyO1xuICB9XG59O1xuXG5JbW1lclNjb3BlLnByb3RvdHlwZS5yZXZva2UgPSBmdW5jdGlvbiByZXZva2UkMSAoKSB7XG4gIHRoaXMubGVhdmUoKTtcbiAgdGhpcy5kcmFmdHMuZm9yRWFjaChyZXZva2UpO1xuICB0aGlzLmRyYWZ0cyA9IG51bGw7IC8vIE1ha2UgZHJhZnQtcmVsYXRlZCBtZXRob2RzIHRocm93LlxufTtcblxuSW1tZXJTY29wZS5wcm90b3R5cGUubGVhdmUgPSBmdW5jdGlvbiBsZWF2ZSAoKSB7XG4gIGlmICh0aGlzID09PSBJbW1lclNjb3BlLmN1cnJlbnQpIHtcbiAgICBJbW1lclNjb3BlLmN1cnJlbnQgPSB0aGlzLnBhcmVudDtcbiAgfVxufTtcbkltbWVyU2NvcGUuY3VycmVudCA9IG51bGw7XG5cbkltbWVyU2NvcGUuZW50ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmN1cnJlbnQgPSBuZXcgSW1tZXJTY29wZSh0aGlzLmN1cnJlbnQpO1xufTtcblxuZnVuY3Rpb24gcmV2b2tlKGRyYWZ0KSB7XG4gIGRyYWZ0W0RSQUZUX1NUQVRFXS5yZXZva2UoKTtcbn1cblxuLy8gYnV0IHNoYXJlIHRoZW0gYWxsIGluc3RlYWRcblxudmFyIGRlc2NyaXB0b3JzID0ge307XG5mdW5jdGlvbiB3aWxsRmluYWxpemUoc2NvcGUsIHJlc3VsdCwgaXNSZXBsYWNlZCkge1xuICBzY29wZS5kcmFmdHMuZm9yRWFjaChmdW5jdGlvbiAoZHJhZnQpIHtcbiAgICBkcmFmdFtEUkFGVF9TVEFURV0uZmluYWxpemluZyA9IHRydWU7XG4gIH0pO1xuXG4gIGlmICghaXNSZXBsYWNlZCkge1xuICAgIGlmIChzY29wZS5wYXRjaGVzKSB7XG4gICAgICBtYXJrQ2hhbmdlc1JlY3Vyc2l2ZWx5KHNjb3BlLmRyYWZ0c1swXSk7XG4gICAgfSAvLyBUaGlzIGlzIGZhc3RlciB3aGVuIHdlIGRvbid0IGNhcmUgYWJvdXQgd2hpY2ggYXR0cmlidXRlcyBjaGFuZ2VkLlxuXG5cbiAgICBtYXJrQ2hhbmdlc1N3ZWVwKHNjb3BlLmRyYWZ0cyk7XG4gIH0gLy8gV2hlbiBhIGNoaWxkIGRyYWZ0IGlzIHJldHVybmVkLCBsb29rIGZvciBjaGFuZ2VzLlxuICBlbHNlIGlmIChpc0RyYWZ0KHJlc3VsdCkgJiYgcmVzdWx0W0RSQUZUX1NUQVRFXS5zY29wZSA9PT0gc2NvcGUpIHtcbiAgICAgIG1hcmtDaGFuZ2VzU3dlZXAoc2NvcGUuZHJhZnRzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQcm94eShiYXNlLCBwYXJlbnQpIHtcbiAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KGJhc2UpO1xuICB2YXIgZHJhZnQgPSBjbG9uZVBvdGVudGlhbERyYWZ0KGJhc2UpO1xuICBlYWNoKGRyYWZ0LCBmdW5jdGlvbiAocHJvcCkge1xuICAgIHByb3h5UHJvcGVydHkoZHJhZnQsIHByb3AsIGlzQXJyYXkgfHwgaXNFbnVtZXJhYmxlKGJhc2UsIHByb3ApKTtcbiAgfSk7IC8vIFNlZSBcInByb3h5LmpzXCIgZm9yIHByb3BlcnR5IGRvY3VtZW50YXRpb24uXG5cbiAgdmFyIHNjb3BlID0gcGFyZW50ID8gcGFyZW50LnNjb3BlIDogSW1tZXJTY29wZS5jdXJyZW50O1xuICB2YXIgc3RhdGUgPSB7XG4gICAgc2NvcGU6IHNjb3BlLFxuICAgIG1vZGlmaWVkOiBmYWxzZSxcbiAgICBmaW5hbGl6aW5nOiBmYWxzZSxcbiAgICAvLyBlczUgb25seVxuICAgIGZpbmFsaXplZDogZmFsc2UsXG4gICAgYXNzaWduZWQ6IHt9LFxuICAgIHBhcmVudDogcGFyZW50LFxuICAgIGJhc2U6IGJhc2UsXG4gICAgZHJhZnQ6IGRyYWZ0LFxuICAgIGNvcHk6IG51bGwsXG4gICAgcmV2b2tlOiByZXZva2UkMSxcbiAgICByZXZva2VkOiBmYWxzZSAvLyBlczUgb25seVxuXG4gIH07XG4gIGNyZWF0ZUhpZGRlblByb3BlcnR5KGRyYWZ0LCBEUkFGVF9TVEFURSwgc3RhdGUpO1xuICBzY29wZS5kcmFmdHMucHVzaChkcmFmdCk7XG4gIHJldHVybiBkcmFmdDtcbn1cblxuZnVuY3Rpb24gcmV2b2tlJDEoKSB7XG4gIHRoaXMucmV2b2tlZCA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIHNvdXJjZShzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuY29weSB8fCBzdGF0ZS5iYXNlO1xufSAvLyBBY2Nlc3MgYSBwcm9wZXJ0eSB3aXRob3V0IGNyZWF0aW5nIGFuIEltbWVyIGRyYWZ0LlxuXG5cbmZ1bmN0aW9uIHBlZWsoZHJhZnQsIHByb3ApIHtcbiAgdmFyIHN0YXRlID0gZHJhZnRbRFJBRlRfU1RBVEVdO1xuXG4gIGlmIChzdGF0ZSAmJiAhc3RhdGUuZmluYWxpemluZykge1xuICAgIHN0YXRlLmZpbmFsaXppbmcgPSB0cnVlO1xuICAgIHZhciB2YWx1ZSA9IGRyYWZ0W3Byb3BdO1xuICAgIHN0YXRlLmZpbmFsaXppbmcgPSBmYWxzZTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gZHJhZnRbcHJvcF07XG59XG5cbmZ1bmN0aW9uIGdldChzdGF0ZSwgcHJvcCkge1xuICBhc3NlcnRVbnJldm9rZWQoc3RhdGUpO1xuICB2YXIgdmFsdWUgPSBwZWVrKHNvdXJjZShzdGF0ZSksIHByb3ApO1xuICBpZiAoc3RhdGUuZmluYWxpemluZykgeyByZXR1cm4gdmFsdWU7IH0gLy8gQ3JlYXRlIGEgZHJhZnQgaWYgdGhlIHZhbHVlIGlzIHVubW9kaWZpZWQuXG5cbiAgaWYgKHZhbHVlID09PSBwZWVrKHN0YXRlLmJhc2UsIHByb3ApICYmIGlzRHJhZnRhYmxlKHZhbHVlKSkge1xuICAgIHByZXBhcmVDb3B5KHN0YXRlKTtcbiAgICByZXR1cm4gc3RhdGUuY29weVtwcm9wXSA9IGNyZWF0ZVByb3h5KHZhbHVlLCBzdGF0ZSk7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldChzdGF0ZSwgcHJvcCwgdmFsdWUpIHtcbiAgYXNzZXJ0VW5yZXZva2VkKHN0YXRlKTtcbiAgc3RhdGUuYXNzaWduZWRbcHJvcF0gPSB0cnVlO1xuXG4gIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICBpZiAoaXModmFsdWUsIHBlZWsoc291cmNlKHN0YXRlKSwgcHJvcCkpKSB7IHJldHVybjsgfVxuICAgIG1hcmtDaGFuZ2VkKHN0YXRlKTtcbiAgICBwcmVwYXJlQ29weShzdGF0ZSk7XG4gIH1cblxuICBzdGF0ZS5jb3B5W3Byb3BdID0gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIG1hcmtDaGFuZ2VkKHN0YXRlKSB7XG4gIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICBzdGF0ZS5tb2RpZmllZCA9IHRydWU7XG4gICAgaWYgKHN0YXRlLnBhcmVudCkgeyBtYXJrQ2hhbmdlZChzdGF0ZS5wYXJlbnQpOyB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcGFyZUNvcHkoc3RhdGUpIHtcbiAgaWYgKCFzdGF0ZS5jb3B5KSB7IHN0YXRlLmNvcHkgPSBjbG9uZVBvdGVudGlhbERyYWZ0KHN0YXRlLmJhc2UpOyB9XG59XG5cbmZ1bmN0aW9uIGNsb25lUG90ZW50aWFsRHJhZnQoYmFzZSkge1xuICB2YXIgc3RhdGUgPSBiYXNlICYmIGJhc2VbRFJBRlRfU1RBVEVdO1xuXG4gIGlmIChzdGF0ZSkge1xuICAgIHN0YXRlLmZpbmFsaXppbmcgPSB0cnVlO1xuICAgIHZhciBkcmFmdCA9IHNoYWxsb3dDb3B5KHN0YXRlLmRyYWZ0LCB0cnVlKTtcbiAgICBzdGF0ZS5maW5hbGl6aW5nID0gZmFsc2U7XG4gICAgcmV0dXJuIGRyYWZ0O1xuICB9XG5cbiAgcmV0dXJuIHNoYWxsb3dDb3B5KGJhc2UpO1xufVxuXG5mdW5jdGlvbiBwcm94eVByb3BlcnR5KGRyYWZ0LCBwcm9wLCBlbnVtZXJhYmxlKSB7XG4gIHZhciBkZXNjID0gZGVzY3JpcHRvcnNbcHJvcF07XG5cbiAgaWYgKGRlc2MpIHtcbiAgICBkZXNjLmVudW1lcmFibGUgPSBlbnVtZXJhYmxlO1xuICB9IGVsc2Uge1xuICAgIGRlc2NyaXB0b3JzW3Byb3BdID0gZGVzYyA9IHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGVudW1lcmFibGUsXG5cbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0JDEoKSB7XG4gICAgICAgIHJldHVybiBnZXQodGhpc1tEUkFGVF9TVEFURV0sIHByb3ApO1xuICAgICAgfSxcblxuICAgICAgc2V0OiBmdW5jdGlvbiBzZXQkMSh2YWx1ZSkge1xuICAgICAgICBzZXQodGhpc1tEUkFGVF9TVEFURV0sIHByb3AsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgIH07XG4gIH1cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZHJhZnQsIHByb3AsIGRlc2MpO1xufVxuXG5mdW5jdGlvbiBhc3NlcnRVbnJldm9rZWQoc3RhdGUpIHtcbiAgaWYgKHN0YXRlLnJldm9rZWQgPT09IHRydWUpIHsgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHVzZSBhIHByb3h5IHRoYXQgaGFzIGJlZW4gcmV2b2tlZC4gRGlkIHlvdSBwYXNzIGFuIG9iamVjdCBmcm9tIGluc2lkZSBhbiBpbW1lciBmdW5jdGlvbiB0byBhbiBhc3luYyBwcm9jZXNzPyBcIiArIEpTT04uc3RyaW5naWZ5KHNvdXJjZShzdGF0ZSkpKTsgfVxufSAvLyBUaGlzIGxvb2tzIGV4cGVuc2l2ZSwgYnV0IG9ubHkgcHJveGllcyBhcmUgdmlzaXRlZCwgYW5kIG9ubHkgb2JqZWN0cyB3aXRob3V0IGtub3duIGNoYW5nZXMgYXJlIHNjYW5uZWQuXG5cblxuZnVuY3Rpb24gbWFya0NoYW5nZXNTd2VlcChkcmFmdHMpIHtcbiAgLy8gVGhlIG5hdHVyYWwgb3JkZXIgb2YgZHJhZnRzIGluIHRoZSBgc2NvcGVgIGFycmF5IGlzIGJhc2VkIG9uIHdoZW4gdGhleVxuICAvLyB3ZXJlIGFjY2Vzc2VkLiBCeSBwcm9jZXNzaW5nIGRyYWZ0cyBpbiByZXZlcnNlIG5hdHVyYWwgb3JkZXIsIHdlIGhhdmUgYVxuICAvLyBiZXR0ZXIgY2hhbmNlIG9mIHByb2Nlc3NpbmcgbGVhZiBub2RlcyBmaXJzdC4gV2hlbiBhIGxlYWYgbm9kZSBpcyBrbm93biB0b1xuICAvLyBoYXZlIGNoYW5nZWQsIHdlIGNhbiBhdm9pZCBhbnkgdHJhdmVyc2FsIG9mIGl0cyBhbmNlc3RvciBub2Rlcy5cbiAgZm9yICh2YXIgaSA9IGRyYWZ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHZhciBzdGF0ZSA9IGRyYWZ0c1tpXVtEUkFGVF9TVEFURV07XG5cbiAgICBpZiAoIXN0YXRlLm1vZGlmaWVkKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShzdGF0ZS5iYXNlKSkge1xuICAgICAgICBpZiAoaGFzQXJyYXlDaGFuZ2VzKHN0YXRlKSkgeyBtYXJrQ2hhbmdlZChzdGF0ZSk7IH1cbiAgICAgIH0gZWxzZSBpZiAoaGFzT2JqZWN0Q2hhbmdlcyhzdGF0ZSkpIHsgbWFya0NoYW5nZWQoc3RhdGUpOyB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtDaGFuZ2VzUmVjdXJzaXZlbHkob2JqZWN0KSB7XG4gIGlmICghb2JqZWN0IHx8IHR5cGVvZiBvYmplY3QgIT09IFwib2JqZWN0XCIpIHsgcmV0dXJuOyB9XG4gIHZhciBzdGF0ZSA9IG9iamVjdFtEUkFGVF9TVEFURV07XG4gIGlmICghc3RhdGUpIHsgcmV0dXJuOyB9XG4gIHZhciBiYXNlID0gc3RhdGUuYmFzZTtcbiAgdmFyIGRyYWZ0ID0gc3RhdGUuZHJhZnQ7XG4gIHZhciBhc3NpZ25lZCA9IHN0YXRlLmFzc2lnbmVkO1xuXG4gIGlmICghQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgLy8gTG9vayBmb3IgYWRkZWQga2V5cy5cbiAgICBPYmplY3Qua2V5cyhkcmFmdCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAvLyBUaGUgYHVuZGVmaW5lZGAgY2hlY2sgaXMgYSBmYXN0IHBhdGggZm9yIHByZS1leGlzdGluZyBrZXlzLlxuICAgICAgaWYgKGJhc2Vba2V5XSA9PT0gdW5kZWZpbmVkICYmICFoYXMoYmFzZSwga2V5KSkge1xuICAgICAgICBhc3NpZ25lZFtrZXldID0gdHJ1ZTtcbiAgICAgICAgbWFya0NoYW5nZWQoc3RhdGUpO1xuICAgICAgfSBlbHNlIGlmICghYXNzaWduZWRba2V5XSkge1xuICAgICAgICAvLyBPbmx5IHVudG91Y2hlZCBwcm9wZXJ0aWVzIHRyaWdnZXIgcmVjdXJzaW9uLlxuICAgICAgICBtYXJrQ2hhbmdlc1JlY3Vyc2l2ZWx5KGRyYWZ0W2tleV0pO1xuICAgICAgfVxuICAgIH0pOyAvLyBMb29rIGZvciByZW1vdmVkIGtleXMuXG5cbiAgICBPYmplY3Qua2V5cyhiYXNlKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8vIFRoZSBgdW5kZWZpbmVkYCBjaGVjayBpcyBhIGZhc3QgcGF0aCBmb3IgcHJlLWV4aXN0aW5nIGtleXMuXG4gICAgICBpZiAoZHJhZnRba2V5XSA9PT0gdW5kZWZpbmVkICYmICFoYXMoZHJhZnQsIGtleSkpIHtcbiAgICAgICAgYXNzaWduZWRba2V5XSA9IGZhbHNlO1xuICAgICAgICBtYXJrQ2hhbmdlZChzdGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoaGFzQXJyYXlDaGFuZ2VzKHN0YXRlKSkge1xuICAgIG1hcmtDaGFuZ2VkKHN0YXRlKTtcbiAgICBhc3NpZ25lZC5sZW5ndGggPSB0cnVlO1xuXG4gICAgaWYgKGRyYWZ0Lmxlbmd0aCA8IGJhc2UubGVuZ3RoKSB7XG4gICAgICBmb3IgKHZhciBpID0gZHJhZnQubGVuZ3RoOyBpIDwgYmFzZS5sZW5ndGg7IGkrKykgeyBhc3NpZ25lZFtpXSA9IGZhbHNlOyB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkkMSA9IGJhc2UubGVuZ3RoOyBpJDEgPCBkcmFmdC5sZW5ndGg7IGkkMSsrKSB7IGFzc2lnbmVkW2kkMV0gPSB0cnVlOyB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSQyID0gMDsgaSQyIDwgZHJhZnQubGVuZ3RoOyBpJDIrKykge1xuICAgICAgLy8gT25seSB1bnRvdWNoZWQgaW5kaWNlcyB0cmlnZ2VyIHJlY3Vyc2lvbi5cbiAgICAgIGlmIChhc3NpZ25lZFtpJDJdID09PSB1bmRlZmluZWQpIHsgbWFya0NoYW5nZXNSZWN1cnNpdmVseShkcmFmdFtpJDJdKTsgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNPYmplY3RDaGFuZ2VzKHN0YXRlKSB7XG4gIHZhciBiYXNlID0gc3RhdGUuYmFzZTtcbiAgdmFyIGRyYWZ0ID0gc3RhdGUuZHJhZnQ7IC8vIFNlYXJjaCBmb3IgYWRkZWQga2V5cyBhbmQgY2hhbmdlZCBrZXlzLiBTdGFydCBhdCB0aGUgYmFjaywgYmVjYXVzZVxuICAvLyBub24tbnVtZXJpYyBrZXlzIGFyZSBvcmRlcmVkIGJ5IHRpbWUgb2YgZGVmaW5pdGlvbiBvbiB0aGUgb2JqZWN0LlxuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZHJhZnQpO1xuXG4gIGZvciAodmFyIGkgPSBrZXlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgdmFyIGJhc2VWYWx1ZSA9IGJhc2Vba2V5XTsgLy8gVGhlIGB1bmRlZmluZWRgIGNoZWNrIGlzIGEgZmFzdCBwYXRoIGZvciBwcmUtZXhpc3Rpbmcga2V5cy5cblxuICAgIGlmIChiYXNlVmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhaGFzKGJhc2UsIGtleSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gLy8gT25jZSBhIGJhc2Uga2V5IGlzIGRlbGV0ZWQsIGZ1dHVyZSBjaGFuZ2VzIGdvIHVuZGV0ZWN0ZWQsIGJlY2F1c2UgaXRzXG4gICAgLy8gZGVzY3JpcHRvciBpcyBlcmFzZWQuIFRoaXMgYnJhbmNoIGRldGVjdHMgYW55IG1pc3NlZCBjaGFuZ2VzLlxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgdmFsdWUgPSBkcmFmdFtrZXldO1xuICAgICAgICB2YXIgc3RhdGUkMSA9IHZhbHVlICYmIHZhbHVlW0RSQUZUX1NUQVRFXTtcblxuICAgICAgICBpZiAoc3RhdGUkMSA/IHN0YXRlJDEuYmFzZSAhPT0gYmFzZVZhbHVlIDogIWlzKHZhbHVlLCBiYXNlVmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgfSAvLyBBdCB0aGlzIHBvaW50LCBubyBrZXlzIHdlcmUgYWRkZWQgb3IgY2hhbmdlZC5cbiAgLy8gQ29tcGFyZSBrZXkgY291bnQgdG8gZGV0ZXJtaW5lIGlmIGtleXMgd2VyZSBkZWxldGVkLlxuXG5cbiAgcmV0dXJuIGtleXMubGVuZ3RoICE9PSBPYmplY3Qua2V5cyhiYXNlKS5sZW5ndGg7XG59XG5cbmZ1bmN0aW9uIGhhc0FycmF5Q2hhbmdlcyhzdGF0ZSkge1xuICB2YXIgZHJhZnQgPSBzdGF0ZS5kcmFmdDtcbiAgaWYgKGRyYWZ0Lmxlbmd0aCAhPT0gc3RhdGUuYmFzZS5sZW5ndGgpIHsgcmV0dXJuIHRydWU7IH0gLy8gU2VlICMxMTZcbiAgLy8gSWYgd2UgZmlyc3Qgc2hvcnRlbiB0aGUgbGVuZ3RoLCBvdXIgYXJyYXkgaW50ZXJjZXB0b3JzIHdpbGwgYmUgcmVtb3ZlZC5cbiAgLy8gSWYgYWZ0ZXIgdGhhdCBuZXcgaXRlbXMgYXJlIGFkZGVkLCByZXN1bHQgaW4gdGhlIHNhbWUgb3JpZ2luYWwgbGVuZ3RoLFxuICAvLyB0aG9zZSBsYXN0IGl0ZW1zIHdpbGwgaGF2ZSBubyBpbnRlcmNlcHRpbmcgcHJvcGVydHkuXG4gIC8vIFNvIGlmIHRoZXJlIGlzIG5vIG93biBkZXNjcmlwdG9yIG9uIHRoZSBsYXN0IHBvc2l0aW9uLCB3ZSBrbm93IHRoYXQgaXRlbXMgd2VyZSByZW1vdmVkIGFuZCBhZGRlZFxuICAvLyBOLkIuOiBzcGxpY2UsIHVuc2hpZnQsIGV0YyBvbmx5IHNoaWZ0IHZhbHVlcyBhcm91bmQsIGJ1dCBub3QgcHJvcCBkZXNjcmlwdG9ycywgc28gd2Ugb25seSBoYXZlIHRvIGNoZWNrXG4gIC8vIHRoZSBsYXN0IG9uZVxuXG4gIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkcmFmdCwgZHJhZnQubGVuZ3RoIC0gMSk7IC8vIGRlc2NyaXB0b3IgY2FuIGJlIG51bGwsIGJ1dCBvbmx5IGZvciBuZXdseSBjcmVhdGVkIHNwYXJzZSBhcnJheXMsIGVnLiBuZXcgQXJyYXkoMTApXG5cbiAgaWYgKGRlc2NyaXB0b3IgJiYgIWRlc2NyaXB0b3IuZ2V0KSB7IHJldHVybiB0cnVlOyB9IC8vIEZvciBhbGwgb3RoZXIgY2FzZXMsIHdlIGRvbid0IGhhdmUgdG8gY29tcGFyZSwgYXMgdGhleSB3b3VsZCBoYXZlIGJlZW4gcGlja2VkIHVwIGJ5IHRoZSBpbmRleCBzZXR0ZXJzXG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIaWRkZW5Qcm9wZXJ0eSh0YXJnZXQsIHByb3AsIHZhbHVlKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3AsIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IHRydWVcbiAgfSk7XG59XG5cbnZhciBsZWdhY3lQcm94eSA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgICB3aWxsRmluYWxpemU6IHdpbGxGaW5hbGl6ZSxcbiAgICBjcmVhdGVQcm94eTogY3JlYXRlUHJveHlcbn0pO1xuXG5mdW5jdGlvbiB3aWxsRmluYWxpemUkMSgpIHt9XG5mdW5jdGlvbiBjcmVhdGVQcm94eSQxKGJhc2UsIHBhcmVudCkge1xuICB2YXIgc2NvcGUgPSBwYXJlbnQgPyBwYXJlbnQuc2NvcGUgOiBJbW1lclNjb3BlLmN1cnJlbnQ7XG4gIHZhciBzdGF0ZSA9IHtcbiAgICAvLyBUcmFjayB3aGljaCBwcm9kdWNlIGNhbGwgdGhpcyBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAgc2NvcGU6IHNjb3BlLFxuICAgIC8vIFRydWUgZm9yIGJvdGggc2hhbGxvdyBhbmQgZGVlcCBjaGFuZ2VzLlxuICAgIG1vZGlmaWVkOiBmYWxzZSxcbiAgICAvLyBVc2VkIGR1cmluZyBmaW5hbGl6YXRpb24uXG4gICAgZmluYWxpemVkOiBmYWxzZSxcbiAgICAvLyBUcmFjayB3aGljaCBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBhc3NpZ25lZCAodHJ1ZSkgb3IgZGVsZXRlZCAoZmFsc2UpLlxuICAgIGFzc2lnbmVkOiB7fSxcbiAgICAvLyBUaGUgcGFyZW50IGRyYWZ0IHN0YXRlLlxuICAgIHBhcmVudDogcGFyZW50LFxuICAgIC8vIFRoZSBiYXNlIHN0YXRlLlxuICAgIGJhc2U6IGJhc2UsXG4gICAgLy8gVGhlIGJhc2UgcHJveHkuXG4gICAgZHJhZnQ6IG51bGwsXG4gICAgLy8gQW55IHByb3BlcnR5IHByb3hpZXMuXG4gICAgZHJhZnRzOiB7fSxcbiAgICAvLyBUaGUgYmFzZSBjb3B5IHdpdGggYW55IHVwZGF0ZWQgdmFsdWVzLlxuICAgIGNvcHk6IG51bGwsXG4gICAgLy8gQ2FsbGVkIGJ5IHRoZSBgcHJvZHVjZWAgZnVuY3Rpb24uXG4gICAgcmV2b2tlOiBudWxsXG4gIH07XG4gIHZhciByZWYgPSBBcnJheS5pc0FycmF5KGJhc2UpID8gLy8gW3N0YXRlXSBpcyB1c2VkIGZvciBhcnJheXMsIHRvIG1ha2Ugc3VyZSB0aGUgcHJveHkgaXMgYXJyYXktaXNoIGFuZCBub3QgdmlvbGF0ZSBpbnZhcmlhbnRzLFxuICAvLyBhbHRob3VnaCBzdGF0ZSBpdHNlbGYgaXMgYW4gb2JqZWN0XG4gIFByb3h5LnJldm9jYWJsZShbc3RhdGVdLCBhcnJheVRyYXBzKSA6IFByb3h5LnJldm9jYWJsZShzdGF0ZSwgb2JqZWN0VHJhcHMpO1xuICB2YXIgcmV2b2tlID0gcmVmLnJldm9rZTtcbiAgdmFyIHByb3h5ID0gcmVmLnByb3h5O1xuICBzdGF0ZS5kcmFmdCA9IHByb3h5O1xuICBzdGF0ZS5yZXZva2UgPSByZXZva2U7XG4gIHNjb3BlLmRyYWZ0cy5wdXNoKHByb3h5KTtcbiAgcmV0dXJuIHByb3h5O1xufVxudmFyIG9iamVjdFRyYXBzID0ge1xuICBnZXQ6IGdldCQxLFxuXG4gIGhhczogZnVuY3Rpb24gaGFzKHRhcmdldCwgcHJvcCkge1xuICAgIHJldHVybiBwcm9wIGluIHNvdXJjZSQxKHRhcmdldCk7XG4gIH0sXG5cbiAgb3duS2V5czogZnVuY3Rpb24gb3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHNvdXJjZSQxKHRhcmdldCkpO1xuICB9LFxuXG4gIHNldDogc2V0JDEsXG4gIGRlbGV0ZVByb3BlcnR5OiBkZWxldGVQcm9wZXJ0eSxcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG5cbiAgZGVmaW5lUHJvcGVydHk6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdC5kZWZpbmVQcm9wZXJ0eSgpIGNhbm5vdCBiZSB1c2VkIG9uIGFuIEltbWVyIGRyYWZ0XCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfSxcblxuICBnZXRQcm90b3R5cGVPZjogZnVuY3Rpb24gZ2V0UHJvdG90eXBlT2YodGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQuYmFzZSk7XG4gIH0sXG5cbiAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk9iamVjdC5zZXRQcm90b3R5cGVPZigpIGNhbm5vdCBiZSB1c2VkIG9uIGFuIEltbWVyIGRyYWZ0XCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfVxuXG59O1xudmFyIGFycmF5VHJhcHMgPSB7fTtcbmVhY2gob2JqZWN0VHJhcHMsIGZ1bmN0aW9uIChrZXksIGZuKSB7XG4gIGFycmF5VHJhcHNba2V5XSA9IGZ1bmN0aW9uICgpIHtcbiAgICBhcmd1bWVudHNbMF0gPSBhcmd1bWVudHNbMF1bMF07XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG59KTtcblxuYXJyYXlUcmFwcy5kZWxldGVQcm9wZXJ0eSA9IGZ1bmN0aW9uIChzdGF0ZSwgcHJvcCkge1xuICBpZiAoaXNOYU4ocGFyc2VJbnQocHJvcCkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW1tZXIgb25seSBzdXBwb3J0cyBkZWxldGluZyBhcnJheSBpbmRpY2VzXCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfVxuXG4gIHJldHVybiBvYmplY3RUcmFwcy5kZWxldGVQcm9wZXJ0eS5jYWxsKHRoaXMsIHN0YXRlWzBdLCBwcm9wKTtcbn07XG5cbmFycmF5VHJhcHMuc2V0ID0gZnVuY3Rpb24gKHN0YXRlLCBwcm9wLCB2YWx1ZSkge1xuICBpZiAocHJvcCAhPT0gXCJsZW5ndGhcIiAmJiBpc05hTihwYXJzZUludChwcm9wKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbW1lciBvbmx5IHN1cHBvcnRzIHNldHRpbmcgYXJyYXkgaW5kaWNlcyBhbmQgdGhlICdsZW5ndGgnIHByb3BlcnR5XCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfVxuXG4gIHJldHVybiBvYmplY3RUcmFwcy5zZXQuY2FsbCh0aGlzLCBzdGF0ZVswXSwgcHJvcCwgdmFsdWUpO1xufTsgLy8gcmV0dXJucyB0aGUgb2JqZWN0IHdlIHNob3VsZCBiZSByZWFkaW5nIHRoZSBjdXJyZW50IHZhbHVlIGZyb20sIHdoaWNoIGlzIGJhc2UsIHVudGlsIHNvbWUgY2hhbmdlIGhhcyBiZWVuIG1hZGVcblxuXG5mdW5jdGlvbiBzb3VyY2UkMShzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUuY29weSB8fCBzdGF0ZS5iYXNlO1xufSAvLyBBY2Nlc3MgYSBwcm9wZXJ0eSB3aXRob3V0IGNyZWF0aW5nIGFuIEltbWVyIGRyYWZ0LlxuXG5cbmZ1bmN0aW9uIHBlZWskMShkcmFmdCwgcHJvcCkge1xuICB2YXIgc3RhdGUgPSBkcmFmdFtEUkFGVF9TVEFURV07XG4gIHZhciBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc3RhdGUgPyBzb3VyY2UkMShzdGF0ZSkgOiBkcmFmdCwgcHJvcCk7XG4gIHJldHVybiBkZXNjICYmIGRlc2MudmFsdWU7XG59XG5cbmZ1bmN0aW9uIGdldCQxKHN0YXRlLCBwcm9wKSB7XG4gIGlmIChwcm9wID09PSBEUkFGVF9TVEFURSkgeyByZXR1cm4gc3RhdGU7IH1cbiAgdmFyIGRyYWZ0cyA9IHN0YXRlLmRyYWZ0czsgLy8gQ2hlY2sgZm9yIGV4aXN0aW5nIGRyYWZ0IGluIHVubW9kaWZpZWQgc3RhdGUuXG5cbiAgaWYgKCFzdGF0ZS5tb2RpZmllZCAmJiBoYXMoZHJhZnRzLCBwcm9wKSkge1xuICAgIHJldHVybiBkcmFmdHNbcHJvcF07XG4gIH1cblxuICB2YXIgdmFsdWUgPSBzb3VyY2UkMShzdGF0ZSlbcHJvcF07XG5cbiAgaWYgKHN0YXRlLmZpbmFsaXplZCB8fCAhaXNEcmFmdGFibGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IC8vIENoZWNrIGZvciBleGlzdGluZyBkcmFmdCBpbiBtb2RpZmllZCBzdGF0ZS5cblxuXG4gIGlmIChzdGF0ZS5tb2RpZmllZCkge1xuICAgIC8vIEFzc2lnbmVkIHZhbHVlcyBhcmUgbmV2ZXIgZHJhZnRlZC4gVGhpcyBjYXRjaGVzIGFueSBkcmFmdHMgd2UgY3JlYXRlZCwgdG9vLlxuICAgIGlmICh2YWx1ZSAhPT0gcGVlayQxKHN0YXRlLmJhc2UsIHByb3ApKSB7IHJldHVybiB2YWx1ZTsgfSAvLyBTdG9yZSBkcmFmdHMgb24gdGhlIGNvcHkgKHdoZW4gb25lIGV4aXN0cykuXG5cbiAgICBkcmFmdHMgPSBzdGF0ZS5jb3B5O1xuICB9XG5cbiAgcmV0dXJuIGRyYWZ0c1twcm9wXSA9IGNyZWF0ZVByb3h5JDEodmFsdWUsIHN0YXRlKTtcbn1cblxuZnVuY3Rpb24gc2V0JDEoc3RhdGUsIHByb3AsIHZhbHVlKSB7XG4gIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICB2YXIgYmFzZVZhbHVlID0gcGVlayQxKHN0YXRlLmJhc2UsIHByb3ApOyAvLyBPcHRpbWl6ZSBiYXNlZCBvbiB2YWx1ZSdzIHRydXRoaW5lc3MuIFRydXRoeSB2YWx1ZXMgYXJlIGd1YXJhbnRlZWQgdG9cbiAgICAvLyBuZXZlciBiZSB1bmRlZmluZWQsIHNvIHdlIGNhbiBhdm9pZCB0aGUgYGluYCBvcGVyYXRvci4gTGFzdGx5LCB0cnV0aHlcbiAgICAvLyB2YWx1ZXMgbWF5IGJlIGRyYWZ0cywgYnV0IGZhbHN5IHZhbHVlcyBhcmUgbmV2ZXIgZHJhZnRzLlxuXG4gICAgdmFyIGlzVW5jaGFuZ2VkID0gdmFsdWUgPyBpcyhiYXNlVmFsdWUsIHZhbHVlKSB8fCB2YWx1ZSA9PT0gc3RhdGUuZHJhZnRzW3Byb3BdIDogaXMoYmFzZVZhbHVlLCB2YWx1ZSkgJiYgcHJvcCBpbiBzdGF0ZS5iYXNlO1xuICAgIGlmIChpc1VuY2hhbmdlZCkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIG1hcmtDaGFuZ2VkJDEoc3RhdGUpO1xuICB9XG5cbiAgc3RhdGUuYXNzaWduZWRbcHJvcF0gPSB0cnVlO1xuICBzdGF0ZS5jb3B5W3Byb3BdID0gdmFsdWU7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBkZWxldGVQcm9wZXJ0eShzdGF0ZSwgcHJvcCkge1xuICAvLyBUaGUgYHVuZGVmaW5lZGAgY2hlY2sgaXMgYSBmYXN0IHBhdGggZm9yIHByZS1leGlzdGluZyBrZXlzLlxuICBpZiAocGVlayQxKHN0YXRlLmJhc2UsIHByb3ApICE9PSB1bmRlZmluZWQgfHwgcHJvcCBpbiBzdGF0ZS5iYXNlKSB7XG4gICAgc3RhdGUuYXNzaWduZWRbcHJvcF0gPSBmYWxzZTtcbiAgICBtYXJrQ2hhbmdlZCQxKHN0YXRlKTtcbiAgfVxuXG4gIGlmIChzdGF0ZS5jb3B5KSB7IGRlbGV0ZSBzdGF0ZS5jb3B5W3Byb3BdOyB9XG4gIHJldHVybiB0cnVlO1xufSAvLyBOb3RlOiBXZSBuZXZlciBjb2VyY2UgYGRlc2MudmFsdWVgIGludG8gYW4gSW1tZXIgZHJhZnQsIGJlY2F1c2Ugd2UgY2FuJ3QgbWFrZVxuLy8gdGhlIHNhbWUgZ3VhcmFudGVlIGluIEVTNSBtb2RlLlxuXG5cbmZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzdGF0ZSwgcHJvcCkge1xuICB2YXIgb3duZXIgPSBzb3VyY2UkMShzdGF0ZSk7XG4gIHZhciBkZXNjID0gUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob3duZXIsIHByb3ApO1xuXG4gIGlmIChkZXNjKSB7XG4gICAgZGVzYy53cml0YWJsZSA9IHRydWU7XG4gICAgZGVzYy5jb25maWd1cmFibGUgPSAhQXJyYXkuaXNBcnJheShvd25lcikgfHwgcHJvcCAhPT0gXCJsZW5ndGhcIjtcbiAgfVxuXG4gIHJldHVybiBkZXNjO1xufVxuXG5mdW5jdGlvbiBtYXJrQ2hhbmdlZCQxKHN0YXRlKSB7XG4gIGlmICghc3RhdGUubW9kaWZpZWQpIHtcbiAgICBzdGF0ZS5tb2RpZmllZCA9IHRydWU7XG4gICAgc3RhdGUuY29weSA9IGFzc2lnbihzaGFsbG93Q29weShzdGF0ZS5iYXNlKSwgc3RhdGUuZHJhZnRzKTtcbiAgICBzdGF0ZS5kcmFmdHMgPSBudWxsO1xuICAgIGlmIChzdGF0ZS5wYXJlbnQpIHsgbWFya0NoYW5nZWQkMShzdGF0ZS5wYXJlbnQpOyB9XG4gIH1cbn1cblxudmFyIG1vZGVyblByb3h5ID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICAgIHdpbGxGaW5hbGl6ZTogd2lsbEZpbmFsaXplJDEsXG4gICAgY3JlYXRlUHJveHk6IGNyZWF0ZVByb3h5JDFcbn0pO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZVBhdGNoZXMoc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcykge1xuICBBcnJheS5pc0FycmF5KHN0YXRlLmJhc2UpID8gZ2VuZXJhdGVBcnJheVBhdGNoZXMoc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcykgOiBnZW5lcmF0ZU9iamVjdFBhdGNoZXMoc3RhdGUsIGJhc2VQYXRoLCBwYXRjaGVzLCBpbnZlcnNlUGF0Y2hlcyk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXlQYXRjaGVzKHN0YXRlLCBiYXNlUGF0aCwgcGF0Y2hlcywgaW52ZXJzZVBhdGNoZXMpIHtcbiAgdmFyIGFzc2lnbiwgYXNzaWduJDE7XG5cbiAgdmFyIGJhc2UgPSBzdGF0ZS5iYXNlO1xuICB2YXIgY29weSA9IHN0YXRlLmNvcHk7XG4gIHZhciBhc3NpZ25lZCA9IHN0YXRlLmFzc2lnbmVkOyAvLyBSZWR1Y2UgY29tcGxleGl0eSBieSBlbnN1cmluZyBgYmFzZWAgaXMgbmV2ZXIgbG9uZ2VyLlxuXG4gIGlmIChjb3B5Lmxlbmd0aCA8IGJhc2UubGVuZ3RoKSB7XG4gICAgKGFzc2lnbiA9IFtjb3B5LCBiYXNlXSwgYmFzZSA9IGFzc2lnblswXSwgY29weSA9IGFzc2lnblsxXSk7XG4gICAgKGFzc2lnbiQxID0gW2ludmVyc2VQYXRjaGVzLCBwYXRjaGVzXSwgcGF0Y2hlcyA9IGFzc2lnbiQxWzBdLCBpbnZlcnNlUGF0Y2hlcyA9IGFzc2lnbiQxWzFdKTtcbiAgfVxuXG4gIHZhciBkZWx0YSA9IGNvcHkubGVuZ3RoIC0gYmFzZS5sZW5ndGg7IC8vIEZpbmQgdGhlIGZpcnN0IHJlcGxhY2VkIGluZGV4LlxuXG4gIHZhciBzdGFydCA9IDA7XG5cbiAgd2hpbGUgKGJhc2Vbc3RhcnRdID09PSBjb3B5W3N0YXJ0XSAmJiBzdGFydCA8IGJhc2UubGVuZ3RoKSB7XG4gICAgKytzdGFydDtcbiAgfSAvLyBGaW5kIHRoZSBsYXN0IHJlcGxhY2VkIGluZGV4LiBTZWFyY2ggZnJvbSB0aGUgZW5kIHRvIG9wdGltaXplIHNwbGljZSBwYXRjaGVzLlxuXG5cbiAgdmFyIGVuZCA9IGJhc2UubGVuZ3RoO1xuXG4gIHdoaWxlIChlbmQgPiBzdGFydCAmJiBiYXNlW2VuZCAtIDFdID09PSBjb3B5W2VuZCArIGRlbHRhIC0gMV0pIHtcbiAgICAtLWVuZDtcbiAgfSAvLyBQcm9jZXNzIHJlcGxhY2VkIGluZGljZXMuXG5cblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIGlmIChhc3NpZ25lZFtpXSAmJiBjb3B5W2ldICE9PSBiYXNlW2ldKSB7XG4gICAgICB2YXIgcGF0aCA9IGJhc2VQYXRoLmNvbmNhdChbaV0pO1xuICAgICAgcGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgb3A6IFwicmVwbGFjZVwiLFxuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICB2YWx1ZTogY29weVtpXVxuICAgICAgfSk7XG4gICAgICBpbnZlcnNlUGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgb3A6IFwicmVwbGFjZVwiLFxuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICB2YWx1ZTogYmFzZVtpXVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHVzZVJlbW92ZSA9IGVuZCAhPSBiYXNlLmxlbmd0aDtcbiAgdmFyIHJlcGxhY2VDb3VudCA9IHBhdGNoZXMubGVuZ3RoOyAvLyBQcm9jZXNzIGFkZGVkIGluZGljZXMuXG5cbiAgZm9yICh2YXIgaSQxID0gZW5kICsgZGVsdGEgLSAxOyBpJDEgPj0gZW5kOyAtLWkkMSkge1xuICAgIHZhciBwYXRoJDEgPSBiYXNlUGF0aC5jb25jYXQoW2kkMV0pO1xuICAgIHBhdGNoZXNbcmVwbGFjZUNvdW50ICsgaSQxIC0gZW5kXSA9IHtcbiAgICAgIG9wOiBcImFkZFwiLFxuICAgICAgcGF0aDogcGF0aCQxLFxuICAgICAgdmFsdWU6IGNvcHlbaSQxXVxuICAgIH07XG5cbiAgICBpZiAodXNlUmVtb3ZlKSB7XG4gICAgICBpbnZlcnNlUGF0Y2hlcy5wdXNoKHtcbiAgICAgICAgb3A6IFwicmVtb3ZlXCIsXG4gICAgICAgIHBhdGg6IHBhdGgkMVxuICAgICAgfSk7XG4gICAgfVxuICB9IC8vIE9uZSBcInJlcGxhY2VcIiBwYXRjaCByZXZlcnNlcyBhbGwgbm9uLXNwbGljaW5nIFwiYWRkXCIgcGF0Y2hlcy5cblxuXG4gIGlmICghdXNlUmVtb3ZlKSB7XG4gICAgaW52ZXJzZVBhdGNoZXMucHVzaCh7XG4gICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICBwYXRoOiBiYXNlUGF0aC5jb25jYXQoW1wibGVuZ3RoXCJdKSxcbiAgICAgIHZhbHVlOiBiYXNlLmxlbmd0aFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlT2JqZWN0UGF0Y2hlcyhzdGF0ZSwgYmFzZVBhdGgsIHBhdGNoZXMsIGludmVyc2VQYXRjaGVzKSB7XG4gIHZhciBiYXNlID0gc3RhdGUuYmFzZTtcbiAgdmFyIGNvcHkgPSBzdGF0ZS5jb3B5O1xuICBlYWNoKHN0YXRlLmFzc2lnbmVkLCBmdW5jdGlvbiAoa2V5LCBhc3NpZ25lZFZhbHVlKSB7XG4gICAgdmFyIG9yaWdWYWx1ZSA9IGJhc2Vba2V5XTtcbiAgICB2YXIgdmFsdWUgPSBjb3B5W2tleV07XG4gICAgdmFyIG9wID0gIWFzc2lnbmVkVmFsdWUgPyBcInJlbW92ZVwiIDoga2V5IGluIGJhc2UgPyBcInJlcGxhY2VcIiA6IFwiYWRkXCI7XG4gICAgaWYgKG9yaWdWYWx1ZSA9PT0gdmFsdWUgJiYgb3AgPT09IFwicmVwbGFjZVwiKSB7IHJldHVybjsgfVxuICAgIHZhciBwYXRoID0gYmFzZVBhdGguY29uY2F0KGtleSk7XG4gICAgcGF0Y2hlcy5wdXNoKG9wID09PSBcInJlbW92ZVwiID8ge1xuICAgICAgb3A6IG9wLFxuICAgICAgcGF0aDogcGF0aFxuICAgIH0gOiB7XG4gICAgICBvcDogb3AsXG4gICAgICBwYXRoOiBwYXRoLFxuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfSk7XG4gICAgaW52ZXJzZVBhdGNoZXMucHVzaChvcCA9PT0gXCJhZGRcIiA/IHtcbiAgICAgIG9wOiBcInJlbW92ZVwiLFxuICAgICAgcGF0aDogcGF0aFxuICAgIH0gOiBvcCA9PT0gXCJyZW1vdmVcIiA/IHtcbiAgICAgIG9wOiBcImFkZFwiLFxuICAgICAgcGF0aDogcGF0aCxcbiAgICAgIHZhbHVlOiBvcmlnVmFsdWVcbiAgICB9IDoge1xuICAgICAgb3A6IFwicmVwbGFjZVwiLFxuICAgICAgcGF0aDogcGF0aCxcbiAgICAgIHZhbHVlOiBvcmlnVmFsdWVcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyhkcmFmdCwgcGF0Y2hlcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGNoZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGF0Y2ggPSBwYXRjaGVzW2ldO1xuICAgIHZhciBwYXRoID0gcGF0Y2gucGF0aDtcblxuICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCAmJiBwYXRjaC5vcCA9PT0gXCJyZXBsYWNlXCIpIHtcbiAgICAgIGRyYWZ0ID0gcGF0Y2gudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBiYXNlID0gZHJhZnQ7XG5cbiAgICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IHBhdGgubGVuZ3RoIC0gMTsgaSQxKyspIHtcbiAgICAgICAgYmFzZSA9IGJhc2VbcGF0aFtpJDFdXTtcbiAgICAgICAgaWYgKCFiYXNlIHx8IHR5cGVvZiBiYXNlICE9PSBcIm9iamVjdFwiKSB7IHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBhcHBseSBwYXRjaCwgcGF0aCBkb2Vzbid0IHJlc29sdmU6IFwiICsgcGF0aC5qb2luKFwiL1wiKSk7IH0gLy8gcHJldHRpZXItaWdub3JlXG4gICAgICB9XG5cbiAgICAgIHZhciBrZXkgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgIHN3aXRjaCAocGF0Y2gub3ApIHtcbiAgICAgICAgY2FzZSBcInJlcGxhY2VcIjpcbiAgICAgICAgICBiYXNlW2tleV0gPSBwYXRjaC52YWx1ZTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFwiYWRkXCI6XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYmFzZSkpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHN1cHBvcnQgXCJmb28vLVwiIHBhdGhzIGZvciBhcHBlbmRpbmcgdG8gYW4gYXJyYXlcbiAgICAgICAgICAgIGJhc2Uuc3BsaWNlKGtleSwgMCwgcGF0Y2gudmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlW2tleV0gPSBwYXRjaC52YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFwicmVtb3ZlXCI6XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYmFzZSkpIHtcbiAgICAgICAgICAgIGJhc2Uuc3BsaWNlKGtleSwgMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlbGV0ZSBiYXNlW2tleV07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBwYXRjaCBvcGVyYXRpb246IFwiICsgcGF0Y2gub3ApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkcmFmdDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5TWluaWZpZWQoKSB7fVxuXG52YXIgY29uZmlnRGVmYXVsdHMgPSB7XG4gIHVzZVByb3hpZXM6IHR5cGVvZiBQcm94eSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgUmVmbGVjdCAhPT0gXCJ1bmRlZmluZWRcIixcbiAgYXV0b0ZyZWV6ZTogdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgOiB2ZXJpZnlNaW5pZmllZC5uYW1lID09PSBcInZlcmlmeU1pbmlmaWVkXCIsXG4gIG9uQXNzaWduOiBudWxsLFxuICBvbkRlbGV0ZTogbnVsbCxcbiAgb25Db3B5OiBudWxsXG59O1xudmFyIEltbWVyID0gZnVuY3Rpb24gSW1tZXIoY29uZmlnKSB7XG4gIGFzc2lnbih0aGlzLCBjb25maWdEZWZhdWx0cywgY29uZmlnKTtcbiAgdGhpcy5zZXRVc2VQcm94aWVzKHRoaXMudXNlUHJveGllcyk7XG4gIHRoaXMucHJvZHVjZSA9IHRoaXMucHJvZHVjZS5iaW5kKHRoaXMpO1xufTtcblxuSW1tZXIucHJvdG90eXBlLnByb2R1Y2UgPSBmdW5jdGlvbiBwcm9kdWNlIChiYXNlLCByZWNpcGUsIHBhdGNoTGlzdGVuZXIpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAvLyBjdXJyaWVkIGludm9jYXRpb25cbiAgaWYgKHR5cGVvZiBiYXNlID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHJlY2lwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdmFyIGRlZmF1bHRCYXNlID0gcmVjaXBlO1xuICAgIHJlY2lwZSA9IGJhc2U7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiBmdW5jdGlvbiBjdXJyaWVkUHJvZHVjZShiYXNlKSB7XG4gICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICBpZiAoIGJhc2UgPT09IHZvaWQgMCApIGJhc2UgPSBkZWZhdWx0QmFzZTtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlICggbGVuLS0gPiAwICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDEgXTtcblxuICAgICAgcmV0dXJuIHNlbGYucHJvZHVjZShiYXNlLCBmdW5jdGlvbiAoZHJhZnQpIHsgcmV0dXJuIHJlY2lwZS5jYWxsLmFwcGx5KHJlY2lwZSwgWyB0aGlzJDEsIGRyYWZ0IF0uY29uY2F0KCBhcmdzICkpOyB9KTsgLy8gcHJldHRpZXItaWdub3JlXG4gICAgfTtcbiAgfSAvLyBwcmV0dGllci1pZ25vcmVcblxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHJlY2lwZSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgZmlyc3Qgb3Igc2Vjb25kIGFyZ3VtZW50IHRvIGBwcm9kdWNlYCBtdXN0IGJlIGEgZnVuY3Rpb25cIik7XG4gICAgfVxuXG4gICAgaWYgKHBhdGNoTGlzdGVuZXIgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF0Y2hMaXN0ZW5lciAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgdGhpcmQgYXJndW1lbnQgdG8gYHByb2R1Y2VgIG11c3QgYmUgYSBmdW5jdGlvbiBvciB1bmRlZmluZWRcIik7XG4gICAgfVxuICB9XG4gIHZhciByZXN1bHQ7IC8vIE9ubHkgcGxhaW4gb2JqZWN0cywgYXJyYXlzLCBhbmQgXCJpbW1lcmFibGUgY2xhc3Nlc1wiIGFyZSBkcmFmdGVkLlxuXG4gIGlmIChpc0RyYWZ0YWJsZShiYXNlKSkge1xuICAgIHZhciBzY29wZSA9IEltbWVyU2NvcGUuZW50ZXIoKTtcbiAgICB2YXIgcHJveHkgPSB0aGlzLmNyZWF0ZVByb3h5KGJhc2UpO1xuICAgIHZhciBoYXNFcnJvciA9IHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gcmVjaXBlKHByb3h5KTtcbiAgICAgIGhhc0Vycm9yID0gZmFsc2U7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIC8vIGZpbmFsbHkgaW5zdGVhZCBvZiBjYXRjaCArIHJldGhyb3cgYmV0dGVyIHByZXNlcnZlcyBvcmlnaW5hbCBzdGFja1xuICAgICAgaWYgKGhhc0Vycm9yKSB7IHNjb3BlLnJldm9rZSgpOyB9ZWxzZSB7IHNjb3BlLmxlYXZlKCk7IH1cbiAgICB9XG5cbiAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgc2NvcGUudXNlUGF0Y2hlcyhwYXRjaExpc3RlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMkMS5wcm9jZXNzUmVzdWx0KHJlc3VsdCwgc2NvcGUpO1xuICAgICAgfSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgIHNjb3BlLnJldm9rZSgpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHNjb3BlLnVzZVBhdGNoZXMocGF0Y2hMaXN0ZW5lcik7XG4gICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3VsdChyZXN1bHQsIHNjb3BlKTtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSByZWNpcGUoYmFzZSk7XG4gICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiBiYXNlOyB9XG4gICAgcmV0dXJuIHJlc3VsdCAhPT0gTk9USElORyA/IHJlc3VsdCA6IHVuZGVmaW5lZDtcbiAgfVxufTtcblxuSW1tZXIucHJvdG90eXBlLmNyZWF0ZURyYWZ0ID0gZnVuY3Rpb24gY3JlYXRlRHJhZnQgKGJhc2UpIHtcbiAgaWYgKCFpc0RyYWZ0YWJsZShiYXNlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkZpcnN0IGFyZ3VtZW50IHRvIGBjcmVhdGVEcmFmdGAgbXVzdCBiZSBhIHBsYWluIG9iamVjdCwgYW4gYXJyYXksIG9yIGFuIGltbWVyYWJsZSBvYmplY3RcIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICB9XG5cbiAgdmFyIHNjb3BlID0gSW1tZXJTY29wZS5lbnRlcigpO1xuICB2YXIgcHJveHkgPSB0aGlzLmNyZWF0ZVByb3h5KGJhc2UpO1xuICBwcm94eVtEUkFGVF9TVEFURV0uaXNNYW51YWwgPSB0cnVlO1xuICBzY29wZS5sZWF2ZSgpO1xuICByZXR1cm4gcHJveHk7XG59O1xuXG5JbW1lci5wcm90b3R5cGUuZmluaXNoRHJhZnQgPSBmdW5jdGlvbiBmaW5pc2hEcmFmdCAoZHJhZnQsIHBhdGNoTGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0gZHJhZnQgJiYgZHJhZnRbRFJBRlRfU1RBVEVdO1xuXG4gIGlmICghc3RhdGUgfHwgIXN0YXRlLmlzTWFudWFsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRmlyc3QgYXJndW1lbnQgdG8gYGZpbmlzaERyYWZ0YCBtdXN0IGJlIGEgZHJhZnQgcmV0dXJuZWQgYnkgYGNyZWF0ZURyYWZ0YFwiKTsgLy8gcHJldHRpZXItaWdub3JlXG4gIH1cblxuICBpZiAoc3RhdGUuZmluYWxpemVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGdpdmVuIGRyYWZ0IGlzIGFscmVhZHkgZmluYWxpemVkXCIpOyAvLyBwcmV0dGllci1pZ25vcmVcbiAgfVxuXG4gIHZhciBzY29wZSA9IHN0YXRlLnNjb3BlO1xuICBzY29wZS51c2VQYXRjaGVzKHBhdGNoTGlzdGVuZXIpO1xuICByZXR1cm4gdGhpcy5wcm9jZXNzUmVzdWx0KHVuZGVmaW5lZCwgc2NvcGUpO1xufTtcblxuSW1tZXIucHJvdG90eXBlLnNldEF1dG9GcmVlemUgPSBmdW5jdGlvbiBzZXRBdXRvRnJlZXplICh2YWx1ZSkge1xuICB0aGlzLmF1dG9GcmVlemUgPSB2YWx1ZTtcbn07XG5cbkltbWVyLnByb3RvdHlwZS5zZXRVc2VQcm94aWVzID0gZnVuY3Rpb24gc2V0VXNlUHJveGllcyAodmFsdWUpIHtcbiAgdGhpcy51c2VQcm94aWVzID0gdmFsdWU7XG4gIGFzc2lnbih0aGlzLCB2YWx1ZSA/IG1vZGVyblByb3h5IDogbGVnYWN5UHJveHkpO1xufTtcblxuSW1tZXIucHJvdG90eXBlLmFwcGx5UGF0Y2hlcyA9IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyQxIChiYXNlLCBwYXRjaGVzKSB7XG4gIC8vIE11dGF0ZSB0aGUgYmFzZSBzdGF0ZSB3aGVuIGEgZHJhZnQgaXMgcGFzc2VkLlxuICBpZiAoaXNEcmFmdChiYXNlKSkge1xuICAgIHJldHVybiBhcHBseVBhdGNoZXMoYmFzZSwgcGF0Y2hlcyk7XG4gIH0gLy8gT3RoZXJ3aXNlLCBwcm9kdWNlIGEgY29weSBvZiB0aGUgYmFzZSBzdGF0ZS5cblxuXG4gIHJldHVybiB0aGlzLnByb2R1Y2UoYmFzZSwgZnVuY3Rpb24gKGRyYWZ0KSB7IHJldHVybiBhcHBseVBhdGNoZXMoZHJhZnQsIHBhdGNoZXMpOyB9KTtcbn07XG4vKiogQGludGVybmFsICovXG5cblxuSW1tZXIucHJvdG90eXBlLnByb2Nlc3NSZXN1bHQgPSBmdW5jdGlvbiBwcm9jZXNzUmVzdWx0IChyZXN1bHQsIHNjb3BlKSB7XG4gIHZhciBiYXNlRHJhZnQgPSBzY29wZS5kcmFmdHNbMF07XG4gIHZhciBpc1JlcGxhY2VkID0gcmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9PSBiYXNlRHJhZnQ7XG4gIHRoaXMud2lsbEZpbmFsaXplKHNjb3BlLCByZXN1bHQsIGlzUmVwbGFjZWQpO1xuXG4gIGlmIChpc1JlcGxhY2VkKSB7XG4gICAgaWYgKGJhc2VEcmFmdFtEUkFGVF9TVEFURV0ubW9kaWZpZWQpIHtcbiAgICAgIHNjb3BlLnJldm9rZSgpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQW4gaW1tZXIgcHJvZHVjZXIgcmV0dXJuZWQgYSBuZXcgdmFsdWUgKmFuZCogbW9kaWZpZWQgaXRzIGRyYWZ0LiBFaXRoZXIgcmV0dXJuIGEgbmV3IHZhbHVlICpvciogbW9kaWZ5IHRoZSBkcmFmdC5cIik7IC8vIHByZXR0aWVyLWlnbm9yZVxuICAgIH1cblxuICAgIGlmIChpc0RyYWZ0YWJsZShyZXN1bHQpKSB7XG4gICAgICAvLyBGaW5hbGl6ZSB0aGUgcmVzdWx0IGluIGNhc2UgaXQgY29udGFpbnMgKG9yIGlzKSBhIHN1YnNldCBvZiB0aGUgZHJhZnQuXG4gICAgICByZXN1bHQgPSB0aGlzLmZpbmFsaXplKHJlc3VsdCwgbnVsbCwgc2NvcGUpO1xuICAgIH1cblxuICAgIGlmIChzY29wZS5wYXRjaGVzKSB7XG4gICAgICBzY29wZS5wYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICAgIHBhdGg6IFtdLFxuICAgICAgICB2YWx1ZTogcmVzdWx0XG4gICAgICB9KTtcbiAgICAgIHNjb3BlLmludmVyc2VQYXRjaGVzLnB1c2goe1xuICAgICAgICBvcDogXCJyZXBsYWNlXCIsXG4gICAgICAgIHBhdGg6IFtdLFxuICAgICAgICB2YWx1ZTogYmFzZURyYWZ0W0RSQUZUX1NUQVRFXS5iYXNlXG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gRmluYWxpemUgdGhlIGJhc2UgZHJhZnQuXG4gICAgcmVzdWx0ID0gdGhpcy5maW5hbGl6ZShiYXNlRHJhZnQsIFtdLCBzY29wZSk7XG4gIH1cblxuICBzY29wZS5yZXZva2UoKTtcblxuICBpZiAoc2NvcGUucGF0Y2hlcykge1xuICAgIHNjb3BlLnBhdGNoTGlzdGVuZXIoc2NvcGUucGF0Y2hlcywgc2NvcGUuaW52ZXJzZVBhdGNoZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdCAhPT0gTk9USElORyA/IHJlc3VsdCA6IHVuZGVmaW5lZDtcbn07XG4vKipcbiAqIEBpbnRlcm5hbFxuICogRmluYWxpemUgYSBkcmFmdCwgcmV0dXJuaW5nIGVpdGhlciB0aGUgdW5tb2RpZmllZCBiYXNlIHN0YXRlIG9yIGEgbW9kaWZpZWRcbiAqIGNvcHkgb2YgdGhlIGJhc2Ugc3RhdGUuXG4gKi9cblxuXG5JbW1lci5wcm90b3R5cGUuZmluYWxpemUgPSBmdW5jdGlvbiBmaW5hbGl6ZSAoZHJhZnQsIHBhdGgsIHNjb3BlKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgdmFyIHN0YXRlID0gZHJhZnRbRFJBRlRfU1RBVEVdO1xuXG4gIGlmICghc3RhdGUpIHtcbiAgICBpZiAoT2JqZWN0LmlzRnJvemVuKGRyYWZ0KSkgeyByZXR1cm4gZHJhZnQ7IH1cbiAgICByZXR1cm4gdGhpcy5maW5hbGl6ZVRyZWUoZHJhZnQsIG51bGwsIHNjb3BlKTtcbiAgfSAvLyBOZXZlciBmaW5hbGl6ZSBkcmFmdHMgb3duZWQgYnkgYW5vdGhlciBzY29wZS5cblxuXG4gIGlmIChzdGF0ZS5zY29wZSAhPT0gc2NvcGUpIHtcbiAgICByZXR1cm4gZHJhZnQ7XG4gIH1cblxuICBpZiAoIXN0YXRlLm1vZGlmaWVkKSB7XG4gICAgcmV0dXJuIHN0YXRlLmJhc2U7XG4gIH1cblxuICBpZiAoIXN0YXRlLmZpbmFsaXplZCkge1xuICAgIHN0YXRlLmZpbmFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5maW5hbGl6ZVRyZWUoc3RhdGUuZHJhZnQsIHBhdGgsIHNjb3BlKTtcblxuICAgIGlmICh0aGlzLm9uRGVsZXRlKSB7XG4gICAgICAvLyBUaGUgYGFzc2lnbmVkYCBvYmplY3QgaXMgdW5yZWxpYWJsZSB3aXRoIEVTNSBkcmFmdHMuXG4gICAgICBpZiAodGhpcy51c2VQcm94aWVzKSB7XG4gICAgICAgIHZhciBhc3NpZ25lZCA9IHN0YXRlLmFzc2lnbmVkO1xuXG4gICAgICAgIGZvciAodmFyIHByb3AgaW4gYXNzaWduZWQpIHtcbiAgICAgICAgICBpZiAoIWFzc2lnbmVkW3Byb3BdKSB7IHRoaXMub25EZWxldGUoc3RhdGUsIHByb3ApOyB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiYXNlID0gc3RhdGUuYmFzZTtcbiAgICAgICAgICB2YXIgY29weSA9IHN0YXRlLmNvcHk7XG4gICAgICAgIGVhY2goYmFzZSwgZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICBpZiAoIWhhcyhjb3B5LCBwcm9wKSkgeyB0aGlzJDEub25EZWxldGUoc3RhdGUsIHByb3ApOyB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm9uQ29weSkge1xuICAgICAgdGhpcy5vbkNvcHkoc3RhdGUpO1xuICAgIH0gLy8gQXQgdGhpcyBwb2ludCwgYWxsIGRlc2NlbmRhbnRzIG9mIGBzdGF0ZS5jb3B5YCBoYXZlIGJlZW4gZmluYWxpemVkLFxuICAgIC8vIHNvIHdlIGNhbiBiZSBzdXJlIHRoYXQgYHNjb3BlLmNhbkF1dG9GcmVlemVgIGlzIGFjY3VyYXRlLlxuXG5cbiAgICBpZiAodGhpcy5hdXRvRnJlZXplICYmIHNjb3BlLmNhbkF1dG9GcmVlemUpIHtcbiAgICAgIE9iamVjdC5mcmVlemUoc3RhdGUuY29weSk7XG4gICAgfVxuXG4gICAgaWYgKHBhdGggJiYgc2NvcGUucGF0Y2hlcykge1xuICAgICAgZ2VuZXJhdGVQYXRjaGVzKHN0YXRlLCBwYXRoLCBzY29wZS5wYXRjaGVzLCBzY29wZS5pbnZlcnNlUGF0Y2hlcyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlLmNvcHk7XG59O1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEZpbmFsaXplIGFsbCBkcmFmdHMgaW4gdGhlIGdpdmVuIHN0YXRlIHRyZWUuXG4gKi9cblxuXG5JbW1lci5wcm90b3R5cGUuZmluYWxpemVUcmVlID0gZnVuY3Rpb24gZmluYWxpemVUcmVlIChyb290LCByb290UGF0aCwgc2NvcGUpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgc3RhdGUgPSByb290W0RSQUZUX1NUQVRFXTtcblxuICBpZiAoc3RhdGUpIHtcbiAgICBpZiAoIXRoaXMudXNlUHJveGllcykge1xuICAgICAgLy8gQ3JlYXRlIHRoZSBmaW5hbCBjb3B5LCB3aXRoIGFkZGVkIGtleXMgYW5kIHdpdGhvdXQgZGVsZXRlZCBrZXlzLlxuICAgICAgc3RhdGUuY29weSA9IHNoYWxsb3dDb3B5KHN0YXRlLmRyYWZ0LCB0cnVlKTtcbiAgICB9XG5cbiAgICByb290ID0gc3RhdGUuY29weTtcbiAgfVxuXG4gIHZhciBuZWVkUGF0Y2hlcyA9ICEhcm9vdFBhdGggJiYgISFzY29wZS5wYXRjaGVzO1xuXG4gIHZhciBmaW5hbGl6ZVByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3AsIHZhbHVlLCBwYXJlbnQpIHtcbiAgICBpZiAodmFsdWUgPT09IHBhcmVudCkge1xuICAgICAgdGhyb3cgRXJyb3IoXCJJbW1lciBmb3JiaWRzIGNpcmN1bGFyIHJlZmVyZW5jZXNcIik7XG4gICAgfSAvLyBJbiB0aGUgYGZpbmFsaXplVHJlZWAgbWV0aG9kLCBvbmx5IHRoZSBgcm9vdGAgb2JqZWN0IG1heSBiZSBhIGRyYWZ0LlxuXG5cbiAgICB2YXIgaXNEcmFmdFByb3AgPSAhIXN0YXRlICYmIHBhcmVudCA9PT0gcm9vdDtcblxuICAgIGlmIChpc0RyYWZ0KHZhbHVlKSkge1xuICAgICAgdmFyIHBhdGggPSBpc0RyYWZ0UHJvcCAmJiBuZWVkUGF0Y2hlcyAmJiAhc3RhdGUuYXNzaWduZWRbcHJvcF0gPyByb290UGF0aC5jb25jYXQocHJvcCkgOiBudWxsOyAvLyBEcmFmdHMgb3duZWQgYnkgYHNjb3BlYCBhcmUgZmluYWxpemVkIGhlcmUuXG5cbiAgICAgIHZhbHVlID0gdGhpcyQxLmZpbmFsaXplKHZhbHVlLCBwYXRoLCBzY29wZSk7IC8vIERyYWZ0cyBmcm9tIGFub3RoZXIgc2NvcGUgbXVzdCBwcmV2ZW50IGF1dG8tZnJlZXppbmcuXG5cbiAgICAgIGlmIChpc0RyYWZ0KHZhbHVlKSkge1xuICAgICAgICBzY29wZS5jYW5BdXRvRnJlZXplID0gZmFsc2U7XG4gICAgICB9IC8vIFByZXNlcnZlIG5vbi1lbnVtZXJhYmxlIHByb3BlcnRpZXMuXG5cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGFyZW50KSB8fCBpc0VudW1lcmFibGUocGFyZW50LCBwcm9wKSkge1xuICAgICAgICBwYXJlbnRbcHJvcF0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJlbnQsIHByb3AsIHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9IC8vIFVuY2hhbmdlZCBkcmFmdHMgYXJlIG5ldmVyIHBhc3NlZCB0byB0aGUgYG9uQXNzaWduYCBob29rLlxuXG5cbiAgICAgIGlmIChpc0RyYWZ0UHJvcCAmJiB2YWx1ZSA9PT0gc3RhdGUuYmFzZVtwcm9wXSkgeyByZXR1cm47IH1cbiAgICB9IC8vIFVuY2hhbmdlZCBkcmFmdCBwcm9wZXJ0aWVzIGFyZSBpZ25vcmVkLlxuICAgIGVsc2UgaWYgKGlzRHJhZnRQcm9wICYmIGlzKHZhbHVlLCBzdGF0ZS5iYXNlW3Byb3BdKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFNlYXJjaCBuZXcgb2JqZWN0cyBmb3IgdW5maW5hbGl6ZWQgZHJhZnRzLiBGcm96ZW4gb2JqZWN0cyBzaG91bGQgbmV2ZXIgY29udGFpbiBkcmFmdHMuXG4gICAgICBlbHNlIGlmIChpc0RyYWZ0YWJsZSh2YWx1ZSkgJiYgIU9iamVjdC5pc0Zyb3plbih2YWx1ZSkpIHtcbiAgICAgICAgICBlYWNoKHZhbHVlLCBmaW5hbGl6ZVByb3BlcnR5KTtcbiAgICAgICAgfVxuXG4gICAgaWYgKGlzRHJhZnRQcm9wICYmIHRoaXMkMS5vbkFzc2lnbikge1xuICAgICAgdGhpcyQxLm9uQXNzaWduKHN0YXRlLCBwcm9wLCB2YWx1ZSk7XG4gICAgfVxuICB9O1xuXG4gIGVhY2gocm9vdCwgZmluYWxpemVQcm9wZXJ0eSk7XG4gIHJldHVybiByb290O1xufTtcblxudmFyIGltbWVyID0gbmV3IEltbWVyKCk7XG4vKipcbiAqIFRoZSBgcHJvZHVjZWAgZnVuY3Rpb24gdGFrZXMgYSB2YWx1ZSBhbmQgYSBcInJlY2lwZSBmdW5jdGlvblwiICh3aG9zZVxuICogcmV0dXJuIHZhbHVlIG9mdGVuIGRlcGVuZHMgb24gdGhlIGJhc2Ugc3RhdGUpLiBUaGUgcmVjaXBlIGZ1bmN0aW9uIGlzXG4gKiBmcmVlIHRvIG11dGF0ZSBpdHMgZmlyc3QgYXJndW1lbnQgaG93ZXZlciBpdCB3YW50cy4gQWxsIG11dGF0aW9ucyBhcmVcbiAqIG9ubHkgZXZlciBhcHBsaWVkIHRvIGEgX19jb3B5X18gb2YgdGhlIGJhc2Ugc3RhdGUuXG4gKlxuICogUGFzcyBvbmx5IGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgXCJjdXJyaWVkIHByb2R1Y2VyXCIgd2hpY2ggcmVsaWV2ZXMgeW91XG4gKiBmcm9tIHBhc3NpbmcgdGhlIHJlY2lwZSBmdW5jdGlvbiBldmVyeSB0aW1lLlxuICpcbiAqIE9ubHkgcGxhaW4gb2JqZWN0cyBhbmQgYXJyYXlzIGFyZSBtYWRlIG11dGFibGUuIEFsbCBvdGhlciBvYmplY3RzIGFyZVxuICogY29uc2lkZXJlZCB1bmNvcHlhYmxlLlxuICpcbiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgX19ib3VuZF9fIHRvIGl0cyBgSW1tZXJgIGluc3RhbmNlLlxuICpcbiAqIEBwYXJhbSB7YW55fSBiYXNlIC0gdGhlIGluaXRpYWwgc3RhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByb2R1Y2VyIC0gZnVuY3Rpb24gdGhhdCByZWNlaXZlcyBhIHByb3h5IG9mIHRoZSBiYXNlIHN0YXRlIGFzIGZpcnN0IGFyZ3VtZW50IGFuZCB3aGljaCBjYW4gYmUgZnJlZWx5IG1vZGlmaWVkXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwYXRjaExpc3RlbmVyIC0gb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCB3aXRoIGFsbCB0aGUgcGF0Y2hlcyBwcm9kdWNlZCBoZXJlXG4gKiBAcmV0dXJucyB7YW55fSBhIG5ldyBzdGF0ZSwgb3IgdGhlIGluaXRpYWwgc3RhdGUgaWYgbm90aGluZyB3YXMgbW9kaWZpZWRcbiAqL1xuXG52YXIgcHJvZHVjZSA9IGltbWVyLnByb2R1Y2U7XG4vKipcbiAqIFBhc3MgdHJ1ZSB0byBhdXRvbWF0aWNhbGx5IGZyZWV6ZSBhbGwgY29waWVzIGNyZWF0ZWQgYnkgSW1tZXIuXG4gKlxuICogQnkgZGVmYXVsdCwgYXV0by1mcmVlemluZyBpcyBkaXNhYmxlZCBpbiBwcm9kdWN0aW9uLlxuICovXG5cbnZhciBzZXRBdXRvRnJlZXplID0gaW1tZXIuc2V0QXV0b0ZyZWV6ZS5iaW5kKGltbWVyKTtcbi8qKlxuICogUGFzcyB0cnVlIHRvIHVzZSB0aGUgRVMyMDE1IGBQcm94eWAgY2xhc3Mgd2hlbiBjcmVhdGluZyBkcmFmdHMsIHdoaWNoIGlzXG4gKiBhbHdheXMgZmFzdGVyIHRoYW4gdXNpbmcgRVM1IHByb3hpZXMuXG4gKlxuICogQnkgZGVmYXVsdCwgZmVhdHVyZSBkZXRlY3Rpb24gaXMgdXNlZCwgc28gY2FsbGluZyB0aGlzIGlzIHJhcmVseSBuZWNlc3NhcnkuXG4gKi9cblxudmFyIHNldFVzZVByb3hpZXMgPSBpbW1lci5zZXRVc2VQcm94aWVzLmJpbmQoaW1tZXIpO1xuLyoqXG4gKiBBcHBseSBhbiBhcnJheSBvZiBJbW1lciBwYXRjaGVzIHRvIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGEgcHJvZHVjZXIsIHdoaWNoIG1lYW5zIGNvcHktb24td3JpdGUgaXMgaW4gZWZmZWN0LlxuICovXG5cbnZhciBhcHBseVBhdGNoZXMkMSA9IGltbWVyLmFwcGx5UGF0Y2hlcy5iaW5kKGltbWVyKTtcbi8qKlxuICogQ3JlYXRlIGFuIEltbWVyIGRyYWZ0IGZyb20gdGhlIGdpdmVuIGJhc2Ugc3RhdGUsIHdoaWNoIG1heSBiZSBhIGRyYWZ0IGl0c2VsZi5cbiAqIFRoZSBkcmFmdCBjYW4gYmUgbW9kaWZpZWQgdW50aWwgeW91IGZpbmFsaXplIGl0IHdpdGggdGhlIGBmaW5pc2hEcmFmdGAgZnVuY3Rpb24uXG4gKi9cblxudmFyIGNyZWF0ZURyYWZ0ID0gaW1tZXIuY3JlYXRlRHJhZnQuYmluZChpbW1lcik7XG4vKipcbiAqIEZpbmFsaXplIGFuIEltbWVyIGRyYWZ0IGZyb20gYSBgY3JlYXRlRHJhZnRgIGNhbGwsIHJldHVybmluZyB0aGUgYmFzZSBzdGF0ZVxuICogKGlmIG5vIGNoYW5nZXMgd2VyZSBtYWRlKSBvciBhIG1vZGlmaWVkIGNvcHkuIFRoZSBkcmFmdCBtdXN0ICpub3QqIGJlXG4gKiBtdXRhdGVkIGFmdGVyd2FyZHMuXG4gKlxuICogUGFzcyBhIGZ1bmN0aW9uIGFzIHRoZSAybmQgYXJndW1lbnQgdG8gZ2VuZXJhdGUgSW1tZXIgcGF0Y2hlcyBiYXNlZCBvbiB0aGVcbiAqIGNoYW5nZXMgdGhhdCB3ZXJlIG1hZGUuXG4gKi9cblxudmFyIGZpbmlzaERyYWZ0ID0gaW1tZXIuZmluaXNoRHJhZnQuYmluZChpbW1lcik7XG5cbmV4cG9ydCBkZWZhdWx0IHByb2R1Y2U7XG5leHBvcnQgeyBJbW1lciwgYXBwbHlQYXRjaGVzJDEgYXMgYXBwbHlQYXRjaGVzLCBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQsIERSQUZUQUJMRSBhcyBpbW1lcmFibGUsIGlzRHJhZnQsIGlzRHJhZnRhYmxlLCBOT1RISU5HIGFzIG5vdGhpbmcsIG9yaWdpbmFsLCBwcm9kdWNlLCBzZXRBdXRvRnJlZXplLCBzZXRVc2VQcm94aWVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbW1lci5tb2R1bGUuanMubWFwXG4iLCJ2YXIgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSA9IHJlcXVpcmUoXCIuL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanNcIik7XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0gb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgdmFyIGtleSwgaTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7XG4gICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gIGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJ2YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIH1cblxuICBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHtcbiAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgdmFsdWU6IHN1YkNsYXNzLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9XG4gIH0pO1xuICBpZiAoc3VwZXJDbGFzcykgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pbmhlcml0cztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJ2YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9nZXRQcm90b3R5cGVPZi5qc1wiKTtcblxudmFyIGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IHJlcXVpcmUoXCIuL2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdC5qc1wiKTtcblxudmFyIHBvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gPSByZXF1aXJlKFwiLi9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzXCIpO1xuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkge1xuICB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpO1xuICByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7XG4gICAgdmFyIFN1cGVyID0gZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksXG4gICAgICAgIHJlc3VsdDtcblxuICAgIGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7XG4gICAgICB2YXIgTmV3VGFyZ2V0ID0gZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7XG4gICAgICByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIHJldHVybiBwb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2NyZWF0ZVN1cGVyO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIi8qKlxyXG4gKiBBIGNvbGxlY3Rpb24gb2Ygc2hpbXMgdGhhdCBwcm92aWRlIG1pbmltYWwgZnVuY3Rpb25hbGl0eSBvZiB0aGUgRVM2IGNvbGxlY3Rpb25zLlxyXG4gKlxyXG4gKiBUaGVzZSBpbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBtZWFudCB0byBiZSB1c2VkIG91dHNpZGUgb2YgdGhlIFJlc2l6ZU9ic2VydmVyXHJcbiAqIG1vZHVsZXMgYXMgdGhleSBjb3ZlciBvbmx5IGEgbGltaXRlZCByYW5nZSBvZiB1c2UgY2FzZXMuXHJcbiAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWpzZG9jLCB2YWxpZC1qc2RvYyAqL1xyXG52YXIgTWFwU2hpbSA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodHlwZW9mIE1hcCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICByZXR1cm4gTWFwO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGluZGV4IGluIHByb3ZpZGVkIGFycmF5IHRoYXQgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGtleS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0FycmF5PEFycmF5Pn0gYXJyXHJcbiAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICogQHJldHVybnMge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gZ2V0SW5kZXgoYXJyLCBrZXkpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gLTE7XHJcbiAgICAgICAgYXJyLnNvbWUoZnVuY3Rpb24gKGVudHJ5LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoZW50cnlbMF0gPT09IGtleSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIHJldHVybiAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gY2xhc3NfMSgpIHtcclxuICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfXyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY2xhc3NfMS5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX19lbnRyaWVzX18ubGVuZ3RoO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHsqfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgodGhpcy5fX2VudHJpZXNfXywga2V5KTtcclxuICAgICAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5fX2VudHJpZXNfX1tpbmRleF07XHJcbiAgICAgICAgICAgIHJldHVybiBlbnRyeSAmJiBlbnRyeVsxXTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0ga2V5XHJcbiAgICAgICAgICogQHBhcmFtIHsqfSB2YWx1ZVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHZhciBpbmRleCA9IGdldEluZGV4KHRoaXMuX19lbnRyaWVzX18sIGtleSk7XHJcbiAgICAgICAgICAgIGlmICh+aW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX19lbnRyaWVzX19baW5kZXhdWzFdID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9fZW50cmllc19fLnB1c2goW2tleSwgdmFsdWVdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQHBhcmFtIHsqfSBrZXlcclxuICAgICAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBjbGFzc18xLnByb3RvdHlwZS5kZWxldGUgPSBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgICAgIHZhciBlbnRyaWVzID0gdGhpcy5fX2VudHJpZXNfXztcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXgoZW50cmllcywga2V5KTtcclxuICAgICAgICAgICAgaWYgKH5pbmRleCkge1xyXG4gICAgICAgICAgICAgICAgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0geyp9IGtleVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhfmdldEluZGV4KHRoaXMuX19lbnRyaWVzX18sIGtleSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAgICAgKi9cclxuICAgICAgICBjbGFzc18xLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGhpcy5fX2VudHJpZXNfXy5zcGxpY2UoMCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xyXG4gICAgICAgICAqIEBwYXJhbSB7Kn0gW2N0eD1udWxsXVxyXG4gICAgICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNsYXNzXzEucHJvdG90eXBlLmZvckVhY2ggPSBmdW5jdGlvbiAoY2FsbGJhY2ssIGN0eCkge1xyXG4gICAgICAgICAgICBpZiAoY3R4ID09PSB2b2lkIDApIHsgY3R4ID0gbnVsbDsgfVxyXG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gdGhpcy5fX2VudHJpZXNfXzsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IF9hW19pXTtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwoY3R4LCBlbnRyeVsxXSwgZW50cnlbMF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY2xhc3NfMTtcclxuICAgIH0oKSk7XHJcbn0pKCk7XG5cbi8qKlxyXG4gKiBEZXRlY3RzIHdoZXRoZXIgd2luZG93IGFuZCBkb2N1bWVudCBvYmplY3RzIGFyZSBhdmFpbGFibGUgaW4gY3VycmVudCBlbnZpcm9ubWVudC5cclxuICovXHJcbnZhciBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCA9PT0gZG9jdW1lbnQ7XG5cbi8vIFJldHVybnMgZ2xvYmFsIG9iamVjdCBvZiBhIGN1cnJlbnQgZW52aXJvbm1lbnQuXHJcbnZhciBnbG9iYWwkMSA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgJiYgZ2xvYmFsLk1hdGggPT09IE1hdGgpIHtcclxuICAgICAgICByZXR1cm4gZ2xvYmFsO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT09IE1hdGgpIHtcclxuICAgICAgICByZXR1cm4gc2VsZjtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PT0gTWF0aCkge1xyXG4gICAgICAgIHJldHVybiB3aW5kb3c7XHJcbiAgICB9XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcclxuICAgIHJldHVybiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xyXG59KSgpO1xuXG4vKipcclxuICogQSBzaGltIGZvciB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHdoaWNoIGZhbGxzIGJhY2sgdG8gdGhlIHNldFRpbWVvdXQgaWZcclxuICogZmlyc3Qgb25lIGlzIG5vdCBzdXBwb3J0ZWQuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJlcXVlc3RzJyBpZGVudGlmaWVyLlxyXG4gKi9cclxudmFyIHJlcXVlc3RBbmltYXRpb25GcmFtZSQxID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgLy8gSXQncyByZXF1aXJlZCB0byB1c2UgYSBib3VuZGVkIGZ1bmN0aW9uIGJlY2F1c2UgSUUgc29tZXRpbWVzIHRocm93c1xyXG4gICAgICAgIC8vIGFuIFwiSW52YWxpZCBjYWxsaW5nIG9iamVjdFwiIGVycm9yIGlmIHJBRiBpcyBpbnZva2VkIHdpdGhvdXQgdGhlIGdsb2JhbFxyXG4gICAgICAgIC8vIG9iamVjdCBvbiB0aGUgbGVmdCBoYW5kIHNpZGUuXHJcbiAgICAgICAgcmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKGdsb2JhbCQxKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmdW5jdGlvbiAoY2FsbGJhY2spIHsgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gY2FsbGJhY2soRGF0ZS5ub3coKSk7IH0sIDEwMDAgLyA2MCk7IH07XHJcbn0pKCk7XG5cbi8vIERlZmluZXMgbWluaW11bSB0aW1lb3V0IGJlZm9yZSBhZGRpbmcgYSB0cmFpbGluZyBjYWxsLlxyXG52YXIgdHJhaWxpbmdUaW1lb3V0ID0gMjtcclxuLyoqXHJcbiAqIENyZWF0ZXMgYSB3cmFwcGVyIGZ1bmN0aW9uIHdoaWNoIGVuc3VyZXMgdGhhdCBwcm92aWRlZCBjYWxsYmFjayB3aWxsIGJlXHJcbiAqIGludm9rZWQgb25seSBvbmNlIGR1cmluZyB0aGUgc3BlY2lmaWVkIGRlbGF5IHBlcmlvZC5cclxuICpcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBGdW5jdGlvbiB0byBiZSBpbnZva2VkIGFmdGVyIHRoZSBkZWxheSBwZXJpb2QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBkZWxheSAtIERlbGF5IGFmdGVyIHdoaWNoIHRvIGludm9rZSBjYWxsYmFjay5cclxuICogQHJldHVybnMge0Z1bmN0aW9ufVxyXG4gKi9cclxuZnVuY3Rpb24gdGhyb3R0bGUgKGNhbGxiYWNrLCBkZWxheSkge1xyXG4gICAgdmFyIGxlYWRpbmdDYWxsID0gZmFsc2UsIHRyYWlsaW5nQ2FsbCA9IGZhbHNlLCBsYXN0Q2FsbFRpbWUgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnZva2VzIHRoZSBvcmlnaW5hbCBjYWxsYmFjayBmdW5jdGlvbiBhbmQgc2NoZWR1bGVzIG5ldyBpbnZvY2F0aW9uIGlmXHJcbiAgICAgKiB0aGUgXCJwcm94eVwiIHdhcyBjYWxsZWQgZHVyaW5nIGN1cnJlbnQgcmVxdWVzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gcmVzb2x2ZVBlbmRpbmcoKSB7XHJcbiAgICAgICAgaWYgKGxlYWRpbmdDYWxsKSB7XHJcbiAgICAgICAgICAgIGxlYWRpbmdDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0cmFpbGluZ0NhbGwpIHtcclxuICAgICAgICAgICAgcHJveHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGludm9rZWQgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkZWxheS4gSXQgd2lsbCBmdXJ0aGVyIHBvc3Rwb25lXHJcbiAgICAgKiBpbnZvY2F0aW9uIG9mIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBkZWxlZ2F0aW5nIGl0IHRvIHRoZVxyXG4gICAgICogcmVxdWVzdEFuaW1hdGlvbkZyYW1lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiB0aW1lb3V0Q2FsbGJhY2soKSB7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lJDEocmVzb2x2ZVBlbmRpbmcpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTY2hlZHVsZXMgaW52b2NhdGlvbiBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIHByb3h5KCkge1xyXG4gICAgICAgIHZhciB0aW1lU3RhbXAgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgIGlmIChsZWFkaW5nQ2FsbCkge1xyXG4gICAgICAgICAgICAvLyBSZWplY3QgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGNhbGxzLlxyXG4gICAgICAgICAgICBpZiAodGltZVN0YW1wIC0gbGFzdENhbGxUaW1lIDwgdHJhaWxpbmdUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gU2NoZWR1bGUgbmV3IGNhbGwgdG8gYmUgaW4gaW52b2tlZCB3aGVuIHRoZSBwZW5kaW5nIG9uZSBpcyByZXNvbHZlZC5cclxuICAgICAgICAgICAgLy8gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIFwidHJhbnNpdGlvbnNcIiB3aGljaCBuZXZlciBhY3R1YWxseSBzdGFydFxyXG4gICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBzbyB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IHdlIG1pZ2h0IG1pc3Mgb25lIGlmIGNoYW5nZVxyXG4gICAgICAgICAgICAvLyBoYXBwZW5zIGFtaWRzIHRoZSBwZW5kaW5nIGludm9jYXRpb24uXHJcbiAgICAgICAgICAgIHRyYWlsaW5nQ2FsbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZWFkaW5nQ2FsbCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRyYWlsaW5nQ2FsbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KHRpbWVvdXRDYWxsYmFjaywgZGVsYXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsYXN0Q2FsbFRpbWUgPSB0aW1lU3RhbXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJveHk7XHJcbn1cblxuLy8gTWluaW11bSBkZWxheSBiZWZvcmUgaW52b2tpbmcgdGhlIHVwZGF0ZSBvZiBvYnNlcnZlcnMuXHJcbnZhciBSRUZSRVNIX0RFTEFZID0gMjA7XHJcbi8vIEEgbGlzdCBvZiBzdWJzdHJpbmdzIG9mIENTUyBwcm9wZXJ0aWVzIHVzZWQgdG8gZmluZCB0cmFuc2l0aW9uIGV2ZW50cyB0aGF0XHJcbi8vIG1pZ2h0IGFmZmVjdCBkaW1lbnNpb25zIG9mIG9ic2VydmVkIGVsZW1lbnRzLlxyXG52YXIgdHJhbnNpdGlvbktleXMgPSBbJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCcsICd3aWR0aCcsICdoZWlnaHQnLCAnc2l6ZScsICd3ZWlnaHQnXTtcclxuLy8gQ2hlY2sgaWYgTXV0YXRpb25PYnNlcnZlciBpcyBhdmFpbGFibGUuXHJcbnZhciBtdXRhdGlvbk9ic2VydmVyU3VwcG9ydGVkID0gdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnO1xyXG4vKipcclxuICogU2luZ2xldG9uIGNvbnRyb2xsZXIgY2xhc3Mgd2hpY2ggaGFuZGxlcyB1cGRhdGVzIG9mIFJlc2l6ZU9ic2VydmVyIGluc3RhbmNlcy5cclxuICovXHJcbnZhciBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIGZ1bmN0aW9uIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcigpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBET00gbGlzdGVuZXJzIGhhdmUgYmVlbiBhZGRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwcml2YXRlIHtib29sZWFufVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkXyA9IGZhbHNlO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRlbGxzIHRoYXQgY29udHJvbGxlciBoYXMgc3Vic2NyaWJlZCBmb3IgTXV0YXRpb24gRXZlbnRzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge2Jvb2xlYW59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tdXRhdGlvbkV2ZW50c0FkZGVkXyA9IGZhbHNlO1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEtlZXBzIHJlZmVyZW5jZSB0byB0aGUgaW5zdGFuY2Ugb2YgTXV0YXRpb25PYnNlcnZlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwcml2YXRlIHtNdXRhdGlvbk9ic2VydmVyfVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfID0gbnVsbDtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGxpc3Qgb2YgY29ubmVjdGVkIG9ic2VydmVycy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBwcml2YXRlIHtBcnJheTxSZXNpemVPYnNlcnZlclNQST59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5vYnNlcnZlcnNfID0gW107XHJcbiAgICAgICAgdGhpcy5vblRyYW5zaXRpb25FbmRfID0gdGhpcy5vblRyYW5zaXRpb25FbmRfLmJpbmQodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoID0gdGhyb3R0bGUodGhpcy5yZWZyZXNoLmJpbmQodGhpcyksIFJFRlJFU0hfREVMQVkpO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIG9ic2VydmVyIHRvIG9ic2VydmVycyBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJTUEl9IG9ic2VydmVyIC0gT2JzZXJ2ZXIgdG8gYmUgYWRkZWQuXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5hZGRPYnNlcnZlciA9IGZ1bmN0aW9uIChvYnNlcnZlcikge1xyXG4gICAgICAgIGlmICghfnRoaXMub2JzZXJ2ZXJzXy5pbmRleE9mKG9ic2VydmVyKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyc18ucHVzaChvYnNlcnZlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEFkZCBsaXN0ZW5lcnMgaWYgdGhleSBoYXZlbid0IGJlZW4gYWRkZWQgeWV0LlxyXG4gICAgICAgIGlmICghdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdF8oKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIG9ic2VydmVyIGZyb20gb2JzZXJ2ZXJzIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlclNQSX0gb2JzZXJ2ZXIgLSBPYnNlcnZlciB0byBiZSByZW1vdmVkLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUucmVtb3ZlT2JzZXJ2ZXIgPSBmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gdGhpcy5vYnNlcnZlcnNfO1xyXG4gICAgICAgIHZhciBpbmRleCA9IG9ic2VydmVycy5pbmRleE9mKG9ic2VydmVyKTtcclxuICAgICAgICAvLyBSZW1vdmUgb2JzZXJ2ZXIgaWYgaXQncyBwcmVzZW50IGluIHJlZ2lzdHJ5LlxyXG4gICAgICAgIGlmICh+aW5kZXgpIHtcclxuICAgICAgICAgICAgb2JzZXJ2ZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lcnMgaWYgY29udHJvbGxlciBoYXMgbm8gY29ubmVjdGVkIG9ic2VydmVycy5cclxuICAgICAgICBpZiAoIW9ic2VydmVycy5sZW5ndGggJiYgdGhpcy5jb25uZWN0ZWRfKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdF8oKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnZva2VzIHRoZSB1cGRhdGUgb2Ygb2JzZXJ2ZXJzLiBJdCB3aWxsIGNvbnRpbnVlIHJ1bm5pbmcgdXBkYXRlcyBpbnNvZmFyXHJcbiAgICAgKiBpdCBkZXRlY3RzIGNoYW5nZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgY2hhbmdlc0RldGVjdGVkID0gdGhpcy51cGRhdGVPYnNlcnZlcnNfKCk7XHJcbiAgICAgICAgLy8gQ29udGludWUgcnVubmluZyB1cGRhdGVzIGlmIGNoYW5nZXMgaGF2ZSBiZWVuIGRldGVjdGVkIGFzIHRoZXJlIG1pZ2h0XHJcbiAgICAgICAgLy8gYmUgZnV0dXJlIG9uZXMgY2F1c2VkIGJ5IENTUyB0cmFuc2l0aW9ucy5cclxuICAgICAgICBpZiAoY2hhbmdlc0RldGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgZXZlcnkgb2JzZXJ2ZXIgZnJvbSBvYnNlcnZlcnMgbGlzdCBhbmQgbm90aWZpZXMgdGhlbSBvZiBxdWV1ZWRcclxuICAgICAqIGVudHJpZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIFwidHJ1ZVwiIGlmIGFueSBvYnNlcnZlciBoYXMgZGV0ZWN0ZWQgY2hhbmdlcyBpblxyXG4gICAgICogICAgICBkaW1lbnNpb25zIG9mIGl0J3MgZWxlbWVudHMuXHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5wcm90b3R5cGUudXBkYXRlT2JzZXJ2ZXJzXyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBDb2xsZWN0IG9ic2VydmVycyB0aGF0IGhhdmUgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAgICB2YXIgYWN0aXZlT2JzZXJ2ZXJzID0gdGhpcy5vYnNlcnZlcnNfLmZpbHRlcihmdW5jdGlvbiAob2JzZXJ2ZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9ic2VydmVyLmdhdGhlckFjdGl2ZSgpLCBvYnNlcnZlci5oYXNBY3RpdmUoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBEZWxpdmVyIG5vdGlmaWNhdGlvbnMgaW4gYSBzZXBhcmF0ZSBjeWNsZSBpbiBvcmRlciB0byBhdm9pZCBhbnlcclxuICAgICAgICAvLyBjb2xsaXNpb25zIGJldHdlZW4gb2JzZXJ2ZXJzLCBlLmcuIHdoZW4gbXVsdGlwbGUgaW5zdGFuY2VzIG9mXHJcbiAgICAgICAgLy8gUmVzaXplT2JzZXJ2ZXIgYXJlIHRyYWNraW5nIHRoZSBzYW1lIGVsZW1lbnQgYW5kIHRoZSBjYWxsYmFjayBvZiBvbmVcclxuICAgICAgICAvLyBvZiB0aGVtIGNoYW5nZXMgY29udGVudCBkaW1lbnNpb25zIG9mIHRoZSBvYnNlcnZlZCB0YXJnZXQuIFNvbWV0aW1lc1xyXG4gICAgICAgIC8vIHRoaXMgbWF5IHJlc3VsdCBpbiBub3RpZmljYXRpb25zIGJlaW5nIGJsb2NrZWQgZm9yIHRoZSByZXN0IG9mIG9ic2VydmVycy5cclxuICAgICAgICBhY3RpdmVPYnNlcnZlcnMuZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2ZXIpIHsgcmV0dXJuIG9ic2VydmVyLmJyb2FkY2FzdEFjdGl2ZSgpOyB9KTtcclxuICAgICAgICByZXR1cm4gYWN0aXZlT2JzZXJ2ZXJzLmxlbmd0aCA+IDA7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBET00gbGlzdGVuZXJzLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLnByb3RvdHlwZS5jb25uZWN0XyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIHJ1bm5pbmcgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudCBvciBpZiBsaXN0ZW5lcnNcclxuICAgICAgICAvLyBoYXZlIGJlZW4gYWxyZWFkeSBhZGRlZC5cclxuICAgICAgICBpZiAoIWlzQnJvd3NlciB8fCB0aGlzLmNvbm5lY3RlZF8pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBTdWJzY3JpcHRpb24gdG8gdGhlIFwiVHJhbnNpdGlvbmVuZFwiIGV2ZW50IGlzIHVzZWQgYXMgYSB3b3JrYXJvdW5kIGZvclxyXG4gICAgICAgIC8vIGRlbGF5ZWQgdHJhbnNpdGlvbnMuIFRoaXMgd2F5IGl0J3MgcG9zc2libGUgdG8gY2FwdHVyZSBhdCBsZWFzdCB0aGVcclxuICAgICAgICAvLyBmaW5hbCBzdGF0ZSBvZiBhbiBlbGVtZW50LlxyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCB0aGlzLm9uVHJhbnNpdGlvbkVuZF8pO1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgIGlmIChtdXRhdGlvbk9ic2VydmVyU3VwcG9ydGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5yZWZyZXNoKTtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbnNPYnNlcnZlcl8ub2JzZXJ2ZShkb2N1bWVudCwge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGNoYXJhY3RlckRhdGE6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzdWJ0cmVlOiB0cnVlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NU3VidHJlZU1vZGlmaWVkJywgdGhpcy5yZWZyZXNoKTtcclxuICAgICAgICAgICAgdGhpcy5tdXRhdGlvbkV2ZW50c0FkZGVkXyA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkXyA9IHRydWU7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIERPTSBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLmRpc2Nvbm5lY3RfID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgcnVubmluZyBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50IG9yIGlmIGxpc3RlbmVyc1xyXG4gICAgICAgIC8vIGhhdmUgYmVlbiBhbHJlYWR5IHJlbW92ZWQuXHJcbiAgICAgICAgaWYgKCFpc0Jyb3dzZXIgfHwgIXRoaXMuY29ubmVjdGVkXykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCB0aGlzLm9uVHJhbnNpdGlvbkVuZF8pO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlZnJlc2gpO1xyXG4gICAgICAgIGlmICh0aGlzLm11dGF0aW9uc09ic2VydmVyXykge1xyXG4gICAgICAgICAgICB0aGlzLm11dGF0aW9uc09ic2VydmVyXy5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTVN1YnRyZWVNb2RpZmllZCcsIHRoaXMucmVmcmVzaCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubXV0YXRpb25zT2JzZXJ2ZXJfID0gbnVsbDtcclxuICAgICAgICB0aGlzLm11dGF0aW9uRXZlbnRzQWRkZWRfID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRfID0gZmFsc2U7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBcIlRyYW5zaXRpb25lbmRcIiBldmVudCBoYW5kbGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAcGFyYW0ge1RyYW5zaXRpb25FdmVudH0gZXZlbnRcclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIucHJvdG90eXBlLm9uVHJhbnNpdGlvbkVuZF8gPSBmdW5jdGlvbiAoX2EpIHtcclxuICAgICAgICB2YXIgX2IgPSBfYS5wcm9wZXJ0eU5hbWUsIHByb3BlcnR5TmFtZSA9IF9iID09PSB2b2lkIDAgPyAnJyA6IF9iO1xyXG4gICAgICAgIC8vIERldGVjdCB3aGV0aGVyIHRyYW5zaXRpb24gbWF5IGFmZmVjdCBkaW1lbnNpb25zIG9mIGFuIGVsZW1lbnQuXHJcbiAgICAgICAgdmFyIGlzUmVmbG93UHJvcGVydHkgPSB0cmFuc2l0aW9uS2V5cy5zb21lKGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICEhfnByb3BlcnR5TmFtZS5pbmRleE9mKGtleSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGlzUmVmbG93UHJvcGVydHkpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBpbnN0YW5jZSBvZiB0aGUgUmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtSZXNpemVPYnNlcnZlckNvbnRyb2xsZXJ9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlci5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2VfKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VfID0gbmV3IFJlc2l6ZU9ic2VydmVyQ29udHJvbGxlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZV87XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBIb2xkcyByZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2xsZXIncyBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcHJpdmF0ZSB7UmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuaW5zdGFuY2VfID0gbnVsbDtcclxuICAgIHJldHVybiBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXI7XHJcbn0oKSk7XG5cbi8qKlxyXG4gKiBEZWZpbmVzIG5vbi13cml0YWJsZS9lbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgdGhlIHByb3ZpZGVkIHRhcmdldCBvYmplY3QuXHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSB0YXJnZXQgLSBPYmplY3QgZm9yIHdoaWNoIHRvIGRlZmluZSBwcm9wZXJ0aWVzLlxyXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBQcm9wZXJ0aWVzIHRvIGJlIGRlZmluZWQuXHJcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRhcmdldCBvYmplY3QuXHJcbiAqL1xyXG52YXIgZGVmaW5lQ29uZmlndXJhYmxlID0gKGZ1bmN0aW9uICh0YXJnZXQsIHByb3BzKSB7XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gT2JqZWN0LmtleXMocHJvcHMpOyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBrZXkgPSBfYVtfaV07XHJcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XHJcbiAgICAgICAgICAgIHZhbHVlOiBwcm9wc1trZXldLFxyXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbn0pO1xuXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2xvYmFsIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggcHJvdmlkZWQgZWxlbWVudC5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IHRhcmdldFxyXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxyXG4gKi9cclxudmFyIGdldFdpbmRvd09mID0gKGZ1bmN0aW9uICh0YXJnZXQpIHtcclxuICAgIC8vIEFzc3VtZSB0aGF0IHRoZSBlbGVtZW50IGlzIGFuIGluc3RhbmNlIG9mIE5vZGUsIHdoaWNoIG1lYW5zIHRoYXQgaXRcclxuICAgIC8vIGhhcyB0aGUgXCJvd25lckRvY3VtZW50XCIgcHJvcGVydHkgZnJvbSB3aGljaCB3ZSBjYW4gcmV0cmlldmUgYVxyXG4gICAgLy8gY29ycmVzcG9uZGluZyBnbG9iYWwgb2JqZWN0LlxyXG4gICAgdmFyIG93bmVyR2xvYmFsID0gdGFyZ2V0ICYmIHRhcmdldC5vd25lckRvY3VtZW50ICYmIHRhcmdldC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xyXG4gICAgLy8gUmV0dXJuIHRoZSBsb2NhbCBnbG9iYWwgb2JqZWN0IGlmIGl0J3Mgbm90IHBvc3NpYmxlIGV4dHJhY3Qgb25lIGZyb21cclxuICAgIC8vIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICByZXR1cm4gb3duZXJHbG9iYWwgfHwgZ2xvYmFsJDE7XHJcbn0pO1xuXG4vLyBQbGFjZWhvbGRlciBvZiBhbiBlbXB0eSBjb250ZW50IHJlY3RhbmdsZS5cclxudmFyIGVtcHR5UmVjdCA9IGNyZWF0ZVJlY3RJbml0KDAsIDAsIDAsIDApO1xyXG4vKipcclxuICogQ29udmVydHMgcHJvdmlkZWQgc3RyaW5nIHRvIGEgbnVtYmVyLlxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IHZhbHVlXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ9XHJcbiAqL1xyXG5mdW5jdGlvbiB0b0Zsb2F0KHZhbHVlKSB7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZSkgfHwgMDtcclxufVxyXG4vKipcclxuICogRXh0cmFjdHMgYm9yZGVycyBzaXplIGZyb20gcHJvdmlkZWQgc3R5bGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0NTU1N0eWxlRGVjbGFyYXRpb259IHN0eWxlc1xyXG4gKiBAcGFyYW0gey4uLnN0cmluZ30gcG9zaXRpb25zIC0gQm9yZGVycyBwb3NpdGlvbnMgKHRvcCwgcmlnaHQsIC4uLilcclxuICogQHJldHVybnMge251bWJlcn1cclxuICovXHJcbmZ1bmN0aW9uIGdldEJvcmRlcnNTaXplKHN0eWxlcykge1xyXG4gICAgdmFyIHBvc2l0aW9ucyA9IFtdO1xyXG4gICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICBwb3NpdGlvbnNbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcG9zaXRpb25zLnJlZHVjZShmdW5jdGlvbiAoc2l6ZSwgcG9zaXRpb24pIHtcclxuICAgICAgICB2YXIgdmFsdWUgPSBzdHlsZXNbJ2JvcmRlci0nICsgcG9zaXRpb24gKyAnLXdpZHRoJ107XHJcbiAgICAgICAgcmV0dXJuIHNpemUgKyB0b0Zsb2F0KHZhbHVlKTtcclxuICAgIH0sIDApO1xyXG59XHJcbi8qKlxyXG4gKiBFeHRyYWN0cyBwYWRkaW5ncyBzaXplcyBmcm9tIHByb3ZpZGVkIHN0eWxlcy5cclxuICpcclxuICogQHBhcmFtIHtDU1NTdHlsZURlY2xhcmF0aW9ufSBzdHlsZXNcclxuICogQHJldHVybnMge09iamVjdH0gUGFkZGluZ3MgYm94LlxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0UGFkZGluZ3Moc3R5bGVzKSB7XHJcbiAgICB2YXIgcG9zaXRpb25zID0gWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXTtcclxuICAgIHZhciBwYWRkaW5ncyA9IHt9O1xyXG4gICAgZm9yICh2YXIgX2kgPSAwLCBwb3NpdGlvbnNfMSA9IHBvc2l0aW9uczsgX2kgPCBwb3NpdGlvbnNfMS5sZW5ndGg7IF9pKyspIHtcclxuICAgICAgICB2YXIgcG9zaXRpb24gPSBwb3NpdGlvbnNfMVtfaV07XHJcbiAgICAgICAgdmFyIHZhbHVlID0gc3R5bGVzWydwYWRkaW5nLScgKyBwb3NpdGlvbl07XHJcbiAgICAgICAgcGFkZGluZ3NbcG9zaXRpb25dID0gdG9GbG9hdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFkZGluZ3M7XHJcbn1cclxuLyoqXHJcbiAqIENhbGN1bGF0ZXMgY29udGVudCByZWN0YW5nbGUgb2YgcHJvdmlkZWQgU1ZHIGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U1ZHR3JhcGhpY3NFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IGNvbnRlbnQgcmVjdGFuZ2xlIG9mIHdoaWNoIG5lZWRzXHJcbiAqICAgICAgdG8gYmUgY2FsY3VsYXRlZC5cclxuICogQHJldHVybnMge0RPTVJlY3RJbml0fVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0U1ZHQ29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICB2YXIgYmJveCA9IHRhcmdldC5nZXRCQm94KCk7XHJcbiAgICByZXR1cm4gY3JlYXRlUmVjdEluaXQoMCwgMCwgYmJveC53aWR0aCwgYmJveC5oZWlnaHQpO1xyXG59XHJcbi8qKlxyXG4gKiBDYWxjdWxhdGVzIGNvbnRlbnQgcmVjdGFuZ2xlIG9mIHByb3ZpZGVkIEhUTUxFbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IGZvciB3aGljaCB0byBjYWxjdWxhdGUgdGhlIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gKiBAcmV0dXJucyB7RE9NUmVjdEluaXR9XHJcbiAqL1xyXG5mdW5jdGlvbiBnZXRIVE1MRWxlbWVudENvbnRlbnRSZWN0KHRhcmdldCkge1xyXG4gICAgLy8gQ2xpZW50IHdpZHRoICYgaGVpZ2h0IHByb3BlcnRpZXMgY2FuJ3QgYmVcclxuICAgIC8vIHVzZWQgZXhjbHVzaXZlbHkgYXMgdGhleSBwcm92aWRlIHJvdW5kZWQgdmFsdWVzLlxyXG4gICAgdmFyIGNsaWVudFdpZHRoID0gdGFyZ2V0LmNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgPSB0YXJnZXQuY2xpZW50SGVpZ2h0O1xyXG4gICAgLy8gQnkgdGhpcyBjb25kaXRpb24gd2UgY2FuIGNhdGNoIGFsbCBub24tcmVwbGFjZWQgaW5saW5lLCBoaWRkZW4gYW5kXHJcbiAgICAvLyBkZXRhY2hlZCBlbGVtZW50cy4gVGhvdWdoIGVsZW1lbnRzIHdpdGggd2lkdGggJiBoZWlnaHQgcHJvcGVydGllcyBsZXNzXHJcbiAgICAvLyB0aGFuIDAuNSB3aWxsIGJlIGRpc2NhcmRlZCBhcyB3ZWxsLlxyXG4gICAgLy9cclxuICAgIC8vIFdpdGhvdXQgaXQgd2Ugd291bGQgbmVlZCB0byBpbXBsZW1lbnQgc2VwYXJhdGUgbWV0aG9kcyBmb3IgZWFjaCBvZlxyXG4gICAgLy8gdGhvc2UgY2FzZXMgYW5kIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHBlcmZvcm0gYSBwcmVjaXNlIGFuZCBwZXJmb3JtYW5jZVxyXG4gICAgLy8gZWZmZWN0aXZlIHRlc3QgZm9yIGhpZGRlbiBlbGVtZW50cy4gRS5nLiBldmVuIGpRdWVyeSdzICc6dmlzaWJsZScgZmlsdGVyXHJcbiAgICAvLyBnaXZlcyB3cm9uZyByZXN1bHRzIGZvciBlbGVtZW50cyB3aXRoIHdpZHRoICYgaGVpZ2h0IGxlc3MgdGhhbiAwLjUuXHJcbiAgICBpZiAoIWNsaWVudFdpZHRoICYmICFjbGllbnRIZWlnaHQpIHtcclxuICAgICAgICByZXR1cm4gZW1wdHlSZWN0O1xyXG4gICAgfVxyXG4gICAgdmFyIHN0eWxlcyA9IGdldFdpbmRvd09mKHRhcmdldCkuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpO1xyXG4gICAgdmFyIHBhZGRpbmdzID0gZ2V0UGFkZGluZ3Moc3R5bGVzKTtcclxuICAgIHZhciBob3JpelBhZCA9IHBhZGRpbmdzLmxlZnQgKyBwYWRkaW5ncy5yaWdodDtcclxuICAgIHZhciB2ZXJ0UGFkID0gcGFkZGluZ3MudG9wICsgcGFkZGluZ3MuYm90dG9tO1xyXG4gICAgLy8gQ29tcHV0ZWQgc3R5bGVzIG9mIHdpZHRoICYgaGVpZ2h0IGFyZSBiZWluZyB1c2VkIGJlY2F1c2UgdGhleSBhcmUgdGhlXHJcbiAgICAvLyBvbmx5IGRpbWVuc2lvbnMgYXZhaWxhYmxlIHRvIEpTIHRoYXQgY29udGFpbiBub24tcm91bmRlZCB2YWx1ZXMuIEl0IGNvdWxkXHJcbiAgICAvLyBiZSBwb3NzaWJsZSB0byB1dGlsaXplIHRoZSBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaWYgb25seSBpdCdzIGRhdGEgd2Fzbid0XHJcbiAgICAvLyBhZmZlY3RlZCBieSBDU1MgdHJhbnNmb3JtYXRpb25zIGxldCBhbG9uZSBwYWRkaW5ncywgYm9yZGVycyBhbmQgc2Nyb2xsIGJhcnMuXHJcbiAgICB2YXIgd2lkdGggPSB0b0Zsb2F0KHN0eWxlcy53aWR0aCksIGhlaWdodCA9IHRvRmxvYXQoc3R5bGVzLmhlaWdodCk7XHJcbiAgICAvLyBXaWR0aCAmIGhlaWdodCBpbmNsdWRlIHBhZGRpbmdzIGFuZCBib3JkZXJzIHdoZW4gdGhlICdib3JkZXItYm94JyBib3hcclxuICAgIC8vIG1vZGVsIGlzIGFwcGxpZWQgKGV4Y2VwdCBmb3IgSUUpLlxyXG4gICAgaWYgKHN0eWxlcy5ib3hTaXppbmcgPT09ICdib3JkZXItYm94Jykge1xyXG4gICAgICAgIC8vIEZvbGxvd2luZyBjb25kaXRpb25zIGFyZSByZXF1aXJlZCB0byBoYW5kbGUgSW50ZXJuZXQgRXhwbG9yZXIgd2hpY2hcclxuICAgICAgICAvLyBkb2Vzbid0IGluY2x1ZGUgcGFkZGluZ3MgYW5kIGJvcmRlcnMgdG8gY29tcHV0ZWQgQ1NTIGRpbWVuc2lvbnMuXHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyBXZSBjYW4gc2F5IHRoYXQgaWYgQ1NTIGRpbWVuc2lvbnMgKyBwYWRkaW5ncyBhcmUgZXF1YWwgdG8gdGhlIFwiY2xpZW50XCJcclxuICAgICAgICAvLyBwcm9wZXJ0aWVzIHRoZW4gaXQncyBlaXRoZXIgSUUsIGFuZCB0aHVzIHdlIGRvbid0IG5lZWQgdG8gc3VidHJhY3RcclxuICAgICAgICAvLyBhbnl0aGluZywgb3IgYW4gZWxlbWVudCBtZXJlbHkgZG9lc24ndCBoYXZlIHBhZGRpbmdzL2JvcmRlcnMgc3R5bGVzLlxyXG4gICAgICAgIGlmIChNYXRoLnJvdW5kKHdpZHRoICsgaG9yaXpQYWQpICE9PSBjbGllbnRXaWR0aCkge1xyXG4gICAgICAgICAgICB3aWR0aCAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICdsZWZ0JywgJ3JpZ2h0JykgKyBob3JpelBhZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKE1hdGgucm91bmQoaGVpZ2h0ICsgdmVydFBhZCkgIT09IGNsaWVudEhlaWdodCkge1xyXG4gICAgICAgICAgICBoZWlnaHQgLT0gZ2V0Qm9yZGVyc1NpemUoc3R5bGVzLCAndG9wJywgJ2JvdHRvbScpICsgdmVydFBhZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBGb2xsb3dpbmcgc3RlcHMgY2FuJ3QgYmUgYXBwbGllZCB0byB0aGUgZG9jdW1lbnQncyByb290IGVsZW1lbnQgYXMgaXRzXHJcbiAgICAvLyBjbGllbnRbV2lkdGgvSGVpZ2h0XSBwcm9wZXJ0aWVzIHJlcHJlc2VudCB2aWV3cG9ydCBhcmVhIG9mIHRoZSB3aW5kb3cuXHJcbiAgICAvLyBCZXNpZGVzLCBpdCdzIGFzIHdlbGwgbm90IG5lY2Vzc2FyeSBhcyB0aGUgPGh0bWw+IGl0c2VsZiBuZWl0aGVyIGhhc1xyXG4gICAgLy8gcmVuZGVyZWQgc2Nyb2xsIGJhcnMgbm9yIGl0IGNhbiBiZSBjbGlwcGVkLlxyXG4gICAgaWYgKCFpc0RvY3VtZW50RWxlbWVudCh0YXJnZXQpKSB7XHJcbiAgICAgICAgLy8gSW4gc29tZSBicm93c2VycyAob25seSBpbiBGaXJlZm94LCBhY3R1YWxseSkgQ1NTIHdpZHRoICYgaGVpZ2h0XHJcbiAgICAgICAgLy8gaW5jbHVkZSBzY3JvbGwgYmFycyBzaXplIHdoaWNoIGNhbiBiZSByZW1vdmVkIGF0IHRoaXMgc3RlcCBhcyBzY3JvbGxcclxuICAgICAgICAvLyBiYXJzIGFyZSB0aGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gcm91bmRlZCBkaW1lbnNpb25zICsgcGFkZGluZ3NcclxuICAgICAgICAvLyBhbmQgXCJjbGllbnRcIiBwcm9wZXJ0aWVzLCB0aG91Z2ggdGhhdCBpcyBub3QgYWx3YXlzIHRydWUgaW4gQ2hyb21lLlxyXG4gICAgICAgIHZhciB2ZXJ0U2Nyb2xsYmFyID0gTWF0aC5yb3VuZCh3aWR0aCArIGhvcml6UGFkKSAtIGNsaWVudFdpZHRoO1xyXG4gICAgICAgIHZhciBob3JpelNjcm9sbGJhciA9IE1hdGgucm91bmQoaGVpZ2h0ICsgdmVydFBhZCkgLSBjbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgLy8gQ2hyb21lIGhhcyBhIHJhdGhlciB3ZWlyZCByb3VuZGluZyBvZiBcImNsaWVudFwiIHByb3BlcnRpZXMuXHJcbiAgICAgICAgLy8gRS5nLiBmb3IgYW4gZWxlbWVudCB3aXRoIGNvbnRlbnQgd2lkdGggb2YgMzE0LjJweCBpdCBzb21ldGltZXMgZ2l2ZXNcclxuICAgICAgICAvLyB0aGUgY2xpZW50IHdpZHRoIG9mIDMxNXB4IGFuZCBmb3IgdGhlIHdpZHRoIG9mIDMxNC43cHggaXQgbWF5IGdpdmVcclxuICAgICAgICAvLyAzMTRweC4gQW5kIGl0IGRvZXNuJ3QgaGFwcGVuIGFsbCB0aGUgdGltZS4gU28ganVzdCBpZ25vcmUgdGhpcyBkZWx0YVxyXG4gICAgICAgIC8vIGFzIGEgbm9uLXJlbGV2YW50LlxyXG4gICAgICAgIGlmIChNYXRoLmFicyh2ZXJ0U2Nyb2xsYmFyKSAhPT0gMSkge1xyXG4gICAgICAgICAgICB3aWR0aCAtPSB2ZXJ0U2Nyb2xsYmFyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoTWF0aC5hYnMoaG9yaXpTY3JvbGxiYXIpICE9PSAxKSB7XHJcbiAgICAgICAgICAgIGhlaWdodCAtPSBob3JpelNjcm9sbGJhcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3JlYXRlUmVjdEluaXQocGFkZGluZ3MubGVmdCwgcGFkZGluZ3MudG9wLCB3aWR0aCwgaGVpZ2h0KTtcclxufVxyXG4vKipcclxuICogQ2hlY2tzIHdoZXRoZXIgcHJvdmlkZWQgZWxlbWVudCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgU1ZHR3JhcGhpY3NFbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgY2hlY2tlZC5cclxuICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAqL1xyXG52YXIgaXNTVkdHcmFwaGljc0VsZW1lbnQgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgLy8gU29tZSBicm93c2VycywgbmFtZWx5IElFIGFuZCBFZGdlLCBkb24ndCBoYXZlIHRoZSBTVkdHcmFwaGljc0VsZW1lbnRcclxuICAgIC8vIGludGVyZmFjZS5cclxuICAgIGlmICh0eXBlb2YgU1ZHR3JhcGhpY3NFbGVtZW50ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0KSB7IHJldHVybiB0YXJnZXQgaW5zdGFuY2VvZiBnZXRXaW5kb3dPZih0YXJnZXQpLlNWR0dyYXBoaWNzRWxlbWVudDsgfTtcclxuICAgIH1cclxuICAgIC8vIElmIGl0J3Mgc28sIHRoZW4gY2hlY2sgdGhhdCBlbGVtZW50IGlzIGF0IGxlYXN0IGFuIGluc3RhbmNlIG9mIHRoZVxyXG4gICAgLy8gU1ZHRWxlbWVudCBhbmQgdGhhdCBpdCBoYXMgdGhlIFwiZ2V0QkJveFwiIG1ldGhvZC5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1wYXJlbnNcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0KSB7IHJldHVybiAodGFyZ2V0IGluc3RhbmNlb2YgZ2V0V2luZG93T2YodGFyZ2V0KS5TVkdFbGVtZW50ICYmXHJcbiAgICAgICAgdHlwZW9mIHRhcmdldC5nZXRCQm94ID09PSAnZnVuY3Rpb24nKTsgfTtcclxufSkoKTtcclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIHByb3ZpZGVkIGVsZW1lbnQgaXMgYSBkb2N1bWVudCBlbGVtZW50ICg8aHRtbD4pLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdG8gYmUgY2hlY2tlZC5cclxuICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAqL1xyXG5mdW5jdGlvbiBpc0RvY3VtZW50RWxlbWVudCh0YXJnZXQpIHtcclxuICAgIHJldHVybiB0YXJnZXQgPT09IGdldFdpbmRvd09mKHRhcmdldCkuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG59XHJcbi8qKlxyXG4gKiBDYWxjdWxhdGVzIGFuIGFwcHJvcHJpYXRlIGNvbnRlbnQgcmVjdGFuZ2xlIGZvciBwcm92aWRlZCBodG1sIG9yIHN2ZyBlbGVtZW50LlxyXG4gKlxyXG4gKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgY29udGVudCByZWN0YW5nbGUgb2Ygd2hpY2ggbmVlZHMgdG8gYmUgY2FsY3VsYXRlZC5cclxuICogQHJldHVybnMge0RPTVJlY3RJbml0fVxyXG4gKi9cclxuZnVuY3Rpb24gZ2V0Q29udGVudFJlY3QodGFyZ2V0KSB7XHJcbiAgICBpZiAoIWlzQnJvd3Nlcikge1xyXG4gICAgICAgIHJldHVybiBlbXB0eVJlY3Q7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNTVkdHcmFwaGljc0VsZW1lbnQodGFyZ2V0KSkge1xyXG4gICAgICAgIHJldHVybiBnZXRTVkdDb250ZW50UmVjdCh0YXJnZXQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGdldEhUTUxFbGVtZW50Q29udGVudFJlY3QodGFyZ2V0KTtcclxufVxyXG4vKipcclxuICogQ3JlYXRlcyByZWN0YW5nbGUgd2l0aCBhbiBpbnRlcmZhY2Ugb2YgdGhlIERPTVJlY3RSZWFkT25seS5cclxuICogU3BlYzogaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnkvI2RvbXJlY3RyZWFkb25seVxyXG4gKlxyXG4gKiBAcGFyYW0ge0RPTVJlY3RJbml0fSByZWN0SW5pdCAtIE9iamVjdCB3aXRoIHJlY3RhbmdsZSdzIHgveSBjb29yZGluYXRlcyBhbmQgZGltZW5zaW9ucy5cclxuICogQHJldHVybnMge0RPTVJlY3RSZWFkT25seX1cclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZVJlYWRPbmx5UmVjdChfYSkge1xyXG4gICAgdmFyIHggPSBfYS54LCB5ID0gX2EueSwgd2lkdGggPSBfYS53aWR0aCwgaGVpZ2h0ID0gX2EuaGVpZ2h0O1xyXG4gICAgLy8gSWYgRE9NUmVjdFJlYWRPbmx5IGlzIGF2YWlsYWJsZSB1c2UgaXQgYXMgYSBwcm90b3R5cGUgZm9yIHRoZSByZWN0YW5nbGUuXHJcbiAgICB2YXIgQ29uc3RyID0gdHlwZW9mIERPTVJlY3RSZWFkT25seSAhPT0gJ3VuZGVmaW5lZCcgPyBET01SZWN0UmVhZE9ubHkgOiBPYmplY3Q7XHJcbiAgICB2YXIgcmVjdCA9IE9iamVjdC5jcmVhdGUoQ29uc3RyLnByb3RvdHlwZSk7XHJcbiAgICAvLyBSZWN0YW5nbGUncyBwcm9wZXJ0aWVzIGFyZSBub3Qgd3JpdGFibGUgYW5kIG5vbi1lbnVtZXJhYmxlLlxyXG4gICAgZGVmaW5lQ29uZmlndXJhYmxlKHJlY3QsIHtcclxuICAgICAgICB4OiB4LCB5OiB5LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0LFxyXG4gICAgICAgIHRvcDogeSxcclxuICAgICAgICByaWdodDogeCArIHdpZHRoLFxyXG4gICAgICAgIGJvdHRvbTogaGVpZ2h0ICsgeSxcclxuICAgICAgICBsZWZ0OiB4XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZWN0O1xyXG59XHJcbi8qKlxyXG4gKiBDcmVhdGVzIERPTVJlY3RJbml0IG9iamVjdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZGltZW5zaW9ucyBhbmQgdGhlIHgveSBjb29yZGluYXRlcy5cclxuICogU3BlYzogaHR0cHM6Ly9kcmFmdHMuZnh0Zi5vcmcvZ2VvbWV0cnkvI2RpY3RkZWYtZG9tcmVjdGluaXRcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBYIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gWSBjb29yZGluYXRlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBSZWN0YW5nbGUncyB3aWR0aC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFJlY3RhbmdsZSdzIGhlaWdodC5cclxuICogQHJldHVybnMge0RPTVJlY3RJbml0fVxyXG4gKi9cclxuZnVuY3Rpb24gY3JlYXRlUmVjdEluaXQoeCwgeSwgd2lkdGgsIGhlaWdodCkge1xyXG4gICAgcmV0dXJuIHsgeDogeCwgeTogeSwgd2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodCB9O1xyXG59XG5cbi8qKlxyXG4gKiBDbGFzcyB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciBjb21wdXRhdGlvbnMgb2YgdGhlIGNvbnRlbnQgcmVjdGFuZ2xlIG9mXHJcbiAqIHByb3ZpZGVkIERPTSBlbGVtZW50IGFuZCBmb3Iga2VlcGluZyB0cmFjayBvZiBpdCdzIGNoYW5nZXMuXHJcbiAqL1xyXG52YXIgUmVzaXplT2JzZXJ2YXRpb24gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUmVzaXplT2JzZXJ2YXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIGJlIG9ic2VydmVkLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZhdGlvbih0YXJnZXQpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm9hZGNhc3RlZCB3aWR0aCBvZiBjb250ZW50IHJlY3RhbmdsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5icm9hZGNhc3RXaWR0aCA9IDA7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQnJvYWRjYXN0ZWQgaGVpZ2h0IG9mIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJyb2FkY2FzdEhlaWdodCA9IDA7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUmVmZXJlbmNlIHRvIHRoZSBsYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0RPTVJlY3RJbml0fVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29udGVudFJlY3RfID0gY3JlYXRlUmVjdEluaXQoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgY29udGVudCByZWN0YW5nbGUgYW5kIHRlbGxzIHdoZXRoZXIgaXQncyB3aWR0aCBvciBoZWlnaHQgcHJvcGVydGllc1xyXG4gICAgICogaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IGJyb2FkY2FzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2YXRpb24ucHJvdG90eXBlLmlzQWN0aXZlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciByZWN0ID0gZ2V0Q29udGVudFJlY3QodGhpcy50YXJnZXQpO1xyXG4gICAgICAgIHRoaXMuY29udGVudFJlY3RfID0gcmVjdDtcclxuICAgICAgICByZXR1cm4gKHJlY3Qud2lkdGggIT09IHRoaXMuYnJvYWRjYXN0V2lkdGggfHxcclxuICAgICAgICAgICAgcmVjdC5oZWlnaHQgIT09IHRoaXMuYnJvYWRjYXN0SGVpZ2h0KTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgJ2Jyb2FkY2FzdFdpZHRoJyBhbmQgJ2Jyb2FkY2FzdEhlaWdodCcgcHJvcGVydGllcyB3aXRoIGEgZGF0YVxyXG4gICAgICogZnJvbSB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0aWVzIG9mIHRoZSBsYXN0IG9ic2VydmVkIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIHtET01SZWN0SW5pdH0gTGFzdCBvYnNlcnZlZCBjb250ZW50IHJlY3RhbmdsZS5cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2YXRpb24ucHJvdG90eXBlLmJyb2FkY2FzdFJlY3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHJlY3QgPSB0aGlzLmNvbnRlbnRSZWN0XztcclxuICAgICAgICB0aGlzLmJyb2FkY2FzdFdpZHRoID0gcmVjdC53aWR0aDtcclxuICAgICAgICB0aGlzLmJyb2FkY2FzdEhlaWdodCA9IHJlY3QuaGVpZ2h0O1xyXG4gICAgICAgIHJldHVybiByZWN0O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBSZXNpemVPYnNlcnZhdGlvbjtcclxufSgpKTtcblxudmFyIFJlc2l6ZU9ic2VydmVyRW50cnkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUmVzaXplT2JzZXJ2ZXJFbnRyeS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRhcmdldCAtIEVsZW1lbnQgdGhhdCBpcyBiZWluZyBvYnNlcnZlZC5cclxuICAgICAqIEBwYXJhbSB7RE9NUmVjdEluaXR9IHJlY3RJbml0IC0gRGF0YSBvZiB0aGUgZWxlbWVudCdzIGNvbnRlbnQgcmVjdGFuZ2xlLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlckVudHJ5KHRhcmdldCwgcmVjdEluaXQpIHtcclxuICAgICAgICB2YXIgY29udGVudFJlY3QgPSBjcmVhdGVSZWFkT25seVJlY3QocmVjdEluaXQpO1xyXG4gICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgc3BlY2lmaWNhdGlvbiBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgbm90IHdyaXRhYmxlXHJcbiAgICAgICAgLy8gYW5kIGFyZSBhbHNvIG5vdCBlbnVtZXJhYmxlIGluIHRoZSBuYXRpdmUgaW1wbGVtZW50YXRpb24uXHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyBQcm9wZXJ0eSBhY2Nlc3NvcnMgYXJlIG5vdCBiZWluZyB1c2VkIGFzIHRoZXknZCByZXF1aXJlIHRvIGRlZmluZSBhXHJcbiAgICAgICAgLy8gcHJpdmF0ZSBXZWFrTWFwIHN0b3JhZ2Ugd2hpY2ggbWF5IGNhdXNlIG1lbW9yeSBsZWFrcyBpbiBicm93c2VycyB0aGF0XHJcbiAgICAgICAgLy8gZG9uJ3Qgc3VwcG9ydCB0aGlzIHR5cGUgb2YgY29sbGVjdGlvbnMuXHJcbiAgICAgICAgZGVmaW5lQ29uZmlndXJhYmxlKHRoaXMsIHsgdGFyZ2V0OiB0YXJnZXQsIGNvbnRlbnRSZWN0OiBjb250ZW50UmVjdCB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBSZXNpemVPYnNlcnZlckVudHJ5O1xyXG59KCkpO1xuXG52YXIgUmVzaXplT2JzZXJ2ZXJTUEkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgUmVzaXplT2JzZXJ2ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNhbGxiYWNrfSBjYWxsYmFjayAtIENhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgaW52b2tlZFxyXG4gICAgICogICAgICB3aGVuIG9uZSBvZiB0aGUgb2JzZXJ2ZWQgZWxlbWVudHMgY2hhbmdlcyBpdCdzIGNvbnRlbnQgZGltZW5zaW9ucy5cclxuICAgICAqIEBwYXJhbSB7UmVzaXplT2JzZXJ2ZXJDb250cm9sbGVyfSBjb250cm9sbGVyIC0gQ29udHJvbGxlciBpbnN0YW5jZSB3aGljaFxyXG4gICAgICogICAgICBpcyByZXNwb25zaWJsZSBmb3IgdGhlIHVwZGF0ZXMgb2Ygb2JzZXJ2ZXIuXHJcbiAgICAgKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyfSBjYWxsYmFja0N0eCAtIFJlZmVyZW5jZSB0byB0aGUgcHVibGljXHJcbiAgICAgKiAgICAgIFJlc2l6ZU9ic2VydmVyIGluc3RhbmNlIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBmdW5jdGlvbiBSZXNpemVPYnNlcnZlclNQSShjYWxsYmFjaywgY29udHJvbGxlciwgY2FsbGJhY2tDdHgpIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb2xsZWN0aW9uIG9mIHJlc2l6ZSBvYnNlcnZhdGlvbnMgdGhhdCBoYXZlIGRldGVjdGVkIGNoYW5nZXMgaW4gZGltZW5zaW9uc1xyXG4gICAgICAgICAqIG9mIGVsZW1lbnRzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge0FycmF5PFJlc2l6ZU9ic2VydmF0aW9uPn1cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18gPSBbXTtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZWdpc3RyeSBvZiB0aGUgUmVzaXplT2JzZXJ2YXRpb24gaW5zdGFuY2VzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQHByaXZhdGUge01hcDxFbGVtZW50LCBSZXNpemVPYnNlcnZhdGlvbj59XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5vYnNlcnZhdGlvbnNfID0gbmV3IE1hcFNoaW0oKTtcclxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBjYWxsYmFjayBwcm92aWRlZCBhcyBwYXJhbWV0ZXIgMSBpcyBub3QgYSBmdW5jdGlvbi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jYWxsYmFja18gPSBjYWxsYmFjaztcclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfID0gY29udHJvbGxlcjtcclxuICAgICAgICB0aGlzLmNhbGxiYWNrQ3R4XyA9IGNhbGxiYWNrQ3R4O1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGFydHMgb2JzZXJ2aW5nIHByb3ZpZGVkIGVsZW1lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtFbGVtZW50fSB0YXJnZXQgLSBFbGVtZW50IHRvIGJlIG9ic2VydmVkLlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcxIGFyZ3VtZW50IHJlcXVpcmVkLCBidXQgb25seSAwIHByZXNlbnQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgY3VycmVudCBlbnZpcm9ubWVudCBkb2Vzbid0IGhhdmUgdGhlIEVsZW1lbnQgaW50ZXJmYWNlLlxyXG4gICAgICAgIGlmICh0eXBlb2YgRWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIShFbGVtZW50IGluc3RhbmNlb2YgT2JqZWN0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuRWxlbWVudCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgXCJFbGVtZW50XCIuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBvYnNlcnZhdGlvbnMgPSB0aGlzLm9ic2VydmF0aW9uc187XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBlbGVtZW50IGlzIGFscmVhZHkgYmVpbmcgb2JzZXJ2ZWQuXHJcbiAgICAgICAgaWYgKG9ic2VydmF0aW9ucy5oYXModGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9ic2VydmF0aW9ucy5zZXQodGFyZ2V0LCBuZXcgUmVzaXplT2JzZXJ2YXRpb24odGFyZ2V0KSk7XHJcbiAgICAgICAgdGhpcy5jb250cm9sbGVyXy5hZGRPYnNlcnZlcih0aGlzKTtcclxuICAgICAgICAvLyBGb3JjZSB0aGUgdXBkYXRlIG9mIG9ic2VydmF0aW9ucy5cclxuICAgICAgICB0aGlzLmNvbnRyb2xsZXJfLnJlZnJlc2goKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIFN0b3BzIG9ic2VydmluZyBwcm92aWRlZCBlbGVtZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGFyZ2V0IC0gRWxlbWVudCB0byBzdG9wIG9ic2VydmluZy5cclxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxyXG4gICAgICovXHJcbiAgICBSZXNpemVPYnNlcnZlclNQSS5wcm90b3R5cGUudW5vYnNlcnZlID0gZnVuY3Rpb24gKHRhcmdldCkge1xyXG4gICAgICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcxIGFyZ3VtZW50IHJlcXVpcmVkLCBidXQgb25seSAwIHByZXNlbnQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgY3VycmVudCBlbnZpcm9ubWVudCBkb2Vzbid0IGhhdmUgdGhlIEVsZW1lbnQgaW50ZXJmYWNlLlxyXG4gICAgICAgIGlmICh0eXBlb2YgRWxlbWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIShFbGVtZW50IGluc3RhbmNlb2YgT2JqZWN0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIGdldFdpbmRvd09mKHRhcmdldCkuRWxlbWVudCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyYW1ldGVyIDEgaXMgbm90IG9mIHR5cGUgXCJFbGVtZW50XCIuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBvYnNlcnZhdGlvbnMgPSB0aGlzLm9ic2VydmF0aW9uc187XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBlbGVtZW50IGlzIG5vdCBiZWluZyBvYnNlcnZlZC5cclxuICAgICAgICBpZiAoIW9ic2VydmF0aW9ucy5oYXModGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9ic2VydmF0aW9ucy5kZWxldGUodGFyZ2V0KTtcclxuICAgICAgICBpZiAoIW9ic2VydmF0aW9ucy5zaXplKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVtb3ZlT2JzZXJ2ZXIodGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgb2JzZXJ2aW5nIGFsbCBlbGVtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmRpc2Nvbm5lY3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXRpb25zXy5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbGxlcl8ucmVtb3ZlT2JzZXJ2ZXIodGhpcyk7XHJcbiAgICB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xsZWN0cyBvYnNlcnZhdGlvbiBpbnN0YW5jZXMgdGhlIGFzc29jaWF0ZWQgZWxlbWVudCBvZiB3aGljaCBoYXMgY2hhbmdlZFxyXG4gICAgICogaXQncyBjb250ZW50IHJlY3RhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7dm9pZH1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmdhdGhlckFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuY2xlYXJBY3RpdmUoKTtcclxuICAgICAgICB0aGlzLm9ic2VydmF0aW9uc18uZm9yRWFjaChmdW5jdGlvbiAob2JzZXJ2YXRpb24pIHtcclxuICAgICAgICAgICAgaWYgKG9ic2VydmF0aW9uLmlzQWN0aXZlKCkpIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18ucHVzaChvYnNlcnZhdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgaW5pdGlhbCBjYWxsYmFjayBmdW5jdGlvbiB3aXRoIGEgbGlzdCBvZiBSZXNpemVPYnNlcnZlckVudHJ5XHJcbiAgICAgKiBpbnN0YW5jZXMgY29sbGVjdGVkIGZyb20gYWN0aXZlIHJlc2l6ZSBvYnNlcnZhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS5icm9hZGNhc3RBY3RpdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBvYnNlcnZlciBkb2Vzbid0IGhhdmUgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAgICBpZiAoIXRoaXMuaGFzQWN0aXZlKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgY3R4ID0gdGhpcy5jYWxsYmFja0N0eF87XHJcbiAgICAgICAgLy8gQ3JlYXRlIFJlc2l6ZU9ic2VydmVyRW50cnkgaW5zdGFuY2UgZm9yIGV2ZXJ5IGFjdGl2ZSBvYnNlcnZhdGlvbi5cclxuICAgICAgICB2YXIgZW50cmllcyA9IHRoaXMuYWN0aXZlT2JzZXJ2YXRpb25zXy5tYXAoZnVuY3Rpb24gKG9ic2VydmF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVzaXplT2JzZXJ2ZXJFbnRyeShvYnNlcnZhdGlvbi50YXJnZXQsIG9ic2VydmF0aW9uLmJyb2FkY2FzdFJlY3QoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jYWxsYmFja18uY2FsbChjdHgsIGVudHJpZXMsIGN0eCk7XHJcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIHRoZSBjb2xsZWN0aW9uIG9mIGFjdGl2ZSBvYnNlcnZhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMge3ZvaWR9XHJcbiAgICAgKi9cclxuICAgIFJlc2l6ZU9ic2VydmVyU1BJLnByb3RvdHlwZS5jbGVhckFjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU9ic2VydmF0aW9uc18uc3BsaWNlKDApO1xyXG4gICAgfTtcclxuICAgIC8qKlxyXG4gICAgICogVGVsbHMgd2hldGhlciBvYnNlcnZlciBoYXMgYWN0aXZlIG9ic2VydmF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgUmVzaXplT2JzZXJ2ZXJTUEkucHJvdG90eXBlLmhhc0FjdGl2ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVPYnNlcnZhdGlvbnNfLmxlbmd0aCA+IDA7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyU1BJO1xyXG59KCkpO1xuXG4vLyBSZWdpc3RyeSBvZiBpbnRlcm5hbCBvYnNlcnZlcnMuIElmIFdlYWtNYXAgaXMgbm90IGF2YWlsYWJsZSB1c2UgY3VycmVudCBzaGltXHJcbi8vIGZvciB0aGUgTWFwIGNvbGxlY3Rpb24gYXMgaXQgaGFzIGFsbCByZXF1aXJlZCBtZXRob2RzIGFuZCBiZWNhdXNlIFdlYWtNYXBcclxuLy8gY2FuJ3QgYmUgZnVsbHkgcG9seWZpbGxlZCBhbnl3YXkuXHJcbnZhciBvYnNlcnZlcnMgPSB0eXBlb2YgV2Vha01hcCAhPT0gJ3VuZGVmaW5lZCcgPyBuZXcgV2Vha01hcCgpIDogbmV3IE1hcFNoaW0oKTtcclxuLyoqXHJcbiAqIFJlc2l6ZU9ic2VydmVyIEFQSS4gRW5jYXBzdWxhdGVzIHRoZSBSZXNpemVPYnNlcnZlciBTUEkgaW1wbGVtZW50YXRpb25cclxuICogZXhwb3Npbmcgb25seSB0aG9zZSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhlIHNwZWMuXHJcbiAqL1xyXG52YXIgUmVzaXplT2JzZXJ2ZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgUmVzaXplT2JzZXJ2ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZXNpemVPYnNlcnZlckNhbGxiYWNrfSBjYWxsYmFjayAtIENhbGxiYWNrIHRoYXQgaXMgaW52b2tlZCB3aGVuXHJcbiAgICAgKiAgICAgIGRpbWVuc2lvbnMgb2YgdGhlIG9ic2VydmVkIGVsZW1lbnRzIGNoYW5nZS5cclxuICAgICAqL1xyXG4gICAgZnVuY3Rpb24gUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spIHtcclxuICAgICAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVzaXplT2JzZXJ2ZXIpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbi4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5IDAgcHJlc2VudC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGNvbnRyb2xsZXIgPSBSZXNpemVPYnNlcnZlckNvbnRyb2xsZXIuZ2V0SW5zdGFuY2UoKTtcclxuICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXJTUEkoY2FsbGJhY2ssIGNvbnRyb2xsZXIsIHRoaXMpO1xyXG4gICAgICAgIG9ic2VydmVycy5zZXQodGhpcywgb2JzZXJ2ZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFJlc2l6ZU9ic2VydmVyO1xyXG59KCkpO1xyXG4vLyBFeHBvc2UgcHVibGljIG1ldGhvZHMgb2YgUmVzaXplT2JzZXJ2ZXIuXHJcbltcclxuICAgICdvYnNlcnZlJyxcclxuICAgICd1bm9ic2VydmUnLFxyXG4gICAgJ2Rpc2Nvbm5lY3QnXHJcbl0uZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XHJcbiAgICBSZXNpemVPYnNlcnZlci5wcm90b3R5cGVbbWV0aG9kXSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgcmV0dXJuIChfYSA9IG9ic2VydmVycy5nZXQodGhpcykpW21ldGhvZF0uYXBwbHkoX2EsIGFyZ3VtZW50cyk7XHJcbiAgICB9O1xyXG59KTtcblxudmFyIGluZGV4ID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIC8vIEV4cG9ydCBleGlzdGluZyBpbXBsZW1lbnRhdGlvbiBpZiBhdmFpbGFibGUuXHJcbiAgICBpZiAodHlwZW9mIGdsb2JhbCQxLlJlc2l6ZU9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIHJldHVybiBnbG9iYWwkMS5SZXNpemVPYnNlcnZlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBSZXNpemVPYnNlcnZlcjtcclxufSkoKTtcblxuZXhwb3J0IGRlZmF1bHQgaW5kZXg7XG4iLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNyZWF0ZSA9IGV4cG9ydHMuY29ubmVjdCA9IGV4cG9ydHMuUHJvdmlkZXIgPSB1bmRlZmluZWQ7XG5cbnZhciBfUHJvdmlkZXIyID0gcmVxdWlyZSgnLi9Qcm92aWRlcicpO1xuXG52YXIgX1Byb3ZpZGVyMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Byb3ZpZGVyMik7XG5cbnZhciBfY29ubmVjdDIgPSByZXF1aXJlKCcuL2Nvbm5lY3QnKTtcblxudmFyIF9jb25uZWN0MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Nvbm5lY3QyKTtcblxudmFyIF9jcmVhdGUyID0gcmVxdWlyZSgnLi9jcmVhdGUnKTtcblxudmFyIF9jcmVhdGUzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuUHJvdmlkZXIgPSBfUHJvdmlkZXIzLmRlZmF1bHQ7XG5leHBvcnRzLmNvbm5lY3QgPSBfY29ubmVjdDMuZGVmYXVsdDtcbmV4cG9ydHMuY3JlYXRlID0gX2NyZWF0ZTMuZGVmYXVsdDsiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNGcmFnbWVudCB9IGZyb20gJ3JlYWN0LWlzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgdmFyIG9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciByZXQgPSBbXTtcbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgaWYgKChjaGlsZCA9PT0gdW5kZWZpbmVkIHx8IGNoaWxkID09PSBudWxsKSAmJiAhb3B0aW9uLmtlZXBFbXB0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0b0FycmF5KGNoaWxkKSk7XG4gICAgfSBlbHNlIGlmIChpc0ZyYWdtZW50KGNoaWxkKSAmJiBjaGlsZC5wcm9wcykge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuLCBvcHRpb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0LnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXQ7XG59IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXlDaGlsZHJlbihjaGlsZHJlbikge1xuICB2YXIgcmV0ID0gW107XG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldC5wdXNoKGNoaWxkKTtcbiAgfSk7XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY2hpbGRyZW4sIGtleSkge1xuICB2YXIgcmV0ID0gbnVsbDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHJldCA9IGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5LCBzaG93UHJvcCkge1xuICB2YXIgcmV0ID0gbnVsbDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZC5rZXkgPT09IGtleSAmJiBjaGlsZC5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgaWYgKHJldCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndHdvIGNoaWxkIHdpdGggc2FtZSBrZXkgZm9yIDxyYy1hbmltYXRlPiBjaGlsZHJlbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldCA9IGNoaWxkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSGlkZGVuQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApIHtcbiAgdmFyIGZvdW5kID0gMDtcbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3VuZCA9IGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5ICYmICFjaGlsZC5wcm9wc1tzaG93UHJvcF07XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lQ2hpbGRyZW4oYzEsIGMyLCBzaG93UHJvcCkge1xuICB2YXIgc2FtZSA9IGMxLmxlbmd0aCA9PT0gYzIubGVuZ3RoO1xuICBpZiAoc2FtZSkge1xuICAgIGMxLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgdmFyIGNoaWxkMiA9IGMyW2luZGV4XTtcbiAgICAgIGlmIChjaGlsZCAmJiBjaGlsZDIpIHtcbiAgICAgICAgaWYgKGNoaWxkICYmICFjaGlsZDIgfHwgIWNoaWxkICYmIGNoaWxkMikge1xuICAgICAgICAgIHNhbWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGlsZC5rZXkgIT09IGNoaWxkMi5rZXkpIHtcbiAgICAgICAgICBzYW1lID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hvd1Byb3AgJiYgY2hpbGQucHJvcHNbc2hvd1Byb3BdICE9PSBjaGlsZDIucHJvcHNbc2hvd1Byb3BdKSB7XG4gICAgICAgICAgc2FtZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHNhbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUNoaWxkcmVuKHByZXYsIG5leHQpIHtcbiAgdmFyIHJldCA9IFtdO1xuXG4gIC8vIEZvciBlYWNoIGtleSBvZiBgbmV4dGAsIHRoZSBsaXN0IG9mIGtleXMgdG8gaW5zZXJ0IGJlZm9yZSB0aGF0IGtleSBpblxuICAvLyB0aGUgY29tYmluZWQgbGlzdFxuICB2YXIgbmV4dENoaWxkcmVuUGVuZGluZyA9IHt9O1xuICB2YXIgcGVuZGluZ0NoaWxkcmVuID0gW107XG4gIHByZXYuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHQsIGNoaWxkLmtleSkpIHtcbiAgICAgIGlmIChwZW5kaW5nQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIG5leHRDaGlsZHJlblBlbmRpbmdbY2hpbGQua2V5XSA9IHBlbmRpbmdDaGlsZHJlbjtcbiAgICAgICAgcGVuZGluZ0NoaWxkcmVuID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlbmRpbmdDaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH0pO1xuXG4gIG5leHQuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICBpZiAoY2hpbGQgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG5leHRDaGlsZHJlblBlbmRpbmcsIGNoaWxkLmtleSkpIHtcbiAgICAgIHJldCA9IHJldC5jb25jYXQobmV4dENoaWxkcmVuUGVuZGluZ1tjaGlsZC5rZXldKTtcbiAgICB9XG4gICAgcmV0LnB1c2goY2hpbGQpO1xuICB9KTtcblxuICByZXQgPSByZXQuY29uY2F0KHBlbmRpbmdDaGlsZHJlbik7XG5cbiAgcmV0dXJuIHJldDtcbn0iLCJ2YXIgdXRpbCA9IHtcbiAgaXNBcHBlYXJTdXBwb3J0ZWQ6IGZ1bmN0aW9uIGlzQXBwZWFyU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25BcHBlYXIgfHwgcHJvcHMuYW5pbWF0aW9uLmFwcGVhcjtcbiAgfSxcbiAgaXNFbnRlclN1cHBvcnRlZDogZnVuY3Rpb24gaXNFbnRlclN1cHBvcnRlZChwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uTmFtZSAmJiBwcm9wcy50cmFuc2l0aW9uRW50ZXIgfHwgcHJvcHMuYW5pbWF0aW9uLmVudGVyO1xuICB9LFxuICBpc0xlYXZlU3VwcG9ydGVkOiBmdW5jdGlvbiBpc0xlYXZlU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25MZWF2ZSB8fCBwcm9wcy5hbmltYXRpb24ubGVhdmU7XG4gIH0sXG4gIGFsbG93QXBwZWFyQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93QXBwZWFyQ2FsbGJhY2socHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbkFwcGVhciB8fCBwcm9wcy5hbmltYXRpb24uYXBwZWFyO1xuICB9LFxuICBhbGxvd0VudGVyQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93RW50ZXJDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uRW50ZXIgfHwgcHJvcHMuYW5pbWF0aW9uLmVudGVyO1xuICB9LFxuICBhbGxvd0xlYXZlQ2FsbGJhY2s6IGZ1bmN0aW9uIGFsbG93TGVhdmVDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uTGVhdmUgfHwgcHJvcHMuYW5pbWF0aW9uLmxlYXZlO1xuICB9XG59O1xuZXhwb3J0IGRlZmF1bHQgdXRpbDsiLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjc3NBbmltYXRlLCB7IGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkIH0gZnJvbSAnY3NzLWFuaW1hdGlvbic7XG5pbXBvcnQgYW5pbVV0aWwgZnJvbSAnLi91dGlsL2FuaW1hdGUnO1xuXG52YXIgdHJhbnNpdGlvbk1hcCA9IHtcbiAgZW50ZXI6ICd0cmFuc2l0aW9uRW50ZXInLFxuICBhcHBlYXI6ICd0cmFuc2l0aW9uQXBwZWFyJyxcbiAgbGVhdmU6ICd0cmFuc2l0aW9uTGVhdmUnXG59O1xuXG52YXIgQW5pbWF0ZUNoaWxkID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEFuaW1hdGVDaGlsZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQW5pbWF0ZUNoaWxkKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbmltYXRlQ2hpbGQpO1xuXG4gICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChBbmltYXRlQ2hpbGQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihBbmltYXRlQ2hpbGQpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhBbmltYXRlQ2hpbGQsIFt7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuc3RvcCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxFbnRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxFbnRlcihkb25lKSB7XG4gICAgICBpZiAoYW5pbVV0aWwuaXNFbnRlclN1cHBvcnRlZCh0aGlzLnByb3BzKSkge1xuICAgICAgICB0aGlzLnRyYW5zaXRpb24oJ2VudGVyJywgZG9uZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbEFwcGVhcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxBcHBlYXIoZG9uZSkge1xuICAgICAgaWYgKGFuaW1VdGlsLmlzQXBwZWFyU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignYXBwZWFyJywgZG9uZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbExlYXZlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbExlYXZlKGRvbmUpIHtcbiAgICAgIGlmIChhbmltVXRpbC5pc0xlYXZlU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignbGVhdmUnLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGFsd2F5cyBzeW5jLCBkbyBub3QgaW50ZXJ1cHQgd2l0aCByZWFjdCBjb21wb25lbnQgbGlmZSBjeWNsZVxuICAgICAgICAvLyB1cGRhdGUgaGlkZGVuIC0+IGFuaW1hdGUgaGlkZGVuIC0+XG4gICAgICAgIC8vIGRpZFVwZGF0ZSAtPiBhbmltYXRlIGxlYXZlIC0+IHVubW91bnQgKGlmIGFuaW1hdGUgaXMgbm9uZSlcbiAgICAgICAgZG9uZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3RyYW5zaXRpb24nLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0cmFuc2l0aW9uKGFuaW1hdGlvblR5cGUsIGZpbmlzaENhbGxiYWNrKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIG5vZGUgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgdHJhbnNpdGlvbk5hbWUgPSBwcm9wcy50cmFuc2l0aW9uTmFtZTtcbiAgICAgIHZhciBuYW1lSXNPYmogPSB0eXBlb2YgdHJhbnNpdGlvbk5hbWUgPT09ICdvYmplY3QnO1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICB2YXIgZW5kID0gZnVuY3Rpb24gZW5kKCkge1xuICAgICAgICBfdGhpczIuc3RvcHBlciA9IG51bGw7XG4gICAgICAgIGZpbmlzaENhbGxiYWNrKCk7XG4gICAgICB9O1xuICAgICAgaWYgKChpc0Nzc0FuaW1hdGlvblN1cHBvcnRlZCB8fCAhcHJvcHMuYW5pbWF0aW9uW2FuaW1hdGlvblR5cGVdKSAmJiB0cmFuc2l0aW9uTmFtZSAmJiBwcm9wc1t0cmFuc2l0aW9uTWFwW2FuaW1hdGlvblR5cGVdXSkge1xuICAgICAgICB2YXIgbmFtZSA9IG5hbWVJc09iaiA/IHRyYW5zaXRpb25OYW1lW2FuaW1hdGlvblR5cGVdIDogdHJhbnNpdGlvbk5hbWUgKyAnLScgKyBhbmltYXRpb25UeXBlO1xuICAgICAgICB2YXIgYWN0aXZlTmFtZSA9IG5hbWUgKyAnLWFjdGl2ZSc7XG4gICAgICAgIGlmIChuYW1lSXNPYmogJiYgdHJhbnNpdGlvbk5hbWVbYW5pbWF0aW9uVHlwZSArICdBY3RpdmUnXSkge1xuICAgICAgICAgIGFjdGl2ZU5hbWUgPSB0cmFuc2l0aW9uTmFtZVthbmltYXRpb25UeXBlICsgJ0FjdGl2ZSddO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RvcHBlciA9IGNzc0FuaW1hdGUobm9kZSwge1xuICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgYWN0aXZlOiBhY3RpdmVOYW1lXG4gICAgICAgIH0sIGVuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3BwZXIgPSBwcm9wcy5hbmltYXRpb25bYW5pbWF0aW9uVHlwZV0obm9kZSwgZW5kKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzdG9wJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3RvcCgpIHtcbiAgICAgIHZhciBzdG9wcGVyID0gdGhpcy5zdG9wcGVyO1xuICAgICAgaWYgKHN0b3BwZXIpIHtcbiAgICAgICAgdGhpcy5zdG9wcGVyID0gbnVsbDtcbiAgICAgICAgc3RvcHBlci5zdG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEFuaW1hdGVDaGlsZDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQW5pbWF0ZUNoaWxkLnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5hbnlcbn07XG5leHBvcnQgZGVmYXVsdCBBbmltYXRlQ2hpbGQ7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHRvQXJyYXlDaGlsZHJlbiwgbWVyZ2VDaGlsZHJlbiwgZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXksIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleSwgaXNTYW1lQ2hpbGRyZW4gfSBmcm9tICcuL0NoaWxkcmVuVXRpbHMnO1xuaW1wb3J0IEFuaW1hdGVDaGlsZCBmcm9tICcuL0FuaW1hdGVDaGlsZCc7XG5pbXBvcnQgYW5pbVV0aWwgZnJvbSAnLi91dGlsL2FuaW1hdGUnO1xuXG52YXIgZGVmYXVsdEtleSA9ICdyY19hbmltYXRlXycgKyBEYXRlLm5vdygpO1xuXG5mdW5jdGlvbiBnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykge1xuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSkge1xuICAgIGlmICghY2hpbGRyZW4ua2V5KSB7XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCB7XG4gICAgICAgIGtleTogZGVmYXVsdEtleVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjaGlsZHJlbjtcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnZhciBBbmltYXRlID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEFuaW1hdGUsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICBmdW5jdGlvbiBBbmltYXRlKHByb3BzKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFuaW1hdGUpO1xuXG4gICAgdmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEFuaW1hdGUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihBbmltYXRlKSkuY2FsbCh0aGlzLCBwcm9wcykpO1xuXG4gICAgX2luaXRpYWxpc2VQcm9wcy5jYWxsKF90aGlzKTtcblxuICAgIF90aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXMgPSB7fTtcbiAgICBfdGhpcy5rZXlzVG9FbnRlciA9IFtdO1xuICAgIF90aGlzLmtleXNUb0xlYXZlID0gW107XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNoaWxkcmVuOiB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpKVxuICAgIH07XG5cbiAgICBfdGhpcy5jaGlsZHJlblJlZnMgPSB7fTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQW5pbWF0ZSwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBzaG93UHJvcCA9IHRoaXMucHJvcHMuc2hvd1Byb3A7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnN0YXRlLmNoaWxkcmVuO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgIHJldHVybiAhIWNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICBfdGhpczIucGVyZm9ybUFwcGVhcihjaGlsZC5rZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICB0aGlzLm5leHRQcm9wcyA9IG5leHRQcm9wcztcbiAgICAgIHZhciBuZXh0Q2hpbGRyZW4gPSB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMobmV4dFByb3BzKSk7XG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgLy8gZXhjbHVzaXZlIG5lZWRzIGltbWVkaWF0ZSByZXNwb25zZVxuICAgICAgaWYgKHByb3BzLmV4Y2x1c2l2ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIF90aGlzMy5zdG9wKGtleSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIHNob3dQcm9wID0gcHJvcHMuc2hvd1Byb3A7XG4gICAgICB2YXIgY3VycmVudGx5QW5pbWF0aW5nS2V5cyA9IHRoaXMuY3VycmVudGx5QW5pbWF0aW5nS2V5cztcbiAgICAgIC8vIGxhc3QgcHJvcHMgY2hpbGRyZW4gaWYgZXhjbHVzaXZlXG4gICAgICB2YXIgY3VycmVudENoaWxkcmVuID0gcHJvcHMuZXhjbHVzaXZlID8gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSkgOiB0aGlzLnN0YXRlLmNoaWxkcmVuO1xuICAgICAgLy8gaW4gY2FzZSBkZXN0cm95IGluIHNob3dQcm9wIG1vZGVcbiAgICAgIHZhciBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIGN1cnJlbnRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjdXJyZW50Q2hpbGQpIHtcbiAgICAgICAgICB2YXIgbmV4dENoaWxkID0gY3VycmVudENoaWxkICYmIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShuZXh0Q2hpbGRyZW4sIGN1cnJlbnRDaGlsZC5rZXkpO1xuICAgICAgICAgIHZhciBuZXdDaGlsZCA9IHZvaWQgMDtcbiAgICAgICAgICBpZiAoKCFuZXh0Q2hpbGQgfHwgIW5leHRDaGlsZC5wcm9wc1tzaG93UHJvcF0pICYmIGN1cnJlbnRDaGlsZC5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgICAgIG5ld0NoaWxkID0gUmVhY3QuY2xvbmVFbGVtZW50KG5leHRDaGlsZCB8fCBjdXJyZW50Q2hpbGQsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgc2hvd1Byb3AsIHRydWUpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Q2hpbGQgPSBuZXh0Q2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChuZXdDaGlsZCkge1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChuZXdDaGlsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbmV4dENoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKG5leHRDaGlsZCkge1xuICAgICAgICAgIGlmICghbmV4dENoaWxkIHx8ICFmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBuZXh0Q2hpbGQua2V5KSkge1xuICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChuZXh0Q2hpbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdDaGlsZHJlbiA9IG1lcmdlQ2hpbGRyZW4oY3VycmVudENoaWxkcmVuLCBuZXh0Q2hpbGRyZW4pO1xuICAgICAgfVxuXG4gICAgICAvLyBuZWVkIHJlbmRlciB0byBhdm9pZCB1cGRhdGVcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBjaGlsZHJlbjogbmV3Q2hpbGRyZW5cbiAgICAgIH0pO1xuXG4gICAgICBuZXh0Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgdmFyIGtleSA9IGNoaWxkICYmIGNoaWxkLmtleTtcbiAgICAgICAgaWYgKGNoaWxkICYmIGN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGFzUHJldiA9IGNoaWxkICYmIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSk7XG4gICAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICAgIHZhciBzaG93SW5OZXh0ID0gY2hpbGQucHJvcHNbc2hvd1Byb3BdO1xuICAgICAgICAgIGlmIChoYXNQcmV2KSB7XG4gICAgICAgICAgICB2YXIgc2hvd0luTm93ID0gZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXksIHNob3dQcm9wKTtcbiAgICAgICAgICAgIGlmICghc2hvd0luTm93ICYmIHNob3dJbk5leHQpIHtcbiAgICAgICAgICAgICAgX3RoaXMzLmtleXNUb0VudGVyLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHNob3dJbk5leHQpIHtcbiAgICAgICAgICAgIF90aGlzMy5rZXlzVG9FbnRlci5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFoYXNQcmV2KSB7XG4gICAgICAgICAgX3RoaXMzLmtleXNUb0VudGVyLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGN1cnJlbnRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICB2YXIga2V5ID0gY2hpbGQgJiYgY2hpbGQua2V5O1xuICAgICAgICBpZiAoY2hpbGQgJiYgY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBoYXNOZXh0ID0gY2hpbGQgJiYgZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KG5leHRDaGlsZHJlbiwga2V5KTtcbiAgICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgICAgdmFyIHNob3dJbk5vdyA9IGNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICAgICAgICBpZiAoaGFzTmV4dCkge1xuICAgICAgICAgICAgdmFyIHNob3dJbk5leHQgPSBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShuZXh0Q2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApO1xuICAgICAgICAgICAgaWYgKCFzaG93SW5OZXh0ICYmIHNob3dJbk5vdykge1xuICAgICAgICAgICAgICBfdGhpczMua2V5c1RvTGVhdmUucHVzaChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2hvd0luTm93KSB7XG4gICAgICAgICAgICBfdGhpczMua2V5c1RvTGVhdmUucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaGFzTmV4dCkge1xuICAgICAgICAgIF90aGlzMy5rZXlzVG9MZWF2ZS5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudERpZFVwZGF0ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHZhciBrZXlzVG9FbnRlciA9IHRoaXMua2V5c1RvRW50ZXI7XG4gICAgICB0aGlzLmtleXNUb0VudGVyID0gW107XG4gICAgICBrZXlzVG9FbnRlci5mb3JFYWNoKHRoaXMucGVyZm9ybUVudGVyKTtcbiAgICAgIHZhciBrZXlzVG9MZWF2ZSA9IHRoaXMua2V5c1RvTGVhdmU7XG4gICAgICB0aGlzLmtleXNUb0xlYXZlID0gW107XG4gICAgICBrZXlzVG9MZWF2ZS5mb3JFYWNoKHRoaXMucGVyZm9ybUxlYXZlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdpc1ZhbGlkQ2hpbGRCeUtleScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGlzVmFsaWRDaGlsZEJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KSB7XG4gICAgICB2YXIgc2hvd1Byb3AgPSB0aGlzLnByb3BzLnNob3dQcm9wO1xuICAgICAgaWYgKHNob3dQcm9wKSB7XG4gICAgICAgIHJldHVybiBmaW5kU2hvd25DaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSwgc2hvd1Byb3ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc3RvcCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHN0b3Aoa2V5KSB7XG4gICAgICBkZWxldGUgdGhpcy5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV07XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5jaGlsZHJlblJlZnNba2V5XTtcbiAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgY29tcG9uZW50LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXM0ID0gdGhpcztcblxuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubmV4dFByb3BzID0gcHJvcHM7XG4gICAgICB2YXIgc3RhdGVDaGlsZHJlbiA9IHRoaXMuc3RhdGUuY2hpbGRyZW47XG4gICAgICB2YXIgY2hpbGRyZW4gPSBudWxsO1xuICAgICAgaWYgKHN0YXRlQ2hpbGRyZW4pIHtcbiAgICAgICAgY2hpbGRyZW4gPSBzdGF0ZUNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICBpZiAoY2hpbGQgPT09IG51bGwgfHwgY2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWNoaWxkLmtleSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtdXN0IHNldCBrZXkgZm9yIDxyYy1hbmltYXRlPiBjaGlsZHJlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIEFuaW1hdGVDaGlsZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAga2V5OiBjaGlsZC5rZXksXG4gICAgICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBfdGhpczQuY2hpbGRyZW5SZWZzW2NoaWxkLmtleV0gPSBub2RlO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBhbmltYXRpb246IHByb3BzLmFuaW1hdGlvbixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHByb3BzLnRyYW5zaXRpb25OYW1lLFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uRW50ZXI6IHByb3BzLnRyYW5zaXRpb25FbnRlcixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkFwcGVhcjogcHJvcHMudHJhbnNpdGlvbkFwcGVhcixcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkxlYXZlOiBwcm9wcy50cmFuc2l0aW9uTGVhdmVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdmFyIENvbXBvbmVudCA9IHByb3BzLmNvbXBvbmVudDtcbiAgICAgIGlmIChDb21wb25lbnQpIHtcbiAgICAgICAgdmFyIHBhc3NlZFByb3BzID0gcHJvcHM7XG4gICAgICAgIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHBhc3NlZFByb3BzID0gX2V4dGVuZHMoe1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgICBzdHlsZTogcHJvcHMuc3R5bGVcbiAgICAgICAgICB9LCBwcm9wcy5jb21wb25lbnRQcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgIHBhc3NlZFByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2hpbGRyZW5bMF0gfHwgbnVsbDtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQW5pbWF0ZTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuQW5pbWF0ZS5pc0FuaW1hdGUgPSB0cnVlO1xuQW5pbWF0ZS5wcm9wVHlwZXMgPSB7XG4gIGNvbXBvbmVudDogUHJvcFR5cGVzLmFueSxcbiAgY29tcG9uZW50UHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIGFuaW1hdGlvbjogUHJvcFR5cGVzLm9iamVjdCxcbiAgdHJhbnNpdGlvbk5hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5vYmplY3RdKSxcbiAgdHJhbnNpdGlvbkVudGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgdHJhbnNpdGlvbkFwcGVhcjogUHJvcFR5cGVzLmJvb2wsXG4gIGV4Y2x1c2l2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIHRyYW5zaXRpb25MZWF2ZTogUHJvcFR5cGVzLmJvb2wsXG4gIG9uRW5kOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25FbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbkFwcGVhcjogUHJvcFR5cGVzLmZ1bmMsXG4gIHNob3dQcm9wOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn07XG5BbmltYXRlLmRlZmF1bHRQcm9wcyA9IHtcbiAgYW5pbWF0aW9uOiB7fSxcbiAgY29tcG9uZW50OiAnc3BhbicsXG4gIGNvbXBvbmVudFByb3BzOiB7fSxcbiAgdHJhbnNpdGlvbkVudGVyOiB0cnVlLFxuICB0cmFuc2l0aW9uTGVhdmU6IHRydWUsXG4gIHRyYW5zaXRpb25BcHBlYXI6IGZhbHNlLFxuICBvbkVuZDogbm9vcCxcbiAgb25FbnRlcjogbm9vcCxcbiAgb25MZWF2ZTogbm9vcCxcbiAgb25BcHBlYXI6IG5vb3Bcbn07XG5cbnZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgdmFyIF90aGlzNSA9IHRoaXM7XG5cbiAgdGhpcy5wZXJmb3JtRW50ZXIgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgLy8gbWF5IGFscmVhZHkgcmVtb3ZlIGJ5IGV4Y2x1c2l2ZVxuICAgIGlmIChfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0pIHtcbiAgICAgIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0gPSB0cnVlO1xuICAgICAgX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldLmNvbXBvbmVudFdpbGxFbnRlcihfdGhpczUuaGFuZGxlRG9uZUFkZGluZy5iaW5kKF90aGlzNSwga2V5LCAnZW50ZXInKSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMucGVyZm9ybUFwcGVhciA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldKSB7XG4gICAgICBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgIF90aGlzNS5jaGlsZHJlblJlZnNba2V5XS5jb21wb25lbnRXaWxsQXBwZWFyKF90aGlzNS5oYW5kbGVEb25lQWRkaW5nLmJpbmQoX3RoaXM1LCBrZXksICdhcHBlYXInKSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuaGFuZGxlRG9uZUFkZGluZyA9IGZ1bmN0aW9uIChrZXksIHR5cGUpIHtcbiAgICB2YXIgcHJvcHMgPSBfdGhpczUucHJvcHM7XG4gICAgZGVsZXRlIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV07XG4gICAgLy8gaWYgdXBkYXRlIG9uIGV4Y2x1c2l2ZSBtb2RlLCBza2lwIGNoZWNrXG4gICAgaWYgKHByb3BzLmV4Y2x1c2l2ZSAmJiBwcm9wcyAhPT0gX3RoaXM1Lm5leHRQcm9wcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgY3VycmVudENoaWxkcmVuID0gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSk7XG4gICAgaWYgKCFfdGhpczUuaXNWYWxpZENoaWxkQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpKSB7XG4gICAgICAvLyBleGNsdXNpdmUgd2lsbCBub3QgbmVlZCB0aGlzXG4gICAgICBfdGhpczUucGVyZm9ybUxlYXZlKGtleSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnYXBwZWFyJykge1xuICAgICAgaWYgKGFuaW1VdGlsLmFsbG93QXBwZWFyQ2FsbGJhY2socHJvcHMpKSB7XG4gICAgICAgIHByb3BzLm9uQXBwZWFyKGtleSk7XG4gICAgICAgIHByb3BzLm9uRW5kKGtleSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhbmltVXRpbC5hbGxvd0VudGVyQ2FsbGJhY2socHJvcHMpKSB7XG4gICAgICBwcm9wcy5vbkVudGVyKGtleSk7XG4gICAgICBwcm9wcy5vbkVuZChrZXksIHRydWUpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLnBlcmZvcm1MZWF2ZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAvLyBtYXkgYWxyZWFkeSByZW1vdmUgYnkgZXhjbHVzaXZlXG4gICAgaWYgKF90aGlzNS5jaGlsZHJlblJlZnNba2V5XSkge1xuICAgICAgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSA9IHRydWU7XG4gICAgICBfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0uY29tcG9uZW50V2lsbExlYXZlKF90aGlzNS5oYW5kbGVEb25lTGVhdmluZy5iaW5kKF90aGlzNSwga2V5KSk7XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuaGFuZGxlRG9uZUxlYXZpbmcgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHByb3BzID0gX3RoaXM1LnByb3BzO1xuICAgIGRlbGV0ZSBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldO1xuICAgIC8vIGlmIHVwZGF0ZSBvbiBleGNsdXNpdmUgbW9kZSwgc2tpcCBjaGVja1xuICAgIGlmIChwcm9wcy5leGNsdXNpdmUgJiYgcHJvcHMgIT09IF90aGlzNS5uZXh0UHJvcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGN1cnJlbnRDaGlsZHJlbiA9IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykpO1xuICAgIC8vIGluIGNhc2Ugc3RhdGUgY2hhbmdlIGlzIHRvbyBmYXN0XG4gICAgaWYgKF90aGlzNS5pc1ZhbGlkQ2hpbGRCeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSkpIHtcbiAgICAgIF90aGlzNS5wZXJmb3JtRW50ZXIoa2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVuZCA9IGZ1bmN0aW9uIGVuZCgpIHtcbiAgICAgICAgaWYgKGFuaW1VdGlsLmFsbG93TGVhdmVDYWxsYmFjayhwcm9wcykpIHtcbiAgICAgICAgICBwcm9wcy5vbkxlYXZlKGtleSk7XG4gICAgICAgICAgcHJvcHMub25FbmQoa2V5LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBpZiAoIWlzU2FtZUNoaWxkcmVuKF90aGlzNS5zdGF0ZS5jaGlsZHJlbiwgY3VycmVudENoaWxkcmVuLCBwcm9wcy5zaG93UHJvcCkpIHtcbiAgICAgICAgX3RoaXM1LnNldFN0YXRlKHtcbiAgICAgICAgICBjaGlsZHJlbjogY3VycmVudENoaWxkcmVuXG4gICAgICAgIH0sIGVuZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbmQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBbmltYXRlOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZ2VuZXJhdG9yLXJ1bnRpbWVcIik7XG4iLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcImJhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzXCI7XG5mdW5jdGlvbiBvbWl0KG9iaiwgZmllbGRzKSB7XG4gIHZhciBzaGFsbG93Q29weSA9IF9leHRlbmRzKHt9LCBvYmopO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGZpZWxkcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBmaWVsZHNbaV07XG4gICAgZGVsZXRlIHNoYWxsb3dDb3B5W2tleV07XG4gIH1cbiAgcmV0dXJuIHNoYWxsb3dDb3B5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvbWl0OyIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG52YXIgZ2xvYmFsID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2Ygd2luZG93ICE9ICd1bmRlZmluZWQnICYmIHdpbmRvdy5NYXRoID09IE1hdGhcbiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy50dXBsZU51bSA9IGV4cG9ydHMudHVwbGUgPSB2b2lkIDA7XG5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MTc2MTY1L3dheXMtdG8tZ2V0LXN0cmluZy1saXRlcmFsLXR5cGUtb2YtYXJyYXktdmFsdWVzLXdpdGhvdXQtZW51bS1vdmVyaGVhZFxudmFyIHR1cGxlID0gZnVuY3Rpb24gdHVwbGUoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gYXJncztcbn07XG5cbmV4cG9ydHMudHVwbGUgPSB0dXBsZTtcblxudmFyIHR1cGxlTnVtID0gZnVuY3Rpb24gdHVwbGVOdW0oKSB7XG4gIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuXG4gIHJldHVybiBhcmdzO1xufTtcblxuZXhwb3J0cy50dXBsZU51bSA9IHR1cGxlTnVtOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy53YXJuaW5nID0gd2FybmluZztcbmV4cG9ydHMubm90ZSA9IG5vdGU7XG5leHBvcnRzLnJlc2V0V2FybmVkID0gcmVzZXRXYXJuZWQ7XG5leHBvcnRzLmNhbGwgPSBjYWxsO1xuZXhwb3J0cy53YXJuaW5nT25jZSA9IHdhcm5pbmdPbmNlO1xuZXhwb3J0cy5ub3RlT25jZSA9IG5vdGVPbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG52YXIgd2FybmVkID0ge307XG5cbmZ1bmN0aW9uIHdhcm5pbmcodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJXYXJuaW5nOiBcIi5jb25jYXQobWVzc2FnZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vdGUodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcIk5vdGU6IFwiLmNvbmNhdChtZXNzYWdlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRXYXJuZWQoKSB7XG4gIHdhcm5lZCA9IHt9O1xufVxuXG5mdW5jdGlvbiBjYWxsKG1ldGhvZCwgdmFsaWQsIG1lc3NhZ2UpIHtcbiAgaWYgKCF2YWxpZCAmJiAhd2FybmVkW21lc3NhZ2VdKSB7XG4gICAgbWV0aG9kKGZhbHNlLCBtZXNzYWdlKTtcbiAgICB3YXJuZWRbbWVzc2FnZV0gPSB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5pbmdPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwod2FybmluZywgdmFsaWQsIG1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBub3RlT25jZSh2YWxpZCwgbWVzc2FnZSkge1xuICBjYWxsKG5vdGUsIHZhbGlkLCBtZXNzYWdlKTtcbn1cblxudmFyIF9kZWZhdWx0ID0gd2FybmluZ09uY2U7XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcInJlc2V0V2FybmVkXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgcmV0dXJuIF93YXJuaW5nLnJlc2V0V2FybmVkO1xuICB9XG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmMtdXRpbC9saWIvd2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIF9kZWZhdWx0ID0gZnVuY3Rpb24gX2RlZmF1bHQodmFsaWQsIGNvbXBvbmVudCwgbWVzc2FnZSkge1xuICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSh2YWxpZCwgXCJbYW50ZDogXCIuY29uY2F0KGNvbXBvbmVudCwgXCJdIFwiKS5jb25jYXQobWVzc2FnZSkpO1xufTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnJlcGxhY2VFbGVtZW50ID0gcmVwbGFjZUVsZW1lbnQ7XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGNsb25lRWxlbWVudDtcbmV4cG9ydHMuaXNWYWxpZEVsZW1lbnQgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIGlzVmFsaWRFbGVtZW50ID0gUmVhY3QuaXNWYWxpZEVsZW1lbnQ7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5cbmZ1bmN0aW9uIHJlcGxhY2VFbGVtZW50KGVsZW1lbnQsIHJlcGxhY2VtZW50LCBwcm9wcykge1xuICBpZiAoIWlzVmFsaWRFbGVtZW50KGVsZW1lbnQpKSByZXR1cm4gcmVwbGFjZW1lbnQ7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHR5cGVvZiBwcm9wcyA9PT0gJ2Z1bmN0aW9uJyA/IHByb3BzKGVsZW1lbnQucHJvcHMgfHwge30pIDogcHJvcHMpO1xufVxuXG5mdW5jdGlvbiBjbG9uZUVsZW1lbnQoZWxlbWVudCwgcHJvcHMpIHtcbiAgcmV0dXJuIHJlcGxhY2VFbGVtZW50KGVsZW1lbnQsIGVsZW1lbnQsIHByb3BzKTtcbn0iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGRvbV8xID0gcmVxdWlyZShcIi4uL2RvbVwiKTtcbmNvbnN0IFRyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IFNoYWRvd1RyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1NoYWRvd1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBzdXBwb3J0ZWRUb2tlbnMgPSBuZXcgTWFwKCk7XG4vKipcbiAqIFJ1bnMgcmVtb3Zpbmcgc3RlcHMgZm9yIG5vZGUuXG4gKlxuICogQHBhcmFtIHJlbW92ZWROb2RlIC0gcmVtb3ZlZCBub2RlXG4gKiBAcGFyYW0gb2xkUGFyZW50IC0gb2xkIHBhcmVudCBub2RlXG4gKi9cbmZ1bmN0aW9uIGRvbV9ydW5SZW1vdmluZ1N0ZXBzKHJlbW92ZWROb2RlLCBvbGRQYXJlbnQpIHtcbiAgICAvLyBObyBzdGVwcyBkZWZpbmVkXG59XG5leHBvcnRzLmRvbV9ydW5SZW1vdmluZ1N0ZXBzID0gZG9tX3J1blJlbW92aW5nU3RlcHM7XG4vKipcbiAqIFJ1bnMgY2xvbmluZyBzdGVwcyBmb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0gY29weSAtIG5vZGUgY2xvbmVcbiAqIEBwYXJhbSBub2RlIC0gbm9kZVxuICogQHBhcmFtIGRvY3VtZW50IC0gZG9jdW1lbnQgdG8gb3duIHRoZSBjbG9uZWQgbm9kZVxuICogQHBhcmFtIGNsb25lQ2hpbGRyZW5GbGFnIC0gd2hldGhlciBjaGlsZCBub2RlcyBhcmUgY2xvbmVkXG4gKi9cbmZ1bmN0aW9uIGRvbV9ydW5DbG9uaW5nU3RlcHMoY29weSwgbm9kZSwgZG9jdW1lbnQsIGNsb25lQ2hpbGRyZW5GbGFnKSB7XG4gICAgLy8gTm8gc3RlcHMgZGVmaW5lZFxufVxuZXhwb3J0cy5kb21fcnVuQ2xvbmluZ1N0ZXBzID0gZG9tX3J1bkNsb25pbmdTdGVwcztcbi8qKlxuICogUnVucyBhZG9wdGluZyBzdGVwcyBmb3Igbm9kZS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGVcbiAqIEBwYXJhbSBvbGREb2N1bWVudCAtIG9sZCBkb2N1bWVudFxuICovXG5mdW5jdGlvbiBkb21fcnVuQWRvcHRpbmdTdGVwcyhub2RlLCBvbGREb2N1bWVudCkge1xuICAgIC8vIE5vIHN0ZXBzIGRlZmluZWRcbn1cbmV4cG9ydHMuZG9tX3J1bkFkb3B0aW5nU3RlcHMgPSBkb21fcnVuQWRvcHRpbmdTdGVwcztcbi8qKlxuICogUnVucyBhdHRyaWJ1dGUgY2hhbmdlIHN0ZXBzIGZvciBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBlbGVtZW50IG5vZGUgb3duaW5nIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBsb2NhbE5hbWUgLSBhdHRyaWJ1dGUncyBsb2NhbCBuYW1lXG4gKiBAcGFyYW0gb2xkVmFsdWUgLSBhdHRyaWJ1dGUncyBvbGQgdmFsdWVcbiAqIEBwYXJhbSB2YWx1ZSAtIGF0dHJpYnV0ZSdzIG5ldyB2YWx1ZVxuICogQHBhcmFtIG5hbWVzcGFjZSAtIGF0dHJpYnV0ZSdzIG5hbWVzcGFjZVxuICovXG5mdW5jdGlvbiBkb21fcnVuQXR0cmlidXRlQ2hhbmdlU3RlcHMoZWxlbWVudCwgbG9jYWxOYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgIC8vIHJ1biBkZWZhdWx0IHN0ZXBzXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zbG90cykge1xuICAgICAgICB1cGRhdGVBU2xvdGFibGVzTmFtZS5jYWxsKGVsZW1lbnQsIGVsZW1lbnQsIGxvY2FsTmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBuYW1lc3BhY2UpO1xuICAgICAgICB1cGRhdGVBU2xvdHNOYW1lLmNhbGwoZWxlbWVudCwgZWxlbWVudCwgbG9jYWxOYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHVwZGF0ZUFuRWxlbWVudElELmNhbGwoZWxlbWVudCwgZWxlbWVudCwgbG9jYWxOYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbiAgICAvLyBydW4gY3VzdG9tIHN0ZXBzXG4gICAgZm9yIChjb25zdCBzdGVwIG9mIGVsZW1lbnQuX2F0dHJpYnV0ZUNoYW5nZVN0ZXBzKSB7XG4gICAgICAgIHN0ZXAuY2FsbChlbGVtZW50LCBlbGVtZW50LCBsb2NhbE5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgbmFtZXNwYWNlKTtcbiAgICB9XG59XG5leHBvcnRzLmRvbV9ydW5BdHRyaWJ1dGVDaGFuZ2VTdGVwcyA9IGRvbV9ydW5BdHRyaWJ1dGVDaGFuZ2VTdGVwcztcbi8qKlxuICogUnVucyBpbnNlcnRpb24gc3RlcHMgZm9yIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0gaW5zZXJ0ZWROb2RlIC0gaW5zZXJ0ZWQgbm9kZVxuICovXG5mdW5jdGlvbiBkb21fcnVuSW5zZXJ0aW9uU3RlcHMoaW5zZXJ0ZWROb2RlKSB7XG4gICAgLy8gTm8gc3RlcHMgZGVmaW5lZFxufVxuZXhwb3J0cy5kb21fcnVuSW5zZXJ0aW9uU3RlcHMgPSBkb21fcnVuSW5zZXJ0aW9uU3RlcHM7XG4vKipcbiAqIFJ1bnMgcHJlLXJlbW92aW5nIHN0ZXBzIGZvciBhIG5vZGUgaXRlcmF0b3IgYW5kIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGVJdGVyYXRvciAtIGEgbm9kZSBpdGVyYXRvclxuICogQHBhcmFtIHRvQmVSZW1vdmVkIC0gbm9kZSB0byBiZSByZW1vdmVkXG4gKi9cbmZ1bmN0aW9uIGRvbV9ydW5Ob2RlSXRlcmF0b3JQcmVSZW1vdmluZ1N0ZXBzKG5vZGVJdGVyYXRvciwgdG9CZVJlbW92ZWQpIHtcbiAgICByZW1vdmVOb2RlSXRlcmF0b3IuY2FsbChub2RlSXRlcmF0b3IsIG5vZGVJdGVyYXRvciwgdG9CZVJlbW92ZWQpO1xufVxuZXhwb3J0cy5kb21fcnVuTm9kZUl0ZXJhdG9yUHJlUmVtb3ZpbmdTdGVwcyA9IGRvbV9ydW5Ob2RlSXRlcmF0b3JQcmVSZW1vdmluZ1N0ZXBzO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZXJlIGFyZSBhbnkgc3VwcG9ydGVkIHRva2VucyBkZWZpbmVkIGZvciB0aGUgZ2l2ZW5cbiAqIGF0dHJpYnV0ZSBuYW1lLlxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lIC0gYW4gYXR0cmlidXRlIG5hbWVcbiAqL1xuZnVuY3Rpb24gZG9tX2hhc1N1cHBvcnRlZFRva2VucyhhdHRyaWJ1dGVOYW1lKSB7XG4gICAgcmV0dXJuIHN1cHBvcnRlZFRva2Vucy5oYXMoYXR0cmlidXRlTmFtZSk7XG59XG5leHBvcnRzLmRvbV9oYXNTdXBwb3J0ZWRUb2tlbnMgPSBkb21faGFzU3VwcG9ydGVkVG9rZW5zO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBzZXQgb2Ygc3VwcG9ydGVkIHRva2VucyBkZWZpbmVkIGZvciB0aGUgZ2l2ZW4gYXR0cmlidXRlIG5hbWUuXG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZU5hbWUgLSBhbiBhdHRyaWJ1dGUgbmFtZVxuICovXG5mdW5jdGlvbiBkb21fZ2V0U3VwcG9ydGVkVG9rZW5zKGF0dHJpYnV0ZU5hbWUpIHtcbiAgICByZXR1cm4gc3VwcG9ydGVkVG9rZW5zLmdldChhdHRyaWJ1dGVOYW1lKSB8fCBuZXcgU2V0KCk7XG59XG5leHBvcnRzLmRvbV9nZXRTdXBwb3J0ZWRUb2tlbnMgPSBkb21fZ2V0U3VwcG9ydGVkVG9rZW5zO1xuLyoqXG4gKiBSdW5zIGV2ZW50IGNvbnN0cnVjdGlvbiBzdGVwcy5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgLSBhbiBldmVudFxuICovXG5mdW5jdGlvbiBkb21fcnVuRXZlbnRDb25zdHJ1Y3RpbmdTdGVwcyhldmVudCkge1xuICAgIC8vIE5vIHN0ZXBzIGRlZmluZWRcbn1cbmV4cG9ydHMuZG9tX3J1bkV2ZW50Q29uc3RydWN0aW5nU3RlcHMgPSBkb21fcnVuRXZlbnRDb25zdHJ1Y3RpbmdTdGVwcztcbi8qKlxuICogUnVucyBjaGlsZCB0ZXh0IGNvbnRlbnQgY2hhbmdlIHN0ZXBzIGZvciBhIHBhcmVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBwYXJlbnQgLSBwYXJlbnQgbm9kZSB3aXRoIHRleHQgbm9kZSBjaGlsZCBub2Rlc1xuICovXG5mdW5jdGlvbiBkb21fcnVuQ2hpbGRUZXh0Q29udGVudENoYW5nZVN0ZXBzKHBhcmVudCkge1xuICAgIC8vIE5vIHN0ZXBzIGRlZmluZWRcbn1cbmV4cG9ydHMuZG9tX3J1bkNoaWxkVGV4dENvbnRlbnRDaGFuZ2VTdGVwcyA9IGRvbV9ydW5DaGlsZFRleHRDb250ZW50Q2hhbmdlU3RlcHM7XG4vKipcbiAqIERlZmluZXMgcHJlLXJlbW92aW5nIHN0ZXBzIGZvciBhIG5vZGUgaXRlcmF0b3IuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZU5vZGVJdGVyYXRvcihub2RlSXRlcmF0b3IsIHRvQmVSZW1vdmVkTm9kZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIHRvQmVSZW1vdmVkTm9kZSBpcyBub3QgYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIG5vZGVJdGVyYXRvcuKAmXNcbiAgICAgKiByZWZlcmVuY2UsIG9yIHRvQmVSZW1vdmVkTm9kZSBpcyBub2RlSXRlcmF0b3LigJlzIHJvb3QsIHRoZW4gcmV0dXJuLlxuICAgICAqL1xuICAgIGlmICh0b0JlUmVtb3ZlZE5vZGUgPT09IG5vZGVJdGVyYXRvci5fcm9vdCB8fFxuICAgICAgICAhVHJlZUFsZ29yaXRobV8xLnRyZWVfaXNBbmNlc3Rvck9mKG5vZGVJdGVyYXRvci5fcmVmZXJlbmNlLCB0b0JlUmVtb3ZlZE5vZGUsIHRydWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMi4gSWYgbm9kZUl0ZXJhdG9y4oCZcyBwb2ludGVyIGJlZm9yZSByZWZlcmVuY2UgaXMgdHJ1ZSwgdGhlbjpcbiAgICAgKi9cbiAgICBpZiAobm9kZUl0ZXJhdG9yLl9wb2ludGVyQmVmb3JlUmVmZXJlbmNlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLjEuIExldCBuZXh0IGJlIHRvQmVSZW1vdmVkTm9kZeKAmXMgZmlyc3QgZm9sbG93aW5nIG5vZGUgdGhhdCBpcyBhblxuICAgICAgICAgKiBpbmNsdXNpdmUgZGVzY2VuZGFudCBvZiBub2RlSXRlcmF0b3LigJlzIHJvb3QgYW5kIGlzIG5vdCBhbiBpbmNsdXNpdmVcbiAgICAgICAgICogZGVzY2VuZGFudCBvZiB0b0JlUmVtb3ZlZE5vZGUsIGFuZCBudWxsIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbm9kZS5cbiAgICAgICAgICovXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0Tm9kZSA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldEZvbGxvd2luZ05vZGUobm9kZUl0ZXJhdG9yLl9yb290LCB0b0JlUmVtb3ZlZE5vZGUpO1xuICAgICAgICAgICAgaWYgKG5leHROb2RlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgVHJlZUFsZ29yaXRobV8xLnRyZWVfaXNEZXNjZW5kYW50T2Yobm9kZUl0ZXJhdG9yLl9yb290LCBuZXh0Tm9kZSwgdHJ1ZSkgJiZcbiAgICAgICAgICAgICAgICAhVHJlZUFsZ29yaXRobV8xLnRyZWVfaXNEZXNjZW5kYW50T2YodG9CZVJlbW92ZWROb2RlLCBuZXh0Tm9kZSwgdHJ1ZSkpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjIuIElmIG5leHQgaXMgbm9uLW51bGwsIHRoZW4gc2V0IG5vZGVJdGVyYXRvcuKAmXMgcmVmZXJlbmNlIHRvIG5leHRcbiAgICAgICAgICAgICAgICAgKiBhbmQgcmV0dXJuLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIG5vZGVJdGVyYXRvci5fcmVmZXJlbmNlID0gbmV4dE5vZGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobmV4dE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjMuIE90aGVyd2lzZSwgc2V0IG5vZGVJdGVyYXRvcuKAmXMgcG9pbnRlciBiZWZvcmUgcmVmZXJlbmNlIHRvIGZhbHNlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIG5vZGVJdGVyYXRvci5fcG9pbnRlckJlZm9yZVJlZmVyZW5jZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBTZXQgbm9kZUl0ZXJhdG9y4oCZcyByZWZlcmVuY2UgdG8gdG9CZVJlbW92ZWROb2Rl4oCZcyBwYXJlbnQsIGlmXG4gICAgICogdG9CZVJlbW92ZWROb2Rl4oCZcyBwcmV2aW91cyBzaWJsaW5nIGlzIG51bGwsIGFuZCB0byB0aGUgaW5jbHVzaXZlXG4gICAgICogZGVzY2VuZGFudCBvZiB0b0JlUmVtb3ZlZE5vZGXigJlzIHByZXZpb3VzIHNpYmxpbmcgdGhhdCBhcHBlYXJzIGxhc3QgaW5cbiAgICAgKiB0cmVlIG9yZGVyIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBpZiAodG9CZVJlbW92ZWROb2RlLl9wcmV2aW91c1NpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHRvQmVSZW1vdmVkTm9kZS5fcGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBub2RlSXRlcmF0b3IuX3JlZmVyZW5jZSA9IHRvQmVSZW1vdmVkTm9kZS5fcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBsZXQgcmVmZXJlbmNlTm9kZSA9IHRvQmVSZW1vdmVkTm9kZS5fcHJldmlvdXNTaWJsaW5nO1xuICAgICAgICBsZXQgY2hpbGROb2RlID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZSh0b0JlUmVtb3ZlZE5vZGUuX3ByZXZpb3VzU2libGluZywgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICB3aGlsZSAoY2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlTm9kZSA9IGNoaWxkTm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGxvb3AgdGhyb3VnaCB0byBnZXQgdGhlIGxhc3QgZGVzY2VuZGFudCBub2RlXG4gICAgICAgICAgICBjaGlsZE5vZGUgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUodG9CZVJlbW92ZWROb2RlLl9wcmV2aW91c1NpYmxpbmcsIGNoaWxkTm9kZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIG5vZGVJdGVyYXRvci5fcmVmZXJlbmNlID0gcmVmZXJlbmNlTm9kZTtcbiAgICB9XG59XG4vKipcbiAqIERlZmluZXMgYXR0cmlidXRlIGNoYW5nZSBzdGVwcyB0byB1cGRhdGUgYSBzbG904oCZcyBuYW1lLlxuICovXG5mdW5jdGlvbiB1cGRhdGVBU2xvdHNOYW1lKGVsZW1lbnQsIGxvY2FsTmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBuYW1lc3BhY2UpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBlbGVtZW50IGlzIGEgc2xvdCwgbG9jYWxOYW1lIGlzIG5hbWUsIGFuZCBuYW1lc3BhY2UgaXMgbnVsbCwgdGhlbjpcbiAgICAgKiAxLjEuIElmIHZhbHVlIGlzIG9sZFZhbHVlLCB0aGVuIHJldHVybi5cbiAgICAgKiAxLjIuIElmIHZhbHVlIGlzIG51bGwgYW5kIG9sZFZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gcmV0dXJuLlxuICAgICAqIDEuMy4gSWYgdmFsdWUgaXMgdGhlIGVtcHR5IHN0cmluZyBhbmQgb2xkVmFsdWUgaXMgbnVsbCwgdGhlbiByZXR1cm4uXG4gICAgICogMS40LiBJZiB2YWx1ZSBpcyBudWxsIG9yIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IGVsZW1lbnTigJlzIG5hbWUgdG8gdGhlXG4gICAgICogZW1wdHkgc3RyaW5nLlxuICAgICAqIDEuNS4gT3RoZXJ3aXNlLCBzZXQgZWxlbWVudOKAmXMgbmFtZSB0byB2YWx1ZS5cbiAgICAgKiAxLjYuIFJ1biBhc3NpZ24gc2xvdGFibGVzIGZvciBhIHRyZWUgd2l0aCBlbGVtZW504oCZcyByb290LlxuICAgICAqL1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNTbG90KGVsZW1lbnQpICYmIGxvY2FsTmFtZSA9PT0gXCJuYW1lXCIgJiYgbmFtZXNwYWNlID09PSBudWxsKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gb2xkVmFsdWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiBvbGRWYWx1ZSA9PT0gJycpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gJycgJiYgb2xkVmFsdWUgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICgodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgZWxlbWVudC5fbmFtZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudC5fbmFtZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlc0ZvckFUcmVlKFRyZWVBbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKGVsZW1lbnQpKTtcbiAgICB9XG59XG4vKipcbiAqIERlZmluZXMgYXR0cmlidXRlIGNoYW5nZSBzdGVwcyB0byB1cGRhdGUgYSBzbG90YWJsZeKAmXMgbmFtZS5cbiAqL1xuZnVuY3Rpb24gdXBkYXRlQVNsb3RhYmxlc05hbWUoZWxlbWVudCwgbG9jYWxOYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIGxvY2FsTmFtZSBpcyBzbG90IGFuZCBuYW1lc3BhY2UgaXMgbnVsbCwgdGhlbjpcbiAgICAgKiAxLjEuIElmIHZhbHVlIGlzIG9sZFZhbHVlLCB0aGVuIHJldHVybi5cbiAgICAgKiAxLjIuIElmIHZhbHVlIGlzIG51bGwgYW5kIG9sZFZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gcmV0dXJuLlxuICAgICAqIDEuMy4gSWYgdmFsdWUgaXMgdGhlIGVtcHR5IHN0cmluZyBhbmQgb2xkVmFsdWUgaXMgbnVsbCwgdGhlbiByZXR1cm4uXG4gICAgICogMS40LiBJZiB2YWx1ZSBpcyBudWxsIG9yIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IGVsZW1lbnTigJlzIG5hbWUgdG9cbiAgICAgKiB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIDEuNS4gT3RoZXJ3aXNlLCBzZXQgZWxlbWVudOKAmXMgbmFtZSB0byB2YWx1ZS5cbiAgICAgKiAxLjYuIElmIGVsZW1lbnQgaXMgYXNzaWduZWQsIHRoZW4gcnVuIGFzc2lnbiBzbG90YWJsZXMgZm9yIGVsZW1lbnTigJlzXG4gICAgICogYXNzaWduZWQgc2xvdC5cbiAgICAgKiAxLjcuIFJ1biBhc3NpZ24gYSBzbG90IGZvciBlbGVtZW50LlxuICAgICAqL1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNTbG90YWJsZShlbGVtZW50KSAmJiBsb2NhbE5hbWUgPT09IFwic2xvdFwiICYmIG5hbWVzcGFjZSA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG9sZFZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgb2xkVmFsdWUgPT09ICcnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodmFsdWUgPT09ICcnICYmIG9sZFZhbHVlID09PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuX25hbWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGVsZW1lbnQuX25hbWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfaXNBc3NpZ25lZChlbGVtZW50KSkge1xuICAgICAgICAgICAgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfYXNzaWduU2xvdGFibGVzKGVsZW1lbnQuX2Fzc2lnbmVkU2xvdCk7XG4gICAgICAgIH1cbiAgICAgICAgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfYXNzaWduQVNsb3QoZWxlbWVudCk7XG4gICAgfVxufVxuLyoqXG4gKiBEZWZpbmVzIGF0dHJpYnV0ZSBjaGFuZ2Ugc3RlcHMgdG8gdXBkYXRlIGFuIGVsZW1lbnQncyBJRC5cbiAqL1xuZnVuY3Rpb24gdXBkYXRlQW5FbGVtZW50SUQoZWxlbWVudCwgbG9jYWxOYW1lLCB2YWx1ZSwgbmFtZXNwYWNlKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgbG9jYWxOYW1lIGlzIGlkLCBuYW1lc3BhY2UgaXMgbnVsbCwgYW5kIHZhbHVlIGlzIG51bGwgb3IgdGhlIGVtcHR5XG4gICAgICogc3RyaW5nLCB0aGVuIHVuc2V0IGVsZW1lbnTigJlzIElELlxuICAgICAqIDIuIE90aGVyd2lzZSwgaWYgbG9jYWxOYW1lIGlzIGlkLCBuYW1lc3BhY2UgaXMgbnVsbCwgdGhlbiBzZXQgZWxlbWVudOKAmXNcbiAgICAgKiBJRCB0byB2YWx1ZS5cbiAgICAgKi9cbiAgICBpZiAobG9jYWxOYW1lID09PSBcImlkXCIgJiYgbmFtZXNwYWNlID09PSBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICBlbGVtZW50Ll91bmlxdWVJZGVudGlmaWVyID0gdW5kZWZpbmVkO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBlbGVtZW50Ll91bmlxdWVJZGVudGlmaWVyID0gdmFsdWU7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RE9NQWxnb3JpdGhtLmpzLm1hcCIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRhaW5zKHJvb3QsIG4pIHtcbiAgaWYgKCFyb290KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHJvb3QuY29udGFpbnMobik7XG59IiwiaW1wb3J0IHsgdXNlUmVmLCB1c2VFZmZlY3QsIGZvcndhcmRSZWYsIHVzZUltcGVyYXRpdmVIYW5kbGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBjYW5Vc2VEb20gZnJvbSAnLi9Eb20vY2FuVXNlRG9tJztcbnZhciBQb3J0YWwgPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBkaWRVcGRhdGUgPSBwcm9wcy5kaWRVcGRhdGUsXG4gICAgICBnZXRDb250YWluZXIgPSBwcm9wcy5nZXRDb250YWluZXIsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICB2YXIgY29udGFpbmVyUmVmID0gdXNlUmVmKCk7IC8vIFJlZiByZXR1cm4gbm90aGluZywgb25seSBmb3Igd3JhcHBlciBjaGVjayBleGlzdFxuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9KTsgLy8gQ3JlYXRlIGNvbnRhaW5lciBpbiBjbGllbnQgc2lkZSB3aXRoIHN5bmMgdG8gYXZvaWQgdXNlRWZmZWN0IG5vdCBnZXQgcmVmXG5cbiAgdmFyIGluaXRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIGlmICghaW5pdFJlZi5jdXJyZW50ICYmIGNhblVzZURvbSgpKSB7XG4gICAgY29udGFpbmVyUmVmLmN1cnJlbnQgPSBnZXRDb250YWluZXIoKTtcbiAgICBpbml0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICB9IC8vIFtMZWdhY3ldIFVzZWQgYnkgYHJjLXRyaWdnZXJgXG5cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGRpZFVwZGF0ZSA9PT0gbnVsbCB8fCBkaWRVcGRhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRpZFVwZGF0ZShwcm9wcyk7XG4gIH0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX2NvbnRhaW5lclJlZiRjdXJyZW50LCBfY29udGFpbmVyUmVmJGN1cnJlbnQyO1xuXG4gICAgICAvLyBbTGVnYWN5XSBUaGlzIHNob3VsZCBub3QgYmUgaGFuZGxlIGJ5IFBvcnRhbCBidXQgcGFyZW50IFBvcnRhbFdyYXBwZXIgaW5zdGVhZC5cbiAgICAgIC8vIFNpbmNlIHNvbWUgY29tcG9uZW50IHVzZSBgUG9ydGFsYCBkaXJlY3RseSwgd2UgaGF2ZSB0byBrZWVwIHRoZSBsb2dpYyBoZXJlLlxuICAgICAgKF9jb250YWluZXJSZWYkY3VycmVudCA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfY29udGFpbmVyUmVmJGN1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IChfY29udGFpbmVyUmVmJGN1cnJlbnQyID0gX2NvbnRhaW5lclJlZiRjdXJyZW50LnBhcmVudE5vZGUpID09PSBudWxsIHx8IF9jb250YWluZXJSZWYkY3VycmVudDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jb250YWluZXJSZWYkY3VycmVudDIucmVtb3ZlQ2hpbGQoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGNvbnRhaW5lclJlZi5jdXJyZW50ID8gUmVhY3RET00uY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBjb250YWluZXJSZWYuY3VycmVudCkgOiBudWxsO1xufSk7XG5leHBvcnQgZGVmYXVsdCBQb3J0YWw7IiwiaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcblxuZnVuY3Rpb24gaXNQb2ludHNFcShhMSwgYTIsIGlzQWxpZ25Qb2ludCkge1xuICBpZiAoaXNBbGlnblBvaW50KSB7XG4gICAgcmV0dXJuIGExWzBdID09PSBhMlswXTtcbiAgfVxuXG4gIHJldHVybiBhMVswXSA9PT0gYTJbMF0gJiYgYTFbMV0gPT09IGEyWzFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25Gcm9tUGxhY2VtZW50KGJ1aWx0aW5QbGFjZW1lbnRzLCBwbGFjZW1lbnRTdHIsIGFsaWduKSB7XG4gIHZhciBiYXNlQWxpZ24gPSBidWlsdGluUGxhY2VtZW50c1twbGFjZW1lbnRTdHJdIHx8IHt9O1xuICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBiYXNlQWxpZ24pLCBhbGlnbik7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZShidWlsdGluUGxhY2VtZW50cywgcHJlZml4Q2xzLCBhbGlnbiwgaXNBbGlnblBvaW50KSB7XG4gIHZhciBwb2ludHMgPSBhbGlnbi5wb2ludHM7XG4gIHZhciBwbGFjZW1lbnRzID0gT2JqZWN0LmtleXMoYnVpbHRpblBsYWNlbWVudHMpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcGxhY2VtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIHZhciBwbGFjZW1lbnQgPSBwbGFjZW1lbnRzW2ldO1xuXG4gICAgaWYgKGlzUG9pbnRzRXEoYnVpbHRpblBsYWNlbWVudHNbcGxhY2VtZW50XS5wb2ludHMsIHBvaW50cywgaXNBbGlnblBvaW50KSkge1xuICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcGxhY2VtZW50LVwiKS5jb25jYXQocGxhY2VtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59IiwiZXhwb3J0IGZ1bmN0aW9uIGdldE1vdGlvbihfcmVmKSB7XG4gIHZhciBwcmVmaXhDbHMgPSBfcmVmLnByZWZpeENscyxcbiAgICAgIG1vdGlvbiA9IF9yZWYubW90aW9uLFxuICAgICAgYW5pbWF0aW9uID0gX3JlZi5hbmltYXRpb24sXG4gICAgICB0cmFuc2l0aW9uTmFtZSA9IF9yZWYudHJhbnNpdGlvbk5hbWU7XG5cbiAgaWYgKG1vdGlvbikge1xuICAgIHJldHVybiBtb3Rpb247XG4gIH1cblxuICBpZiAoYW5pbWF0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vdGlvbk5hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChhbmltYXRpb24pXG4gICAgfTtcbiAgfVxuXG4gIGlmICh0cmFuc2l0aW9uTmFtZSkge1xuICAgIHJldHVybiB7XG4gICAgICBtb3Rpb25OYW1lOiB0cmFuc2l0aW9uTmFtZVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0iLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBDU1NNb3Rpb24gZnJvbSAncmMtbW90aW9uJztcbmltcG9ydCB7IGdldE1vdGlvbiB9IGZyb20gJy4uL3V0aWxzL2xlZ2FjeVV0aWwnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFzayhwcm9wcykge1xuICB2YXIgcHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgdmlzaWJsZSA9IHByb3BzLnZpc2libGUsXG4gICAgICB6SW5kZXggPSBwcm9wcy56SW5kZXgsXG4gICAgICBtYXNrID0gcHJvcHMubWFzayxcbiAgICAgIG1hc2tNb3Rpb24gPSBwcm9wcy5tYXNrTW90aW9uLFxuICAgICAgbWFza0FuaW1hdGlvbiA9IHByb3BzLm1hc2tBbmltYXRpb24sXG4gICAgICBtYXNrVHJhbnNpdGlvbk5hbWUgPSBwcm9wcy5tYXNrVHJhbnNpdGlvbk5hbWU7XG5cbiAgaWYgKCFtYXNrKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbW90aW9uID0ge307XG5cbiAgaWYgKG1hc2tNb3Rpb24gfHwgbWFza1RyYW5zaXRpb25OYW1lIHx8IG1hc2tBbmltYXRpb24pIHtcbiAgICBtb3Rpb24gPSBfb2JqZWN0U3ByZWFkKHtcbiAgICAgIG1vdGlvbkFwcGVhcjogdHJ1ZVxuICAgIH0sIGdldE1vdGlvbih7XG4gICAgICBtb3Rpb246IG1hc2tNb3Rpb24sXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIHRyYW5zaXRpb25OYW1lOiBtYXNrVHJhbnNpdGlvbk5hbWUsXG4gICAgICBhbmltYXRpb246IG1hc2tBbmltYXRpb25cbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTTW90aW9uLCBfZXh0ZW5kcyh7fSwgbW90aW9uLCB7XG4gICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICByZW1vdmVPbkxlYXZlOiB0cnVlXG4gIH0pLCBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBjbGFzc05hbWUgPSBfcmVmLmNsYXNzTmFtZTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgc3R5bGU6IHtcbiAgICAgICAgekluZGV4OiB6SW5kZXhcbiAgICAgIH0sXG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tYXNrXCIpLCBjbGFzc05hbWUpXG4gICAgfSk7XG4gIH0pO1xufSIsImltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3Jlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbCc7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcInJjLXV0aWwvZXMvRG9tL2NvbnRhaW5zXCI7XG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lUG9pbnQocHJldiwgbmV4dCkge1xuICBpZiAocHJldiA9PT0gbmV4dCkgcmV0dXJuIHRydWU7XG4gIGlmICghcHJldiB8fCAhbmV4dCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICgncGFnZVgnIGluIG5leHQgJiYgJ3BhZ2VZJyBpbiBuZXh0KSB7XG4gICAgcmV0dXJuIHByZXYucGFnZVggPT09IG5leHQucGFnZVggJiYgcHJldi5wYWdlWSA9PT0gbmV4dC5wYWdlWTtcbiAgfVxuXG4gIGlmICgnY2xpZW50WCcgaW4gbmV4dCAmJiAnY2xpZW50WScgaW4gbmV4dCkge1xuICAgIHJldHVybiBwcmV2LmNsaWVudFggPT09IG5leHQuY2xpZW50WCAmJiBwcmV2LmNsaWVudFkgPT09IG5leHQuY2xpZW50WTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXN0b3JlRm9jdXMoYWN0aXZlRWxlbWVudCwgY29udGFpbmVyKSB7XG4gIC8vIEZvY3VzIGJhY2sgaWYgaXMgaW4gdGhlIGNvbnRhaW5lclxuICBpZiAoYWN0aXZlRWxlbWVudCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiBjb250YWlucyhjb250YWluZXIsIGFjdGl2ZUVsZW1lbnQpICYmIHR5cGVvZiBhY3RpdmVFbGVtZW50LmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG5leHBvcnQgZnVuY3Rpb24gbW9uaXRvclJlc2l6ZShlbGVtZW50LCBjYWxsYmFjaykge1xuICB2YXIgcHJldldpZHRoID0gbnVsbDtcbiAgdmFyIHByZXZIZWlnaHQgPSBudWxsO1xuXG4gIGZ1bmN0aW9uIG9uUmVzaXplKF9yZWYpIHtcbiAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAxKSxcbiAgICAgICAgdGFyZ2V0ID0gX3JlZjJbMF0udGFyZ2V0O1xuXG4gICAgaWYgKCFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkgcmV0dXJuO1xuXG4gICAgdmFyIF90YXJnZXQkZ2V0Qm91bmRpbmdDbCA9IHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgd2lkdGggPSBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wud2lkdGgsXG4gICAgICAgIGhlaWdodCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC5oZWlnaHQ7XG5cbiAgICB2YXIgZml4ZWRXaWR0aCA9IE1hdGguZmxvb3Iod2lkdGgpO1xuICAgIHZhciBmaXhlZEhlaWdodCA9IE1hdGguZmxvb3IoaGVpZ2h0KTtcblxuICAgIGlmIChwcmV2V2lkdGggIT09IGZpeGVkV2lkdGggfHwgcHJldkhlaWdodCAhPT0gZml4ZWRIZWlnaHQpIHtcbiAgICAgIC8vIGh0dHBzOi8vd2Via2l0Lm9yZy9ibG9nLzk5OTcvcmVzaXplb2JzZXJ2ZXItaW4td2Via2l0L1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICB3aWR0aDogZml4ZWRXaWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGZpeGVkSGVpZ2h0XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJldldpZHRoID0gZml4ZWRXaWR0aDtcbiAgICBwcmV2SGVpZ2h0ID0gZml4ZWRIZWlnaHQ7XG4gIH1cblxuICB2YXIgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIob25SZXNpemUpO1xuXG4gIGlmIChlbGVtZW50KSB7XG4gICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICB9O1xufSIsImltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IF90eXBlb2YgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZlwiO1xuXG4vKipcbiAqIFJlbW92ZWQgcHJvcHM6XG4gKiAgLSBjaGlsZHJlblByb3BzXG4gKi9cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb21wb3NlUmVmIH0gZnJvbSBcInJjLXV0aWwvZXMvcmVmXCI7XG5pbXBvcnQgaXNWaXNpYmxlIGZyb20gXCJyYy11dGlsL2VzL0RvbS9pc1Zpc2libGVcIjtcbmltcG9ydCB7IGFsaWduRWxlbWVudCwgYWxpZ25Qb2ludCB9IGZyb20gJ2RvbS1hbGlnbic7XG5pbXBvcnQgYWRkRXZlbnRMaXN0ZW5lciBmcm9tIFwicmMtdXRpbC9lcy9Eb20vYWRkRXZlbnRMaXN0ZW5lclwiO1xuaW1wb3J0IHsgaXNTYW1lUG9pbnQsIHJlc3RvcmVGb2N1cywgbW9uaXRvclJlc2l6ZSB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgdXNlQnVmZmVyIGZyb20gJy4vaG9va3MvdXNlQnVmZmVyJztcblxuZnVuY3Rpb24gZ2V0RWxlbWVudChmdW5jKSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIG51bGw7XG4gIHJldHVybiBmdW5jKCk7XG59XG5cbmZ1bmN0aW9uIGdldFBvaW50KHBvaW50KSB7XG4gIGlmIChfdHlwZW9mKHBvaW50KSAhPT0gJ29iamVjdCcgfHwgIXBvaW50KSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHBvaW50O1xufVxuXG52YXIgQWxpZ24gPSBmdW5jdGlvbiBBbGlnbihfcmVmLCByZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIGRpc2FibGVkID0gX3JlZi5kaXNhYmxlZCxcbiAgICAgIHRhcmdldCA9IF9yZWYudGFyZ2V0LFxuICAgICAgYWxpZ24gPSBfcmVmLmFsaWduLFxuICAgICAgb25BbGlnbiA9IF9yZWYub25BbGlnbixcbiAgICAgIG1vbml0b3JXaW5kb3dSZXNpemUgPSBfcmVmLm1vbml0b3JXaW5kb3dSZXNpemUsXG4gICAgICBfcmVmJG1vbml0b3JCdWZmZXJUaW0gPSBfcmVmLm1vbml0b3JCdWZmZXJUaW1lLFxuICAgICAgbW9uaXRvckJ1ZmZlclRpbWUgPSBfcmVmJG1vbml0b3JCdWZmZXJUaW0gPT09IHZvaWQgMCA/IDAgOiBfcmVmJG1vbml0b3JCdWZmZXJUaW07XG4gIHZhciBjYWNoZVJlZiA9IFJlYWN0LnVzZVJlZih7fSk7XG4gIHZhciBub2RlUmVmID0gUmVhY3QudXNlUmVmKCk7XG4gIHZhciBjaGlsZE5vZGUgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTsgLy8gPT09PT09PT09PT09PT09PT09PT09IEFsaWduID09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gV2Ugc2F2ZSB0aGUgcHJvcHMgaGVyZSB0byBhdm9pZCBjbG9zdXJlIG1ha2VzIHByb3BzIG9vZFxuXG4gIHZhciBmb3JjZUFsaWduUHJvcHNSZWYgPSBSZWFjdC51c2VSZWYoe30pO1xuICBmb3JjZUFsaWduUHJvcHNSZWYuY3VycmVudC5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICBmb3JjZUFsaWduUHJvcHNSZWYuY3VycmVudC50YXJnZXQgPSB0YXJnZXQ7XG4gIGZvcmNlQWxpZ25Qcm9wc1JlZi5jdXJyZW50Lm9uQWxpZ24gPSBvbkFsaWduO1xuXG4gIHZhciBfdXNlQnVmZmVyID0gdXNlQnVmZmVyKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX2ZvcmNlQWxpZ25Qcm9wc1JlZiRjID0gZm9yY2VBbGlnblByb3BzUmVmLmN1cnJlbnQsXG4gICAgICAgIGxhdGVzdERpc2FibGVkID0gX2ZvcmNlQWxpZ25Qcm9wc1JlZiRjLmRpc2FibGVkLFxuICAgICAgICBsYXRlc3RUYXJnZXQgPSBfZm9yY2VBbGlnblByb3BzUmVmJGMudGFyZ2V0LFxuICAgICAgICBsYXRlc3RPbkFsaWduID0gX2ZvcmNlQWxpZ25Qcm9wc1JlZiRjLm9uQWxpZ247XG5cbiAgICBpZiAoIWxhdGVzdERpc2FibGVkICYmIGxhdGVzdFRhcmdldCkge1xuICAgICAgdmFyIHNvdXJjZSA9IG5vZGVSZWYuY3VycmVudDtcbiAgICAgIHZhciByZXN1bHQ7XG4gICAgICB2YXIgZWxlbWVudCA9IGdldEVsZW1lbnQobGF0ZXN0VGFyZ2V0KTtcbiAgICAgIHZhciBwb2ludCA9IGdldFBvaW50KGxhdGVzdFRhcmdldCk7XG4gICAgICBjYWNoZVJlZi5jdXJyZW50LmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgY2FjaGVSZWYuY3VycmVudC5wb2ludCA9IHBvaW50OyAvLyBJRSBsb3NlIGZvY3VzIGFmdGVyIGVsZW1lbnQgcmVhbGlnblxuICAgICAgLy8gV2Ugc2hvdWxkIHJlY29yZCBhY3RpdmVFbGVtZW50IGFuZCByZXN0b3JlIGxhdGVyXG5cbiAgICAgIHZhciBfZG9jdW1lbnQgPSBkb2N1bWVudCxcbiAgICAgICAgICBhY3RpdmVFbGVtZW50ID0gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7IC8vIFdlIG9ubHkgYWxpZ24gd2hlbiBlbGVtZW50IGlzIHZpc2libGVcblxuICAgICAgaWYgKGVsZW1lbnQgJiYgaXNWaXNpYmxlKGVsZW1lbnQpKSB7XG4gICAgICAgIHJlc3VsdCA9IGFsaWduRWxlbWVudChzb3VyY2UsIGVsZW1lbnQsIGFsaWduKTtcbiAgICAgIH0gZWxzZSBpZiAocG9pbnQpIHtcbiAgICAgICAgcmVzdWx0ID0gYWxpZ25Qb2ludChzb3VyY2UsIHBvaW50LCBhbGlnbik7XG4gICAgICB9XG5cbiAgICAgIHJlc3RvcmVGb2N1cyhhY3RpdmVFbGVtZW50LCBzb3VyY2UpO1xuXG4gICAgICBpZiAobGF0ZXN0T25BbGlnbiAmJiByZXN1bHQpIHtcbiAgICAgICAgbGF0ZXN0T25BbGlnbihzb3VyY2UsIHJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSwgbW9uaXRvckJ1ZmZlclRpbWUpLFxuICAgICAgX3VzZUJ1ZmZlcjIgPSBfc2xpY2VkVG9BcnJheShfdXNlQnVmZmVyLCAyKSxcbiAgICAgIF9mb3JjZUFsaWduID0gX3VzZUJ1ZmZlcjJbMF0sXG4gICAgICBjYW5jZWxGb3JjZUFsaWduID0gX3VzZUJ1ZmZlcjJbMV07IC8vID09PT09PT09PT09PT09PT09PT09PSBFZmZlY3QgPT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExpc3RlbiBmb3IgdGFyZ2V0IHVwZGF0ZWRcblxuXG4gIHZhciByZXNpemVNb25pdG9yID0gUmVhY3QudXNlUmVmKHtcbiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHt9XG4gIH0pOyAvLyBMaXN0ZW4gZm9yIHNvdXJjZSB1cGRhdGVkXG5cbiAgdmFyIHNvdXJjZVJlc2l6ZU1vbml0b3IgPSBSZWFjdC51c2VSZWYoe1xuICAgIGNhbmNlbDogZnVuY3Rpb24gY2FuY2VsKCkge31cbiAgfSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBnZXRFbGVtZW50KHRhcmdldCk7XG4gICAgdmFyIHBvaW50ID0gZ2V0UG9pbnQodGFyZ2V0KTtcblxuICAgIGlmIChub2RlUmVmLmN1cnJlbnQgIT09IHNvdXJjZVJlc2l6ZU1vbml0b3IuY3VycmVudC5lbGVtZW50KSB7XG4gICAgICBzb3VyY2VSZXNpemVNb25pdG9yLmN1cnJlbnQuY2FuY2VsKCk7XG4gICAgICBzb3VyY2VSZXNpemVNb25pdG9yLmN1cnJlbnQuZWxlbWVudCA9IG5vZGVSZWYuY3VycmVudDtcbiAgICAgIHNvdXJjZVJlc2l6ZU1vbml0b3IuY3VycmVudC5jYW5jZWwgPSBtb25pdG9yUmVzaXplKG5vZGVSZWYuY3VycmVudCwgX2ZvcmNlQWxpZ24pO1xuICAgIH1cblxuICAgIGlmIChjYWNoZVJlZi5jdXJyZW50LmVsZW1lbnQgIT09IGVsZW1lbnQgfHwgIWlzU2FtZVBvaW50KGNhY2hlUmVmLmN1cnJlbnQucG9pbnQsIHBvaW50KSkge1xuICAgICAgX2ZvcmNlQWxpZ24oKTsgLy8gQWRkIHJlc2l6ZSBvYnNlcnZlclxuXG5cbiAgICAgIGlmIChyZXNpemVNb25pdG9yLmN1cnJlbnQuZWxlbWVudCAhPT0gZWxlbWVudCkge1xuICAgICAgICByZXNpemVNb25pdG9yLmN1cnJlbnQuY2FuY2VsKCk7XG4gICAgICAgIHJlc2l6ZU1vbml0b3IuY3VycmVudC5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgcmVzaXplTW9uaXRvci5jdXJyZW50LmNhbmNlbCA9IG1vbml0b3JSZXNpemUoZWxlbWVudCwgX2ZvcmNlQWxpZ24pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7IC8vIExpc3RlbiBmb3IgZGlzYWJsZWQgY2hhbmdlXG5cbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBfZm9yY2VBbGlnbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYW5jZWxGb3JjZUFsaWduKCk7XG4gICAgfVxuICB9LCBbZGlzYWJsZWRdKTsgLy8gTGlzdGVuIGZvciB3aW5kb3cgcmVzaXplXG5cbiAgdmFyIHdpblJlc2l6ZVJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAobW9uaXRvcldpbmRvd1Jlc2l6ZSkge1xuICAgICAgaWYgKCF3aW5SZXNpemVSZWYuY3VycmVudCkge1xuICAgICAgICB3aW5SZXNpemVSZWYuY3VycmVudCA9IGFkZEV2ZW50TGlzdGVuZXIod2luZG93LCAncmVzaXplJywgX2ZvcmNlQWxpZ24pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAod2luUmVzaXplUmVmLmN1cnJlbnQpIHtcbiAgICAgIHdpblJlc2l6ZVJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgd2luUmVzaXplUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSwgW21vbml0b3JXaW5kb3dSZXNpemVdKTsgLy8gQ2xlYXIgYWxsIGlmIHVubW91bnRcblxuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXNpemVNb25pdG9yLmN1cnJlbnQuY2FuY2VsKCk7XG4gICAgICBzb3VyY2VSZXNpemVNb25pdG9yLmN1cnJlbnQuY2FuY2VsKCk7XG4gICAgICBpZiAod2luUmVzaXplUmVmLmN1cnJlbnQpIHdpblJlc2l6ZVJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgY2FuY2VsRm9yY2VBbGlnbigpO1xuICAgIH07XG4gIH0sIFtdKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PSBSZWYgPT09PT09PT09PT09PT09PT09PT09PT1cblxuICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JjZUFsaWduOiBmdW5jdGlvbiBmb3JjZUFsaWduKCkge1xuICAgICAgICByZXR1cm4gX2ZvcmNlQWxpZ24odHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfSk7IC8vID09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09XG5cbiAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkTm9kZSkpIHtcbiAgICBjaGlsZE5vZGUgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGROb2RlLCB7XG4gICAgICByZWY6IGNvbXBvc2VSZWYoY2hpbGROb2RlLnJlZiwgbm9kZVJlZilcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZE5vZGU7XG59O1xuXG52YXIgUmVmQWxpZ24gPSBSZWFjdC5mb3J3YXJkUmVmKEFsaWduKTtcblJlZkFsaWduLmRpc3BsYXlOYW1lID0gJ0FsaWduJztcbmV4cG9ydCBkZWZhdWx0IFJlZkFsaWduOyIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gKGNhbGxiYWNrLCBidWZmZXIpIHtcbiAgdmFyIGNhbGxlZFJlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gIHZhciB0aW1lb3V0UmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuXG4gIGZ1bmN0aW9uIGNhbmNlbFRyaWdnZXIoKSB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0UmVmLmN1cnJlbnQpO1xuICB9XG5cbiAgZnVuY3Rpb24gdHJpZ2dlcihmb3JjZSkge1xuICAgIGlmICghY2FsbGVkUmVmLmN1cnJlbnQgfHwgZm9yY2UgPT09IHRydWUpIHtcbiAgICAgIGlmIChjYWxsYmFjaygpID09PSBmYWxzZSkge1xuICAgICAgICAvLyBOb3QgZGVsYXkgc2luY2UgY2FsbGJhY2sgY2FuY2VsbGVkIHNlbGZcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjYWxsZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjYW5jZWxUcmlnZ2VyKCk7XG4gICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNhbGxlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICB9LCBidWZmZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYW5jZWxUcmlnZ2VyKCk7XG4gICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNhbGxlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIHRyaWdnZXIoKTtcbiAgICAgIH0sIGJ1ZmZlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFt0cmlnZ2VyLCBmdW5jdGlvbiAoKSB7XG4gICAgY2FsbGVkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICBjYW5jZWxUcmlnZ2VyKCk7XG4gIH1dO1xufSk7IiwiLy8gZXhwb3J0IHRoaXMgcGFja2FnZSdzIGFwaVxuaW1wb3J0IEFsaWduIGZyb20gJy4vQWxpZ24nO1xuZXhwb3J0IGRlZmF1bHQgQWxpZ247IiwiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBrZXksIGFyZykge1xuICB0cnkge1xuICAgIHZhciBpbmZvID0gZ2VuW2tleV0oYXJnKTtcbiAgICB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlamVjdChlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGluZm8uZG9uZSkge1xuICAgIHJlc29sdmUodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbihfbmV4dCwgX3Rocm93KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXN5bmNUb0dlbmVyYXRvcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBzZWxmID0gdGhpcyxcbiAgICAgICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGdlbiA9IGZuLmFwcGx5KHNlbGYsIGFyZ3MpO1xuXG4gICAgICBmdW5jdGlvbiBfbmV4dCh2YWx1ZSkge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwibmV4dFwiLCB2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIF90aHJvdyhlcnIpIHtcbiAgICAgICAgYXN5bmNHZW5lcmF0b3JTdGVwKGdlbiwgcmVzb2x2ZSwgcmVqZWN0LCBfbmV4dCwgX3Rocm93LCBcInRocm93XCIsIGVycik7XG4gICAgICB9XG5cbiAgICAgIF9uZXh0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG59IiwiaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSBcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCI7XG5pbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3JcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHJhZiBmcm9tIFwicmMtdXRpbC9lcy9yYWZcIjtcbnZhciBTdGF0dXNRdWV1ZSA9IFsnbWVhc3VyZScsICdhbGlnbicsIG51bGwsICdtb3Rpb24nXTtcbmV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAodmlzaWJsZSwgZG9NZWFzdXJlKSB7XG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZShudWxsKSxcbiAgICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgICAgc3RhdHVzID0gX3VzZVN0YXRlMlswXSxcbiAgICAgIHNldEludGVybmFsU3RhdHVzID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgcmFmUmVmID0gdXNlUmVmKCk7XG4gIHZhciBkZXN0cm95UmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBmdW5jdGlvbiBzZXRTdGF0dXMobmV4dFN0YXR1cykge1xuICAgIGlmICghZGVzdHJveVJlZi5jdXJyZW50KSB7XG4gICAgICBzZXRJbnRlcm5hbFN0YXR1cyhuZXh0U3RhdHVzKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjYW5jZWxSYWYoKSB7XG4gICAgcmFmLmNhbmNlbChyYWZSZWYuY3VycmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBnb05leHRTdGF0dXMoY2FsbGJhY2spIHtcbiAgICBjYW5jZWxSYWYoKTtcbiAgICByYWZSZWYuY3VycmVudCA9IHJhZihmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBPbmx5IGFsaWduIHNob3VsZCBiZSBtYW51YWxseSB0cmlnZ2VyXG4gICAgICBzZXRTdGF0dXMoZnVuY3Rpb24gKHByZXYpIHtcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICBjYXNlICdhbGlnbic6XG4gICAgICAgICAgICByZXR1cm4gJ21vdGlvbic7XG5cbiAgICAgICAgICBjYXNlICdtb3Rpb24nOlxuICAgICAgICAgICAgcmV0dXJuICdzdGFibGUnO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfSk7XG4gICAgICBjYWxsYmFjayA9PT0gbnVsbCB8fCBjYWxsYmFjayA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2FsbGJhY2soKTtcbiAgICB9KTtcbiAgfSAvLyBJbml0IHN0YXR1c1xuXG5cbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRTdGF0dXMoJ21lYXN1cmUnKTtcbiAgfSwgW3Zpc2libGVdKTsgLy8gR28gbmV4dCBzdGF0dXNcblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdtZWFzdXJlJzpcbiAgICAgICAgZG9NZWFzdXJlKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgIH1cblxuICAgIGlmIChzdGF0dXMpIHtcbiAgICAgIHJhZlJlZi5jdXJyZW50ID0gcmFmKCAvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHtcbiAgICAgICAgdmFyIGluZGV4LCBuZXh0U3RhdHVzO1xuICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgICAgd2hpbGUgKDEpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIGluZGV4ID0gU3RhdHVzUXVldWUuaW5kZXhPZihzdGF0dXMpO1xuICAgICAgICAgICAgICAgIG5leHRTdGF0dXMgPSBTdGF0dXNRdWV1ZVtpbmRleCArIDFdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5leHRTdGF0dXMgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICBzZXRTdGF0dXMobmV4dFN0YXR1cyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCBfY2FsbGVlKTtcbiAgICAgIH0pKSk7XG4gICAgfVxuICB9LCBbc3RhdHVzXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlc3Ryb3lSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICBjYW5jZWxSYWYoKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHJldHVybiBbc3RhdHVzLCBnb05leHRTdGF0dXNdO1xufSk7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEFsaWduIGZyb20gJ3JjLWFsaWduJztcbmltcG9ydCBDU1NNb3Rpb24gZnJvbSAncmMtbW90aW9uJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVzZVZpc2libGVTdGF0dXMgZnJvbSAnLi91c2VWaXNpYmxlU3RhdHVzJztcbmltcG9ydCB7IGdldE1vdGlvbiB9IGZyb20gJy4uL3V0aWxzL2xlZ2FjeVV0aWwnO1xuaW1wb3J0IHVzZVN0cmV0Y2hTdHlsZSBmcm9tICcuL3VzZVN0cmV0Y2hTdHlsZSc7XG52YXIgUG9wdXBJbm5lciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciB2aXNpYmxlID0gcHJvcHMudmlzaWJsZSxcbiAgICAgIHByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIHN0eWxlID0gcHJvcHMuc3R5bGUsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgekluZGV4ID0gcHJvcHMuekluZGV4LFxuICAgICAgc3RyZXRjaCA9IHByb3BzLnN0cmV0Y2gsXG4gICAgICBkZXN0cm95UG9wdXBPbkhpZGUgPSBwcm9wcy5kZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICBmb3JjZVJlbmRlciA9IHByb3BzLmZvcmNlUmVuZGVyLFxuICAgICAgYWxpZ24gPSBwcm9wcy5hbGlnbixcbiAgICAgIHBvaW50ID0gcHJvcHMucG9pbnQsXG4gICAgICBnZXRSb290RG9tTm9kZSA9IHByb3BzLmdldFJvb3REb21Ob2RlLFxuICAgICAgZ2V0Q2xhc3NOYW1lRnJvbUFsaWduID0gcHJvcHMuZ2V0Q2xhc3NOYW1lRnJvbUFsaWduLFxuICAgICAgb25BbGlnbiA9IHByb3BzLm9uQWxpZ24sXG4gICAgICBvbk1vdXNlRW50ZXIgPSBwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTGVhdmUgPSBwcm9wcy5vbk1vdXNlTGVhdmUsXG4gICAgICBvbk1vdXNlRG93biA9IHByb3BzLm9uTW91c2VEb3duLFxuICAgICAgb25Ub3VjaFN0YXJ0ID0gcHJvcHMub25Ub3VjaFN0YXJ0O1xuICB2YXIgYWxpZ25SZWYgPSB1c2VSZWYoKTtcbiAgdmFyIGVsZW1lbnRSZWYgPSB1c2VSZWYoKTtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoKSxcbiAgICAgIF91c2VTdGF0ZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUsIDIpLFxuICAgICAgYWxpZ25lZENsYXNzTmFtZSA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRBbGlnbmVkQ2xhc3NOYW1lID0gX3VzZVN0YXRlMlsxXTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT0gTWVhc3VyZSA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBfdXNlU3RyZXRjaFN0eWxlID0gdXNlU3RyZXRjaFN0eWxlKHN0cmV0Y2gpLFxuICAgICAgX3VzZVN0cmV0Y2hTdHlsZTIgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RyZXRjaFN0eWxlLCAyKSxcbiAgICAgIHN0cmV0Y2hTdHlsZSA9IF91c2VTdHJldGNoU3R5bGUyWzBdLFxuICAgICAgbWVhc3VyZVN0cmV0Y2hTdHlsZSA9IF91c2VTdHJldGNoU3R5bGUyWzFdO1xuXG4gIGZ1bmN0aW9uIGRvTWVhc3VyZSgpIHtcbiAgICBpZiAoc3RyZXRjaCkge1xuICAgICAgbWVhc3VyZVN0cmV0Y2hTdHlsZShnZXRSb290RG9tTm9kZSgpKTtcbiAgICB9XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFN0YXR1cyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBfdXNlVmlzaWJsZVN0YXR1cyA9IHVzZVZpc2libGVTdGF0dXModmlzaWJsZSwgZG9NZWFzdXJlKSxcbiAgICAgIF91c2VWaXNpYmxlU3RhdHVzMiA9IF9zbGljZWRUb0FycmF5KF91c2VWaXNpYmxlU3RhdHVzLCAyKSxcbiAgICAgIHN0YXR1cyA9IF91c2VWaXNpYmxlU3RhdHVzMlswXSxcbiAgICAgIGdvTmV4dFN0YXR1cyA9IF91c2VWaXNpYmxlU3RhdHVzMlsxXTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IEFsaWducyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBwcmVwYXJlUmVzb2x2ZVJlZiA9IHVzZVJlZigpOyAvLyBgdGFyZ2V0YCBvbiBgcmMtYWxpZ25gIGNhbiBhY2NlcHQgYXMgYSBmdW5jdGlvbiB0byBnZXQgdGhlIGJpbmQgZWxlbWVudCBvciBhIHBvaW50LlxuICAvLyByZWY6IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3JjLWFsaWduXG5cbiAgZnVuY3Rpb24gZ2V0QWxpZ25UYXJnZXQoKSB7XG4gICAgaWYgKHBvaW50KSB7XG4gICAgICByZXR1cm4gcG9pbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldFJvb3REb21Ob2RlO1xuICB9XG5cbiAgZnVuY3Rpb24gZm9yY2VBbGlnbigpIHtcbiAgICB2YXIgX2FsaWduUmVmJGN1cnJlbnQ7XG5cbiAgICAoX2FsaWduUmVmJGN1cnJlbnQgPSBhbGlnblJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYWxpZ25SZWYkY3VycmVudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FsaWduUmVmJGN1cnJlbnQuZm9yY2VBbGlnbigpO1xuICB9XG5cbiAgZnVuY3Rpb24gb25JbnRlcm5hbEFsaWduKHBvcHVwRG9tTm9kZSwgbWF0Y2hBbGlnbikge1xuICAgIGlmIChzdGF0dXMgPT09ICdhbGlnbicpIHtcbiAgICAgIHZhciBuZXh0QWxpZ25lZENsYXNzTmFtZSA9IGdldENsYXNzTmFtZUZyb21BbGlnbihtYXRjaEFsaWduKTtcbiAgICAgIHNldEFsaWduZWRDbGFzc05hbWUobmV4dEFsaWduZWRDbGFzc05hbWUpOyAvLyBSZXBlYXQgdW50aWwgbm90IG1vcmUgYWxpZ24gbmVlZGVkXG5cbiAgICAgIGlmIChhbGlnbmVkQ2xhc3NOYW1lICE9PSBuZXh0QWxpZ25lZENsYXNzTmFtZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBmb3JjZUFsaWduKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ29OZXh0U3RhdHVzKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgX3ByZXBhcmVSZXNvbHZlUmVmJGN1O1xuXG4gICAgICAgICAgKF9wcmVwYXJlUmVzb2x2ZVJlZiRjdSA9IHByZXBhcmVSZXNvbHZlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9wcmVwYXJlUmVzb2x2ZVJlZiRjdSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ByZXBhcmVSZXNvbHZlUmVmJGN1LmNhbGwocHJlcGFyZVJlc29sdmVSZWYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgb25BbGlnbiA9PT0gbnVsbCB8fCBvbkFsaWduID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkFsaWduKHBvcHVwRG9tTm9kZSwgbWF0Y2hBbGlnbik7XG4gICAgfVxuICB9IC8vID09PT09PT09PT09PT09PT09PT09PT09PSBNb3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICB2YXIgbW90aW9uID0gX29iamVjdFNwcmVhZCh7fSwgZ2V0TW90aW9uKHByb3BzKSk7XG5cbiAgWydvbkFwcGVhckVuZCcsICdvbkVudGVyRW5kJywgJ29uTGVhdmVFbmQnXS5mb3JFYWNoKGZ1bmN0aW9uIChldmVudE5hbWUpIHtcbiAgICB2YXIgb3JpZ2luSGFuZGxlciA9IG1vdGlvbltldmVudE5hbWVdO1xuXG4gICAgbW90aW9uW2V2ZW50TmFtZV0gPSBmdW5jdGlvbiAoZWxlbWVudCwgZXZlbnQpIHtcbiAgICAgIGdvTmV4dFN0YXR1cygpO1xuICAgICAgcmV0dXJuIG9yaWdpbkhhbmRsZXIgPT09IG51bGwgfHwgb3JpZ2luSGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3JpZ2luSGFuZGxlcihlbGVtZW50LCBldmVudCk7XG4gICAgfTtcbiAgfSk7XG5cbiAgZnVuY3Rpb24gb25TaG93UHJlcGFyZSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIHByZXBhcmVSZXNvbHZlUmVmLmN1cnJlbnQgPSByZXNvbHZlO1xuICAgIH0pO1xuICB9IC8vIEdvIHRvIHN0YWJsZSBkaXJlY3RseSB3aGVuIG1vdGlvbiBub3QgcHJvdmlkZWRcblxuXG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFtb3Rpb24ubW90aW9uTmFtZSAmJiBzdGF0dXMgPT09ICdtb3Rpb24nKSB7XG4gICAgICBnb05leHRTdGF0dXMoKTtcbiAgICB9XG4gIH0sIFttb3Rpb24ubW90aW9uTmFtZSwgc3RhdHVzXSk7IC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9yY2VBbGlnbjogZm9yY2VBbGlnbixcbiAgICAgIGdldEVsZW1lbnQ6IGZ1bmN0aW9uIGdldEVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50UmVmLmN1cnJlbnQ7XG4gICAgICB9XG4gICAgfTtcbiAgfSk7IC8vID09PT09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIG1lcmdlZFN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHJldGNoU3R5bGUpLCB7fSwge1xuICAgIHpJbmRleDogekluZGV4LFxuICAgIG9wYWNpdHk6IHN0YXR1cyA9PT0gJ21vdGlvbicgfHwgc3RhdHVzID09PSAnc3RhYmxlJyB8fCAhdmlzaWJsZSA/IHVuZGVmaW5lZCA6IDAsXG4gICAgcG9pbnRlckV2ZW50czogc3RhdHVzID09PSAnc3RhYmxlJyA/IHVuZGVmaW5lZCA6ICdub25lJ1xuICB9LCBzdHlsZSk7IC8vIEFsaWduIHN0YXR1c1xuXG5cbiAgdmFyIGFsaWduRGlzYWJsZWQgPSB0cnVlO1xuXG4gIGlmICgoYWxpZ24gPT09IG51bGwgfHwgYWxpZ24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFsaWduLnBvaW50cykgJiYgKHN0YXR1cyA9PT0gJ2FsaWduJyB8fCBzdGF0dXMgPT09ICdzdGFibGUnKSkge1xuICAgIGFsaWduRGlzYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBjaGlsZE5vZGUgPSBjaGlsZHJlbjsgLy8gV3JhcHBlciB3aGVuIG11bHRpcGxlIGNoaWxkcmVuXG5cbiAgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KGNoaWxkcmVuKSA+IDEpIHtcbiAgICBjaGlsZE5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY29udGVudFwiKVxuICAgIH0sIGNoaWxkcmVuKTtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDU1NNb3Rpb24sIF9leHRlbmRzKHtcbiAgICB2aXNpYmxlOiB2aXNpYmxlLFxuICAgIHJlZjogZWxlbWVudFJlZixcbiAgICBsZWF2ZWRDbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaGlkZGVuXCIpXG4gIH0sIG1vdGlvbiwge1xuICAgIG9uQXBwZWFyUHJlcGFyZTogb25TaG93UHJlcGFyZSxcbiAgICBvbkVudGVyUHJlcGFyZTogb25TaG93UHJlcGFyZSxcbiAgICByZW1vdmVPbkxlYXZlOiBkZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgZm9yY2VSZW5kZXI6IGZvcmNlUmVuZGVyXG4gIH0pLCBmdW5jdGlvbiAoX3JlZiwgbW90aW9uUmVmKSB7XG4gICAgdmFyIG1vdGlvbkNsYXNzTmFtZSA9IF9yZWYuY2xhc3NOYW1lLFxuICAgICAgICBtb3Rpb25TdHlsZSA9IF9yZWYuc3R5bGU7XG4gICAgdmFyIG1lcmdlZENsYXNzTmFtZSA9IGNsYXNzTmFtZXMocHJlZml4Q2xzLCBjbGFzc05hbWUsIGFsaWduZWRDbGFzc05hbWUsIG1vdGlvbkNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEFsaWduLCB7XG4gICAgICB0YXJnZXQ6IGdldEFsaWduVGFyZ2V0KCksXG4gICAgICBrZXk6IFwicG9wdXBcIixcbiAgICAgIHJlZjogYWxpZ25SZWYsXG4gICAgICBtb25pdG9yV2luZG93UmVzaXplOiB0cnVlLFxuICAgICAgZGlzYWJsZWQ6IGFsaWduRGlzYWJsZWQsXG4gICAgICBhbGlnbjogYWxpZ24sXG4gICAgICBvbkFsaWduOiBvbkludGVybmFsQWxpZ25cbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICByZWY6IG1vdGlvblJlZixcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VkQ2xhc3NOYW1lLFxuICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTGVhdmU6IG9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duQ2FwdHVyZTogb25Nb3VzZURvd24sXG4gICAgICBvblRvdWNoU3RhcnRDYXB0dXJlOiBvblRvdWNoU3RhcnQsXG4gICAgICBzdHlsZTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtb3Rpb25TdHlsZSksIG1lcmdlZFN0eWxlKVxuICAgIH0sIGNoaWxkTm9kZSkpO1xuICB9KTtcbn0pO1xuUG9wdXBJbm5lci5kaXNwbGF5TmFtZSA9ICdQb3B1cElubmVyJztcbmV4cG9ydCBkZWZhdWx0IFBvcHVwSW5uZXI7IiwiaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5leHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gKHN0cmV0Y2gpIHtcbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICB3aWR0aDogMCxcbiAgICBoZWlnaHQ6IDBcbiAgfSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICAgIHRhcmdldFNpemUgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0VGFyZ2V0U2l6ZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgZnVuY3Rpb24gbWVhc3VyZVN0cmV0Y2goZWxlbWVudCkge1xuICAgIHNldFRhcmdldFNpemUoe1xuICAgICAgd2lkdGg6IGVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBoZWlnaHQ6IGVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgfSk7XG4gIH0gLy8gTWVyZ2Ugc3RyZXRjaCBzdHlsZVxuXG5cbiAgdmFyIHN0eWxlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNpemVTdHlsZSA9IHt9O1xuXG4gICAgaWYgKHN0cmV0Y2gpIHtcbiAgICAgIHZhciB3aWR0aCA9IHRhcmdldFNpemUud2lkdGgsXG4gICAgICAgICAgaGVpZ2h0ID0gdGFyZ2V0U2l6ZS5oZWlnaHQ7IC8vIFN0cmV0Y2ggd2l0aCB0YXJnZXRcblxuICAgICAgaWYgKHN0cmV0Y2guaW5kZXhPZignaGVpZ2h0JykgIT09IC0xICYmIGhlaWdodCkge1xuICAgICAgICBzaXplU3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgfSBlbHNlIGlmIChzdHJldGNoLmluZGV4T2YoJ21pbkhlaWdodCcpICE9PSAtMSAmJiBoZWlnaHQpIHtcbiAgICAgICAgc2l6ZVN0eWxlLm1pbkhlaWdodCA9IGhlaWdodDtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0cmV0Y2guaW5kZXhPZignd2lkdGgnKSAhPT0gLTEgJiYgd2lkdGgpIHtcbiAgICAgICAgc2l6ZVN0eWxlLndpZHRoID0gd2lkdGg7XG4gICAgICB9IGVsc2UgaWYgKHN0cmV0Y2guaW5kZXhPZignbWluV2lkdGgnKSAhPT0gLTEgJiYgd2lkdGgpIHtcbiAgICAgICAgc2l6ZVN0eWxlLm1pbldpZHRoID0gd2lkdGg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpemVTdHlsZTtcbiAgfSwgW3N0cmV0Y2gsIHRhcmdldFNpemVdKTtcbiAgcmV0dXJuIFtzdHlsZSwgbWVhc3VyZVN0cmV0Y2hdO1xufSk7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IENTU01vdGlvbiBmcm9tICdyYy1tb3Rpb24nO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG52YXIgTW9iaWxlUG9wdXBJbm5lciA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICB2aXNpYmxlID0gcHJvcHMudmlzaWJsZSxcbiAgICAgIHpJbmRleCA9IHByb3BzLnpJbmRleCxcbiAgICAgIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICBfcHJvcHMkbW9iaWxlID0gcHJvcHMubW9iaWxlO1xuICBfcHJvcHMkbW9iaWxlID0gX3Byb3BzJG1vYmlsZSA9PT0gdm9pZCAwID8ge30gOiBfcHJvcHMkbW9iaWxlO1xuICB2YXIgcG9wdXBDbGFzc05hbWUgPSBfcHJvcHMkbW9iaWxlLnBvcHVwQ2xhc3NOYW1lLFxuICAgICAgcG9wdXBTdHlsZSA9IF9wcm9wcyRtb2JpbGUucG9wdXBTdHlsZSxcbiAgICAgIF9wcm9wcyRtb2JpbGUkcG9wdXBNbyA9IF9wcm9wcyRtb2JpbGUucG9wdXBNb3Rpb24sXG4gICAgICBwb3B1cE1vdGlvbiA9IF9wcm9wcyRtb2JpbGUkcG9wdXBNbyA9PT0gdm9pZCAwID8ge30gOiBfcHJvcHMkbW9iaWxlJHBvcHVwTW8sXG4gICAgICBwb3B1cFJlbmRlciA9IF9wcm9wcyRtb2JpbGUucG9wdXBSZW5kZXI7XG4gIHZhciBlbGVtZW50UmVmID0gUmVhY3QudXNlUmVmKCk7IC8vID09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmcyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9yY2VBbGlnbjogZnVuY3Rpb24gZm9yY2VBbGlnbigpIHt9LFxuICAgICAgZ2V0RWxlbWVudDogZnVuY3Rpb24gZ2V0RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgIH1cbiAgICB9O1xuICB9KTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgbWVyZ2VkU3R5bGUgPSBfb2JqZWN0U3ByZWFkKHtcbiAgICB6SW5kZXg6IHpJbmRleFxuICB9LCBwb3B1cFN0eWxlKTtcblxuICB2YXIgY2hpbGROb2RlID0gY2hpbGRyZW47IC8vIFdyYXBwZXIgd2hlbiBtdWx0aXBsZSBjaGlsZHJlblxuXG4gIGlmIChSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPiAxKSB7XG4gICAgY2hpbGROb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNvbnRlbnRcIilcbiAgICB9LCBjaGlsZHJlbik7XG4gIH0gLy8gTW9iaWxlIHN1cHBvcnQgYWRkaXRpb25hbCByZW5kZXJcblxuXG4gIGlmIChwb3B1cFJlbmRlcikge1xuICAgIGNoaWxkTm9kZSA9IHBvcHVwUmVuZGVyKGNoaWxkTm9kZSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ1NTTW90aW9uLCBfZXh0ZW5kcyh7XG4gICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICByZWY6IGVsZW1lbnRSZWYsXG4gICAgcmVtb3ZlT25MZWF2ZTogdHJ1ZVxuICB9LCBwb3B1cE1vdGlvbiksIGZ1bmN0aW9uIChfcmVmLCBtb3Rpb25SZWYpIHtcbiAgICB2YXIgbW90aW9uQ2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgICAgIG1vdGlvblN0eWxlID0gX3JlZi5zdHlsZTtcbiAgICB2YXIgbWVyZ2VkQ2xhc3NOYW1lID0gY2xhc3NOYW1lcyhwcmVmaXhDbHMsIHBvcHVwQ2xhc3NOYW1lLCBtb3Rpb25DbGFzc05hbWUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICByZWY6IG1vdGlvblJlZixcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VkQ2xhc3NOYW1lLFxuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgbW90aW9uU3R5bGUpLCBtZXJnZWRTdHlsZSlcbiAgICB9LCBjaGlsZE5vZGUpO1xuICB9KTtcbn0pO1xuTW9iaWxlUG9wdXBJbm5lci5kaXNwbGF5TmFtZSA9ICdNb2JpbGVQb3B1cElubmVyJztcbmV4cG9ydCBkZWZhdWx0IE1vYmlsZVBvcHVwSW5uZXI7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc01vYmlsZSBmcm9tIFwicmMtdXRpbC9lcy9pc01vYmlsZVwiO1xuaW1wb3J0IE1hc2sgZnJvbSAnLi9NYXNrJztcbmltcG9ydCBQb3B1cElubmVyIGZyb20gJy4vUG9wdXBJbm5lcic7XG5pbXBvcnQgTW9iaWxlUG9wdXBJbm5lciBmcm9tICcuL01vYmlsZVBvcHVwSW5uZXInO1xudmFyIFBvcHVwID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKF9yZWYsIHJlZikge1xuICB2YXIgdmlzaWJsZSA9IF9yZWYudmlzaWJsZSxcbiAgICAgIG1vYmlsZSA9IF9yZWYubW9iaWxlLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZiwgW1widmlzaWJsZVwiLCBcIm1vYmlsZVwiXSk7XG5cbiAgdmFyIF91c2VTdGF0ZSA9IHVzZVN0YXRlKHZpc2libGUpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICBpbm5lclZpc2libGUgPSBfdXNlU3RhdGUyWzBdLFxuICAgICAgc2VySW5uZXJWaXNpYmxlID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgX3VzZVN0YXRlMyA9IHVzZVN0YXRlKGZhbHNlKSxcbiAgICAgIF91c2VTdGF0ZTQgPSBfc2xpY2VkVG9BcnJheShfdXNlU3RhdGUzLCAyKSxcbiAgICAgIGluTW9iaWxlID0gX3VzZVN0YXRlNFswXSxcbiAgICAgIHNldEluTW9iaWxlID0gX3VzZVN0YXRlNFsxXTtcblxuICB2YXIgY2xvbmVQcm9wcyA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCB7fSwge1xuICAgIHZpc2libGU6IGlubmVyVmlzaWJsZVxuICB9KTsgLy8gV2UgY2hlY2sgbW9iaWxlIGluIHZpc2libGUgY2hhbmdlZCBoZXJlLlxuICAvLyBBbmQgdGhpcyBhbHNvIGRlbGF5IHNldCBgaW5uZXJWaXNpYmxlYCB0byBhdm9pZCBwb3B1cCBjb21wb25lbnQgcmVuZGVyIGZsYXNoXG5cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHNlcklubmVyVmlzaWJsZSh2aXNpYmxlKTtcblxuICAgIGlmICh2aXNpYmxlICYmIG1vYmlsZSkge1xuICAgICAgc2V0SW5Nb2JpbGUoaXNNb2JpbGUoKSk7XG4gICAgfVxuICB9LCBbdmlzaWJsZSwgbW9iaWxlXSk7XG4gIHZhciBwb3B1cE5vZGUgPSBpbk1vYmlsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1vYmlsZVBvcHVwSW5uZXIsIF9leHRlbmRzKHt9LCBjbG9uZVByb3BzLCB7XG4gICAgbW9iaWxlOiBtb2JpbGUsXG4gICAgcmVmOiByZWZcbiAgfSkpIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUG9wdXBJbm5lciwgX2V4dGVuZHMoe30sIGNsb25lUHJvcHMsIHtcbiAgICByZWY6IHJlZlxuICB9KSk7IC8vIFdlIGNhbiB1c2UgZnJhZ21lbnQgZGlyZWN0bHkgYnV0IHRoaXMgbWF5IGZhaWxlZCBzb21lIHNlbGVjdG9yIHVzYWdlLiBLZWVwIGFzIG9yaWdpbiBsb2dpY1xuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNYXNrLCBjbG9uZVByb3BzKSwgcG9wdXBOb2RlKTtcbn0pO1xuUG9wdXAuZGlzcGxheU5hbWUgPSAnUG9wdXAnO1xuZXhwb3J0IGRlZmF1bHQgUG9wdXA7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFRyaWdnZXJDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBUcmlnZ2VyQ29udGV4dDsiLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgcmFmIGZyb20gXCJyYy11dGlsL2VzL3JhZlwiO1xuaW1wb3J0IGNvbnRhaW5zIGZyb20gXCJyYy11dGlsL2VzL0RvbS9jb250YWluc1wiO1xuaW1wb3J0IGZpbmRET01Ob2RlIGZyb20gXCJyYy11dGlsL2VzL0RvbS9maW5kRE9NTm9kZVwiO1xuaW1wb3J0IHsgY29tcG9zZVJlZiwgc3VwcG9ydFJlZiB9IGZyb20gXCJyYy11dGlsL2VzL3JlZlwiO1xuaW1wb3J0IGFkZEV2ZW50TGlzdGVuZXIgZnJvbSBcInJjLXV0aWwvZXMvRG9tL2FkZEV2ZW50TGlzdGVuZXJcIjtcbmltcG9ydCBQb3J0YWwgZnJvbSBcInJjLXV0aWwvZXMvUG9ydGFsXCI7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGdldEFsaWduRnJvbVBsYWNlbWVudCwgZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZSB9IGZyb20gJy4vdXRpbHMvYWxpZ25VdGlsJztcbmltcG9ydCBQb3B1cCBmcm9tICcuL1BvcHVwJztcbmltcG9ydCBUcmlnZ2VyQ29udGV4dCBmcm9tICcuL2NvbnRleHQnO1xuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gcmV0dXJuRW1wdHlTdHJpbmcoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gcmV0dXJuRG9jdW1lbnQoZWxlbWVudCkge1xuICBpZiAoZWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gIH1cblxuICByZXR1cm4gd2luZG93LmRvY3VtZW50O1xufVxuXG52YXIgQUxMX0hBTkRMRVJTID0gWydvbkNsaWNrJywgJ29uTW91c2VEb3duJywgJ29uVG91Y2hTdGFydCcsICdvbk1vdXNlRW50ZXInLCAnb25Nb3VzZUxlYXZlJywgJ29uRm9jdXMnLCAnb25CbHVyJywgJ29uQ29udGV4dE1lbnUnXTtcbi8qKlxuICogSW50ZXJuYWwgdXNhZ2UuIERvIG5vdCB1c2UgaW4geW91ciBjb2RlIHNpbmNlIHRoaXMgd2lsbCBiZSByZW1vdmVkLlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRyaWdnZXIoUG9ydGFsQ29tcG9uZW50KSB7XG4gIHZhciBUcmlnZ2VyID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFRyaWdnZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihUcmlnZ2VyKTtcblxuICAgIGZ1bmN0aW9uIFRyaWdnZXIocHJvcHMpIHtcbiAgICAgIHZhciBfdGhpcztcblxuICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyaWdnZXIpO1xuXG4gICAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAgIF90aGlzLnBvcHVwUmVmID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZVJlZigpO1xuICAgICAgX3RoaXMudHJpZ2dlclJlZiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVSZWYoKTtcblxuICAgICAgX3RoaXMub25Nb3VzZUVudGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgdmFyIG1vdXNlRW50ZXJEZWxheSA9IF90aGlzLnByb3BzLm1vdXNlRW50ZXJEZWxheTtcblxuICAgICAgICBfdGhpcy5maXJlRXZlbnRzKCdvbk1vdXNlRW50ZXInLCBlKTtcblxuICAgICAgICBfdGhpcy5kZWxheVNldFBvcHVwVmlzaWJsZSh0cnVlLCBtb3VzZUVudGVyRGVsYXksIG1vdXNlRW50ZXJEZWxheSA/IG51bGwgOiBlKTtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLm9uTW91c2VNb3ZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgX3RoaXMuZmlyZUV2ZW50cygnb25Nb3VzZU1vdmUnLCBlKTtcblxuICAgICAgICBfdGhpcy5zZXRQb2ludChlKTtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLm9uTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF90aGlzLmZpcmVFdmVudHMoJ29uTW91c2VMZWF2ZScsIGUpO1xuXG4gICAgICAgIF90aGlzLmRlbGF5U2V0UG9wdXBWaXNpYmxlKGZhbHNlLCBfdGhpcy5wcm9wcy5tb3VzZUxlYXZlRGVsYXkpO1xuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Qb3B1cE1vdXNlRW50ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmNsZWFyRGVsYXlUaW1lcigpO1xuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Qb3B1cE1vdXNlTGVhdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICB2YXIgX3RoaXMkcG9wdXBSZWYkY3VycmVuO1xuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdHJpZ2dlci9wdWxsLzEzXG4gICAgICAgIC8vIHJlYWN0IGJ1Zz9cbiAgICAgICAgaWYgKGUucmVsYXRlZFRhcmdldCAmJiAhZS5yZWxhdGVkVGFyZ2V0LnNldFRpbWVvdXQgJiYgY29udGFpbnMoKF90aGlzJHBvcHVwUmVmJGN1cnJlbiA9IF90aGlzLnBvcHVwUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF90aGlzJHBvcHVwUmVmJGN1cnJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcG9wdXBSZWYkY3VycmVuLmdldEVsZW1lbnQoKSwgZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzLmRlbGF5U2V0UG9wdXBWaXNpYmxlKGZhbHNlLCBfdGhpcy5wcm9wcy5tb3VzZUxlYXZlRGVsYXkpO1xuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Gb2N1cyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF90aGlzLmZpcmVFdmVudHMoJ29uRm9jdXMnLCBlKTsgLy8gaW5jYXNlIGZvY3VzaW4gYW5kIGZvY3Vzb3V0XG5cblxuICAgICAgICBfdGhpcy5jbGVhckRlbGF5VGltZXIoKTtcblxuICAgICAgICBpZiAoX3RoaXMuaXNGb2N1c1RvU2hvdygpKSB7XG4gICAgICAgICAgX3RoaXMuZm9jdXNUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAgIF90aGlzLmRlbGF5U2V0UG9wdXBWaXNpYmxlKHRydWUsIF90aGlzLnByb3BzLmZvY3VzRGVsYXkpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBfdGhpcy5vbk1vdXNlRG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF90aGlzLmZpcmVFdmVudHMoJ29uTW91c2VEb3duJywgZSk7XG5cbiAgICAgICAgX3RoaXMucHJlQ2xpY2tUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLm9uVG91Y2hTdGFydCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF90aGlzLmZpcmVFdmVudHMoJ29uVG91Y2hTdGFydCcsIGUpO1xuXG4gICAgICAgIF90aGlzLnByZVRvdWNoVGltZSA9IERhdGUubm93KCk7XG4gICAgICB9O1xuXG4gICAgICBfdGhpcy5vbkJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICBfdGhpcy5maXJlRXZlbnRzKCdvbkJsdXInLCBlKTtcblxuICAgICAgICBfdGhpcy5jbGVhckRlbGF5VGltZXIoKTtcblxuICAgICAgICBpZiAoX3RoaXMuaXNCbHVyVG9IaWRlKCkpIHtcbiAgICAgICAgICBfdGhpcy5kZWxheVNldFBvcHVwVmlzaWJsZShmYWxzZSwgX3RoaXMucHJvcHMuYmx1ckRlbGF5KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Db250ZXh0TWVudSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBfdGhpcy5maXJlRXZlbnRzKCdvbkNvbnRleHRNZW51JywgZSk7XG5cbiAgICAgICAgX3RoaXMuc2V0UG9wdXBWaXNpYmxlKHRydWUsIGUpO1xuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Db250ZXh0TWVudUNsb3NlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX3RoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSB7XG4gICAgICAgICAgX3RoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgX3RoaXMub25DbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICBfdGhpcy5maXJlRXZlbnRzKCdvbkNsaWNrJywgZXZlbnQpOyAvLyBmb2N1cyB3aWxsIHRyaWdnZXIgY2xpY2tcblxuXG4gICAgICAgIGlmIChfdGhpcy5mb2N1c1RpbWUpIHtcbiAgICAgICAgICB2YXIgcHJlVGltZTtcblxuICAgICAgICAgIGlmIChfdGhpcy5wcmVDbGlja1RpbWUgJiYgX3RoaXMucHJlVG91Y2hUaW1lKSB7XG4gICAgICAgICAgICBwcmVUaW1lID0gTWF0aC5taW4oX3RoaXMucHJlQ2xpY2tUaW1lLCBfdGhpcy5wcmVUb3VjaFRpbWUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMucHJlQ2xpY2tUaW1lKSB7XG4gICAgICAgICAgICBwcmVUaW1lID0gX3RoaXMucHJlQ2xpY2tUaW1lO1xuICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXMucHJlVG91Y2hUaW1lKSB7XG4gICAgICAgICAgICBwcmVUaW1lID0gX3RoaXMucHJlVG91Y2hUaW1lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChNYXRoLmFicyhwcmVUaW1lIC0gX3RoaXMuZm9jdXNUaW1lKSA8IDIwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgX3RoaXMuZm9jdXNUaW1lID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzLnByZUNsaWNrVGltZSA9IDA7XG4gICAgICAgIF90aGlzLnByZVRvdWNoVGltZSA9IDA7IC8vIE9ubHkgcHJldmVudCBkZWZhdWx0IHdoZW4gYWxsIHRoZSBhY3Rpb24gaXMgY2xpY2suXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE3MDQzXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE3MjkxXG5cbiAgICAgICAgaWYgKF90aGlzLmlzQ2xpY2tUb1Nob3coKSAmJiAoX3RoaXMuaXNDbGlja1RvSGlkZSgpIHx8IF90aGlzLmlzQmx1clRvSGlkZSgpKSAmJiBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmV4dFZpc2libGUgPSAhX3RoaXMuc3RhdGUucG9wdXBWaXNpYmxlO1xuXG4gICAgICAgIGlmIChfdGhpcy5pc0NsaWNrVG9IaWRlKCkgJiYgIW5leHRWaXNpYmxlIHx8IG5leHRWaXNpYmxlICYmIF90aGlzLmlzQ2xpY2tUb1Nob3coKSkge1xuICAgICAgICAgIF90aGlzLnNldFBvcHVwVmlzaWJsZSghX3RoaXMuc3RhdGUucG9wdXBWaXNpYmxlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIF90aGlzLm9uUG9wdXBNb3VzZURvd24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLmhhc1BvcHVwTW91c2VEb3duID0gdHJ1ZTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KF90aGlzLm1vdXNlRG93blRpbWVvdXQpO1xuICAgICAgICBfdGhpcy5tb3VzZURvd25UaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzLmhhc1BvcHVwTW91c2VEb3duID0gZmFsc2U7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIGlmIChfdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgdmFyIF90aGlzJGNvbnRleHQ7XG5cbiAgICAgICAgICAoX3RoaXMkY29udGV4dCA9IF90aGlzLmNvbnRleHQpLm9uUG9wdXBNb3VzZURvd24uYXBwbHkoX3RoaXMkY29udGV4dCwgYXJndW1lbnRzKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgX3RoaXMub25Eb2N1bWVudENsaWNrID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIGlmIChfdGhpcy5wcm9wcy5tYXNrICYmICFfdGhpcy5wcm9wcy5tYXNrQ2xvc2FibGUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgICAgIHZhciByb290ID0gX3RoaXMuZ2V0Um9vdERvbU5vZGUoKTtcblxuICAgICAgICB2YXIgcG9wdXBOb2RlID0gX3RoaXMuZ2V0UG9wdXBEb21Ob2RlKCk7XG5cbiAgICAgICAgaWYgKCAvLyBtb3VzZWRvd24gb24gdGhlIHRhcmdldCBzaG91bGQgYWxzbyBjbG9zZSBwb3B1cCB3aGVuIGFjdGlvbiBpcyBjb250ZXh0TWVudS5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjk4NTNcbiAgICAgICAgKCFjb250YWlucyhyb290LCB0YXJnZXQpIHx8IF90aGlzLmlzQ29udGV4dE1lbnVPbmx5KCkpICYmICFjb250YWlucyhwb3B1cE5vZGUsIHRhcmdldCkgJiYgIV90aGlzLmhhc1BvcHVwTW91c2VEb3duKSB7XG4gICAgICAgICAgX3RoaXMuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgX3RoaXMuZ2V0Um9vdERvbU5vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBnZXRUcmlnZ2VyRE9NTm9kZSA9IF90aGlzLnByb3BzLmdldFRyaWdnZXJET01Ob2RlO1xuXG4gICAgICAgIGlmIChnZXRUcmlnZ2VyRE9NTm9kZSkge1xuICAgICAgICAgIHJldHVybiBnZXRUcmlnZ2VyRE9NTm9kZShfdGhpcy50cmlnZ2VyUmVmLmN1cnJlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgZG9tTm9kZSA9IGZpbmRET01Ob2RlKF90aGlzLnRyaWdnZXJSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICBpZiAoZG9tTm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGRvbU5vZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHsvLyBEbyBub3RoaW5nXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUmVhY3RET00uZmluZERPTU5vZGUoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgICAgfTtcblxuICAgICAgX3RoaXMuZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24gPSBmdW5jdGlvbiAoYWxpZ24pIHtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IFtdO1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIHBvcHVwUGxhY2VtZW50ID0gX3RoaXMkcHJvcHMucG9wdXBQbGFjZW1lbnQsXG4gICAgICAgICAgICBidWlsdGluUGxhY2VtZW50cyA9IF90aGlzJHByb3BzLmJ1aWx0aW5QbGFjZW1lbnRzLFxuICAgICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgICAgYWxpZ25Qb2ludCA9IF90aGlzJHByb3BzLmFsaWduUG9pbnQsXG4gICAgICAgICAgICBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbiA9IF90aGlzJHByb3BzLmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduO1xuXG4gICAgICAgIGlmIChwb3B1cFBsYWNlbWVudCAmJiBidWlsdGluUGxhY2VtZW50cykge1xuICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGdldEFsaWduUG9wdXBDbGFzc05hbWUoYnVpbHRpblBsYWNlbWVudHMsIHByZWZpeENscywgYWxpZ24sIGFsaWduUG9pbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbikge1xuICAgICAgICAgIGNsYXNzTmFtZS5wdXNoKGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduKGFsaWduKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lLmpvaW4oJyAnKTtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLmdldENvbXBvbmVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMyLnByZWZpeENscyxcbiAgICAgICAgICAgIGRlc3Ryb3lQb3B1cE9uSGlkZSA9IF90aGlzJHByb3BzMi5kZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICAgICAgICBwb3B1cENsYXNzTmFtZSA9IF90aGlzJHByb3BzMi5wb3B1cENsYXNzTmFtZSxcbiAgICAgICAgICAgIG9uUG9wdXBBbGlnbiA9IF90aGlzJHByb3BzMi5vblBvcHVwQWxpZ24sXG4gICAgICAgICAgICBwb3B1cE1vdGlvbiA9IF90aGlzJHByb3BzMi5wb3B1cE1vdGlvbixcbiAgICAgICAgICAgIHBvcHVwQW5pbWF0aW9uID0gX3RoaXMkcHJvcHMyLnBvcHVwQW5pbWF0aW9uLFxuICAgICAgICAgICAgcG9wdXBUcmFuc2l0aW9uTmFtZSA9IF90aGlzJHByb3BzMi5wb3B1cFRyYW5zaXRpb25OYW1lLFxuICAgICAgICAgICAgcG9wdXBTdHlsZSA9IF90aGlzJHByb3BzMi5wb3B1cFN0eWxlLFxuICAgICAgICAgICAgbWFzayA9IF90aGlzJHByb3BzMi5tYXNrLFxuICAgICAgICAgICAgbWFza0FuaW1hdGlvbiA9IF90aGlzJHByb3BzMi5tYXNrQW5pbWF0aW9uLFxuICAgICAgICAgICAgbWFza1RyYW5zaXRpb25OYW1lID0gX3RoaXMkcHJvcHMyLm1hc2tUcmFuc2l0aW9uTmFtZSxcbiAgICAgICAgICAgIG1hc2tNb3Rpb24gPSBfdGhpcyRwcm9wczIubWFza01vdGlvbixcbiAgICAgICAgICAgIHpJbmRleCA9IF90aGlzJHByb3BzMi56SW5kZXgsXG4gICAgICAgICAgICBwb3B1cCA9IF90aGlzJHByb3BzMi5wb3B1cCxcbiAgICAgICAgICAgIHN0cmV0Y2ggPSBfdGhpcyRwcm9wczIuc3RyZXRjaCxcbiAgICAgICAgICAgIGFsaWduUG9pbnQgPSBfdGhpcyRwcm9wczIuYWxpZ25Qb2ludCxcbiAgICAgICAgICAgIG1vYmlsZSA9IF90aGlzJHByb3BzMi5tb2JpbGUsXG4gICAgICAgICAgICBmb3JjZVJlbmRlciA9IF90aGlzJHByb3BzMi5mb3JjZVJlbmRlcjtcbiAgICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgICAgICBwb3B1cFZpc2libGUgPSBfdGhpcyRzdGF0ZS5wb3B1cFZpc2libGUsXG4gICAgICAgICAgICBwb2ludCA9IF90aGlzJHN0YXRlLnBvaW50O1xuXG4gICAgICAgIHZhciBhbGlnbiA9IF90aGlzLmdldFBvcHVwQWxpZ24oKTtcblxuICAgICAgICB2YXIgbW91c2VQcm9wcyA9IHt9O1xuXG4gICAgICAgIGlmIChfdGhpcy5pc01vdXNlRW50ZXJUb1Nob3coKSkge1xuICAgICAgICAgIG1vdXNlUHJvcHMub25Nb3VzZUVudGVyID0gX3RoaXMub25Qb3B1cE1vdXNlRW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX3RoaXMuaXNNb3VzZUxlYXZlVG9IaWRlKCkpIHtcbiAgICAgICAgICBtb3VzZVByb3BzLm9uTW91c2VMZWF2ZSA9IF90aGlzLm9uUG9wdXBNb3VzZUxlYXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgbW91c2VQcm9wcy5vbk1vdXNlRG93biA9IF90aGlzLm9uUG9wdXBNb3VzZURvd247XG4gICAgICAgIG1vdXNlUHJvcHMub25Ub3VjaFN0YXJ0ID0gX3RoaXMub25Qb3B1cE1vdXNlRG93bjtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFBvcHVwLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgZGVzdHJveVBvcHVwT25IaWRlOiBkZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICAgICAgdmlzaWJsZTogcG9wdXBWaXNpYmxlLFxuICAgICAgICAgIHBvaW50OiBhbGlnblBvaW50ICYmIHBvaW50LFxuICAgICAgICAgIGNsYXNzTmFtZTogcG9wdXBDbGFzc05hbWUsXG4gICAgICAgICAgYWxpZ246IGFsaWduLFxuICAgICAgICAgIG9uQWxpZ246IG9uUG9wdXBBbGlnbixcbiAgICAgICAgICBhbmltYXRpb246IHBvcHVwQW5pbWF0aW9uLFxuICAgICAgICAgIGdldENsYXNzTmFtZUZyb21BbGlnbjogX3RoaXMuZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ25cbiAgICAgICAgfSwgbW91c2VQcm9wcywge1xuICAgICAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICAgICAgZ2V0Um9vdERvbU5vZGU6IF90aGlzLmdldFJvb3REb21Ob2RlLFxuICAgICAgICAgIHN0eWxlOiBwb3B1cFN0eWxlLFxuICAgICAgICAgIG1hc2s6IG1hc2ssXG4gICAgICAgICAgekluZGV4OiB6SW5kZXgsXG4gICAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHBvcHVwVHJhbnNpdGlvbk5hbWUsXG4gICAgICAgICAgbWFza0FuaW1hdGlvbjogbWFza0FuaW1hdGlvbixcbiAgICAgICAgICBtYXNrVHJhbnNpdGlvbk5hbWU6IG1hc2tUcmFuc2l0aW9uTmFtZSxcbiAgICAgICAgICBtYXNrTW90aW9uOiBtYXNrTW90aW9uLFxuICAgICAgICAgIHJlZjogX3RoaXMucG9wdXBSZWYsXG4gICAgICAgICAgbW90aW9uOiBwb3B1cE1vdGlvbixcbiAgICAgICAgICBtb2JpbGU6IG1vYmlsZSxcbiAgICAgICAgICBmb3JjZVJlbmRlcjogZm9yY2VSZW5kZXJcbiAgICAgICAgfSksIHR5cGVvZiBwb3B1cCA9PT0gJ2Z1bmN0aW9uJyA/IHBvcHVwKCkgOiBwb3B1cCk7XG4gICAgICB9O1xuXG4gICAgICBfdGhpcy5hdHRhY2hQYXJlbnQgPSBmdW5jdGlvbiAocG9wdXBDb250YWluZXIpIHtcbiAgICAgICAgcmFmLmNhbmNlbChfdGhpcy5hdHRhY2hJZCk7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIGdldFBvcHVwQ29udGFpbmVyID0gX3RoaXMkcHJvcHMzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgICAgZ2V0RG9jdW1lbnQgPSBfdGhpcyRwcm9wczMuZ2V0RG9jdW1lbnQ7XG5cbiAgICAgICAgdmFyIGRvbU5vZGUgPSBfdGhpcy5nZXRSb290RG9tTm9kZSgpO1xuXG4gICAgICAgIHZhciBtb3VudE5vZGU7XG5cbiAgICAgICAgaWYgKCFnZXRQb3B1cENvbnRhaW5lcikge1xuICAgICAgICAgIG1vdW50Tm9kZSA9IGdldERvY3VtZW50KF90aGlzLmdldFJvb3REb21Ob2RlKCkpLmJvZHk7XG4gICAgICAgIH0gZWxzZSBpZiAoZG9tTm9kZSB8fCBnZXRQb3B1cENvbnRhaW5lci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAvLyBDb21wYXRpYmxlIGZvciBsZWdhY3kgZ2V0UG9wdXBDb250YWluZXIgd2l0aCBkb21Ob2RlIGFyZ3VtZW50LlxuICAgICAgICAgIC8vIElmIG5vIG5lZWQgYGRvbU5vZGVgIGFyZ3VtZW50LCB3aWxsIGNhbGwgZGlyZWN0bHkuXG4gICAgICAgICAgLy8gaHR0cHM6Ly9jb2Rlc2FuZGJveC5pby9zL2Vsb3F1ZW50LW1jbGVhbi1zczkzbT9maWxlPS9zcmMvQXBwLmpzXG4gICAgICAgICAgbW91bnROb2RlID0gZ2V0UG9wdXBDb250YWluZXIoZG9tTm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW91bnROb2RlKSB7XG4gICAgICAgICAgbW91bnROb2RlLmFwcGVuZENoaWxkKHBvcHVwQ29udGFpbmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBSZXRyeSBhZnRlciBmcmFtZSByZW5kZXIgaW4gY2FzZSBwYXJlbnQgbm90IHJlYWR5XG4gICAgICAgICAgX3RoaXMuYXR0YWNoSWQgPSByYWYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMuYXR0YWNoUGFyZW50KHBvcHVwQ29udGFpbmVyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgX3RoaXMuZ2V0Q29udGFpbmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgZ2V0RG9jdW1lbnQgPSBfdGhpcy5wcm9wcy5nZXREb2N1bWVudDtcbiAgICAgICAgdmFyIHBvcHVwQ29udGFpbmVyID0gZ2V0RG9jdW1lbnQoX3RoaXMuZ2V0Um9vdERvbU5vZGUoKSkuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IC8vIE1ha2Ugc3VyZSBkZWZhdWx0IHBvcHVwIGNvbnRhaW5lciB3aWxsIG5ldmVyIGNhdXNlIHNjcm9sbGJhciBhcHBlYXJpbmdcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL2lzc3Vlcy80MVxuXG4gICAgICAgIHBvcHVwQ29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgcG9wdXBDb250YWluZXIuc3R5bGUudG9wID0gJzAnO1xuICAgICAgICBwb3B1cENvbnRhaW5lci5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgICAgICBwb3B1cENvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcblxuICAgICAgICBfdGhpcy5hdHRhY2hQYXJlbnQocG9wdXBDb250YWluZXIpO1xuXG4gICAgICAgIHJldHVybiBwb3B1cENvbnRhaW5lcjtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLnNldFBvaW50ID0gZnVuY3Rpb24gKHBvaW50KSB7XG4gICAgICAgIHZhciBhbGlnblBvaW50ID0gX3RoaXMucHJvcHMuYWxpZ25Qb2ludDtcbiAgICAgICAgaWYgKCFhbGlnblBvaW50IHx8ICFwb2ludCkgcmV0dXJuO1xuXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBwb2ludDoge1xuICAgICAgICAgICAgcGFnZVg6IHBvaW50LnBhZ2VYLFxuICAgICAgICAgICAgcGFnZVk6IHBvaW50LnBhZ2VZXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIF90aGlzLmhhbmRsZVBvcnRhbFVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKF90aGlzLnN0YXRlLnByZXZQb3B1cFZpc2libGUgIT09IF90aGlzLnN0YXRlLnBvcHVwVmlzaWJsZSkge1xuICAgICAgICAgIF90aGlzLnByb3BzLmFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlKF90aGlzLnN0YXRlLnBvcHVwVmlzaWJsZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHZhciBwb3B1cFZpc2libGU7XG5cbiAgICAgIGlmICgncG9wdXBWaXNpYmxlJyBpbiBwcm9wcykge1xuICAgICAgICBwb3B1cFZpc2libGUgPSAhIXByb3BzLnBvcHVwVmlzaWJsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvcHVwVmlzaWJsZSA9ICEhcHJvcHMuZGVmYXVsdFBvcHVwVmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAgIHByZXZQb3B1cFZpc2libGU6IHBvcHVwVmlzaWJsZSxcbiAgICAgICAgcG9wdXBWaXNpYmxlOiBwb3B1cFZpc2libGVcbiAgICAgIH07XG4gICAgICBBTExfSEFORExFUlMuZm9yRWFjaChmdW5jdGlvbiAoaCkge1xuICAgICAgICBfdGhpc1tcImZpcmVcIi5jb25jYXQoaCldID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICBfdGhpcy5maXJlRXZlbnRzKGgsIGUpO1xuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKFRyaWdnZXIsIFt7XG4gICAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnREaWRVcGRhdGUoKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgc3RhdGUgPSB0aGlzLnN0YXRlOyAvLyBXZSBtdXN0IGxpc3RlbiB0byBgbW91c2Vkb3duYCBvciBgdG91Y2hzdGFydGAsIGVkZ2UgY2FzZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNTgwNFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L2NhbGVuZGFyL2lzc3Vlcy8yNTBcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL2lzc3Vlcy81MFxuXG4gICAgICAgIGlmIChzdGF0ZS5wb3B1cFZpc2libGUpIHtcbiAgICAgICAgICB2YXIgY3VycmVudERvY3VtZW50O1xuXG4gICAgICAgICAgaWYgKCF0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgJiYgKHRoaXMuaXNDbGlja1RvSGlkZSgpIHx8IHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSkge1xuICAgICAgICAgICAgY3VycmVudERvY3VtZW50ID0gcHJvcHMuZ2V0RG9jdW1lbnQodGhpcy5nZXRSb290RG9tTm9kZSgpKTtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlciA9IGFkZEV2ZW50TGlzdGVuZXIoY3VycmVudERvY3VtZW50LCAnbW91c2Vkb3duJywgdGhpcy5vbkRvY3VtZW50Q2xpY2spO1xuICAgICAgICAgIH0gLy8gYWx3YXlzIGhpZGUgb24gbW9iaWxlXG5cblxuICAgICAgICAgIGlmICghdGhpcy50b3VjaE91dHNpZGVIYW5kbGVyKSB7XG4gICAgICAgICAgICBjdXJyZW50RG9jdW1lbnQgPSBjdXJyZW50RG9jdW1lbnQgfHwgcHJvcHMuZ2V0RG9jdW1lbnQodGhpcy5nZXRSb290RG9tTm9kZSgpKTtcbiAgICAgICAgICAgIHRoaXMudG91Y2hPdXRzaWRlSGFuZGxlciA9IGFkZEV2ZW50TGlzdGVuZXIoY3VycmVudERvY3VtZW50LCAndG91Y2hzdGFydCcsIHRoaXMub25Eb2N1bWVudENsaWNrKTtcbiAgICAgICAgICB9IC8vIGNsb3NlIHBvcHVwIHdoZW4gdHJpZ2dlciB0eXBlIGNvbnRhaW5zICdvbkNvbnRleHRNZW51JyBhbmQgZG9jdW1lbnQgaXMgc2Nyb2xsaW5nLlxuXG5cbiAgICAgICAgICBpZiAoIXRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjEgJiYgdGhpcy5pc0NvbnRleHRNZW51VG9TaG93KCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnREb2N1bWVudCA9IGN1cnJlbnREb2N1bWVudCB8fCBwcm9wcy5nZXREb2N1bWVudCh0aGlzLmdldFJvb3REb21Ob2RlKCkpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMSA9IGFkZEV2ZW50TGlzdGVuZXIoY3VycmVudERvY3VtZW50LCAnc2Nyb2xsJywgdGhpcy5vbkNvbnRleHRNZW51Q2xvc2UpO1xuICAgICAgICAgIH0gLy8gY2xvc2UgcG9wdXAgd2hlbiB0cmlnZ2VyIHR5cGUgY29udGFpbnMgJ29uQ29udGV4dE1lbnUnIGFuZCB3aW5kb3cgaXMgYmx1ci5cblxuXG4gICAgICAgICAgaWYgKCF0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyICYmIHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyID0gYWRkRXZlbnRMaXN0ZW5lcih3aW5kb3csICdibHVyJywgdGhpcy5vbkNvbnRleHRNZW51Q2xvc2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xlYXJPdXRzaWRlSGFuZGxlcigpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLmNsZWFyRGVsYXlUaW1lcigpO1xuICAgICAgICB0aGlzLmNsZWFyT3V0c2lkZUhhbmRsZXIoKTtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW91c2VEb3duVGltZW91dCk7XG4gICAgICAgIHJhZi5jYW5jZWwodGhpcy5hdHRhY2hJZCk7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImdldFBvcHVwRG9tTm9kZVwiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFBvcHVwRG9tTm9kZSgpIHtcbiAgICAgICAgdmFyIF90aGlzJHBvcHVwUmVmJGN1cnJlbjI7XG5cbiAgICAgICAgLy8gZm9yIHRlc3RcbiAgICAgICAgcmV0dXJuICgoX3RoaXMkcG9wdXBSZWYkY3VycmVuMiA9IHRoaXMucG9wdXBSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3RoaXMkcG9wdXBSZWYkY3VycmVuMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcG9wdXBSZWYkY3VycmVuMi5nZXRFbGVtZW50KCkpIHx8IG51bGw7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImdldFBvcHVwQWxpZ25cIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRQb3B1cEFsaWduKCkge1xuICAgICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgICAgICB2YXIgcG9wdXBQbGFjZW1lbnQgPSBwcm9wcy5wb3B1cFBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwQWxpZ24gPSBwcm9wcy5wb3B1cEFsaWduLFxuICAgICAgICAgICAgYnVpbHRpblBsYWNlbWVudHMgPSBwcm9wcy5idWlsdGluUGxhY2VtZW50cztcblxuICAgICAgICBpZiAocG9wdXBQbGFjZW1lbnQgJiYgYnVpbHRpblBsYWNlbWVudHMpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0QWxpZ25Gcm9tUGxhY2VtZW50KGJ1aWx0aW5QbGFjZW1lbnRzLCBwb3B1cFBsYWNlbWVudCwgcG9wdXBBbGlnbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcG9wdXBBbGlnbjtcbiAgICAgIH1cbiAgICAgIC8qKlxuICAgICAgICogQHBhcmFtIHBvcHVwVmlzaWJsZSAgICBTaG93IG9yIG5vdCB0aGUgcG9wdXAgZWxlbWVudFxuICAgICAgICogQHBhcmFtIGV2ZW50ICAgICAgICAgICBTeW50aGV0aWNFdmVudCwgdXNlZCBmb3IgYHBvaW50QWxpZ25gXG4gICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgIGtleTogXCJzZXRQb3B1cFZpc2libGVcIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRQb3B1cFZpc2libGUocG9wdXBWaXNpYmxlLCBldmVudCkge1xuICAgICAgICB2YXIgYWxpZ25Qb2ludCA9IHRoaXMucHJvcHMuYWxpZ25Qb2ludDtcbiAgICAgICAgdmFyIHByZXZQb3B1cFZpc2libGUgPSB0aGlzLnN0YXRlLnBvcHVwVmlzaWJsZTtcbiAgICAgICAgdGhpcy5jbGVhckRlbGF5VGltZXIoKTtcblxuICAgICAgICBpZiAocHJldlBvcHVwVmlzaWJsZSAhPT0gcG9wdXBWaXNpYmxlKSB7XG4gICAgICAgICAgaWYgKCEoJ3BvcHVwVmlzaWJsZScgaW4gdGhpcy5wcm9wcykpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBwb3B1cFZpc2libGU6IHBvcHVwVmlzaWJsZSxcbiAgICAgICAgICAgICAgcHJldlBvcHVwVmlzaWJsZTogcHJldlBvcHVwVmlzaWJsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5wcm9wcy5vblBvcHVwVmlzaWJsZUNoYW5nZShwb3B1cFZpc2libGUpO1xuICAgICAgICB9IC8vIEFsd2F5cyByZWNvcmQgdGhlIHBvaW50IHBvc2l0aW9uIHNpbmNlIG1vdXNlRW50ZXJEZWxheSB3aWxsIGRlbGF5IHRoZSBzaG93XG5cblxuICAgICAgICBpZiAoYWxpZ25Qb2ludCAmJiBldmVudCAmJiBwb3B1cFZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnNldFBvaW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJkZWxheVNldFBvcHVwVmlzaWJsZVwiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGRlbGF5U2V0UG9wdXBWaXNpYmxlKHZpc2libGUsIGRlbGF5UywgZXZlbnQpIHtcbiAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgdmFyIGRlbGF5ID0gZGVsYXlTICogMTAwMDtcbiAgICAgICAgdGhpcy5jbGVhckRlbGF5VGltZXIoKTtcblxuICAgICAgICBpZiAoZGVsYXkpIHtcbiAgICAgICAgICB2YXIgcG9pbnQgPSBldmVudCA/IHtcbiAgICAgICAgICAgIHBhZ2VYOiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHBhZ2VZOiBldmVudC5wYWdlWVxuICAgICAgICAgIH0gOiBudWxsO1xuICAgICAgICAgIHRoaXMuZGVsYXlUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRQb3B1cFZpc2libGUodmlzaWJsZSwgcG9pbnQpO1xuXG4gICAgICAgICAgICBfdGhpczIuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgICAgICAgfSwgZGVsYXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0UG9wdXBWaXNpYmxlKHZpc2libGUsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJjbGVhckRlbGF5VGltZXJcIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhckRlbGF5VGltZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlbGF5VGltZXIpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVyKTtcbiAgICAgICAgICB0aGlzLmRlbGF5VGltZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImNsZWFyT3V0c2lkZUhhbmRsZXJcIixcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhck91dHNpZGVIYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5jbGlja091dHNpZGVIYW5kbGVyKSB7XG4gICAgICAgICAgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyLnJlbW92ZSgpO1xuICAgICAgICAgIHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMSkge1xuICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjEucmVtb3ZlKCk7XG4gICAgICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMikge1xuICAgICAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIucmVtb3ZlKCk7XG4gICAgICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMiA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50b3VjaE91dHNpZGVIYW5kbGVyKSB7XG4gICAgICAgICAgdGhpcy50b3VjaE91dHNpZGVIYW5kbGVyLnJlbW92ZSgpO1xuICAgICAgICAgIHRoaXMudG91Y2hPdXRzaWRlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwiY3JlYXRlVHdvQ2hhaW5zXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY3JlYXRlVHdvQ2hhaW5zKGV2ZW50KSB7XG4gICAgICAgIHZhciBjaGlsZFByb3MgPSB0aGlzLnByb3BzLmNoaWxkcmVuLnByb3BzO1xuICAgICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIGlmIChjaGlsZFByb3NbZXZlbnRdICYmIHByb3BzW2V2ZW50XSkge1xuICAgICAgICAgIHJldHVybiB0aGlzW1wiZmlyZVwiLmNvbmNhdChldmVudCldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkUHJvc1tldmVudF0gfHwgcHJvcHNbZXZlbnRdO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJpc0NsaWNrVG9TaG93XCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gaXNDbGlja1RvU2hvdygpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzNCA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICBhY3Rpb24gPSBfdGhpcyRwcm9wczQuYWN0aW9uLFxuICAgICAgICAgICAgc2hvd0FjdGlvbiA9IF90aGlzJHByb3BzNC5zaG93QWN0aW9uO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2NsaWNrJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignY2xpY2snKSAhPT0gLTE7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImlzQ29udGV4dE1lbnVPbmx5XCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gaXNDb250ZXh0TWVudU9ubHkoKSB7XG4gICAgICAgIHZhciBhY3Rpb24gPSB0aGlzLnByb3BzLmFjdGlvbjtcbiAgICAgICAgcmV0dXJuIGFjdGlvbiA9PT0gJ2NvbnRleHRNZW51JyB8fCBhY3Rpb24ubGVuZ3RoID09PSAxICYmIGFjdGlvblswXSA9PT0gJ2NvbnRleHRNZW51JztcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwiaXNDb250ZXh0TWVudVRvU2hvd1wiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGlzQ29udGV4dE1lbnVUb1Nob3coKSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wczUgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgYWN0aW9uID0gX3RoaXMkcHJvcHM1LmFjdGlvbixcbiAgICAgICAgICAgIHNob3dBY3Rpb24gPSBfdGhpcyRwcm9wczUuc2hvd0FjdGlvbjtcbiAgICAgICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdjb250ZXh0TWVudScpICE9PSAtMSB8fCBzaG93QWN0aW9uLmluZGV4T2YoJ2NvbnRleHRNZW51JykgIT09IC0xO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJpc0NsaWNrVG9IaWRlXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gaXNDbGlja1RvSGlkZSgpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICBhY3Rpb24gPSBfdGhpcyRwcm9wczYuYWN0aW9uLFxuICAgICAgICAgICAgaGlkZUFjdGlvbiA9IF90aGlzJHByb3BzNi5oaWRlQWN0aW9uO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2NsaWNrJykgIT09IC0xIHx8IGhpZGVBY3Rpb24uaW5kZXhPZignY2xpY2snKSAhPT0gLTE7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImlzTW91c2VFbnRlclRvU2hvd1wiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGlzTW91c2VFbnRlclRvU2hvdygpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzNyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICBhY3Rpb24gPSBfdGhpcyRwcm9wczcuYWN0aW9uLFxuICAgICAgICAgICAgc2hvd0FjdGlvbiA9IF90aGlzJHByb3BzNy5zaG93QWN0aW9uO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2hvdmVyJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignbW91c2VFbnRlcicpICE9PSAtMTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwiaXNNb3VzZUxlYXZlVG9IaWRlXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gaXNNb3VzZUxlYXZlVG9IaWRlKCkge1xuICAgICAgICB2YXIgX3RoaXMkcHJvcHM4ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIGFjdGlvbiA9IF90aGlzJHByb3BzOC5hY3Rpb24sXG4gICAgICAgICAgICBoaWRlQWN0aW9uID0gX3RoaXMkcHJvcHM4LmhpZGVBY3Rpb247XG4gICAgICAgIHJldHVybiBhY3Rpb24uaW5kZXhPZignaG92ZXInKSAhPT0gLTEgfHwgaGlkZUFjdGlvbi5pbmRleE9mKCdtb3VzZUxlYXZlJykgIT09IC0xO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJpc0ZvY3VzVG9TaG93XCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gaXNGb2N1c1RvU2hvdygpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzOSA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICBhY3Rpb24gPSBfdGhpcyRwcm9wczkuYWN0aW9uLFxuICAgICAgICAgICAgc2hvd0FjdGlvbiA9IF90aGlzJHByb3BzOS5zaG93QWN0aW9uO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2ZvY3VzJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignZm9jdXMnKSAhPT0gLTE7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImlzQmx1clRvSGlkZVwiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGlzQmx1clRvSGlkZSgpIHtcbiAgICAgICAgdmFyIF90aGlzJHByb3BzMTAgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgYWN0aW9uID0gX3RoaXMkcHJvcHMxMC5hY3Rpb24sXG4gICAgICAgICAgICBoaWRlQWN0aW9uID0gX3RoaXMkcHJvcHMxMC5oaWRlQWN0aW9uO1xuICAgICAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2ZvY3VzJykgIT09IC0xIHx8IGhpZGVBY3Rpb24uaW5kZXhPZignYmx1cicpICE9PSAtMTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwiZm9yY2VQb3B1cEFsaWduXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZm9yY2VQb3B1cEFsaWduKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5wb3B1cFZpc2libGUpIHtcbiAgICAgICAgICB2YXIgX3RoaXMkcG9wdXBSZWYkY3VycmVuMztcblxuICAgICAgICAgIChfdGhpcyRwb3B1cFJlZiRjdXJyZW4zID0gdGhpcy5wb3B1cFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfdGhpcyRwb3B1cFJlZiRjdXJyZW4zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwb3B1cFJlZiRjdXJyZW4zLmZvcmNlQWxpZ24oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogXCJmaXJlRXZlbnRzXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZmlyZUV2ZW50cyh0eXBlLCBlKSB7XG4gICAgICAgIHZhciBjaGlsZENhbGxiYWNrID0gdGhpcy5wcm9wcy5jaGlsZHJlbi5wcm9wc1t0eXBlXTtcblxuICAgICAgICBpZiAoY2hpbGRDYWxsYmFjaykge1xuICAgICAgICAgIGNoaWxkQ2FsbGJhY2soZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLnByb3BzW3R5cGVdO1xuXG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwge1xuICAgICAga2V5OiBcImNsb3NlXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY2xvc2UoKSB7XG4gICAgICAgIHRoaXMuc2V0UG9wdXBWaXNpYmxlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgcG9wdXBWaXNpYmxlID0gdGhpcy5zdGF0ZS5wb3B1cFZpc2libGU7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wczExID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMxMS5jaGlsZHJlbixcbiAgICAgICAgICAgIGZvcmNlUmVuZGVyID0gX3RoaXMkcHJvcHMxMS5mb3JjZVJlbmRlcixcbiAgICAgICAgICAgIGFsaWduUG9pbnQgPSBfdGhpcyRwcm9wczExLmFsaWduUG9pbnQsXG4gICAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczExLmNsYXNzTmFtZSxcbiAgICAgICAgICAgIGF1dG9EZXN0cm95ID0gX3RoaXMkcHJvcHMxMS5hdXRvRGVzdHJveTtcbiAgICAgICAgdmFyIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICAgIHZhciBuZXdDaGlsZFByb3BzID0ge1xuICAgICAgICAgIGtleTogJ3RyaWdnZXInXG4gICAgICAgIH07IC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBWaXNpYmxlIEhhbmRsZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICAvLyA+Pj4gQ29udGV4dE1lbnVcblxuICAgICAgICBpZiAodGhpcy5pc0NvbnRleHRNZW51VG9TaG93KCkpIHtcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uQ29udGV4dE1lbnUgPSB0aGlzLm9uQ29udGV4dE1lbnU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbkNvbnRleHRNZW51ID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uQ29udGV4dE1lbnUnKTtcbiAgICAgICAgfSAvLyA+Pj4gQ2xpY2tcblxuXG4gICAgICAgIGlmICh0aGlzLmlzQ2xpY2tUb0hpZGUoKSB8fCB0aGlzLmlzQ2xpY2tUb1Nob3coKSkge1xuICAgICAgICAgIG5ld0NoaWxkUHJvcHMub25DbGljayA9IHRoaXMub25DbGljaztcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VEb3duID0gdGhpcy5vbk1vdXNlRG93bjtcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uVG91Y2hTdGFydCA9IHRoaXMub25Ub3VjaFN0YXJ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0NoaWxkUHJvcHMub25DbGljayA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbkNsaWNrJyk7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRG93biA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbk1vdXNlRG93bicpO1xuICAgICAgICAgIG5ld0NoaWxkUHJvcHMub25Ub3VjaFN0YXJ0ID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uVG91Y2hTdGFydCcpO1xuICAgICAgICB9IC8vID4+PiBIb3ZlcihlbnRlcilcblxuXG4gICAgICAgIGlmICh0aGlzLmlzTW91c2VFbnRlclRvU2hvdygpKSB7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSB0aGlzLm9uTW91c2VFbnRlcjsgLy8gUG9pbnQgYWxpZ25cblxuICAgICAgICAgIGlmIChhbGlnblBvaW50KSB7XG4gICAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VNb3ZlID0gdGhpcy5vbk1vdXNlTW92ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRW50ZXIgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Nb3VzZUVudGVyJyk7XG4gICAgICAgIH0gLy8gPj4+IEhvdmVyKGxlYXZlKVxuXG5cbiAgICAgICAgaWYgKHRoaXMuaXNNb3VzZUxlYXZlVG9IaWRlKCkpIHtcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VMZWF2ZSA9IHRoaXMub25Nb3VzZUxlYXZlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0NoaWxkUHJvcHMub25Nb3VzZUxlYXZlID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uTW91c2VMZWF2ZScpO1xuICAgICAgICB9IC8vID4+PiBGb2N1c1xuXG5cbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c1RvU2hvdygpIHx8IHRoaXMuaXNCbHVyVG9IaWRlKCkpIHtcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uRm9jdXMgPSB0aGlzLm9uRm9jdXM7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbkJsdXIgPSB0aGlzLm9uQmx1cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdDaGlsZFByb3BzLm9uRm9jdXMgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Gb2N1cycpO1xuICAgICAgICAgIG5ld0NoaWxkUHJvcHMub25CbHVyID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uQmx1cicpO1xuICAgICAgICB9IC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgICAgICAgdmFyIGNoaWxkcmVuQ2xhc3NOYW1lID0gY2xhc3NOYW1lcyhjaGlsZCAmJiBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSk7XG5cbiAgICAgICAgaWYgKGNoaWxkcmVuQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgbmV3Q2hpbGRQcm9wcy5jbGFzc05hbWUgPSBjaGlsZHJlbkNsYXNzTmFtZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjbG9uZVByb3BzID0gX29iamVjdFNwcmVhZCh7fSwgbmV3Q2hpbGRQcm9wcyk7XG5cbiAgICAgICAgaWYgKHN1cHBvcnRSZWYoY2hpbGQpKSB7XG4gICAgICAgICAgY2xvbmVQcm9wcy5yZWYgPSBjb21wb3NlUmVmKHRoaXMudHJpZ2dlclJlZiwgY2hpbGQucmVmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0cmlnZ2VyID0gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgY2xvbmVQcm9wcyk7XG4gICAgICAgIHZhciBwb3J0YWw7IC8vIHByZXZlbnQgdW5tb3VudGluZyBhZnRlciBpdCdzIHJlbmRlcmVkXG5cbiAgICAgICAgaWYgKHBvcHVwVmlzaWJsZSB8fCB0aGlzLnBvcHVwUmVmLmN1cnJlbnQgfHwgZm9yY2VSZW5kZXIpIHtcbiAgICAgICAgICBwb3J0YWwgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChQb3J0YWxDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGtleTogXCJwb3J0YWxcIixcbiAgICAgICAgICAgIGdldENvbnRhaW5lcjogdGhpcy5nZXRDb250YWluZXIsXG4gICAgICAgICAgICBkaWRVcGRhdGU6IHRoaXMuaGFuZGxlUG9ydGFsVXBkYXRlXG4gICAgICAgICAgfSwgdGhpcy5nZXRDb21wb25lbnQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBvcHVwVmlzaWJsZSAmJiBhdXRvRGVzdHJveSkge1xuICAgICAgICAgIHBvcnRhbCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlckNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgb25Qb3B1cE1vdXNlRG93bjogdGhpcy5vblBvcHVwTW91c2VEb3duXG4gICAgICAgICAgfVxuICAgICAgICB9LCB0cmlnZ2VyLCBwb3J0YWwpO1xuICAgICAgfVxuICAgIH1dLCBbe1xuICAgICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhfcmVmLCBwcmV2U3RhdGUpIHtcbiAgICAgICAgdmFyIHBvcHVwVmlzaWJsZSA9IF9yZWYucG9wdXBWaXNpYmxlO1xuICAgICAgICB2YXIgbmV3U3RhdGUgPSB7fTtcblxuICAgICAgICBpZiAocG9wdXBWaXNpYmxlICE9PSB1bmRlZmluZWQgJiYgcHJldlN0YXRlLnBvcHVwVmlzaWJsZSAhPT0gcG9wdXBWaXNpYmxlKSB7XG4gICAgICAgICAgbmV3U3RhdGUucG9wdXBWaXNpYmxlID0gcG9wdXBWaXNpYmxlO1xuICAgICAgICAgIG5ld1N0YXRlLnByZXZQb3B1cFZpc2libGUgPSBwcmV2U3RhdGUucG9wdXBWaXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBUcmlnZ2VyO1xuICB9KFJlYWN0LkNvbXBvbmVudCk7XG5cbiAgVHJpZ2dlci5jb250ZXh0VHlwZSA9IFRyaWdnZXJDb250ZXh0O1xuICBUcmlnZ2VyLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBwcmVmaXhDbHM6ICdyYy10cmlnZ2VyLXBvcHVwJyxcbiAgICBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbjogcmV0dXJuRW1wdHlTdHJpbmcsXG4gICAgZ2V0RG9jdW1lbnQ6IHJldHVybkRvY3VtZW50LFxuICAgIG9uUG9wdXBWaXNpYmxlQ2hhbmdlOiBub29wLFxuICAgIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlOiBub29wLFxuICAgIG9uUG9wdXBBbGlnbjogbm9vcCxcbiAgICBwb3B1cENsYXNzTmFtZTogJycsXG4gICAgbW91c2VFbnRlckRlbGF5OiAwLFxuICAgIG1vdXNlTGVhdmVEZWxheTogMC4xLFxuICAgIGZvY3VzRGVsYXk6IDAsXG4gICAgYmx1ckRlbGF5OiAwLjE1LFxuICAgIHBvcHVwU3R5bGU6IHt9LFxuICAgIGRlc3Ryb3lQb3B1cE9uSGlkZTogZmFsc2UsXG4gICAgcG9wdXBBbGlnbjoge30sXG4gICAgZGVmYXVsdFBvcHVwVmlzaWJsZTogZmFsc2UsXG4gICAgbWFzazogZmFsc2UsXG4gICAgbWFza0Nsb3NhYmxlOiB0cnVlLFxuICAgIGFjdGlvbjogW10sXG4gICAgc2hvd0FjdGlvbjogW10sXG4gICAgaGlkZUFjdGlvbjogW10sXG4gICAgYXV0b0Rlc3Ryb3k6IGZhbHNlXG4gIH07XG4gIHJldHVybiBUcmlnZ2VyO1xufVxuZXhwb3J0IGRlZmF1bHQgZ2VuZXJhdGVUcmlnZ2VyKFBvcnRhbCk7IiwiaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG4vKipcbiAqIFJldHVybiBpZiBhIG5vZGUgaXMgYSBET00gbm9kZS4gRWxzZSB3aWxsIHJldHVybiBieSBgZmluZERPTU5vZGVgXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZmluZERPTU5vZGUobm9kZSkge1xuICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICByZXR1cm4gUmVhY3RET00uZmluZERPTU5vZGUobm9kZSk7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFJlYWN0RE9NID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0LWRvbVwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3JjQW5pbWF0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLWFuaW1hdGVcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJvbWl0LmpzXCIpKTtcblxudmFyIF9yb3cgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9ncmlkL3Jvd1wiKSk7XG5cbnZhciBfY29sID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vZ3JpZC9jb2xcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG52YXIgX3R5cGUgPSByZXF1aXJlKFwiLi4vX3V0aWwvdHlwZVwiKTtcblxudmFyIF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi9jb25zdGFudHNcIik7XG5cbnZhciBfY29udGV4dCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY29udGV4dFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF90b0NvbnN1bWFibGVBcnJheShhcnIpIHsgcmV0dXJuIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IF9pdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCBfbm9uSXRlcmFibGVTcHJlYWQoKTsgfVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpOyB9XG5cbmZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHsgaWYgKCFvKSByZXR1cm47IGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTsgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTsgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7IGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHsgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChpdGVyKSkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aG91dEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkoYXJyKTsgfVxuXG5mdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikgeyBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7IGFycjJbaV0gPSBhcnJbaV07IH0gcmV0dXJuIGFycjI7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBWYWxpZGF0ZVN0YXR1c2VzID0gKDAsIF90eXBlLnR1cGxlKSgnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnLCAnJyk7XG52YXIgRm9ybUxhYmVsQWxpZ25zID0gKDAsIF90eXBlLnR1cGxlKSgnbGVmdCcsICdyaWdodCcpO1xuXG5mdW5jdGlvbiBpbnRlcnNwZXJzZVNwYWNlKGxpc3QpIHtcbiAgcmV0dXJuIGxpc3QucmVkdWNlKGZ1bmN0aW9uIChjdXJyZW50LCBpdGVtKSB7XG4gICAgcmV0dXJuIFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY3VycmVudCksIFsnICcsIGl0ZW1dKTtcbiAgfSwgW10pLnNsaWNlKDEpO1xufVxuXG52YXIgRm9ybUl0ZW0gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEZvcm1JdGVtLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKEZvcm1JdGVtKTtcblxuICBmdW5jdGlvbiBGb3JtSXRlbSgpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRm9ybUl0ZW0pO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBfdGhpcy5oZWxwU2hvdyA9IGZhbHNlOyAvLyBSZXNvbHZlIGR1cGxpY2F0ZWQgaWRzIGJ1ZyBiZXR3ZWVuIGRpZmZlcmVudCBmb3Jtc1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzczNTFcblxuICAgIF90aGlzLm9uTGFiZWxDbGljayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpZCA9IF90aGlzLnByb3BzLmlkIHx8IF90aGlzLmdldElkKCk7XG5cbiAgICAgIGlmICghaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgZm9ybUl0ZW1Ob2RlID0gUmVhY3RET00uZmluZERPTU5vZGUoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgICAgdmFyIGNvbnRyb2wgPSBmb3JtSXRlbU5vZGUucXVlcnlTZWxlY3RvcihcIltpZD1cXFwiXCIuY29uY2F0KGlkLCBcIlxcXCJdXCIpKTtcblxuICAgICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC5mb2N1cykge1xuICAgICAgICBjb250cm9sLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLm9uSGVscEFuaW1FbmQgPSBmdW5jdGlvbiAoX2tleSwgaGVscFNob3cpIHtcbiAgICAgIF90aGlzLmhlbHBTaG93ID0gaGVscFNob3c7XG5cbiAgICAgIGlmICghaGVscFNob3cpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe30pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJGb3JtSXRlbSA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX2l0ZW1DbGFzc05hbWU7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIHN0eWxlID0gX2Euc3R5bGUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwic3R5bGVcIiwgXCJjbGFzc05hbWVcIl0pO1xuXG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdmb3JtJywgY3VzdG9taXplUHJlZml4Q2xzKTtcblxuICAgICAgdmFyIGNoaWxkcmVuID0gX3RoaXMucmVuZGVyQ2hpbGRyZW4ocHJlZml4Q2xzKTtcblxuICAgICAgdmFyIGl0ZW1DbGFzc05hbWUgPSAoX2l0ZW1DbGFzc05hbWUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9pdGVtQ2xhc3NOYW1lLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWl0ZW1cIiksIHRydWUpLCBfZGVmaW5lUHJvcGVydHkoX2l0ZW1DbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaXRlbS13aXRoLWhlbHBcIiksIF90aGlzLmhlbHBTaG93KSwgX2RlZmluZVByb3BlcnR5KF9pdGVtQ2xhc3NOYW1lLCBcIlwiLmNvbmNhdChjbGFzc05hbWUpLCAhIWNsYXNzTmFtZSksIF9pdGVtQ2xhc3NOYW1lKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcm93W1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGl0ZW1DbGFzc05hbWUpLFxuICAgICAgICBzdHlsZTogc3R5bGVcbiAgICAgIH0sICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3RQcm9wcywgWydpZCcsICdodG1sRm9yJywgJ2xhYmVsJywgJ2xhYmVsQWxpZ24nLCAnbGFiZWxDb2wnLCAnd3JhcHBlckNvbCcsICdoZWxwJywgJ2V4dHJhJywgJ3ZhbGlkYXRlU3RhdHVzJywgJ2hhc0ZlZWRiYWNrJywgJ3JlcXVpcmVkJywgJ2NvbG9uJ10pLCB7XG4gICAgICAgIGtleTogXCJyb3dcIlxuICAgICAgfSksIGNoaWxkcmVuKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEZvcm1JdGVtLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBoZWxwID0gX3RoaXMkcHJvcHMuaGVscCxcbiAgICAgICAgICB2YWxpZGF0ZVN0YXR1cyA9IF90aGlzJHByb3BzLnZhbGlkYXRlU3RhdHVzLFxuICAgICAgICAgIGlkID0gX3RoaXMkcHJvcHMuaWQ7XG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSh0aGlzLmdldENvbnRyb2xzKGNoaWxkcmVuLCB0cnVlKS5sZW5ndGggPD0gMSB8fCBoZWxwICE9PSB1bmRlZmluZWQgfHwgdmFsaWRhdGVTdGF0dXMgIT09IHVuZGVmaW5lZCwgJ0Zvcm0uSXRlbScsICdDYW5ub3QgZ2VuZXJhdGUgYHZhbGlkYXRlU3RhdHVzYCBhbmQgYGhlbHBgIGF1dG9tYXRpY2FsbHksICcgKyAnd2hpbGUgdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgYGdldEZpZWxkRGVjb3JhdG9yYCBpbiBpdC4nKTtcbiAgICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKCFpZCwgJ0Zvcm0uSXRlbScsICdgaWRgIGlzIGRlcHJlY2F0ZWQgZm9yIGl0cyBsYWJlbCBgaHRtbEZvcmAuIFBsZWFzZSB1c2UgYGh0bWxGb3JgIGRpcmVjdGx5LicpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRIZWxwTWVzc2FnZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRIZWxwTWVzc2FnZSgpIHtcbiAgICAgIHZhciBoZWxwID0gdGhpcy5wcm9wcy5oZWxwO1xuXG4gICAgICBpZiAoaGVscCA9PT0gdW5kZWZpbmVkICYmIHRoaXMuZ2V0T25seUNvbnRyb2woKSkge1xuICAgICAgICB2YXIgX3RoaXMkZ2V0RmllbGQgPSB0aGlzLmdldEZpZWxkKCksXG4gICAgICAgICAgICBlcnJvcnMgPSBfdGhpcyRnZXRGaWVsZC5lcnJvcnM7XG5cbiAgICAgICAgaWYgKGVycm9ycykge1xuICAgICAgICAgIHJldHVybiBpbnRlcnNwZXJzZVNwYWNlKGVycm9ycy5tYXAoZnVuY3Rpb24gKGUsIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IG51bGw7XG5cbiAgICAgICAgICAgIGlmICggLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGUpKSB7XG4gICAgICAgICAgICAgIG5vZGUgPSBlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGUubWVzc2FnZSkpIHtcbiAgICAgICAgICAgICAgbm9kZSA9IGUubWVzc2FnZTtcbiAgICAgICAgICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWFycmF5LWluZGV4LWtleVxuXG5cbiAgICAgICAgICAgIHJldHVybiBub2RlID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChub2RlLCB7XG4gICAgICAgICAgICAgIGtleTogaW5kZXhcbiAgICAgICAgICAgIH0pIDogZS5tZXNzYWdlO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhlbHA7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldENvbnRyb2xzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldENvbnRyb2xzKGNoaWxkcmVuLCByZWN1cnNpdmVseSkge1xuICAgICAgdmFyIGNvbnRyb2xzID0gW107XG4gICAgICB2YXIgY2hpbGRyZW5BcnJheSA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFyZWN1cnNpdmVseSAmJiBjb250cm9scy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbkFycmF5W2ldO1xuXG4gICAgICAgIGlmIChjaGlsZC50eXBlICYmIChjaGlsZC50eXBlID09PSBGb3JtSXRlbSB8fCBjaGlsZC50eXBlLmRpc3BsYXlOYW1lID09PSAnRm9ybUl0ZW0nKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGlsZC5wcm9wcykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9jb25zdGFudHMuRklFTERfTUVUQV9QUk9QIGluIGNoaWxkLnByb3BzKSB7XG4gICAgICAgICAgLy8gQW5kIG1lYW5zIEZJRUxEX0RBVEFfUFJPUCBpbiBjaGlsZC5wcm9wcywgdG9vLlxuICAgICAgICAgIGNvbnRyb2xzLnB1c2goY2hpbGQpO1xuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLnByb3BzLmNoaWxkcmVuKSB7XG4gICAgICAgICAgY29udHJvbHMgPSBjb250cm9scy5jb25jYXQodGhpcy5nZXRDb250cm9scyhjaGlsZC5wcm9wcy5jaGlsZHJlbiwgcmVjdXJzaXZlbHkpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udHJvbHM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldE9ubHlDb250cm9sXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE9ubHlDb250cm9sKCkge1xuICAgICAgdmFyIGNoaWxkID0gdGhpcy5nZXRDb250cm9scyh0aGlzLnByb3BzLmNoaWxkcmVuLCBmYWxzZSlbMF07XG4gICAgICByZXR1cm4gY2hpbGQgIT09IHVuZGVmaW5lZCA/IGNoaWxkIDogbnVsbDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0Q2hpbGRQcm9wXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldENoaWxkUHJvcChwcm9wKSB7XG4gICAgICB2YXIgY2hpbGQgPSB0aGlzLmdldE9ubHlDb250cm9sKCk7XG4gICAgICByZXR1cm4gY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHNbcHJvcF07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldElkXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldElkKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRQcm9wKCdpZCcpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRNZXRhXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldE1ldGEoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDaGlsZFByb3AoX2NvbnN0YW50cy5GSUVMRF9NRVRBX1BST1ApO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRGaWVsZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRGaWVsZCgpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldENoaWxkUHJvcChfY29uc3RhbnRzLkZJRUxEX0RBVEFfUFJPUCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldFZhbGlkYXRlU3RhdHVzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFZhbGlkYXRlU3RhdHVzKCkge1xuICAgICAgdmFyIG9ubHlDb250cm9sID0gdGhpcy5nZXRPbmx5Q29udHJvbCgpO1xuXG4gICAgICBpZiAoIW9ubHlDb250cm9sKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgdmFyIGZpZWxkID0gdGhpcy5nZXRGaWVsZCgpO1xuXG4gICAgICBpZiAoZmllbGQudmFsaWRhdGluZykge1xuICAgICAgICByZXR1cm4gJ3ZhbGlkYXRpbmcnO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuZXJyb3JzKSB7XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgfVxuXG4gICAgICB2YXIgZmllbGRWYWx1ZSA9ICd2YWx1ZScgaW4gZmllbGQgPyBmaWVsZC52YWx1ZSA6IHRoaXMuZ2V0TWV0YSgpLmluaXRpYWxWYWx1ZTtcblxuICAgICAgaWYgKGZpZWxkVmFsdWUgIT09IHVuZGVmaW5lZCAmJiBmaWVsZFZhbHVlICE9PSBudWxsICYmIGZpZWxkVmFsdWUgIT09ICcnKSB7XG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNSZXF1aXJlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1JlcXVpcmVkKCkge1xuICAgICAgdmFyIHJlcXVpcmVkID0gdGhpcy5wcm9wcy5yZXF1aXJlZDtcblxuICAgICAgaWYgKHJlcXVpcmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmVkO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5nZXRPbmx5Q29udHJvbCgpKSB7XG4gICAgICAgIHZhciBtZXRhID0gdGhpcy5nZXRNZXRhKCkgfHwge307XG4gICAgICAgIHZhciB2YWxpZGF0ZSA9IG1ldGEudmFsaWRhdGUgfHwgW107XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZS5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gISFpdGVtLnJ1bGVzO1xuICAgICAgICB9KS5zb21lKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0ucnVsZXMuc29tZShmdW5jdGlvbiAocnVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJ1bGUucmVxdWlyZWQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckhlbHBcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVySGVscChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBoZWxwID0gdGhpcy5nZXRIZWxwTWVzc2FnZSgpO1xuICAgICAgdmFyIGNoaWxkcmVuID0gaGVscCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4cGxhaW5cIiksXG4gICAgICAgIGtleTogXCJoZWxwXCJcbiAgICAgIH0sIGhlbHApIDogbnVsbDtcblxuICAgICAgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuaGVscFNob3cgPSAhIWNoaWxkcmVuO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjQW5pbWF0ZVtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHJhbnNpdGlvbk5hbWU6IFwic2hvdy1oZWxwXCIsXG4gICAgICAgIGNvbXBvbmVudDogXCJcIixcbiAgICAgICAgdHJhbnNpdGlvbkFwcGVhcjogdHJ1ZSxcbiAgICAgICAga2V5OiBcImhlbHBcIixcbiAgICAgICAgb25FbmQ6IHRoaXMub25IZWxwQW5pbUVuZFxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJFeHRyYVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJFeHRyYShwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBleHRyYSA9IHRoaXMucHJvcHMuZXh0cmE7XG4gICAgICByZXR1cm4gZXh0cmEgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1leHRyYVwiKVxuICAgICAgfSwgZXh0cmEpIDogbnVsbDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyVmFsaWRhdGVXcmFwcGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlclZhbGlkYXRlV3JhcHBlcihwcmVmaXhDbHMsIGMxLCBjMiwgYzMpIHtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgb25seUNvbnRyb2wgPSB0aGlzLmdldE9ubHlDb250cm9sO1xuICAgICAgdmFyIHZhbGlkYXRlU3RhdHVzID0gcHJvcHMudmFsaWRhdGVTdGF0dXMgPT09IHVuZGVmaW5lZCAmJiBvbmx5Q29udHJvbCA/IHRoaXMuZ2V0VmFsaWRhdGVTdGF0dXMoKSA6IHByb3BzLnZhbGlkYXRlU3RhdHVzO1xuICAgICAgdmFyIGNsYXNzZXMgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWl0ZW0tY29udHJvbFwiKTtcblxuICAgICAgaWYgKHZhbGlkYXRlU3RhdHVzKSB7XG4gICAgICAgIGNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWl0ZW0tY29udHJvbFwiKSwge1xuICAgICAgICAgICdoYXMtZmVlZGJhY2snOiB2YWxpZGF0ZVN0YXR1cyAmJiBwcm9wcy5oYXNGZWVkYmFjayxcbiAgICAgICAgICAnaGFzLXN1Y2Nlc3MnOiB2YWxpZGF0ZVN0YXR1cyA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgICAgICdoYXMtd2FybmluZyc6IHZhbGlkYXRlU3RhdHVzID09PSAnd2FybmluZycsXG4gICAgICAgICAgJ2hhcy1lcnJvcic6IHZhbGlkYXRlU3RhdHVzID09PSAnZXJyb3InLFxuICAgICAgICAgICdpcy12YWxpZGF0aW5nJzogdmFsaWRhdGVTdGF0dXMgPT09ICd2YWxpZGF0aW5nJ1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdmFyIGljb25UeXBlID0gJyc7XG5cbiAgICAgIHN3aXRjaCAodmFsaWRhdGVTdGF0dXMpIHtcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgaWNvblR5cGUgPSAnY2hlY2stY2lyY2xlJztcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICBpY29uVHlwZSA9ICdleGNsYW1hdGlvbi1jaXJjbGUnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICBpY29uVHlwZSA9ICdjbG9zZS1jaXJjbGUnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3ZhbGlkYXRpbmcnOlxuICAgICAgICAgIGljb25UeXBlID0gJ2xvYWRpbmcnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWNvblR5cGUgPSAnJztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdmFyIGljb24gPSBwcm9wcy5oYXNGZWVkYmFjayAmJiBpY29uVHlwZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLWNoaWxkcmVuLWljb25cIilcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICB0eXBlOiBpY29uVHlwZSxcbiAgICAgICAgdGhlbWU6IGljb25UeXBlID09PSAnbG9hZGluZycgPyAnb3V0bGluZWQnIDogJ2ZpbGxlZCdcbiAgICAgIH0pKSA6IG51bGw7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLWNoaWxkcmVuXCIpXG4gICAgICB9LCBjMSwgaWNvbiksIGMyLCBjMyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlcldyYXBwZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyV3JhcHBlcihwcmVmaXhDbHMsIGNoaWxkcmVuKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb250ZXh0W1wiZGVmYXVsdFwiXS5Db25zdW1lciwge1xuICAgICAgICBrZXk6IFwid3JhcHBlclwiXG4gICAgICB9LCBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgdmFyIGNvbnRleHRXcmFwcGVyQ29sID0gX3JlZjIud3JhcHBlckNvbCxcbiAgICAgICAgICAgIHZlcnRpY2FsID0gX3JlZjIudmVydGljYWw7XG4gICAgICAgIHZhciB3cmFwcGVyQ29sID0gX3RoaXMyLnByb3BzLndyYXBwZXJDb2w7XG4gICAgICAgIHZhciBtZXJnZWRXcmFwcGVyQ29sID0gKCd3cmFwcGVyQ29sJyBpbiBfdGhpczIucHJvcHMgPyB3cmFwcGVyQ29sIDogY29udGV4dFdyYXBwZXJDb2wpIHx8IHt9O1xuICAgICAgICB2YXIgY2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLWNvbnRyb2wtd3JhcHBlclwiKSwgbWVyZ2VkV3JhcHBlckNvbC5jbGFzc05hbWUpOyAvLyBObyBwYXNzIEZvcm1Db250ZXh0IHNpbmNlIGl0J3MgdXNlbGVzc1xuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29udGV4dFtcImRlZmF1bHRcIl0uUHJvdmlkZXIsIHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmVydGljYWw6IHZlcnRpY2FsXG4gICAgICAgICAgfVxuICAgICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29sW1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe30sIG1lcmdlZFdyYXBwZXJDb2wsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZVxuICAgICAgICB9KSwgY2hpbGRyZW4pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJMYWJlbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJMYWJlbChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpczMgPSB0aGlzO1xuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbnRleHRbXCJkZWZhdWx0XCJdLkNvbnN1bWVyLCB7XG4gICAgICAgIGtleTogXCJsYWJlbFwiXG4gICAgICB9LCBmdW5jdGlvbiAoX3JlZjMpIHtcbiAgICAgICAgdmFyIF9jbGFzc05hbWVzO1xuXG4gICAgICAgIHZhciB2ZXJ0aWNhbCA9IF9yZWYzLnZlcnRpY2FsLFxuICAgICAgICAgICAgY29udGV4dExhYmVsQWxpZ24gPSBfcmVmMy5sYWJlbEFsaWduLFxuICAgICAgICAgICAgY29udGV4dExhYmVsQ29sID0gX3JlZjMubGFiZWxDb2wsXG4gICAgICAgICAgICBjb250ZXh0Q29sb24gPSBfcmVmMy5jb2xvbjtcbiAgICAgICAgdmFyIF90aGlzMyRwcm9wcyA9IF90aGlzMy5wcm9wcyxcbiAgICAgICAgICAgIGxhYmVsID0gX3RoaXMzJHByb3BzLmxhYmVsLFxuICAgICAgICAgICAgbGFiZWxDb2wgPSBfdGhpczMkcHJvcHMubGFiZWxDb2wsXG4gICAgICAgICAgICBsYWJlbEFsaWduID0gX3RoaXMzJHByb3BzLmxhYmVsQWxpZ24sXG4gICAgICAgICAgICBjb2xvbiA9IF90aGlzMyRwcm9wcy5jb2xvbixcbiAgICAgICAgICAgIGlkID0gX3RoaXMzJHByb3BzLmlkLFxuICAgICAgICAgICAgaHRtbEZvciA9IF90aGlzMyRwcm9wcy5odG1sRm9yO1xuXG4gICAgICAgIHZhciByZXF1aXJlZCA9IF90aGlzMy5pc1JlcXVpcmVkKCk7XG5cbiAgICAgICAgdmFyIG1lcmdlZExhYmVsQ29sID0gKCdsYWJlbENvbCcgaW4gX3RoaXMzLnByb3BzID8gbGFiZWxDb2wgOiBjb250ZXh0TGFiZWxDb2wpIHx8IHt9O1xuICAgICAgICB2YXIgbWVyZ2VkTGFiZWxBbGlnbiA9ICdsYWJlbEFsaWduJyBpbiBfdGhpczMucHJvcHMgPyBsYWJlbEFsaWduIDogY29udGV4dExhYmVsQWxpZ247XG4gICAgICAgIHZhciBsYWJlbENsc0Jhc2ljID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLWxhYmVsXCIpO1xuICAgICAgICB2YXIgbGFiZWxDb2xDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShsYWJlbENsc0Jhc2ljLCBtZXJnZWRMYWJlbEFsaWduID09PSAnbGVmdCcgJiYgXCJcIi5jb25jYXQobGFiZWxDbHNCYXNpYywgXCItbGVmdFwiKSwgbWVyZ2VkTGFiZWxDb2wuY2xhc3NOYW1lKTtcbiAgICAgICAgdmFyIGxhYmVsQ2hpbGRyZW4gPSBsYWJlbDsgLy8gS2VlcCBsYWJlbCBpcyBvcmlnaW5hbCB3aGVyZSB0aGVyZSBzaG91bGQgaGF2ZSBubyBjb2xvblxuXG4gICAgICAgIHZhciBjb21wdXRlZENvbG9uID0gY29sb24gPT09IHRydWUgfHwgY29udGV4dENvbG9uICE9PSBmYWxzZSAmJiBjb2xvbiAhPT0gZmFsc2U7XG4gICAgICAgIHZhciBoYXZlQ29sb24gPSBjb21wdXRlZENvbG9uICYmICF2ZXJ0aWNhbDsgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgdXNlciBpbnB1dCBjb2xvblxuXG4gICAgICAgIGlmIChoYXZlQ29sb24gJiYgdHlwZW9mIGxhYmVsID09PSAnc3RyaW5nJyAmJiBsYWJlbC50cmltKCkgIT09ICcnKSB7XG4gICAgICAgICAgbGFiZWxDaGlsZHJlbiA9IGxhYmVsLnJlcGxhY2UoL1vvvJo6XVxccyokLywgJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGxhYmVsQ2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLXJlcXVpcmVkXCIpLCByZXF1aXJlZCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pdGVtLW5vLWNvbG9uXCIpLCAhY29tcHV0ZWRDb2xvbiksIF9jbGFzc05hbWVzKSk7XG4gICAgICAgIHJldHVybiBsYWJlbCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb2xbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgbWVyZ2VkTGFiZWxDb2wsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IGxhYmVsQ29sQ2xhc3NOYW1lXG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtcbiAgICAgICAgICBodG1sRm9yOiBodG1sRm9yIHx8IGlkIHx8IF90aGlzMy5nZXRJZCgpLFxuICAgICAgICAgIGNsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsXG4gICAgICAgICAgdGl0bGU6IHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgPyBsYWJlbCA6ICcnLFxuICAgICAgICAgIG9uQ2xpY2s6IF90aGlzMy5vbkxhYmVsQ2xpY2tcbiAgICAgICAgfSwgbGFiZWxDaGlsZHJlbikpIDogbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJDaGlsZHJlblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJDaGlsZHJlbihwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICByZXR1cm4gW3RoaXMucmVuZGVyTGFiZWwocHJlZml4Q2xzKSwgdGhpcy5yZW5kZXJXcmFwcGVyKHByZWZpeENscywgdGhpcy5yZW5kZXJWYWxpZGF0ZVdyYXBwZXIocHJlZml4Q2xzLCBjaGlsZHJlbiwgdGhpcy5yZW5kZXJIZWxwKHByZWZpeENscyksIHRoaXMucmVuZGVyRXh0cmEocHJlZml4Q2xzKSkpXTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyRm9ybUl0ZW0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBGb3JtSXRlbTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBGb3JtSXRlbTtcbkZvcm1JdGVtLmRlZmF1bHRQcm9wcyA9IHtcbiAgaGFzRmVlZGJhY2s6IGZhbHNlXG59O1xuRm9ybUl0ZW0ucHJvcFR5cGVzID0ge1xuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGxhYmVsOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubm9kZV0pLFxuICBsYWJlbENvbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgaGVscDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm5vZGUsIFByb3BUeXBlcy5ib29sXSksXG4gIHZhbGlkYXRlU3RhdHVzOiBQcm9wVHlwZXMub25lT2YoVmFsaWRhdGVTdGF0dXNlcyksXG4gIGhhc0ZlZWRiYWNrOiBQcm9wVHlwZXMuYm9vbCxcbiAgd3JhcHBlckNvbDogUHJvcFR5cGVzLm9iamVjdCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBjb2xvbjogUHJvcFR5cGVzLmJvb2xcbn07IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCB7IGdlbmVyYXRlIGFzIGdlbmVyYXRlQ29sb3IgfSBmcm9tICdAYW50LWRlc2lnbi9jb2xvcnMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7XG4gICAgaWYgKCEocHJvY2VzcyAmJiBwcm9jZXNzLmVudiAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbQGFudC1kZXNpZ24vaWNvbnMtcmVhY3RdOiAnICsgbWVzc2FnZSArICcuJyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSWNvbkRlZmluaXRpb24odGFyZ2V0KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQubmFtZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHRhcmdldC50aGVtZSA9PT0gJ3N0cmluZycgJiYgKHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdHRycygpIHtcbiAgICB2YXIgYXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGF0dHJzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICAgIHZhciB2YWwgPSBhdHRyc1trZXldO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGFjYy5jbGFzc05hbWUgPSB2YWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGFjY1snY2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG59XG5leHBvcnQgdmFyIE1pbmlNYXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWluaU1hcCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1pbmlNYXApO1xuXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhNaW5pTWFwLCBbe1xuICAgICAgICBrZXk6ICdjbGVhcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHt9O1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdkZWxldGUnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZShrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGUgdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2dldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2hhcycsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gQm9vbGVhbih0aGlzLmNvbGxlY3Rpb25ba2V5XSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ3NldCcsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdzaXplJyxcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jb2xsZWN0aW9uKS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gTWluaU1hcDtcbn0oKTtcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZShub2RlLCBrZXksIHJvb3RQcm9wcykge1xuICAgIGlmICghcm9vdFByb3BzKSB7XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7IGtleToga2V5IH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCBfZXh0ZW5kcyh7XG4gICAgICAgIGtleToga2V5XG4gICAgfSwgbm9ybWFsaXplQXR0cnMobm9kZS5hdHRycyksIHJvb3RQcm9wcyksIChub2RlLmNoaWxkcmVuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGUoY2hpbGQsIGtleSArICctJyArIG5vZGUudGFnICsgJy0nICsgaW5kZXgpO1xuICAgIH0pKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpIHtcbiAgICAvLyBjaG9vc2UgdGhlIHNlY29uZCBjb2xvclxuICAgIHJldHVybiBnZW5lcmF0ZUNvbG9yKHByaW1hcnlDb2xvcilbMF07XG59XG5leHBvcnQgZnVuY3Rpb24gd2l0aFN1ZmZpeChuYW1lLCB0aGVtZSkge1xuICAgIHN3aXRjaCAodGhlbWUpIHtcbiAgICAgICAgY2FzZSAnZmlsbCc6XG4gICAgICAgICAgICByZXR1cm4gbmFtZSArICctZmlsbCc7XG4gICAgICAgIGNhc2UgJ291dGxpbmUnOlxuICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAnLW8nO1xuICAgICAgICBjYXNlICd0d290b25lJzpcbiAgICAgICAgICAgIHJldHVybiBuYW1lICsgJy10d290b25lJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gdGhlbWUgdHlwZTogJyArIHRoZW1lICsgJywgbmFtZTogJyArIG5hbWUpO1xuICAgIH1cbn0iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgJGV4cG9ydCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCBzb3VyY2UpIHtcbiAgdmFyIElTX0ZPUkNFRCA9IHR5cGUgJiAkZXhwb3J0LkY7XG4gIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HO1xuICB2YXIgSVNfU1RBVElDID0gdHlwZSAmICRleHBvcnQuUztcbiAgdmFyIElTX1BST1RPID0gdHlwZSAmICRleHBvcnQuUDtcbiAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5CO1xuICB2YXIgSVNfV1JBUCA9IHR5cGUgJiAkZXhwb3J0Llc7XG4gIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gY29yZSA6IGNvcmVbbmFtZV0gfHwgKGNvcmVbbmFtZV0gPSB7fSk7XG4gIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXTtcbiAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IGdsb2JhbCA6IElTX1NUQVRJQyA/IGdsb2JhbFtuYW1lXSA6IChnbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG4gIHZhciBrZXksIG93biwgb3V0O1xuICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lO1xuICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuICAgIGlmIChvd24gJiYgaGFzKGV4cG9ydHMsIGtleSkpIGNvbnRpbnVlO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gb3duID8gdGFyZ2V0W2tleV0gOiBzb3VyY2Vba2V5XTtcbiAgICAvLyBwcmV2ZW50IGdsb2JhbCBwb2xsdXRpb24gZm9yIG5hbWVzcGFjZXNcbiAgICBleHBvcnRzW2tleV0gPSBJU19HTE9CQUwgJiYgdHlwZW9mIHRhcmdldFtrZXldICE9ICdmdW5jdGlvbicgPyBzb3VyY2Vba2V5XVxuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgOiBJU19CSU5EICYmIG93biA/IGN0eChvdXQsIGdsb2JhbClcbiAgICAvLyB3cmFwIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIHByZXZlbnQgY2hhbmdlIHRoZW0gaW4gbGlicmFyeVxuICAgIDogSVNfV1JBUCAmJiB0YXJnZXRba2V5XSA9PSBvdXQgPyAoZnVuY3Rpb24gKEMpIHtcbiAgICAgIHZhciBGID0gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDKSB7XG4gICAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgQygpO1xuICAgICAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IEMoYSk7XG4gICAgICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgQyhhLCBiKTtcbiAgICAgICAgICB9IHJldHVybiBuZXcgQyhhLCBiLCBjKTtcbiAgICAgICAgfSByZXR1cm4gQy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICAgIEZbUFJPVE9UWVBFXSA9IENbUFJPVE9UWVBFXTtcbiAgICAgIHJldHVybiBGO1xuICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kc1xuICAgIH0pKG91dCkgOiBJU19QUk9UTyAmJiB0eXBlb2Ygb3V0ID09ICdmdW5jdGlvbicgPyBjdHgoRnVuY3Rpb24uY2FsbCwgb3V0KSA6IG91dDtcbiAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUubWV0aG9kcy4lTkFNRSVcbiAgICBpZiAoSVNfUFJPVE8pIHtcbiAgICAgIChleHBvcnRzLnZpcnR1YWwgfHwgKGV4cG9ydHMudmlydHVhbCA9IHt9KSlba2V5XSA9IG91dDtcbiAgICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5wcm90b3R5cGUuJU5BTUUlXG4gICAgICBpZiAodHlwZSAmICRleHBvcnQuUiAmJiBleHBQcm90byAmJiAhZXhwUHJvdG9ba2V5XSkgaGlkZShleHBQcm90bywga2V5LCBvdXQpO1xuICAgIH1cbiAgfVxufTtcbi8vIHR5cGUgYml0bWFwXG4kZXhwb3J0LkYgPSAxOyAgIC8vIGZvcmNlZFxuJGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWxcbiRleHBvcnQuUyA9IDQ7ICAgLy8gc3RhdGljXG4kZXhwb3J0LlAgPSA4OyAgIC8vIHByb3RvXG4kZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmRcbiRleHBvcnQuVyA9IDMyOyAgLy8gd3JhcFxuJGV4cG9ydC5VID0gNjQ7ICAvLyBzYWZlXG4kZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWBcbm1vZHVsZS5leHBvcnRzID0gJGV4cG9ydDtcbiIsInZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBvbWl0O1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pOyB9KTsgfSBlbHNlIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycykgeyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHNvdXJjZSkpOyB9IGVsc2UgeyBvd25LZXlzKE9iamVjdChzb3VyY2UpKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7IH0pOyB9IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5mdW5jdGlvbiBvbWl0KG9iaiwgZmllbGRzKSB7XG4gIHZhciBjbG9uZSA9IF9vYmplY3RTcHJlYWQoe30sIG9iaik7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRzKSkge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGRlbGV0ZSBjbG9uZVtrZXldO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNsb25lO1xufSIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgXzEgPSByZXF1aXJlKFwiLi9cIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9pbnRlcmZhY2VzXCIpO1xuY29uc3QgRXZlbnRUYXJnZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudFRhcmdldEltcGxcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4vRE9NRXhjZXB0aW9uXCIpO1xuY29uc3QgYWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtXCIpO1xuY29uc3QgVVJMQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL3VybC9saWIvVVJMQWxnb3JpdGhtXCIpO1xuY29uc3QgV2ViSURMQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtL1dlYklETEFsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyaWMgWE1MIG5vZGUuXG4gKi9cbmNsYXNzIE5vZGVJbXBsIGV4dGVuZHMgRXZlbnRUYXJnZXRJbXBsXzEuRXZlbnRUYXJnZXRJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgTm9kZWAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3BhcmVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sYXN0Q2hpbGQgPSBudWxsO1xuICAgICAgICB0aGlzLl9wcmV2aW91c1NpYmxpbmcgPSBudWxsO1xuICAgICAgICB0aGlzLl9uZXh0U2libGluZyA9IG51bGw7XG4gICAgfVxuICAgIGdldCBfY2hpbGROb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19jaGlsZE5vZGVzIHx8ICh0aGlzLl9fY2hpbGROb2RlcyA9IGFsZ29yaXRobV8xLmNyZWF0ZV9ub2RlTGlzdCh0aGlzKSk7XG4gICAgfVxuICAgIGdldCBfbm9kZURvY3VtZW50KCkgeyByZXR1cm4gdGhpcy5fbm9kZURvY3VtZW50T3ZlcnJpZGUgfHwgXzEuZG9tLndpbmRvdy5fYXNzb2NpYXRlZERvY3VtZW50OyB9XG4gICAgc2V0IF9ub2RlRG9jdW1lbnQodmFsKSB7IHRoaXMuX25vZGVEb2N1bWVudE92ZXJyaWRlID0gdmFsOyB9XG4gICAgZ2V0IF9yZWdpc3RlcmVkT2JzZXJ2ZXJMaXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fX3JlZ2lzdGVyZWRPYnNlcnZlckxpc3QgfHwgKHRoaXMuX19yZWdpc3RlcmVkT2JzZXJ2ZXJMaXN0ID0gW10pO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgbm9kZVR5cGUoKSB7IHJldHVybiB0aGlzLl9ub2RlVHlwZTsgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBzdHJpbmcgYXBwcm9wcmlhdGUgZm9yIHRoZSB0eXBlIG9mIG5vZGUuXG4gICAgICovXG4gICAgZ2V0IG5vZGVOYW1lKCkge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9odG1sVXBwZXJjYXNlZFF1YWxpZmllZE5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQXR0ck5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9xdWFsaWZpZWROYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0V4Y2x1c2l2ZVRleHROb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIjdGV4dFwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0NEQVRBU2VjdGlvbk5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIiNjZGF0YS1zZWN0aW9uXCI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzUHJvY2Vzc2luZ0luc3RydWN0aW9uTm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNDb21tZW50Tm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiI2NvbW1lbnRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudE5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIiNkb2N1bWVudFwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50VHlwZU5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50RnJhZ21lbnROb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIjZG9jdW1lbnQtZnJhZ21lbnRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFic29sdXRlIGJhc2UgVVJMIG9mIHRoZSBub2RlLlxuICAgICAqL1xuICAgIGdldCBiYXNlVVJJKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGJhc2VVUkkgYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gbm9kZSBkb2N1bWVudOKAmXMgZG9jdW1lbnRcbiAgICAgICAgICogYmFzZSBVUkwsIHNlcmlhbGl6ZWQuXG4gICAgICAgICAqIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxuICAgICAgICAgKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS91cmxzLWFuZC1mZXRjaGluZy5odG1sI2RvY3VtZW50LWJhc2UtdXJsXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gVVJMQWxnb3JpdGhtXzEudXJsU2VyaWFsaXplcih0aGlzLl9ub2RlRG9jdW1lbnQuX1VSTCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgbm9kZSBpcyByb290ZWQgdG8gYSBkb2N1bWVudCBub2RlLlxuICAgICAqL1xuICAgIGdldCBpc0Nvbm5lY3RlZCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBpc0Nvbm5lY3RlZCBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0cnVlLCBpZiBjb250ZXh0IG9iamVjdFxuICAgICAgICAgKiBpcyBjb25uZWN0ZWQsIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUodGhpcykgJiYgYWxnb3JpdGhtXzEuc2hhZG93VHJlZV9pc0Nvbm5lY3RlZCh0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGFyZW50IGRvY3VtZW50LlxuICAgICAqL1xuICAgIGdldCBvd25lckRvY3VtZW50KCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIG93bmVyRG9jdW1lbnQgYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gbnVsbCwgaWYgdGhlIGNvbnRleHRcbiAgICAgICAgICogb2JqZWN0IGlzIGEgZG9jdW1lbnQsIGFuZCB0aGUgY29udGV4dCBvYmplY3TigJlzIG5vZGUgZG9jdW1lbnQgb3RoZXJ3aXNlLlxuICAgICAgICAgKiBfTm90ZTpfIFRoZSBub2RlIGRvY3VtZW50IG9mIGEgZG9jdW1lbnQgaXMgdGhhdCBkb2N1bWVudCBpdHNlbGYuIEFsbFxuICAgICAgICAgKiBub2RlcyBoYXZlIGEgbm9kZSBkb2N1bWVudCBhdCBhbGwgdGltZXMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbm9kZURvY3VtZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSByb290IG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyAtIGlmIG9wdGlvbnMgaGFzIGBjb21wb3NlZCA9IHRydWVgIHRoaXMgZnVuY3Rpb25cbiAgICAgKiByZXR1cm5zIHRoZSBub2RlJ3Mgc2hhZG93LWluY2x1ZGluZyByb290LCBvdGhlcndpc2UgaXQgcmV0dXJuc1xuICAgICAqIHRoZSBub2RlJ3Mgcm9vdCBub2RlLlxuICAgICAqL1xuICAgIGdldFJvb3ROb2RlKG9wdGlvbnMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnZXRSb290Tm9kZShvcHRpb25zKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gY29udGV4dFxuICAgICAgICAgKiBvYmplY3TigJlzIHNoYWRvdy1pbmNsdWRpbmcgcm9vdCBpZiBvcHRpb25z4oCZcyBjb21wb3NlZCBpcyB0cnVlLFxuICAgICAgICAgKiBhbmQgY29udGV4dCBvYmplY3TigJlzIHJvb3Qgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUodGhpcywgISFvcHRpb25zICYmIG9wdGlvbnMuY29tcG9zZWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwYXJlbnQgbm9kZS5cbiAgICAgKi9cbiAgICBnZXQgcGFyZW50Tm9kZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwYXJlbnROb2RlIGF0dHJpYnV0ZeKAmXMgZ2V0dGVyIG11c3QgcmV0dXJuIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgcGFyZW50LlxuICAgICAgICAgKiBfTm90ZTpfIEFuIEF0dHIgbm9kZSBoYXMgbm8gcGFyZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQXR0cmlidXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcGFyZW50IGVsZW1lbnQuXG4gICAgICovXG4gICAgZ2V0IHBhcmVudEVsZW1lbnQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcGFyZW50RWxlbWVudCBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0aGUgY29udGV4dCBvYmplY3TigJlzXG4gICAgICAgICAqIHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudCAmJiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZSh0aGlzLl9wYXJlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbm9kZSBoYXMgYW55IGNoaWxkcmVuLlxuICAgICAqL1xuICAgIGhhc0NoaWxkTm9kZXMoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaGFzQ2hpbGROb2RlcygpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0cnVlIGlmIHRoZSBjb250ZXh0XG4gICAgICAgICAqIG9iamVjdCBoYXMgY2hpbGRyZW4sIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gKHRoaXMuX2ZpcnN0Q2hpbGQgIT09IG51bGwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEge0BsaW5rIE5vZGVMaXN0fSBvZiBjaGlsZCBub2Rlcy5cbiAgICAgKi9cbiAgICBnZXQgY2hpbGROb2RlcygpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBjaGlsZE5vZGVzIGF0dHJpYnV0ZeKAmXMgZ2V0dGVyIG11c3QgcmV0dXJuIGEgTm9kZUxpc3Qgcm9vdGVkIGF0IHRoZVxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdCBtYXRjaGluZyBvbmx5IGNoaWxkcmVuLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkTm9kZXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpcnN0IGNoaWxkIG5vZGUuXG4gICAgICovXG4gICAgZ2V0IGZpcnN0Q2hpbGQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZmlyc3RDaGlsZCBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0aGUgY29udGV4dCBvYmplY3TigJlzIGZpcnN0XG4gICAgICAgICAqIGNoaWxkLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpcnN0Q2hpbGQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGxhc3QgY2hpbGQgbm9kZS5cbiAgICAgKi9cbiAgICBnZXQgbGFzdENoaWxkKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxhc3RDaGlsZCBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0aGUgY29udGV4dCBvYmplY3TigJlzIGxhc3RcbiAgICAgICAgICogY2hpbGQuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdENoaWxkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwcmV2aW91cyBzaWJsaW5nIG5vZGUuXG4gICAgICovXG4gICAgZ2V0IHByZXZpb3VzU2libGluZygpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwcmV2aW91c1NpYmxpbmcgYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gdGhlIGNvbnRleHQgb2JqZWN04oCZc1xuICAgICAgICAgKiBwcmV2aW91cyBzaWJsaW5nLlxuICAgICAgICAgKiBfTm90ZTpfIEFuIEF0dHIgbm9kZSBoYXMgbm8gc2libGluZ3MuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNTaWJsaW5nO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHNpYmxpbmcgbm9kZS5cbiAgICAgKi9cbiAgICBnZXQgbmV4dFNpYmxpbmcoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbmV4dFNpYmxpbmcgYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gdGhlIGNvbnRleHQgb2JqZWN04oCZc1xuICAgICAgICAgKiBuZXh0IHNpYmxpbmcuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFNpYmxpbmc7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgb3Igc2V0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSB7QGxpbmsgQ2hhcmFjdGVyRGF0YX0gbm9kZSBvciB0aGVcbiAgICAgKiB2YWx1ZSBvZiBhbiB7QGxpbmsgQEF0dHJ9IG5vZGUuIEZvciBvdGhlciBub2RlIHR5cGVzIHJldHVybnMgYG51bGxgLlxuICAgICAqL1xuICAgIGdldCBub2RlVmFsdWUoKSB7XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNBdHRyTm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0NoYXJhY3RlckRhdGFOb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBub2RlVmFsdWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNBdHRyTm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEuYXR0cl9zZXRBbkV4aXN0aW5nQXR0cmlidXRlVmFsdWUodGhpcywgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0NoYXJhY3RlckRhdGFOb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhKHRoaXMsIDAsIHRoaXMuX2RhdGEubGVuZ3RoLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiBkYXRhIG9mIGFsbCB0aGUge0BsaW5rIFRleHR9XG4gICAgICogbm9kZSBkZXNjZW5kYW50cyBpbiB0cmVlIG9yZGVyLiBXaGVuIHNldCwgcmVwbGFjZXMgdGhlIHRleHRcbiAgICAgKiBjb250ZW50cyBvZiB0aGUgbm9kZSB3aXRoIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICAgKi9cbiAgICBnZXQgdGV4dENvbnRlbnQoKSB7XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudEZyYWdtZW50Tm9kZSh0aGlzKSB8fCB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLnRleHRfZGVzY2VuZGFudFRleHRDb250ZW50KHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0F0dHJOb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQ2hhcmFjdGVyRGF0YU5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0IHRleHRDb250ZW50KHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRGcmFnbWVudE5vZGUodGhpcykgfHwgdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIGFsZ29yaXRobV8xLm5vZGVfc3RyaW5nUmVwbGFjZUFsbCh2YWx1ZSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQXR0ck5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIGFsZ29yaXRobV8xLmF0dHJfc2V0QW5FeGlzdGluZ0F0dHJpYnV0ZVZhbHVlKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNDaGFyYWN0ZXJEYXRhTm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEuY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YSh0aGlzLCAwLCBhbGdvcml0aG1fMS50cmVlX25vZGVMZW5ndGgodGhpcyksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQdXRzIGFsbCB7QGxpbmsgVGV4dH0gbm9kZXMgaW4gdGhlIGZ1bGwgZGVwdGggb2YgdGhlIHN1Yi10cmVlXG4gICAgICogdW5kZXJuZWF0aCB0aGlzIG5vZGUgaW50byBhIFwibm9ybWFsXCIgZm9ybSB3aGVyZSBvbmx5IG1hcmt1cFxuICAgICAqIChlLmcuLCB0YWdzLCBjb21tZW50cywgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMsIENEQVRBIHNlY3Rpb25zLFxuICAgICAqIGFuZCBlbnRpdHkgcmVmZXJlbmNlcykgc2VwYXJhdGVzIHtAbGluayBUZXh0fSBub2RlcywgaS5lLiwgdGhlcmVcbiAgICAgKiBhcmUgbm8gYWRqYWNlbnQgVGV4dCBub2Rlcy5cbiAgICAgKi9cbiAgICBub3JtYWxpemUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbm9ybWFsaXplKCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcnVuIHRoZXNlIHN0ZXBzIGZvciBlYWNoXG4gICAgICAgICAqIGRlc2NlbmRhbnQgZXhjbHVzaXZlIFRleHQgbm9kZSBub2RlIG9mIGNvbnRleHQgb2JqZWN0OlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZGVzY2VuZGFudE5vZGVzID0gW107XG4gICAgICAgIGxldCBub2RlID0gYWxnb3JpdGhtXzEudHJlZV9nZXRGaXJzdERlc2NlbmRhbnROb2RlKHRoaXMsIGZhbHNlLCBmYWxzZSwgKGUpID0+IHV0aWxfMS5HdWFyZC5pc0V4Y2x1c2l2ZVRleHROb2RlKGUpKTtcbiAgICAgICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGRlc2NlbmRhbnROb2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgbm9kZSA9IGFsZ29yaXRobV8xLnRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlKHRoaXMsIG5vZGUsIGZhbHNlLCBmYWxzZSwgKGUpID0+IHV0aWxfMS5HdWFyZC5pc0V4Y2x1c2l2ZVRleHROb2RlKGUpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlc2NlbmRhbnROb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGRlc2NlbmRhbnROb2Rlc1tpXTtcbiAgICAgICAgICAgIGlmIChub2RlLl9wYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDEuIExldCBsZW5ndGggYmUgbm9kZeKAmXMgbGVuZ3RoLlxuICAgICAgICAgICAgICogMi4gSWYgbGVuZ3RoIGlzIHplcm8sIHRoZW4gcmVtb3ZlIG5vZGUgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHRcbiAgICAgICAgICAgICAqIGV4Y2x1c2l2ZSBUZXh0IG5vZGUsIGlmIGFueS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IGxlbmd0aCA9IGFsZ29yaXRobV8xLnRyZWVfbm9kZUxlbmd0aChub2RlKTtcbiAgICAgICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBhbGdvcml0aG1fMS5tdXRhdGlvbl9yZW1vdmUobm9kZSwgbm9kZS5fcGFyZW50KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy4gTGV0IGRhdGEgYmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIGRhdGEgb2Ygbm9kZeKAmXMgY29udGlndW91c1xuICAgICAgICAgICAgICogZXhjbHVzaXZlIFRleHQgbm9kZXMgKGV4Y2x1ZGluZyBpdHNlbGYpLCBpbiB0cmVlIG9yZGVyLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCB0ZXh0U2libGluZ3MgPSBbXTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gJyc7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNpYmxpbmcgb2YgYWxnb3JpdGhtXzEudGV4dF9jb250aWd1b3VzRXhjbHVzaXZlVGV4dE5vZGVzKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgdGV4dFNpYmxpbmdzLnB1c2goc2libGluZyk7XG4gICAgICAgICAgICAgICAgZGF0YSArPSBzaWJsaW5nLl9kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiA0LiBSZXBsYWNlIGRhdGEgd2l0aCBub2RlIG5vZGUsIG9mZnNldCBsZW5ndGgsIGNvdW50IDAsIGFuZCBkYXRhIGRhdGEuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGFsZ29yaXRobV8xLmNoYXJhY3RlckRhdGFfcmVwbGFjZURhdGEobm9kZSwgbGVuZ3RoLCAwLCBkYXRhKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4gTGV0IGN1cnJlbnROb2RlIGJlIG5vZGXigJlzIG5leHQgc2libGluZy5cbiAgICAgICAgICAgICAqIDYuIFdoaWxlIGN1cnJlbnROb2RlIGlzIGFuIGV4Y2x1c2l2ZSBUZXh0IG5vZGU6XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChfMS5kb20ucmFuZ2VMaXN0LnNpemUgIT09IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBub2RlLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudE5vZGUgIT09IG51bGwgJiYgdXRpbF8xLkd1YXJkLmlzRXhjbHVzaXZlVGV4dE5vZGUoY3VycmVudE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiA2LjEuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2Ugc3RhcnQgbm9kZSBpcyBjdXJyZW50Tm9kZSwgYWRkIGxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgKiB0byBpdHMgc3RhcnQgb2Zmc2V0IGFuZCBzZXQgaXRzIHN0YXJ0IG5vZGUgdG8gbm9kZS5cbiAgICAgICAgICAgICAgICAgICAgICogNi4yLiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIGVuZCBub2RlIGlzIGN1cnJlbnROb2RlLCBhZGQgbGVuZ3RoIHRvXG4gICAgICAgICAgICAgICAgICAgICAqIGl0cyBlbmQgb2Zmc2V0IGFuZCBzZXQgaXRzIGVuZCBub2RlIHRvIG5vZGUuXG4gICAgICAgICAgICAgICAgICAgICAqIDYuMy4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBzdGFydCBub2RlIGlzIGN1cnJlbnROb2Rl4oCZcyBwYXJlbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAqIHN0YXJ0IG9mZnNldCBpcyBjdXJyZW50Tm9kZeKAmXMgaW5kZXgsIHNldCBpdHMgc3RhcnQgbm9kZSB0byBub2RlIGFuZFxuICAgICAgICAgICAgICAgICAgICAgKiBpdHMgc3RhcnQgb2Zmc2V0IHRvIGxlbmd0aC5cbiAgICAgICAgICAgICAgICAgICAgICogNi40LiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIGVuZCBub2RlIGlzIGN1cnJlbnROb2Rl4oCZcyBwYXJlbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAqIGVuZCBvZmZzZXQgaXMgY3VycmVudE5vZGXigJlzIGluZGV4LCBzZXQgaXRzIGVuZCBub2RlIHRvIG5vZGUgYW5kIGl0c1xuICAgICAgICAgICAgICAgICAgICAgKiBlbmQgb2Zmc2V0IHRvIGxlbmd0aC5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNuID0gY3VycmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gYWxnb3JpdGhtXzEudHJlZV9pbmRleChjbik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmFuZ2Ugb2YgXzEuZG9tLnJhbmdlTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlLl9zdGFydFswXSA9PT0gY24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5fc3RhcnRbMF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLl9zdGFydFsxXSArPSBsZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2UuX2VuZFswXSA9PT0gY24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzBdID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzFdICs9IGxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYW5nZS5fc3RhcnRbMF0gPT09IGNuLl9wYXJlbnQgJiYgcmFuZ2UuX3N0YXJ0WzFdID09PSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlLl9zdGFydFswXSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UuX3N0YXJ0WzFdID0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlLl9lbmRbMF0gPT09IGNuLl9wYXJlbnQgJiYgcmFuZ2UuX2VuZFsxXSA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzBdID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzFdID0gbGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiA2LjUuIEFkZCBjdXJyZW50Tm9kZeKAmXMgbGVuZ3RoIHRvIGxlbmd0aC5cbiAgICAgICAgICAgICAgICAgICAgICogNi42LiBTZXQgY3VycmVudE5vZGUgdG8gaXRzIG5leHQgc2libGluZy5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSBhbGdvcml0aG1fMS50cmVlX25vZGVMZW5ndGgoY3VycmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDcuIFJlbW92ZSBub2Rl4oCZcyBjb250aWd1b3VzIGV4Y2x1c2l2ZSBUZXh0IG5vZGVzIChleGNsdWRpbmcgaXRzZWxmKSxcbiAgICAgICAgICAgICAqIGluIHRyZWUgb3JkZXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dFNpYmxpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2libGluZyA9IHRleHRTaWJsaW5nc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAoc2libGluZy5fcGFyZW50ID09PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBhbGdvcml0aG1fMS5tdXRhdGlvbl9yZW1vdmUoc2libGluZywgc2libGluZy5fcGFyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgZHVwbGljYXRlIG9mIHRoaXMgbm9kZSwgaS5lLiwgc2VydmVzIGFzIGEgZ2VuZXJpYyBjb3B5XG4gICAgICogY29uc3RydWN0b3IgZm9yIG5vZGVzLiBUaGUgZHVwbGljYXRlIG5vZGUgaGFzIG5vIHBhcmVudFxuICAgICAqICh7QGxpbmsgcGFyZW50Tm9kZX0gcmV0dXJucyBgbnVsbGApLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlZXAgLSBpZiBgdHJ1ZWAsIHJlY3Vyc2l2ZWx5IGNsb25lIHRoZSBzdWJ0cmVlIHVuZGVyIHRoZVxuICAgICAqIHNwZWNpZmllZCBub2RlLiBJZiBgZmFsc2VgLCBjbG9uZSBvbmx5IHRoZSBub2RlIGl0c2VsZiAoYW5kIGl0c1xuICAgICAqIGF0dHJpYnV0ZXMsIGlmIGl0IGlzIGFuIHtAbGluayBFbGVtZW50fSkuXG4gICAgICovXG4gICAgY2xvbmVOb2RlKGRlZXAgPSBmYWxzZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgY29udGV4dCBvYmplY3QgaXMgYSBzaGFkb3cgcm9vdCwgdGhlbiB0aHJvdyBhIFwiTm90U3VwcG9ydGVkRXJyb3JcIlxuICAgICAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIFJldHVybiBhIGNsb25lIG9mIHRoZSBjb250ZXh0IG9iamVjdCwgd2l0aCB0aGUgY2xvbmUgY2hpbGRyZW4gZmxhZyBzZXRcbiAgICAgICAgICogaWYgZGVlcCBpcyB0cnVlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3QodGhpcykpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoKTtcbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLm5vZGVfY2xvbmUodGhpcywgbnVsbCwgZGVlcCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG5vZGUgaXMgZXF1YWwgdG8gdGhpcyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIHRoZSBub2RlIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqL1xuICAgIGlzRXF1YWxOb2RlKG5vZGUgPSBudWxsKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaXNFcXVhbE5vZGUob3RoZXJOb2RlKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdHJ1ZSBpZlxuICAgICAgICAgKiBvdGhlck5vZGUgaXMgbm9uLW51bGwgYW5kIGNvbnRleHQgb2JqZWN0IGVxdWFscyBvdGhlck5vZGUsIGFuZCBmYWxzZVxuICAgICAgICAgKiBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gKG5vZGUgIT09IG51bGwgJiYgYWxnb3JpdGhtXzEubm9kZV9lcXVhbHModGhpcywgbm9kZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBub2RlIGlzIHJlZmVyZW5jZSBlcXVhbCB0byB0aGlzIG9uZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gdGhlIG5vZGUgdG8gY29tcGFyZSB3aXRoXG4gICAgICovXG4gICAgaXNTYW1lTm9kZShub2RlID0gbnVsbCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGlzU2FtZU5vZGUob3RoZXJOb2RlKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdHJ1ZSBpZlxuICAgICAgICAgKiBvdGhlck5vZGUgaXMgY29udGV4dCBvYmplY3QsIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gKHRoaXMgPT09IG5vZGUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYml0bWFzayBpbmRpY2F0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gYG5vZGVgXG4gICAgICogcmVsYXRpdmUgdG8gdGhpcyBub2RlLlxuICAgICAqL1xuICAgIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG90aGVyKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBjb250ZXh0IG9iamVjdCBpcyBvdGhlciwgdGhlbiByZXR1cm4gemVyby5cbiAgICAgICAgICogMi4gTGV0IG5vZGUxIGJlIG90aGVyIGFuZCBub2RlMiBiZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICogMy4gTGV0IGF0dHIxIGFuZCBhdHRyMiBiZSBudWxsLlxuICAgICAgICAgKiBhdHRyMeKAmXMgZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChvdGhlciA9PT0gdGhpcylcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICBsZXQgbm9kZTEgPSBvdGhlcjtcbiAgICAgICAgbGV0IG5vZGUyID0gdGhpcztcbiAgICAgICAgbGV0IGF0dHIxID0gbnVsbDtcbiAgICAgICAgbGV0IGF0dHIyID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIElmIG5vZGUxIGlzIGFuIGF0dHJpYnV0ZSwgdGhlbiBzZXQgYXR0cjEgdG8gbm9kZTEgYW5kIG5vZGUxIHRvXG4gICAgICAgICAqIGF0dHIx4oCZcyBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0F0dHJOb2RlKG5vZGUxKSkge1xuICAgICAgICAgICAgYXR0cjEgPSBub2RlMTtcbiAgICAgICAgICAgIG5vZGUxID0gYXR0cjEuX2VsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuIElmIG5vZGUyIGlzIGFuIGF0dHJpYnV0ZSwgdGhlbjpcbiAgICAgICAgICovXG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNBdHRyTm9kZShub2RlMikpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4xLiBTZXQgYXR0cjIgdG8gbm9kZTIgYW5kIG5vZGUyIHRvIGF0dHIy4oCZcyBlbGVtZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhdHRyMiA9IG5vZGUyO1xuICAgICAgICAgICAgbm9kZTIgPSBhdHRyMi5fZWxlbWVudDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4yLiBJZiBhdHRyMSBhbmQgbm9kZTEgYXJlIG5vbi1udWxsLCBhbmQgbm9kZTIgaXMgbm9kZTEsIHRoZW46XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChhdHRyMSAmJiBub2RlMSAmJiAobm9kZTEgPT09IG5vZGUyKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDUuMi4gRm9yIGVhY2ggYXR0ciBpbiBub2RlMuKAmXMgYXR0cmlidXRlIGxpc3Q6XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlMi5fYXR0cmlidXRlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyID0gbm9kZTIuX2F0dHJpYnV0ZUxpc3RbaV07XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiA1LjIuMS4gSWYgYXR0ciBlcXVhbHMgYXR0cjEsIHRoZW4gcmV0dXJuIHRoZSByZXN1bHQgb2YgYWRkaW5nXG4gICAgICAgICAgICAgICAgICAgICAqIERPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDIGFuZFxuICAgICAgICAgICAgICAgICAgICAgKiBET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcuXG4gICAgICAgICAgICAgICAgICAgICAqIDUuMi4yLiBJZiBhdHRyIGVxdWFscyBhdHRyMiwgdGhlbiByZXR1cm4gdGhlIHJlc3VsdCBvZiBhZGRpbmdcbiAgICAgICAgICAgICAgICAgICAgICogRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgYW5kXG4gICAgICAgICAgICAgICAgICAgICAqIERPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORy5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChhbGdvcml0aG1fMS5ub2RlX2VxdWFscyhhdHRyLCBhdHRyMSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuUG9zaXRpb24uSW1wbGVtZW50YXRpb25TcGVjaWZpYyB8IGludGVyZmFjZXNfMS5Qb3NpdGlvbi5QcmVjZWRpbmc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYWxnb3JpdGhtXzEubm9kZV9lcXVhbHMoYXR0ciwgYXR0cjIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLlBvc2l0aW9uLkltcGxlbWVudGF0aW9uU3BlY2lmaWMgfCBpbnRlcmZhY2VzXzEuUG9zaXRpb24uRm9sbG93aW5nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA2LiBJZiBub2RlMSBvciBub2RlMiBpcyBudWxsLCBvciBub2RlMeKAmXMgcm9vdCBpcyBub3Qgbm9kZTLigJlzIHJvb3QsIHRoZW5cbiAgICAgICAgICogcmV0dXJuIHRoZSByZXN1bHQgb2YgYWRkaW5nIERPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCxcbiAgICAgICAgICogRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMsIGFuZCBlaXRoZXJcbiAgICAgICAgICogRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIG9yIERPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyxcbiAgICAgICAgICogd2l0aCB0aGUgY29uc3RyYWludCB0aGF0IHRoaXMgaXMgdG8gYmUgY29uc2lzdGVudCwgdG9nZXRoZXIuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAobm9kZTEgPT09IG51bGwgfHwgbm9kZTIgPT09IG51bGwgfHxcbiAgICAgICAgICAgIGFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUobm9kZTEpICE9PSBhbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKG5vZGUyKSkge1xuICAgICAgICAgICAgLy8gbm9kZXMgYXJlIGRpc2Nvbm5lY3RlZFxuICAgICAgICAgICAgLy8gcmV0dXJuIGEgcmFuZG9tIHJlc3VsdCBidXQgY2FjaGUgdGhlIHZhbHVlIGZvciBjb25zaXN0ZW5jeVxuICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5Qb3NpdGlvbi5EaXNjb25uZWN0ZWQgfCBpbnRlcmZhY2VzXzEuUG9zaXRpb24uSW1wbGVtZW50YXRpb25TcGVjaWZpYyB8XG4gICAgICAgICAgICAgICAgKF8xLmRvbS5jb21wYXJlQ2FjaGUuY2hlY2sodGhpcywgb3RoZXIpID8gaW50ZXJmYWNlc18xLlBvc2l0aW9uLlByZWNlZGluZyA6IGludGVyZmFjZXNfMS5Qb3NpdGlvbi5Gb2xsb3dpbmcpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LiBJZiBub2RlMSBpcyBhbiBhbmNlc3RvciBvZiBub2RlMiBhbmQgYXR0cjEgaXMgbnVsbCwgb3Igbm9kZTEgaXMgbm9kZTJcbiAgICAgICAgICogYW5kIGF0dHIyIGlzIG5vbi1udWxsLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGFkZGluZ1xuICAgICAgICAgKiBET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUyB0byBET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoKCFhdHRyMSAmJiBhbGdvcml0aG1fMS50cmVlX2lzQW5jZXN0b3JPZihub2RlMiwgbm9kZTEpKSB8fFxuICAgICAgICAgICAgKGF0dHIyICYmIChub2RlMSA9PT0gbm9kZTIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5Qb3NpdGlvbi5Db250YWlucyB8IGludGVyZmFjZXNfMS5Qb3NpdGlvbi5QcmVjZWRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDguIElmIG5vZGUxIGlzIGEgZGVzY2VuZGFudCBvZiBub2RlMiBhbmQgYXR0cjIgaXMgbnVsbCwgb3Igbm9kZTEgaXMgbm9kZTJcbiAgICAgICAgICogYW5kIGF0dHIxIGlzIG5vbi1udWxsLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIGFkZGluZ1xuICAgICAgICAgKiBET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgdG8gRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCghYXR0cjIgJiYgYWxnb3JpdGhtXzEudHJlZV9pc0Rlc2NlbmRhbnRPZihub2RlMiwgbm9kZTEpKSB8fFxuICAgICAgICAgICAgKGF0dHIxICYmIChub2RlMSA9PT0gbm9kZTIpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5Qb3NpdGlvbi5Db250YWluZWRCeSB8IGludGVyZmFjZXNfMS5Qb3NpdGlvbi5Gb2xsb3dpbmc7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDkuIElmIG5vZGUxIGlzIHByZWNlZGluZyBub2RlMiwgdGhlbiByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGFsZ29yaXRobV8xLnRyZWVfaXNQcmVjZWRpbmcobm9kZTIsIG5vZGUxKSlcbiAgICAgICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuUG9zaXRpb24uUHJlY2VkaW5nO1xuICAgICAgICAvKipcbiAgICAgICAgICogMTAuIFJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLlBvc2l0aW9uLkZvbGxvd2luZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBgdHJ1ZWAgaWYgZ2l2ZW4gbm9kZSBpcyBhbiBpbmNsdXNpdmUgZGVzY2VuZGFudCBvZiB0aGlzXG4gICAgICogbm9kZSwgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlIChpbmNsdWRpbmcgd2hlbiBvdGhlciBub2RlIGlzIGBudWxsYCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3RoZXIgLSB0aGUgbm9kZSB0byBjaGVja1xuICAgICAqL1xuICAgIGNvbnRhaW5zKG90aGVyKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29udGFpbnMob3RoZXIpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0cnVlIGlmIG90aGVyIGlzIGFuXG4gICAgICAgICAqIGluY2x1c2l2ZSBkZXNjZW5kYW50IG9mIGNvbnRleHQgb2JqZWN0LCBhbmQgZmFsc2Ugb3RoZXJ3aXNlIChpbmNsdWRpbmdcbiAgICAgICAgICogd2hlbiBvdGhlciBpcyBudWxsKS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChvdGhlciA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLnRyZWVfaXNEZXNjZW5kYW50T2YodGhpcywgb3RoZXIsIHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwcmVmaXggZm9yIGEgZ2l2ZW4gbmFtZXNwYWNlIFVSSSwgaWYgcHJlc2VudCwgYW5kXG4gICAgICogYG51bGxgIGlmIG5vdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lc3BhY2UgLSB0aGUgbmFtZXNwYWNlIHRvIHNlYXJjaFxuICAgICAqL1xuICAgIGxvb2t1cFByZWZpeChuYW1lc3BhY2UpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIG5hbWVzcGFjZSBpcyBudWxsIG9yIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICAgICAqIDIuIFN3aXRjaCBvbiB0aGUgY29udGV4dCBvYmplY3Q6XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIW5hbWVzcGFjZSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUmV0dXJuIHRoZSByZXN1bHQgb2YgbG9jYXRpbmcgYSBuYW1lc3BhY2UgcHJlZml4IGZvciBpdCB1c2luZ1xuICAgICAgICAgICAgICogbmFtZXNwYWNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZV9sb2NhdGVBTmFtZXNwYWNlUHJlZml4KHRoaXMsIG5hbWVzcGFjZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnROb2RlKHRoaXMpKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFJldHVybiB0aGUgcmVzdWx0IG9mIGxvY2F0aW5nIGEgbmFtZXNwYWNlIHByZWZpeCBmb3IgaXRzIGRvY3VtZW50XG4gICAgICAgICAgICAgKiBlbGVtZW50LCBpZiBpdHMgZG9jdW1lbnQgZWxlbWVudCBpcyBub24tbnVsbCwgYW5kIG51bGwgb3RoZXJ3aXNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ub2RlX2xvY2F0ZUFOYW1lc3BhY2VQcmVmaXgodGhpcy5kb2N1bWVudEVsZW1lbnQsIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZSh0aGlzKSB8fCB1dGlsXzEuR3VhcmQuaXNEb2N1bWVudEZyYWdtZW50Tm9kZSh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQXR0ck5vZGUodGhpcykpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUmV0dXJuIHRoZSByZXN1bHQgb2YgbG9jYXRpbmcgYSBuYW1lc3BhY2UgcHJlZml4IGZvciBpdHMgZWxlbWVudCxcbiAgICAgICAgICAgICAqIGlmIGl0cyBlbGVtZW50IGlzIG5vbi1udWxsLCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9lbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZV9sb2NhdGVBTmFtZXNwYWNlUHJlZml4KHRoaXMuX2VsZW1lbnQsIG5hbWVzcGFjZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFJldHVybiB0aGUgcmVzdWx0IG9mIGxvY2F0aW5nIGEgbmFtZXNwYWNlIHByZWZpeCBmb3IgaXRzIHBhcmVudFxuICAgICAgICAgICAgICogZWxlbWVudCwgaWYgaXRzIHBhcmVudCBlbGVtZW50IGlzIG5vbi1udWxsLCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9wYXJlbnQgIT09IG51bGwgJiYgdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUodGhpcy5fcGFyZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ub2RlX2xvY2F0ZUFOYW1lc3BhY2VQcmVmaXgodGhpcy5fcGFyZW50LCBuYW1lc3BhY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbmFtZXNwYWNlIFVSSSBmb3IgYSBnaXZlbiBwcmVmaXggaWYgcHJlc2VudCwgYW5kIGBudWxsYFxuICAgICAqIGlmIG5vdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcmVmaXggLSB0aGUgcHJlZml4IHRvIHNlYXJjaFxuICAgICAqL1xuICAgIGxvb2t1cE5hbWVzcGFjZVVSSShwcmVmaXgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHByZWZpeCBpcyB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuIHNldCBpdCB0byBudWxsLlxuICAgICAgICAgKiAyLiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIGxvY2F0ZSBhIG5hbWVzcGFjZSBmb3IgdGhlIGNvbnRleHQgb2JqZWN0XG4gICAgICAgICAqIHVzaW5nIHByZWZpeC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ub2RlX2xvY2F0ZUFOYW1lc3BhY2UodGhpcywgcHJlZml4IHx8IG51bGwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgbmFtZXNwYWNlIGlzIHRoZSBkZWZhdWx0IG5hbWVzcGFjZSBvbiB0aGlzXG4gICAgICogbm9kZSBvciBgZmFsc2VgIGlmIG5vdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lc3BhY2UgLSB0aGUgbmFtZXNwYWNlIHRvIGNoZWNrXG4gICAgICovXG4gICAgaXNEZWZhdWx0TmFtZXNwYWNlKG5hbWVzcGFjZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgbmFtZXNwYWNlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IGl0IHRvIG51bGwuXG4gICAgICAgICAqIDIuIExldCBkZWZhdWx0TmFtZXNwYWNlIGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBsb2NhdGUgYSBuYW1lc3BhY2UgZm9yXG4gICAgICAgICAqIGNvbnRleHQgb2JqZWN0IHVzaW5nIG51bGwuXG4gICAgICAgICAqIDMuIFJldHVybiB0cnVlIGlmIGRlZmF1bHROYW1lc3BhY2UgaXMgdGhlIHNhbWUgYXMgbmFtZXNwYWNlLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFuYW1lc3BhY2UpXG4gICAgICAgICAgICBuYW1lc3BhY2UgPSBudWxsO1xuICAgICAgICBjb25zdCBkZWZhdWx0TmFtZXNwYWNlID0gYWxnb3JpdGhtXzEubm9kZV9sb2NhdGVBTmFtZXNwYWNlKHRoaXMsIG51bGwpO1xuICAgICAgICByZXR1cm4gKGRlZmF1bHROYW1lc3BhY2UgPT09IG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEluc2VydHMgdGhlIG5vZGUgYG5ld0NoaWxkYCBiZWZvcmUgdGhlIGV4aXN0aW5nIGNoaWxkIG5vZGVcbiAgICAgKiBgcmVmQ2hpbGRgLiBJZiBgcmVmQ2hpbGRgIGlzIGBudWxsYCwgaW5zZXJ0cyBgbmV3Q2hpbGRgIGF0IHRoZSBlbmRcbiAgICAgKiBvZiB0aGUgbGlzdCBvZiBjaGlsZHJlbi5cbiAgICAgKlxuICAgICAqIElmIGBuZXdDaGlsZGAgaXMgYSB7QGxpbmsgRG9jdW1lbnRGcmFnbWVudH0gb2JqZWN0LCBhbGwgb2YgaXRzXG4gICAgICogY2hpbGRyZW4gYXJlIGluc2VydGVkLCBpbiB0aGUgc2FtZSBvcmRlciwgYmVmb3JlIGByZWZDaGlsZGAuXG4gICAgICpcbiAgICAgKiBJZiBgbmV3Q2hpbGRgIGlzIGFscmVhZHkgaW4gdGhlIHRyZWUsIGl0IGlzIGZpcnN0IHJlbW92ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3Q2hpbGQgLSB0aGUgbm9kZSB0byBpbnNlcnRcbiAgICAgKiBAcGFyYW0gcmVmQ2hpbGQgLSB0aGUgbm9kZSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBub2RlIG11c3QgYmVcbiAgICAgKiAgIGluc2VydGVkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgbmV3bHkgaW5zZXJ0ZWQgY2hpbGQgbm9kZVxuICAgICAqL1xuICAgIGluc2VydEJlZm9yZShuZXdDaGlsZCwgcmVmQ2hpbGQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBpbnNlcnRCZWZvcmUobm9kZSwgY2hpbGQpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0aGVcbiAgICAgICAgICogcmVzdWx0IG9mIHByZS1pbnNlcnRpbmcgbm9kZSBpbnRvIGNvbnRleHQgb2JqZWN0IGJlZm9yZSBjaGlsZC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5tdXRhdGlvbl9wcmVJbnNlcnQobmV3Q2hpbGQsIHRoaXMsIHJlZkNoaWxkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbm9kZSBgbmV3Q2hpbGRgIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3Qgb2YgY2hpbGRyZW4gb2YgdGhpc1xuICAgICAqIG5vZGUsIGFuZCByZXR1cm5zIGl0LiBJZiBgbmV3Q2hpbGRgIGlzIGFscmVhZHkgaW4gdGhlIHRyZWUsIGl0IGlzXG4gICAgICogZmlyc3QgcmVtb3ZlZC5cbiAgICAgKlxuICAgICAqIElmIGBuZXdDaGlsZGAgaXMgYSB7QGxpbmsgRG9jdW1lbnRGcmFnbWVudH0gb2JqZWN0LCB0aGUgZW50aXJlXG4gICAgICogY29udGVudHMgb2YgdGhlIGRvY3VtZW50IGZyYWdtZW50IGFyZSBtb3ZlZCBpbnRvIHRoZSBjaGlsZCBsaXN0IG9mXG4gICAgICogdGhpcyBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld0NoaWxkIC0gdGhlIG5vZGUgdG8gYWRkXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgbmV3bHkgaW5zZXJ0ZWQgY2hpbGQgbm9kZVxuICAgICAqL1xuICAgIGFwcGVuZENoaWxkKG5ld0NoaWxkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgYXBwZW5kQ2hpbGQobm9kZSkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuIHRoZSByZXN1bHQgb2ZcbiAgICAgICAgICogYXBwZW5kaW5nIG5vZGUgdG8gY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubXV0YXRpb25fYXBwZW5kKG5ld0NoaWxkLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgdGhlIGNoaWxkIG5vZGUgYG9sZENoaWxkYCB3aXRoIGBuZXdDaGlsZGAgaW4gdGhlIGxpc3Qgb2ZcbiAgICAgKiBjaGlsZHJlbiwgYW5kIHJldHVybnMgdGhlIGBvbGRDaGlsZGAgbm9kZS4gSWYgYG5ld0NoaWxkYCBpcyBhbHJlYWR5XG4gICAgICogaW4gdGhlIHRyZWUsIGl0IGlzIGZpcnN0IHJlbW92ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3Q2hpbGQgLSB0aGUgbmV3IG5vZGUgdG8gcHV0IGluIHRoZSBjaGlsZCBsaXN0XG4gICAgICogQHBhcmFtIG9sZENoaWxkIC0gdGhlIG5vZGUgYmVpbmcgcmVwbGFjZWQgaW4gdGhlIGxpc3RcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSByZW1vdmVkIGNoaWxkIG5vZGVcbiAgICAgKi9cbiAgICByZXBsYWNlQ2hpbGQobmV3Q2hpbGQsIG9sZENoaWxkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcmVwbGFjZUNoaWxkKG5vZGUsIGNoaWxkKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdGhlXG4gICAgICAgICAqIHJlc3VsdCBvZiByZXBsYWNpbmcgY2hpbGQgd2l0aCBub2RlIHdpdGhpbiBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5tdXRhdGlvbl9yZXBsYWNlKG9sZENoaWxkLCBuZXdDaGlsZCwgdGhpcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICogUmVtb3ZlcyB0aGUgY2hpbGQgbm9kZSBpbmRpY2F0ZWQgYnkgYG9sZENoaWxkYCBmcm9tIHRoZSBsaXN0IG9mXG4gICAgKiBjaGlsZHJlbiwgYW5kIHJldHVybnMgaXQuXG4gICAgKlxuICAgICogQHBhcmFtIG9sZENoaWxkIC0gdGhlIG5vZGUgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0XG4gICAgKlxuICAgICogQHJldHVybnMgdGhlIHJlbW92ZWQgY2hpbGQgbm9kZVxuICAgICovXG4gICAgcmVtb3ZlQ2hpbGQob2xkQ2hpbGQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSByZW1vdmVDaGlsZChjaGlsZCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuIHRoZSByZXN1bHQgb2ZcbiAgICAgICAgICogcHJlLXJlbW92aW5nIGNoaWxkIGZyb20gY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubXV0YXRpb25fcHJlUmVtb3ZlKG9sZENoaWxkLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGFyZW50IGV2ZW50IHRhcmdldCBmb3IgdGhlIGdpdmVuIGV2ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IC0gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBfZ2V0VGhlUGFyZW50KGV2ZW50KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIG5vZGXigJlzIGdldCB0aGUgcGFyZW50IGFsZ29yaXRobSwgZ2l2ZW4gYW4gZXZlbnQsIHJldHVybnMgdGhlIG5vZGXigJlzXG4gICAgICAgICAqIGFzc2lnbmVkIHNsb3QsIGlmIG5vZGUgaXMgYXNzaWduZWQsIGFuZCBub2Rl4oCZcyBwYXJlbnQgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1Nsb3RhYmxlKHRoaXMpICYmIGFsZ29yaXRobV8xLnNoYWRvd1RyZWVfaXNBc3NpZ25lZCh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Fzc2lnbmVkU2xvdDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLk5vZGVJbXBsID0gTm9kZUltcGw7XG5Ob2RlSW1wbC5FTEVNRU5UX05PREUgPSAxO1xuTm9kZUltcGwuQVRUUklCVVRFX05PREUgPSAyO1xuTm9kZUltcGwuVEVYVF9OT0RFID0gMztcbk5vZGVJbXBsLkNEQVRBX1NFQ1RJT05fTk9ERSA9IDQ7XG5Ob2RlSW1wbC5FTlRJVFlfUkVGRVJFTkNFX05PREUgPSA1O1xuTm9kZUltcGwuRU5USVRZX05PREUgPSA2O1xuTm9kZUltcGwuUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFID0gNztcbk5vZGVJbXBsLkNPTU1FTlRfTk9ERSA9IDg7XG5Ob2RlSW1wbC5ET0NVTUVOVF9OT0RFID0gOTtcbk5vZGVJbXBsLkRPQ1VNRU5UX1RZUEVfTk9ERSA9IDEwO1xuTm9kZUltcGwuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSA9IDExO1xuTm9kZUltcGwuTk9UQVRJT05fTk9ERSA9IDEyO1xuTm9kZUltcGwuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEID0gMHgwMTtcbk5vZGVJbXBsLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyA9IDB4MDI7XG5Ob2RlSW1wbC5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgPSAweDA0O1xuTm9kZUltcGwuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMgPSAweDA4O1xuTm9kZUltcGwuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZID0gMHgxMDtcbk5vZGVJbXBsLkRPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDID0gMHgyMDtcbi8qKlxuICogQSBwZXJmb3JtYW5jZSB0d2VhayB0byBzaGFyZSBhbiBlbXB0eSBzZXQgYmV0d2VlbiBhbGwgbm9kZSBjbGFzc2VzLiBUaGlzIHdpbGxcbiAqIGJlIG92ZXJ3cml0dGVuIGJ5IGVsZW1lbnQsIGRvY3VtZW50IGFuZCBkb2N1bWVudCBmcmFnbWVudCBub2RlcyB0byBzdXBwbHkgYW5cbiAqIGFjdHVhbCBzZXQgb2Ygbm9kZXMuXG4gKi9cbk5vZGVJbXBsLnByb3RvdHlwZS5fY2hpbGRyZW4gPSBuZXcgdXRpbF8xLkVtcHR5U2V0KCk7XG4vKipcbiAqIERlZmluZSBjb25zdGFudHMgb24gcHJvdG90eXBlLlxuICovXG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIkVMRU1FTlRfTk9ERVwiLCAxKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiQVRUUklCVVRFX05PREVcIiwgMik7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIlRFWFRfTk9ERVwiLCAzKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiQ0RBVEFfU0VDVElPTl9OT0RFXCIsIDQpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVJbXBsLnByb3RvdHlwZSwgXCJFTlRJVFlfUkVGRVJFTkNFX05PREVcIiwgNSk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIkVOVElUWV9OT0RFXCIsIDYpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVJbXBsLnByb3RvdHlwZSwgXCJQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREVcIiwgNyk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIkNPTU1FTlRfTk9ERVwiLCA4KTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiRE9DVU1FTlRfTk9ERVwiLCA5KTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiRE9DVU1FTlRfVFlQRV9OT0RFXCIsIDEwKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiRE9DVU1FTlRfRlJBR01FTlRfTk9ERVwiLCAxMSk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIk5PVEFUSU9OX05PREVcIiwgMTIpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVJbXBsLnByb3RvdHlwZSwgXCJET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURURcIiwgMHgwMSk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUltcGwucHJvdG90eXBlLCBcIkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElOR1wiLCAweDAyKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HXCIsIDB4MDQpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVJbXBsLnByb3RvdHlwZSwgXCJET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOU1wiLCAweDA4KTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlSW1wbC5wcm90b3R5cGUsIFwiRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZXCIsIDB4MTApO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVJbXBsLnByb3RvdHlwZSwgXCJET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQ1wiLCAweDIwKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vZGVJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRE9NSW1wbGVtZW50YXRpb25JbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0RPTUltcGxlbWVudGF0aW9uSW1wbFwiKTtcbmNvbnN0IFdpbmRvd0ltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vV2luZG93SW1wbFwiKTtcbmNvbnN0IFhNTERvY3VtZW50SW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9YTUxEb2N1bWVudEltcGxcIik7XG5jb25zdCBEb2N1bWVudEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vRG9jdW1lbnRJbXBsXCIpO1xuY29uc3QgQWJvcnRDb250cm9sbGVySW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9BYm9ydENvbnRyb2xsZXJJbXBsXCIpO1xuY29uc3QgQWJvcnRTaWduYWxJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0Fib3J0U2lnbmFsSW1wbFwiKTtcbmNvbnN0IERvY3VtZW50VHlwZUltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vRG9jdW1lbnRUeXBlSW1wbFwiKTtcbmNvbnN0IEVsZW1lbnRJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0VsZW1lbnRJbXBsXCIpO1xuY29uc3QgRG9jdW1lbnRGcmFnbWVudEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vRG9jdW1lbnRGcmFnbWVudEltcGxcIik7XG5jb25zdCBTaGFkb3dSb290SW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9TaGFkb3dSb290SW1wbFwiKTtcbmNvbnN0IEF0dHJJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0F0dHJJbXBsXCIpO1xuY29uc3QgVGV4dEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vVGV4dEltcGxcIik7XG5jb25zdCBDREFUQVNlY3Rpb25JbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0NEQVRBU2VjdGlvbkltcGxcIik7XG5jb25zdCBDb21tZW50SW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9Db21tZW50SW1wbFwiKTtcbmNvbnN0IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbFwiKTtcbmNvbnN0IEhUTUxDb2xsZWN0aW9uSW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9IVE1MQ29sbGVjdGlvbkltcGxcIik7XG5jb25zdCBOb2RlTGlzdEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vTm9kZUxpc3RJbXBsXCIpO1xuY29uc3QgTm9kZUxpc3RTdGF0aWNJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL05vZGVMaXN0U3RhdGljSW1wbFwiKTtcbmNvbnN0IE5hbWVkTm9kZU1hcEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vTmFtZWROb2RlTWFwSW1wbFwiKTtcbmNvbnN0IFJhbmdlSW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9SYW5nZUltcGxcIik7XG5jb25zdCBOb2RlSXRlcmF0b3JJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL05vZGVJdGVyYXRvckltcGxcIik7XG5jb25zdCBUcmVlV2Fsa2VySW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9UcmVlV2Fsa2VySW1wbFwiKTtcbmNvbnN0IE5vZGVGaWx0ZXJJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL05vZGVGaWx0ZXJJbXBsXCIpO1xuY29uc3QgTXV0YXRpb25SZWNvcmRJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL011dGF0aW9uUmVjb3JkSW1wbFwiKTtcbmNvbnN0IERPTVRva2VuTGlzdEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vRE9NVG9rZW5MaXN0SW1wbFwiKTtcbi8qKlxuICogQ3JlYXRlcyBhIGBET01JbXBsZW1lbnRhdGlvbmAuXG4gKlxuICogQHBhcmFtIGRvY3VtZW50IC0gYXNzb2NpYXRlZCBkb2N1bWVudFxuICovXG5mdW5jdGlvbiBjcmVhdGVfZG9tSW1wbGVtZW50YXRpb24oZG9jdW1lbnQpIHtcbiAgICByZXR1cm4gRE9NSW1wbGVtZW50YXRpb25JbXBsXzEuRE9NSW1wbGVtZW50YXRpb25JbXBsLl9jcmVhdGUoZG9jdW1lbnQpO1xufVxuZXhwb3J0cy5jcmVhdGVfZG9tSW1wbGVtZW50YXRpb24gPSBjcmVhdGVfZG9tSW1wbGVtZW50YXRpb247XG4vKipcbiAqIENyZWF0ZXMgYSBgV2luZG93YCBub2RlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVfd2luZG93KCkge1xuICAgIHJldHVybiBXaW5kb3dJbXBsXzEuV2luZG93SW1wbC5fY3JlYXRlKCk7XG59XG5leHBvcnRzLmNyZWF0ZV93aW5kb3cgPSBjcmVhdGVfd2luZG93O1xuLyoqXG4gKiBDcmVhdGVzIGFuIGBYTUxEb2N1bWVudGAgbm9kZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlX3htbERvY3VtZW50KCkge1xuICAgIHJldHVybiBuZXcgWE1MRG9jdW1lbnRJbXBsXzEuWE1MRG9jdW1lbnRJbXBsKCk7XG59XG5leHBvcnRzLmNyZWF0ZV94bWxEb2N1bWVudCA9IGNyZWF0ZV94bWxEb2N1bWVudDtcbi8qKlxuICogQ3JlYXRlcyBhIGBEb2N1bWVudGAgbm9kZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2RvY3VtZW50KCkge1xuICAgIHJldHVybiBuZXcgRG9jdW1lbnRJbXBsXzEuRG9jdW1lbnRJbXBsKCk7XG59XG5leHBvcnRzLmNyZWF0ZV9kb2N1bWVudCA9IGNyZWF0ZV9kb2N1bWVudDtcbi8qKlxuICogQ3JlYXRlcyBhbiBgQWJvcnRDb250cm9sbGVyYC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2Fib3J0Q29udHJvbGxlcigpIHtcbiAgICByZXR1cm4gbmV3IEFib3J0Q29udHJvbGxlckltcGxfMS5BYm9ydENvbnRyb2xsZXJJbXBsKCk7XG59XG5leHBvcnRzLmNyZWF0ZV9hYm9ydENvbnRyb2xsZXIgPSBjcmVhdGVfYWJvcnRDb250cm9sbGVyO1xuLyoqXG4gKiBDcmVhdGVzIGFuIGBBYm9ydFNpZ25hbGAuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9hYm9ydFNpZ25hbCgpIHtcbiAgICByZXR1cm4gQWJvcnRTaWduYWxJbXBsXzEuQWJvcnRTaWduYWxJbXBsLl9jcmVhdGUoKTtcbn1cbmV4cG9ydHMuY3JlYXRlX2Fib3J0U2lnbmFsID0gY3JlYXRlX2Fib3J0U2lnbmFsO1xuLyoqXG4gKiBDcmVhdGVzIGEgYERvY3VtZW50VHlwZWAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBub2RlXG4gKiBAcGFyYW0gcHVibGljSWQgLSBgUFVCTElDYCBpZGVudGlmaWVyXG4gKiBAcGFyYW0gc3lzdGVtSWQgLSBgU1lTVEVNYCBpZGVudGlmaWVyXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9kb2N1bWVudFR5cGUoZG9jdW1lbnQsIG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xuICAgIHJldHVybiBEb2N1bWVudFR5cGVJbXBsXzEuRG9jdW1lbnRUeXBlSW1wbC5fY3JlYXRlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xufVxuZXhwb3J0cy5jcmVhdGVfZG9jdW1lbnRUeXBlID0gY3JlYXRlX2RvY3VtZW50VHlwZTtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgRWxlbWVudGAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICogQHBhcmFtIGxvY2FsTmFtZSAtIGxvY2FsIG5hbWVcbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBuYW1lc3BhY2VcbiAqIEBwYXJhbSBwcmVmaXggLSBuYW1lc3BhY2UgcHJlZml4XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9lbGVtZW50KGRvY3VtZW50LCBsb2NhbE5hbWUsIG5hbWVzcGFjZSwgcHJlZml4KSB7XG4gICAgcmV0dXJuIEVsZW1lbnRJbXBsXzEuRWxlbWVudEltcGwuX2NyZWF0ZShkb2N1bWVudCwgbG9jYWxOYW1lLCBuYW1lc3BhY2UsIHByZWZpeCk7XG59XG5leHBvcnRzLmNyZWF0ZV9lbGVtZW50ID0gY3JlYXRlX2VsZW1lbnQ7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYEhUTUxFbGVtZW50YCBub2RlLlxuICpcbiAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICogQHBhcmFtIG5hbWVzcGFjZSAtIG5hbWVzcGFjZVxuICogQHBhcmFtIHByZWZpeCAtIG5hbWVzcGFjZSBwcmVmaXhcbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2h0bWxFbGVtZW50KGRvY3VtZW50LCBsb2NhbE5hbWUsIG5hbWVzcGFjZSwgcHJlZml4KSB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIEhUTUwgRE9NXG4gICAgcmV0dXJuIEVsZW1lbnRJbXBsXzEuRWxlbWVudEltcGwuX2NyZWF0ZShkb2N1bWVudCwgbG9jYWxOYW1lLCBuYW1lc3BhY2UsIHByZWZpeCk7XG59XG5leHBvcnRzLmNyZWF0ZV9odG1sRWxlbWVudCA9IGNyZWF0ZV9odG1sRWxlbWVudDtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgSFRNTFVua25vd25FbGVtZW50YCBub2RlLlxuICpcbiAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICogQHBhcmFtIG5hbWVzcGFjZSAtIG5hbWVzcGFjZVxuICogQHBhcmFtIHByZWZpeCAtIG5hbWVzcGFjZSBwcmVmaXhcbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2h0bWxVbmtub3duRWxlbWVudChkb2N1bWVudCwgbG9jYWxOYW1lLCBuYW1lc3BhY2UsIHByZWZpeCkge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxuICAgIHJldHVybiBFbGVtZW50SW1wbF8xLkVsZW1lbnRJbXBsLl9jcmVhdGUoZG9jdW1lbnQsIGxvY2FsTmFtZSwgbmFtZXNwYWNlLCBwcmVmaXgpO1xufVxuZXhwb3J0cy5jcmVhdGVfaHRtbFVua25vd25FbGVtZW50ID0gY3JlYXRlX2h0bWxVbmtub3duRWxlbWVudDtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgRG9jdW1lbnRGcmFnbWVudGAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICovXG5mdW5jdGlvbiBjcmVhdGVfZG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCkge1xuICAgIHJldHVybiBEb2N1bWVudEZyYWdtZW50SW1wbF8xLkRvY3VtZW50RnJhZ21lbnRJbXBsLl9jcmVhdGUoZG9jdW1lbnQpO1xufVxuZXhwb3J0cy5jcmVhdGVfZG9jdW1lbnRGcmFnbWVudCA9IGNyZWF0ZV9kb2N1bWVudEZyYWdtZW50O1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBTaGFkb3dSb290YCBub2RlLlxuICpcbiAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gKiBAcGFyYW0gaG9zdCAtIHNoYWRvdyByb290J3MgaG9zdCBlbGVtZW50IG5vZGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlX3NoYWRvd1Jvb3QoZG9jdW1lbnQsIGhvc3QpIHtcbiAgICByZXR1cm4gU2hhZG93Um9vdEltcGxfMS5TaGFkb3dSb290SW1wbC5fY3JlYXRlKGRvY3VtZW50LCBob3N0KTtcbn1cbmV4cG9ydHMuY3JlYXRlX3NoYWRvd1Jvb3QgPSBjcmVhdGVfc2hhZG93Um9vdDtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQXR0cmAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICogQHBhcmFtIGxvY2FsTmFtZSAtIGxvY2FsIG5hbWVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2F0dHIoZG9jdW1lbnQsIGxvY2FsTmFtZSkge1xuICAgIHJldHVybiBBdHRySW1wbF8xLkF0dHJJbXBsLl9jcmVhdGUoZG9jdW1lbnQsIGxvY2FsTmFtZSk7XG59XG5leHBvcnRzLmNyZWF0ZV9hdHRyID0gY3JlYXRlX2F0dHI7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYFRleHRgIG5vZGUuXG4gKlxuICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAqIEBwYXJhbSBkYXRhIC0gbm9kZSBjb250ZW50c1xuICovXG5mdW5jdGlvbiBjcmVhdGVfdGV4dChkb2N1bWVudCwgZGF0YSkge1xuICAgIHJldHVybiBUZXh0SW1wbF8xLlRleHRJbXBsLl9jcmVhdGUoZG9jdW1lbnQsIGRhdGEpO1xufVxuZXhwb3J0cy5jcmVhdGVfdGV4dCA9IGNyZWF0ZV90ZXh0O1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBDREFUQVNlY3Rpb25gIG5vZGUuXG4gKlxuICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAqIEBwYXJhbSBkYXRhIC0gbm9kZSBjb250ZW50c1xuICovXG5mdW5jdGlvbiBjcmVhdGVfY2RhdGFTZWN0aW9uKGRvY3VtZW50LCBkYXRhKSB7XG4gICAgcmV0dXJuIENEQVRBU2VjdGlvbkltcGxfMS5DREFUQVNlY3Rpb25JbXBsLl9jcmVhdGUoZG9jdW1lbnQsIGRhdGEpO1xufVxuZXhwb3J0cy5jcmVhdGVfY2RhdGFTZWN0aW9uID0gY3JlYXRlX2NkYXRhU2VjdGlvbjtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQ29tbWVudGAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICogQHBhcmFtIGRhdGEgLSBub2RlIGNvbnRlbnRzXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9jb21tZW50KGRvY3VtZW50LCBkYXRhKSB7XG4gICAgcmV0dXJuIENvbW1lbnRJbXBsXzEuQ29tbWVudEltcGwuX2NyZWF0ZShkb2N1bWVudCwgZGF0YSk7XG59XG5leHBvcnRzLmNyZWF0ZV9jb21tZW50ID0gY3JlYXRlX2NvbW1lbnQ7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYFByb2Nlc3NpbmdJbnN0cnVjdGlvbmAgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICogQHBhcmFtIHRhcmdldCAtIGluc3RydWN0aW9uIHRhcmdldFxuICogQHBhcmFtIGRhdGEgLSBub2RlIGNvbnRlbnRzXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9wcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZG9jdW1lbnQsIHRhcmdldCwgZGF0YSkge1xuICAgIHJldHVybiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsXzEuUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbC5fY3JlYXRlKGRvY3VtZW50LCB0YXJnZXQsIGRhdGEpO1xufVxuZXhwb3J0cy5jcmVhdGVfcHJvY2Vzc2luZ0luc3RydWN0aW9uID0gY3JlYXRlX3Byb2Nlc3NpbmdJbnN0cnVjdGlvbjtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgSFRNTENvbGxlY3Rpb25gLlxuICpcbiAqIEBwYXJhbSByb290IC0gcm9vdCBub2RlXG4gKiBAcGFyYW0gZmlsdGVyIC0gbm9kZSBmaWx0ZXJcbiAqL1xuZnVuY3Rpb24gY3JlYXRlX2h0bWxDb2xsZWN0aW9uKHJvb3QsIGZpbHRlciA9ICgoKSA9PiB0cnVlKSkge1xuICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbkltcGxfMS5IVE1MQ29sbGVjdGlvbkltcGwuX2NyZWF0ZShyb290LCBmaWx0ZXIpO1xufVxuZXhwb3J0cy5jcmVhdGVfaHRtbENvbGxlY3Rpb24gPSBjcmVhdGVfaHRtbENvbGxlY3Rpb247XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgbGl2ZSBgTm9kZUxpc3RgLlxuICpcbiAqIEBwYXJhbSByb290IC0gcm9vdCBub2RlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9ub2RlTGlzdChyb290KSB7XG4gICAgcmV0dXJuIE5vZGVMaXN0SW1wbF8xLk5vZGVMaXN0SW1wbC5fY3JlYXRlKHJvb3QpO1xufVxuZXhwb3J0cy5jcmVhdGVfbm9kZUxpc3QgPSBjcmVhdGVfbm9kZUxpc3Q7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgc3RhdGljIGBOb2RlTGlzdGAuXG4gKlxuICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAqIEBwYXJhbSBpdGVtcyAtIGEgbGlzdCBvZiBpdGVtcyB0byBpbml0aWFsaXplIHRoZSBsaXN0XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9ub2RlTGlzdFN0YXRpYyhyb290LCBpdGVtcykge1xuICAgIHJldHVybiBOb2RlTGlzdFN0YXRpY0ltcGxfMS5Ob2RlTGlzdFN0YXRpY0ltcGwuX2NyZWF0ZShyb290LCBpdGVtcyk7XG59XG5leHBvcnRzLmNyZWF0ZV9ub2RlTGlzdFN0YXRpYyA9IGNyZWF0ZV9ub2RlTGlzdFN0YXRpYztcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgTmFtZWROb2RlTWFwYC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAtIHBhcmVudCBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9uYW1lZE5vZGVNYXAoZWxlbWVudCkge1xuICAgIHJldHVybiBOYW1lZE5vZGVNYXBJbXBsXzEuTmFtZWROb2RlTWFwSW1wbC5fY3JlYXRlKGVsZW1lbnQpO1xufVxuZXhwb3J0cy5jcmVhdGVfbmFtZWROb2RlTWFwID0gY3JlYXRlX25hbWVkTm9kZU1hcDtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgUmFuZ2VgLlxuICpcbiAqIEBwYXJhbSBzdGFydCAtIHN0YXJ0IHBvaW50XG4gKiBAcGFyYW0gZW5kIC0gZW5kIHBvaW50XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9yYW5nZShzdGFydCwgZW5kKSB7XG4gICAgcmV0dXJuIFJhbmdlSW1wbF8xLlJhbmdlSW1wbC5fY3JlYXRlKHN0YXJ0LCBlbmQpO1xufVxuZXhwb3J0cy5jcmVhdGVfcmFuZ2UgPSBjcmVhdGVfcmFuZ2U7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYE5vZGVJdGVyYXRvcmAuXG4gKlxuICogQHBhcmFtIHJvb3QgLSBpdGVyYXRvcidzIHJvb3Qgbm9kZVxuICogQHBhcmFtIHJlZmVyZW5jZSAtIHJlZmVyZW5jZSBub2RlXG4gKiBAcGFyYW0gcG9pbnRlckJlZm9yZVJlZmVyZW5jZSAtIHdoZXRoZXIgdGhlIGl0ZXJhdG9yIGlzIGJlZm9yZSBvciBhZnRlciB0aGVcbiAqIHJlZmVyZW5jZSBub2RlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9ub2RlSXRlcmF0b3Iocm9vdCwgcmVmZXJlbmNlLCBwb2ludGVyQmVmb3JlUmVmZXJlbmNlKSB7XG4gICAgcmV0dXJuIE5vZGVJdGVyYXRvckltcGxfMS5Ob2RlSXRlcmF0b3JJbXBsLl9jcmVhdGUocm9vdCwgcmVmZXJlbmNlLCBwb2ludGVyQmVmb3JlUmVmZXJlbmNlKTtcbn1cbmV4cG9ydHMuY3JlYXRlX25vZGVJdGVyYXRvciA9IGNyZWF0ZV9ub2RlSXRlcmF0b3I7XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgYFRyZWVXYWxrZXJgLlxuICpcbiAqIEBwYXJhbSByb290IC0gaXRlcmF0b3IncyByb290IG5vZGVcbiAqIEBwYXJhbSBjdXJyZW50IC0gY3VycmVudCBub2RlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV90cmVlV2Fsa2VyKHJvb3QsIGN1cnJlbnQpIHtcbiAgICByZXR1cm4gVHJlZVdhbGtlckltcGxfMS5UcmVlV2Fsa2VySW1wbC5fY3JlYXRlKHJvb3QsIGN1cnJlbnQpO1xufVxuZXhwb3J0cy5jcmVhdGVfdHJlZVdhbGtlciA9IGNyZWF0ZV90cmVlV2Fsa2VyO1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBOb2RlRmlsdGVyYC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlX25vZGVGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIE5vZGVGaWx0ZXJJbXBsXzEuTm9kZUZpbHRlckltcGwuX2NyZWF0ZSgpO1xufVxuZXhwb3J0cy5jcmVhdGVfbm9kZUZpbHRlciA9IGNyZWF0ZV9ub2RlRmlsdGVyO1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBNdXRhdGlvblJlY29yZGAuXG4gKlxuICogQHBhcmFtIHR5cGUgLSB0eXBlIG9mIG11dGF0aW9uOiBgXCJhdHRyaWJ1dGVzXCJgIGZvciBhbiBhdHRyaWJ1dGVcbiAqIG11dGF0aW9uLCBgXCJjaGFyYWN0ZXJEYXRhXCJgIGZvciBhIG11dGF0aW9uIHRvIGEgQ2hhcmFjdGVyRGF0YSBub2RlXG4gKiBhbmQgYFwiY2hpbGRMaXN0XCJgIGZvciBhIG11dGF0aW9uIHRvIHRoZSB0cmVlIG9mIG5vZGVzLlxuICogQHBhcmFtIHRhcmdldCAtIG5vZGUgYWZmZWN0ZWQgYnkgdGhlIG11dGF0aW9uLlxuICogQHBhcmFtIGFkZGVkTm9kZXMgLSBsaXN0IG9mIGFkZGVkIG5vZGVzLlxuICogQHBhcmFtIHJlbW92ZWROb2RlcyAtIGxpc3Qgb2YgcmVtb3ZlZCBub2Rlcy5cbiAqIEBwYXJhbSBwcmV2aW91c1NpYmxpbmcgLSBwcmV2aW91cyBzaWJsaW5nIG9mIGFkZGVkIG9yIHJlbW92ZWQgbm9kZXMuXG4gKiBAcGFyYW0gbmV4dFNpYmxpbmcgLSBuZXh0IHNpYmxpbmcgb2YgYWRkZWQgb3IgcmVtb3ZlZCBub2Rlcy5cbiAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lIC0gbG9jYWwgbmFtZSBvZiB0aGUgY2hhbmdlZCBhdHRyaWJ1dGUsXG4gKiBhbmQgYG51bGxgIG90aGVyd2lzZS5cbiAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lc3BhY2UgLSBuYW1lc3BhY2Ugb2YgdGhlIGNoYW5nZWQgYXR0cmlidXRlLFxuICogYW5kIGBudWxsYCBvdGhlcndpc2UuXG4gKiBAcGFyYW0gb2xkVmFsdWUgLSB2YWx1ZSBiZWZvcmUgbXV0YXRpb246IGF0dHJpYnV0ZSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlXG4gKiBtdXRhdGlvbiwgbm9kZSBgZGF0YWAgZm9yIGEgbXV0YXRpb24gdG8gYSBDaGFyYWN0ZXJEYXRhIG5vZGUgYW5kIGBudWxsYFxuICogZm9yIGEgbXV0YXRpb24gdG8gdGhlIHRyZWUgb2Ygbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9tdXRhdGlvblJlY29yZCh0eXBlLCB0YXJnZXQsIGFkZGVkTm9kZXMsIHJlbW92ZWROb2RlcywgcHJldmlvdXNTaWJsaW5nLCBuZXh0U2libGluZywgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlTmFtZXNwYWNlLCBvbGRWYWx1ZSkge1xuICAgIHJldHVybiBNdXRhdGlvblJlY29yZEltcGxfMS5NdXRhdGlvblJlY29yZEltcGwuX2NyZWF0ZSh0eXBlLCB0YXJnZXQsIGFkZGVkTm9kZXMsIHJlbW92ZWROb2RlcywgcHJldmlvdXNTaWJsaW5nLCBuZXh0U2libGluZywgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlTmFtZXNwYWNlLCBvbGRWYWx1ZSk7XG59XG5leHBvcnRzLmNyZWF0ZV9tdXRhdGlvblJlY29yZCA9IGNyZWF0ZV9tdXRhdGlvblJlY29yZDtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgRE9NVG9rZW5MaXN0YC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAtIGFzc29jaWF0ZWQgZWxlbWVudFxuICogQHBhcmFtIGF0dHJpYnV0ZSAtIGFzc29jaWF0ZWQgYXR0cmlidXRlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZV9kb21Ub2tlbkxpc3QoZWxlbWVudCwgYXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIERPTVRva2VuTGlzdEltcGxfMS5ET01Ub2tlbkxpc3RJbXBsLl9jcmVhdGUoZWxlbWVudCwgYXR0cmlidXRlKTtcbn1cbmV4cG9ydHMuY3JlYXRlX2RvbVRva2VuTGlzdCA9IGNyZWF0ZV9kb21Ub2tlbkxpc3Q7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DcmVhdGVBbGdvcml0aG0uanMubWFwIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKG9iaiwga2V5cykge1xuICB2YXIgdGFyZ2V0ID0ge307XG5cbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlO1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlO1xuICAgIHRhcmdldFtpXSA9IG9ialtpXTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59OyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRhaW5zKHJvb3QsIG4pIHtcbiAgdmFyIG5vZGUgPSBuO1xuXG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUgPT09IHJvb3QpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVnZW5lcmF0b3ItcnVudGltZVwiKTtcbiIsImltcG9ydCBhZGRET01FdmVudExpc3RlbmVyIGZyb20gJ2FkZC1kb20tZXZlbnQtbGlzdGVuZXInO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyV3JhcCh0YXJnZXQsIGV2ZW50VHlwZSwgY2IsIG9wdGlvbikge1xuICAvKiBlc2xpbnQgY2FtZWxjYXNlOiAyICovXG4gIHZhciBjYWxsYmFjayA9IFJlYWN0RE9NLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID8gZnVuY3Rpb24gcnVuKGUpIHtcbiAgICBSZWFjdERPTS51bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyhjYiwgZSk7XG4gIH0gOiBjYjtcbiAgcmV0dXJuIGFkZERPTUV2ZW50TGlzdGVuZXIodGFyZ2V0LCBldmVudFR5cGUsIGNhbGxiYWNrLCBvcHRpb24pO1xufSIsImltcG9ydCBfZXh0ZW5kcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5mdW5jdGlvbiBpc1BvaW50c0VxKGExLCBhMiwgaXNBbGlnblBvaW50KSB7XG4gIGlmIChpc0FsaWduUG9pbnQpIHtcbiAgICByZXR1cm4gYTFbMF0gPT09IGEyWzBdO1xuICB9XG4gIHJldHVybiBhMVswXSA9PT0gYTJbMF0gJiYgYTFbMV0gPT09IGEyWzFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25Gcm9tUGxhY2VtZW50KGJ1aWx0aW5QbGFjZW1lbnRzLCBwbGFjZW1lbnRTdHIsIGFsaWduKSB7XG4gIHZhciBiYXNlQWxpZ24gPSBidWlsdGluUGxhY2VtZW50c1twbGFjZW1lbnRTdHJdIHx8IHt9O1xuICByZXR1cm4gX2V4dGVuZHMoe30sIGJhc2VBbGlnbiwgYWxpZ24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZShidWlsdGluUGxhY2VtZW50cywgcHJlZml4Q2xzLCBhbGlnbiwgaXNBbGlnblBvaW50KSB7XG4gIHZhciBwb2ludHMgPSBhbGlnbi5wb2ludHM7XG4gIGZvciAodmFyIHBsYWNlbWVudCBpbiBidWlsdGluUGxhY2VtZW50cykge1xuICAgIGlmIChidWlsdGluUGxhY2VtZW50cy5oYXNPd25Qcm9wZXJ0eShwbGFjZW1lbnQpKSB7XG4gICAgICBpZiAoaXNQb2ludHNFcShidWlsdGluUGxhY2VtZW50c1twbGFjZW1lbnRdLnBvaW50cywgcG9pbnRzLCBpc0FsaWduUG9pbnQpKSB7XG4gICAgICAgIHJldHVybiBwcmVmaXhDbHMgKyAnLXBsYWNlbWVudC0nICsgcGxhY2VtZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlUmVmKG5hbWUsIGNvbXBvbmVudCkge1xuICB0aGlzW25hbWVdID0gY29tcG9uZW50O1xufSIsImltcG9ydCBjb250YWlucyBmcm9tICdyYy11dGlsL2VzL0RvbS9jb250YWlucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWZmZXIoZm4sIG1zKSB7XG4gIHZhciB0aW1lciA9IHZvaWQgMDtcblxuICBmdW5jdGlvbiBjbGVhcigpIHtcbiAgICBpZiAodGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB0aW1lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYnVmZmVyRm4oKSB7XG4gICAgY2xlYXIoKTtcbiAgICB0aW1lciA9IHNldFRpbWVvdXQoZm4sIG1zKTtcbiAgfVxuXG4gIGJ1ZmZlckZuLmNsZWFyID0gY2xlYXI7XG5cbiAgcmV0dXJuIGJ1ZmZlckZuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lUG9pbnQocHJldiwgbmV4dCkge1xuICBpZiAocHJldiA9PT0gbmV4dCkgcmV0dXJuIHRydWU7XG4gIGlmICghcHJldiB8fCAhbmV4dCkgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICgncGFnZVgnIGluIG5leHQgJiYgJ3BhZ2VZJyBpbiBuZXh0KSB7XG4gICAgcmV0dXJuIHByZXYucGFnZVggPT09IG5leHQucGFnZVggJiYgcHJldi5wYWdlWSA9PT0gbmV4dC5wYWdlWTtcbiAgfVxuXG4gIGlmICgnY2xpZW50WCcgaW4gbmV4dCAmJiAnY2xpZW50WScgaW4gbmV4dCkge1xuICAgIHJldHVybiBwcmV2LmNsaWVudFggPT09IG5leHQuY2xpZW50WCAmJiBwcmV2LmNsaWVudFkgPT09IG5leHQuY2xpZW50WTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93KG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iai53aW5kb3cgPT09IG9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2ltaWxhclZhbHVlKHZhbDEsIHZhbDIpIHtcbiAgdmFyIGludDEgPSBNYXRoLmZsb29yKHZhbDEpO1xuICB2YXIgaW50MiA9IE1hdGguZmxvb3IodmFsMik7XG4gIHJldHVybiBNYXRoLmFicyhpbnQxIC0gaW50MikgPD0gMTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc3RvcmVGb2N1cyhhY3RpdmVFbGVtZW50LCBjb250YWluZXIpIHtcbiAgLy8gRm9jdXMgYmFjayBpZiBpcyBpbiB0aGUgY29udGFpbmVyXG4gIGlmIChhY3RpdmVFbGVtZW50ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIGNvbnRhaW5zKGNvbnRhaW5lciwgYWN0aXZlRWxlbWVudCkpIHtcbiAgICBhY3RpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn0iLCJpbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IGFsaWduRWxlbWVudCwgYWxpZ25Qb2ludCB9IGZyb20gJ2RvbS1hbGlnbic7XG5pbXBvcnQgYWRkRXZlbnRMaXN0ZW5lciBmcm9tICdyYy11dGlsL2VzL0RvbS9hZGRFdmVudExpc3RlbmVyJztcblxuaW1wb3J0IHsgaXNXaW5kb3csIGJ1ZmZlciwgaXNTYW1lUG9pbnQsIGlzU2ltaWxhclZhbHVlLCByZXN0b3JlRm9jdXMgfSBmcm9tICcuL3V0aWwnO1xuXG5mdW5jdGlvbiBnZXRFbGVtZW50KGZ1bmMpIHtcbiAgaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nIHx8ICFmdW5jKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIGZ1bmMoKTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9pbnQocG9pbnQpIHtcbiAgaWYgKHR5cGVvZiBwb2ludCAhPT0gJ29iamVjdCcgfHwgIXBvaW50KSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHBvaW50O1xufVxuXG52YXIgQWxpZ24gPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQWxpZ24sIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEFsaWduKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbGlnbik7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gX3JldCA9IChfdGVtcCA9IChfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChfcmVmID0gQWxpZ24uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihBbGlnbikpLmNhbGwuYXBwbHkoX3JlZiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcyksIF90aGlzLmZvcmNlQWxpZ24gPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgIHRhcmdldCA9IF90aGlzJHByb3BzLnRhcmdldCxcbiAgICAgICAgICBhbGlnbiA9IF90aGlzJHByb3BzLmFsaWduLFxuICAgICAgICAgIG9uQWxpZ24gPSBfdGhpcyRwcm9wcy5vbkFsaWduO1xuXG4gICAgICBpZiAoIWRpc2FibGVkICYmIHRhcmdldCkge1xuICAgICAgICB2YXIgc291cmNlID0gUmVhY3RET00uZmluZERPTU5vZGUoX3RoaXMpO1xuXG4gICAgICAgIHZhciByZXN1bHQgPSB2b2lkIDA7XG4gICAgICAgIHZhciBlbGVtZW50ID0gZ2V0RWxlbWVudCh0YXJnZXQpO1xuICAgICAgICB2YXIgcG9pbnQgPSBnZXRQb2ludCh0YXJnZXQpO1xuXG4gICAgICAgIC8vIElFIGxvc2UgZm9jdXMgYWZ0ZXIgZWxlbWVudCByZWFsaWduXG4gICAgICAgIC8vIFdlIHNob3VsZCByZWNvcmQgYWN0aXZlRWxlbWVudCBhbmQgcmVzdG9yZSBsYXRlclxuICAgICAgICB2YXIgYWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICByZXN1bHQgPSBhbGlnbkVsZW1lbnQoc291cmNlLCBlbGVtZW50LCBhbGlnbik7XG4gICAgICAgIH0gZWxzZSBpZiAocG9pbnQpIHtcbiAgICAgICAgICByZXN1bHQgPSBhbGlnblBvaW50KHNvdXJjZSwgcG9pbnQsIGFsaWduKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3RvcmVGb2N1cyhhY3RpdmVFbGVtZW50LCBzb3VyY2UpO1xuXG4gICAgICAgIGlmIChvbkFsaWduKSB7XG4gICAgICAgICAgb25BbGlnbihzb3VyY2UsIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfdGVtcCksIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfcmV0KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhBbGlnbiwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIC8vIGlmIHBhcmVudCByZWYgbm90IGF0dGFjaGVkIC4uLi4gdXNlIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkXG4gICAgICB0aGlzLmZvcmNlQWxpZ24oKTtcbiAgICAgIGlmICghcHJvcHMuZGlzYWJsZWQgJiYgcHJvcHMubW9uaXRvcldpbmRvd1Jlc2l6ZSkge1xuICAgICAgICB0aGlzLnN0YXJ0TW9uaXRvcldpbmRvd1Jlc2l6ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudERpZFVwZGF0ZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcbiAgICAgIHZhciByZUFsaWduID0gZmFsc2U7XG4gICAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoIXByb3BzLmRpc2FibGVkKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgdmFyIHNvdXJjZVJlY3QgPSBzb3VyY2UgPyBzb3VyY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgOiBudWxsO1xuXG4gICAgICAgIGlmIChwcmV2UHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgICByZUFsaWduID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgbGFzdEVsZW1lbnQgPSBnZXRFbGVtZW50KHByZXZQcm9wcy50YXJnZXQpO1xuICAgICAgICAgIHZhciBjdXJyZW50RWxlbWVudCA9IGdldEVsZW1lbnQocHJvcHMudGFyZ2V0KTtcbiAgICAgICAgICB2YXIgbGFzdFBvaW50ID0gZ2V0UG9pbnQocHJldlByb3BzLnRhcmdldCk7XG4gICAgICAgICAgdmFyIGN1cnJlbnRQb2ludCA9IGdldFBvaW50KHByb3BzLnRhcmdldCk7XG5cbiAgICAgICAgICBpZiAoaXNXaW5kb3cobGFzdEVsZW1lbnQpICYmIGlzV2luZG93KGN1cnJlbnRFbGVtZW50KSkge1xuICAgICAgICAgICAgLy8gU2tpcCBpZiBpcyB3aW5kb3dcbiAgICAgICAgICAgIHJlQWxpZ24gPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RFbGVtZW50ICE9PSBjdXJyZW50RWxlbWVudCB8fCAvLyBFbGVtZW50IGNoYW5nZVxuICAgICAgICAgIGxhc3RFbGVtZW50ICYmICFjdXJyZW50RWxlbWVudCAmJiBjdXJyZW50UG9pbnQgfHwgLy8gQ2hhbmdlIGZyb20gZWxlbWVudCB0byBwb2ludFxuICAgICAgICAgIGxhc3RQb2ludCAmJiBjdXJyZW50UG9pbnQgJiYgY3VycmVudEVsZW1lbnQgfHwgLy8gQ2hhbmdlIGZyb20gcG9pbnQgdG8gZWxlbWVudFxuICAgICAgICAgIGN1cnJlbnRQb2ludCAmJiAhaXNTYW1lUG9pbnQobGFzdFBvaW50LCBjdXJyZW50UG9pbnQpKSB7XG4gICAgICAgICAgICByZUFsaWduID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiBzb3VyY2UgZWxlbWVudCBzaXplIGNoYW5nZWRcbiAgICAgICAgICB2YXIgcHJlUmVjdCA9IHRoaXMuc291cmNlUmVjdCB8fCB7fTtcbiAgICAgICAgICBpZiAoIXJlQWxpZ24gJiYgc291cmNlICYmICghaXNTaW1pbGFyVmFsdWUocHJlUmVjdC53aWR0aCwgc291cmNlUmVjdC53aWR0aCkgfHwgIWlzU2ltaWxhclZhbHVlKHByZVJlY3QuaGVpZ2h0LCBzb3VyY2VSZWN0LmhlaWdodCkpKSB7XG4gICAgICAgICAgICByZUFsaWduID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNvdXJjZVJlY3QgPSBzb3VyY2VSZWN0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVBbGlnbikge1xuICAgICAgICB0aGlzLmZvcmNlQWxpZ24oKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLm1vbml0b3JXaW5kb3dSZXNpemUgJiYgIXByb3BzLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuc3RhcnRNb25pdG9yV2luZG93UmVzaXplKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0b3BNb25pdG9yV2luZG93UmVzaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuc3RvcE1vbml0b3JXaW5kb3dSZXNpemUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzdGFydE1vbml0b3JXaW5kb3dSZXNpemUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzdGFydE1vbml0b3JXaW5kb3dSZXNpemUoKSB7XG4gICAgICBpZiAoIXRoaXMucmVzaXplSGFuZGxlcikge1xuICAgICAgICB0aGlzLmJ1ZmZlck1vbml0b3IgPSBidWZmZXIodGhpcy5mb3JjZUFsaWduLCB0aGlzLnByb3BzLm1vbml0b3JCdWZmZXJUaW1lKTtcbiAgICAgICAgdGhpcy5yZXNpemVIYW5kbGVyID0gYWRkRXZlbnRMaXN0ZW5lcih3aW5kb3csICdyZXNpemUnLCB0aGlzLmJ1ZmZlck1vbml0b3IpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3N0b3BNb25pdG9yV2luZG93UmVzaXplJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc3RvcE1vbml0b3JXaW5kb3dSZXNpemUoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuYnVmZmVyTW9uaXRvci5jbGVhcigpO1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXIucmVtb3ZlKCk7XG4gICAgICAgIHRoaXMucmVzaXplSGFuZGxlciA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuUHJvcHMgPSBfcHJvcHMuY2hpbGRyZW5Qcm9wcyxcbiAgICAgICAgICBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbjtcblxuICAgICAgdmFyIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbik7XG4gICAgICBpZiAoY2hpbGRyZW5Qcm9wcykge1xuICAgICAgICB2YXIgbmV3UHJvcHMgPSB7fTtcbiAgICAgICAgdmFyIHByb3BMaXN0ID0gT2JqZWN0LmtleXMoY2hpbGRyZW5Qcm9wcyk7XG4gICAgICAgIHByb3BMaXN0LmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICBuZXdQcm9wc1twcm9wXSA9IF90aGlzMi5wcm9wc1tjaGlsZHJlblByb3BzW3Byb3BdXTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgbmV3UHJvcHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNoaWxkO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBBbGlnbjtcbn0oQ29tcG9uZW50KTtcblxuQWxpZ24ucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlblByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBhbGlnbjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICB0YXJnZXQ6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5mdW5jLCBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIGNsaWVudFg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgY2xpZW50WTogUHJvcFR5cGVzLm51bWJlcixcbiAgICBwYWdlWDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBwYWdlWTogUHJvcFR5cGVzLm51bWJlclxuICB9KV0pLFxuICBvbkFsaWduOiBQcm9wVHlwZXMuZnVuYyxcbiAgbW9uaXRvckJ1ZmZlclRpbWU6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1vbml0b3JXaW5kb3dSZXNpemU6IFByb3BUeXBlcy5ib29sLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55XG59O1xuQWxpZ24uZGVmYXVsdFByb3BzID0ge1xuICB0YXJnZXQ6IGZ1bmN0aW9uIHRhcmdldCgpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9LFxuICBtb25pdG9yQnVmZmVyVGltZTogNTAsXG4gIG1vbml0b3JXaW5kb3dSZXNpemU6IGZhbHNlLFxuICBkaXNhYmxlZDogZmFsc2Vcbn07XG5cblxuZXhwb3J0IGRlZmF1bHQgQWxpZ247IiwiLy8gZXhwb3J0IHRoaXMgcGFja2FnZSdzIGFwaVxuaW1wb3J0IEFsaWduIGZyb20gJy4vQWxpZ24nO1xuXG5leHBvcnQgZGVmYXVsdCBBbGlnbjsiLCJpbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbnZhciBMYXp5UmVuZGVyQm94ID0gZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKExhenlSZW5kZXJCb3gsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIExhenlSZW5kZXJCb3goKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExhenlSZW5kZXJCb3gpO1xuXG4gICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gIH1cblxuICBMYXp5UmVuZGVyQm94LnByb3RvdHlwZS5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgcmV0dXJuIG5leHRQcm9wcy5oaWRkZW5DbGFzc05hbWUgfHwgbmV4dFByb3BzLnZpc2libGU7XG4gIH07XG5cbiAgTGF6eVJlbmRlckJveC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBoaWRkZW5DbGFzc05hbWUgPSBfcHJvcHMuaGlkZGVuQ2xhc3NOYW1lLFxuICAgICAgICB2aXNpYmxlID0gX3Byb3BzLnZpc2libGUsXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wcywgWydoaWRkZW5DbGFzc05hbWUnLCAndmlzaWJsZSddKTtcblxuICAgIGlmIChoaWRkZW5DbGFzc05hbWUgfHwgUmVhY3QuQ2hpbGRyZW4uY291bnQocHJvcHMuY2hpbGRyZW4pID4gMSkge1xuICAgICAgaWYgKCF2aXNpYmxlICYmIGhpZGRlbkNsYXNzTmFtZSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUgKz0gJyAnICsgaGlkZGVuQ2xhc3NOYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHByb3BzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUmVhY3QuQ2hpbGRyZW4ub25seShwcm9wcy5jaGlsZHJlbik7XG4gIH07XG5cbiAgcmV0dXJuIExhenlSZW5kZXJCb3g7XG59KENvbXBvbmVudCk7XG5cbkxhenlSZW5kZXJCb3gucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB2aXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgaGlkZGVuQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG59O1xuXG5cbmV4cG9ydCBkZWZhdWx0IExhenlSZW5kZXJCb3g7IiwiaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IExhenlSZW5kZXJCb3ggZnJvbSAnLi9MYXp5UmVuZGVyQm94JztcblxudmFyIFBvcHVwSW5uZXIgPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUG9wdXBJbm5lciwgX0NvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUG9wdXBJbm5lcigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9wdXBJbm5lcik7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgfVxuXG4gIFBvcHVwSW5uZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgaWYgKCFwcm9wcy52aXNpYmxlKSB7XG4gICAgICBjbGFzc05hbWUgKz0gJyAnICsgcHJvcHMuaGlkZGVuQ2xhc3NOYW1lO1xuICAgIH1cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICdkaXYnLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgIG9uTW91c2VMZWF2ZTogcHJvcHMub25Nb3VzZUxlYXZlLFxuICAgICAgICBvbk1vdXNlRG93bjogcHJvcHMub25Nb3VzZURvd24sXG4gICAgICAgIG9uVG91Y2hTdGFydDogcHJvcHMub25Ub3VjaFN0YXJ0LFxuICAgICAgICBzdHlsZTogcHJvcHMuc3R5bGVcbiAgICAgIH0sXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBMYXp5UmVuZGVyQm94LFxuICAgICAgICB7IGNsYXNzTmFtZTogcHJvcHMucHJlZml4Q2xzICsgJy1jb250ZW50JywgdmlzaWJsZTogcHJvcHMudmlzaWJsZSB9LFxuICAgICAgICBwcm9wcy5jaGlsZHJlblxuICAgICAgKVxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIFBvcHVwSW5uZXI7XG59KENvbXBvbmVudCk7XG5cblBvcHVwSW5uZXIucHJvcFR5cGVzID0ge1xuICBoaWRkZW5DbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbk1vdXNlRW50ZXI6IFByb3BUeXBlcy5mdW5jLFxuICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuICBvbk1vdXNlRG93bjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uVG91Y2hTdGFydDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55XG59O1xuXG5cbmV4cG9ydCBkZWZhdWx0IFBvcHVwSW5uZXI7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJztcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IEFsaWduIGZyb20gJ3JjLWFsaWduJztcbmltcG9ydCBBbmltYXRlIGZyb20gJ3JjLWFuaW1hdGUnO1xuaW1wb3J0IFBvcHVwSW5uZXIgZnJvbSAnLi9Qb3B1cElubmVyJztcbmltcG9ydCBMYXp5UmVuZGVyQm94IGZyb20gJy4vTGF6eVJlbmRlckJveCc7XG5pbXBvcnQgeyBzYXZlUmVmIH0gZnJvbSAnLi91dGlscyc7XG5cbnZhciBQb3B1cCA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhQb3B1cCwgX0NvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUG9wdXAocHJvcHMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9wdXApO1xuXG4gICAgdmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0NvbXBvbmVudC5jYWxsKHRoaXMsIHByb3BzKSk7XG5cbiAgICBfaW5pdGlhbGlzZVByb3BzLmNhbGwoX3RoaXMpO1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICAvLyBVc2VkIGZvciBzdHJldGNoXG4gICAgICBzdHJldGNoQ2hlY2tlZDogZmFsc2UsXG4gICAgICB0YXJnZXRXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgdGFyZ2V0SGVpZ2h0OiB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgX3RoaXMuc2F2ZVBvcHVwUmVmID0gc2F2ZVJlZi5iaW5kKF90aGlzLCAncG9wdXBJbnN0YW5jZScpO1xuICAgIF90aGlzLnNhdmVBbGlnblJlZiA9IHNhdmVSZWYuYmluZChfdGhpcywgJ2FsaWduSW5zdGFuY2UnKTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBQb3B1cC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnJvb3ROb2RlID0gdGhpcy5nZXRQb3B1cERvbU5vZGUoKTtcbiAgICB0aGlzLnNldFN0cmV0Y2hTaXplKCk7XG4gIH07XG5cbiAgUG9wdXAucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICB0aGlzLnNldFN0cmV0Y2hTaXplKCk7XG4gIH07XG5cbiAgLy8gUmVjb3JkIHNpemUgaWYgc3RyZXRjaCBuZWVkZWRcblxuXG4gIFBvcHVwLnByb3RvdHlwZS5nZXRQb3B1cERvbU5vZGUgPSBmdW5jdGlvbiBnZXRQb3B1cERvbU5vZGUoKSB7XG4gICAgcmV0dXJuIFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMucG9wdXBJbnN0YW5jZSk7XG4gIH07XG5cbiAgLy8gYHRhcmdldGAgb24gYHJjLWFsaWduYCBjYW4gYWNjZXB0IGFzIGEgZnVuY3Rpb24gdG8gZ2V0IHRoZSBiaW5kIGVsZW1lbnQgb3IgYSBwb2ludC5cbiAgLy8gcmVmOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9yYy1hbGlnblxuXG5cbiAgUG9wdXAucHJvdG90eXBlLmdldE1hc2tUcmFuc2l0aW9uTmFtZSA9IGZ1bmN0aW9uIGdldE1hc2tUcmFuc2l0aW9uTmFtZSgpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLm1hc2tUcmFuc2l0aW9uTmFtZTtcbiAgICB2YXIgYW5pbWF0aW9uID0gcHJvcHMubWFza0FuaW1hdGlvbjtcbiAgICBpZiAoIXRyYW5zaXRpb25OYW1lICYmIGFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbk5hbWUgPSBwcm9wcy5wcmVmaXhDbHMgKyAnLScgKyBhbmltYXRpb247XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2l0aW9uTmFtZTtcbiAgfTtcblxuICBQb3B1cC5wcm90b3R5cGUuZ2V0VHJhbnNpdGlvbk5hbWUgPSBmdW5jdGlvbiBnZXRUcmFuc2l0aW9uTmFtZSgpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnRyYW5zaXRpb25OYW1lO1xuICAgIGlmICghdHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMuYW5pbWF0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnByZWZpeENscyArICctJyArIHByb3BzLmFuaW1hdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lO1xuICB9O1xuXG4gIFBvcHVwLnByb3RvdHlwZS5nZXRDbGFzc05hbWUgPSBmdW5jdGlvbiBnZXRDbGFzc05hbWUoY3VycmVudEFsaWduQ2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucHJlZml4Q2xzICsgJyAnICsgdGhpcy5wcm9wcy5jbGFzc05hbWUgKyAnICcgKyBjdXJyZW50QWxpZ25DbGFzc05hbWU7XG4gIH07XG5cbiAgUG9wdXAucHJvdG90eXBlLmdldFBvcHVwRWxlbWVudCA9IGZ1bmN0aW9uIGdldFBvcHVwRWxlbWVudCgpIHtcbiAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgIHZhciBzYXZlUG9wdXBSZWYgPSB0aGlzLnNhdmVQb3B1cFJlZjtcbiAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZSxcbiAgICAgICAgc3RyZXRjaENoZWNrZWQgPSBfc3RhdGUuc3RyZXRjaENoZWNrZWQsXG4gICAgICAgIHRhcmdldEhlaWdodCA9IF9zdGF0ZS50YXJnZXRIZWlnaHQsXG4gICAgICAgIHRhcmdldFdpZHRoID0gX3N0YXRlLnRhcmdldFdpZHRoO1xuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBhbGlnbiA9IF9wcm9wcy5hbGlnbixcbiAgICAgICAgdmlzaWJsZSA9IF9wcm9wcy52aXNpYmxlLFxuICAgICAgICBwcmVmaXhDbHMgPSBfcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgZ2V0Q2xhc3NOYW1lRnJvbUFsaWduID0gX3Byb3BzLmdldENsYXNzTmFtZUZyb21BbGlnbixcbiAgICAgICAgZGVzdHJveVBvcHVwT25IaWRlID0gX3Byb3BzLmRlc3Ryb3lQb3B1cE9uSGlkZSxcbiAgICAgICAgc3RyZXRjaCA9IF9wcm9wcy5zdHJldGNoLFxuICAgICAgICBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgb25Nb3VzZUVudGVyID0gX3Byb3BzLm9uTW91c2VFbnRlcixcbiAgICAgICAgb25Nb3VzZUxlYXZlID0gX3Byb3BzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgb25Nb3VzZURvd24gPSBfcHJvcHMub25Nb3VzZURvd24sXG4gICAgICAgIG9uVG91Y2hTdGFydCA9IF9wcm9wcy5vblRvdWNoU3RhcnQ7XG5cbiAgICB2YXIgY2xhc3NOYW1lID0gdGhpcy5nZXRDbGFzc05hbWUodGhpcy5jdXJyZW50QWxpZ25DbGFzc05hbWUgfHwgZ2V0Q2xhc3NOYW1lRnJvbUFsaWduKGFsaWduKSk7XG4gICAgdmFyIGhpZGRlbkNsYXNzTmFtZSA9IHByZWZpeENscyArICctaGlkZGVuJztcblxuICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgdGhpcy5jdXJyZW50QWxpZ25DbGFzc05hbWUgPSBudWxsO1xuICAgIH1cblxuICAgIHZhciBzaXplU3R5bGUgPSB7fTtcbiAgICBpZiAoc3RyZXRjaCkge1xuICAgICAgLy8gU3RyZXRjaCB3aXRoIHRhcmdldFxuICAgICAgaWYgKHN0cmV0Y2guaW5kZXhPZignaGVpZ2h0JykgIT09IC0xKSB7XG4gICAgICAgIHNpemVTdHlsZS5oZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgICB9IGVsc2UgaWYgKHN0cmV0Y2guaW5kZXhPZignbWluSGVpZ2h0JykgIT09IC0xKSB7XG4gICAgICAgIHNpemVTdHlsZS5taW5IZWlnaHQgPSB0YXJnZXRIZWlnaHQ7XG4gICAgICB9XG4gICAgICBpZiAoc3RyZXRjaC5pbmRleE9mKCd3aWR0aCcpICE9PSAtMSkge1xuICAgICAgICBzaXplU3R5bGUud2lkdGggPSB0YXJnZXRXaWR0aDtcbiAgICAgIH0gZWxzZSBpZiAoc3RyZXRjaC5pbmRleE9mKCdtaW5XaWR0aCcpICE9PSAtMSkge1xuICAgICAgICBzaXplU3R5bGUubWluV2lkdGggPSB0YXJnZXRXaWR0aDtcbiAgICAgIH1cblxuICAgICAgLy8gRGVsYXkgZm9yY2UgYWxpZ24gdG8gbWFrZXMgdWkgc21vb3RoXG4gICAgICBpZiAoIXN0cmV0Y2hDaGVja2VkKSB7XG4gICAgICAgIHNpemVTdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGlmIChfdGhpczIuYWxpZ25JbnN0YW5jZSkge1xuICAgICAgICAgICAgX3RoaXMyLmFsaWduSW5zdGFuY2UuZm9yY2VBbGlnbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG5ld1N0eWxlID0gX2V4dGVuZHMoe30sIHNpemVTdHlsZSwgc3R5bGUsIHRoaXMuZ2V0WkluZGV4U3R5bGUoKSk7XG5cbiAgICB2YXIgcG9wdXBJbm5lclByb3BzID0ge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIHJlZjogc2F2ZVBvcHVwUmVmLFxuICAgICAgb25Nb3VzZUVudGVyOiBvbk1vdXNlRW50ZXIsXG4gICAgICBvbk1vdXNlTGVhdmU6IG9uTW91c2VMZWF2ZSxcbiAgICAgIG9uTW91c2VEb3duOiBvbk1vdXNlRG93bixcbiAgICAgIG9uVG91Y2hTdGFydDogb25Ub3VjaFN0YXJ0LFxuICAgICAgc3R5bGU6IG5ld1N0eWxlXG4gICAgfTtcbiAgICBpZiAoZGVzdHJveVBvcHVwT25IaWRlKSB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgQW5pbWF0ZSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogJycsXG4gICAgICAgICAgZXhjbHVzaXZlOiB0cnVlLFxuICAgICAgICAgIHRyYW5zaXRpb25BcHBlYXI6IHRydWUsXG4gICAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHRoaXMuZ2V0VHJhbnNpdGlvbk5hbWUoKVxuICAgICAgICB9LFxuICAgICAgICB2aXNpYmxlID8gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBBbGlnbixcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMuZ2V0QWxpZ25UYXJnZXQoKSxcbiAgICAgICAgICAgIGtleTogJ3BvcHVwJyxcbiAgICAgICAgICAgIHJlZjogdGhpcy5zYXZlQWxpZ25SZWYsXG4gICAgICAgICAgICBtb25pdG9yV2luZG93UmVzaXplOiB0cnVlLFxuICAgICAgICAgICAgYWxpZ246IGFsaWduLFxuICAgICAgICAgICAgb25BbGlnbjogdGhpcy5vbkFsaWduXG4gICAgICAgICAgfSxcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgUG9wdXBJbm5lcixcbiAgICAgICAgICAgIF9leHRlbmRzKHtcbiAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSwgcG9wdXBJbm5lclByb3BzKSxcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgKVxuICAgICAgICApIDogbnVsbFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgIEFuaW1hdGUsXG4gICAgICB7XG4gICAgICAgIGNvbXBvbmVudDogJycsXG4gICAgICAgIGV4Y2x1c2l2ZTogdHJ1ZSxcbiAgICAgICAgdHJhbnNpdGlvbkFwcGVhcjogdHJ1ZSxcbiAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHRoaXMuZ2V0VHJhbnNpdGlvbk5hbWUoKSxcbiAgICAgICAgc2hvd1Byb3A6ICd4VmlzaWJsZSdcbiAgICAgIH0sXG4gICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBBbGlnbixcbiAgICAgICAge1xuICAgICAgICAgIHRhcmdldDogdGhpcy5nZXRBbGlnblRhcmdldCgpLFxuICAgICAgICAgIGtleTogJ3BvcHVwJyxcbiAgICAgICAgICByZWY6IHRoaXMuc2F2ZUFsaWduUmVmLFxuICAgICAgICAgIG1vbml0b3JXaW5kb3dSZXNpemU6IHRydWUsXG4gICAgICAgICAgeFZpc2libGU6IHZpc2libGUsXG4gICAgICAgICAgY2hpbGRyZW5Qcm9wczogeyB2aXNpYmxlOiAneFZpc2libGUnIH0sXG4gICAgICAgICAgZGlzYWJsZWQ6ICF2aXNpYmxlLFxuICAgICAgICAgIGFsaWduOiBhbGlnbixcbiAgICAgICAgICBvbkFsaWduOiB0aGlzLm9uQWxpZ25cbiAgICAgICAgfSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICBQb3B1cElubmVyLFxuICAgICAgICAgIF9leHRlbmRzKHtcbiAgICAgICAgICAgIGhpZGRlbkNsYXNzTmFtZTogaGlkZGVuQ2xhc3NOYW1lXG4gICAgICAgICAgfSwgcG9wdXBJbm5lclByb3BzKSxcbiAgICAgICAgICBjaGlsZHJlblxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfTtcblxuICBQb3B1cC5wcm90b3R5cGUuZ2V0WkluZGV4U3R5bGUgPSBmdW5jdGlvbiBnZXRaSW5kZXhTdHlsZSgpIHtcbiAgICB2YXIgc3R5bGUgPSB7fTtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIGlmIChwcm9wcy56SW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3R5bGUuekluZGV4ID0gcHJvcHMuekluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGU7XG4gIH07XG5cbiAgUG9wdXAucHJvdG90eXBlLmdldE1hc2tFbGVtZW50ID0gZnVuY3Rpb24gZ2V0TWFza0VsZW1lbnQoKSB7XG4gICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICB2YXIgbWFza0VsZW1lbnQgPSB2b2lkIDA7XG4gICAgaWYgKHByb3BzLm1hc2spIHtcbiAgICAgIHZhciBtYXNrVHJhbnNpdGlvbiA9IHRoaXMuZ2V0TWFza1RyYW5zaXRpb25OYW1lKCk7XG4gICAgICBtYXNrRWxlbWVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoTGF6eVJlbmRlckJveCwge1xuICAgICAgICBzdHlsZTogdGhpcy5nZXRaSW5kZXhTdHlsZSgpLFxuICAgICAgICBrZXk6ICdtYXNrJyxcbiAgICAgICAgY2xhc3NOYW1lOiBwcm9wcy5wcmVmaXhDbHMgKyAnLW1hc2snLFxuICAgICAgICBoaWRkZW5DbGFzc05hbWU6IHByb3BzLnByZWZpeENscyArICctbWFzay1oaWRkZW4nLFxuICAgICAgICB2aXNpYmxlOiBwcm9wcy52aXNpYmxlXG4gICAgICB9KTtcbiAgICAgIGlmIChtYXNrVHJhbnNpdGlvbikge1xuICAgICAgICBtYXNrRWxlbWVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgQW5pbWF0ZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdtYXNrJyxcbiAgICAgICAgICAgIHNob3dQcm9wOiAndmlzaWJsZScsXG4gICAgICAgICAgICB0cmFuc2l0aW9uQXBwZWFyOiB0cnVlLFxuICAgICAgICAgICAgY29tcG9uZW50OiAnJyxcbiAgICAgICAgICAgIHRyYW5zaXRpb25OYW1lOiBtYXNrVHJhbnNpdGlvblxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWFza0VsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hc2tFbGVtZW50O1xuICB9O1xuXG4gIFBvcHVwLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAnZGl2JyxcbiAgICAgIG51bGwsXG4gICAgICB0aGlzLmdldE1hc2tFbGVtZW50KCksXG4gICAgICB0aGlzLmdldFBvcHVwRWxlbWVudCgpXG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUG9wdXA7XG59KENvbXBvbmVudCk7XG5cblBvcHVwLnByb3BUeXBlcyA9IHtcbiAgdmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBnZXRDbGFzc05hbWVGcm9tQWxpZ246IFByb3BUeXBlcy5mdW5jLFxuICBvbkFsaWduOiBQcm9wVHlwZXMuZnVuYyxcbiAgZ2V0Um9vdERvbU5vZGU6IFByb3BUeXBlcy5mdW5jLFxuICBhbGlnbjogUHJvcFR5cGVzLmFueSxcbiAgZGVzdHJveVBvcHVwT25IaWRlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBwcmVmaXhDbHM6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uTW91c2VFbnRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VMZWF2ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uTW91c2VEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25Ub3VjaFN0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcbiAgc3RyZXRjaDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICBwb2ludDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBwYWdlWDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBwYWdlWTogUHJvcFR5cGVzLm51bWJlclxuICB9KVxufTtcblxudmFyIF9pbml0aWFsaXNlUHJvcHMgPSBmdW5jdGlvbiBfaW5pdGlhbGlzZVByb3BzKCkge1xuICB2YXIgX3RoaXMzID0gdGhpcztcblxuICB0aGlzLm9uQWxpZ24gPSBmdW5jdGlvbiAocG9wdXBEb21Ob2RlLCBhbGlnbikge1xuICAgIHZhciBwcm9wcyA9IF90aGlzMy5wcm9wcztcbiAgICB2YXIgY3VycmVudEFsaWduQ2xhc3NOYW1lID0gcHJvcHMuZ2V0Q2xhc3NOYW1lRnJvbUFsaWduKGFsaWduKTtcbiAgICAvLyBGSVg6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdHJpZ2dlci9pc3N1ZXMvNTZcbiAgICAvLyBGSVg6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdG9vbHRpcC9pc3N1ZXMvNzlcbiAgICBpZiAoX3RoaXMzLmN1cnJlbnRBbGlnbkNsYXNzTmFtZSAhPT0gY3VycmVudEFsaWduQ2xhc3NOYW1lKSB7XG4gICAgICBfdGhpczMuY3VycmVudEFsaWduQ2xhc3NOYW1lID0gY3VycmVudEFsaWduQ2xhc3NOYW1lO1xuICAgICAgcG9wdXBEb21Ob2RlLmNsYXNzTmFtZSA9IF90aGlzMy5nZXRDbGFzc05hbWUoY3VycmVudEFsaWduQ2xhc3NOYW1lKTtcbiAgICB9XG4gICAgcHJvcHMub25BbGlnbihwb3B1cERvbU5vZGUsIGFsaWduKTtcbiAgfTtcblxuICB0aGlzLnNldFN0cmV0Y2hTaXplID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcHJvcHMyID0gX3RoaXMzLnByb3BzLFxuICAgICAgICBzdHJldGNoID0gX3Byb3BzMi5zdHJldGNoLFxuICAgICAgICBnZXRSb290RG9tTm9kZSA9IF9wcm9wczIuZ2V0Um9vdERvbU5vZGUsXG4gICAgICAgIHZpc2libGUgPSBfcHJvcHMyLnZpc2libGU7XG4gICAgdmFyIF9zdGF0ZTIgPSBfdGhpczMuc3RhdGUsXG4gICAgICAgIHN0cmV0Y2hDaGVja2VkID0gX3N0YXRlMi5zdHJldGNoQ2hlY2tlZCxcbiAgICAgICAgdGFyZ2V0SGVpZ2h0ID0gX3N0YXRlMi50YXJnZXRIZWlnaHQsXG4gICAgICAgIHRhcmdldFdpZHRoID0gX3N0YXRlMi50YXJnZXRXaWR0aDtcblxuXG4gICAgaWYgKCFzdHJldGNoIHx8ICF2aXNpYmxlKSB7XG4gICAgICBpZiAoc3RyZXRjaENoZWNrZWQpIHtcbiAgICAgICAgX3RoaXMzLnNldFN0YXRlKHsgc3RyZXRjaENoZWNrZWQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciAkZWxlID0gZ2V0Um9vdERvbU5vZGUoKTtcbiAgICBpZiAoISRlbGUpIHJldHVybjtcblxuICAgIHZhciBoZWlnaHQgPSAkZWxlLm9mZnNldEhlaWdodDtcbiAgICB2YXIgd2lkdGggPSAkZWxlLm9mZnNldFdpZHRoO1xuXG4gICAgaWYgKHRhcmdldEhlaWdodCAhPT0gaGVpZ2h0IHx8IHRhcmdldFdpZHRoICE9PSB3aWR0aCB8fCAhc3RyZXRjaENoZWNrZWQpIHtcbiAgICAgIF90aGlzMy5zZXRTdGF0ZSh7XG4gICAgICAgIHN0cmV0Y2hDaGVja2VkOiB0cnVlLFxuICAgICAgICB0YXJnZXRIZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgdGFyZ2V0V2lkdGg6IHdpZHRoXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5nZXRUYXJnZXRFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfdGhpczMucHJvcHMuZ2V0Um9vdERvbU5vZGUoKTtcbiAgfTtcblxuICB0aGlzLmdldEFsaWduVGFyZ2V0ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBwb2ludCA9IF90aGlzMy5wcm9wcy5wb2ludDtcblxuICAgIGlmIChwb2ludCkge1xuICAgICAgcmV0dXJuIHBvaW50O1xuICAgIH1cbiAgICByZXR1cm4gX3RoaXMzLmdldFRhcmdldEVsZW1lbnQ7XG4gIH07XG59O1xuXG5leHBvcnQgZGVmYXVsdCBQb3B1cDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgZmluZERPTU5vZGUsIGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgeyBwb2x5ZmlsbCB9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBjb250YWlucyBmcm9tICdyYy11dGlsL2VzL0RvbS9jb250YWlucyc7XG5pbXBvcnQgYWRkRXZlbnRMaXN0ZW5lciBmcm9tICdyYy11dGlsL2VzL0RvbS9hZGRFdmVudExpc3RlbmVyJztcbmltcG9ydCBDb250YWluZXJSZW5kZXIgZnJvbSAncmMtdXRpbC9lcy9Db250YWluZXJSZW5kZXInO1xuaW1wb3J0IFBvcnRhbCBmcm9tICdyYy11dGlsL2VzL1BvcnRhbCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcblxuaW1wb3J0IHsgZ2V0QWxpZ25Gcm9tUGxhY2VtZW50LCBnZXRBbGlnblBvcHVwQ2xhc3NOYW1lIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgUG9wdXAgZnJvbSAnLi9Qb3B1cCc7XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5mdW5jdGlvbiByZXR1cm5FbXB0eVN0cmluZygpIHtcbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiByZXR1cm5Eb2N1bWVudCgpIHtcbiAgcmV0dXJuIHdpbmRvdy5kb2N1bWVudDtcbn1cblxudmFyIEFMTF9IQU5ETEVSUyA9IFsnb25DbGljaycsICdvbk1vdXNlRG93bicsICdvblRvdWNoU3RhcnQnLCAnb25Nb3VzZUVudGVyJywgJ29uTW91c2VMZWF2ZScsICdvbkZvY3VzJywgJ29uQmx1cicsICdvbkNvbnRleHRNZW51J107XG5cbnZhciBJU19SRUFDVF8xNiA9ICEhY3JlYXRlUG9ydGFsO1xuXG52YXIgY29udGV4dFR5cGVzID0ge1xuICByY1RyaWdnZXI6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgb25Qb3B1cE1vdXNlRG93bjogUHJvcFR5cGVzLmZ1bmNcbiAgfSlcbn07XG5cbnZhciBUcmlnZ2VyID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRyaWdnZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFRyaWdnZXIocHJvcHMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVHJpZ2dlcik7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF9pbml0aWFsaXNlUHJvcHMuY2FsbChfdGhpcyk7XG5cbiAgICB2YXIgcG9wdXBWaXNpYmxlID0gdm9pZCAwO1xuICAgIGlmICgncG9wdXBWaXNpYmxlJyBpbiBwcm9wcykge1xuICAgICAgcG9wdXBWaXNpYmxlID0gISFwcm9wcy5wb3B1cFZpc2libGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcHVwVmlzaWJsZSA9ICEhcHJvcHMuZGVmYXVsdFBvcHVwVmlzaWJsZTtcbiAgICB9XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHByZXZQb3B1cFZpc2libGU6IHBvcHVwVmlzaWJsZSxcbiAgICAgIHBvcHVwVmlzaWJsZTogcG9wdXBWaXNpYmxlXG4gICAgfTtcblxuICAgIEFMTF9IQU5ETEVSUy5mb3JFYWNoKGZ1bmN0aW9uIChoKSB7XG4gICAgICBfdGhpc1snZmlyZScgKyBoXSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIF90aGlzLmZpcmVFdmVudHMoaCwgZSk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIFRyaWdnZXIucHJvdG90eXBlLmdldENoaWxkQ29udGV4dCA9IGZ1bmN0aW9uIGdldENoaWxkQ29udGV4dCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmNUcmlnZ2VyOiB7XG4gICAgICAgIG9uUG9wdXBNb3VzZURvd246IHRoaXMub25Qb3B1cE1vdXNlRG93blxuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLmNvbXBvbmVudERpZFVwZGF0ZSh7fSwge1xuICAgICAgcG9wdXBWaXNpYmxlOiB0aGlzLnN0YXRlLnBvcHVwVmlzaWJsZVxuICAgIH0pO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZShfLCBwcmV2U3RhdGUpIHtcbiAgICB2YXIgcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBzdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgdmFyIHRyaWdnZXJBZnRlclBvcHVwVmlzaWJsZUNoYW5nZSA9IGZ1bmN0aW9uIHRyaWdnZXJBZnRlclBvcHVwVmlzaWJsZUNoYW5nZSgpIHtcbiAgICAgIGlmIChwcmV2U3RhdGUucG9wdXBWaXNpYmxlICE9PSBzdGF0ZS5wb3B1cFZpc2libGUpIHtcbiAgICAgICAgcHJvcHMuYWZ0ZXJQb3B1cFZpc2libGVDaGFuZ2Uoc3RhdGUucG9wdXBWaXNpYmxlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGlmICghSVNfUkVBQ1RfMTYpIHtcbiAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KG51bGwsIHRyaWdnZXJBZnRlclBvcHVwVmlzaWJsZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgLy8gV2UgbXVzdCBsaXN0ZW4gdG8gYG1vdXNlZG93bmAgb3IgYHRvdWNoc3RhcnRgLCBlZGdlIGNhc2U6XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNTgwNFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvY2FsZW5kYXIvaXNzdWVzLzI1MFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdHJpZ2dlci9pc3N1ZXMvNTBcbiAgICBpZiAoc3RhdGUucG9wdXBWaXNpYmxlKSB7XG4gICAgICB2YXIgY3VycmVudERvY3VtZW50ID0gdm9pZCAwO1xuICAgICAgaWYgKCF0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgJiYgKHRoaXMuaXNDbGlja1RvSGlkZSgpIHx8IHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSkge1xuICAgICAgICBjdXJyZW50RG9jdW1lbnQgPSBwcm9wcy5nZXREb2N1bWVudCgpO1xuICAgICAgICB0aGlzLmNsaWNrT3V0c2lkZUhhbmRsZXIgPSBhZGRFdmVudExpc3RlbmVyKGN1cnJlbnREb2N1bWVudCwgJ21vdXNlZG93bicsIHRoaXMub25Eb2N1bWVudENsaWNrKTtcbiAgICAgIH1cbiAgICAgIC8vIGFsd2F5cyBoaWRlIG9uIG1vYmlsZVxuICAgICAgaWYgKCF0aGlzLnRvdWNoT3V0c2lkZUhhbmRsZXIpIHtcbiAgICAgICAgY3VycmVudERvY3VtZW50ID0gY3VycmVudERvY3VtZW50IHx8IHByb3BzLmdldERvY3VtZW50KCk7XG4gICAgICAgIHRoaXMudG91Y2hPdXRzaWRlSGFuZGxlciA9IGFkZEV2ZW50TGlzdGVuZXIoY3VycmVudERvY3VtZW50LCAndG91Y2hzdGFydCcsIHRoaXMub25Eb2N1bWVudENsaWNrKTtcbiAgICAgIH1cbiAgICAgIC8vIGNsb3NlIHBvcHVwIHdoZW4gdHJpZ2dlciB0eXBlIGNvbnRhaW5zICdvbkNvbnRleHRNZW51JyBhbmQgZG9jdW1lbnQgaXMgc2Nyb2xsaW5nLlxuICAgICAgaWYgKCF0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxICYmIHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSB7XG4gICAgICAgIGN1cnJlbnREb2N1bWVudCA9IGN1cnJlbnREb2N1bWVudCB8fCBwcm9wcy5nZXREb2N1bWVudCgpO1xuICAgICAgICB0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIxID0gYWRkRXZlbnRMaXN0ZW5lcihjdXJyZW50RG9jdW1lbnQsICdzY3JvbGwnLCB0aGlzLm9uQ29udGV4dE1lbnVDbG9zZSk7XG4gICAgICB9XG4gICAgICAvLyBjbG9zZSBwb3B1cCB3aGVuIHRyaWdnZXIgdHlwZSBjb250YWlucyAnb25Db250ZXh0TWVudScgYW5kIHdpbmRvdyBpcyBibHVyLlxuICAgICAgaWYgKCF0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyICYmIHRoaXMuaXNDb250ZXh0TWVudVRvU2hvdygpKSB7XG4gICAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjIgPSBhZGRFdmVudExpc3RlbmVyKHdpbmRvdywgJ2JsdXInLCB0aGlzLm9uQ29udGV4dE1lbnVDbG9zZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhck91dHNpZGVIYW5kbGVyKCk7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLmNsZWFyRGVsYXlUaW1lcigpO1xuICAgIHRoaXMuY2xlYXJPdXRzaWRlSGFuZGxlcigpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlRG93blRpbWVvdXQpO1xuICB9O1xuXG4gIFRyaWdnZXIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHByZXZTdGF0ZSkge1xuICAgIHZhciBwb3B1cFZpc2libGUgPSBfcmVmLnBvcHVwVmlzaWJsZTtcblxuICAgIHZhciBuZXdTdGF0ZSA9IHt9O1xuXG4gICAgaWYgKHBvcHVwVmlzaWJsZSAhPT0gdW5kZWZpbmVkICYmIHByZXZTdGF0ZS5wb3B1cFZpc2libGUgIT09IHBvcHVwVmlzaWJsZSkge1xuICAgICAgbmV3U3RhdGUucG9wdXBWaXNpYmxlID0gcG9wdXBWaXNpYmxlO1xuICAgICAgbmV3U3RhdGUucHJldlBvcHVwVmlzaWJsZSA9IHByZXZTdGF0ZS5wb3B1cFZpc2libGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld1N0YXRlO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmdldFBvcHVwRG9tTm9kZSA9IGZ1bmN0aW9uIGdldFBvcHVwRG9tTm9kZSgpIHtcbiAgICAvLyBmb3IgdGVzdFxuICAgIGlmICh0aGlzLl9jb21wb25lbnQgJiYgdGhpcy5fY29tcG9uZW50LmdldFBvcHVwRG9tTm9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudC5nZXRQb3B1cERvbU5vZGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZ2V0UG9wdXBBbGlnbiA9IGZ1bmN0aW9uIGdldFBvcHVwQWxpZ24oKSB7XG4gICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICB2YXIgcG9wdXBQbGFjZW1lbnQgPSBwcm9wcy5wb3B1cFBsYWNlbWVudCxcbiAgICAgICAgcG9wdXBBbGlnbiA9IHByb3BzLnBvcHVwQWxpZ24sXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzID0gcHJvcHMuYnVpbHRpblBsYWNlbWVudHM7XG5cbiAgICBpZiAocG9wdXBQbGFjZW1lbnQgJiYgYnVpbHRpblBsYWNlbWVudHMpIHtcbiAgICAgIHJldHVybiBnZXRBbGlnbkZyb21QbGFjZW1lbnQoYnVpbHRpblBsYWNlbWVudHMsIHBvcHVwUGxhY2VtZW50LCBwb3B1cEFsaWduKTtcbiAgICB9XG4gICAgcmV0dXJuIHBvcHVwQWxpZ247XG4gIH07XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwb3B1cFZpc2libGUgICAgU2hvdyBvciBub3QgdGhlIHBvcHVwIGVsZW1lbnRcbiAgICogQHBhcmFtIGV2ZW50ICAgICAgICAgICBTeW50aGV0aWNFdmVudCwgdXNlZCBmb3IgYHBvaW50QWxpZ25gXG4gICAqL1xuICBUcmlnZ2VyLnByb3RvdHlwZS5zZXRQb3B1cFZpc2libGUgPSBmdW5jdGlvbiBzZXRQb3B1cFZpc2libGUocG9wdXBWaXNpYmxlLCBldmVudCkge1xuICAgIHZhciBhbGlnblBvaW50ID0gdGhpcy5wcm9wcy5hbGlnblBvaW50O1xuICAgIHZhciBwcmV2UG9wdXBWaXNpYmxlID0gdGhpcy5zdGF0ZS5wb3B1cFZpc2libGU7XG5cblxuICAgIHRoaXMuY2xlYXJEZWxheVRpbWVyKCk7XG5cbiAgICBpZiAocHJldlBvcHVwVmlzaWJsZSAhPT0gcG9wdXBWaXNpYmxlKSB7XG4gICAgICBpZiAoISgncG9wdXBWaXNpYmxlJyBpbiB0aGlzLnByb3BzKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgcG9wdXBWaXNpYmxlOiBwb3B1cFZpc2libGUsIHByZXZQb3B1cFZpc2libGU6IHByZXZQb3B1cFZpc2libGUgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BzLm9uUG9wdXBWaXNpYmxlQ2hhbmdlKHBvcHVwVmlzaWJsZSk7XG4gICAgfVxuXG4gICAgLy8gQWx3YXlzIHJlY29yZCB0aGUgcG9pbnQgcG9zaXRpb24gc2luY2UgbW91c2VFbnRlckRlbGF5IHdpbGwgZGVsYXkgdGhlIHNob3dcbiAgICBpZiAoYWxpZ25Qb2ludCAmJiBldmVudCkge1xuICAgICAgdGhpcy5zZXRQb2ludChldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmRlbGF5U2V0UG9wdXBWaXNpYmxlID0gZnVuY3Rpb24gZGVsYXlTZXRQb3B1cFZpc2libGUodmlzaWJsZSwgZGVsYXlTLCBldmVudCkge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGRlbGF5ID0gZGVsYXlTICogMTAwMDtcbiAgICB0aGlzLmNsZWFyRGVsYXlUaW1lcigpO1xuICAgIGlmIChkZWxheSkge1xuICAgICAgdmFyIHBvaW50ID0gZXZlbnQgPyB7IHBhZ2VYOiBldmVudC5wYWdlWCwgcGFnZVk6IGV2ZW50LnBhZ2VZIH0gOiBudWxsO1xuICAgICAgdGhpcy5kZWxheVRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzMi5zZXRQb3B1cFZpc2libGUodmlzaWJsZSwgcG9pbnQpO1xuICAgICAgICBfdGhpczIuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UG9wdXBWaXNpYmxlKHZpc2libGUsIGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY2xlYXJEZWxheVRpbWVyID0gZnVuY3Rpb24gY2xlYXJEZWxheVRpbWVyKCkge1xuICAgIGlmICh0aGlzLmRlbGF5VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlbGF5VGltZXIpO1xuICAgICAgdGhpcy5kZWxheVRpbWVyID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY2xlYXJPdXRzaWRlSGFuZGxlciA9IGZ1bmN0aW9uIGNsZWFyT3V0c2lkZUhhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMuY2xpY2tPdXRzaWRlSGFuZGxlcikge1xuICAgICAgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyLnJlbW92ZSgpO1xuICAgICAgdGhpcy5jbGlja091dHNpZGVIYW5kbGVyID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMSkge1xuICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMS5yZW1vdmUoKTtcbiAgICAgIHRoaXMuY29udGV4dE1lbnVPdXRzaWRlSGFuZGxlcjEgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyKSB7XG4gICAgICB0aGlzLmNvbnRleHRNZW51T3V0c2lkZUhhbmRsZXIyLnJlbW92ZSgpO1xuICAgICAgdGhpcy5jb250ZXh0TWVudU91dHNpZGVIYW5kbGVyMiA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG91Y2hPdXRzaWRlSGFuZGxlcikge1xuICAgICAgdGhpcy50b3VjaE91dHNpZGVIYW5kbGVyLnJlbW92ZSgpO1xuICAgICAgdGhpcy50b3VjaE91dHNpZGVIYW5kbGVyID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuY3JlYXRlVHdvQ2hhaW5zID0gZnVuY3Rpb24gY3JlYXRlVHdvQ2hhaW5zKGV2ZW50KSB7XG4gICAgdmFyIGNoaWxkUHJvcyA9IHRoaXMucHJvcHMuY2hpbGRyZW4ucHJvcHM7XG4gICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICBpZiAoY2hpbGRQcm9zW2V2ZW50XSAmJiBwcm9wc1tldmVudF0pIHtcbiAgICAgIHJldHVybiB0aGlzWydmaXJlJyArIGV2ZW50XTtcbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkUHJvc1tldmVudF0gfHwgcHJvcHNbZXZlbnRdO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmlzQ2xpY2tUb1Nob3cgPSBmdW5jdGlvbiBpc0NsaWNrVG9TaG93KCkge1xuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICBhY3Rpb24gPSBfcHJvcHMuYWN0aW9uLFxuICAgICAgICBzaG93QWN0aW9uID0gX3Byb3BzLnNob3dBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2NsaWNrJykgIT09IC0xIHx8IHNob3dBY3Rpb24uaW5kZXhPZignY2xpY2snKSAhPT0gLTE7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuaXNDb250ZXh0TWVudVRvU2hvdyA9IGZ1bmN0aW9uIGlzQ29udGV4dE1lbnVUb1Nob3coKSB7XG4gICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICBhY3Rpb24gPSBfcHJvcHMyLmFjdGlvbixcbiAgICAgICAgc2hvd0FjdGlvbiA9IF9wcm9wczIuc2hvd0FjdGlvbjtcblxuICAgIHJldHVybiBhY3Rpb24uaW5kZXhPZignY29udGV4dE1lbnUnKSAhPT0gLTEgfHwgc2hvd0FjdGlvbi5pbmRleE9mKCdjb250ZXh0TWVudScpICE9PSAtMTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5pc0NsaWNrVG9IaWRlID0gZnVuY3Rpb24gaXNDbGlja1RvSGlkZSgpIHtcbiAgICB2YXIgX3Byb3BzMyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczMuYWN0aW9uLFxuICAgICAgICBoaWRlQWN0aW9uID0gX3Byb3BzMy5oaWRlQWN0aW9uO1xuXG4gICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdjbGljaycpICE9PSAtMSB8fCBoaWRlQWN0aW9uLmluZGV4T2YoJ2NsaWNrJykgIT09IC0xO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmlzTW91c2VFbnRlclRvU2hvdyA9IGZ1bmN0aW9uIGlzTW91c2VFbnRlclRvU2hvdygpIHtcbiAgICB2YXIgX3Byb3BzNCA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczQuYWN0aW9uLFxuICAgICAgICBzaG93QWN0aW9uID0gX3Byb3BzNC5zaG93QWN0aW9uO1xuXG4gICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdob3ZlcicpICE9PSAtMSB8fCBzaG93QWN0aW9uLmluZGV4T2YoJ21vdXNlRW50ZXInKSAhPT0gLTE7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuaXNNb3VzZUxlYXZlVG9IaWRlID0gZnVuY3Rpb24gaXNNb3VzZUxlYXZlVG9IaWRlKCkge1xuICAgIHZhciBfcHJvcHM1ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgYWN0aW9uID0gX3Byb3BzNS5hY3Rpb24sXG4gICAgICAgIGhpZGVBY3Rpb24gPSBfcHJvcHM1LmhpZGVBY3Rpb247XG5cbiAgICByZXR1cm4gYWN0aW9uLmluZGV4T2YoJ2hvdmVyJykgIT09IC0xIHx8IGhpZGVBY3Rpb24uaW5kZXhPZignbW91c2VMZWF2ZScpICE9PSAtMTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5pc0ZvY3VzVG9TaG93ID0gZnVuY3Rpb24gaXNGb2N1c1RvU2hvdygpIHtcbiAgICB2YXIgX3Byb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczYuYWN0aW9uLFxuICAgICAgICBzaG93QWN0aW9uID0gX3Byb3BzNi5zaG93QWN0aW9uO1xuXG4gICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdmb2N1cycpICE9PSAtMSB8fCBzaG93QWN0aW9uLmluZGV4T2YoJ2ZvY3VzJykgIT09IC0xO1xuICB9O1xuXG4gIFRyaWdnZXIucHJvdG90eXBlLmlzQmx1clRvSGlkZSA9IGZ1bmN0aW9uIGlzQmx1clRvSGlkZSgpIHtcbiAgICB2YXIgX3Byb3BzNyA9IHRoaXMucHJvcHMsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczcuYWN0aW9uLFxuICAgICAgICBoaWRlQWN0aW9uID0gX3Byb3BzNy5oaWRlQWN0aW9uO1xuXG4gICAgcmV0dXJuIGFjdGlvbi5pbmRleE9mKCdmb2N1cycpICE9PSAtMSB8fCBoaWRlQWN0aW9uLmluZGV4T2YoJ2JsdXInKSAhPT0gLTE7XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZm9yY2VQb3B1cEFsaWduID0gZnVuY3Rpb24gZm9yY2VQb3B1cEFsaWduKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLnBvcHVwVmlzaWJsZSAmJiB0aGlzLl9jb21wb25lbnQgJiYgdGhpcy5fY29tcG9uZW50LmFsaWduSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuX2NvbXBvbmVudC5hbGlnbkluc3RhbmNlLmZvcmNlQWxpZ24oKTtcbiAgICB9XG4gIH07XG5cbiAgVHJpZ2dlci5wcm90b3R5cGUuZmlyZUV2ZW50cyA9IGZ1bmN0aW9uIGZpcmVFdmVudHModHlwZSwgZSkge1xuICAgIHZhciBjaGlsZENhbGxiYWNrID0gdGhpcy5wcm9wcy5jaGlsZHJlbi5wcm9wc1t0eXBlXTtcbiAgICBpZiAoY2hpbGRDYWxsYmFjaykge1xuICAgICAgY2hpbGRDYWxsYmFjayhlKTtcbiAgICB9XG4gICAgdmFyIGNhbGxiYWNrID0gdGhpcy5wcm9wc1t0eXBlXTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKGUpO1xuICAgIH1cbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uIGNsb3NlKCkge1xuICAgIHRoaXMuc2V0UG9wdXBWaXNpYmxlKGZhbHNlKTtcbiAgfTtcblxuICBUcmlnZ2VyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICB2YXIgcG9wdXBWaXNpYmxlID0gdGhpcy5zdGF0ZS5wb3B1cFZpc2libGU7XG4gICAgdmFyIF9wcm9wczggPSB0aGlzLnByb3BzLFxuICAgICAgICBjaGlsZHJlbiA9IF9wcm9wczguY2hpbGRyZW4sXG4gICAgICAgIGZvcmNlUmVuZGVyID0gX3Byb3BzOC5mb3JjZVJlbmRlcixcbiAgICAgICAgYWxpZ25Qb2ludCA9IF9wcm9wczguYWxpZ25Qb2ludCxcbiAgICAgICAgY2xhc3NOYW1lID0gX3Byb3BzOC5jbGFzc05hbWU7XG5cbiAgICB2YXIgY2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KGNoaWxkcmVuKTtcbiAgICB2YXIgbmV3Q2hpbGRQcm9wcyA9IHsga2V5OiAndHJpZ2dlcicgfTtcblxuICAgIGlmICh0aGlzLmlzQ29udGV4dE1lbnVUb1Nob3coKSkge1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbkNvbnRleHRNZW51ID0gdGhpcy5vbkNvbnRleHRNZW51O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQ29udGV4dE1lbnUgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Db250ZXh0TWVudScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ2xpY2tUb0hpZGUoKSB8fCB0aGlzLmlzQ2xpY2tUb1Nob3coKSkge1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrO1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRG93biA9IHRoaXMub25Nb3VzZURvd247XG4gICAgICBuZXdDaGlsZFByb3BzLm9uVG91Y2hTdGFydCA9IHRoaXMub25Ub3VjaFN0YXJ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQ2xpY2sgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25DbGljaycpO1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlRG93biA9IHRoaXMuY3JlYXRlVHdvQ2hhaW5zKCdvbk1vdXNlRG93bicpO1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vblRvdWNoU3RhcnQgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Ub3VjaFN0YXJ0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTW91c2VFbnRlclRvU2hvdygpKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uTW91c2VFbnRlciA9IHRoaXMub25Nb3VzZUVudGVyO1xuICAgICAgaWYgKGFsaWduUG9pbnQpIHtcbiAgICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlTW92ZSA9IHRoaXMub25Nb3VzZU1vdmU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkUHJvcHMub25Nb3VzZUVudGVyID0gdGhpcy5jcmVhdGVUd29DaGFpbnMoJ29uTW91c2VFbnRlcicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc01vdXNlTGVhdmVUb0hpZGUoKSkge1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlTGVhdmUgPSB0aGlzLm9uTW91c2VMZWF2ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbk1vdXNlTGVhdmUgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Nb3VzZUxlYXZlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRm9jdXNUb1Nob3coKSB8fCB0aGlzLmlzQmx1clRvSGlkZSgpKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uRm9jdXMgPSB0aGlzLm9uRm9jdXM7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uQmx1ciA9IHRoaXMub25CbHVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZFByb3BzLm9uRm9jdXMgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25Gb2N1cycpO1xuICAgICAgbmV3Q2hpbGRQcm9wcy5vbkJsdXIgPSB0aGlzLmNyZWF0ZVR3b0NoYWlucygnb25CbHVyJyk7XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkcmVuQ2xhc3NOYW1lID0gY2xhc3NOYW1lcyhjaGlsZCAmJiBjaGlsZC5wcm9wcyAmJiBjaGlsZC5wcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSk7XG4gICAgaWYgKGNoaWxkcmVuQ2xhc3NOYW1lKSB7XG4gICAgICBuZXdDaGlsZFByb3BzLmNsYXNzTmFtZSA9IGNoaWxkcmVuQ2xhc3NOYW1lO1xuICAgIH1cbiAgICB2YXIgdHJpZ2dlciA9IFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgbmV3Q2hpbGRQcm9wcyk7XG5cbiAgICBpZiAoIUlTX1JFQUNUXzE2KSB7XG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICAgQ29udGFpbmVyUmVuZGVyLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyZW50OiB0aGlzLFxuICAgICAgICAgIHZpc2libGU6IHBvcHVwVmlzaWJsZSxcbiAgICAgICAgICBhdXRvTW91bnQ6IGZhbHNlLFxuICAgICAgICAgIGZvcmNlUmVuZGVyOiBmb3JjZVJlbmRlcixcbiAgICAgICAgICBnZXRDb21wb25lbnQ6IHRoaXMuZ2V0Q29tcG9uZW50LFxuICAgICAgICAgIGdldENvbnRhaW5lcjogdGhpcy5nZXRDb250YWluZXJcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgICAgdmFyIHJlbmRlckNvbXBvbmVudCA9IF9yZWYyLnJlbmRlckNvbXBvbmVudDtcblxuICAgICAgICAgIF90aGlzMy5yZW5kZXJDb21wb25lbnQgPSByZW5kZXJDb21wb25lbnQ7XG4gICAgICAgICAgcmV0dXJuIHRyaWdnZXI7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIHBvcnRhbCA9IHZvaWQgMDtcbiAgICAvLyBwcmV2ZW50IHVubW91bnRpbmcgYWZ0ZXIgaXQncyByZW5kZXJlZFxuICAgIGlmIChwb3B1cFZpc2libGUgfHwgdGhpcy5fY29tcG9uZW50IHx8IGZvcmNlUmVuZGVyKSB7XG4gICAgICBwb3J0YWwgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICBQb3J0YWwsXG4gICAgICAgIHsga2V5OiAncG9ydGFsJywgZ2V0Q29udGFpbmVyOiB0aGlzLmdldENvbnRhaW5lciwgZGlkVXBkYXRlOiB0aGlzLmhhbmRsZVBvcnRhbFVwZGF0ZSB9LFxuICAgICAgICB0aGlzLmdldENvbXBvbmVudCgpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBbdHJpZ2dlciwgcG9ydGFsXTtcbiAgfTtcblxuICByZXR1cm4gVHJpZ2dlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuVHJpZ2dlci5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMuYW55LFxuICBhY3Rpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpXSksXG4gIHNob3dBY3Rpb246IFByb3BUeXBlcy5hbnksXG4gIGhpZGVBY3Rpb246IFByb3BUeXBlcy5hbnksXG4gIGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduOiBQcm9wVHlwZXMuYW55LFxuICBvblBvcHVwVmlzaWJsZUNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgcG9wdXA6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ub2RlLCBQcm9wVHlwZXMuZnVuY10pLmlzUmVxdWlyZWQsXG4gIHBvcHVwU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgcG9wdXBDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcG9wdXBQbGFjZW1lbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGJ1aWx0aW5QbGFjZW1lbnRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBwb3B1cFRyYW5zaXRpb25OYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSksXG4gIHBvcHVwQW5pbWF0aW9uOiBQcm9wVHlwZXMuYW55LFxuICBtb3VzZUVudGVyRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1vdXNlTGVhdmVEZWxheTogUHJvcFR5cGVzLm51bWJlcixcbiAgekluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBmb2N1c0RlbGF5OiBQcm9wVHlwZXMubnVtYmVyLFxuICBibHVyRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIGdldFBvcHVwQ29udGFpbmVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgZ2V0RG9jdW1lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICBmb3JjZVJlbmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIGRlc3Ryb3lQb3B1cE9uSGlkZTogUHJvcFR5cGVzLmJvb2wsXG4gIG1hc2s6IFByb3BUeXBlcy5ib29sLFxuICBtYXNrQ2xvc2FibGU6IFByb3BUeXBlcy5ib29sLFxuICBvblBvcHVwQWxpZ246IFByb3BUeXBlcy5mdW5jLFxuICBwb3B1cEFsaWduOiBQcm9wVHlwZXMub2JqZWN0LFxuICBwb3B1cFZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBkZWZhdWx0UG9wdXBWaXNpYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgbWFza1RyYW5zaXRpb25OYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSksXG4gIG1hc2tBbmltYXRpb246IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0cmV0Y2g6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFsaWduUG9pbnQ6IFByb3BUeXBlcy5ib29sIC8vIE1heWJlIHdlIGNhbiBzdXBwb3J0IHVzZXIgcGFzcyBwb3NpdGlvbiBpbiB0aGUgZnV0dXJlXG59O1xuVHJpZ2dlci5jb250ZXh0VHlwZXMgPSBjb250ZXh0VHlwZXM7XG5UcmlnZ2VyLmNoaWxkQ29udGV4dFR5cGVzID0gY29udGV4dFR5cGVzO1xuVHJpZ2dlci5kZWZhdWx0UHJvcHMgPSB7XG4gIHByZWZpeENsczogJ3JjLXRyaWdnZXItcG9wdXAnLFxuICBnZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbjogcmV0dXJuRW1wdHlTdHJpbmcsXG4gIGdldERvY3VtZW50OiByZXR1cm5Eb2N1bWVudCxcbiAgb25Qb3B1cFZpc2libGVDaGFuZ2U6IG5vb3AsXG4gIGFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlOiBub29wLFxuICBvblBvcHVwQWxpZ246IG5vb3AsXG4gIHBvcHVwQ2xhc3NOYW1lOiAnJyxcbiAgbW91c2VFbnRlckRlbGF5OiAwLFxuICBtb3VzZUxlYXZlRGVsYXk6IDAuMSxcbiAgZm9jdXNEZWxheTogMCxcbiAgYmx1ckRlbGF5OiAwLjE1LFxuICBwb3B1cFN0eWxlOiB7fSxcbiAgZGVzdHJveVBvcHVwT25IaWRlOiBmYWxzZSxcbiAgcG9wdXBBbGlnbjoge30sXG4gIGRlZmF1bHRQb3B1cFZpc2libGU6IGZhbHNlLFxuICBtYXNrOiBmYWxzZSxcbiAgbWFza0Nsb3NhYmxlOiB0cnVlLFxuICBhY3Rpb246IFtdLFxuICBzaG93QWN0aW9uOiBbXSxcbiAgaGlkZUFjdGlvbjogW11cbn07XG5cbnZhciBfaW5pdGlhbGlzZVByb3BzID0gZnVuY3Rpb24gX2luaXRpYWxpc2VQcm9wcygpIHtcbiAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgdGhpcy5vbk1vdXNlRW50ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgIHZhciBtb3VzZUVudGVyRGVsYXkgPSBfdGhpczQucHJvcHMubW91c2VFbnRlckRlbGF5O1xuXG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uTW91c2VFbnRlcicsIGUpO1xuICAgIF90aGlzNC5kZWxheVNldFBvcHVwVmlzaWJsZSh0cnVlLCBtb3VzZUVudGVyRGVsYXksIG1vdXNlRW50ZXJEZWxheSA/IG51bGwgOiBlKTtcbiAgfTtcblxuICB0aGlzLm9uTW91c2VNb3ZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25Nb3VzZU1vdmUnLCBlKTtcbiAgICBfdGhpczQuc2V0UG9pbnQoZSk7XG4gIH07XG5cbiAgdGhpcy5vbk1vdXNlTGVhdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgIF90aGlzNC5maXJlRXZlbnRzKCdvbk1vdXNlTGVhdmUnLCBlKTtcbiAgICBfdGhpczQuZGVsYXlTZXRQb3B1cFZpc2libGUoZmFsc2UsIF90aGlzNC5wcm9wcy5tb3VzZUxlYXZlRGVsYXkpO1xuICB9O1xuXG4gIHRoaXMub25Qb3B1cE1vdXNlRW50ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgX3RoaXM0LmNsZWFyRGVsYXlUaW1lcigpO1xuICB9O1xuXG4gIHRoaXMub25Qb3B1cE1vdXNlTGVhdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvdHJpZ2dlci9wdWxsLzEzXG4gICAgLy8gcmVhY3QgYnVnP1xuICAgIGlmIChlLnJlbGF0ZWRUYXJnZXQgJiYgIWUucmVsYXRlZFRhcmdldC5zZXRUaW1lb3V0ICYmIF90aGlzNC5fY29tcG9uZW50ICYmIF90aGlzNC5fY29tcG9uZW50LmdldFBvcHVwRG9tTm9kZSAmJiBjb250YWlucyhfdGhpczQuX2NvbXBvbmVudC5nZXRQb3B1cERvbU5vZGUoKSwgZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfdGhpczQuZGVsYXlTZXRQb3B1cFZpc2libGUoZmFsc2UsIF90aGlzNC5wcm9wcy5tb3VzZUxlYXZlRGVsYXkpO1xuICB9O1xuXG4gIHRoaXMub25Gb2N1cyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uRm9jdXMnLCBlKTtcbiAgICAvLyBpbmNhc2UgZm9jdXNpbiBhbmQgZm9jdXNvdXRcbiAgICBfdGhpczQuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgaWYgKF90aGlzNC5pc0ZvY3VzVG9TaG93KCkpIHtcbiAgICAgIF90aGlzNC5mb2N1c1RpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgX3RoaXM0LmRlbGF5U2V0UG9wdXBWaXNpYmxlKHRydWUsIF90aGlzNC5wcm9wcy5mb2N1c0RlbGF5KTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5vbk1vdXNlRG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uTW91c2VEb3duJywgZSk7XG4gICAgX3RoaXM0LnByZUNsaWNrVGltZSA9IERhdGUubm93KCk7XG4gIH07XG5cbiAgdGhpcy5vblRvdWNoU3RhcnQgPSBmdW5jdGlvbiAoZSkge1xuICAgIF90aGlzNC5maXJlRXZlbnRzKCdvblRvdWNoU3RhcnQnLCBlKTtcbiAgICBfdGhpczQucHJlVG91Y2hUaW1lID0gRGF0ZS5ub3coKTtcbiAgfTtcblxuICB0aGlzLm9uQmx1ciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgX3RoaXM0LmZpcmVFdmVudHMoJ29uQmx1cicsIGUpO1xuICAgIF90aGlzNC5jbGVhckRlbGF5VGltZXIoKTtcbiAgICBpZiAoX3RoaXM0LmlzQmx1clRvSGlkZSgpKSB7XG4gICAgICBfdGhpczQuZGVsYXlTZXRQb3B1cFZpc2libGUoZmFsc2UsIF90aGlzNC5wcm9wcy5ibHVyRGVsYXkpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uQ29udGV4dE1lbnUgPSBmdW5jdGlvbiAoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25Db250ZXh0TWVudScsIGUpO1xuICAgIF90aGlzNC5zZXRQb3B1cFZpc2libGUodHJ1ZSwgZSk7XG4gIH07XG5cbiAgdGhpcy5vbkNvbnRleHRNZW51Q2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKF90aGlzNC5pc0NvbnRleHRNZW51VG9TaG93KCkpIHtcbiAgICAgIF90aGlzNC5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uQ2xpY2sgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBfdGhpczQuZmlyZUV2ZW50cygnb25DbGljaycsIGV2ZW50KTtcbiAgICAvLyBmb2N1cyB3aWxsIHRyaWdnZXIgY2xpY2tcbiAgICBpZiAoX3RoaXM0LmZvY3VzVGltZSkge1xuICAgICAgdmFyIHByZVRpbWUgPSB2b2lkIDA7XG4gICAgICBpZiAoX3RoaXM0LnByZUNsaWNrVGltZSAmJiBfdGhpczQucHJlVG91Y2hUaW1lKSB7XG4gICAgICAgIHByZVRpbWUgPSBNYXRoLm1pbihfdGhpczQucHJlQ2xpY2tUaW1lLCBfdGhpczQucHJlVG91Y2hUaW1lKTtcbiAgICAgIH0gZWxzZSBpZiAoX3RoaXM0LnByZUNsaWNrVGltZSkge1xuICAgICAgICBwcmVUaW1lID0gX3RoaXM0LnByZUNsaWNrVGltZTtcbiAgICAgIH0gZWxzZSBpZiAoX3RoaXM0LnByZVRvdWNoVGltZSkge1xuICAgICAgICBwcmVUaW1lID0gX3RoaXM0LnByZVRvdWNoVGltZTtcbiAgICAgIH1cbiAgICAgIGlmIChNYXRoLmFicyhwcmVUaW1lIC0gX3RoaXM0LmZvY3VzVGltZSkgPCAyMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdGhpczQuZm9jdXNUaW1lID0gMDtcbiAgICB9XG4gICAgX3RoaXM0LnByZUNsaWNrVGltZSA9IDA7XG4gICAgX3RoaXM0LnByZVRvdWNoVGltZSA9IDA7XG5cbiAgICAvLyBPbmx5IHByZXZlbnQgZGVmYXVsdCB3aGVuIGFsbCB0aGUgYWN0aW9uIGlzIGNsaWNrLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE3MDQzXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTcyOTFcbiAgICBpZiAoX3RoaXM0LmlzQ2xpY2tUb1Nob3coKSAmJiAoX3RoaXM0LmlzQ2xpY2tUb0hpZGUoKSB8fCBfdGhpczQuaXNCbHVyVG9IaWRlKCkpICYmIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB2YXIgbmV4dFZpc2libGUgPSAhX3RoaXM0LnN0YXRlLnBvcHVwVmlzaWJsZTtcbiAgICBpZiAoX3RoaXM0LmlzQ2xpY2tUb0hpZGUoKSAmJiAhbmV4dFZpc2libGUgfHwgbmV4dFZpc2libGUgJiYgX3RoaXM0LmlzQ2xpY2tUb1Nob3coKSkge1xuICAgICAgX3RoaXM0LnNldFBvcHVwVmlzaWJsZSghX3RoaXM0LnN0YXRlLnBvcHVwVmlzaWJsZSwgZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uUG9wdXBNb3VzZURvd24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9jb250ZXh0JHJjVHJpZ2dlciA9IF90aGlzNC5jb250ZXh0LnJjVHJpZ2dlcixcbiAgICAgICAgcmNUcmlnZ2VyID0gX2NvbnRleHQkcmNUcmlnZ2VyID09PSB1bmRlZmluZWQgPyB7fSA6IF9jb250ZXh0JHJjVHJpZ2dlcjtcblxuICAgIF90aGlzNC5oYXNQb3B1cE1vdXNlRG93biA9IHRydWU7XG5cbiAgICBjbGVhclRpbWVvdXQoX3RoaXM0Lm1vdXNlRG93blRpbWVvdXQpO1xuICAgIF90aGlzNC5tb3VzZURvd25UaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpczQuaGFzUG9wdXBNb3VzZURvd24gPSBmYWxzZTtcbiAgICB9LCAwKTtcblxuICAgIGlmIChyY1RyaWdnZXIub25Qb3B1cE1vdXNlRG93bikge1xuICAgICAgcmNUcmlnZ2VyLm9uUG9wdXBNb3VzZURvd24uYXBwbHkocmNUcmlnZ2VyLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLm9uRG9jdW1lbnRDbGljayA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChfdGhpczQucHJvcHMubWFzayAmJiAhX3RoaXM0LnByb3BzLm1hc2tDbG9zYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgdmFyIHJvb3QgPSBmaW5kRE9NTm9kZShfdGhpczQpO1xuICAgIGlmICghY29udGFpbnMocm9vdCwgdGFyZ2V0KSAmJiAhX3RoaXM0Lmhhc1BvcHVwTW91c2VEb3duKSB7XG4gICAgICBfdGhpczQuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5nZXRSb290RG9tTm9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZmluZERPTU5vZGUoX3RoaXM0KTtcbiAgfTtcblxuICB0aGlzLmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduID0gZnVuY3Rpb24gKGFsaWduKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IFtdO1xuICAgIHZhciBfcHJvcHM5ID0gX3RoaXM0LnByb3BzLFxuICAgICAgICBwb3B1cFBsYWNlbWVudCA9IF9wcm9wczkucG9wdXBQbGFjZW1lbnQsXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzID0gX3Byb3BzOS5idWlsdGluUGxhY2VtZW50cyxcbiAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzOS5wcmVmaXhDbHMsXG4gICAgICAgIGFsaWduUG9pbnQgPSBfcHJvcHM5LmFsaWduUG9pbnQsXG4gICAgICAgIGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduID0gX3Byb3BzOS5nZXRQb3B1cENsYXNzTmFtZUZyb21BbGlnbjtcblxuICAgIGlmIChwb3B1cFBsYWNlbWVudCAmJiBidWlsdGluUGxhY2VtZW50cykge1xuICAgICAgY2xhc3NOYW1lLnB1c2goZ2V0QWxpZ25Qb3B1cENsYXNzTmFtZShidWlsdGluUGxhY2VtZW50cywgcHJlZml4Q2xzLCBhbGlnbiwgYWxpZ25Qb2ludCkpO1xuICAgIH1cbiAgICBpZiAoZ2V0UG9wdXBDbGFzc05hbWVGcm9tQWxpZ24pIHtcbiAgICAgIGNsYXNzTmFtZS5wdXNoKGdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduKGFsaWduKSk7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc05hbWUuam9pbignICcpO1xuICB9O1xuXG4gIHRoaXMuZ2V0Q29tcG9uZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcHJvcHMxMCA9IF90aGlzNC5wcm9wcyxcbiAgICAgICAgcHJlZml4Q2xzID0gX3Byb3BzMTAucHJlZml4Q2xzLFxuICAgICAgICBkZXN0cm95UG9wdXBPbkhpZGUgPSBfcHJvcHMxMC5kZXN0cm95UG9wdXBPbkhpZGUsXG4gICAgICAgIHBvcHVwQ2xhc3NOYW1lID0gX3Byb3BzMTAucG9wdXBDbGFzc05hbWUsXG4gICAgICAgIGFjdGlvbiA9IF9wcm9wczEwLmFjdGlvbixcbiAgICAgICAgb25Qb3B1cEFsaWduID0gX3Byb3BzMTAub25Qb3B1cEFsaWduLFxuICAgICAgICBwb3B1cEFuaW1hdGlvbiA9IF9wcm9wczEwLnBvcHVwQW5pbWF0aW9uLFxuICAgICAgICBwb3B1cFRyYW5zaXRpb25OYW1lID0gX3Byb3BzMTAucG9wdXBUcmFuc2l0aW9uTmFtZSxcbiAgICAgICAgcG9wdXBTdHlsZSA9IF9wcm9wczEwLnBvcHVwU3R5bGUsXG4gICAgICAgIG1hc2sgPSBfcHJvcHMxMC5tYXNrLFxuICAgICAgICBtYXNrQW5pbWF0aW9uID0gX3Byb3BzMTAubWFza0FuaW1hdGlvbixcbiAgICAgICAgbWFza1RyYW5zaXRpb25OYW1lID0gX3Byb3BzMTAubWFza1RyYW5zaXRpb25OYW1lLFxuICAgICAgICB6SW5kZXggPSBfcHJvcHMxMC56SW5kZXgsXG4gICAgICAgIHBvcHVwID0gX3Byb3BzMTAucG9wdXAsXG4gICAgICAgIHN0cmV0Y2ggPSBfcHJvcHMxMC5zdHJldGNoLFxuICAgICAgICBhbGlnblBvaW50ID0gX3Byb3BzMTAuYWxpZ25Qb2ludDtcbiAgICB2YXIgX3N0YXRlID0gX3RoaXM0LnN0YXRlLFxuICAgICAgICBwb3B1cFZpc2libGUgPSBfc3RhdGUucG9wdXBWaXNpYmxlLFxuICAgICAgICBwb2ludCA9IF9zdGF0ZS5wb2ludDtcblxuXG4gICAgdmFyIGFsaWduID0gX3RoaXM0LmdldFBvcHVwQWxpZ24oKTtcblxuICAgIHZhciBtb3VzZVByb3BzID0ge307XG4gICAgaWYgKF90aGlzNC5pc01vdXNlRW50ZXJUb1Nob3coKSkge1xuICAgICAgbW91c2VQcm9wcy5vbk1vdXNlRW50ZXIgPSBfdGhpczQub25Qb3B1cE1vdXNlRW50ZXI7XG4gICAgfVxuICAgIGlmIChfdGhpczQuaXNNb3VzZUxlYXZlVG9IaWRlKCkpIHtcbiAgICAgIG1vdXNlUHJvcHMub25Nb3VzZUxlYXZlID0gX3RoaXM0Lm9uUG9wdXBNb3VzZUxlYXZlO1xuICAgIH1cblxuICAgIG1vdXNlUHJvcHMub25Nb3VzZURvd24gPSBfdGhpczQub25Qb3B1cE1vdXNlRG93bjtcbiAgICBtb3VzZVByb3BzLm9uVG91Y2hTdGFydCA9IF90aGlzNC5vblBvcHVwTW91c2VEb3duO1xuXG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICBQb3B1cCxcbiAgICAgIF9leHRlbmRzKHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGRlc3Ryb3lQb3B1cE9uSGlkZTogZGVzdHJveVBvcHVwT25IaWRlLFxuICAgICAgICB2aXNpYmxlOiBwb3B1cFZpc2libGUsXG4gICAgICAgIHBvaW50OiBhbGlnblBvaW50ICYmIHBvaW50LFxuICAgICAgICBjbGFzc05hbWU6IHBvcHVwQ2xhc3NOYW1lLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgYWxpZ246IGFsaWduLFxuICAgICAgICBvbkFsaWduOiBvblBvcHVwQWxpZ24sXG4gICAgICAgIGFuaW1hdGlvbjogcG9wdXBBbmltYXRpb24sXG4gICAgICAgIGdldENsYXNzTmFtZUZyb21BbGlnbjogX3RoaXM0LmdldFBvcHVwQ2xhc3NOYW1lRnJvbUFsaWduXG4gICAgICB9LCBtb3VzZVByb3BzLCB7XG4gICAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICAgIGdldFJvb3REb21Ob2RlOiBfdGhpczQuZ2V0Um9vdERvbU5vZGUsXG4gICAgICAgIHN0eWxlOiBwb3B1cFN0eWxlLFxuICAgICAgICBtYXNrOiBtYXNrLFxuICAgICAgICB6SW5kZXg6IHpJbmRleCxcbiAgICAgICAgdHJhbnNpdGlvbk5hbWU6IHBvcHVwVHJhbnNpdGlvbk5hbWUsXG4gICAgICAgIG1hc2tBbmltYXRpb246IG1hc2tBbmltYXRpb24sXG4gICAgICAgIG1hc2tUcmFuc2l0aW9uTmFtZTogbWFza1RyYW5zaXRpb25OYW1lLFxuICAgICAgICByZWY6IF90aGlzNC5zYXZlUG9wdXBcbiAgICAgIH0pLFxuICAgICAgdHlwZW9mIHBvcHVwID09PSAnZnVuY3Rpb24nID8gcG9wdXAoKSA6IHBvcHVwXG4gICAgKTtcbiAgfTtcblxuICB0aGlzLmdldENvbnRhaW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcHJvcHMgPSBfdGhpczQucHJvcHM7XG5cbiAgICB2YXIgcG9wdXBDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAvLyBNYWtlIHN1cmUgZGVmYXVsdCBwb3B1cCBjb250YWluZXIgd2lsbCBuZXZlciBjYXVzZSBzY3JvbGxiYXIgYXBwZWFyaW5nXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90cmlnZ2VyL2lzc3Vlcy80MVxuICAgIHBvcHVwQ29udGFpbmVyLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBwb3B1cENvbnRhaW5lci5zdHlsZS50b3AgPSAnMCc7XG4gICAgcG9wdXBDb250YWluZXIuc3R5bGUubGVmdCA9ICcwJztcbiAgICBwb3B1cENvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICB2YXIgbW91bnROb2RlID0gcHJvcHMuZ2V0UG9wdXBDb250YWluZXIgPyBwcm9wcy5nZXRQb3B1cENvbnRhaW5lcihmaW5kRE9NTm9kZShfdGhpczQpKSA6IHByb3BzLmdldERvY3VtZW50KCkuYm9keTtcbiAgICBtb3VudE5vZGUuYXBwZW5kQ2hpbGQocG9wdXBDb250YWluZXIpO1xuICAgIHJldHVybiBwb3B1cENvbnRhaW5lcjtcbiAgfTtcblxuICB0aGlzLnNldFBvaW50ID0gZnVuY3Rpb24gKHBvaW50KSB7XG4gICAgdmFyIGFsaWduUG9pbnQgPSBfdGhpczQucHJvcHMuYWxpZ25Qb2ludDtcblxuICAgIGlmICghYWxpZ25Qb2ludCB8fCAhcG9pbnQpIHJldHVybjtcblxuICAgIF90aGlzNC5zZXRTdGF0ZSh7XG4gICAgICBwb2ludDoge1xuICAgICAgICBwYWdlWDogcG9pbnQucGFnZVgsXG4gICAgICAgIHBhZ2VZOiBwb2ludC5wYWdlWVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHRoaXMuaGFuZGxlUG9ydGFsVXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChfdGhpczQuc3RhdGUucHJldlBvcHVwVmlzaWJsZSAhPT0gX3RoaXM0LnN0YXRlLnBvcHVwVmlzaWJsZSkge1xuICAgICAgX3RoaXM0LnByb3BzLmFmdGVyUG9wdXBWaXNpYmxlQ2hhbmdlKF90aGlzNC5zdGF0ZS5wb3B1cFZpc2libGUpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLnNhdmVQb3B1cCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgX3RoaXM0Ll9jb21wb25lbnQgPSBub2RlO1xuICB9O1xufTtcblxucG9seWZpbGwoVHJpZ2dlcik7XG5cbmV4cG9ydCBkZWZhdWx0IFRyaWdnZXI7IiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwidmFyIGJhc2VJc05hdGl2ZSA9IHJlcXVpcmUoJy4vX2Jhc2VJc05hdGl2ZScpLFxuICAgIGdldFZhbHVlID0gcmVxdWlyZSgnLi9fZ2V0VmFsdWUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG4iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGRvbV8xID0gcmVxdWlyZShcIi4uL2RvbVwiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4uL2RvbS9ET01FeGNlcHRpb25cIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi4vZG9tL2ludGVyZmFjZXNcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IHV0aWxfMiA9IHJlcXVpcmUoXCJAb296Y2l0YWsvdXRpbFwiKTtcbmNvbnN0IGluZnJhXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL2luZnJhXCIpO1xuY29uc3QgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vQ3VzdG9tRWxlbWVudEFsZ29yaXRobVwiKTtcbmNvbnN0IFRyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBOb2RlSXRlcmF0b3JBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL05vZGVJdGVyYXRvckFsZ29yaXRobVwiKTtcbmNvbnN0IFNoYWRvd1RyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1NoYWRvd1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9NdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXCIpO1xuY29uc3QgRE9NQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9ET01BbGdvcml0aG1cIik7XG5jb25zdCBEb2N1bWVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRBbGdvcml0aG1cIik7XG4vKipcbiAqIEVuc3VyZXMgcHJlLWluc2VydGlvbiB2YWxpZGl0eSBvZiBhIG5vZGUgaW50byBhIHBhcmVudCBiZWZvcmUgYVxuICogY2hpbGQuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIGluc2VydFxuICogQHBhcmFtIHBhcmVudCAtIHBhcmVudCBub2RlIHRvIHJlY2VpdmUgbm9kZVxuICogQHBhcmFtIGNoaWxkIC0gY2hpbGQgbm9kZSB0byBpbnNlcnQgbm9kZSBiZWZvcmVcbiAqL1xuZnVuY3Rpb24gbXV0YXRpb25fZW5zdXJlUHJlSW5zZXJ0aW9uVmFsaWRpdHkobm9kZSwgcGFyZW50LCBjaGlsZCkge1xuICAgIGNvbnN0IHBhcmVudE5vZGVUeXBlID0gcGFyZW50Ll9ub2RlVHlwZTtcbiAgICBjb25zdCBub2RlTm9kZVR5cGUgPSBub2RlLl9ub2RlVHlwZTtcbiAgICBjb25zdCBjaGlsZE5vZGVUeXBlID0gY2hpbGQgPyBjaGlsZC5fbm9kZVR5cGUgOiBudWxsO1xuICAgIC8qKlxuICAgICAqIDEuIElmIHBhcmVudCBpcyBub3QgYSBEb2N1bWVudCwgRG9jdW1lbnRGcmFnbWVudCwgb3IgRWxlbWVudCBub2RlLFxuICAgICAqIHRocm93IGEgXCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKHBhcmVudE5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQgJiZcbiAgICAgICAgcGFyZW50Tm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50ICYmXG4gICAgICAgIHBhcmVudE5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgT25seSBkb2N1bWVudCwgZG9jdW1lbnQgZnJhZ21lbnQgYW5kIGVsZW1lbnQgbm9kZXMgY2FuIGNvbnRhaW4gY2hpbGQgbm9kZXMuIFBhcmVudCBub2RlIGlzICR7cGFyZW50Lm5vZGVOYW1lfS5gKTtcbiAgICAvKipcbiAgICAgKiAyLiBJZiBub2RlIGlzIGEgaG9zdC1pbmNsdWRpbmcgaW5jbHVzaXZlIGFuY2VzdG9yIG9mIHBhcmVudCwgdGhyb3cgYVxuICAgICAqIFwiSGllcmFyY2h5UmVxdWVzdEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqL1xuICAgIGlmIChUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0hvc3RJbmNsdWRpbmdBbmNlc3Rvck9mKHBhcmVudCwgbm9kZSwgdHJ1ZSkpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYFRoZSBub2RlIHRvIGJlIGluc2VydGVkIGNhbm5vdCBiZSBhbiBpbmNsdXNpdmUgYW5jZXN0b3Igb2YgcGFyZW50IG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfSwgcGFyZW50IG5vZGUgaXMgJHtwYXJlbnQubm9kZU5hbWV9LmApO1xuICAgIC8qKlxuICAgICAqIDMuIElmIGNoaWxkIGlzIG5vdCBudWxsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCBwYXJlbnQsIHRoZW4gdGhyb3cgYVxuICAgICAqIFwiTm90Rm91bmRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgKi9cbiAgICBpZiAoY2hpbGQgIT09IG51bGwgJiYgY2hpbGQuX3BhcmVudCAhPT0gcGFyZW50KVxuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90Rm91bmRFcnJvcihgVGhlIHJlZmVyZW5jZSBjaGlsZCBub2RlIGNhbm5vdCBiZSBmb3VuZCB1bmRlciBwYXJlbnQgbm9kZS4gQ2hpbGQgbm9kZSBpcyAke2NoaWxkLm5vZGVOYW1lfSwgcGFyZW50IG5vZGUgaXMgJHtwYXJlbnQubm9kZU5hbWV9LmApO1xuICAgIC8qKlxuICAgICAqIDQuIElmIG5vZGUgaXMgbm90IGEgRG9jdW1lbnRGcmFnbWVudCwgRG9jdW1lbnRUeXBlLCBFbGVtZW50LCBUZXh0LFxuICAgICAqIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgb3IgQ29tbWVudCBub2RlLCB0aHJvdyBhIFwiSGllcmFyY2h5UmVxdWVzdEVycm9yXCJcbiAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKG5vZGVOb2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQgJiZcbiAgICAgICAgbm9kZU5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlICYmXG4gICAgICAgIG5vZGVOb2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQgJiZcbiAgICAgICAgbm9kZU5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCAmJlxuICAgICAgICBub2RlTm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gJiZcbiAgICAgICAgbm9kZU5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGEgJiZcbiAgICAgICAgbm9kZU5vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgT25seSBkb2N1bWVudCBmcmFnbWVudCwgZG9jdW1lbnQgdHlwZSwgZWxlbWVudCwgdGV4dCwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiwgY2RhdGEgc2VjdGlvbiBvciBjb21tZW50IG5vZGVzIGNhbiBiZSBpbnNlcnRlZC4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgIC8qKlxuICAgICAqIDUuIElmIGVpdGhlciBub2RlIGlzIGEgVGV4dCBub2RlIGFuZCBwYXJlbnQgaXMgYSBkb2N1bWVudCwgb3Igbm9kZSBpcyBhXG4gICAgICogZG9jdHlwZSBhbmQgcGFyZW50IGlzIG5vdCBhIGRvY3VtZW50LCB0aHJvdyBhIFwiSGllcmFyY2h5UmVxdWVzdEVycm9yXCJcbiAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKG5vZGVOb2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQgJiZcbiAgICAgICAgcGFyZW50Tm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQ2Fubm90IGluc2VydCBhIHRleHQgbm9kZSBhcyBhIGNoaWxkIG9mIGEgZG9jdW1lbnQgbm9kZS4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgIGlmIChub2RlTm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUgJiZcbiAgICAgICAgcGFyZW50Tm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQSBkb2N1bWVudCB0eXBlIG5vZGUgY2FuIG9ubHkgYmUgaW5zZXJ0ZWQgdW5kZXIgYSBkb2N1bWVudCBub2RlLiBQYXJlbnQgbm9kZSBpcyAke3BhcmVudC5ub2RlTmFtZX0uYCk7XG4gICAgLyoqXG4gICAgICogNi4gSWYgcGFyZW50IGlzIGEgZG9jdW1lbnQsIGFuZCBhbnkgb2YgdGhlIHN0YXRlbWVudHMgYmVsb3csIHN3aXRjaGVkIG9uXG4gICAgICogbm9kZSwgYXJlIHRydWUsIHRocm93IGEgXCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICogLSBEb2N1bWVudEZyYWdtZW50IG5vZGVcbiAgICAgKiBJZiBub2RlIGhhcyBtb3JlIHRoYW4gb25lIGVsZW1lbnQgY2hpbGQgb3IgaGFzIGEgVGV4dCBub2RlIGNoaWxkLlxuICAgICAqIE90aGVyd2lzZSwgaWYgbm9kZSBoYXMgb25lIGVsZW1lbnQgY2hpbGQgYW5kIGVpdGhlciBwYXJlbnQgaGFzIGFuIGVsZW1lbnRcbiAgICAgKiBjaGlsZCwgY2hpbGQgaXMgYSBkb2N0eXBlLCBvciBjaGlsZCBpcyBub3QgbnVsbCBhbmQgYSBkb2N0eXBlIGlzXG4gICAgICogZm9sbG93aW5nIGNoaWxkLlxuICAgICAqIC0gZWxlbWVudFxuICAgICAqIHBhcmVudCBoYXMgYW4gZWxlbWVudCBjaGlsZCwgY2hpbGQgaXMgYSBkb2N0eXBlLCBvciBjaGlsZCBpcyBub3QgbnVsbCBhbmRcbiAgICAgKiBhIGRvY3R5cGUgaXMgZm9sbG93aW5nIGNoaWxkLlxuICAgICAqIC0gZG9jdHlwZVxuICAgICAqIHBhcmVudCBoYXMgYSBkb2N0eXBlIGNoaWxkLCBjaGlsZCBpcyBub24tbnVsbCBhbmQgYW4gZWxlbWVudCBpcyBwcmVjZWRpbmdcbiAgICAgKiBjaGlsZCwgb3IgY2hpbGQgaXMgbnVsbCBhbmQgcGFyZW50IGhhcyBhbiBlbGVtZW50IGNoaWxkLlxuICAgICAqL1xuICAgIGlmIChwYXJlbnROb2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50KSB7XG4gICAgICAgIGlmIChub2RlTm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgICAgICBsZXQgZWxlQ291bnQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGROb2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIGVsZUNvdW50Kys7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGROb2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYENhbm5vdCBpbnNlcnQgdGV4dCBhIG5vZGUgYXMgYSBjaGlsZCBvZiBhIGRvY3VtZW50IG5vZGUuIE5vZGUgaXMgJHtjaGlsZE5vZGUubm9kZU5hbWV9LmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZUNvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYEEgZG9jdW1lbnQgbm9kZSBjYW4gb25seSBoYXZlIG9uZSBkb2N1bWVudCBlbGVtZW50IG5vZGUuIERvY3VtZW50IGZyYWdtZW50IHRvIGJlIGluc2VydGVkIGhhcyAke2VsZUNvdW50fSBlbGVtZW50IG5vZGVzLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZWxlQ291bnQgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVsZSBvZiBwYXJlbnQuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYFRoZSBkb2N1bWVudCBub2RlIGFscmVhZHkgaGFzIGEgZG9jdW1lbnQgZWxlbWVudCBub2RlLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBDYW5ub3QgaW5zZXJ0IGFuIGVsZW1lbnQgbm9kZSBiZWZvcmUgYSBkb2N1bWVudCB0eXBlIG5vZGUuYCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkb2N0eXBlQ2hpbGQgPSBjaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChkb2N0eXBlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N0eXBlQ2hpbGQuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYENhbm5vdCBpbnNlcnQgYW4gZWxlbWVudCBub2RlIGJlZm9yZSBhIGRvY3VtZW50IHR5cGUgbm9kZS5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3R5cGVDaGlsZCA9IGRvY3R5cGVDaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobm9kZU5vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbGUgb2YgcGFyZW50Ll9jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGlmIChlbGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgRG9jdW1lbnQgYWxyZWFkeSBoYXMgYSBkb2N1bWVudCBlbGVtZW50IG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZE5vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBDYW5ub3QgaW5zZXJ0IGFuIGVsZW1lbnQgbm9kZSBiZWZvcmUgYSBkb2N1bWVudCB0eXBlIG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICAgICAgICAgICAgICBsZXQgZG9jdHlwZUNoaWxkID0gY2hpbGQuX25leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIHdoaWxlIChkb2N0eXBlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3R5cGVDaGlsZC5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBDYW5ub3QgaW5zZXJ0IGFuIGVsZW1lbnQgbm9kZSBiZWZvcmUgYSBkb2N1bWVudCB0eXBlIG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdHlwZUNoaWxkID0gZG9jdHlwZUNoaWxkLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobm9kZU5vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZSBvZiBwYXJlbnQuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYERvY3VtZW50IGFscmVhZHkgaGFzIGEgZG9jdW1lbnQgdHlwZSBub2RlLiBOb2RlIGlzICR7bm9kZS5ub2RlTmFtZX0uYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBsZXQgZWxlbWVudENoaWxkID0gY2hpbGQuX3ByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICB3aGlsZSAoZWxlbWVudENoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Q2hpbGQuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYENhbm5vdCBpbnNlcnQgYSBkb2N1bWVudCB0eXBlIG5vZGUgYmVmb3JlIGFuIGVsZW1lbnQgbm9kZS4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50Q2hpbGQgPSBlbGVtZW50Q2hpbGQuX3ByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgZWxlbWVudENoaWxkID0gcGFyZW50Ll9maXJzdENoaWxkO1xuICAgICAgICAgICAgICAgIHdoaWxlIChlbGVtZW50Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDaGlsZC5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQ2Fubm90IGluc2VydCBhIGRvY3VtZW50IHR5cGUgbm9kZSBiZWZvcmUgYW4gZWxlbWVudCBub2RlLiBOb2RlIGlzICR7bm9kZS5ub2RlTmFtZX0uYCk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRDaGlsZCA9IGVsZW1lbnRDaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5tdXRhdGlvbl9lbnN1cmVQcmVJbnNlcnRpb25WYWxpZGl0eSA9IG11dGF0aW9uX2Vuc3VyZVByZUluc2VydGlvblZhbGlkaXR5O1xuLyoqXG4gKiBFbnN1cmVzIHByZS1pbnNlcnRpb24gdmFsaWRpdHkgb2YgYSBub2RlIGludG8gYSBwYXJlbnQgYmVmb3JlIGFcbiAqIGNoaWxkLCB0aGVuIGFkb3B0cyB0aGUgbm9kZSB0byB0aGUgdHJlZSBhbmQgaW5zZXJ0cyBpdC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGUgdG8gcmVjZWl2ZSBub2RlXG4gKiBAcGFyYW0gY2hpbGQgLSBjaGlsZCBub2RlIHRvIGluc2VydCBub2RlIGJlZm9yZVxuICovXG5mdW5jdGlvbiBtdXRhdGlvbl9wcmVJbnNlcnQobm9kZSwgcGFyZW50LCBjaGlsZCkge1xuICAgIC8qKlxuICAgICAqIDEuIEVuc3VyZSBwcmUtaW5zZXJ0aW9uIHZhbGlkaXR5IG9mIG5vZGUgaW50byBwYXJlbnQgYmVmb3JlIGNoaWxkLlxuICAgICAqIDIuIExldCByZWZlcmVuY2UgY2hpbGQgYmUgY2hpbGQuXG4gICAgICogMy4gSWYgcmVmZXJlbmNlIGNoaWxkIGlzIG5vZGUsIHNldCBpdCB0byBub2Rl4oCZcyBuZXh0IHNpYmxpbmcuXG4gICAgICogNC4gQWRvcHQgbm9kZSBpbnRvIHBhcmVudOKAmXMgbm9kZSBkb2N1bWVudC5cbiAgICAgKiA1LiBJbnNlcnQgbm9kZSBpbnRvIHBhcmVudCBiZWZvcmUgcmVmZXJlbmNlIGNoaWxkLlxuICAgICAqIDYuIFJldHVybiBub2RlLlxuICAgICAqL1xuICAgIG11dGF0aW9uX2Vuc3VyZVByZUluc2VydGlvblZhbGlkaXR5KG5vZGUsIHBhcmVudCwgY2hpbGQpO1xuICAgIGxldCByZWZlcmVuY2VDaGlsZCA9IGNoaWxkO1xuICAgIGlmIChyZWZlcmVuY2VDaGlsZCA9PT0gbm9kZSlcbiAgICAgICAgcmVmZXJlbmNlQ2hpbGQgPSBub2RlLl9uZXh0U2libGluZztcbiAgICBEb2N1bWVudEFsZ29yaXRobV8xLmRvY3VtZW50X2Fkb3B0KG5vZGUsIHBhcmVudC5fbm9kZURvY3VtZW50KTtcbiAgICBtdXRhdGlvbl9pbnNlcnQobm9kZSwgcGFyZW50LCByZWZlcmVuY2VDaGlsZCk7XG4gICAgcmV0dXJuIG5vZGU7XG59XG5leHBvcnRzLm11dGF0aW9uX3ByZUluc2VydCA9IG11dGF0aW9uX3ByZUluc2VydDtcbi8qKlxuICogSW5zZXJ0cyBhIG5vZGUgaW50byBhIHBhcmVudCBub2RlIGJlZm9yZSB0aGUgZ2l2ZW4gY2hpbGQgbm9kZS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGUgdG8gcmVjZWl2ZSBub2RlXG4gKiBAcGFyYW0gY2hpbGQgLSBjaGlsZCBub2RlIHRvIGluc2VydCBub2RlIGJlZm9yZVxuICogQHBhcmFtIHN1cHByZXNzT2JzZXJ2ZXJzIC0gd2hldGhlciB0byBub3RpZnkgb2JzZXJ2ZXJzXG4gKi9cbmZ1bmN0aW9uIG11dGF0aW9uX2luc2VydChub2RlLCBwYXJlbnQsIGNoaWxkLCBzdXBwcmVzc09ic2VydmVycykge1xuICAgIC8vIE9wdGltaXplZCBjb21tb24gY2FzZVxuICAgIGlmIChjaGlsZCA9PT0gbnVsbCAmJiBub2RlLl9ub2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgICAgbXV0YXRpb25faW5zZXJ0X3NpbmdsZShub2RlLCBwYXJlbnQsIHN1cHByZXNzT2JzZXJ2ZXJzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAxLiBMZXQgY291bnQgYmUgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBvZiBub2RlIGlmIGl0IGlzIGFcbiAgICAgKiBEb2N1bWVudEZyYWdtZW50IG5vZGUsIGFuZCBvbmUgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGNvbnN0IGNvdW50ID0gKG5vZGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRGcmFnbWVudCA/XG4gICAgICAgIG5vZGUuX2NoaWxkcmVuLnNpemUgOiAxKTtcbiAgICAvKipcbiAgICAgKiAyLiBJZiBjaGlsZCBpcyBub24tbnVsbCwgdGhlbjpcbiAgICAgKi9cbiAgICBpZiAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuMS4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBzdGFydCBub2RlIGlzIHBhcmVudCBhbmQgc3RhcnRcbiAgICAgICAgICogb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBjaGlsZCdzIGluZGV4LCBpbmNyZWFzZSBpdHMgc3RhcnRcbiAgICAgICAgICogb2Zmc2V0IGJ5IGNvdW50LlxuICAgICAgICAgKiAyLjIuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2UgZW5kIG5vZGUgaXMgcGFyZW50IGFuZCBlbmRcbiAgICAgICAgICogb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBjaGlsZCdzIGluZGV4LCBpbmNyZWFzZSBpdHMgZW5kXG4gICAgICAgICAqIG9mZnNldCBieSBjb3VudC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChkb21fMS5kb20ucmFuZ2VMaXN0LnNpemUgIT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfaW5kZXgoY2hpbGQpO1xuICAgICAgICAgICAgZm9yIChjb25zdCByYW5nZSBvZiBkb21fMS5kb20ucmFuZ2VMaXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHJhbmdlLl9zdGFydFswXSA9PT0gcGFyZW50ICYmIHJhbmdlLl9zdGFydFsxXSA+IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJhbmdlLl9zdGFydFsxXSArPSBjb3VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJhbmdlLl9lbmRbMF0gPT09IHBhcmVudCAmJiByYW5nZS5fZW5kWzFdID4gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2UuX2VuZFsxXSArPSBjb3VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogMy4gTGV0IG5vZGVzIGJlIG5vZGXigJlzIGNoaWxkcmVuLCBpZiBub2RlIGlzIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlO1xuICAgICAqIG90aGVyd2lzZSDCqyBub2RlIMK7LlxuICAgICAqL1xuICAgIGNvbnN0IG5vZGVzID0gbm9kZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50ID9cbiAgICAgICAgbmV3IEFycmF5KC4uLm5vZGUuX2NoaWxkcmVuKSA6IFtub2RlXTtcbiAgICAvKipcbiAgICAgKiA0LiBJZiBub2RlIGlzIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlLCByZW1vdmUgaXRzIGNoaWxkcmVuIHdpdGggdGhlXG4gICAgICogc3VwcHJlc3Mgb2JzZXJ2ZXJzIGZsYWcgc2V0LlxuICAgICAqL1xuICAgIGlmIChub2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgICAgd2hpbGUgKG5vZGUuX2ZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIG11dGF0aW9uX3JlbW92ZShub2RlLl9maXJzdENoaWxkLCBub2RlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA1LiBJZiBub2RlIGlzIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlLCB0aGVuIHF1ZXVlIGEgdHJlZSBtdXRhdGlvbiByZWNvcmRcbiAgICAgKiBmb3Igbm9kZSB3aXRoIMKrIMK7LCBub2RlcywgbnVsbCwgYW5kIG51bGwuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5tdXRhdGlvbk9ic2VydmVycykge1xuICAgICAgICBpZiAobm9kZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgICAgICBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEub2JzZXJ2ZXJfcXVldWVUcmVlTXV0YXRpb25SZWNvcmQobm9kZSwgW10sIG5vZGVzLCBudWxsLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA2LiBMZXQgcHJldmlvdXNTaWJsaW5nIGJlIGNoaWxk4oCZcyBwcmV2aW91cyBzaWJsaW5nIG9yIHBhcmVudOKAmXMgbGFzdFxuICAgICAqIGNoaWxkIGlmIGNoaWxkIGlzIG51bGwuXG4gICAgICovXG4gICAgY29uc3QgcHJldmlvdXNTaWJsaW5nID0gKGNoaWxkID8gY2hpbGQuX3ByZXZpb3VzU2libGluZyA6IHBhcmVudC5fbGFzdENoaWxkKTtcbiAgICBsZXQgaW5kZXggPSBjaGlsZCA9PT0gbnVsbCA/IC0xIDogVHJlZUFsZ29yaXRobV8xLnRyZWVfaW5kZXgoY2hpbGQpO1xuICAgIC8qKlxuICAgICAqIDcuIEZvciBlYWNoIG5vZGUgaW4gbm9kZXMsIGluIHRyZWUgb3JkZXI6XG4gICAgICovXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICAgICAgLy8gc2V0IGRvY3VtZW50IGVsZW1lbnQgbm9kZVxuICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50Tm9kZShwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Ll9kb2N1bWVudEVsZW1lbnQgPSBub2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gbWFyayB0aGF0IHRoZSBkb2N1bWVudCBoYXMgbmFtZXNwYWNlc1xuICAgICAgICAgICAgaWYgKCFub2RlLl9ub2RlRG9jdW1lbnQuX2hhc05hbWVzcGFjZXMgJiYgKG5vZGUuX25hbWVzcGFjZSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIG5vZGUuX25hbWVzcGFjZVByZWZpeCAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQuX2hhc05hbWVzcGFjZXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LjEuIElmIGNoaWxkIGlzIG51bGwsIHRoZW4gYXBwZW5kIG5vZGUgdG8gcGFyZW504oCZcyBjaGlsZHJlbi5cbiAgICAgICAgICogNy4yLiBPdGhlcndpc2UsIGluc2VydCBub2RlIGludG8gcGFyZW504oCZcyBjaGlsZHJlbiBiZWZvcmUgY2hpbGTigJlzXG4gICAgICAgICAqIGluZGV4LlxuICAgICAgICAgKi9cbiAgICAgICAgbm9kZS5fcGFyZW50ID0gcGFyZW50O1xuICAgICAgICBpZiAoY2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGluZnJhXzEuc2V0LmFwcGVuZChwYXJlbnQuX2NoaWxkcmVuLCBub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGluZnJhXzEuc2V0Lmluc2VydChwYXJlbnQuX2NoaWxkcmVuLCBub2RlLCBpbmRleCk7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFzc2lnbiBzaWJsaW5ncyBhbmQgY2hpbGRyZW4gZm9yIHF1aWNrIGxvb2t1cHNcbiAgICAgICAgaWYgKHBhcmVudC5fZmlyc3RDaGlsZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgbm9kZS5fcHJldmlvdXNTaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICAgIG5vZGUuX25leHRTaWJsaW5nID0gbnVsbDtcbiAgICAgICAgICAgIHBhcmVudC5fZmlyc3RDaGlsZCA9IG5vZGU7XG4gICAgICAgICAgICBwYXJlbnQuX2xhc3RDaGlsZCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gKGNoaWxkID8gY2hpbGQuX3ByZXZpb3VzU2libGluZyA6IHBhcmVudC5fbGFzdENoaWxkKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSAoY2hpbGQgPyBjaGlsZCA6IG51bGwpO1xuICAgICAgICAgICAgbm9kZS5fcHJldmlvdXNTaWJsaW5nID0gcHJldjtcbiAgICAgICAgICAgIG5vZGUuX25leHRTaWJsaW5nID0gbmV4dDtcbiAgICAgICAgICAgIGlmIChwcmV2KVxuICAgICAgICAgICAgICAgIHByZXYuX25leHRTaWJsaW5nID0gbm9kZTtcbiAgICAgICAgICAgIGlmIChuZXh0KVxuICAgICAgICAgICAgICAgIG5leHQuX3ByZXZpb3VzU2libGluZyA9IG5vZGU7XG4gICAgICAgICAgICBpZiAoIXByZXYpXG4gICAgICAgICAgICAgICAgcGFyZW50Ll9maXJzdENoaWxkID0gbm9kZTtcbiAgICAgICAgICAgIGlmICghbmV4dClcbiAgICAgICAgICAgICAgICBwYXJlbnQuX2xhc3RDaGlsZCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDcuMy4gSWYgcGFyZW50IGlzIGEgc2hhZG93IGhvc3QgYW5kIG5vZGUgaXMgYSBzbG90YWJsZSwgdGhlblxuICAgICAgICAgKiBhc3NpZ24gYSBzbG90IGZvciBub2RlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zbG90cykge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5fc2hhZG93Um9vdCAhPT0gbnVsbCAmJiB1dGlsXzEuR3VhcmQuaXNTbG90YWJsZShub2RlKSkge1xuICAgICAgICAgICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2Fzc2lnbkFTbG90KG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LjQuIElmIG5vZGUgaXMgYSBUZXh0IG5vZGUsIHJ1biB0aGUgY2hpbGQgdGV4dCBjb250ZW50IGNoYW5nZVxuICAgICAgICAgKiBzdGVwcyBmb3IgcGFyZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1RleHROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1bkNoaWxkVGV4dENvbnRlbnRDaGFuZ2VTdGVwcyhwYXJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LjUuIElmIHBhcmVudCdzIHJvb3QgaXMgYSBzaGFkb3cgcm9vdCwgYW5kIHBhcmVudCBpcyBhIHNsb3RcbiAgICAgICAgICogd2hvc2UgYXNzaWduZWQgbm9kZXMgaXMgdGhlIGVtcHR5IGxpc3QsIHRoZW4gcnVuIHNpZ25hbFxuICAgICAgICAgKiBhIHNsb3QgY2hhbmdlIGZvciBwYXJlbnQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShwYXJlbnQpKSAmJlxuICAgICAgICAgICAgICAgIHV0aWxfMS5HdWFyZC5pc1Nsb3QocGFyZW50KSAmJiB1dGlsXzIuaXNFbXB0eShwYXJlbnQuX2Fzc2lnbmVkTm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfc2lnbmFsQVNsb3RDaGFuZ2UocGFyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNy42LiBSdW4gYXNzaWduIHNsb3RhYmxlcyBmb3IgYSB0cmVlIHdpdGggbm9kZSdzIHJvb3QuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgICAgICBTaGFkb3dUcmVlQWxnb3JpdGhtXzEuc2hhZG93VHJlZV9hc3NpZ25TbG90YWJsZXNGb3JBVHJlZShUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShub2RlKSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDcuNy4gRm9yIGVhY2ggc2hhZG93LWluY2x1ZGluZyBpbmNsdXNpdmUgZGVzY2VuZGFudFxuICAgICAgICAgKiBpbmNsdXNpdmVEZXNjZW5kYW50IG9mIG5vZGUsIGluIHNoYWRvdy1pbmNsdWRpbmcgdHJlZVxuICAgICAgICAgKiBvcmRlcjpcbiAgICAgICAgICovXG4gICAgICAgIGxldCBpbmNsdXNpdmVEZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZShub2RlLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgd2hpbGUgKGluY2x1c2l2ZURlc2NlbmRhbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNy43LjEuIFJ1biB0aGUgaW5zZXJ0aW9uIHN0ZXBzIHdpdGggaW5jbHVzaXZlRGVzY2VuZGFudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICAgICAgICAgIERPTUFsZ29yaXRobV8xLmRvbV9ydW5JbnNlcnRpb25TdGVwcyhpbmNsdXNpdmVEZXNjZW5kYW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuY3VzdG9tRWxlbWVudHMpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA3LjcuMi4gSWYgaW5jbHVzaXZlRGVzY2VuZGFudCBpcyBjb25uZWN0ZWQsIHRoZW46XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0VsZW1lbnROb2RlKGluY2x1c2l2ZURlc2NlbmRhbnQpICYmXG4gICAgICAgICAgICAgICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2lzQ29ubmVjdGVkKGluY2x1c2l2ZURlc2NlbmRhbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNDdXN0b21FbGVtZW50Tm9kZShpbmNsdXNpdmVEZXNjZW5kYW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiA3LjcuMi4xLiBJZiBpbmNsdXNpdmVEZXNjZW5kYW50IGlzIGN1c3RvbSwgdGhlbiBlbnF1ZXVlIGEgY3VzdG9tXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBlbGVtZW50IGNhbGxiYWNrIHJlYWN0aW9uIHdpdGggaW5jbHVzaXZlRGVzY2VuZGFudCwgY2FsbGJhY2sgbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICogXCJjb25uZWN0ZWRDYWxsYmFja1wiLCBhbmQgYW4gZW1wdHkgYXJndW1lbnQgbGlzdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xLmN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50Q2FsbGJhY2tSZWFjdGlvbihpbmNsdXNpdmVEZXNjZW5kYW50LCBcImNvbm5lY3RlZENhbGxiYWNrXCIsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogNy43LjIuMi4gT3RoZXJ3aXNlLCB0cnkgdG8gdXBncmFkZSBpbmNsdXNpdmVEZXNjZW5kYW50LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21FbGVtZW50QWxnb3JpdGhtXzEuY3VzdG9tRWxlbWVudF90cnlUb1VwZ3JhZGUoaW5jbHVzaXZlRGVzY2VuZGFudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmNsdXNpdmVEZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlKG5vZGUsIGluY2x1c2l2ZURlc2NlbmRhbnQsIHRydWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDguIElmIHN1cHByZXNzIG9ic2VydmVycyBmbGFnIGlzIHVuc2V0LCB0aGVuIHF1ZXVlIGEgdHJlZSBtdXRhdGlvbiByZWNvcmRcbiAgICAgKiBmb3IgcGFyZW50IHdpdGggbm9kZXMsIMKrIMK7LCBwcmV2aW91c1NpYmxpbmcsIGFuZCBjaGlsZC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLm11dGF0aW9uT2JzZXJ2ZXJzKSB7XG4gICAgICAgIGlmICghc3VwcHJlc3NPYnNlcnZlcnMpIHtcbiAgICAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMS5vYnNlcnZlcl9xdWV1ZVRyZWVNdXRhdGlvblJlY29yZChwYXJlbnQsIG5vZGVzLCBbXSwgcHJldmlvdXNTaWJsaW5nLCBjaGlsZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLm11dGF0aW9uX2luc2VydCA9IG11dGF0aW9uX2luc2VydDtcbi8qKlxuICogSW5zZXJ0cyBhIG5vZGUgaW50byBhIHBhcmVudCBub2RlLiBPcHRpbWl6ZWQgcm91dGluZSBmb3IgdGhlIGNvbW1vbiBjYXNlIHdoZXJlXG4gKiBub2RlIGlzIG5vdCBhIGRvY3VtZW50IGZyYWdtZW50IG5vZGUgYW5kIGl0IGhhcyBubyBjaGlsZCBub2Rlcy5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGUgdG8gcmVjZWl2ZSBub2RlXG4gKiBAcGFyYW0gc3VwcHJlc3NPYnNlcnZlcnMgLSB3aGV0aGVyIHRvIG5vdGlmeSBvYnNlcnZlcnNcbiAqL1xuZnVuY3Rpb24gbXV0YXRpb25faW5zZXJ0X3NpbmdsZShub2RlLCBwYXJlbnQsIHN1cHByZXNzT2JzZXJ2ZXJzKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IGNvdW50IGJlIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2Ygbm9kZSBpZiBpdCBpcyBhXG4gICAgICogRG9jdW1lbnRGcmFnbWVudCBub2RlLCBhbmQgb25lIG90aGVyd2lzZS5cbiAgICAgKiAyLiBJZiBjaGlsZCBpcyBub24tbnVsbCwgdGhlbjpcbiAgICAgKiAyLjEuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2Ugc3RhcnQgbm9kZSBpcyBwYXJlbnQgYW5kIHN0YXJ0XG4gICAgICogb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBjaGlsZCdzIGluZGV4LCBpbmNyZWFzZSBpdHMgc3RhcnRcbiAgICAgKiBvZmZzZXQgYnkgY291bnQuXG4gICAgICogMi4yLiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIGVuZCBub2RlIGlzIHBhcmVudCBhbmQgZW5kXG4gICAgICogb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBjaGlsZCdzIGluZGV4LCBpbmNyZWFzZSBpdHMgZW5kXG4gICAgICogb2Zmc2V0IGJ5IGNvdW50LlxuICAgICAqIDMuIExldCBub2RlcyBiZSBub2Rl4oCZcyBjaGlsZHJlbiwgaWYgbm9kZSBpcyBhIERvY3VtZW50RnJhZ21lbnQgbm9kZTtcbiAgICAgKiBvdGhlcndpc2Ugwqsgbm9kZSDCuy5cbiAgICAgKiA0LiBJZiBub2RlIGlzIGEgRG9jdW1lbnRGcmFnbWVudCBub2RlLCByZW1vdmUgaXRzIGNoaWxkcmVuIHdpdGggdGhlXG4gICAgICogc3VwcHJlc3Mgb2JzZXJ2ZXJzIGZsYWcgc2V0LlxuICAgICAqIDUuIElmIG5vZGUgaXMgYSBEb2N1bWVudEZyYWdtZW50IG5vZGUsIHRoZW4gcXVldWUgYSB0cmVlIG11dGF0aW9uIHJlY29yZFxuICAgICAqIGZvciBub2RlIHdpdGggwqsgwrssIG5vZGVzLCBudWxsLCBhbmQgbnVsbC5cbiAgICAgKi9cbiAgICAvKipcbiAgICAgKiA2LiBMZXQgcHJldmlvdXNTaWJsaW5nIGJlIGNoaWxk4oCZcyBwcmV2aW91cyBzaWJsaW5nIG9yIHBhcmVudOKAmXMgbGFzdFxuICAgICAqIGNoaWxkIGlmIGNoaWxkIGlzIG51bGwuXG4gICAgICovXG4gICAgY29uc3QgcHJldmlvdXNTaWJsaW5nID0gcGFyZW50Ll9sYXN0Q2hpbGQ7XG4gICAgLy8gc2V0IGRvY3VtZW50IGVsZW1lbnQgbm9kZVxuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICAvLyBzZXQgZG9jdW1lbnQgZWxlbWVudCBub2RlXG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudE5vZGUocGFyZW50KSkge1xuICAgICAgICAgICAgcGFyZW50Ll9kb2N1bWVudEVsZW1lbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgICAgIC8vIG1hcmsgdGhhdCB0aGUgZG9jdW1lbnQgaGFzIG5hbWVzcGFjZXNcbiAgICAgICAgaWYgKCFub2RlLl9ub2RlRG9jdW1lbnQuX2hhc05hbWVzcGFjZXMgJiYgKG5vZGUuX25hbWVzcGFjZSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgbm9kZS5fbmFtZXNwYWNlUHJlZml4ICE9PSBudWxsKSkge1xuICAgICAgICAgICAgbm9kZS5fbm9kZURvY3VtZW50Ll9oYXNOYW1lc3BhY2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LiBGb3IgZWFjaCBub2RlIGluIG5vZGVzLCBpbiB0cmVlIG9yZGVyOlxuICAgICAqIDcuMS4gSWYgY2hpbGQgaXMgbnVsbCwgdGhlbiBhcHBlbmQgbm9kZSB0byBwYXJlbnTigJlzIGNoaWxkcmVuLlxuICAgICAqIDcuMi4gT3RoZXJ3aXNlLCBpbnNlcnQgbm9kZSBpbnRvIHBhcmVudOKAmXMgY2hpbGRyZW4gYmVmb3JlIGNoaWxk4oCZc1xuICAgICAqIGluZGV4LlxuICAgICAqL1xuICAgIG5vZGUuX3BhcmVudCA9IHBhcmVudDtcbiAgICBwYXJlbnQuX2NoaWxkcmVuLmFkZChub2RlKTtcbiAgICAvLyBhc3NpZ24gc2libGluZ3MgYW5kIGNoaWxkcmVuIGZvciBxdWljayBsb29rdXBzXG4gICAgaWYgKHBhcmVudC5fZmlyc3RDaGlsZCA9PT0gbnVsbCkge1xuICAgICAgICBub2RlLl9wcmV2aW91c1NpYmxpbmcgPSBudWxsO1xuICAgICAgICBub2RlLl9uZXh0U2libGluZyA9IG51bGw7XG4gICAgICAgIHBhcmVudC5fZmlyc3RDaGlsZCA9IG5vZGU7XG4gICAgICAgIHBhcmVudC5fbGFzdENoaWxkID0gbm9kZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBwYXJlbnQuX2xhc3RDaGlsZDtcbiAgICAgICAgbm9kZS5fcHJldmlvdXNTaWJsaW5nID0gcHJldjtcbiAgICAgICAgbm9kZS5fbmV4dFNpYmxpbmcgPSBudWxsO1xuICAgICAgICBpZiAocHJldilcbiAgICAgICAgICAgIHByZXYuX25leHRTaWJsaW5nID0gbm9kZTtcbiAgICAgICAgaWYgKCFwcmV2KVxuICAgICAgICAgICAgcGFyZW50Ll9maXJzdENoaWxkID0gbm9kZTtcbiAgICAgICAgcGFyZW50Ll9sYXN0Q2hpbGQgPSBub2RlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LjMuIElmIHBhcmVudCBpcyBhIHNoYWRvdyBob3N0IGFuZCBub2RlIGlzIGEgc2xvdGFibGUsIHRoZW5cbiAgICAgKiBhc3NpZ24gYSBzbG90IGZvciBub2RlLlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc2xvdHMpIHtcbiAgICAgICAgaWYgKHBhcmVudC5fc2hhZG93Um9vdCAhPT0gbnVsbCAmJiB1dGlsXzEuR3VhcmQuaXNTbG90YWJsZShub2RlKSkge1xuICAgICAgICAgICAgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfYXNzaWduQVNsb3Qobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNy40LiBJZiBub2RlIGlzIGEgVGV4dCBub2RlLCBydW4gdGhlIGNoaWxkIHRleHQgY29udGVudCBjaGFuZ2VcbiAgICAgKiBzdGVwcyBmb3IgcGFyZW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1RleHROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQ2hpbGRUZXh0Q29udGVudENoYW5nZVN0ZXBzKHBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNy41LiBJZiBwYXJlbnQncyByb290IGlzIGEgc2hhZG93IHJvb3QsIGFuZCBwYXJlbnQgaXMgYSBzbG90XG4gICAgICogd2hvc2UgYXNzaWduZWQgbm9kZXMgaXMgdGhlIGVtcHR5IGxpc3QsIHRoZW4gcnVuIHNpZ25hbFxuICAgICAqIGEgc2xvdCBjaGFuZ2UgZm9yIHBhcmVudC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNTaGFkb3dSb290KFRyZWVBbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKHBhcmVudCkpICYmXG4gICAgICAgICAgICB1dGlsXzEuR3VhcmQuaXNTbG90KHBhcmVudCkgJiYgdXRpbF8yLmlzRW1wdHkocGFyZW50Ll9hc3NpZ25lZE5vZGVzKSkge1xuICAgICAgICAgICAgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfc2lnbmFsQVNsb3RDaGFuZ2UocGFyZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LjYuIFJ1biBhc3NpZ24gc2xvdGFibGVzIGZvciBhIHRyZWUgd2l0aCBub2RlJ3Mgcm9vdC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlc0ZvckFUcmVlKFRyZWVBbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKG5vZGUpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNy43LiBGb3IgZWFjaCBzaGFkb3ctaW5jbHVkaW5nIGluY2x1c2l2ZSBkZXNjZW5kYW50XG4gICAgICogaW5jbHVzaXZlRGVzY2VuZGFudCBvZiBub2RlLCBpbiBzaGFkb3ctaW5jbHVkaW5nIHRyZWVcbiAgICAgKiBvcmRlcjpcbiAgICAgKiA3LjcuMS4gUnVuIHRoZSBpbnNlcnRpb24gc3RlcHMgd2l0aCBpbmNsdXNpdmVEZXNjZW5kYW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1bkluc2VydGlvblN0ZXBzKG5vZGUpO1xuICAgIH1cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLmN1c3RvbUVsZW1lbnRzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LjcuMi4gSWYgaW5jbHVzaXZlRGVzY2VuZGFudCBpcyBjb25uZWN0ZWQsIHRoZW46XG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUobm9kZSkgJiZcbiAgICAgICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2lzQ29ubmVjdGVkKG5vZGUpKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ3VzdG9tRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA3LjcuMi4xLiBJZiBpbmNsdXNpdmVEZXNjZW5kYW50IGlzIGN1c3RvbSwgdGhlbiBlbnF1ZXVlIGEgY3VzdG9tXG4gICAgICAgICAgICAgICAgICogZWxlbWVudCBjYWxsYmFjayByZWFjdGlvbiB3aXRoIGluY2x1c2l2ZURlc2NlbmRhbnQsIGNhbGxiYWNrIG5hbWVcbiAgICAgICAgICAgICAgICAgKiBcImNvbm5lY3RlZENhbGxiYWNrXCIsIGFuZCBhbiBlbXB0eSBhcmd1bWVudCBsaXN0LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24obm9kZSwgXCJjb25uZWN0ZWRDYWxsYmFja1wiLCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA3LjcuMi4yLiBPdGhlcndpc2UsIHRyeSB0byB1cGdyYWRlIGluY2x1c2l2ZURlc2NlbmRhbnQuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xLmN1c3RvbUVsZW1lbnRfdHJ5VG9VcGdyYWRlKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDguIElmIHN1cHByZXNzIG9ic2VydmVycyBmbGFnIGlzIHVuc2V0LCB0aGVuIHF1ZXVlIGEgdHJlZSBtdXRhdGlvbiByZWNvcmRcbiAgICAgKiBmb3IgcGFyZW50IHdpdGggbm9kZXMsIMKrIMK7LCBwcmV2aW91c1NpYmxpbmcsIGFuZCBjaGlsZC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLm11dGF0aW9uT2JzZXJ2ZXJzKSB7XG4gICAgICAgIGlmICghc3VwcHJlc3NPYnNlcnZlcnMpIHtcbiAgICAgICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMS5vYnNlcnZlcl9xdWV1ZVRyZWVNdXRhdGlvblJlY29yZChwYXJlbnQsIFtub2RlXSwgW10sIHByZXZpb3VzU2libGluZywgbnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4vKipcbiAqIEFwcGVuZHMgYSBub2RlIHRvIHRoZSBjaGlsZHJlbiBvZiBhIHBhcmVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBub2RlXG4gKiBAcGFyYW0gcGFyZW50IC0gdGhlIHBhcmVudCB0byByZWNlaXZlIG5vZGVcbiAqL1xuZnVuY3Rpb24gbXV0YXRpb25fYXBwZW5kKG5vZGUsIHBhcmVudCkge1xuICAgIC8qKlxuICAgICAqIFRvIGFwcGVuZCBhIG5vZGUgdG8gYSBwYXJlbnQsIHByZS1pbnNlcnQgbm9kZSBpbnRvIHBhcmVudCBiZWZvcmUgbnVsbC5cbiAgICAgKi9cbiAgICByZXR1cm4gbXV0YXRpb25fcHJlSW5zZXJ0KG5vZGUsIHBhcmVudCwgbnVsbCk7XG59XG5leHBvcnRzLm11dGF0aW9uX2FwcGVuZCA9IG11dGF0aW9uX2FwcGVuZDtcbi8qKlxuICogUmVwbGFjZXMgYSBub2RlIHdpdGggYW5vdGhlciBub2RlLlxuICpcbiAqIEBwYXJhbSBjaGlsZCAtIGNoaWxkIG5vZGUgdG8gcmVtb3ZlXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGUgdG8gcmVjZWl2ZSBub2RlXG4gKi9cbmZ1bmN0aW9uIG11dGF0aW9uX3JlcGxhY2UoY2hpbGQsIG5vZGUsIHBhcmVudCkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIHBhcmVudCBpcyBub3QgYSBEb2N1bWVudCwgRG9jdW1lbnRGcmFnbWVudCwgb3IgRWxlbWVudCBub2RlLFxuICAgICAqIHRocm93IGEgXCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKHBhcmVudC5fbm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudCAmJlxuICAgICAgICBwYXJlbnQuX25vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRGcmFnbWVudCAmJlxuICAgICAgICBwYXJlbnQuX25vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgT25seSBkb2N1bWVudCwgZG9jdW1lbnQgZnJhZ21lbnQgYW5kIGVsZW1lbnQgbm9kZXMgY2FuIGNvbnRhaW4gY2hpbGQgbm9kZXMuIFBhcmVudCBub2RlIGlzICR7cGFyZW50Lm5vZGVOYW1lfS5gKTtcbiAgICAvKipcbiAgICAgKiAyLiBJZiBub2RlIGlzIGEgaG9zdC1pbmNsdWRpbmcgaW5jbHVzaXZlIGFuY2VzdG9yIG9mIHBhcmVudCwgdGhyb3cgYVxuICAgICAqIFwiSGllcmFyY2h5UmVxdWVzdEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqL1xuICAgIGlmIChUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0hvc3RJbmNsdWRpbmdBbmNlc3Rvck9mKHBhcmVudCwgbm9kZSwgdHJ1ZSkpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYFRoZSBub2RlIHRvIGJlIGluc2VydGVkIGNhbm5vdCBiZSBhbiBhbmNlc3RvciBvZiBwYXJlbnQgbm9kZS4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LCBwYXJlbnQgbm9kZSBpcyAke3BhcmVudC5ub2RlTmFtZX0uYCk7XG4gICAgLyoqXG4gICAgICogMy4gSWYgY2hpbGTigJlzIHBhcmVudCBpcyBub3QgcGFyZW50LCB0aGVuIHRocm93IGEgXCJOb3RGb3VuZEVycm9yXCJcbiAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKGNoaWxkLl9wYXJlbnQgIT09IHBhcmVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLk5vdEZvdW5kRXJyb3IoYFRoZSByZWZlcmVuY2UgY2hpbGQgbm9kZSBjYW5ub3QgYmUgZm91bmQgdW5kZXIgcGFyZW50IG5vZGUuIENoaWxkIG5vZGUgaXMgJHtjaGlsZC5ub2RlTmFtZX0sIHBhcmVudCBub2RlIGlzICR7cGFyZW50Lm5vZGVOYW1lfS5gKTtcbiAgICAvKipcbiAgICAgKiA0LiBJZiBub2RlIGlzIG5vdCBhIERvY3VtZW50RnJhZ21lbnQsIERvY3VtZW50VHlwZSwgRWxlbWVudCwgVGV4dCxcbiAgICAgKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIG9yIENvbW1lbnQgbm9kZSwgdGhyb3cgYSBcIkhpZXJhcmNoeVJlcXVlc3RFcnJvclwiXG4gICAgICogRE9NRXhjZXB0aW9uLlxuICAgICAqL1xuICAgIGlmIChub2RlLl9ub2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQgJiZcbiAgICAgICAgbm9kZS5fbm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUgJiZcbiAgICAgICAgbm9kZS5fbm9kZVR5cGUgIT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50ICYmXG4gICAgICAgIG5vZGUuX25vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCAmJlxuICAgICAgICBub2RlLl9ub2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbiAmJlxuICAgICAgICBub2RlLl9ub2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNEYXRhICYmXG4gICAgICAgIG5vZGUuX25vZGVUeXBlICE9PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudClcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgT25seSBkb2N1bWVudCBmcmFnbWVudCwgZG9jdW1lbnQgdHlwZSwgZWxlbWVudCwgdGV4dCwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiwgY2RhdGEgc2VjdGlvbiBvciBjb21tZW50IG5vZGVzIGNhbiBiZSBpbnNlcnRlZC4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgIC8qKlxuICAgICAqIDUuIElmIGVpdGhlciBub2RlIGlzIGEgVGV4dCBub2RlIGFuZCBwYXJlbnQgaXMgYSBkb2N1bWVudCwgb3Igbm9kZSBpcyBhXG4gICAgICogZG9jdHlwZSBhbmQgcGFyZW50IGlzIG5vdCBhIGRvY3VtZW50LCB0aHJvdyBhIFwiSGllcmFyY2h5UmVxdWVzdEVycm9yXCJcbiAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgaWYgKG5vZGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCAmJlxuICAgICAgICBwYXJlbnQuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYENhbm5vdCBpbnNlcnQgYSB0ZXh0IG5vZGUgYXMgYSBjaGlsZCBvZiBhIGRvY3VtZW50IG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICBpZiAobm9kZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUgJiZcbiAgICAgICAgcGFyZW50Ll9ub2RlVHlwZSAhPT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50KVxuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBBIGRvY3VtZW50IHR5cGUgbm9kZSBjYW4gb25seSBiZSBpbnNlcnRlZCB1bmRlciBhIGRvY3VtZW50IG5vZGUuIFBhcmVudCBub2RlIGlzICR7cGFyZW50Lm5vZGVOYW1lfS5gKTtcbiAgICAvKipcbiAgICAgKiA2LiBJZiBwYXJlbnQgaXMgYSBkb2N1bWVudCwgYW5kIGFueSBvZiB0aGUgc3RhdGVtZW50cyBiZWxvdywgc3dpdGNoZWQgb25cbiAgICAgKiBub2RlLCBhcmUgdHJ1ZSwgdGhyb3cgYSBcIkhpZXJhcmNoeVJlcXVlc3RFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgKiAtIERvY3VtZW50RnJhZ21lbnQgbm9kZVxuICAgICAqIElmIG5vZGUgaGFzIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBjaGlsZCBvciBoYXMgYSBUZXh0IG5vZGUgY2hpbGQuXG4gICAgICogT3RoZXJ3aXNlLCBpZiBub2RlIGhhcyBvbmUgZWxlbWVudCBjaGlsZCBhbmQgZWl0aGVyIHBhcmVudCBoYXMgYW4gZWxlbWVudFxuICAgICAqIGNoaWxkIHRoYXQgaXMgbm90IGNoaWxkIG9yIGEgZG9jdHlwZSBpcyBmb2xsb3dpbmcgY2hpbGQuXG4gICAgICogLSBlbGVtZW50XG4gICAgICogcGFyZW50IGhhcyBhbiBlbGVtZW50IGNoaWxkIHRoYXQgaXMgbm90IGNoaWxkIG9yIGEgZG9jdHlwZSBpc1xuICAgICAqIGZvbGxvd2luZyBjaGlsZC5cbiAgICAgKiAtIGRvY3R5cGVcbiAgICAgKiBwYXJlbnQgaGFzIGEgZG9jdHlwZSBjaGlsZCB0aGF0IGlzIG5vdCBjaGlsZCwgb3IgYW4gZWxlbWVudCBpc1xuICAgICAqIHByZWNlZGluZyBjaGlsZC5cbiAgICAgKi9cbiAgICBpZiAocGFyZW50Ll9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50KSB7XG4gICAgICAgIGlmIChub2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGxldCBlbGVDb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZE5vZGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgZWxlQ291bnQrKztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChjaGlsZE5vZGUuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQ2Fubm90IGluc2VydCB0ZXh0IGEgbm9kZSBhcyBhIGNoaWxkIG9mIGEgZG9jdW1lbnQgbm9kZS4gTm9kZSBpcyAke2NoaWxkTm9kZS5ub2RlTmFtZX0uYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlQ291bnQgPiAxKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQSBkb2N1bWVudCBub2RlIGNhbiBvbmx5IGhhdmUgb25lIGRvY3VtZW50IGVsZW1lbnQgbm9kZS4gRG9jdW1lbnQgZnJhZ21lbnQgdG8gYmUgaW5zZXJ0ZWQgaGFzICR7ZWxlQ291bnR9IGVsZW1lbnQgbm9kZXMuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChlbGVDb3VudCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZWxlIG9mIHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50ICYmIGVsZSAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBUaGUgZG9jdW1lbnQgbm9kZSBhbHJlYWR5IGhhcyBhIGRvY3VtZW50IGVsZW1lbnQgbm9kZS5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGRvY3R5cGVDaGlsZCA9IGNoaWxkLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICB3aGlsZSAoZG9jdHlwZUNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkb2N0eXBlQ2hpbGQuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgQ2Fubm90IGluc2VydCBhbiBlbGVtZW50IG5vZGUgYmVmb3JlIGEgZG9jdW1lbnQgdHlwZSBub2RlLmApO1xuICAgICAgICAgICAgICAgICAgICBkb2N0eXBlQ2hpbGQgPSBkb2N0eXBlQ2hpbGQuX25leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChub2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlIG9mIHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQgJiYgZWxlICE9PSBjaGlsZClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkhpZXJhcmNoeVJlcXVlc3RFcnJvcihgRG9jdW1lbnQgYWxyZWFkeSBoYXMgYSBkb2N1bWVudCBlbGVtZW50IG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBkb2N0eXBlQ2hpbGQgPSBjaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB3aGlsZSAoZG9jdHlwZUNoaWxkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRvY3R5cGVDaGlsZC5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoYENhbm5vdCBpbnNlcnQgYW4gZWxlbWVudCBub2RlIGJlZm9yZSBhIGRvY3VtZW50IHR5cGUgbm9kZS4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgICAgICAgICAgICAgIGRvY3R5cGVDaGlsZCA9IGRvY3R5cGVDaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAobm9kZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlIG9mIHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50VHlwZSAmJiBlbGUgIT09IGNoaWxkKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBEb2N1bWVudCBhbHJlYWR5IGhhcyBhIGRvY3VtZW50IHR5cGUgbm9kZS4gTm9kZSBpcyAke25vZGUubm9kZU5hbWV9LmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGVsZW1lbnRDaGlsZCA9IGNoaWxkLl9wcmV2aW91c1NpYmxpbmc7XG4gICAgICAgICAgICB3aGlsZSAoZWxlbWVudENoaWxkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRDaGlsZC5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSGllcmFyY2h5UmVxdWVzdEVycm9yKGBDYW5ub3QgaW5zZXJ0IGEgZG9jdW1lbnQgdHlwZSBub2RlIGJlZm9yZSBhbiBlbGVtZW50IG5vZGUuIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50Q2hpbGQgPSBlbGVtZW50Q2hpbGQuX3ByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LiBMZXQgcmVmZXJlbmNlIGNoaWxkIGJlIGNoaWxk4oCZcyBuZXh0IHNpYmxpbmcuXG4gICAgICogOC4gSWYgcmVmZXJlbmNlIGNoaWxkIGlzIG5vZGUsIHNldCBpdCB0byBub2Rl4oCZcyBuZXh0IHNpYmxpbmcuXG4gICAgICogOC4gTGV0IHByZXZpb3VzU2libGluZyBiZSBjaGlsZOKAmXMgcHJldmlvdXMgc2libGluZy5cbiAgICAgKi9cbiAgICBsZXQgcmVmZXJlbmNlQ2hpbGQgPSBjaGlsZC5fbmV4dFNpYmxpbmc7XG4gICAgaWYgKHJlZmVyZW5jZUNoaWxkID09PSBub2RlKVxuICAgICAgICByZWZlcmVuY2VDaGlsZCA9IG5vZGUuX25leHRTaWJsaW5nO1xuICAgIGxldCBwcmV2aW91c1NpYmxpbmcgPSBjaGlsZC5fcHJldmlvdXNTaWJsaW5nO1xuICAgIC8qKlxuICAgICAqIDEwLiBBZG9wdCBub2RlIGludG8gcGFyZW504oCZcyBub2RlIGRvY3VtZW50LlxuICAgICAqIDExLiBMZXQgcmVtb3ZlZE5vZGVzIGJlIHRoZSBlbXB0eSBsaXN0LlxuICAgICAqL1xuICAgIERvY3VtZW50QWxnb3JpdGhtXzEuZG9jdW1lbnRfYWRvcHQobm9kZSwgcGFyZW50Ll9ub2RlRG9jdW1lbnQpO1xuICAgIGNvbnN0IHJlbW92ZWROb2RlcyA9IFtdO1xuICAgIC8qKlxuICAgICAqIDEyLiBJZiBjaGlsZOKAmXMgcGFyZW50IGlzIG5vdCBudWxsLCB0aGVuOlxuICAgICAqL1xuICAgIGlmIChjaGlsZC5fcGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxMi4xLiBTZXQgcmVtb3ZlZE5vZGVzIHRvIFtjaGlsZF0uXG4gICAgICAgICAqIDEyLjIuIFJlbW92ZSBjaGlsZCBmcm9tIGl0cyBwYXJlbnQgd2l0aCB0aGUgc3VwcHJlc3Mgb2JzZXJ2ZXJzIGZsYWdcbiAgICAgICAgICogc2V0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmVtb3ZlZE5vZGVzLnB1c2goY2hpbGQpO1xuICAgICAgICBtdXRhdGlvbl9yZW1vdmUoY2hpbGQsIGNoaWxkLl9wYXJlbnQsIHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAxMy4gTGV0IG5vZGVzIGJlIG5vZGXigJlzIGNoaWxkcmVuIGlmIG5vZGUgaXMgYSBEb2N1bWVudEZyYWdtZW50IG5vZGU7XG4gICAgICogb3RoZXJ3aXNlIFtub2RlXS5cbiAgICAgKi9cbiAgICBsZXQgbm9kZXMgPSBbXTtcbiAgICBpZiAobm9kZS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgIG5vZGVzID0gQXJyYXkuZnJvbShub2RlLl9jaGlsZHJlbik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBub2Rlcy5wdXNoKG5vZGUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAxNC4gSW5zZXJ0IG5vZGUgaW50byBwYXJlbnQgYmVmb3JlIHJlZmVyZW5jZSBjaGlsZCB3aXRoIHRoZSBzdXBwcmVzc1xuICAgICAqIG9ic2VydmVycyBmbGFnIHNldC5cbiAgICAgKi9cbiAgICBtdXRhdGlvbl9pbnNlcnQobm9kZSwgcGFyZW50LCByZWZlcmVuY2VDaGlsZCwgdHJ1ZSk7XG4gICAgLyoqXG4gICAgICogMTUuIFF1ZXVlIGEgdHJlZSBtdXRhdGlvbiByZWNvcmQgZm9yIHBhcmVudCB3aXRoIG5vZGVzLCByZW1vdmVkTm9kZXMsXG4gICAgICogcHJldmlvdXNTaWJsaW5nLCBhbmQgcmVmZXJlbmNlIGNoaWxkLlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMubXV0YXRpb25PYnNlcnZlcnMpIHtcbiAgICAgICAgTXV0YXRpb25PYnNlcnZlckFsZ29yaXRobV8xLm9ic2VydmVyX3F1ZXVlVHJlZU11dGF0aW9uUmVjb3JkKHBhcmVudCwgbm9kZXMsIHJlbW92ZWROb2RlcywgcHJldmlvdXNTaWJsaW5nLCByZWZlcmVuY2VDaGlsZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDE2LiBSZXR1cm4gY2hpbGQuXG4gICAgICovXG4gICAgcmV0dXJuIGNoaWxkO1xufVxuZXhwb3J0cy5tdXRhdGlvbl9yZXBsYWNlID0gbXV0YXRpb25fcmVwbGFjZTtcbi8qKlxuICogUmVwbGFjZXMgYWxsIG5vZGVzIG9mIGEgcGFyZW50IHdpdGggdGhlIGdpdmVuIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIGluc2VydFxuICogQHBhcmFtIHBhcmVudCAtIHBhcmVudCBub2RlIHRvIHJlY2VpdmUgbm9kZVxuICovXG5mdW5jdGlvbiBtdXRhdGlvbl9yZXBsYWNlQWxsKG5vZGUsIHBhcmVudCkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIG5vZGUgaXMgbm90IG51bGwsIGFkb3B0IG5vZGUgaW50byBwYXJlbnTigJlzIG5vZGUgZG9jdW1lbnQuXG4gICAgICovXG4gICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgRG9jdW1lbnRBbGdvcml0aG1fMS5kb2N1bWVudF9hZG9wdChub2RlLCBwYXJlbnQuX25vZGVEb2N1bWVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDIuIExldCByZW1vdmVkTm9kZXMgYmUgcGFyZW504oCZcyBjaGlsZHJlbi5cbiAgICAgKi9cbiAgICBjb25zdCByZW1vdmVkTm9kZXMgPSBBcnJheS5mcm9tKHBhcmVudC5fY2hpbGRyZW4pO1xuICAgIC8qKlxuICAgICAqIDMuIExldCBhZGRlZE5vZGVzIGJlIHRoZSBlbXB0eSBsaXN0LlxuICAgICAqIDQuIElmIG5vZGUgaXMgRG9jdW1lbnRGcmFnbWVudCBub2RlLCB0aGVuIHNldCBhZGRlZE5vZGVzIHRvIG5vZGXigJlzXG4gICAgICogY2hpbGRyZW4uXG4gICAgICogNS4gT3RoZXJ3aXNlLCBpZiBub2RlIGlzIG5vbi1udWxsLCBzZXQgYWRkZWROb2RlcyB0byBbbm9kZV0uXG4gICAgICovXG4gICAgbGV0IGFkZGVkTm9kZXMgPSBbXTtcbiAgICBpZiAobm9kZSAmJiBub2RlLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50RnJhZ21lbnQpIHtcbiAgICAgICAgYWRkZWROb2RlcyA9IEFycmF5LmZyb20obm9kZS5fY2hpbGRyZW4pO1xuICAgIH1cbiAgICBlbHNlIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICAgIGFkZGVkTm9kZXMucHVzaChub2RlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gUmVtb3ZlIGFsbCBwYXJlbnTigJlzIGNoaWxkcmVuLCBpbiB0cmVlIG9yZGVyLCB3aXRoIHRoZSBzdXBwcmVzc1xuICAgICAqIG9ic2VydmVycyBmbGFnIHNldC5cbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiByZW1vdmVkTm9kZXMpIHtcbiAgICAgICAgbXV0YXRpb25fcmVtb3ZlKGNoaWxkTm9kZSwgcGFyZW50LCB0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNy4gSWYgbm9kZSBpcyBub3QgbnVsbCwgdGhlbiBpbnNlcnQgbm9kZSBpbnRvIHBhcmVudCBiZWZvcmUgbnVsbCB3aXRoIHRoZVxuICAgICAqIHN1cHByZXNzIG9ic2VydmVycyBmbGFnIHNldC5cbiAgICAgKi9cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBtdXRhdGlvbl9pbnNlcnQobm9kZSwgcGFyZW50LCBudWxsLCB0cnVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogOC4gUXVldWUgYSB0cmVlIG11dGF0aW9uIHJlY29yZCBmb3IgcGFyZW50IHdpdGggYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzLFxuICAgICAqIG51bGwsIGFuZCBudWxsLlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMubXV0YXRpb25PYnNlcnZlcnMpIHtcbiAgICAgICAgTXV0YXRpb25PYnNlcnZlckFsZ29yaXRobV8xLm9ic2VydmVyX3F1ZXVlVHJlZU11dGF0aW9uUmVjb3JkKHBhcmVudCwgYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzLCBudWxsLCBudWxsKTtcbiAgICB9XG59XG5leHBvcnRzLm11dGF0aW9uX3JlcGxhY2VBbGwgPSBtdXRhdGlvbl9yZXBsYWNlQWxsO1xuLyoqXG4gKiBFbnN1cmVzIHByZS1yZW1vdmFsIHZhbGlkaXR5IG9mIGEgY2hpbGQgbm9kZSBmcm9tIGEgcGFyZW50LCB0aGVuXG4gKiByZW1vdmVzIGl0LlxuICpcbiAqIEBwYXJhbSBjaGlsZCAtIGNoaWxkIG5vZGUgdG8gcmVtb3ZlXG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGVcbiAqL1xuZnVuY3Rpb24gbXV0YXRpb25fcHJlUmVtb3ZlKGNoaWxkLCBwYXJlbnQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBjaGlsZOKAmXMgcGFyZW50IGlzIG5vdCBwYXJlbnQsIHRoZW4gdGhyb3cgYSBcIk5vdEZvdW5kRXJyb3JcIlxuICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgKiAyLiBSZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQuXG4gICAgICogMy4gUmV0dXJuIGNoaWxkLlxuICAgICAqL1xuICAgIGlmIChjaGlsZC5fcGFyZW50ICE9PSBwYXJlbnQpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RGb3VuZEVycm9yKGBUaGUgY2hpbGQgbm9kZSBjYW5ub3QgYmUgZm91bmQgdW5kZXIgcGFyZW50IG5vZGUuIENoaWxkIG5vZGUgaXMgJHtjaGlsZC5ub2RlTmFtZX0sIHBhcmVudCBub2RlIGlzICR7cGFyZW50Lm5vZGVOYW1lfS5gKTtcbiAgICBtdXRhdGlvbl9yZW1vdmUoY2hpbGQsIHBhcmVudCk7XG4gICAgcmV0dXJuIGNoaWxkO1xufVxuZXhwb3J0cy5tdXRhdGlvbl9wcmVSZW1vdmUgPSBtdXRhdGlvbl9wcmVSZW1vdmU7XG4vKipcbiAqIFJlbW92ZXMgYSBjaGlsZCBub2RlIGZyb20gaXRzIHBhcmVudC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gcmVtb3ZlXG4gKiBAcGFyYW0gcGFyZW50IC0gcGFyZW50IG5vZGVcbiAqIEBwYXJhbSBzdXBwcmVzc09ic2VydmVycyAtIHdoZXRoZXIgdG8gbm90aWZ5IG9ic2VydmVyc1xuICovXG5mdW5jdGlvbiBtdXRhdGlvbl9yZW1vdmUobm9kZSwgcGFyZW50LCBzdXBwcmVzc09ic2VydmVycykge1xuICAgIGlmIChkb21fMS5kb20ucmFuZ2VMaXN0LnNpemUgIT09IDApIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBpbmRleCBiZSBub2Rl4oCZcyBpbmRleC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGluZGV4ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfaW5kZXgobm9kZSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIHN0YXJ0IG5vZGUgaXMgYW4gaW5jbHVzaXZlIGRlc2NlbmRhbnQgb2ZcbiAgICAgICAgICogbm9kZSwgc2V0IGl0cyBzdGFydCB0byAocGFyZW50LCBpbmRleCkuXG4gICAgICAgICAqIDMuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2UgZW5kIG5vZGUgaXMgYW4gaW5jbHVzaXZlIGRlc2NlbmRhbnQgb2ZcbiAgICAgICAgICogbm9kZSwgc2V0IGl0cyBlbmQgdG8gKHBhcmVudCwgaW5kZXgpLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCByYW5nZSBvZiBkb21fMS5kb20ucmFuZ2VMaXN0KSB7XG4gICAgICAgICAgICBpZiAoVHJlZUFsZ29yaXRobV8xLnRyZWVfaXNEZXNjZW5kYW50T2Yobm9kZSwgcmFuZ2UuX3N0YXJ0WzBdLCB0cnVlKSkge1xuICAgICAgICAgICAgICAgIHJhbmdlLl9zdGFydCA9IFtwYXJlbnQsIGluZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0Rlc2NlbmRhbnRPZihub2RlLCByYW5nZS5fZW5kWzBdLCB0cnVlKSkge1xuICAgICAgICAgICAgICAgIHJhbmdlLl9lbmQgPSBbcGFyZW50LCBpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmFuZ2UuX3N0YXJ0WzBdID09PSBwYXJlbnQgJiYgcmFuZ2UuX3N0YXJ0WzFdID4gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByYW5nZS5fc3RhcnRbMV0tLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyYW5nZS5fZW5kWzBdID09PSBwYXJlbnQgJiYgcmFuZ2UuX2VuZFsxXSA+IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UuX2VuZFsxXS0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIHN0YXJ0IG5vZGUgaXMgcGFyZW50IGFuZCBzdGFydCBvZmZzZXQgaXNcbiAgICAgICAgICogZ3JlYXRlciB0aGFuIGluZGV4LCBkZWNyZWFzZSBpdHMgc3RhcnQgb2Zmc2V0IGJ5IDEuXG4gICAgICAgICAqIDUuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2UgZW5kIG5vZGUgaXMgcGFyZW50IGFuZCBlbmQgb2Zmc2V0IGlzIGdyZWF0ZXJcbiAgICAgICAgICogdGhhbiBpbmRleCwgZGVjcmVhc2UgaXRzIGVuZCBvZmZzZXQgYnkgMS5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3QgcmFuZ2Ugb2YgZG9tXzEuZG9tLnJhbmdlTGlzdCkge1xuICAgICAgICAgICAgaWYgKHJhbmdlLl9zdGFydFswXSA9PT0gcGFyZW50ICYmIHJhbmdlLl9zdGFydFsxXSA+IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UuX3N0YXJ0WzFdIC09IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmFuZ2UuX2VuZFswXSA9PT0gcGFyZW50ICYmIHJhbmdlLl9lbmRbMV0gPiBpbmRleCkge1xuICAgICAgICAgICAgICAgIHJhbmdlLl9lbmRbMV0gLT0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA2LiBGb3IgZWFjaCBOb2RlSXRlcmF0b3Igb2JqZWN0IGl0ZXJhdG9yIHdob3NlIHJvb3TigJlzIG5vZGUgZG9jdW1lbnQgaXNcbiAgICAgKiBub2Rl4oCZcyBub2RlIGRvY3VtZW50LCBydW4gdGhlIE5vZGVJdGVyYXRvciBwcmUtcmVtb3Zpbmcgc3RlcHMgZ2l2ZW4gbm9kZVxuICAgICAqIGFuZCBpdGVyYXRvci5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnN0ZXBzKSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgTm9kZUl0ZXJhdG9yQWxnb3JpdGhtXzEubm9kZUl0ZXJhdG9yX2l0ZXJhdG9yTGlzdCgpKSB7XG4gICAgICAgICAgICBpZiAoaXRlcmF0b3IuX3Jvb3QuX25vZGVEb2N1bWVudCA9PT0gbm9kZS5fbm9kZURvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1bk5vZGVJdGVyYXRvclByZVJlbW92aW5nU3RlcHMoaXRlcmF0b3IsIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDcuIExldCBvbGRQcmV2aW91c1NpYmxpbmcgYmUgbm9kZeKAmXMgcHJldmlvdXMgc2libGluZy5cbiAgICAgKiA4LiBMZXQgb2xkTmV4dFNpYmxpbmcgYmUgbm9kZeKAmXMgbmV4dCBzaWJsaW5nLlxuICAgICAqL1xuICAgIGNvbnN0IG9sZFByZXZpb3VzU2libGluZyA9IG5vZGUuX3ByZXZpb3VzU2libGluZztcbiAgICBjb25zdCBvbGROZXh0U2libGluZyA9IG5vZGUuX25leHRTaWJsaW5nO1xuICAgIC8vIHNldCBkb2N1bWVudCBlbGVtZW50IG5vZGVcbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnROb2RlKHBhcmVudCkgJiYgdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgcGFyZW50Ll9kb2N1bWVudEVsZW1lbnQgPSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA5LiBSZW1vdmUgbm9kZSBmcm9tIGl0cyBwYXJlbnTigJlzIGNoaWxkcmVuLlxuICAgICAqL1xuICAgIG5vZGUuX3BhcmVudCA9IG51bGw7XG4gICAgcGFyZW50Ll9jaGlsZHJlbi5kZWxldGUobm9kZSk7XG4gICAgLy8gYXNzaWduIHNpYmxpbmdzIGFuZCBjaGlsZHJlbiBmb3IgcXVpY2sgbG9va3Vwc1xuICAgIGNvbnN0IHByZXYgPSBub2RlLl9wcmV2aW91c1NpYmxpbmc7XG4gICAgY29uc3QgbmV4dCA9IG5vZGUuX25leHRTaWJsaW5nO1xuICAgIG5vZGUuX3ByZXZpb3VzU2libGluZyA9IG51bGw7XG4gICAgbm9kZS5fbmV4dFNpYmxpbmcgPSBudWxsO1xuICAgIGlmIChwcmV2KVxuICAgICAgICBwcmV2Ll9uZXh0U2libGluZyA9IG5leHQ7XG4gICAgaWYgKG5leHQpXG4gICAgICAgIG5leHQuX3ByZXZpb3VzU2libGluZyA9IHByZXY7XG4gICAgaWYgKCFwcmV2KVxuICAgICAgICBwYXJlbnQuX2ZpcnN0Q2hpbGQgPSBuZXh0O1xuICAgIGlmICghbmV4dClcbiAgICAgICAgcGFyZW50Ll9sYXN0Q2hpbGQgPSBwcmV2O1xuICAgIC8qKlxuICAgICAqIDEwLiBJZiBub2RlIGlzIGFzc2lnbmVkLCB0aGVuIHJ1biBhc3NpZ24gc2xvdGFibGVzIGZvciBub2Rl4oCZcyBhc3NpZ25lZFxuICAgICAqIHNsb3QuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zbG90cykge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2xvdGFibGUobm9kZSkgJiYgbm9kZS5fYXNzaWduZWRTbG90ICE9PSBudWxsICYmIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2lzQXNzaWduZWQobm9kZSkpIHtcbiAgICAgICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlcyhub2RlLl9hc3NpZ25lZFNsb3QpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDExLiBJZiBwYXJlbnTigJlzIHJvb3QgaXMgYSBzaGFkb3cgcm9vdCwgYW5kIHBhcmVudCBpcyBhIHNsb3Qgd2hvc2VcbiAgICAgKiBhc3NpZ25lZCBub2RlcyBpcyB0aGUgZW1wdHkgbGlzdCwgdGhlbiBydW4gc2lnbmFsIGEgc2xvdCBjaGFuZ2UgZm9yXG4gICAgICogcGFyZW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc2xvdHMpIHtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3QoVHJlZUFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUocGFyZW50KSkgJiZcbiAgICAgICAgICAgIHV0aWxfMS5HdWFyZC5pc1Nsb3QocGFyZW50KSAmJiB1dGlsXzIuaXNFbXB0eShwYXJlbnQuX2Fzc2lnbmVkTm9kZXMpKSB7XG4gICAgICAgICAgICBTaGFkb3dUcmVlQWxnb3JpdGhtXzEuc2hhZG93VHJlZV9zaWduYWxBU2xvdENoYW5nZShwYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDEyLiBJZiBub2RlIGhhcyBhbiBpbmNsdXNpdmUgZGVzY2VuZGFudCB0aGF0IGlzIGEgc2xvdCwgdGhlbjpcbiAgICAgKiAxMi4xLiBSdW4gYXNzaWduIHNsb3RhYmxlcyBmb3IgYSB0cmVlIHdpdGggcGFyZW50J3Mgcm9vdC5cbiAgICAgKiAxMi4yLiBSdW4gYXNzaWduIHNsb3RhYmxlcyBmb3IgYSB0cmVlIHdpdGggbm9kZS5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgIGNvbnN0IGRlc2NlbmRhbnQgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXRGaXJzdERlc2NlbmRhbnROb2RlKG5vZGUsIHRydWUsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzU2xvdChlKSk7XG4gICAgICAgIGlmIChkZXNjZW5kYW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBTaGFkb3dUcmVlQWxnb3JpdGhtXzEuc2hhZG93VHJlZV9hc3NpZ25TbG90YWJsZXNGb3JBVHJlZShUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShwYXJlbnQpKTtcbiAgICAgICAgICAgIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlc0ZvckFUcmVlKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDEzLiBSdW4gdGhlIHJlbW92aW5nIHN0ZXBzIHdpdGggbm9kZSBhbmQgcGFyZW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1blJlbW92aW5nU3RlcHMobm9kZSwgcGFyZW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMTQuIElmIG5vZGUgaXMgY3VzdG9tLCB0aGVuIGVucXVldWUgYSBjdXN0b20gZWxlbWVudCBjYWxsYmFja1xuICAgICAqIHJlYWN0aW9uIHdpdGggbm9kZSwgY2FsbGJhY2sgbmFtZSBcImRpc2Nvbm5lY3RlZENhbGxiYWNrXCIsXG4gICAgICogYW5kIGFuIGVtcHR5IGFyZ3VtZW50IGxpc3QuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5jdXN0b21FbGVtZW50cykge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ3VzdG9tRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24obm9kZSwgXCJkaXNjb25uZWN0ZWRDYWxsYmFja1wiLCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogMTUuIEZvciBlYWNoIHNoYWRvdy1pbmNsdWRpbmcgZGVzY2VuZGFudCBkZXNjZW5kYW50IG9mIG5vZGUsXG4gICAgICogaW4gc2hhZG93LWluY2x1ZGluZyB0cmVlIG9yZGVyLCB0aGVuOlxuICAgICAqL1xuICAgIGxldCBkZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZShub2RlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgd2hpbGUgKGRlc2NlbmRhbnQgIT09IG51bGwpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDE1LjEuIFJ1biB0aGUgcmVtb3Zpbmcgc3RlcHMgd2l0aCBkZXNjZW5kYW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1blJlbW92aW5nU3RlcHMoZGVzY2VuZGFudCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDE1LjIuIElmIGRlc2NlbmRhbnQgaXMgY3VzdG9tLCB0aGVuIGVucXVldWUgYSBjdXN0b20gZWxlbWVudFxuICAgICAgICAgKiBjYWxsYmFjayByZWFjdGlvbiB3aXRoIGRlc2NlbmRhbnQsIGNhbGxiYWNrIG5hbWVcbiAgICAgICAgICogXCJkaXNjb25uZWN0ZWRDYWxsYmFja1wiLCBhbmQgYW4gZW1wdHkgYXJndW1lbnQgbGlzdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuY3VzdG9tRWxlbWVudHMpIHtcbiAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNDdXN0b21FbGVtZW50Tm9kZShkZXNjZW5kYW50KSkge1xuICAgICAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24oZGVzY2VuZGFudCwgXCJkaXNjb25uZWN0ZWRDYWxsYmFja1wiLCBbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGVzY2VuZGFudCA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZShub2RlLCBkZXNjZW5kYW50LCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDE2LiBGb3IgZWFjaCBpbmNsdXNpdmUgYW5jZXN0b3IgaW5jbHVzaXZlQW5jZXN0b3Igb2YgcGFyZW50LCBhbmRcbiAgICAgKiB0aGVuIGZvciBlYWNoIHJlZ2lzdGVyZWQgb2YgaW5jbHVzaXZlQW5jZXN0b3IncyByZWdpc3RlcmVkXG4gICAgICogb2JzZXJ2ZXIgbGlzdCwgaWYgcmVnaXN0ZXJlZCdzIG9wdGlvbnMncyBzdWJ0cmVlIGlzIHRydWUsXG4gICAgICogdGhlbiBhcHBlbmQgYSBuZXcgdHJhbnNpZW50IHJlZ2lzdGVyZWQgb2JzZXJ2ZXIgd2hvc2VcbiAgICAgKiBvYnNlcnZlciBpcyByZWdpc3RlcmVkJ3Mgb2JzZXJ2ZXIsIG9wdGlvbnMgaXMgcmVnaXN0ZXJlZCdzXG4gICAgICogb3B0aW9ucywgYW5kIHNvdXJjZSBpcyByZWdpc3RlcmVkIHRvIG5vZGUncyByZWdpc3RlcmVkXG4gICAgICogb2JzZXJ2ZXIgbGlzdC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLm11dGF0aW9uT2JzZXJ2ZXJzKSB7XG4gICAgICAgIGxldCBpbmNsdXNpdmVBbmNlc3RvciA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldEZpcnN0QW5jZXN0b3JOb2RlKHBhcmVudCwgdHJ1ZSk7XG4gICAgICAgIHdoaWxlIChpbmNsdXNpdmVBbmNlc3RvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCByZWdpc3RlcmVkIG9mIGluY2x1c2l2ZUFuY2VzdG9yLl9yZWdpc3RlcmVkT2JzZXJ2ZXJMaXN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlZ2lzdGVyZWQub3B0aW9ucy5zdWJ0cmVlKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuX3JlZ2lzdGVyZWRPYnNlcnZlckxpc3QucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlcjogcmVnaXN0ZXJlZC5vYnNlcnZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHJlZ2lzdGVyZWQub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZTogcmVnaXN0ZXJlZFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmNsdXNpdmVBbmNlc3RvciA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldE5leHRBbmNlc3Rvck5vZGUocGFyZW50LCBpbmNsdXNpdmVBbmNlc3RvciwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogMTcuIElmIHN1cHByZXNzIG9ic2VydmVycyBmbGFnIGlzIHVuc2V0LCB0aGVuIHF1ZXVlIGEgdHJlZSBtdXRhdGlvblxuICAgICAqIHJlY29yZCBmb3IgcGFyZW50IHdpdGggwqsgwrssIMKrIG5vZGUgwrssIG9sZFByZXZpb3VzU2libGluZywgYW5kXG4gICAgICogb2xkTmV4dFNpYmxpbmcuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5tdXRhdGlvbk9ic2VydmVycykge1xuICAgICAgICBpZiAoIXN1cHByZXNzT2JzZXJ2ZXJzKSB7XG4gICAgICAgICAgICBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEub2JzZXJ2ZXJfcXVldWVUcmVlTXV0YXRpb25SZWNvcmQocGFyZW50LCBbXSwgW25vZGVdLCBvbGRQcmV2aW91c1NpYmxpbmcsIG9sZE5leHRTaWJsaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAxOC4gSWYgbm9kZSBpcyBhIFRleHQgbm9kZSwgdGhlbiBydW4gdGhlIGNoaWxkIHRleHQgY29udGVudCBjaGFuZ2Ugc3RlcHNcbiAgICAgKiBmb3IgcGFyZW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1RleHROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQ2hpbGRUZXh0Q29udGVudENoYW5nZVN0ZXBzKHBhcmVudCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLm11dGF0aW9uX3JlbW92ZSA9IG11dGF0aW9uX3JlbW92ZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU11dGF0aW9uQWxnb3JpdGhtLmpzLm1hcCIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgX19ERVZfXyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbic7XG5cbnZhciB3YXJuaW5nID0gZnVuY3Rpb24oKSB7fTtcblxuaWYgKF9fREVWX18pIHtcbiAgdmFyIHByaW50V2FybmluZyA9IGZ1bmN0aW9uIHByaW50V2FybmluZyhmb3JtYXQsIGFyZ3MpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiA+IDEgPyBsZW4gLSAxIDogMCk7XG4gICAgZm9yICh2YXIga2V5ID0gMTsga2V5IDwgbGVuOyBrZXkrKykge1xuICAgICAgYXJnc1trZXkgLSAxXSA9IGFyZ3VtZW50c1trZXldO1xuICAgIH1cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgK1xuICAgICAgZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICAgIH0pO1xuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAvLyAtLS0gV2VsY29tZSB0byBkZWJ1Z2dpbmcgUmVhY3QgLS0tXG4gICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgIC8vIHRvIGZpbmQgdGhlIGNhbGxzaXRlIHRoYXQgY2F1c2VkIHRoaXMgd2FybmluZyB0byBmaXJlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKHgpIHt9XG4gIH1cblxuICB3YXJuaW5nID0gZnVuY3Rpb24oY29uZGl0aW9uLCBmb3JtYXQsIGFyZ3MpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiA+IDIgPyBsZW4gLSAyIDogMCk7XG4gICAgZm9yICh2YXIga2V5ID0gMjsga2V5IDwgbGVuOyBrZXkrKykge1xuICAgICAgYXJnc1trZXkgLSAyXSA9IGFyZ3VtZW50c1trZXldO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAnYHdhcm5pbmcoY29uZGl0aW9uLCBmb3JtYXQsIC4uLmFyZ3MpYCByZXF1aXJlcyBhIHdhcm5pbmcgJyArXG4gICAgICAgICAgJ21lc3NhZ2UgYXJndW1lbnQnXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KG51bGwsIFtmb3JtYXRdLmNvbmNhdChhcmdzKSk7XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdhcm5pbmc7XG4iLCJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSIsInZhciB2ZW5kb3JQcmVmaXggPSB2b2lkIDA7XG5cbnZhciBqc0Nzc01hcCA9IHtcbiAgV2Via2l0OiAnLXdlYmtpdC0nLFxuICBNb3o6ICctbW96LScsXG4gIC8vIElFIGRpZCBpdCB3cm9uZyBhZ2FpbiAuLi5cbiAgbXM6ICctbXMtJyxcbiAgTzogJy1vLSdcbn07XG5cbmZ1bmN0aW9uIGdldFZlbmRvclByZWZpeCgpIHtcbiAgaWYgKHZlbmRvclByZWZpeCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZlbmRvclByZWZpeDtcbiAgfVxuICB2ZW5kb3JQcmVmaXggPSAnJztcbiAgdmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpLnN0eWxlO1xuICB2YXIgdGVzdFByb3AgPSAnVHJhbnNmb3JtJztcbiAgZm9yICh2YXIga2V5IGluIGpzQ3NzTWFwKSB7XG4gICAgaWYgKGtleSArIHRlc3RQcm9wIGluIHN0eWxlKSB7XG4gICAgICB2ZW5kb3JQcmVmaXggPSBrZXk7XG4gICAgfVxuICB9XG4gIHJldHVybiB2ZW5kb3JQcmVmaXg7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zaXRpb25OYW1lKCkge1xuICByZXR1cm4gZ2V0VmVuZG9yUHJlZml4KCkgPyBnZXRWZW5kb3JQcmVmaXgoKSArICdUcmFuc2l0aW9uUHJvcGVydHknIDogJ3RyYW5zaXRpb25Qcm9wZXJ0eSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2Zvcm1OYW1lKCkge1xuICByZXR1cm4gZ2V0VmVuZG9yUHJlZml4KCkgPyBnZXRWZW5kb3JQcmVmaXgoKSArICdUcmFuc2Zvcm0nIDogJ3RyYW5zZm9ybSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRUcmFuc2l0aW9uUHJvcGVydHkobm9kZSwgdmFsdWUpIHtcbiAgdmFyIG5hbWUgPSBnZXRUcmFuc2l0aW9uTmFtZSgpO1xuICBpZiAobmFtZSkge1xuICAgIG5vZGUuc3R5bGVbbmFtZV0gPSB2YWx1ZTtcbiAgICBpZiAobmFtZSAhPT0gJ3RyYW5zaXRpb25Qcm9wZXJ0eScpIHtcbiAgICAgIG5vZGUuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gdmFsdWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldFRyYW5zZm9ybShub2RlLCB2YWx1ZSkge1xuICB2YXIgbmFtZSA9IGdldFRyYW5zZm9ybU5hbWUoKTtcbiAgaWYgKG5hbWUpIHtcbiAgICBub2RlLnN0eWxlW25hbWVdID0gdmFsdWU7XG4gICAgaWYgKG5hbWUgIT09ICd0cmFuc2Zvcm0nKSB7XG4gICAgICBub2RlLnN0eWxlLnRyYW5zZm9ybSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNpdGlvblByb3BlcnR5KG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5IHx8IG5vZGUuc3R5bGVbZ2V0VHJhbnNpdGlvbk5hbWUoKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2Zvcm1YWShub2RlKSB7XG4gIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUsIG51bGwpO1xuICB2YXIgdHJhbnNmb3JtID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNmb3JtJykgfHwgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShnZXRUcmFuc2Zvcm1OYW1lKCkpO1xuICBpZiAodHJhbnNmb3JtICYmIHRyYW5zZm9ybSAhPT0gJ25vbmUnKSB7XG4gICAgdmFyIG1hdHJpeCA9IHRyYW5zZm9ybS5yZXBsYWNlKC9bXjAtOVxcLS4sXS9nLCAnJykuc3BsaXQoJywnKTtcbiAgICByZXR1cm4geyB4OiBwYXJzZUZsb2F0KG1hdHJpeFsxMl0gfHwgbWF0cml4WzRdLCAwKSwgeTogcGFyc2VGbG9hdChtYXRyaXhbMTNdIHx8IG1hdHJpeFs1XSwgMCkgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xufVxuXG52YXIgbWF0cml4MmQgPSAvbWF0cml4XFwoKC4qKVxcKS87XG52YXIgbWF0cml4M2QgPSAvbWF0cml4M2RcXCgoLiopXFwpLztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRyYW5zZm9ybVhZKG5vZGUsIHh5KSB7XG4gIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKG5vZGUsIG51bGwpO1xuICB2YXIgdHJhbnNmb3JtID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgndHJhbnNmb3JtJykgfHwgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShnZXRUcmFuc2Zvcm1OYW1lKCkpO1xuICBpZiAodHJhbnNmb3JtICYmIHRyYW5zZm9ybSAhPT0gJ25vbmUnKSB7XG4gICAgdmFyIGFyciA9IHZvaWQgMDtcbiAgICB2YXIgbWF0Y2gyZCA9IHRyYW5zZm9ybS5tYXRjaChtYXRyaXgyZCk7XG4gICAgaWYgKG1hdGNoMmQpIHtcbiAgICAgIG1hdGNoMmQgPSBtYXRjaDJkWzFdO1xuICAgICAgYXJyID0gbWF0Y2gyZC5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gcGFyc2VGbG9hdChpdGVtLCAxMCk7XG4gICAgICB9KTtcbiAgICAgIGFycls0XSA9IHh5Lng7XG4gICAgICBhcnJbNV0gPSB4eS55O1xuICAgICAgc2V0VHJhbnNmb3JtKG5vZGUsICdtYXRyaXgoJyArIGFyci5qb2luKCcsJykgKyAnKScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbWF0Y2gzZCA9IHRyYW5zZm9ybS5tYXRjaChtYXRyaXgzZClbMV07XG4gICAgICBhcnIgPSBtYXRjaDNkLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KGl0ZW0sIDEwKTtcbiAgICAgIH0pO1xuICAgICAgYXJyWzEyXSA9IHh5Lng7XG4gICAgICBhcnJbMTNdID0geHkueTtcbiAgICAgIHNldFRyYW5zZm9ybShub2RlLCAnbWF0cml4M2QoJyArIGFyci5qb2luKCcsJykgKyAnKScpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzZXRUcmFuc2Zvcm0obm9kZSwgJ3RyYW5zbGF0ZVgoJyArIHh5LnggKyAncHgpIHRyYW5zbGF0ZVkoJyArIHh5LnkgKyAncHgpIHRyYW5zbGF0ZVooMCknKTtcbiAgfVxufSIsInZhciBfdHlwZW9mID0gdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTtcblxuaW1wb3J0IHsgc2V0VHJhbnNpdGlvblByb3BlcnR5LCBnZXRUcmFuc2l0aW9uUHJvcGVydHksIGdldFRyYW5zZm9ybVhZLCBzZXRUcmFuc2Zvcm1YWSwgZ2V0VHJhbnNmb3JtTmFtZSB9IGZyb20gJy4vcHJvcGVydHlVdGlscyc7XG5cbnZhciBSRV9OVU0gPSAvW1xcLStdPyg/OlxcZCpcXC58KVxcZCsoPzpbZUVdW1xcLStdP1xcZCt8KS8uc291cmNlO1xuXG52YXIgZ2V0Q29tcHV0ZWRTdHlsZVggPSB2b2lkIDA7XG5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zNDg1NjU0LzMwNDA2MDVcbmZ1bmN0aW9uIGZvcmNlUmVsYXlvdXQoZWxlbSkge1xuICB2YXIgb3JpZ2luYWxTdHlsZSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcbiAgZWxlbS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBlbGVtLm9mZnNldEhlaWdodDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICBlbGVtLnN0eWxlLmRpc3BsYXkgPSBvcmlnaW5hbFN0eWxlO1xufVxuXG5mdW5jdGlvbiBjc3MoZWwsIG5hbWUsIHYpIHtcbiAgdmFyIHZhbHVlID0gdjtcbiAgaWYgKCh0eXBlb2YgbmFtZSA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2YobmFtZSkpID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAodmFyIGkgaW4gbmFtZSkge1xuICAgICAgaWYgKG5hbWUuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgY3NzKGVsLCBpLCBuYW1lW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlICsgJ3B4JztcbiAgICB9XG4gICAgZWwuc3R5bGVbbmFtZV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlWChlbCwgbmFtZSk7XG59XG5cbmZ1bmN0aW9uIGdldENsaWVudFBvc2l0aW9uKGVsZW0pIHtcbiAgdmFyIGJveCA9IHZvaWQgMDtcbiAgdmFyIHggPSB2b2lkIDA7XG4gIHZhciB5ID0gdm9pZCAwO1xuICB2YXIgZG9jID0gZWxlbS5vd25lckRvY3VtZW50O1xuICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICB2YXIgZG9jRWxlbSA9IGRvYyAmJiBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAvLyDmoLnmja4gR0JTIOacgOaWsOaVsOaNru+8jEEtR3JhZGUgQnJvd3NlcnMg6YO95bey5pSv5oyBIGdldEJvdW5kaW5nQ2xpZW50UmVjdCDmlrnms5XvvIzkuI3nlKjlho3ogIPomZHkvKDnu5/nmoTlrp7njrDmlrnlvI9cbiAgYm94ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAvLyDms6jvvJpqUXVlcnkg6L+Y6ICD6JmR5YeP5Y67IGRvY0VsZW0uY2xpZW50TGVmdC9jbGllbnRUb3BcbiAgLy8g5L2G5rWL6K+V5Y+R546w77yM6L+Z5qC35Y+N6ICM5Lya5a+86Ie05b2TIGh0bWwg5ZKMIGJvZHkg5pyJ6L656LedL+i+ueahhuagt+W8j+aXtu+8jOiOt+WPlueahOWAvOS4jeato+ehrlxuICAvLyDmraTlpJbvvIxpZTYg5Lya5b+955WlIGh0bWwg55qEIG1hcmdpbiDlgLzvvIzlubjov5DlnLDmmK/msqHmnInosIHkvJrljrvorr7nva4gaHRtbCDnmoQgbWFyZ2luXG5cbiAgeCA9IGJveC5sZWZ0O1xuICB5ID0gYm94LnRvcDtcblxuICAvLyBJbiBJRSwgbW9zdCBvZiB0aGUgdGltZSwgMiBleHRyYSBwaXhlbHMgYXJlIGFkZGVkIHRvIHRoZSB0b3AgYW5kIGxlZnRcbiAgLy8gZHVlIHRvIHRoZSBpbXBsaWNpdCAyLXBpeGVsIGluc2V0IGJvcmRlci4gIEluIElFNi83IHF1aXJrcyBtb2RlIGFuZFxuICAvLyBJRTYgc3RhbmRhcmRzIG1vZGUsIHRoaXMgYm9yZGVyIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHNldHRpbmcgdGhlXG4gIC8vIGRvY3VtZW50IGVsZW1lbnQncyBib3JkZXIgdG8gemVybyAtLSB0aHVzLCB3ZSBjYW5ub3QgcmVseSBvbiB0aGVcbiAgLy8gb2Zmc2V0IGFsd2F5cyBiZWluZyAyIHBpeGVscy5cblxuICAvLyBJbiBxdWlya3MgbW9kZSwgdGhlIG9mZnNldCBjYW4gYmUgZGV0ZXJtaW5lZCBieSBxdWVyeWluZyB0aGUgYm9keSdzXG4gIC8vIGNsaWVudExlZnQvY2xpZW50VG9wLCBidXQgaW4gc3RhbmRhcmRzIG1vZGUsIGl0IGlzIGZvdW5kIGJ5IHF1ZXJ5aW5nXG4gIC8vIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgY2xpZW50TGVmdC9jbGllbnRUb3AuICBTaW5jZSB3ZSBhbHJlYWR5IGNhbGxlZFxuICAvLyBnZXRDbGllbnRCb3VuZGluZ1JlY3Qgd2UgaGF2ZSBhbHJlYWR5IGZvcmNlZCBhIHJlZmxvdywgc28gaXQgaXMgbm90XG4gIC8vIHRvbyBleHBlbnNpdmUganVzdCB0byBxdWVyeSB0aGVtIGFsbC5cblxuICAvLyBpZSDkuIvlupTor6Xlh4/ljrvnqpflj6PnmoTovrnmoYblkKfvvIzmr5Xnq5/pu5jorqQgYWJzb2x1dGUg6YO95piv55u45a+556qX5Y+j5a6a5L2N55qEXG4gIC8vIOeql+WPo+i+ueahhuagh+WHhuaYr+iuviBkb2N1bWVudEVsZW1lbnQgLHF1aXJrcyDml7borr7nva4gYm9keVxuICAvLyDmnIDlpb3npoHmraLlnKggYm9keSDlkowgaHRtbCDkuIrovrnmoYYg77yM5L2GIGllIDwgOSBodG1sIOm7mOiupOaciSAycHgg77yM5YeP5Y67XG4gIC8vIOS9huaYr+mdniBpZSDkuI3lj6/og73orr7nva7nqpflj6PovrnmoYbvvIxib2R5IGh0bWwg5Lmf5LiN5piv56qX5Y+jICxpZSDlj6/ku6XpgJrov4cgaHRtbCxib2R5IOiuvue9rlxuICAvLyDmoIflh4YgaWUg5LiLIGRvY0VsZW0uY2xpZW50VG9wIOWwseaYryBib3JkZXItdG9wXG4gIC8vIGllNyBodG1sIOWNs+eql+WPo+i+ueahhuaUueWPmOS4jeS6huOAguawuOi/nOS4uiAyXG4gIC8vIOS9huagh+WHhiBmaXJlZm94L2Nocm9tZS9pZTkg5LiLIGRvY0VsZW0uY2xpZW50VG9wIOaYr+eql+WPo+i+ueahhu+8jOWNs+S9v+iuvuS6hiBib3JkZXItdG9wIOS5n+S4uiAwXG5cbiAgeCAtPSBkb2NFbGVtLmNsaWVudExlZnQgfHwgYm9keS5jbGllbnRMZWZ0IHx8IDA7XG4gIHkgLT0gZG9jRWxlbS5jbGllbnRUb3AgfHwgYm9keS5jbGllbnRUb3AgfHwgMDtcblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IHgsXG4gICAgdG9wOiB5XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNjcm9sbCh3LCB0b3ApIHtcbiAgdmFyIHJldCA9IHdbJ3BhZ2UnICsgKHRvcCA/ICdZJyA6ICdYJykgKyAnT2Zmc2V0J107XG4gIHZhciBtZXRob2QgPSAnc2Nyb2xsJyArICh0b3AgPyAnVG9wJyA6ICdMZWZ0Jyk7XG4gIGlmICh0eXBlb2YgcmV0ICE9PSAnbnVtYmVyJykge1xuICAgIHZhciBkID0gdy5kb2N1bWVudDtcbiAgICAvLyBpZTYsNyw4IHN0YW5kYXJkIG1vZGVcbiAgICByZXQgPSBkLmRvY3VtZW50RWxlbWVudFttZXRob2RdO1xuICAgIGlmICh0eXBlb2YgcmV0ICE9PSAnbnVtYmVyJykge1xuICAgICAgLy8gcXVpcmtzIG1vZGVcbiAgICAgIHJldCA9IGQuYm9keVttZXRob2RdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBnZXRTY3JvbGxMZWZ0KHcpIHtcbiAgcmV0dXJuIGdldFNjcm9sbCh3KTtcbn1cblxuZnVuY3Rpb24gZ2V0U2Nyb2xsVG9wKHcpIHtcbiAgcmV0dXJuIGdldFNjcm9sbCh3LCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsKSB7XG4gIHZhciBwb3MgPSBnZXRDbGllbnRQb3NpdGlvbihlbCk7XG4gIHZhciBkb2MgPSBlbC5vd25lckRvY3VtZW50O1xuICB2YXIgdyA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICBwb3MubGVmdCArPSBnZXRTY3JvbGxMZWZ0KHcpO1xuICBwb3MudG9wICs9IGdldFNjcm9sbFRvcCh3KTtcbiAgcmV0dXJuIHBvcztcbn1cblxuLyoqXG4gKiBBIGNydWRlIHdheSBvZiBkZXRlcm1pbmluZyBpZiBhbiBvYmplY3QgaXMgYSB3aW5kb3dcbiAqIEBtZW1iZXIgdXRpbFxuICovXG5mdW5jdGlvbiBpc1dpbmRvdyhvYmopIHtcbiAgLy8gbXVzdCB1c2UgPT0gZm9yIGllOFxuICAvKiBlc2xpbnQgZXFlcWVxOjAgKi9cbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiBvYmogIT09IHVuZGVmaW5lZCAmJiBvYmogPT0gb2JqLndpbmRvdztcbn1cblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnQobm9kZSkge1xuICBpZiAoaXNXaW5kb3cobm9kZSkpIHtcbiAgICByZXR1cm4gbm9kZS5kb2N1bWVudDtcbiAgfVxuICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gOSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG4gIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQ7XG59XG5cbmZ1bmN0aW9uIF9nZXRDb21wdXRlZFN0eWxlKGVsZW0sIG5hbWUsIGNzKSB7XG4gIHZhciBjb21wdXRlZFN0eWxlID0gY3M7XG4gIHZhciB2YWwgPSAnJztcbiAgdmFyIGQgPSBnZXREb2N1bWVudChlbGVtKTtcbiAgY29tcHV0ZWRTdHlsZSA9IGNvbXB1dGVkU3R5bGUgfHwgZC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW0sIG51bGwpO1xuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9raXNzeXRlYW0va2lzc3kvaXNzdWVzLzYxXG4gIGlmIChjb21wdXRlZFN0eWxlKSB7XG4gICAgdmFsID0gY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpIHx8IGNvbXB1dGVkU3R5bGVbbmFtZV07XG4gIH1cblxuICByZXR1cm4gdmFsO1xufVxuXG52YXIgX1JFX05VTV9OT19QWCA9IG5ldyBSZWdFeHAoJ14oJyArIFJFX05VTSArICcpKD8hcHgpW2EteiVdKyQnLCAnaScpO1xudmFyIFJFX1BPUyA9IC9eKHRvcHxyaWdodHxib3R0b218bGVmdCkkLztcbnZhciBDVVJSRU5UX1NUWUxFID0gJ2N1cnJlbnRTdHlsZSc7XG52YXIgUlVOVElNRV9TVFlMRSA9ICdydW50aW1lU3R5bGUnO1xudmFyIExFRlQgPSAnbGVmdCc7XG52YXIgUFggPSAncHgnO1xuXG5mdW5jdGlvbiBfZ2V0Q29tcHV0ZWRTdHlsZUlFKGVsZW0sIG5hbWUpIHtcbiAgLy8gY3VycmVudFN0eWxlIG1heWJlIG51bGxcbiAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zNTM1MjMxLmFzcHhcbiAgdmFyIHJldCA9IGVsZW1bQ1VSUkVOVF9TVFlMRV0gJiYgZWxlbVtDVVJSRU5UX1NUWUxFXVtuYW1lXTtcblxuICAvLyDlvZMgd2lkdGgvaGVpZ2h0IOiuvue9ruS4uueZvuWIhuavlOaXtu+8jOmAmui/hyBwaXhlbExlZnQg5pa55byP6L2s5o2i55qEIHdpZHRoL2hlaWdodCDlgLxcbiAgLy8g5LiA5byA5aeL5bCx5aSE55CG5LqGISBDVVNUT01fU1RZTEUuaGVpZ2h0LENVU1RPTV9TVFlMRS53aWR0aCAsY3NzSG9vayDop6PlhrNAMjAxMS0wOC0xOVxuICAvLyDlnKggaWUg5LiL5LiN5a+577yM6ZyA6KaB55u05o6l55SoIG9mZnNldCDmlrnlvI9cbiAgLy8gYm9yZGVyV2lkdGgg562J5YC85Lmf5pyJ6Zeu6aKY77yM5L2G6ICD6JmR5YiwIGJvcmRlcldpZHRoIOiuvuS4uueZvuWIhuavlOeahOamgueOh+W+iOWwj++8jOi/memHjOWwseS4jeiAg+iZkeS6hlxuXG4gIC8vIEZyb20gdGhlIGF3ZXNvbWUgaGFjayBieSBEZWFuIEVkd2FyZHNcbiAgLy8gaHR0cDovL2VyaWsuZWFlLm5ldC9hcmNoaXZlcy8yMDA3LzA3LzI3LzE4LjU0LjE1LyNjb21tZW50LTEwMjI5MVxuICAvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXJcbiAgLy8gYnV0IGEgbnVtYmVyIHRoYXQgaGFzIGEgd2VpcmQgZW5kaW5nLCB3ZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gcGl4ZWxzXG4gIC8vIGV4Y2x1ZGUgbGVmdCByaWdodCBmb3IgcmVsYXRpdml0eVxuICBpZiAoX1JFX05VTV9OT19QWC50ZXN0KHJldCkgJiYgIVJFX1BPUy50ZXN0KG5hbWUpKSB7XG4gICAgLy8gUmVtZW1iZXIgdGhlIG9yaWdpbmFsIHZhbHVlc1xuICAgIHZhciBzdHlsZSA9IGVsZW0uc3R5bGU7XG4gICAgdmFyIGxlZnQgPSBzdHlsZVtMRUZUXTtcbiAgICB2YXIgcnNMZWZ0ID0gZWxlbVtSVU5USU1FX1NUWUxFXVtMRUZUXTtcblxuICAgIC8vIHByZXZlbnQgZmxhc2hpbmcgb2YgY29udGVudFxuICAgIGVsZW1bUlVOVElNRV9TVFlMRV1bTEVGVF0gPSBlbGVtW0NVUlJFTlRfU1RZTEVdW0xFRlRdO1xuXG4gICAgLy8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuICAgIHN0eWxlW0xFRlRdID0gbmFtZSA9PT0gJ2ZvbnRTaXplJyA/ICcxZW0nIDogcmV0IHx8IDA7XG4gICAgcmV0ID0gc3R5bGUucGl4ZWxMZWZ0ICsgUFg7XG5cbiAgICAvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVzXG4gICAgc3R5bGVbTEVGVF0gPSBsZWZ0O1xuXG4gICAgZWxlbVtSVU5USU1FX1NUWUxFXVtMRUZUXSA9IHJzTGVmdDtcbiAgfVxuICByZXR1cm4gcmV0ID09PSAnJyA/ICdhdXRvJyA6IHJldDtcbn1cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIGdldENvbXB1dGVkU3R5bGVYID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUgPyBfZ2V0Q29tcHV0ZWRTdHlsZSA6IF9nZXRDb21wdXRlZFN0eWxlSUU7XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldERpcmVjdGlvbihkaXIsIG9wdGlvbikge1xuICBpZiAoZGlyID09PSAnbGVmdCcpIHtcbiAgICByZXR1cm4gb3B0aW9uLnVzZUNzc1JpZ2h0ID8gJ3JpZ2h0JyA6IGRpcjtcbiAgfVxuICByZXR1cm4gb3B0aW9uLnVzZUNzc0JvdHRvbSA/ICdib3R0b20nIDogZGlyO1xufVxuXG5mdW5jdGlvbiBvcHBvc2l0ZU9mZnNldERpcmVjdGlvbihkaXIpIHtcbiAgaWYgKGRpciA9PT0gJ2xlZnQnKSB7XG4gICAgcmV0dXJuICdyaWdodCc7XG4gIH0gZWxzZSBpZiAoZGlyID09PSAncmlnaHQnKSB7XG4gICAgcmV0dXJuICdsZWZ0JztcbiAgfSBlbHNlIGlmIChkaXIgPT09ICd0b3AnKSB7XG4gICAgcmV0dXJuICdib3R0b20nO1xuICB9IGVsc2UgaWYgKGRpciA9PT0gJ2JvdHRvbScpIHtcbiAgICByZXR1cm4gJ3RvcCc7XG4gIH1cbn1cblxuLy8g6K6+572uIGVsZW0g55u45a+5IGVsZW0ub3duZXJEb2N1bWVudCDnmoTlnZDmoIdcbmZ1bmN0aW9uIHNldExlZnRUb3AoZWxlbSwgb2Zmc2V0LCBvcHRpb24pIHtcbiAgLy8gc2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbVxuICBpZiAoY3NzKGVsZW0sICdwb3NpdGlvbicpID09PSAnc3RhdGljJykge1xuICAgIGVsZW0uc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICB9XG4gIHZhciBwcmVzZXRIID0gLTk5OTtcbiAgdmFyIHByZXNldFYgPSAtOTk5O1xuICB2YXIgaG9yaXpvbnRhbFByb3BlcnR5ID0gZ2V0T2Zmc2V0RGlyZWN0aW9uKCdsZWZ0Jywgb3B0aW9uKTtcbiAgdmFyIHZlcnRpY2FsUHJvcGVydHkgPSBnZXRPZmZzZXREaXJlY3Rpb24oJ3RvcCcsIG9wdGlvbik7XG4gIHZhciBvcHBvc2l0ZUhvcml6b250YWxQcm9wZXJ0eSA9IG9wcG9zaXRlT2Zmc2V0RGlyZWN0aW9uKGhvcml6b250YWxQcm9wZXJ0eSk7XG4gIHZhciBvcHBvc2l0ZVZlcnRpY2FsUHJvcGVydHkgPSBvcHBvc2l0ZU9mZnNldERpcmVjdGlvbih2ZXJ0aWNhbFByb3BlcnR5KTtcblxuICBpZiAoaG9yaXpvbnRhbFByb3BlcnR5ICE9PSAnbGVmdCcpIHtcbiAgICBwcmVzZXRIID0gOTk5O1xuICB9XG5cbiAgaWYgKHZlcnRpY2FsUHJvcGVydHkgIT09ICd0b3AnKSB7XG4gICAgcHJlc2V0ViA9IDk5OTtcbiAgfVxuICB2YXIgb3JpZ2luYWxUcmFuc2l0aW9uID0gJyc7XG4gIHZhciBvcmlnaW5hbE9mZnNldCA9IGdldE9mZnNldChlbGVtKTtcbiAgaWYgKCdsZWZ0JyBpbiBvZmZzZXQgfHwgJ3RvcCcgaW4gb2Zmc2V0KSB7XG4gICAgb3JpZ2luYWxUcmFuc2l0aW9uID0gZ2V0VHJhbnNpdGlvblByb3BlcnR5KGVsZW0pIHx8ICcnO1xuICAgIHNldFRyYW5zaXRpb25Qcm9wZXJ0eShlbGVtLCAnbm9uZScpO1xuICB9XG4gIGlmICgnbGVmdCcgaW4gb2Zmc2V0KSB7XG4gICAgZWxlbS5zdHlsZVtvcHBvc2l0ZUhvcml6b250YWxQcm9wZXJ0eV0gPSAnJztcbiAgICBlbGVtLnN0eWxlW2hvcml6b250YWxQcm9wZXJ0eV0gPSBwcmVzZXRIICsgJ3B4JztcbiAgfVxuICBpZiAoJ3RvcCcgaW4gb2Zmc2V0KSB7XG4gICAgZWxlbS5zdHlsZVtvcHBvc2l0ZVZlcnRpY2FsUHJvcGVydHldID0gJyc7XG4gICAgZWxlbS5zdHlsZVt2ZXJ0aWNhbFByb3BlcnR5XSA9IHByZXNldFYgKyAncHgnO1xuICB9XG4gIC8vIGZvcmNlIHJlbGF5b3V0XG4gIGZvcmNlUmVsYXlvdXQoZWxlbSk7XG4gIHZhciBvbGQgPSBnZXRPZmZzZXQoZWxlbSk7XG4gIHZhciBvcmlnaW5hbFN0eWxlID0ge307XG4gIGZvciAodmFyIGtleSBpbiBvZmZzZXQpIHtcbiAgICBpZiAob2Zmc2V0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHZhciBkaXIgPSBnZXRPZmZzZXREaXJlY3Rpb24oa2V5LCBvcHRpb24pO1xuICAgICAgdmFyIHByZXNldCA9IGtleSA9PT0gJ2xlZnQnID8gcHJlc2V0SCA6IHByZXNldFY7XG4gICAgICB2YXIgb2ZmID0gb3JpZ2luYWxPZmZzZXRba2V5XSAtIG9sZFtrZXldO1xuICAgICAgaWYgKGRpciA9PT0ga2V5KSB7XG4gICAgICAgIG9yaWdpbmFsU3R5bGVbZGlyXSA9IHByZXNldCArIG9mZjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9yaWdpbmFsU3R5bGVbZGlyXSA9IHByZXNldCAtIG9mZjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY3NzKGVsZW0sIG9yaWdpbmFsU3R5bGUpO1xuICAvLyBmb3JjZSByZWxheW91dFxuICBmb3JjZVJlbGF5b3V0KGVsZW0pO1xuICBpZiAoJ2xlZnQnIGluIG9mZnNldCB8fCAndG9wJyBpbiBvZmZzZXQpIHtcbiAgICBzZXRUcmFuc2l0aW9uUHJvcGVydHkoZWxlbSwgb3JpZ2luYWxUcmFuc2l0aW9uKTtcbiAgfVxuICB2YXIgcmV0ID0ge307XG4gIGZvciAodmFyIF9rZXkgaW4gb2Zmc2V0KSB7XG4gICAgaWYgKG9mZnNldC5oYXNPd25Qcm9wZXJ0eShfa2V5KSkge1xuICAgICAgdmFyIF9kaXIgPSBnZXRPZmZzZXREaXJlY3Rpb24oX2tleSwgb3B0aW9uKTtcbiAgICAgIHZhciBfb2ZmID0gb2Zmc2V0W19rZXldIC0gb3JpZ2luYWxPZmZzZXRbX2tleV07XG4gICAgICBpZiAoX2tleSA9PT0gX2Rpcikge1xuICAgICAgICByZXRbX2Rpcl0gPSBvcmlnaW5hbFN0eWxlW19kaXJdICsgX29mZjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldFtfZGlyXSA9IG9yaWdpbmFsU3R5bGVbX2Rpcl0gLSBfb2ZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBjc3MoZWxlbSwgcmV0KTtcbn1cblxuZnVuY3Rpb24gc2V0VHJhbnNmb3JtKGVsZW0sIG9mZnNldCkge1xuICB2YXIgb3JpZ2luYWxPZmZzZXQgPSBnZXRPZmZzZXQoZWxlbSk7XG4gIHZhciBvcmlnaW5hbFhZID0gZ2V0VHJhbnNmb3JtWFkoZWxlbSk7XG4gIHZhciByZXN1bHRYWSA9IHsgeDogb3JpZ2luYWxYWS54LCB5OiBvcmlnaW5hbFhZLnkgfTtcbiAgaWYgKCdsZWZ0JyBpbiBvZmZzZXQpIHtcbiAgICByZXN1bHRYWS54ID0gb3JpZ2luYWxYWS54ICsgb2Zmc2V0LmxlZnQgLSBvcmlnaW5hbE9mZnNldC5sZWZ0O1xuICB9XG4gIGlmICgndG9wJyBpbiBvZmZzZXQpIHtcbiAgICByZXN1bHRYWS55ID0gb3JpZ2luYWxYWS55ICsgb2Zmc2V0LnRvcCAtIG9yaWdpbmFsT2Zmc2V0LnRvcDtcbiAgfVxuICBzZXRUcmFuc2Zvcm1YWShlbGVtLCByZXN1bHRYWSk7XG59XG5cbmZ1bmN0aW9uIHNldE9mZnNldChlbGVtLCBvZmZzZXQsIG9wdGlvbikge1xuICBpZiAob3B0aW9uLmlnbm9yZVNoYWtlKSB7XG4gICAgdmFyIG9yaU9mZnNldCA9IGdldE9mZnNldChlbGVtKTtcblxuICAgIHZhciBvTGVmdCA9IG9yaU9mZnNldC5sZWZ0LnRvRml4ZWQoMCk7XG4gICAgdmFyIG9Ub3AgPSBvcmlPZmZzZXQudG9wLnRvRml4ZWQoMCk7XG4gICAgdmFyIHRMZWZ0ID0gb2Zmc2V0LmxlZnQudG9GaXhlZCgwKTtcbiAgICB2YXIgdFRvcCA9IG9mZnNldC50b3AudG9GaXhlZCgwKTtcblxuICAgIGlmIChvTGVmdCA9PT0gdExlZnQgJiYgb1RvcCA9PT0gdFRvcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb24udXNlQ3NzUmlnaHQgfHwgb3B0aW9uLnVzZUNzc0JvdHRvbSkge1xuICAgIHNldExlZnRUb3AoZWxlbSwgb2Zmc2V0LCBvcHRpb24pO1xuICB9IGVsc2UgaWYgKG9wdGlvbi51c2VDc3NUcmFuc2Zvcm0gJiYgZ2V0VHJhbnNmb3JtTmFtZSgpIGluIGRvY3VtZW50LmJvZHkuc3R5bGUpIHtcbiAgICBzZXRUcmFuc2Zvcm0oZWxlbSwgb2Zmc2V0LCBvcHRpb24pO1xuICB9IGVsc2Uge1xuICAgIHNldExlZnRUb3AoZWxlbSwgb2Zmc2V0LCBvcHRpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVhY2goYXJyLCBmbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGZuKGFycltpXSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNCb3JkZXJCb3hGbihlbGVtKSB7XG4gIHJldHVybiBnZXRDb21wdXRlZFN0eWxlWChlbGVtLCAnYm94U2l6aW5nJykgPT09ICdib3JkZXItYm94Jztcbn1cblxudmFyIEJPWF9NT0RFTFMgPSBbJ21hcmdpbicsICdib3JkZXInLCAncGFkZGluZyddO1xudmFyIENPTlRFTlRfSU5ERVggPSAtMTtcbnZhciBQQURESU5HX0lOREVYID0gMjtcbnZhciBCT1JERVJfSU5ERVggPSAxO1xudmFyIE1BUkdJTl9JTkRFWCA9IDA7XG5cbmZ1bmN0aW9uIHN3YXAoZWxlbSwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIG9sZCA9IHt9O1xuICB2YXIgc3R5bGUgPSBlbGVtLnN0eWxlO1xuICB2YXIgbmFtZSA9IHZvaWQgMDtcblxuICAvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXNcbiAgZm9yIChuYW1lIGluIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgb2xkW25hbWVdID0gc3R5bGVbbmFtZV07XG4gICAgICBzdHlsZVtuYW1lXSA9IG9wdGlvbnNbbmFtZV07XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2suY2FsbChlbGVtKTtcblxuICAvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXNcbiAgZm9yIChuYW1lIGluIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgc3R5bGVbbmFtZV0gPSBvbGRbbmFtZV07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBCTVdpZHRoKGVsZW0sIHByb3BzLCB3aGljaCkge1xuICB2YXIgdmFsdWUgPSAwO1xuICB2YXIgcHJvcCA9IHZvaWQgMDtcbiAgdmFyIGogPSB2b2lkIDA7XG4gIHZhciBpID0gdm9pZCAwO1xuICBmb3IgKGogPSAwOyBqIDwgcHJvcHMubGVuZ3RoOyBqKyspIHtcbiAgICBwcm9wID0gcHJvcHNbal07XG4gICAgaWYgKHByb3ApIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCB3aGljaC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY3NzUHJvcCA9IHZvaWQgMDtcbiAgICAgICAgaWYgKHByb3AgPT09ICdib3JkZXInKSB7XG4gICAgICAgICAgY3NzUHJvcCA9ICcnICsgcHJvcCArIHdoaWNoW2ldICsgJ1dpZHRoJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjc3NQcm9wID0gcHJvcCArIHdoaWNoW2ldO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlICs9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZVgoZWxlbSwgY3NzUHJvcCkpIHx8IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxudmFyIGRvbVV0aWxzID0ge307XG5cbmVhY2goWydXaWR0aCcsICdIZWlnaHQnXSwgZnVuY3Rpb24gKG5hbWUpIHtcbiAgZG9tVXRpbHNbJ2RvYycgKyBuYW1lXSA9IGZ1bmN0aW9uIChyZWZXaW4pIHtcbiAgICB2YXIgZCA9IHJlZldpbi5kb2N1bWVudDtcbiAgICByZXR1cm4gTWF0aC5tYXgoXG4gICAgLy8gZmlyZWZveCBjaHJvbWUgZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodDwgYm9keS5zY3JvbGxIZWlnaHRcbiAgICAvLyBpZSBzdGFuZGFyZCBtb2RlIDogZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodD4gYm9keS5zY3JvbGxIZWlnaHRcbiAgICBkLmRvY3VtZW50RWxlbWVudFsnc2Nyb2xsJyArIG5hbWVdLFxuICAgIC8vIHF1aXJrcyA6IGRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQg5pyA5aSn562J5LqO5Y+v6KeG56qX5Y+j5aSa5LiA54K577yfXG4gICAgZC5ib2R5WydzY3JvbGwnICsgbmFtZV0sIGRvbVV0aWxzWyd2aWV3cG9ydCcgKyBuYW1lXShkKSk7XG4gIH07XG5cbiAgZG9tVXRpbHNbJ3ZpZXdwb3J0JyArIG5hbWVdID0gZnVuY3Rpb24gKHdpbikge1xuICAgIC8vIHBjIGJyb3dzZXIgaW5jbHVkZXMgc2Nyb2xsYmFyIGluIHdpbmRvdy5pbm5lcldpZHRoXG4gICAgdmFyIHByb3AgPSAnY2xpZW50JyArIG5hbWU7XG4gICAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDtcbiAgICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICAgIHZhciBkb2N1bWVudEVsZW1lbnQgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgIHZhciBkb2N1bWVudEVsZW1lbnRQcm9wID0gZG9jdW1lbnRFbGVtZW50W3Byb3BdO1xuICAgIC8vIOagh+WHhuaooeW8j+WPliBkb2N1bWVudEVsZW1lbnRcbiAgICAvLyBiYWNrY29tcGF0IOWPliBib2R5XG4gICAgcmV0dXJuIGRvYy5jb21wYXRNb2RlID09PSAnQ1NTMUNvbXBhdCcgJiYgZG9jdW1lbnRFbGVtZW50UHJvcCB8fCBib2R5ICYmIGJvZHlbcHJvcF0gfHwgZG9jdW1lbnRFbGVtZW50UHJvcDtcbiAgfTtcbn0pO1xuXG4vKlxuIOW+l+WIsOWFg+e0oOeahOWkp+Wwj+S/oeaBr1xuIEBwYXJhbSBlbGVtXG4gQHBhcmFtIG5hbWVcbiBAcGFyYW0ge1N0cmluZ30gW2V4dHJhXSAgJ3BhZGRpbmcnIDogKGNzcyB3aWR0aCkgKyBwYWRkaW5nXG4gJ2JvcmRlcicgOiAoY3NzIHdpZHRoKSArIHBhZGRpbmcgKyBib3JkZXJcbiAnbWFyZ2luJyA6IChjc3Mgd2lkdGgpICsgcGFkZGluZyArIGJvcmRlciArIG1hcmdpblxuICovXG5mdW5jdGlvbiBnZXRXSChlbGVtLCBuYW1lLCBleCkge1xuICB2YXIgZXh0cmEgPSBleDtcbiAgaWYgKGlzV2luZG93KGVsZW0pKSB7XG4gICAgcmV0dXJuIG5hbWUgPT09ICd3aWR0aCcgPyBkb21VdGlscy52aWV3cG9ydFdpZHRoKGVsZW0pIDogZG9tVXRpbHMudmlld3BvcnRIZWlnaHQoZWxlbSk7XG4gIH0gZWxzZSBpZiAoZWxlbS5ub2RlVHlwZSA9PT0gOSkge1xuICAgIHJldHVybiBuYW1lID09PSAnd2lkdGgnID8gZG9tVXRpbHMuZG9jV2lkdGgoZWxlbSkgOiBkb21VdGlscy5kb2NIZWlnaHQoZWxlbSk7XG4gIH1cbiAgdmFyIHdoaWNoID0gbmFtZSA9PT0gJ3dpZHRoJyA/IFsnTGVmdCcsICdSaWdodCddIDogWydUb3AnLCAnQm90dG9tJ107XG4gIHZhciBib3JkZXJCb3hWYWx1ZSA9IG5hbWUgPT09ICd3aWR0aCcgPyBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gIHZhciBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZVgoZWxlbSk7XG4gIHZhciBpc0JvcmRlckJveCA9IGlzQm9yZGVyQm94Rm4oZWxlbSwgY29tcHV0ZWRTdHlsZSk7XG4gIHZhciBjc3NCb3hWYWx1ZSA9IDA7XG4gIGlmIChib3JkZXJCb3hWYWx1ZSA9PT0gbnVsbCB8fCBib3JkZXJCb3hWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGJvcmRlckJveFZhbHVlIDw9IDApIHtcbiAgICBib3JkZXJCb3hWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAvLyBGYWxsIGJhY2sgdG8gY29tcHV0ZWQgdGhlbiB1biBjb21wdXRlZCBjc3MgaWYgbmVjZXNzYXJ5XG4gICAgY3NzQm94VmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlWChlbGVtLCBuYW1lKTtcbiAgICBpZiAoY3NzQm94VmFsdWUgPT09IG51bGwgfHwgY3NzQm94VmFsdWUgPT09IHVuZGVmaW5lZCB8fCBOdW1iZXIoY3NzQm94VmFsdWUpIDwgMCkge1xuICAgICAgY3NzQm94VmFsdWUgPSBlbGVtLnN0eWxlW25hbWVdIHx8IDA7XG4gICAgfVxuICAgIC8vIE5vcm1hbGl6ZSAnJywgYXV0bywgYW5kIHByZXBhcmUgZm9yIGV4dHJhXG4gICAgY3NzQm94VmFsdWUgPSBwYXJzZUZsb2F0KGNzc0JveFZhbHVlKSB8fCAwO1xuICB9XG4gIGlmIChleHRyYSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZXh0cmEgPSBpc0JvcmRlckJveCA/IEJPUkRFUl9JTkRFWCA6IENPTlRFTlRfSU5ERVg7XG4gIH1cbiAgdmFyIGJvcmRlckJveFZhbHVlT3JJc0JvcmRlckJveCA9IGJvcmRlckJveFZhbHVlICE9PSB1bmRlZmluZWQgfHwgaXNCb3JkZXJCb3g7XG4gIHZhciB2YWwgPSBib3JkZXJCb3hWYWx1ZSB8fCBjc3NCb3hWYWx1ZTtcbiAgaWYgKGV4dHJhID09PSBDT05URU5UX0lOREVYKSB7XG4gICAgaWYgKGJvcmRlckJveFZhbHVlT3JJc0JvcmRlckJveCkge1xuICAgICAgcmV0dXJuIHZhbCAtIGdldFBCTVdpZHRoKGVsZW0sIFsnYm9yZGVyJywgJ3BhZGRpbmcnXSwgd2hpY2gsIGNvbXB1dGVkU3R5bGUpO1xuICAgIH1cbiAgICByZXR1cm4gY3NzQm94VmFsdWU7XG4gIH0gZWxzZSBpZiAoYm9yZGVyQm94VmFsdWVPcklzQm9yZGVyQm94KSB7XG4gICAgaWYgKGV4dHJhID09PSBCT1JERVJfSU5ERVgpIHtcbiAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIHJldHVybiB2YWwgKyAoZXh0cmEgPT09IFBBRERJTkdfSU5ERVggPyAtZ2V0UEJNV2lkdGgoZWxlbSwgWydib3JkZXInXSwgd2hpY2gsIGNvbXB1dGVkU3R5bGUpIDogZ2V0UEJNV2lkdGgoZWxlbSwgWydtYXJnaW4nXSwgd2hpY2gsIGNvbXB1dGVkU3R5bGUpKTtcbiAgfVxuICByZXR1cm4gY3NzQm94VmFsdWUgKyBnZXRQQk1XaWR0aChlbGVtLCBCT1hfTU9ERUxTLnNsaWNlKGV4dHJhKSwgd2hpY2gsIGNvbXB1dGVkU3R5bGUpO1xufVxuXG52YXIgY3NzU2hvdyA9IHtcbiAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxuICBkaXNwbGF5OiAnYmxvY2snXG59O1xuXG4vLyBmaXggIzExOSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9raXNzeXRlYW0va2lzc3kvaXNzdWVzLzExOVxuZnVuY3Rpb24gZ2V0V0hJZ25vcmVEaXNwbGF5KCkge1xuICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjsgX2tleTIrKykge1xuICAgIGFyZ3NbX2tleTJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuXG4gIHZhciB2YWwgPSB2b2lkIDA7XG4gIHZhciBlbGVtID0gYXJnc1swXTtcbiAgLy8gaW4gY2FzZSBlbGVtIGlzIHdpbmRvd1xuICAvLyBlbGVtLm9mZnNldFdpZHRoID09PSB1bmRlZmluZWRcbiAgaWYgKGVsZW0ub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICB2YWwgPSBnZXRXSC5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHN3YXAoZWxlbSwgY3NzU2hvdywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFsID0gZ2V0V0guYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gdmFsO1xufVxuXG5lYWNoKFsnd2lkdGgnLCAnaGVpZ2h0J10sIGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciBmaXJzdCA9IG5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICBkb21VdGlsc1snb3V0ZXInICsgZmlyc3RdID0gZnVuY3Rpb24gKGVsLCBpbmNsdWRlTWFyZ2luKSB7XG4gICAgcmV0dXJuIGVsICYmIGdldFdISWdub3JlRGlzcGxheShlbCwgbmFtZSwgaW5jbHVkZU1hcmdpbiA/IE1BUkdJTl9JTkRFWCA6IEJPUkRFUl9JTkRFWCk7XG4gIH07XG4gIHZhciB3aGljaCA9IG5hbWUgPT09ICd3aWR0aCcgPyBbJ0xlZnQnLCAnUmlnaHQnXSA6IFsnVG9wJywgJ0JvdHRvbSddO1xuXG4gIGRvbVV0aWxzW25hbWVdID0gZnVuY3Rpb24gKGVsZW0sIHYpIHtcbiAgICB2YXIgdmFsID0gdjtcbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChlbGVtKSB7XG4gICAgICAgIHZhciBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZVgoZWxlbSk7XG4gICAgICAgIHZhciBpc0JvcmRlckJveCA9IGlzQm9yZGVyQm94Rm4oZWxlbSk7XG4gICAgICAgIGlmIChpc0JvcmRlckJveCkge1xuICAgICAgICAgIHZhbCArPSBnZXRQQk1XaWR0aChlbGVtLCBbJ3BhZGRpbmcnLCAnYm9yZGVyJ10sIHdoaWNoLCBjb21wdXRlZFN0eWxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3NzKGVsZW0sIG5hbWUsIHZhbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbSAmJiBnZXRXSElnbm9yZURpc3BsYXkoZWxlbSwgbmFtZSwgQ09OVEVOVF9JTkRFWCk7XG4gIH07XG59KTtcblxuZnVuY3Rpb24gbWl4KHRvLCBmcm9tKSB7XG4gIGZvciAodmFyIGkgaW4gZnJvbSkge1xuICAgIGlmIChmcm9tLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICB0b1tpXSA9IGZyb21baV07XG4gICAgfVxuICB9XG4gIHJldHVybiB0bztcbn1cblxudmFyIHV0aWxzID0ge1xuICBnZXRXaW5kb3c6IGZ1bmN0aW9uIGdldFdpbmRvdyhub2RlKSB7XG4gICAgaWYgKG5vZGUgJiYgbm9kZS5kb2N1bWVudCAmJiBub2RlLnNldFRpbWVvdXQpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICB2YXIgZG9jID0gbm9kZS5vd25lckRvY3VtZW50IHx8IG5vZGU7XG4gICAgcmV0dXJuIGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICB9LFxuXG4gIGdldERvY3VtZW50OiBnZXREb2N1bWVudCxcbiAgb2Zmc2V0OiBmdW5jdGlvbiBvZmZzZXQoZWwsIHZhbHVlLCBvcHRpb24pIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgc2V0T2Zmc2V0KGVsLCB2YWx1ZSwgb3B0aW9uIHx8IHt9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGdldE9mZnNldChlbCk7XG4gICAgfVxuICB9LFxuXG4gIGlzV2luZG93OiBpc1dpbmRvdyxcbiAgZWFjaDogZWFjaCxcbiAgY3NzOiBjc3MsXG4gIGNsb25lOiBmdW5jdGlvbiBjbG9uZShvYmopIHtcbiAgICB2YXIgaSA9IHZvaWQgMDtcbiAgICB2YXIgcmV0ID0ge307XG4gICAgZm9yIChpIGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICByZXRbaV0gPSBvYmpbaV07XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBvdmVyZmxvdyA9IG9iai5vdmVyZmxvdztcbiAgICBpZiAob3ZlcmZsb3cpIHtcbiAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgIHJldC5vdmVyZmxvd1tpXSA9IG9iai5vdmVyZmxvd1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9LFxuXG4gIG1peDogbWl4LFxuICBnZXRXaW5kb3dTY3JvbGxMZWZ0OiBmdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxMZWZ0KHcpIHtcbiAgICByZXR1cm4gZ2V0U2Nyb2xsTGVmdCh3KTtcbiAgfSxcbiAgZ2V0V2luZG93U2Nyb2xsVG9wOiBmdW5jdGlvbiBnZXRXaW5kb3dTY3JvbGxUb3Aodykge1xuICAgIHJldHVybiBnZXRTY3JvbGxUb3Aodyk7XG4gIH0sXG4gIG1lcmdlOiBmdW5jdGlvbiBtZXJnZSgpIHtcbiAgICB2YXIgcmV0ID0ge307XG5cbiAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuMiksIF9rZXkzID0gMDsgX2tleTMgPCBfbGVuMjsgX2tleTMrKykge1xuICAgICAgYXJnc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgdXRpbHMubWl4KHJldCwgYXJnc1tpXSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgdmlld3BvcnRXaWR0aDogMCxcbiAgdmlld3BvcnRIZWlnaHQ6IDBcbn07XG5cbm1peCh1dGlscywgZG9tVXRpbHMpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlsczsiLCJpbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICog5b6X5Yiw5Lya5a+86Ie05YWD57Sg5pi+56S65LiN5YWo55qE56WW5YWI5YWD57SgXG4gKi9cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKHV0aWxzLmlzV2luZG93KGVsZW1lbnQpIHx8IGVsZW1lbnQubm9kZVR5cGUgPT09IDkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBpZSDov5nkuKrkuZ/kuI3mmK/lrozlhajlj6/ooYxcbiAgLypcbiAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogNTBweDtoZWlnaHQ6IDEwMHB4O292ZXJmbG93OiBoaWRkZW5cIj5cbiAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogNTBweDtoZWlnaHQ6IDEwMHB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtcIiBpZD1cImQ2XCI+XG4gICDlhYPntKAgNiDpq5ggMTAwcHgg5a69IDUwcHg8YnIvPlxuICAgPC9kaXY+XG4gICA8L2Rpdj5cbiAgICovXG4gIC8vIGVsZW1lbnQub2Zmc2V0UGFyZW50IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIGluIGllNyBhbmQgYmVsb3cuIFJldHVybiBwYXJlbnQgd2l0aCBsYXlvdXQhXG4gIC8vICBJbiBvdGhlciBicm93c2VycyBpdCBvbmx5IGluY2x1ZGVzIGVsZW1lbnRzIHdpdGggcG9zaXRpb24gYWJzb2x1dGUsIHJlbGF0aXZlIG9yXG4gIC8vIGZpeGVkLCBub3QgZWxlbWVudHMgd2l0aCBvdmVyZmxvdyBzZXQgdG8gYXV0byBvciBzY3JvbGwuXG4gIC8vICAgICAgICBpZiAoVUEuaWUgJiYgaWVNb2RlIDwgOCkge1xuICAvLyAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbiAgLy8gICAgICAgIH1cbiAgLy8g57uf5LiA55qEIG9mZnNldFBhcmVudCDmlrnms5VcbiAgdmFyIGRvYyA9IHV0aWxzLmdldERvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgYm9keSA9IGRvYy5ib2R5O1xuICB2YXIgcGFyZW50ID0gdm9pZCAwO1xuICB2YXIgcG9zaXRpb25TdHlsZSA9IHV0aWxzLmNzcyhlbGVtZW50LCAncG9zaXRpb24nKTtcbiAgdmFyIHNraXBTdGF0aWMgPSBwb3NpdGlvblN0eWxlID09PSAnZml4ZWQnIHx8IHBvc2l0aW9uU3R5bGUgPT09ICdhYnNvbHV0ZSc7XG5cbiAgaWYgKCFza2lwU3RhdGljKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2h0bWwnID8gbnVsbCA6IGVsZW1lbnQucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGZvciAocGFyZW50ID0gZWxlbWVudC5wYXJlbnROb2RlOyBwYXJlbnQgJiYgcGFyZW50ICE9PSBib2R5OyBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZSkge1xuICAgIHBvc2l0aW9uU3R5bGUgPSB1dGlscy5jc3MocGFyZW50LCAncG9zaXRpb24nKTtcbiAgICBpZiAocG9zaXRpb25TdHlsZSAhPT0gJ3N0YXRpYycpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRPZmZzZXRQYXJlbnQ7IiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tICcuL2dldE9mZnNldFBhcmVudCc7XG5pbXBvcnQgaXNBbmNlc3RvckZpeGVkIGZyb20gJy4vaXNBbmNlc3RvckZpeGVkJztcblxuLyoqXG4gKiDojrflvpflhYPntKDnmoTmmL7npLrpg6jliIbnmoTljLrln59cbiAqL1xuZnVuY3Rpb24gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KGVsZW1lbnQpIHtcbiAgdmFyIHZpc2libGVSZWN0ID0ge1xuICAgIGxlZnQ6IDAsXG4gICAgcmlnaHQ6IEluZmluaXR5LFxuICAgIHRvcDogMCxcbiAgICBib3R0b206IEluZmluaXR5XG4gIH07XG4gIHZhciBlbCA9IGdldE9mZnNldFBhcmVudChlbGVtZW50KTtcbiAgdmFyIGRvYyA9IHV0aWxzLmdldERvY3VtZW50KGVsZW1lbnQpO1xuICB2YXIgd2luID0gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gIHZhciBib2R5ID0gZG9jLmJvZHk7XG4gIHZhciBkb2N1bWVudEVsZW1lbnQgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuXG4gIC8vIERldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgdmlzaWJsZSByZWN0IGJ5IGNsaW1iaW5nIHRoZSBkb20gYWNjb3VudGluZyBmb3JcbiAgLy8gYWxsIHNjcm9sbGFibGUgY29udGFpbmVycy5cbiAgd2hpbGUgKGVsKSB7XG4gICAgLy8gY2xpZW50V2lkdGggaXMgemVybyBmb3IgaW5saW5lIGJsb2NrIGVsZW1lbnRzIGluIGllLlxuICAgIGlmICgobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdNU0lFJykgPT09IC0xIHx8IGVsLmNsaWVudFdpZHRoICE9PSAwKSAmJlxuICAgIC8vIGJvZHkgbWF5IGhhdmUgb3ZlcmZsb3cgc2V0IG9uIGl0LCB5ZXQgd2Ugc3RpbGwgZ2V0IHRoZSBlbnRpcmVcbiAgICAvLyB2aWV3cG9ydC4gSW4gc29tZSBicm93c2VycywgZWwub2Zmc2V0UGFyZW50IG1heSBiZVxuICAgIC8vIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc28gY2hlY2sgZm9yIHRoYXQgdG9vLlxuICAgIGVsICE9PSBib2R5ICYmIGVsICE9PSBkb2N1bWVudEVsZW1lbnQgJiYgdXRpbHMuY3NzKGVsLCAnb3ZlcmZsb3cnKSAhPT0gJ3Zpc2libGUnKSB7XG4gICAgICB2YXIgcG9zID0gdXRpbHMub2Zmc2V0KGVsKTtcbiAgICAgIC8vIGFkZCBib3JkZXJcbiAgICAgIHBvcy5sZWZ0ICs9IGVsLmNsaWVudExlZnQ7XG4gICAgICBwb3MudG9wICs9IGVsLmNsaWVudFRvcDtcbiAgICAgIHZpc2libGVSZWN0LnRvcCA9IE1hdGgubWF4KHZpc2libGVSZWN0LnRvcCwgcG9zLnRvcCk7XG4gICAgICB2aXNpYmxlUmVjdC5yaWdodCA9IE1hdGgubWluKHZpc2libGVSZWN0LnJpZ2h0LFxuICAgICAgLy8gY29uc2lkZXIgYXJlYSB3aXRob3V0IHNjcm9sbEJhclxuICAgICAgcG9zLmxlZnQgKyBlbC5jbGllbnRXaWR0aCk7XG4gICAgICB2aXNpYmxlUmVjdC5ib3R0b20gPSBNYXRoLm1pbih2aXNpYmxlUmVjdC5ib3R0b20sIHBvcy50b3AgKyBlbC5jbGllbnRIZWlnaHQpO1xuICAgICAgdmlzaWJsZVJlY3QubGVmdCA9IE1hdGgubWF4KHZpc2libGVSZWN0LmxlZnQsIHBvcy5sZWZ0KTtcbiAgICB9IGVsc2UgaWYgKGVsID09PSBib2R5IHx8IGVsID09PSBkb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBlbCA9IGdldE9mZnNldFBhcmVudChlbCk7XG4gIH1cblxuICAvLyBTZXQgZWxlbWVudCBwb3NpdGlvbiB0byBmaXhlZFxuICAvLyBtYWtlIHN1cmUgYWJzb2x1dGUgZWxlbWVudCBpdHNlbGYgZG9uJ3QgYWZmZWN0IGl0J3MgdmlzaWJsZSBhcmVhXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzc2MDFcbiAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBudWxsO1xuICBpZiAoIXV0aWxzLmlzV2luZG93KGVsZW1lbnQpICYmIGVsZW1lbnQubm9kZVR5cGUgIT09IDkpIHtcbiAgICBvcmlnaW5hbFBvc2l0aW9uID0gZWxlbWVudC5zdHlsZS5wb3NpdGlvbjtcbiAgICB2YXIgcG9zaXRpb24gPSB1dGlscy5jc3MoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7XG4gICAgaWYgKHBvc2l0aW9uID09PSAnYWJzb2x1dGUnKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICB9XG4gIH1cblxuICB2YXIgc2Nyb2xsWCA9IHV0aWxzLmdldFdpbmRvd1Njcm9sbExlZnQod2luKTtcbiAgdmFyIHNjcm9sbFkgPSB1dGlscy5nZXRXaW5kb3dTY3JvbGxUb3Aod2luKTtcbiAgdmFyIHZpZXdwb3J0V2lkdGggPSB1dGlscy52aWV3cG9ydFdpZHRoKHdpbik7XG4gIHZhciB2aWV3cG9ydEhlaWdodCA9IHV0aWxzLnZpZXdwb3J0SGVpZ2h0KHdpbik7XG4gIHZhciBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoO1xuICB2YXIgZG9jdW1lbnRIZWlnaHQgPSBkb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuXG4gIC8vIHNjcm9sbFhYWCBvbiBodG1sIGlzIHN5bmMgd2l0aCBib2R5IHdoaWNoIG1lYW5zIG92ZXJmbG93OiBoaWRkZW4gb24gYm9keSBnZXRzIHdyb25nIHNjcm9sbFhYWC5cbiAgLy8gV2Ugc2hvdWxkIGN1dCB0aGlzIG91cnNlbGYuXG4gIHZhciBib2R5U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib2R5KTtcbiAgaWYgKGJvZHlTdHlsZS5vdmVyZmxvd1ggPT09ICdoaWRkZW4nKSB7XG4gICAgZG9jdW1lbnRXaWR0aCA9IHdpbi5pbm5lcldpZHRoO1xuICB9XG4gIGlmIChib2R5U3R5bGUub3ZlcmZsb3dZID09PSAnaGlkZGVuJykge1xuICAgIGRvY3VtZW50SGVpZ2h0ID0gd2luLmlubmVySGVpZ2h0O1xuICB9XG5cbiAgLy8gUmVzZXQgZWxlbWVudCBwb3NpdGlvbiBhZnRlciBjYWxjdWxhdGUgdGhlIHZpc2libGUgYXJlYVxuICBpZiAoZWxlbWVudC5zdHlsZSkge1xuICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSBvcmlnaW5hbFBvc2l0aW9uO1xuICB9XG5cbiAgaWYgKGlzQW5jZXN0b3JGaXhlZChlbGVtZW50KSkge1xuICAgIC8vIENsaXAgYnkgdmlld3BvcnQncyBzaXplLlxuICAgIHZpc2libGVSZWN0LmxlZnQgPSBNYXRoLm1heCh2aXNpYmxlUmVjdC5sZWZ0LCBzY3JvbGxYKTtcbiAgICB2aXNpYmxlUmVjdC50b3AgPSBNYXRoLm1heCh2aXNpYmxlUmVjdC50b3AsIHNjcm9sbFkpO1xuICAgIHZpc2libGVSZWN0LnJpZ2h0ID0gTWF0aC5taW4odmlzaWJsZVJlY3QucmlnaHQsIHNjcm9sbFggKyB2aWV3cG9ydFdpZHRoKTtcbiAgICB2aXNpYmxlUmVjdC5ib3R0b20gPSBNYXRoLm1pbih2aXNpYmxlUmVjdC5ib3R0b20sIHNjcm9sbFkgKyB2aWV3cG9ydEhlaWdodCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ2xpcCBieSBkb2N1bWVudCdzIHNpemUuXG4gICAgdmFyIG1heFZpc2libGVXaWR0aCA9IE1hdGgubWF4KGRvY3VtZW50V2lkdGgsIHNjcm9sbFggKyB2aWV3cG9ydFdpZHRoKTtcbiAgICB2aXNpYmxlUmVjdC5yaWdodCA9IE1hdGgubWluKHZpc2libGVSZWN0LnJpZ2h0LCBtYXhWaXNpYmxlV2lkdGgpO1xuXG4gICAgdmFyIG1heFZpc2libGVIZWlnaHQgPSBNYXRoLm1heChkb2N1bWVudEhlaWdodCwgc2Nyb2xsWSArIHZpZXdwb3J0SGVpZ2h0KTtcbiAgICB2aXNpYmxlUmVjdC5ib3R0b20gPSBNYXRoLm1pbih2aXNpYmxlUmVjdC5ib3R0b20sIG1heFZpc2libGVIZWlnaHQpO1xuICB9XG5cbiAgcmV0dXJuIHZpc2libGVSZWN0LnRvcCA+PSAwICYmIHZpc2libGVSZWN0LmxlZnQgPj0gMCAmJiB2aXNpYmxlUmVjdC5ib3R0b20gPiB2aXNpYmxlUmVjdC50b3AgJiYgdmlzaWJsZVJlY3QucmlnaHQgPiB2aXNpYmxlUmVjdC5sZWZ0ID8gdmlzaWJsZVJlY3QgOiBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQ7IiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0FuY2VzdG9yRml4ZWQoZWxlbWVudCkge1xuICBpZiAodXRpbHMuaXNXaW5kb3coZWxlbWVudCkgfHwgZWxlbWVudC5ub2RlVHlwZSA9PT0gOSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBkb2MgPSB1dGlscy5nZXREb2N1bWVudChlbGVtZW50KTtcbiAgdmFyIGJvZHkgPSBkb2MuYm9keTtcbiAgdmFyIHBhcmVudCA9IG51bGw7XG4gIGZvciAocGFyZW50ID0gZWxlbWVudC5wYXJlbnROb2RlOyBwYXJlbnQgJiYgcGFyZW50ICE9PSBib2R5OyBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZSkge1xuICAgIHZhciBwb3NpdGlvblN0eWxlID0gdXRpbHMuY3NzKHBhcmVudCwgJ3Bvc2l0aW9uJyk7XG4gICAgaWYgKHBvc2l0aW9uU3R5bGUgPT09ICdmaXhlZCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59IiwiaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBhZGp1c3RGb3JWaWV3cG9ydChlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0LCBvdmVyZmxvdykge1xuICB2YXIgcG9zID0gdXRpbHMuY2xvbmUoZWxGdXR1cmVQb3MpO1xuICB2YXIgc2l6ZSA9IHtcbiAgICB3aWR0aDogZWxSZWdpb24ud2lkdGgsXG4gICAgaGVpZ2h0OiBlbFJlZ2lvbi5oZWlnaHRcbiAgfTtcblxuICBpZiAob3ZlcmZsb3cuYWRqdXN0WCAmJiBwb3MubGVmdCA8IHZpc2libGVSZWN0LmxlZnQpIHtcbiAgICBwb3MubGVmdCA9IHZpc2libGVSZWN0LmxlZnQ7XG4gIH1cblxuICAvLyBMZWZ0IGVkZ2UgaW5zaWRlIGFuZCByaWdodCBlZGdlIG91dHNpZGUgdmlld3BvcnQsIHRyeSB0byByZXNpemUgaXQuXG4gIGlmIChvdmVyZmxvdy5yZXNpemVXaWR0aCAmJiBwb3MubGVmdCA+PSB2aXNpYmxlUmVjdC5sZWZ0ICYmIHBvcy5sZWZ0ICsgc2l6ZS53aWR0aCA+IHZpc2libGVSZWN0LnJpZ2h0KSB7XG4gICAgc2l6ZS53aWR0aCAtPSBwb3MubGVmdCArIHNpemUud2lkdGggLSB2aXNpYmxlUmVjdC5yaWdodDtcbiAgfVxuXG4gIC8vIFJpZ2h0IGVkZ2Ugb3V0c2lkZSB2aWV3cG9ydCwgdHJ5IHRvIG1vdmUgaXQuXG4gIGlmIChvdmVyZmxvdy5hZGp1c3RYICYmIHBvcy5sZWZ0ICsgc2l6ZS53aWR0aCA+IHZpc2libGVSZWN0LnJpZ2h0KSB7XG4gICAgLy8g5L+d6K+B5bem6L6555WM5ZKM5Y+v6KeG5Yy65Z+f5bem6L6555WM5a+56b2QXG4gICAgcG9zLmxlZnQgPSBNYXRoLm1heCh2aXNpYmxlUmVjdC5yaWdodCAtIHNpemUud2lkdGgsIHZpc2libGVSZWN0LmxlZnQpO1xuICB9XG5cbiAgLy8gVG9wIGVkZ2Ugb3V0c2lkZSB2aWV3cG9ydCwgdHJ5IHRvIG1vdmUgaXQuXG4gIGlmIChvdmVyZmxvdy5hZGp1c3RZICYmIHBvcy50b3AgPCB2aXNpYmxlUmVjdC50b3ApIHtcbiAgICBwb3MudG9wID0gdmlzaWJsZVJlY3QudG9wO1xuICB9XG5cbiAgLy8gVG9wIGVkZ2UgaW5zaWRlIGFuZCBib3R0b20gZWRnZSBvdXRzaWRlIHZpZXdwb3J0LCB0cnkgdG8gcmVzaXplIGl0LlxuICBpZiAob3ZlcmZsb3cucmVzaXplSGVpZ2h0ICYmIHBvcy50b3AgPj0gdmlzaWJsZVJlY3QudG9wICYmIHBvcy50b3AgKyBzaXplLmhlaWdodCA+IHZpc2libGVSZWN0LmJvdHRvbSkge1xuICAgIHNpemUuaGVpZ2h0IC09IHBvcy50b3AgKyBzaXplLmhlaWdodCAtIHZpc2libGVSZWN0LmJvdHRvbTtcbiAgfVxuXG4gIC8vIEJvdHRvbSBlZGdlIG91dHNpZGUgdmlld3BvcnQsIHRyeSB0byBtb3ZlIGl0LlxuICBpZiAob3ZlcmZsb3cuYWRqdXN0WSAmJiBwb3MudG9wICsgc2l6ZS5oZWlnaHQgPiB2aXNpYmxlUmVjdC5ib3R0b20pIHtcbiAgICAvLyDkv53or4HkuIrovrnnlYzlkozlj6/op4bljLrln5/kuIrovrnnlYzlr7npvZBcbiAgICBwb3MudG9wID0gTWF0aC5tYXgodmlzaWJsZVJlY3QuYm90dG9tIC0gc2l6ZS5oZWlnaHQsIHZpc2libGVSZWN0LnRvcCk7XG4gIH1cblxuICByZXR1cm4gdXRpbHMubWl4KHBvcywgc2l6ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFkanVzdEZvclZpZXdwb3J0OyIsImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZ2V0UmVnaW9uKG5vZGUpIHtcbiAgdmFyIG9mZnNldCA9IHZvaWQgMDtcbiAgdmFyIHcgPSB2b2lkIDA7XG4gIHZhciBoID0gdm9pZCAwO1xuICBpZiAoIXV0aWxzLmlzV2luZG93KG5vZGUpICYmIG5vZGUubm9kZVR5cGUgIT09IDkpIHtcbiAgICBvZmZzZXQgPSB1dGlscy5vZmZzZXQobm9kZSk7XG4gICAgdyA9IHV0aWxzLm91dGVyV2lkdGgobm9kZSk7XG4gICAgaCA9IHV0aWxzLm91dGVySGVpZ2h0KG5vZGUpO1xuICB9IGVsc2Uge1xuICAgIHZhciB3aW4gPSB1dGlscy5nZXRXaW5kb3cobm9kZSk7XG4gICAgb2Zmc2V0ID0ge1xuICAgICAgbGVmdDogdXRpbHMuZ2V0V2luZG93U2Nyb2xsTGVmdCh3aW4pLFxuICAgICAgdG9wOiB1dGlscy5nZXRXaW5kb3dTY3JvbGxUb3Aod2luKVxuICAgIH07XG4gICAgdyA9IHV0aWxzLnZpZXdwb3J0V2lkdGgod2luKTtcbiAgICBoID0gdXRpbHMudmlld3BvcnRIZWlnaHQod2luKTtcbiAgfVxuICBvZmZzZXQud2lkdGggPSB3O1xuICBvZmZzZXQuaGVpZ2h0ID0gaDtcbiAgcmV0dXJuIG9mZnNldDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0UmVnaW9uOyIsIi8qKlxuICog6I635Y+WIG5vZGUg5LiK55qEIGFsaWduIOWvuem9kOeCuSDnm7jlr7nkuo7pobXpnaLnmoTlnZDmoIdcbiAqL1xuXG5mdW5jdGlvbiBnZXRBbGlnbk9mZnNldChyZWdpb24sIGFsaWduKSB7XG4gIHZhciBWID0gYWxpZ24uY2hhckF0KDApO1xuICB2YXIgSCA9IGFsaWduLmNoYXJBdCgxKTtcbiAgdmFyIHcgPSByZWdpb24ud2lkdGg7XG4gIHZhciBoID0gcmVnaW9uLmhlaWdodDtcblxuICB2YXIgeCA9IHJlZ2lvbi5sZWZ0O1xuICB2YXIgeSA9IHJlZ2lvbi50b3A7XG5cbiAgaWYgKFYgPT09ICdjJykge1xuICAgIHkgKz0gaCAvIDI7XG4gIH0gZWxzZSBpZiAoViA9PT0gJ2InKSB7XG4gICAgeSArPSBoO1xuICB9XG5cbiAgaWYgKEggPT09ICdjJykge1xuICAgIHggKz0gdyAvIDI7XG4gIH0gZWxzZSBpZiAoSCA9PT0gJ3InKSB7XG4gICAgeCArPSB3O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBsZWZ0OiB4LFxuICAgIHRvcDogeVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRBbGlnbk9mZnNldDsiLCJpbXBvcnQgZ2V0QWxpZ25PZmZzZXQgZnJvbSAnLi9nZXRBbGlnbk9mZnNldCc7XG5cbmZ1bmN0aW9uIGdldEVsRnV0dXJlUG9zKGVsUmVnaW9uLCByZWZOb2RlUmVnaW9uLCBwb2ludHMsIG9mZnNldCwgdGFyZ2V0T2Zmc2V0KSB7XG4gIHZhciBwMSA9IGdldEFsaWduT2Zmc2V0KHJlZk5vZGVSZWdpb24sIHBvaW50c1sxXSk7XG4gIHZhciBwMiA9IGdldEFsaWduT2Zmc2V0KGVsUmVnaW9uLCBwb2ludHNbMF0pO1xuICB2YXIgZGlmZiA9IFtwMi5sZWZ0IC0gcDEubGVmdCwgcDIudG9wIC0gcDEudG9wXTtcblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IE1hdGgucm91bmQoZWxSZWdpb24ubGVmdCAtIGRpZmZbMF0gKyBvZmZzZXRbMF0gLSB0YXJnZXRPZmZzZXRbMF0pLFxuICAgIHRvcDogTWF0aC5yb3VuZChlbFJlZ2lvbi50b3AgLSBkaWZmWzFdICsgb2Zmc2V0WzFdIC0gdGFyZ2V0T2Zmc2V0WzFdKVxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRFbEZ1dHVyZVBvczsiLCIvKipcbiAqIGFsaWduIGRvbSBub2RlIGZsZXhpYmx5XG4gKiBAYXV0aG9yIHlpbWluZ2hlQGdtYWlsLmNvbVxuICovXG5cbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50IGZyb20gJy4uL2dldFZpc2libGVSZWN0Rm9yRWxlbWVudCc7XG5pbXBvcnQgYWRqdXN0Rm9yVmlld3BvcnQgZnJvbSAnLi4vYWRqdXN0Rm9yVmlld3BvcnQnO1xuaW1wb3J0IGdldFJlZ2lvbiBmcm9tICcuLi9nZXRSZWdpb24nO1xuaW1wb3J0IGdldEVsRnV0dXJlUG9zIGZyb20gJy4uL2dldEVsRnV0dXJlUG9zJztcblxuLy8gaHR0cDovL3lpbWluZ2hlLml0ZXllLmNvbS9ibG9nLzExMjQ3MjBcblxuZnVuY3Rpb24gaXNGYWlsWChlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSB7XG4gIHJldHVybiBlbEZ1dHVyZVBvcy5sZWZ0IDwgdmlzaWJsZVJlY3QubGVmdCB8fCBlbEZ1dHVyZVBvcy5sZWZ0ICsgZWxSZWdpb24ud2lkdGggPiB2aXNpYmxlUmVjdC5yaWdodDtcbn1cblxuZnVuY3Rpb24gaXNGYWlsWShlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSB7XG4gIHJldHVybiBlbEZ1dHVyZVBvcy50b3AgPCB2aXNpYmxlUmVjdC50b3AgfHwgZWxGdXR1cmVQb3MudG9wICsgZWxSZWdpb24uaGVpZ2h0ID4gdmlzaWJsZVJlY3QuYm90dG9tO1xufVxuXG5mdW5jdGlvbiBpc0NvbXBsZXRlRmFpbFgoZWxGdXR1cmVQb3MsIGVsUmVnaW9uLCB2aXNpYmxlUmVjdCkge1xuICByZXR1cm4gZWxGdXR1cmVQb3MubGVmdCA+IHZpc2libGVSZWN0LnJpZ2h0IHx8IGVsRnV0dXJlUG9zLmxlZnQgKyBlbFJlZ2lvbi53aWR0aCA8IHZpc2libGVSZWN0LmxlZnQ7XG59XG5cbmZ1bmN0aW9uIGlzQ29tcGxldGVGYWlsWShlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSB7XG4gIHJldHVybiBlbEZ1dHVyZVBvcy50b3AgPiB2aXNpYmxlUmVjdC5ib3R0b20gfHwgZWxGdXR1cmVQb3MudG9wICsgZWxSZWdpb24uaGVpZ2h0IDwgdmlzaWJsZVJlY3QudG9wO1xufVxuXG5mdW5jdGlvbiBmbGlwKHBvaW50cywgcmVnLCBtYXApIHtcbiAgdmFyIHJldCA9IFtdO1xuICB1dGlscy5lYWNoKHBvaW50cywgZnVuY3Rpb24gKHApIHtcbiAgICByZXQucHVzaChwLnJlcGxhY2UocmVnLCBmdW5jdGlvbiAobSkge1xuICAgICAgcmV0dXJuIG1hcFttXTtcbiAgICB9KSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBmbGlwT2Zmc2V0KG9mZnNldCwgaW5kZXgpIHtcbiAgb2Zmc2V0W2luZGV4XSA9IC1vZmZzZXRbaW5kZXhdO1xuICByZXR1cm4gb2Zmc2V0O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0T2Zmc2V0KHN0ciwgb2Zmc2V0TGVuKSB7XG4gIHZhciBuID0gdm9pZCAwO1xuICBpZiAoLyUkLy50ZXN0KHN0cikpIHtcbiAgICBuID0gcGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMSksIDEwKSAvIDEwMCAqIG9mZnNldExlbjtcbiAgfSBlbHNlIHtcbiAgICBuID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gIH1cbiAgcmV0dXJuIG4gfHwgMDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplT2Zmc2V0KG9mZnNldCwgZWwpIHtcbiAgb2Zmc2V0WzBdID0gY29udmVydE9mZnNldChvZmZzZXRbMF0sIGVsLndpZHRoKTtcbiAgb2Zmc2V0WzFdID0gY29udmVydE9mZnNldChvZmZzZXRbMV0sIGVsLmhlaWdodCk7XG59XG5cbi8qKlxuICogQHBhcmFtIGVsXG4gKiBAcGFyYW0gdGd0UmVnaW9uIOWPgueFp+iKgueCueaJgOWNoOeahOWMuuWfnzogeyBsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQgfVxuICogQHBhcmFtIGFsaWduXG4gKi9cbmZ1bmN0aW9uIGRvQWxpZ24oZWwsIHRndFJlZ2lvbiwgYWxpZ24sIGlzVGd0UmVnaW9uVmlzaWJsZSkge1xuICB2YXIgcG9pbnRzID0gYWxpZ24ucG9pbnRzO1xuICB2YXIgb2Zmc2V0ID0gYWxpZ24ub2Zmc2V0IHx8IFswLCAwXTtcbiAgdmFyIHRhcmdldE9mZnNldCA9IGFsaWduLnRhcmdldE9mZnNldCB8fCBbMCwgMF07XG4gIHZhciBvdmVyZmxvdyA9IGFsaWduLm92ZXJmbG93O1xuICB2YXIgc291cmNlID0gYWxpZ24uc291cmNlIHx8IGVsO1xuICBvZmZzZXQgPSBbXS5jb25jYXQob2Zmc2V0KTtcbiAgdGFyZ2V0T2Zmc2V0ID0gW10uY29uY2F0KHRhcmdldE9mZnNldCk7XG4gIG92ZXJmbG93ID0gb3ZlcmZsb3cgfHwge307XG4gIHZhciBuZXdPdmVyZmxvd0NmZyA9IHt9O1xuICB2YXIgZmFpbCA9IDA7XG4gIC8vIOW9k+WJjeiKgueCueWPr+S7peiiq+aUvue9rueahOaYvuekuuWMuuWfn1xuICB2YXIgdmlzaWJsZVJlY3QgPSBnZXRWaXNpYmxlUmVjdEZvckVsZW1lbnQoc291cmNlKTtcbiAgLy8g5b2T5YmN6IqC54K55omA5Y2g55qE5Yy65Z+fLCBsZWZ0L3RvcC93aWR0aC9oZWlnaHRcbiAgdmFyIGVsUmVnaW9uID0gZ2V0UmVnaW9uKHNvdXJjZSk7XG4gIC8vIOWwhiBvZmZzZXQg6L2s5o2i5oiQ5pWw5YC877yM5pSv5oyB55m+5YiG5q+UXG4gIG5vcm1hbGl6ZU9mZnNldChvZmZzZXQsIGVsUmVnaW9uKTtcbiAgbm9ybWFsaXplT2Zmc2V0KHRhcmdldE9mZnNldCwgdGd0UmVnaW9uKTtcbiAgLy8g5b2T5YmN6IqC54K55bCG6KaB6KKr5pS+572u55qE5L2N572uXG4gIHZhciBlbEZ1dHVyZVBvcyA9IGdldEVsRnV0dXJlUG9zKGVsUmVnaW9uLCB0Z3RSZWdpb24sIHBvaW50cywgb2Zmc2V0LCB0YXJnZXRPZmZzZXQpO1xuICAvLyDlvZPliY3oioLngrnlsIbopoHmiYDlpITnmoTljLrln59cbiAgdmFyIG5ld0VsUmVnaW9uID0gdXRpbHMubWVyZ2UoZWxSZWdpb24sIGVsRnV0dXJlUG9zKTtcblxuICAvLyDlpoLmnpzlj6/op4bljLrln5/kuI3og73lrozlhajmlL7nva7lvZPliY3oioLngrnml7blhYHorrjosIPmlbRcbiAgaWYgKHZpc2libGVSZWN0ICYmIChvdmVyZmxvdy5hZGp1c3RYIHx8IG92ZXJmbG93LmFkanVzdFkpICYmIGlzVGd0UmVnaW9uVmlzaWJsZSkge1xuICAgIGlmIChvdmVyZmxvdy5hZGp1c3RYKSB7XG4gICAgICAvLyDlpoLmnpzmqKrlkJHkuI3og73mlL7kuItcbiAgICAgIGlmIChpc0ZhaWxYKGVsRnV0dXJlUG9zLCBlbFJlZ2lvbiwgdmlzaWJsZVJlY3QpKSB7XG4gICAgICAgIC8vIOWvuem9kOS9jee9ruWPjeS4i1xuICAgICAgICB2YXIgbmV3UG9pbnRzID0gZmxpcChwb2ludHMsIC9bbHJdL2lnLCB7XG4gICAgICAgICAgbDogJ3InLFxuICAgICAgICAgIHI6ICdsJ1xuICAgICAgICB9KTtcbiAgICAgICAgLy8g5YGP56e76YeP5Lmf5Y+N5LiLXG4gICAgICAgIHZhciBuZXdPZmZzZXQgPSBmbGlwT2Zmc2V0KG9mZnNldCwgMCk7XG4gICAgICAgIHZhciBuZXdUYXJnZXRPZmZzZXQgPSBmbGlwT2Zmc2V0KHRhcmdldE9mZnNldCwgMCk7XG4gICAgICAgIHZhciBuZXdFbEZ1dHVyZVBvcyA9IGdldEVsRnV0dXJlUG9zKGVsUmVnaW9uLCB0Z3RSZWdpb24sIG5ld1BvaW50cywgbmV3T2Zmc2V0LCBuZXdUYXJnZXRPZmZzZXQpO1xuXG4gICAgICAgIGlmICghaXNDb21wbGV0ZUZhaWxYKG5ld0VsRnV0dXJlUG9zLCBlbFJlZ2lvbiwgdmlzaWJsZVJlY3QpKSB7XG4gICAgICAgICAgZmFpbCA9IDE7XG4gICAgICAgICAgcG9pbnRzID0gbmV3UG9pbnRzO1xuICAgICAgICAgIG9mZnNldCA9IG5ld09mZnNldDtcbiAgICAgICAgICB0YXJnZXRPZmZzZXQgPSBuZXdUYXJnZXRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3ZlcmZsb3cuYWRqdXN0WSkge1xuICAgICAgLy8g5aaC5p6c57q15ZCR5LiN6IO95pS+5LiLXG4gICAgICBpZiAoaXNGYWlsWShlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KSkge1xuICAgICAgICAvLyDlr7npvZDkvY3nva7lj43kuItcbiAgICAgICAgdmFyIF9uZXdQb2ludHMgPSBmbGlwKHBvaW50cywgL1t0Yl0vaWcsIHtcbiAgICAgICAgICB0OiAnYicsXG4gICAgICAgICAgYjogJ3QnXG4gICAgICAgIH0pO1xuICAgICAgICAvLyDlgY/np7vph4/kuZ/lj43kuItcbiAgICAgICAgdmFyIF9uZXdPZmZzZXQgPSBmbGlwT2Zmc2V0KG9mZnNldCwgMSk7XG4gICAgICAgIHZhciBfbmV3VGFyZ2V0T2Zmc2V0ID0gZmxpcE9mZnNldCh0YXJnZXRPZmZzZXQsIDEpO1xuICAgICAgICB2YXIgX25ld0VsRnV0dXJlUG9zID0gZ2V0RWxGdXR1cmVQb3MoZWxSZWdpb24sIHRndFJlZ2lvbiwgX25ld1BvaW50cywgX25ld09mZnNldCwgX25ld1RhcmdldE9mZnNldCk7XG5cbiAgICAgICAgaWYgKCFpc0NvbXBsZXRlRmFpbFkoX25ld0VsRnV0dXJlUG9zLCBlbFJlZ2lvbiwgdmlzaWJsZVJlY3QpKSB7XG4gICAgICAgICAgZmFpbCA9IDE7XG4gICAgICAgICAgcG9pbnRzID0gX25ld1BvaW50cztcbiAgICAgICAgICBvZmZzZXQgPSBfbmV3T2Zmc2V0O1xuICAgICAgICAgIHRhcmdldE9mZnNldCA9IF9uZXdUYXJnZXRPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDlpoLmnpzlpLHotKXvvIzph43mlrDorqHnrpflvZPliY3oioLngrnlsIbopoHooqvmlL7nva7nmoTkvY3nva5cbiAgICBpZiAoZmFpbCkge1xuICAgICAgZWxGdXR1cmVQb3MgPSBnZXRFbEZ1dHVyZVBvcyhlbFJlZ2lvbiwgdGd0UmVnaW9uLCBwb2ludHMsIG9mZnNldCwgdGFyZ2V0T2Zmc2V0KTtcbiAgICAgIHV0aWxzLm1peChuZXdFbFJlZ2lvbiwgZWxGdXR1cmVQb3MpO1xuICAgIH1cbiAgICB2YXIgaXNTdGlsbEZhaWxYID0gaXNGYWlsWChlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KTtcbiAgICB2YXIgaXNTdGlsbEZhaWxZID0gaXNGYWlsWShlbEZ1dHVyZVBvcywgZWxSZWdpb24sIHZpc2libGVSZWN0KTtcbiAgICAvLyDmo4Dmn6Xlj43kuIvlkI7nmoTkvY3nva7mmK/lkKblj6/ku6XmlL7kuIvkuobvvIzlpoLmnpzku43nhLbmlL7kuI3kuIvvvJpcbiAgICAvLyAxLiDlpI3ljp/kv67mlLnov4fnmoTlrprkvY3lj4LmlbBcbiAgICBpZiAoaXNTdGlsbEZhaWxYIHx8IGlzU3RpbGxGYWlsWSkge1xuICAgICAgcG9pbnRzID0gYWxpZ24ucG9pbnRzO1xuICAgICAgb2Zmc2V0ID0gYWxpZ24ub2Zmc2V0IHx8IFswLCAwXTtcbiAgICAgIHRhcmdldE9mZnNldCA9IGFsaWduLnRhcmdldE9mZnNldCB8fCBbMCwgMF07XG4gICAgfVxuICAgIC8vIDIuIOWPquacieaMh+WumuS6huWPr+S7peiwg+aVtOW9k+WJjeaWueWQkeaJjeiwg+aVtFxuICAgIG5ld092ZXJmbG93Q2ZnLmFkanVzdFggPSBvdmVyZmxvdy5hZGp1c3RYICYmIGlzU3RpbGxGYWlsWDtcbiAgICBuZXdPdmVyZmxvd0NmZy5hZGp1c3RZID0gb3ZlcmZsb3cuYWRqdXN0WSAmJiBpc1N0aWxsRmFpbFk7XG5cbiAgICAvLyDnoa7lrp7opoHosIPmlbTvvIznlJroh7Plj6/og73kvJrosIPmlbTpq5jluqblrr3luqZcbiAgICBpZiAobmV3T3ZlcmZsb3dDZmcuYWRqdXN0WCB8fCBuZXdPdmVyZmxvd0NmZy5hZGp1c3RZKSB7XG4gICAgICBuZXdFbFJlZ2lvbiA9IGFkanVzdEZvclZpZXdwb3J0KGVsRnV0dXJlUG9zLCBlbFJlZ2lvbiwgdmlzaWJsZVJlY3QsIG5ld092ZXJmbG93Q2ZnKTtcbiAgICB9XG4gIH1cblxuICAvLyBuZWVkIGp1ZGdlIHRvIGluIGNhc2Ugc2V0IGZpeGVkIHdpdGggaW4gY3NzIG9uIGhlaWdodCBhdXRvIGVsZW1lbnRcbiAgaWYgKG5ld0VsUmVnaW9uLndpZHRoICE9PSBlbFJlZ2lvbi53aWR0aCkge1xuICAgIHV0aWxzLmNzcyhzb3VyY2UsICd3aWR0aCcsIHV0aWxzLndpZHRoKHNvdXJjZSkgKyBuZXdFbFJlZ2lvbi53aWR0aCAtIGVsUmVnaW9uLndpZHRoKTtcbiAgfVxuXG4gIGlmIChuZXdFbFJlZ2lvbi5oZWlnaHQgIT09IGVsUmVnaW9uLmhlaWdodCkge1xuICAgIHV0aWxzLmNzcyhzb3VyY2UsICdoZWlnaHQnLCB1dGlscy5oZWlnaHQoc291cmNlKSArIG5ld0VsUmVnaW9uLmhlaWdodCAtIGVsUmVnaW9uLmhlaWdodCk7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20va2lzc3l0ZWFtL2tpc3N5L2lzc3Vlcy8xOTBcbiAgLy8g55u45a+55LqO5bGP5bmV5L2N572u5rKh5Y+Y77yM6ICMIGxlZnQvdG9wIOWPmOS6hlxuICAvLyDkvovlpoIgPGRpdiAncmVsYXRpdmUnPjxlbCBhYnNvbHV0ZT48L2Rpdj5cbiAgdXRpbHMub2Zmc2V0KHNvdXJjZSwge1xuICAgIGxlZnQ6IG5ld0VsUmVnaW9uLmxlZnQsXG4gICAgdG9wOiBuZXdFbFJlZ2lvbi50b3BcbiAgfSwge1xuICAgIHVzZUNzc1JpZ2h0OiBhbGlnbi51c2VDc3NSaWdodCxcbiAgICB1c2VDc3NCb3R0b206IGFsaWduLnVzZUNzc0JvdHRvbSxcbiAgICB1c2VDc3NUcmFuc2Zvcm06IGFsaWduLnVzZUNzc1RyYW5zZm9ybSxcbiAgICBpZ25vcmVTaGFrZTogYWxpZ24uaWdub3JlU2hha2VcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBwb2ludHM6IHBvaW50cyxcbiAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICB0YXJnZXRPZmZzZXQ6IHRhcmdldE9mZnNldCxcbiAgICBvdmVyZmxvdzogbmV3T3ZlcmZsb3dDZmdcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZG9BbGlnbjtcbi8qKlxuICogIDIwMTItMDQtMjYgeWltaW5naGVAZ21haWwuY29tXG4gKiAgIC0g5LyY5YyW5pm66IO95a+56b2Q566X5rOVXG4gKiAgIC0g5oWO55SoIHJlc2l6ZVhYXG4gKlxuICogIDIwMTEtMDctMTMgeWltaW5naGVAZ21haWwuY29tIG5vdGU6XG4gKiAgIC0g5aKe5Yqg5pm66IO95a+56b2Q77yM5Lul5Y+K5aSn5bCP6LCD5pW06YCJ6aG5XG4gKiovIiwiaW1wb3J0IGRvQWxpZ24gZnJvbSAnLi9hbGlnbic7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gJy4uL2dldE9mZnNldFBhcmVudCc7XG5pbXBvcnQgZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50IGZyb20gJy4uL2dldFZpc2libGVSZWN0Rm9yRWxlbWVudCc7XG5pbXBvcnQgZ2V0UmVnaW9uIGZyb20gJy4uL2dldFJlZ2lvbic7XG5cbmZ1bmN0aW9uIGlzT3V0T2ZWaXNpYmxlUmVjdCh0YXJnZXQpIHtcbiAgdmFyIHZpc2libGVSZWN0ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50KHRhcmdldCk7XG4gIHZhciB0YXJnZXRSZWdpb24gPSBnZXRSZWdpb24odGFyZ2V0KTtcblxuICByZXR1cm4gIXZpc2libGVSZWN0IHx8IHRhcmdldFJlZ2lvbi5sZWZ0ICsgdGFyZ2V0UmVnaW9uLndpZHRoIDw9IHZpc2libGVSZWN0LmxlZnQgfHwgdGFyZ2V0UmVnaW9uLnRvcCArIHRhcmdldFJlZ2lvbi5oZWlnaHQgPD0gdmlzaWJsZVJlY3QudG9wIHx8IHRhcmdldFJlZ2lvbi5sZWZ0ID49IHZpc2libGVSZWN0LnJpZ2h0IHx8IHRhcmdldFJlZ2lvbi50b3AgPj0gdmlzaWJsZVJlY3QuYm90dG9tO1xufVxuXG5mdW5jdGlvbiBhbGlnbkVsZW1lbnQoZWwsIHJlZk5vZGUsIGFsaWduKSB7XG4gIHZhciB0YXJnZXQgPSBhbGlnbi50YXJnZXQgfHwgcmVmTm9kZTtcbiAgdmFyIHJlZk5vZGVSZWdpb24gPSBnZXRSZWdpb24odGFyZ2V0KTtcblxuICB2YXIgaXNUYXJnZXROb3RPdXRPZlZpc2libGUgPSAhaXNPdXRPZlZpc2libGVSZWN0KHRhcmdldCk7XG5cbiAgcmV0dXJuIGRvQWxpZ24oZWwsIHJlZk5vZGVSZWdpb24sIGFsaWduLCBpc1RhcmdldE5vdE91dE9mVmlzaWJsZSk7XG59XG5cbmFsaWduRWxlbWVudC5fX2dldE9mZnNldFBhcmVudCA9IGdldE9mZnNldFBhcmVudDtcblxuYWxpZ25FbGVtZW50Ll9fZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50ID0gZ2V0VmlzaWJsZVJlY3RGb3JFbGVtZW50O1xuXG5leHBvcnQgZGVmYXVsdCBhbGlnbkVsZW1lbnQ7IiwidmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBkb0FsaWduIGZyb20gJy4vYWxpZ24nO1xuXG4vKipcbiAqIGB0Z3RQb2ludGA6IHsgcGFnZVgsIHBhZ2VZIH0gb3IgeyBjbGllbnRYLCBjbGllbnRZIH0uXG4gKiBJZiBjbGllbnQgcG9zaXRpb24gcHJvdmlkZWQsIHdpbGwgaW50ZXJuYWwgY29udmVydCB0byBwYWdlIHBvc2l0aW9uLlxuICovXG5cbmZ1bmN0aW9uIGFsaWduUG9pbnQoZWwsIHRndFBvaW50LCBhbGlnbikge1xuICB2YXIgcGFnZVggPSB2b2lkIDA7XG4gIHZhciBwYWdlWSA9IHZvaWQgMDtcblxuICB2YXIgZG9jID0gdXRpbHMuZ2V0RG9jdW1lbnQoZWwpO1xuICB2YXIgd2luID0gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG5cbiAgdmFyIHNjcm9sbFggPSB1dGlscy5nZXRXaW5kb3dTY3JvbGxMZWZ0KHdpbik7XG4gIHZhciBzY3JvbGxZID0gdXRpbHMuZ2V0V2luZG93U2Nyb2xsVG9wKHdpbik7XG4gIHZhciB2aWV3cG9ydFdpZHRoID0gdXRpbHMudmlld3BvcnRXaWR0aCh3aW4pO1xuICB2YXIgdmlld3BvcnRIZWlnaHQgPSB1dGlscy52aWV3cG9ydEhlaWdodCh3aW4pO1xuXG4gIGlmICgncGFnZVgnIGluIHRndFBvaW50KSB7XG4gICAgcGFnZVggPSB0Z3RQb2ludC5wYWdlWDtcbiAgfSBlbHNlIHtcbiAgICBwYWdlWCA9IHNjcm9sbFggKyB0Z3RQb2ludC5jbGllbnRYO1xuICB9XG5cbiAgaWYgKCdwYWdlWScgaW4gdGd0UG9pbnQpIHtcbiAgICBwYWdlWSA9IHRndFBvaW50LnBhZ2VZO1xuICB9IGVsc2Uge1xuICAgIHBhZ2VZID0gc2Nyb2xsWSArIHRndFBvaW50LmNsaWVudFk7XG4gIH1cblxuICB2YXIgdGd0UmVnaW9uID0ge1xuICAgIGxlZnQ6IHBhZ2VYLFxuICAgIHRvcDogcGFnZVksXG4gICAgd2lkdGg6IDAsXG4gICAgaGVpZ2h0OiAwXG4gIH07XG5cbiAgdmFyIHBvaW50SW5WaWV3ID0gcGFnZVggPj0gMCAmJiBwYWdlWCA8PSBzY3JvbGxYICsgdmlld3BvcnRXaWR0aCAmJiBwYWdlWSA+PSAwICYmIHBhZ2VZIDw9IHNjcm9sbFkgKyB2aWV3cG9ydEhlaWdodDtcblxuICAvLyBQcm92aWRlIGRlZmF1bHQgdGFyZ2V0IHBvaW50XG4gIHZhciBwb2ludHMgPSBbYWxpZ24ucG9pbnRzWzBdLCAnY2MnXTtcblxuICByZXR1cm4gZG9BbGlnbihlbCwgdGd0UmVnaW9uLCBfZXh0ZW5kcyh7fSwgYWxpZ24sIHsgcG9pbnRzOiBwb2ludHMgfSksIHBvaW50SW5WaWV3KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYWxpZ25Qb2ludDsiLCJ2YXIgU1RBUlRfRVZFTlRfTkFNRV9NQVAgPSB7XG4gIHRyYW5zaXRpb25zdGFydDoge1xuICAgIHRyYW5zaXRpb246ICd0cmFuc2l0aW9uc3RhcnQnLFxuICAgIFdlYmtpdFRyYW5zaXRpb246ICd3ZWJraXRUcmFuc2l0aW9uU3RhcnQnLFxuICAgIE1velRyYW5zaXRpb246ICdtb3pUcmFuc2l0aW9uU3RhcnQnLFxuICAgIE9UcmFuc2l0aW9uOiAnb1RyYW5zaXRpb25TdGFydCcsXG4gICAgbXNUcmFuc2l0aW9uOiAnTVNUcmFuc2l0aW9uU3RhcnQnXG4gIH0sXG5cbiAgYW5pbWF0aW9uc3RhcnQ6IHtcbiAgICBhbmltYXRpb246ICdhbmltYXRpb25zdGFydCcsXG4gICAgV2Via2l0QW5pbWF0aW9uOiAnd2Via2l0QW5pbWF0aW9uU3RhcnQnLFxuICAgIE1vekFuaW1hdGlvbjogJ21vekFuaW1hdGlvblN0YXJ0JyxcbiAgICBPQW5pbWF0aW9uOiAnb0FuaW1hdGlvblN0YXJ0JyxcbiAgICBtc0FuaW1hdGlvbjogJ01TQW5pbWF0aW9uU3RhcnQnXG4gIH1cbn07XG5cbnZhciBFTkRfRVZFTlRfTkFNRV9NQVAgPSB7XG4gIHRyYW5zaXRpb25lbmQ6IHtcbiAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCcsXG4gICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLFxuICAgIE1velRyYW5zaXRpb246ICdtb3pUcmFuc2l0aW9uRW5kJyxcbiAgICBPVHJhbnNpdGlvbjogJ29UcmFuc2l0aW9uRW5kJyxcbiAgICBtc1RyYW5zaXRpb246ICdNU1RyYW5zaXRpb25FbmQnXG4gIH0sXG5cbiAgYW5pbWF0aW9uZW5kOiB7XG4gICAgYW5pbWF0aW9uOiAnYW5pbWF0aW9uZW5kJyxcbiAgICBXZWJraXRBbmltYXRpb246ICd3ZWJraXRBbmltYXRpb25FbmQnLFxuICAgIE1vekFuaW1hdGlvbjogJ21vekFuaW1hdGlvbkVuZCcsXG4gICAgT0FuaW1hdGlvbjogJ29BbmltYXRpb25FbmQnLFxuICAgIG1zQW5pbWF0aW9uOiAnTVNBbmltYXRpb25FbmQnXG4gIH1cbn07XG5cbnZhciBzdGFydEV2ZW50cyA9IFtdO1xudmFyIGVuZEV2ZW50cyA9IFtdO1xuXG5mdW5jdGlvbiBkZXRlY3RFdmVudHMoKSB7XG4gIHZhciB0ZXN0RWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgdmFyIHN0eWxlID0gdGVzdEVsLnN0eWxlO1xuXG4gIGlmICghKCdBbmltYXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSBTVEFSVF9FVkVOVF9OQU1FX01BUC5hbmltYXRpb25zdGFydC5hbmltYXRpb247XG4gICAgZGVsZXRlIEVORF9FVkVOVF9OQU1FX01BUC5hbmltYXRpb25lbmQuYW5pbWF0aW9uO1xuICB9XG5cbiAgaWYgKCEoJ1RyYW5zaXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSBTVEFSVF9FVkVOVF9OQU1FX01BUC50cmFuc2l0aW9uc3RhcnQudHJhbnNpdGlvbjtcbiAgICBkZWxldGUgRU5EX0VWRU5UX05BTUVfTUFQLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHByb2Nlc3MoRVZFTlRfTkFNRV9NQVAsIGV2ZW50cykge1xuICAgIGZvciAodmFyIGJhc2VFdmVudE5hbWUgaW4gRVZFTlRfTkFNRV9NQVApIHtcbiAgICAgIGlmIChFVkVOVF9OQU1FX01BUC5oYXNPd25Qcm9wZXJ0eShiYXNlRXZlbnROYW1lKSkge1xuICAgICAgICB2YXIgYmFzZUV2ZW50cyA9IEVWRU5UX05BTUVfTUFQW2Jhc2VFdmVudE5hbWVdO1xuICAgICAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gYmFzZUV2ZW50cykge1xuICAgICAgICAgIGlmIChzdHlsZU5hbWUgaW4gc3R5bGUpIHtcbiAgICAgICAgICAgIGV2ZW50cy5wdXNoKGJhc2VFdmVudHNbc3R5bGVOYW1lXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm9jZXNzKFNUQVJUX0VWRU5UX05BTUVfTUFQLCBzdGFydEV2ZW50cyk7XG4gIHByb2Nlc3MoRU5EX0VWRU5UX05BTUVfTUFQLCBlbmRFdmVudHMpO1xufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICBkZXRlY3RFdmVudHMoKTtcbn1cblxuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lcikge1xuICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudExpc3RlbmVyLCBmYWxzZSk7XG59XG5cbnZhciBUcmFuc2l0aW9uRXZlbnRzID0ge1xuICAvLyBTdGFydCBldmVudHNcbiAgc3RhcnRFdmVudHM6IHN0YXJ0RXZlbnRzLFxuXG4gIGFkZFN0YXJ0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gYWRkU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoc3RhcnRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dChldmVudExpc3RlbmVyLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhcnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc3RhcnRFdmVudCkge1xuICAgICAgYWRkRXZlbnRMaXN0ZW5lcihub2RlLCBzdGFydEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcbiAgcmVtb3ZlU3RhcnRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChzdGFydEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhcnRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc3RhcnRFdmVudCkge1xuICAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBzdGFydEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcblxuXG4gIC8vIEVuZCBldmVudHNcbiAgZW5kRXZlbnRzOiBlbmRFdmVudHMsXG5cbiAgYWRkRW5kRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gYWRkRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKGVuZEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGV2ZW50TGlzdGVuZXIsIDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbmRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZW5kRXZlbnQpIHtcbiAgICAgIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZW5kRXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9LFxuICByZW1vdmVFbmRFdmVudExpc3RlbmVyOiBmdW5jdGlvbiByZW1vdmVFbmRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoZW5kRXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbmRFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZW5kRXZlbnQpIHtcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgZW5kRXZlbnQsIGV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUcmFuc2l0aW9uRXZlbnRzOyIsImltcG9ydCBfdHlwZW9mIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy90eXBlb2YnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4vRXZlbnQnO1xuaW1wb3J0IGNsYXNzZXMgZnJvbSAnY29tcG9uZW50LWNsYXNzZXMnO1xuXG52YXIgaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQgPSBFdmVudC5lbmRFdmVudHMubGVuZ3RoICE9PSAwO1xudmFyIGNhcGl0YWxQcmVmaXhlcyA9IFsnV2Via2l0JywgJ01veicsICdPJyxcbi8vIG1zIGlzIHNwZWNpYWwgLi4uLiAhXG4nbXMnXTtcbnZhciBwcmVmaXhlcyA9IFsnLXdlYmtpdC0nLCAnLW1vei0nLCAnLW8tJywgJ21zLScsICcnXTtcblxuZnVuY3Rpb24gZ2V0U3R5bGVQcm9wZXJ0eShub2RlLCBuYW1lKSB7XG4gIC8vIG9sZCBmZiBuZWVkIG51bGwsIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XaW5kb3cvZ2V0Q29tcHV0ZWRTdHlsZVxuICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKTtcbiAgdmFyIHJldCA9ICcnO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgcmV0ID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcmVmaXhlc1tpXSArIG5hbWUpO1xuICAgIGlmIChyZXQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBmaXhCcm93c2VyQnlUaW1lb3V0KG5vZGUpIHtcbiAgaWYgKGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkKSB7XG4gICAgdmFyIHRyYW5zaXRpb25EZWxheSA9IHBhcnNlRmxvYXQoZ2V0U3R5bGVQcm9wZXJ0eShub2RlLCAndHJhbnNpdGlvbi1kZWxheScpKSB8fCAwO1xuICAgIHZhciB0cmFuc2l0aW9uRHVyYXRpb24gPSBwYXJzZUZsb2F0KGdldFN0eWxlUHJvcGVydHkobm9kZSwgJ3RyYW5zaXRpb24tZHVyYXRpb24nKSkgfHwgMDtcbiAgICB2YXIgYW5pbWF0aW9uRGVsYXkgPSBwYXJzZUZsb2F0KGdldFN0eWxlUHJvcGVydHkobm9kZSwgJ2FuaW1hdGlvbi1kZWxheScpKSB8fCAwO1xuICAgIHZhciBhbmltYXRpb25EdXJhdGlvbiA9IHBhcnNlRmxvYXQoZ2V0U3R5bGVQcm9wZXJ0eShub2RlLCAnYW5pbWF0aW9uLWR1cmF0aW9uJykpIHx8IDA7XG4gICAgdmFyIHRpbWUgPSBNYXRoLm1heCh0cmFuc2l0aW9uRHVyYXRpb24gKyB0cmFuc2l0aW9uRGVsYXksIGFuaW1hdGlvbkR1cmF0aW9uICsgYW5pbWF0aW9uRGVsYXkpO1xuICAgIC8vIHNvbWV0aW1lcywgYnJvd3NlciBidWdcbiAgICBub2RlLnJjRW5kQW5pbVRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vZGUucmNFbmRBbmltVGltZW91dCA9IG51bGw7XG4gICAgICBpZiAobm9kZS5yY0VuZExpc3RlbmVyKSB7XG4gICAgICAgIG5vZGUucmNFbmRMaXN0ZW5lcigpO1xuICAgICAgfVxuICAgIH0sIHRpbWUgKiAxMDAwICsgMjAwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhckJyb3dzZXJCdWdUaW1lb3V0KG5vZGUpIHtcbiAgaWYgKG5vZGUucmNFbmRBbmltVGltZW91dCkge1xuICAgIGNsZWFyVGltZW91dChub2RlLnJjRW5kQW5pbVRpbWVvdXQpO1xuICAgIG5vZGUucmNFbmRBbmltVGltZW91dCA9IG51bGw7XG4gIH1cbn1cblxudmFyIGNzc0FuaW1hdGlvbiA9IGZ1bmN0aW9uIGNzc0FuaW1hdGlvbihub2RlLCB0cmFuc2l0aW9uTmFtZSwgZW5kQ2FsbGJhY2spIHtcbiAgdmFyIG5hbWVJc09iaiA9ICh0eXBlb2YgdHJhbnNpdGlvbk5hbWUgPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKHRyYW5zaXRpb25OYW1lKSkgPT09ICdvYmplY3QnO1xuICB2YXIgY2xhc3NOYW1lID0gbmFtZUlzT2JqID8gdHJhbnNpdGlvbk5hbWUubmFtZSA6IHRyYW5zaXRpb25OYW1lO1xuICB2YXIgYWN0aXZlQ2xhc3NOYW1lID0gbmFtZUlzT2JqID8gdHJhbnNpdGlvbk5hbWUuYWN0aXZlIDogdHJhbnNpdGlvbk5hbWUgKyAnLWFjdGl2ZSc7XG4gIHZhciBlbmQgPSBlbmRDYWxsYmFjaztcbiAgdmFyIHN0YXJ0ID0gdm9pZCAwO1xuICB2YXIgYWN0aXZlID0gdm9pZCAwO1xuICB2YXIgbm9kZUNsYXNzZXMgPSBjbGFzc2VzKG5vZGUpO1xuXG4gIGlmIChlbmRDYWxsYmFjayAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZW5kQ2FsbGJhY2spID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGVuZCA9IGVuZENhbGxiYWNrLmVuZDtcbiAgICBzdGFydCA9IGVuZENhbGxiYWNrLnN0YXJ0O1xuICAgIGFjdGl2ZSA9IGVuZENhbGxiYWNrLmFjdGl2ZTtcbiAgfVxuXG4gIGlmIChub2RlLnJjRW5kTGlzdGVuZXIpIHtcbiAgICBub2RlLnJjRW5kTGlzdGVuZXIoKTtcbiAgfVxuXG4gIG5vZGUucmNFbmRMaXN0ZW5lciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKGUgJiYgZS50YXJnZXQgIT09IG5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5yY0FuaW1UaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQobm9kZS5yY0FuaW1UaW1lb3V0KTtcbiAgICAgIG5vZGUucmNBbmltVGltZW91dCA9IG51bGw7XG4gICAgfVxuXG4gICAgY2xlYXJCcm93c2VyQnVnVGltZW91dChub2RlKTtcblxuICAgIG5vZGVDbGFzc2VzLnJlbW92ZShjbGFzc05hbWUpO1xuICAgIG5vZGVDbGFzc2VzLnJlbW92ZShhY3RpdmVDbGFzc05hbWUpO1xuXG4gICAgRXZlbnQucmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBub2RlLnJjRW5kTGlzdGVuZXIpO1xuICAgIG5vZGUucmNFbmRMaXN0ZW5lciA9IG51bGw7XG5cbiAgICAvLyBVc3VhbGx5IHRoaXMgb3B0aW9uYWwgZW5kIGlzIHVzZWQgZm9yIGluZm9ybWluZyBhbiBvd25lciBvZlxuICAgIC8vIGEgbGVhdmUgYW5pbWF0aW9uIGFuZCB0ZWxsaW5nIGl0IHRvIHJlbW92ZSB0aGUgY2hpbGQuXG4gICAgaWYgKGVuZCkge1xuICAgICAgZW5kKCk7XG4gICAgfVxuICB9O1xuXG4gIEV2ZW50LmFkZEVuZEV2ZW50TGlzdGVuZXIobm9kZSwgbm9kZS5yY0VuZExpc3RlbmVyKTtcblxuICBpZiAoc3RhcnQpIHtcbiAgICBzdGFydCgpO1xuICB9XG4gIG5vZGVDbGFzc2VzLmFkZChjbGFzc05hbWUpO1xuXG4gIG5vZGUucmNBbmltVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIG5vZGUucmNBbmltVGltZW91dCA9IG51bGw7XG4gICAgbm9kZUNsYXNzZXMuYWRkKGFjdGl2ZUNsYXNzTmFtZSk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgc2V0VGltZW91dChhY3RpdmUsIDApO1xuICAgIH1cbiAgICBmaXhCcm93c2VyQnlUaW1lb3V0KG5vZGUpO1xuICAgIC8vIDMwbXMgZm9yIGZpcmVmb3hcbiAgfSwgMzApO1xuXG4gIHJldHVybiB7XG4gICAgc3RvcDogZnVuY3Rpb24gc3RvcCgpIHtcbiAgICAgIGlmIChub2RlLnJjRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgbm9kZS5yY0VuZExpc3RlbmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuY3NzQW5pbWF0aW9uLnN0eWxlID0gZnVuY3Rpb24gKG5vZGUsIHN0eWxlLCBjYWxsYmFjaykge1xuICBpZiAobm9kZS5yY0VuZExpc3RlbmVyKSB7XG4gICAgbm9kZS5yY0VuZExpc3RlbmVyKCk7XG4gIH1cblxuICBub2RlLnJjRW5kTGlzdGVuZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUucmNBbmltVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KG5vZGUucmNBbmltVGltZW91dCk7XG4gICAgICBub2RlLnJjQW5pbVRpbWVvdXQgPSBudWxsO1xuICAgIH1cblxuICAgIGNsZWFyQnJvd3NlckJ1Z1RpbWVvdXQobm9kZSk7XG5cbiAgICBFdmVudC5yZW1vdmVFbmRFdmVudExpc3RlbmVyKG5vZGUsIG5vZGUucmNFbmRMaXN0ZW5lcik7XG4gICAgbm9kZS5yY0VuZExpc3RlbmVyID0gbnVsbDtcblxuICAgIC8vIFVzdWFsbHkgdGhpcyBvcHRpb25hbCBjYWxsYmFjayBpcyB1c2VkIGZvciBpbmZvcm1pbmcgYW4gb3duZXIgb2ZcbiAgICAvLyBhIGxlYXZlIGFuaW1hdGlvbiBhbmQgdGVsbGluZyBpdCB0byByZW1vdmUgdGhlIGNoaWxkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH07XG5cbiAgRXZlbnQuYWRkRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBub2RlLnJjRW5kTGlzdGVuZXIpO1xuXG4gIG5vZGUucmNBbmltVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGZvciAodmFyIHMgaW4gc3R5bGUpIHtcbiAgICAgIGlmIChzdHlsZS5oYXNPd25Qcm9wZXJ0eShzKSkge1xuICAgICAgICBub2RlLnN0eWxlW3NdID0gc3R5bGVbc107XG4gICAgICB9XG4gICAgfVxuICAgIG5vZGUucmNBbmltVGltZW91dCA9IG51bGw7XG4gICAgZml4QnJvd3NlckJ5VGltZW91dChub2RlKTtcbiAgfSwgMCk7XG59O1xuXG5jc3NBbmltYXRpb24uc2V0VHJhbnNpdGlvbiA9IGZ1bmN0aW9uIChub2RlLCBwLCB2YWx1ZSkge1xuICB2YXIgcHJvcGVydHkgPSBwO1xuICB2YXIgdiA9IHZhbHVlO1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHYgPSBwcm9wZXJ0eTtcbiAgICBwcm9wZXJ0eSA9ICcnO1xuICB9XG4gIHByb3BlcnR5ID0gcHJvcGVydHkgfHwgJyc7XG4gIGNhcGl0YWxQcmVmaXhlcy5mb3JFYWNoKGZ1bmN0aW9uIChwcmVmaXgpIHtcbiAgICBub2RlLnN0eWxlW3ByZWZpeCArICdUcmFuc2l0aW9uJyArIHByb3BlcnR5XSA9IHY7XG4gIH0pO1xufTtcblxuY3NzQW5pbWF0aW9uLmlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkID0gaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQ7XG5cbmV4cG9ydCB7IGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkIH07XG5cbmV4cG9ydCBkZWZhdWx0IGNzc0FuaW1hdGlvbjsiLCIvKlxub2JqZWN0LWFzc2lnblxuKGMpIFNpbmRyZSBTb3JodXNcbkBsaWNlbnNlIE1JVFxuKi9cblxuJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm9wSXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuZnVuY3Rpb24gdG9PYmplY3QodmFsKSB7XG5cdGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCcpO1xuXHR9XG5cblx0cmV0dXJuIE9iamVjdCh2YWwpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRVc2VOYXRpdmUoKSB7XG5cdHRyeSB7XG5cdFx0aWYgKCFPYmplY3QuYXNzaWduKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZWN0IGJ1Z2d5IHByb3BlcnR5IGVudW1lcmF0aW9uIG9yZGVyIGluIG9sZGVyIFY4IHZlcnNpb25zLlxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9NDExOFxuXHRcdHZhciB0ZXN0MSA9IG5ldyBTdHJpbmcoJ2FiYycpOyAgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXctd3JhcHBlcnNcblx0XHR0ZXN0MVs1XSA9ICdkZSc7XG5cdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QxKVswXSA9PT0gJzUnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MiA9IHt9O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykge1xuXHRcdFx0dGVzdDJbJ18nICsgU3RyaW5nLmZyb21DaGFyQ29kZShpKV0gPSBpO1xuXHRcdH1cblx0XHR2YXIgb3JkZXIyID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDIpLm1hcChmdW5jdGlvbiAobikge1xuXHRcdFx0cmV0dXJuIHRlc3QyW25dO1xuXHRcdH0pO1xuXHRcdGlmIChvcmRlcjIuam9pbignJykgIT09ICcwMTIzNDU2Nzg5Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDMgPSB7fTtcblx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChsZXR0ZXIpIHtcblx0XHRcdHRlc3QzW2xldHRlcl0gPSBsZXR0ZXI7XG5cdFx0fSk7XG5cdFx0aWYgKE9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sIHRlc3QzKSkuam9pbignJykgIT09XG5cdFx0XHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gV2UgZG9uJ3QgZXhwZWN0IGFueSBvZiB0aGUgYWJvdmUgdG8gdGhyb3csIGJ1dCBiZXR0ZXIgdG8gYmUgc2FmZS5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVc2VOYXRpdmUoKSA/IE9iamVjdC5hc3NpZ24gOiBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcblx0dmFyIGZyb207XG5cdHZhciB0byA9IHRvT2JqZWN0KHRhcmdldCk7XG5cdHZhciBzeW1ib2xzO1xuXG5cdGZvciAodmFyIHMgPSAxOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKSB7XG5cdFx0ZnJvbSA9IE9iamVjdChhcmd1bWVudHNbc10pO1xuXG5cdFx0Zm9yICh2YXIga2V5IGluIGZyb20pIHtcblx0XHRcdGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGZyb20sIGtleSkpIHtcblx0XHRcdFx0dG9ba2V5XSA9IGZyb21ba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7XG5cdFx0XHRzeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGZyb20pO1xuXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzeW1ib2xzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChwcm9wSXNFbnVtZXJhYmxlLmNhbGwoZnJvbSwgc3ltYm9sc1tpXSkpIHtcblx0XHRcdFx0XHR0b1tzeW1ib2xzW2ldXSA9IGZyb21bc3ltYm9sc1tpXV07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gdG87XG59O1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5maXhDb250cm9sbGVkVmFsdWUgPSBmaXhDb250cm9sbGVkVmFsdWU7XG5leHBvcnRzLnJlc29sdmVPbkNoYW5nZSA9IHJlc29sdmVPbkNoYW5nZTtcbmV4cG9ydHMuZ2V0SW5wdXRDbGFzc05hbWUgPSBnZXRJbnB1dENsYXNzTmFtZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gZXhwb3J0cy5JbnB1dFNpemVzID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdCA9IHJlcXVpcmUoXCJyZWFjdC1saWZlY3ljbGVzLWNvbXBhdFwiKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfb21pdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIm9taXQuanNcIikpO1xuXG52YXIgX3R5cGUgPSByZXF1aXJlKFwiLi4vX3V0aWwvdHlwZVwiKTtcblxudmFyIF9DbGVhcmFibGVMYWJlbGVkSW5wdXQgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9DbGVhcmFibGVMYWJlbGVkSW5wdXRcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF93YXJuaW5nID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvd2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBJbnB1dFNpemVzID0gKDAsIF90eXBlLnR1cGxlKSgnc21hbGwnLCAnZGVmYXVsdCcsICdsYXJnZScpO1xuZXhwb3J0cy5JbnB1dFNpemVzID0gSW5wdXRTaXplcztcblxuZnVuY3Rpb24gZml4Q29udHJvbGxlZFZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlT25DaGFuZ2UodGFyZ2V0LCBlLCBvbkNoYW5nZSkge1xuICBpZiAob25DaGFuZ2UpIHtcbiAgICB2YXIgZXZlbnQgPSBlO1xuXG4gICAgaWYgKGUudHlwZSA9PT0gJ2NsaWNrJykge1xuICAgICAgLy8gY2xpY2sgY2xlYXIgaWNvblxuICAgICAgZXZlbnQgPSBPYmplY3QuY3JlYXRlKGUpO1xuICAgICAgZXZlbnQudGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgZXZlbnQuY3VycmVudFRhcmdldCA9IHRhcmdldDtcbiAgICAgIHZhciBvcmlnaW5hbElucHV0VmFsdWUgPSB0YXJnZXQudmFsdWU7IC8vIGNoYW5nZSB0YXJnZXQgcmVmIHZhbHVlIGNhdXNlIGUudGFyZ2V0LnZhbHVlIHNob3VsZCBiZSAnJyB3aGVuIGNsZWFyIGlucHV0XG5cbiAgICAgIHRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgb25DaGFuZ2UoZXZlbnQpOyAvLyByZXNldCB0YXJnZXQgcmVmIHZhbHVlXG5cbiAgICAgIHRhcmdldC52YWx1ZSA9IG9yaWdpbmFsSW5wdXRWYWx1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkNoYW5nZShldmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRDbGFzc05hbWUocHJlZml4Q2xzLCBzaXplLCBkaXNhYmxlZCkge1xuICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgcmV0dXJuICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbVwiKSwgc2l6ZSA9PT0gJ3NtYWxsJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sZ1wiKSwgc2l6ZSA9PT0gJ2xhcmdlJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kaXNhYmxlZFwiKSwgZGlzYWJsZWQpLCBfY2xhc3NOYW1lcykpO1xufVxuXG52YXIgSW5wdXQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKElucHV0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKElucHV0KTtcblxuICBmdW5jdGlvbiBJbnB1dChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbnB1dCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLnNhdmVDbGVhcmFibGVJbnB1dCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgX3RoaXMuY2xlYXJhYmxlSW5wdXQgPSBpbnB1dDtcbiAgICB9O1xuXG4gICAgX3RoaXMuc2F2ZUlucHV0ID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICBfdGhpcy5pbnB1dCA9IGlucHV0O1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVSZXNldCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zZXRWYWx1ZSgnJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBfdGhpcy5mb2N1cygpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc29sdmVPbkNoYW5nZShfdGhpcy5pbnB1dCwgZSwgX3RoaXMucHJvcHMub25DaGFuZ2UpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJJbnB1dCA9IGZ1bmN0aW9uIChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBhZGRvbkJlZm9yZSA9IF90aGlzJHByb3BzLmFkZG9uQmVmb3JlLFxuICAgICAgICAgIGFkZG9uQWZ0ZXIgPSBfdGhpcyRwcm9wcy5hZGRvbkFmdGVyLFxuICAgICAgICAgIHNpemUgPSBfdGhpcyRwcm9wcy5zaXplLFxuICAgICAgICAgIGRpc2FibGVkID0gX3RoaXMkcHJvcHMuZGlzYWJsZWQ7IC8vIEZpeCBodHRwczovL2ZiLm1lL3JlYWN0LXVua25vd24tcHJvcFxuXG4gICAgICB2YXIgb3RoZXJQcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKF90aGlzLnByb3BzLCBbJ3ByZWZpeENscycsICdvblByZXNzRW50ZXInLCAnYWRkb25CZWZvcmUnLCAnYWRkb25BZnRlcicsICdwcmVmaXgnLCAnc3VmZml4JywgJ2FsbG93Q2xlYXInLCAvLyBJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCxcbiAgICAgIC8vIHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgYm90aC5cbiAgICAgICdkZWZhdWx0VmFsdWUnLCAnc2l6ZScsICdpbnB1dFR5cGUnXSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJQcm9wcywge1xuICAgICAgICBvbkNoYW5nZTogX3RoaXMuaGFuZGxlQ2hhbmdlLFxuICAgICAgICBvbktleURvd246IF90aGlzLmhhbmRsZUtleURvd24sXG4gICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoZ2V0SW5wdXRDbGFzc05hbWUocHJlZml4Q2xzLCBzaXplLCBkaXNhYmxlZCksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgY2xhc3NOYW1lLCBjbGFzc05hbWUgJiYgIWFkZG9uQmVmb3JlICYmICFhZGRvbkFmdGVyKSksXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZUlucHV0XG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIF90aGlzLmNsZWFyUGFzc3dvcmRWYWx1ZUF0dHJpYnV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIwNTQxXG4gICAgICBfdGhpcy5yZW1vdmVQYXNzd29yZFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKF90aGlzLmlucHV0ICYmIF90aGlzLmlucHV0LmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAncGFzc3dvcmQnICYmIF90aGlzLmlucHV0Lmhhc0F0dHJpYnV0ZSgndmFsdWUnKSkge1xuICAgICAgICAgIF90aGlzLmlucHV0LnJlbW92ZUF0dHJpYnV0ZSgndmFsdWUnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5zZXRWYWx1ZShlLnRhcmdldC52YWx1ZSwgX3RoaXMuY2xlYXJQYXNzd29yZFZhbHVlQXR0cmlidXRlKTtcblxuICAgICAgcmVzb2x2ZU9uQ2hhbmdlKF90aGlzLmlucHV0LCBlLCBfdGhpcy5wcm9wcy5vbkNoYW5nZSk7XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZUtleURvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIG9uUHJlc3NFbnRlciA9IF90aGlzJHByb3BzMi5vblByZXNzRW50ZXIsXG4gICAgICAgICAgb25LZXlEb3duID0gX3RoaXMkcHJvcHMyLm9uS2V5RG93bjtcblxuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMTMgJiYgb25QcmVzc0VudGVyKSB7XG4gICAgICAgIG9uUHJlc3NFbnRlcihlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uS2V5RG93bikge1xuICAgICAgICBvbktleURvd24oZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbXBvbmVudCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG4gICAgICB2YXIgdmFsdWUgPSBfdGhpcy5zdGF0ZS52YWx1ZTtcbiAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBfdGhpcy5wcm9wcy5wcmVmaXhDbHM7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdpbnB1dCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0NsZWFyYWJsZUxhYmVsZWRJbnB1dFtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgaW5wdXRUeXBlOiBcImlucHV0XCIsXG4gICAgICAgIHZhbHVlOiBmaXhDb250cm9sbGVkVmFsdWUodmFsdWUpLFxuICAgICAgICBlbGVtZW50OiBfdGhpcy5yZW5kZXJJbnB1dChwcmVmaXhDbHMpLFxuICAgICAgICBoYW5kbGVSZXNldDogX3RoaXMuaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZUNsZWFyYWJsZUlucHV0XG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIHZhciB2YWx1ZSA9IHR5cGVvZiBwcm9wcy52YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgPyBwcm9wcy5kZWZhdWx0VmFsdWUgOiBwcm9wcy52YWx1ZTtcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH07XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKElucHV0LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuY2xlYXJQYXNzd29yZFZhbHVlQXR0cmlidXRlKCk7XG4gICAgfSAvLyBTaW5jZSBwb2x5ZmlsbCBgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGVgIG5lZWQgd29yayB3aXRoIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICAgIC8vIFdlIGtlZXAgYW4gZW1wdHkgZnVuY3Rpb24gaGVyZS5cblxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7fVxuICB9LCB7XG4gICAga2V5OiBcImdldFNuYXBzaG90QmVmb3JlVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgaWYgKCgwLCBfQ2xlYXJhYmxlTGFiZWxlZElucHV0Lmhhc1ByZWZpeFN1ZmZpeCkocHJldlByb3BzKSAhPT0gKDAsIF9DbGVhcmFibGVMYWJlbGVkSW5wdXQuaGFzUHJlZml4U3VmZml4KSh0aGlzLnByb3BzKSkge1xuICAgICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKSh0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50LCAnSW5wdXQnLCBcIldoZW4gSW5wdXQgaXMgZm9jdXNlZCwgZHluYW1pYyBhZGQgb3IgcmVtb3ZlIHByZWZpeCAvIHN1ZmZpeCB3aWxsIG1ha2UgaXQgbG9zZSBmb2N1cyBjYXVzZWQgYnkgZG9tIHN0cnVjdHVyZSBjaGFuZ2UuIFJlYWQgbW9yZTogaHR0cHM6Ly9hbnQuZGVzaWduL2NvbXBvbmVudHMvaW5wdXQvI0ZBUVwiKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucmVtb3ZlUGFzc3dvcmRUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlbW92ZVBhc3N3b3JkVGltZW91dCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzKCkge1xuICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJibHVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXIoKSB7XG4gICAgICB0aGlzLmlucHV0LmJsdXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2VsZWN0XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNlbGVjdCgpIHtcbiAgICAgIHRoaXMuaW5wdXQuc2VsZWN0KCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInNldFZhbHVlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldFZhbHVlKHZhbHVlLCBjYWxsYmFjaykge1xuICAgICAgaWYgKCEoJ3ZhbHVlJyBpbiB0aGlzLnByb3BzKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJDb21wb25lbnQpO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBuZXh0UHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogbmV4dFByb3BzLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBJbnB1dDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuSW5wdXQuZGVmYXVsdFByb3BzID0ge1xuICB0eXBlOiAndGV4dCdcbn07XG5JbnB1dC5wcm9wVHlwZXMgPSB7XG4gIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzaXplOiBQcm9wVHlwZXMub25lT2YoSW5wdXRTaXplcyksXG4gIG1heExlbmd0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICB2YWx1ZTogUHJvcFR5cGVzLmFueSxcbiAgZGVmYXVsdFZhbHVlOiBQcm9wVHlwZXMuYW55LFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGFkZG9uQmVmb3JlOiBQcm9wVHlwZXMubm9kZSxcbiAgYWRkb25BZnRlcjogUHJvcFR5cGVzLm5vZGUsXG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgb25QcmVzc0VudGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25LZXlVcDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICBwcmVmaXg6IFByb3BUeXBlcy5ub2RlLFxuICBzdWZmaXg6IFByb3BUeXBlcy5ub2RlLFxuICBhbGxvd0NsZWFyOiBQcm9wVHlwZXMuYm9vbFxufTtcbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShJbnB1dCk7XG52YXIgX2RlZmF1bHQgPSBJbnB1dDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFBhdGhWYWx1ZSA9IGdldFBhdGhWYWx1ZTtcbmV4cG9ydHMuZ2V0Q29sdW1uc0tleSA9IGdldENvbHVtbnNLZXk7XG5leHBvcnRzLm1lcmdlT2JqZWN0ID0gbWVyZ2VPYmplY3Q7XG5leHBvcnRzLnZhbGlkYXRlVmFsdWUgPSB2YWxpZGF0ZVZhbHVlO1xuXG52YXIgX3R5cGVvZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKSk7XG5cbnZhciBJTlRFUk5BTF9LRVlfUFJFRklYID0gJ1JDX1RBQkxFX0tFWSc7XG5cbmZ1bmN0aW9uIHRvQXJyYXkoYXJyKSB7XG4gIGlmIChhcnIgPT09IHVuZGVmaW5lZCB8fCBhcnIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gQXJyYXkuaXNBcnJheShhcnIpID8gYXJyIDogW2Fycl07XG59XG5cbmZ1bmN0aW9uIGdldFBhdGhWYWx1ZShyZWNvcmQsIHBhdGgpIHtcbiAgLy8gU2tpcCBpZiBwYXRoIGlzIGVtcHR5XG4gIGlmICghcGF0aCAmJiB0eXBlb2YgcGF0aCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gcmVjb3JkO1xuICB9XG5cbiAgdmFyIHBhdGhMaXN0ID0gdG9BcnJheShwYXRoKTtcbiAgdmFyIGN1cnJlbnQgPSByZWNvcmQ7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoTGlzdC5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmICghY3VycmVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHByb3AgPSBwYXRoTGlzdFtpXTtcbiAgICBjdXJyZW50ID0gY3VycmVudFtwcm9wXTtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiBnZXRDb2x1bW5zS2V5KGNvbHVtbnMpIHtcbiAgdmFyIGNvbHVtbktleXMgPSBbXTtcbiAgdmFyIGtleXMgPSB7fTtcbiAgY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uIChjb2x1bW4pIHtcbiAgICB2YXIgX3JlZiA9IGNvbHVtbiB8fCB7fSxcbiAgICAgICAga2V5ID0gX3JlZi5rZXksXG4gICAgICAgIGRhdGFJbmRleCA9IF9yZWYuZGF0YUluZGV4O1xuXG4gICAgdmFyIG1lcmdlZEtleSA9IGtleSB8fCB0b0FycmF5KGRhdGFJbmRleCkuam9pbignLScpIHx8IElOVEVSTkFMX0tFWV9QUkVGSVg7XG5cbiAgICB3aGlsZSAoa2V5c1ttZXJnZWRLZXldKSB7XG4gICAgICBtZXJnZWRLZXkgPSBcIlwiLmNvbmNhdChtZXJnZWRLZXksIFwiX25leHRcIik7XG4gICAgfVxuXG4gICAga2V5c1ttZXJnZWRLZXldID0gdHJ1ZTtcbiAgICBjb2x1bW5LZXlzLnB1c2gobWVyZ2VkS2V5KTtcbiAgfSk7XG4gIHJldHVybiBjb2x1bW5LZXlzO1xufVxuXG5mdW5jdGlvbiBtZXJnZU9iamVjdCgpIHtcbiAgdmFyIG1lcmdlZCA9IHt9O1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuXG4gIGZ1bmN0aW9uIGZpbGxQcm9wcyhvYmosIGNsb25lKSB7XG4gICAgaWYgKGNsb25lKSB7XG4gICAgICBPYmplY3Qua2V5cyhjbG9uZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGNsb25lW2tleV07XG5cbiAgICAgICAgaWYgKHZhbHVlICYmICgwLCBfdHlwZW9mMi5kZWZhdWx0KSh2YWx1ZSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgb2JqW2tleV0gPSBvYmpba2V5XSB8fCB7fTtcbiAgICAgICAgICBmaWxsUHJvcHMob2JqW2tleV0sIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSAqL1xuXG5cbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIG9iamVjdHMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgb2JqZWN0c1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIG9iamVjdHMuZm9yRWFjaChmdW5jdGlvbiAoY2xvbmUpIHtcbiAgICBmaWxsUHJvcHMobWVyZ2VkLCBjbG9uZSk7XG4gIH0pO1xuICByZXR1cm4gbWVyZ2VkO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkO1xufSIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdExpa2U7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuU2l6ZUNvbnRleHRQcm92aWRlciA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7IH0pKG5vZGVJbnRlcm9wKTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7IGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgU2l6ZUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpO1xuXG52YXIgU2l6ZUNvbnRleHRQcm92aWRlciA9IGZ1bmN0aW9uIFNpemVDb250ZXh0UHJvdmlkZXIoX3JlZikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgc2l6ZSA9IF9yZWYuc2l6ZTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFNpemVDb250ZXh0LkNvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAob3JpZ2luU2l6ZSkge1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTaXplQ29udGV4dC5Qcm92aWRlciwge1xuICAgICAgdmFsdWU6IHNpemUgfHwgb3JpZ2luU2l6ZVxuICAgIH0sIGNoaWxkcmVuKTtcbiAgfSk7XG59O1xuXG5leHBvcnRzLlNpemVDb250ZXh0UHJvdmlkZXIgPSBTaXplQ29udGV4dFByb3ZpZGVyO1xudmFyIF9kZWZhdWx0ID0gU2l6ZUNvbnRleHQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIE9iamVjdENhY2hlXzEgPSByZXF1aXJlKFwiLi9PYmplY3RDYWNoZVwiKTtcbmV4cG9ydHMuT2JqZWN0Q2FjaGUgPSBPYmplY3RDYWNoZV8xLk9iamVjdENhY2hlO1xudmFyIENvbXBhcmVDYWNoZV8xID0gcmVxdWlyZShcIi4vQ29tcGFyZUNhY2hlXCIpO1xuZXhwb3J0cy5Db21wYXJlQ2FjaGUgPSBDb21wYXJlQ2FjaGVfMS5Db21wYXJlQ2FjaGU7XG4vKipcbiAqIEFwcGxpZXMgdGhlIG1peGluIHRvIGEgZ2l2ZW4gY2xhc3MuXG4gKlxuICogQHBhcmFtIGJhc2VDbGFzcyAtIGNsYXNzIHRvIHJlY2VpdmUgdGhlIG1peGluXG4gKiBAcGFyYW0gbWl4aW5DbGFzcyAtIG1peGluIGNsYXNzXG4gKiBAcGFyYW0gb3ZlcnJpZGVzIC0gYW4gYXJyYXkgd2l0aCBuYW1lcyBvZiBmdW5jdGlvbiBvdmVycmlkZXMuIEJhc2UgY2xhc3NcbiAqIGZ1bmN0aW9ucyB3aG9zZSBuYW1lcyBhcmUgaW4gdGhpcyBhcnJheSB3aWxsIGJlIGtlcHQgYnkgcHJlcGVuZGluZyBhblxuICogdW5kZXJzY29yZSB0byB0aGVpciBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXBwbHlNaXhpbihiYXNlQ2xhc3MsIG1peGluQ2xhc3MsIC4uLm92ZXJyaWRlcykge1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1peGluQ2xhc3MucHJvdG90eXBlKS5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBpZiAob3ZlcnJpZGVzLmluY2x1ZGVzKG5hbWUpKSB7XG4gICAgICAgICAgICBjb25zdCBvcmdQcm9wRGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYmFzZUNsYXNzLnByb3RvdHlwZSwgbmFtZSk7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9yZ1Byb3BEZXNjKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJhc2VDbGFzcy5wcm90b3R5cGUsIFwiX1wiICsgbmFtZSwgb3JnUHJvcERlc2MpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtaXhpbkNsYXNzLnByb3RvdHlwZSwgbmFtZSk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwcm9wRGVzYykge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGJhc2VDbGFzcy5wcm90b3R5cGUsIG5hbWUsIHByb3BEZXNjKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZXhwb3J0cy5hcHBseU1peGluID0gYXBwbHlNaXhpbjtcbi8qKlxuICogQXBwbGllcyBkZWZhdWx0IHZhbHVlcyB0byB0aGUgZ2l2ZW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBhbiBvYmplY3RcbiAqIEBwYXJhbSBkZWZhdWx0cyAtIGFuIG9iamVjdCB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKiBAcGFyYW0gb3ZlcndyaXRlIC0gaWYgc2V0IHRvIGB0cnVlYCBkZWZhdWx0cyBvYmplY3QgYWx3YXlzIG92ZXJ3cml0ZXMgb2JqZWN0XG4gKiB2YWx1ZXMsIHdoZXRoZXIgdGhleSBhcmUgYHVuZGVmaW5lZGAgb3Igbm90LlxuICovXG5mdW5jdGlvbiBhcHBseURlZmF1bHRzKG9iaiwgZGVmYXVsdHMsIG92ZXJ3cml0ZSA9IGZhbHNlKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gY2xvbmUob2JqIHx8IHt9KTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgZm9yRWFjaE9iamVjdChkZWZhdWx0cykpIHtcbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkpIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gYXBwbHlEZWZhdWx0cyhyZXN1bHRba2V5XSwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvdmVyd3JpdGUgfHwgcmVzdWx0W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMuYXBwbHlEZWZhdWx0cyA9IGFwcGx5RGVmYXVsdHM7XG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgaXRlbXMgcGFpcnMgb2YgYW4gYXJyYXkuXG4gKlxuICogQHBhcmFtIGFyciAtIGFycmF5IHRvIGl0ZXJhdGVcbiAqL1xuZnVuY3Rpb24qIGZvckVhY2hBcnJheShhcnIpIHtcbiAgICB5aWVsZCogYXJyO1xufVxuZXhwb3J0cy5mb3JFYWNoQXJyYXkgPSBmb3JFYWNoQXJyYXk7XG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIga2V5L3ZhbHVlIHBhaXJzIG9mIGEgbWFwIG9yIG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gb2JqIC0gbWFwIG9yIG9iamVjdCB0byBpdGVyYXRlXG4gKi9cbmZ1bmN0aW9uKiBmb3JFYWNoT2JqZWN0KG9iaikge1xuICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIHlpZWxkKiBvYmo7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgeWllbGQgW2tleSwgb2JqW2tleV1dO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5mb3JFYWNoT2JqZWN0ID0gZm9yRWFjaE9iamVjdDtcbi8qKlxuICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gYSBtYXAgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBtYXAgb3Igb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIG9iamVjdExlbmd0aChvYmopIHtcbiAgICBpZiAoaXNNYXAob2JqKSkge1xuICAgICAgICByZXR1cm4gb2JqLnNpemU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGg7XG4gICAgfVxufVxuZXhwb3J0cy5vYmplY3RMZW5ndGggPSBvYmplY3RMZW5ndGg7XG4vKipcbiAqIEdldHMgdGhlIHZhbHVlIG9mIGEga2V5IGZyb20gYSBtYXAgb3Igb2JqZWN0LlxuICpcbiAqIEBwYXJhbSBvYmogLSBtYXAgb3Igb2JqZWN0XG4gKiBAcGFyYW0ga2V5IC0gdGhlIGtleSB0byByZXRyaWV2ZVxuICovXG5mdW5jdGlvbiBnZXRPYmplY3RWYWx1ZShvYmosIGtleSkge1xuICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmouZ2V0KGtleSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gb2JqW2tleV07XG4gICAgfVxufVxuZXhwb3J0cy5nZXRPYmplY3RWYWx1ZSA9IGdldE9iamVjdFZhbHVlO1xuLyoqXG4gKiBSZW1vdmVzIGEgcHJvcGVydHkgZnJvbSBhIG1hcCBvciBvYmplY3QuXG4gKlxuICogQHBhcmFtIG9iaiAtIG1hcCBvciBvYmplY3RcbiAqIEBwYXJhbSBrZXkgLSB0aGUga2V5IHRvIHJlbW92ZVxuICovXG5mdW5jdGlvbiByZW1vdmVPYmplY3RWYWx1ZShvYmosIGtleSkge1xuICAgIGlmIChpc01hcChvYmopKSB7XG4gICAgICAgIG9iai5kZWxldGUoa2V5KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBvYmpba2V5XTtcbiAgICB9XG59XG5leHBvcnRzLnJlbW92ZU9iamVjdFZhbHVlID0gcmVtb3ZlT2JqZWN0VmFsdWU7XG4vKipcbiAqIERlZXAgY2xvbmVzIHRoZSBnaXZlbiBvYmplY3QuXG4gKlxuICogQHBhcmFtIG9iaiAtIGFuIG9iamVjdFxuICovXG5mdW5jdGlvbiBjbG9uZShvYmopIHtcbiAgICBpZiAoaXNGdW5jdGlvbihvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzQXJyYXkob2JqKSkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY2xvbmUoaXRlbSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IG9ialtrZXldO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xvbmUodmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG59XG5leHBvcnRzLmNsb25lID0gY2xvbmU7XG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIGJvb2xlYW4gdHlwZXNcbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gdHlwZSBjaGVja1xuICovXG5mdW5jdGlvbiBpc0Jvb2xlYW4oeCkge1xuICAgIHJldHVybiB0eXBlb2YgeCA9PT0gXCJib29sZWFuXCI7XG59XG5leHBvcnRzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjtcbi8qKlxuICogVHlwZSBndWFyZCBmb3IgbnVtZXJpYyB0eXBlc1xuICpcbiAqIEBwYXJhbSB4IC0gYSB2YXJpYWJsZSB0byB0eXBlIGNoZWNrXG4gKi9cbmZ1bmN0aW9uIGlzTnVtYmVyKHgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHggPT09IFwibnVtYmVyXCI7XG59XG5leHBvcnRzLmlzTnVtYmVyID0gaXNOdW1iZXI7XG4vKipcbiAqIFR5cGUgZ3VhcmQgZm9yIHN0cmluZ3NcbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gdHlwZSBjaGVja1xuICovXG5mdW5jdGlvbiBpc1N0cmluZyh4KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB4ID09PSBcInN0cmluZ1wiO1xufVxuZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nO1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBmdW5jdGlvbiBvYmplY3RzXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih4KSB7XG4gICAgcmV0dXJuICEheCAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG59XG5leHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBKUyBvYmplY3RzXG4gKlxuICogX05vdGU6XyBGdW5jdGlvbnMgYXJlIG9iamVjdHMgdG9vXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QoeCkge1xuICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgeDtcbiAgICByZXR1cm4gISF4ICYmICh0eXBlID09PSAnZnVuY3Rpb24nIHx8IHR5cGUgPT09ICdvYmplY3QnKTtcbn1cbmV4cG9ydHMuaXNPYmplY3QgPSBpc09iamVjdDtcbi8qKlxuICogVHlwZSBndWFyZCBmb3IgYXJyYXlzXG4gKlxuICogQHBhcmFtIHggLSBhIHZhcmlhYmxlIHRvIHR5cGUgY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNBcnJheSh4KSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoeCk7XG59XG5leHBvcnRzLmlzQXJyYXkgPSBpc0FycmF5O1xuLyoqXG4gKiBUeXBlIGd1YXJkIGZvciBtYXBzLlxuICpcbiAqIEBwYXJhbSB4IC0gYSB2YXJpYWJsZSB0byBjaGVja1xuICovXG5mdW5jdGlvbiBpc01hcCh4KSB7XG4gICAgcmV0dXJuIHggaW5zdGFuY2VvZiBNYXA7XG59XG5leHBvcnRzLmlzTWFwID0gaXNNYXA7XG4vKipcbiAqIERldGVybWluZXMgaWYgYHhgIGlzIGFuIGVtcHR5IEFycmF5IG9yIGFuIE9iamVjdCB3aXRoIG5vIG93biBwcm9wZXJ0aWVzLlxuICpcbiAqIEBwYXJhbSB4IC0gYSB2YXJpYWJsZSB0byBjaGVja1xuICovXG5mdW5jdGlvbiBpc0VtcHR5KHgpIHtcbiAgICBpZiAoaXNBcnJheSh4KSkge1xuICAgICAgICByZXR1cm4gIXgubGVuZ3RoO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc09iamVjdCh4KSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB4KSB7XG4gICAgICAgICAgICBpZiAoeC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5leHBvcnRzLmlzRW1wdHkgPSBpc0VtcHR5O1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGB4YCBpcyBhIHBsYWluIE9iamVjdC5cbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh4KSB7XG4gICAgaWYgKGlzT2JqZWN0KHgpKSB7XG4gICAgICAgIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHgpO1xuICAgICAgICBjb25zdCBjdG9yID0gcHJvdG8uY29uc3RydWN0b3I7XG4gICAgICAgIHJldHVybiBwcm90byAmJiBjdG9yICYmXG4gICAgICAgICAgICAodHlwZW9mIGN0b3IgPT09ICdmdW5jdGlvbicpICYmIChjdG9yIGluc3RhbmNlb2YgY3RvcikgJiZcbiAgICAgICAgICAgIChGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjdG9yKSA9PT0gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoT2JqZWN0KSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmV4cG9ydHMuaXNQbGFpbk9iamVjdCA9IGlzUGxhaW5PYmplY3Q7XG4vKipcbiAqIERldGVybWluZXMgaWYgYHhgIGlzIGFuIGl0ZXJhYmxlIE9iamVjdC5cbiAqXG4gKiBAcGFyYW0geCAtIGEgdmFyaWFibGUgdG8gY2hlY2tcbiAqL1xuZnVuY3Rpb24gaXNJdGVyYWJsZSh4KSB7XG4gICAgcmV0dXJuIHggJiYgKHR5cGVvZiB4W1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbicpO1xufVxuZXhwb3J0cy5pc0l0ZXJhYmxlID0gaXNJdGVyYWJsZTtcbi8qKlxuICogR2V0cyB0aGUgcHJpbWl0aXZlIHZhbHVlIG9mIGFuIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWUob2JqKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24ob2JqLnZhbHVlT2YpKSB7XG4gICAgICAgIHJldHVybiBvYmoudmFsdWVPZigpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG59XG5leHBvcnRzLmdldFZhbHVlID0gZ2V0VmFsdWU7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGRvbV8xID0gcmVxdWlyZShcIi4uL2RvbVwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCIuLi91dGlsXCIpO1xuY29uc3QgaW5mcmFfMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvaW5mcmFcIik7XG5jb25zdCBDcmVhdGVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL0NyZWF0ZUFsZ29yaXRobVwiKTtcbmNvbnN0IFRyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBFdmVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vRXZlbnRBbGdvcml0aG1cIik7XG4vKipcbiAqIFF1ZXVlcyBhIG11dGF0aW9uIG9ic2VydmVyIG1pY3JvdGFzayB0byB0aGUgc3Vycm91bmRpbmcgYWdlbnTigJlzIG11dGF0aW9uXG4gKiBvYnNlcnZlcnMuXG4gKi9cbmZ1bmN0aW9uIG9ic2VydmVyX3F1ZXVlQU11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2soKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgdGhlIHN1cnJvdW5kaW5nIGFnZW504oCZcyBtdXRhdGlvbiBvYnNlcnZlciBtaWNyb3Rhc2sgcXVldWVkIGlzIHRydWUsXG4gICAgICogdGhlbiByZXR1cm4uXG4gICAgICogMi4gU2V0IHRoZSBzdXJyb3VuZGluZyBhZ2VudOKAmXMgbXV0YXRpb24gb2JzZXJ2ZXIgbWljcm90YXNrIHF1ZXVlZCB0byB0cnVlLlxuICAgICAqIDMuIFF1ZXVlIGEgbWljcm90YXNrIHRvIG5vdGlmeSBtdXRhdGlvbiBvYnNlcnZlcnMuXG4gICAgICovXG4gICAgY29uc3Qgd2luZG93ID0gZG9tXzEuZG9tLndpbmRvdztcbiAgICBpZiAod2luZG93Ll9tdXRhdGlvbk9ic2VydmVyTWljcm90YXNrUXVldWVkKVxuICAgICAgICByZXR1cm47XG4gICAgd2luZG93Ll9tdXRhdGlvbk9ic2VydmVyTWljcm90YXNrUXVldWVkID0gdHJ1ZTtcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHsgb2JzZXJ2ZXJfbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoKTsgfSk7XG59XG5leHBvcnRzLm9ic2VydmVyX3F1ZXVlQU11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2sgPSBvYnNlcnZlcl9xdWV1ZUFNdXRhdGlvbk9ic2VydmVyTWljcm90YXNrO1xuLyoqXG4gKiBOb3RpZmllcyB0aGUgc3Vycm91bmRpbmcgYWdlbnTigJlzIG11dGF0aW9uIG9ic2VydmVycy5cbiAqL1xuZnVuY3Rpb24gb2JzZXJ2ZXJfbm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoKSB7XG4gICAgLyoqXG4gICAgICogMS4gU2V0IHRoZSBzdXJyb3VuZGluZyBhZ2VudOKAmXMgbXV0YXRpb24gb2JzZXJ2ZXIgbWljcm90YXNrIHF1ZXVlZCB0byBmYWxzZS5cbiAgICAgKiAyLiBMZXQgbm90aWZ5U2V0IGJlIGEgY2xvbmUgb2YgdGhlIHN1cnJvdW5kaW5nIGFnZW504oCZcyBtdXRhdGlvbiBvYnNlcnZlcnMuXG4gICAgICogMy4gTGV0IHNpZ25hbFNldCBiZSBhIGNsb25lIG9mIHRoZSBzdXJyb3VuZGluZyBhZ2VudOKAmXMgc2lnbmFsIHNsb3RzLlxuICAgICAqIDQuIEVtcHR5IHRoZSBzdXJyb3VuZGluZyBhZ2VudOKAmXMgc2lnbmFsIHNsb3RzLlxuICAgICAqL1xuICAgIGNvbnN0IHdpbmRvdyA9IGRvbV8xLmRvbS53aW5kb3c7XG4gICAgd2luZG93Ll9tdXRhdGlvbk9ic2VydmVyTWljcm90YXNrUXVldWVkID0gZmFsc2U7XG4gICAgY29uc3Qgbm90aWZ5U2V0ID0gaW5mcmFfMS5zZXQuY2xvbmUod2luZG93Ll9tdXRhdGlvbk9ic2VydmVycyk7XG4gICAgY29uc3Qgc2lnbmFsU2V0ID0gaW5mcmFfMS5zZXQuY2xvbmUod2luZG93Ll9zaWduYWxTbG90cyk7XG4gICAgaW5mcmFfMS5zZXQuZW1wdHkod2luZG93Ll9zaWduYWxTbG90cyk7XG4gICAgLyoqXG4gICAgICogNS4gRm9yIGVhY2ggbW8gb2Ygbm90aWZ5U2V0OlxuICAgICAqL1xuICAgIGZvciAoY29uc3QgbW8gb2Ygbm90aWZ5U2V0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA1LjEuIExldCByZWNvcmRzIGJlIGEgY2xvbmUgb2YgbW/igJlzIHJlY29yZCBxdWV1ZS5cbiAgICAgICAgICogNS4yLiBFbXB0eSBtb+KAmXMgcmVjb3JkIHF1ZXVlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGluZnJhXzEubGlzdC5jbG9uZShtby5fcmVjb3JkUXVldWUpO1xuICAgICAgICBpbmZyYV8xLmxpc3QuZW1wdHkobW8uX3JlY29yZFF1ZXVlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuMy4gRm9yIGVhY2ggbm9kZSBvZiBtb+KAmXMgbm9kZSBsaXN0LCByZW1vdmUgYWxsIHRyYW5zaWVudCByZWdpc3RlcmVkXG4gICAgICAgICAqIG9ic2VydmVycyB3aG9zZSBvYnNlcnZlciBpcyBtbyBmcm9tIG5vZGXigJlzIHJlZ2lzdGVyZWQgb2JzZXJ2ZXIgbGlzdC5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW8uX25vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbW8uX25vZGVMaXN0W2ldO1xuICAgICAgICAgICAgaW5mcmFfMS5saXN0LnJlbW92ZShub2RlLl9yZWdpc3RlcmVkT2JzZXJ2ZXJMaXN0LCAob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdXRpbF8xLkd1YXJkLmlzVHJhbnNpZW50UmVnaXN0ZXJlZE9ic2VydmVyKG9ic2VydmVyKSAmJiBvYnNlcnZlci5vYnNlcnZlciA9PT0gbW87XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNS40LiBJZiByZWNvcmRzIGlzIG5vdCBlbXB0eSwgdGhlbiBpbnZva2UgbW/igJlzIGNhbGxiYWNrIHdpdGggwqsgcmVjb3JkcyxcbiAgICAgICAgICogbW8gwrssIGFuZCBtby4gSWYgdGhpcyB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGVuIHJlcG9ydCB0aGUgZXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFpbmZyYV8xLmxpc3QuaXNFbXB0eShyZWNvcmRzKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBtby5fY2FsbGJhY2suY2FsbChtbywgcmVjb3JkcywgbW8pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlcG9ydCB0aGUgZXhjZXB0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gRm9yIGVhY2ggc2xvdCBvZiBzaWduYWxTZXQsIGZpcmUgYW4gZXZlbnQgbmFtZWQgc2xvdGNoYW5nZSwgd2l0aCBpdHNcbiAgICAgKiBidWJibGVzIGF0dHJpYnV0ZSBzZXQgdG8gdHJ1ZSwgYXQgc2xvdC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnNsb3RzKSB7XG4gICAgICAgIGZvciAoY29uc3Qgc2xvdCBvZiBzaWduYWxTZXQpIHtcbiAgICAgICAgICAgIEV2ZW50QWxnb3JpdGhtXzEuZXZlbnRfZmlyZUFuRXZlbnQoXCJzbG90Y2hhbmdlXCIsIHNsb3QsIHVuZGVmaW5lZCwgeyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5vYnNlcnZlcl9ub3RpZnlNdXRhdGlvbk9ic2VydmVycyA9IG9ic2VydmVyX25vdGlmeU11dGF0aW9uT2JzZXJ2ZXJzO1xuLyoqXG4gKiBRdWV1ZXMgYSBtdXRhdGlvbiByZWNvcmQgb2YgdGhlIGdpdmVuIHR5cGUgZm9yIHRhcmdldC5cbiAqXG4gKiBAcGFyYW0gdHlwZSAtIG11dGF0aW9uIHJlY29yZCB0eXBlXG4gKiBAcGFyYW0gdGFyZ2V0IC0gdGFyZ2V0IG5vZGVcbiAqIEBwYXJhbSBuYW1lIC0gbmFtZSBiZWZvcmUgbXV0YXRpb25cbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBuYW1lc3BhY2UgYmVmb3JlIG11dGF0aW9uXG4gKiBAcGFyYW0gb2xkVmFsdWUgLSBhdHRyaWJ1dGUgdmFsdWUgYmVmb3JlIG11dGF0aW9uXG4gKiBAcGFyYW0gYWRkZWROb2RlcyAtIGEgbGlzdCBvZCBhZGRlZCBub2Rlc1xuICogQHBhcmFtIHJlbW92ZWROb2RlcyAtIGEgbGlzdCBvZiByZW1vdmVkIG5vZGVzXG4gKiBAcGFyYW0gcHJldmlvdXNTaWJsaW5nIC0gcHJldmlvdXMgc2libGluZyBvZiB0YXJnZXQgYmVmb3JlIG11dGF0aW9uXG4gKiBAcGFyYW0gbmV4dFNpYmxpbmcgLSBuZXh0IHNpYmxpbmcgb2YgdGFyZ2V0IGJlZm9yZSBtdXRhdGlvblxuICovXG5mdW5jdGlvbiBvYnNlcnZlcl9xdWV1ZU11dGF0aW9uUmVjb3JkKHR5cGUsIHRhcmdldCwgbmFtZSwgbmFtZXNwYWNlLCBvbGRWYWx1ZSwgYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzLCBwcmV2aW91c1NpYmxpbmcsIG5leHRTaWJsaW5nKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IGludGVyZXN0ZWRPYnNlcnZlcnMgYmUgYW4gZW1wdHkgbWFwLlxuICAgICAqIDIuIExldCBub2RlcyBiZSB0aGUgaW5jbHVzaXZlIGFuY2VzdG9ycyBvZiB0YXJnZXQuXG4gICAgICogMy4gRm9yIGVhY2ggbm9kZSBpbiBub2RlcywgYW5kIHRoZW4gZm9yIGVhY2ggcmVnaXN0ZXJlZCBvZiBub2Rl4oCZc1xuICAgICAqIHJlZ2lzdGVyZWQgb2JzZXJ2ZXIgbGlzdDpcbiAgICAgKi9cbiAgICBjb25zdCBpbnRlcmVzdGVkT2JzZXJ2ZXJzID0gbmV3IE1hcCgpO1xuICAgIGxldCBub2RlID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3RBbmNlc3Rvck5vZGUodGFyZ2V0LCB0cnVlKTtcbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuX3JlZ2lzdGVyZWRPYnNlcnZlckxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSBub2RlLl9yZWdpc3RlcmVkT2JzZXJ2ZXJMaXN0W2ldO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjEuIExldCBvcHRpb25zIGJlIHJlZ2lzdGVyZWTigJlzIG9wdGlvbnMuXG4gICAgICAgICAgICAgKiAzLjIuIElmIG5vbmUgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZVxuICAgICAgICAgICAgICogLSBub2RlIGlzIG5vdCB0YXJnZXQgYW5kIG9wdGlvbnPigJlzIHN1YnRyZWUgaXMgZmFsc2VcbiAgICAgICAgICAgICAqIC0gdHlwZSBpcyBcImF0dHJpYnV0ZXNcIiBhbmQgb3B0aW9uc+KAmXMgYXR0cmlidXRlcyBpcyBub3QgdHJ1ZVxuICAgICAgICAgICAgICogLSB0eXBlIGlzIFwiYXR0cmlidXRlc1wiLCBvcHRpb25z4oCZcyBhdHRyaWJ1dGVGaWx0ZXIgaXMgcHJlc2VudCwgYW5kXG4gICAgICAgICAgICAgKiBvcHRpb25z4oCZcyBhdHRyaWJ1dGVGaWx0ZXIgZG9lcyBub3QgY29udGFpbiBuYW1lIG9yIG5hbWVzcGFjZSBpc1xuICAgICAgICAgICAgICogbm9uLW51bGxcbiAgICAgICAgICAgICAqIC0gdHlwZSBpcyBcImNoYXJhY3RlckRhdGFcIiBhbmQgb3B0aW9uc+KAmXMgY2hhcmFjdGVyRGF0YSBpcyBub3QgdHJ1ZVxuICAgICAgICAgICAgICogLSB0eXBlIGlzIFwiY2hpbGRMaXN0XCIgYW5kIG9wdGlvbnPigJlzIGNoaWxkTGlzdCBpcyBmYWxzZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gcmVnaXN0ZXJlZC5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKG5vZGUgIT09IHRhcmdldCAmJiAhb3B0aW9ucy5zdWJ0cmVlKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiYXR0cmlidXRlc1wiICYmICFvcHRpb25zLmF0dHJpYnV0ZXMpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJhdHRyaWJ1dGVzXCIgJiYgb3B0aW9ucy5hdHRyaWJ1dGVGaWx0ZXIgJiZcbiAgICAgICAgICAgICAgICAoIW9wdGlvbnMuYXR0cmlidXRlRmlsdGVyLmluY2x1ZGVzKG5hbWUgfHwgJycpIHx8IG5hbWVzcGFjZSAhPT0gbnVsbCkpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJjaGFyYWN0ZXJEYXRhXCIgJiYgIW9wdGlvbnMuY2hhcmFjdGVyRGF0YSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSBcImNoaWxkTGlzdFwiICYmICFvcHRpb25zLmNoaWxkTGlzdClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogdGhlbjpcbiAgICAgICAgICAgICAqIDMuMi4xLiBMZXQgbW8gYmUgcmVnaXN0ZXJlZOKAmXMgb2JzZXJ2ZXIuXG4gICAgICAgICAgICAgKiAzLjIuMi4gSWYgaW50ZXJlc3RlZE9ic2VydmVyc1ttb10gZG9lcyBub3QgZXhpc3QsIHRoZW4gc2V0XG4gICAgICAgICAgICAgKiBpbnRlcmVzdGVkT2JzZXJ2ZXJzW21vXSB0byBudWxsLlxuICAgICAgICAgICAgICogMy4yLjMuIElmIGVpdGhlciB0eXBlIGlzIFwiYXR0cmlidXRlc1wiIGFuZCBvcHRpb25z4oCZcyBhdHRyaWJ1dGVPbGRWYWx1ZVxuICAgICAgICAgICAgICogaXMgdHJ1ZSwgb3IgdHlwZSBpcyBcImNoYXJhY3RlckRhdGFcIiBhbmQgb3B0aW9uc+KAmXNcbiAgICAgICAgICAgICAqIGNoYXJhY3RlckRhdGFPbGRWYWx1ZSBpcyB0cnVlLCB0aGVuIHNldCBpbnRlcmVzdGVkT2JzZXJ2ZXJzW21vXVxuICAgICAgICAgICAgICogdG8gb2xkVmFsdWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IG1vID0gcmVnaXN0ZXJlZC5vYnNlcnZlcjtcbiAgICAgICAgICAgIGlmICghaW50ZXJlc3RlZE9ic2VydmVycy5oYXMobW8pKSB7XG4gICAgICAgICAgICAgICAgaW50ZXJlc3RlZE9ic2VydmVycy5zZXQobW8sIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCh0eXBlID09PSBcImF0dHJpYnV0ZXNcIiAmJiBvcHRpb25zLmF0dHJpYnV0ZU9sZFZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICh0eXBlID09PSBcImNoYXJhY3RlckRhdGFcIiAmJiBvcHRpb25zLmNoYXJhY3RlckRhdGFPbGRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpbnRlcmVzdGVkT2JzZXJ2ZXJzLnNldChtbywgb2xkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXROZXh0QW5jZXN0b3JOb2RlKHRhcmdldCwgbm9kZSwgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDQuIEZvciBlYWNoIG9ic2VydmVyIOKGkiBtYXBwZWRPbGRWYWx1ZSBvZiBpbnRlcmVzdGVkT2JzZXJ2ZXJzOlxuICAgICAqL1xuICAgIGZvciAoY29uc3QgW29ic2VydmVyLCBtYXBwZWRPbGRWYWx1ZV0gb2YgaW50ZXJlc3RlZE9ic2VydmVycykge1xuICAgICAgICAvKipcbiAgICAgICAgICogNC4xLiBMZXQgcmVjb3JkIGJlIGEgbmV3IE11dGF0aW9uUmVjb3JkIG9iamVjdCB3aXRoIGl0cyB0eXBlIHNldCB0b1xuICAgICAgICAgKiB0eXBlLCB0YXJnZXQgc2V0IHRvIHRhcmdldCwgYXR0cmlidXRlTmFtZSBzZXQgdG8gbmFtZSxcbiAgICAgICAgICogYXR0cmlidXRlTmFtZXNwYWNlIHNldCB0byBuYW1lc3BhY2UsIG9sZFZhbHVlIHNldCB0byBtYXBwZWRPbGRWYWx1ZSxcbiAgICAgICAgICogYWRkZWROb2RlcyBzZXQgdG8gYWRkZWROb2RlcywgcmVtb3ZlZE5vZGVzIHNldCB0byByZW1vdmVkTm9kZXMsXG4gICAgICAgICAqIHByZXZpb3VzU2libGluZyBzZXQgdG8gcHJldmlvdXNTaWJsaW5nLCBhbmQgbmV4dFNpYmxpbmcgc2V0IHRvXG4gICAgICAgICAqIG5leHRTaWJsaW5nLlxuICAgICAgICAgKiA0LjIuIEVucXVldWUgcmVjb3JkIHRvIG9ic2VydmVy4oCZcyByZWNvcmQgcXVldWUuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCByZWNvcmQgPSBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfbXV0YXRpb25SZWNvcmQodHlwZSwgdGFyZ2V0LCBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfbm9kZUxpc3RTdGF0aWModGFyZ2V0LCBhZGRlZE5vZGVzKSwgQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX25vZGVMaXN0U3RhdGljKHRhcmdldCwgcmVtb3ZlZE5vZGVzKSwgcHJldmlvdXNTaWJsaW5nLCBuZXh0U2libGluZywgbmFtZSwgbmFtZXNwYWNlLCBtYXBwZWRPbGRWYWx1ZSk7XG4gICAgICAgIGNvbnN0IHF1ZXVlID0gb2JzZXJ2ZXIuX3JlY29yZFF1ZXVlO1xuICAgICAgICBxdWV1ZS5wdXNoKHJlY29yZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDUuIFF1ZXVlIGEgbXV0YXRpb24gb2JzZXJ2ZXIgbWljcm90YXNrLlxuICAgICAqL1xuICAgIG9ic2VydmVyX3F1ZXVlQU11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2soKTtcbn1cbmV4cG9ydHMub2JzZXJ2ZXJfcXVldWVNdXRhdGlvblJlY29yZCA9IG9ic2VydmVyX3F1ZXVlTXV0YXRpb25SZWNvcmQ7XG4vKipcbiAqIFF1ZXVlcyBhIHRyZWUgbXV0YXRpb24gcmVjb3JkIGZvciB0YXJnZXQuXG4gKlxuICogQHBhcmFtIHRhcmdldCAtIHRhcmdldCBub2RlXG4gKiBAcGFyYW0gYWRkZWROb2RlcyAtIGEgbGlzdCBvZCBhZGRlZCBub2Rlc1xuICogQHBhcmFtIHJlbW92ZWROb2RlcyAtIGEgbGlzdCBvZiByZW1vdmVkIG5vZGVzXG4gKiBAcGFyYW0gcHJldmlvdXNTaWJsaW5nIC0gcHJldmlvdXMgc2libGluZyBvZiB0YXJnZXQgYmVmb3JlIG11dGF0aW9uXG4gKiBAcGFyYW0gbmV4dFNpYmxpbmcgLSBuZXh0IHNpYmxpbmcgb2YgdGFyZ2V0IGJlZm9yZSBtdXRhdGlvblxuICovXG5mdW5jdGlvbiBvYnNlcnZlcl9xdWV1ZVRyZWVNdXRhdGlvblJlY29yZCh0YXJnZXQsIGFkZGVkTm9kZXMsIHJlbW92ZWROb2RlcywgcHJldmlvdXNTaWJsaW5nLCBuZXh0U2libGluZykge1xuICAgIC8qKlxuICAgICAqIFRvIHF1ZXVlIGEgdHJlZSBtdXRhdGlvbiByZWNvcmQgZm9yIHRhcmdldCB3aXRoIGFkZGVkTm9kZXMsIHJlbW92ZWROb2RlcyxcbiAgICAgKiBwcmV2aW91c1NpYmxpbmcsIGFuZCBuZXh0U2libGluZywgcXVldWUgYSBtdXRhdGlvbiByZWNvcmQgb2YgXCJjaGlsZExpc3RcIlxuICAgICAqIGZvciB0YXJnZXQgd2l0aCBudWxsLCBudWxsLCBudWxsLCBhZGRlZE5vZGVzLCByZW1vdmVkTm9kZXMsXG4gICAgICogcHJldmlvdXNTaWJsaW5nLCBhbmQgbmV4dFNpYmxpbmcuXG4gICAgICovXG4gICAgb2JzZXJ2ZXJfcXVldWVNdXRhdGlvblJlY29yZChcImNoaWxkTGlzdFwiLCB0YXJnZXQsIG51bGwsIG51bGwsIG51bGwsIGFkZGVkTm9kZXMsIHJlbW92ZWROb2RlcywgcHJldmlvdXNTaWJsaW5nLCBuZXh0U2libGluZyk7XG59XG5leHBvcnRzLm9ic2VydmVyX3F1ZXVlVHJlZU11dGF0aW9uUmVjb3JkID0gb2JzZXJ2ZXJfcXVldWVUcmVlTXV0YXRpb25SZWNvcmQ7XG4vKipcbiAqIFF1ZXVlcyBhbiBhdHRyaWJ1dGUgbXV0YXRpb24gcmVjb3JkIGZvciB0YXJnZXQuXG4gKlxuICogQHBhcmFtIHRhcmdldCAtIHRhcmdldCBub2RlXG4gKiBAcGFyYW0gbmFtZSAtIG5hbWUgYmVmb3JlIG11dGF0aW9uXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gbmFtZXNwYWNlIGJlZm9yZSBtdXRhdGlvblxuICogQHBhcmFtIG9sZFZhbHVlIC0gYXR0cmlidXRlIHZhbHVlIGJlZm9yZSBtdXRhdGlvblxuICovXG5mdW5jdGlvbiBvYnNlcnZlcl9xdWV1ZUF0dHJpYnV0ZU11dGF0aW9uUmVjb3JkKHRhcmdldCwgbmFtZSwgbmFtZXNwYWNlLCBvbGRWYWx1ZSkge1xuICAgIC8qKlxuICAgICAqIFRvIHF1ZXVlIGFuIGF0dHJpYnV0ZSBtdXRhdGlvbiByZWNvcmQgZm9yIHRhcmdldCB3aXRoIG5hbWUsIG5hbWVzcGFjZSxcbiAgICAgKiBhbmQgb2xkVmFsdWUsIHF1ZXVlIGEgbXV0YXRpb24gcmVjb3JkIG9mIFwiYXR0cmlidXRlc1wiIGZvciB0YXJnZXQgd2l0aFxuICAgICAqIG5hbWUsIG5hbWVzcGFjZSwgb2xkVmFsdWUsIMKrIMK7LCDCqyDCuywgbnVsbCwgYW5kIG51bGwuXG4gICAgICovXG4gICAgb2JzZXJ2ZXJfcXVldWVNdXRhdGlvblJlY29yZChcImF0dHJpYnV0ZXNcIiwgdGFyZ2V0LCBuYW1lLCBuYW1lc3BhY2UsIG9sZFZhbHVlLCBbXSwgW10sIG51bGwsIG51bGwpO1xufVxuZXhwb3J0cy5vYnNlcnZlcl9xdWV1ZUF0dHJpYnV0ZU11dGF0aW9uUmVjb3JkID0gb2JzZXJ2ZXJfcXVldWVBdHRyaWJ1dGVNdXRhdGlvblJlY29yZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuLi9kb21cIik7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCIuLi91dGlsXCIpO1xuY29uc3QgRE9NRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vZG9tL0RPTUV4Y2VwdGlvblwiKTtcbmNvbnN0IENyZWF0ZUFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vQ3JlYXRlQWxnb3JpdGhtXCIpO1xuY29uc3QgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vQ3VzdG9tRWxlbWVudEFsZ29yaXRobVwiKTtcbmNvbnN0IE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL011dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1cIik7XG5jb25zdCBET01BbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL0RPTUFsZ29yaXRobVwiKTtcbmNvbnN0IE11dGF0aW9uQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9NdXRhdGlvbkFsZ29yaXRobVwiKTtcbmNvbnN0IERvY3VtZW50QWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9Eb2N1bWVudEFsZ29yaXRobVwiKTtcbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlIGxpc3QgY29udGFpbnMgdGhlIGdpdmVuXG4gKiBhdHRyaWJ1dGUuXG4gKlxuICogQHBhcmFtIGF0dHJpYnV0ZSAtIGFuIGF0dHJpYnV0ZSBub2RlXG4gKiBAcGFyYW0gZWxlbWVudCAtIGFuIGVsZW1lbnQgbm9kZVxuICovXG5mdW5jdGlvbiBlbGVtZW50X2hhcyhhdHRyaWJ1dGUsIGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IGhhcyBhbiBhdHRyaWJ1dGUgQSBpZiBpdHMgYXR0cmlidXRlIGxpc3QgY29udGFpbnMgQS5cbiAgICAgKi9cbiAgICByZXR1cm4gZWxlbWVudC5fYXR0cmlidXRlTGlzdC5fYXNBcnJheSgpLmluZGV4T2YoYXR0cmlidXRlKSAhPT0gLTE7XG59XG5leHBvcnRzLmVsZW1lbnRfaGFzID0gZWxlbWVudF9oYXM7XG4vKipcbiAqIENoYW5nZXMgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSBub2RlLlxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgLSBhbiBhdHRyaWJ1dGUgbm9kZVxuICogQHBhcmFtIGVsZW1lbnQgLSBhbiBlbGVtZW50IG5vZGVcbiAqIEBwYXJhbSB2YWx1ZSAtIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5mdW5jdGlvbiBlbGVtZW50X2NoYW5nZShhdHRyaWJ1dGUsIGVsZW1lbnQsIHZhbHVlKSB7XG4gICAgLyoqXG4gICAgICogMS4gUXVldWUgYW4gYXR0cmlidXRlIG11dGF0aW9uIHJlY29yZCBmb3IgZWxlbWVudCB3aXRoIGF0dHJpYnV0ZeKAmXNcbiAgICAgKiBsb2NhbCBuYW1lLCBhdHRyaWJ1dGXigJlzIG5hbWVzcGFjZSwgYW5kIGF0dHJpYnV0ZeKAmXMgdmFsdWUuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5tdXRhdGlvbk9ic2VydmVycykge1xuICAgICAgICBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEub2JzZXJ2ZXJfcXVldWVBdHRyaWJ1dGVNdXRhdGlvblJlY29yZChlbGVtZW50LCBhdHRyaWJ1dGUuX2xvY2FsTmFtZSwgYXR0cmlidXRlLl9uYW1lc3BhY2UsIGF0dHJpYnV0ZS5fdmFsdWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBJZiBlbGVtZW50IGlzIGN1c3RvbSwgdGhlbiBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgY2FsbGJhY2sgcmVhY3Rpb25cbiAgICAgKiB3aXRoIGVsZW1lbnQsIGNhbGxiYWNrIG5hbWUgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgYW5kIGFuIGFyZ3VtZW50XG4gICAgICogbGlzdCBjb250YWluaW5nIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSwgYXR0cmlidXRl4oCZcyB2YWx1ZSwgdmFsdWUsIGFuZFxuICAgICAqIGF0dHJpYnV0ZeKAmXMgbmFtZXNwYWNlLlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuY3VzdG9tRWxlbWVudHMpIHtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0N1c3RvbUVsZW1lbnROb2RlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBDdXN0b21FbGVtZW50QWxnb3JpdGhtXzEuY3VzdG9tRWxlbWVudF9lbnF1ZXVlQUN1c3RvbUVsZW1lbnRDYWxsYmFja1JlYWN0aW9uKGVsZW1lbnQsIFwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrXCIsIFthdHRyaWJ1dGUuX2xvY2FsTmFtZSwgYXR0cmlidXRlLl92YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZS5fbmFtZXNwYWNlXSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogMy4gUnVuIHRoZSBhdHRyaWJ1dGUgY2hhbmdlIHN0ZXBzIHdpdGggZWxlbWVudCwgYXR0cmlidXRl4oCZcyBsb2NhbCBuYW1lLFxuICAgICAqIGF0dHJpYnV0ZeKAmXMgdmFsdWUsIHZhbHVlLCBhbmQgYXR0cmlidXRl4oCZcyBuYW1lc3BhY2UuXG4gICAgICogNC4gU2V0IGF0dHJpYnV0ZeKAmXMgdmFsdWUgdG8gdmFsdWUuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQXR0cmlidXRlQ2hhbmdlU3RlcHMoZWxlbWVudCwgYXR0cmlidXRlLl9sb2NhbE5hbWUsIGF0dHJpYnV0ZS5fdmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGUuX25hbWVzcGFjZSk7XG4gICAgfVxuICAgIGF0dHJpYnV0ZS5fdmFsdWUgPSB2YWx1ZTtcbn1cbmV4cG9ydHMuZWxlbWVudF9jaGFuZ2UgPSBlbGVtZW50X2NoYW5nZTtcbi8qKlxuICogQXBwZW5kcyBhbiBhdHRyaWJ1dGUgdG8gYW4gZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgLSBhbiBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9hcHBlbmQoYXR0cmlidXRlLCBlbGVtZW50KSB7XG4gICAgLyoqXG4gICAgICogMS4gUXVldWUgYW4gYXR0cmlidXRlIG11dGF0aW9uIHJlY29yZCBmb3IgZWxlbWVudCB3aXRoIGF0dHJpYnV0ZeKAmXNcbiAgICAgKiBsb2NhbCBuYW1lLCBhdHRyaWJ1dGXigJlzIG5hbWVzcGFjZSwgYW5kIG51bGwuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5tdXRhdGlvbk9ic2VydmVycykge1xuICAgICAgICBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEub2JzZXJ2ZXJfcXVldWVBdHRyaWJ1dGVNdXRhdGlvblJlY29yZChlbGVtZW50LCBhdHRyaWJ1dGUuX2xvY2FsTmFtZSwgYXR0cmlidXRlLl9uYW1lc3BhY2UsIG51bGwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBJZiBlbGVtZW50IGlzIGN1c3RvbSwgdGhlbiBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgY2FsbGJhY2sgcmVhY3Rpb25cbiAgICAgKiB3aXRoIGVsZW1lbnQsIGNhbGxiYWNrIG5hbWUgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgYW5kIGFuIGFyZ3VtZW50XG4gICAgICogbGlzdCBjb250YWluaW5nIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSwgbnVsbCwgYXR0cmlidXRl4oCZcyB2YWx1ZSwgYW5kXG4gICAgICogYXR0cmlidXRl4oCZcyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5jdXN0b21FbGVtZW50cykge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ3VzdG9tRWxlbWVudE5vZGUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24oZWxlbWVudCwgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgW2F0dHJpYnV0ZS5fbG9jYWxOYW1lLCBudWxsLCBhdHRyaWJ1dGUuX3ZhbHVlLCBhdHRyaWJ1dGUuX25hbWVzcGFjZV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIFJ1biB0aGUgYXR0cmlidXRlIGNoYW5nZSBzdGVwcyB3aXRoIGVsZW1lbnQsIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSxcbiAgICAgKiBudWxsLCBhdHRyaWJ1dGXigJlzIHZhbHVlLCBhbmQgYXR0cmlidXRl4oCZcyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQXR0cmlidXRlQ2hhbmdlU3RlcHMoZWxlbWVudCwgYXR0cmlidXRlLl9sb2NhbE5hbWUsIG51bGwsIGF0dHJpYnV0ZS5fdmFsdWUsIGF0dHJpYnV0ZS5fbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gQXBwZW5kIGF0dHJpYnV0ZSB0byBlbGVtZW504oCZcyBhdHRyaWJ1dGUgbGlzdC5cbiAgICAgKiA1LiBTZXQgYXR0cmlidXRl4oCZcyBlbGVtZW50IHRvIGVsZW1lbnQuXG4gICAgICovXG4gICAgZWxlbWVudC5fYXR0cmlidXRlTGlzdC5fYXNBcnJheSgpLnB1c2goYXR0cmlidXRlKTtcbiAgICBhdHRyaWJ1dGUuX2VsZW1lbnQgPSBlbGVtZW50O1xuICAgIC8vIG1hcmsgdGhhdCB0aGUgZG9jdW1lbnQgaGFzIG5hbWVzcGFjZXNcbiAgICBpZiAoIWVsZW1lbnQuX25vZGVEb2N1bWVudC5faGFzTmFtZXNwYWNlcyAmJiAoYXR0cmlidXRlLl9uYW1lc3BhY2UgIT09IG51bGwgfHxcbiAgICAgICAgYXR0cmlidXRlLl9uYW1lc3BhY2VQcmVmaXggIT09IG51bGwgfHwgYXR0cmlidXRlLl9sb2NhbE5hbWUgPT09IFwieG1sbnNcIikpIHtcbiAgICAgICAgZWxlbWVudC5fbm9kZURvY3VtZW50Ll9oYXNOYW1lc3BhY2VzID0gdHJ1ZTtcbiAgICB9XG59XG5leHBvcnRzLmVsZW1lbnRfYXBwZW5kID0gZWxlbWVudF9hcHBlbmQ7XG4vKipcbiAqIFJlbW92ZXMgYW4gYXR0cmlidXRlIGZyb20gYW4gZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgLSBhbiBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9yZW1vdmUoYXR0cmlidXRlLCBlbGVtZW50KSB7XG4gICAgLyoqXG4gICAgICogMS4gUXVldWUgYW4gYXR0cmlidXRlIG11dGF0aW9uIHJlY29yZCBmb3IgZWxlbWVudCB3aXRoIGF0dHJpYnV0ZeKAmXNcbiAgICAgKiBsb2NhbCBuYW1lLCBhdHRyaWJ1dGXigJlzIG5hbWVzcGFjZSwgYW5kIGF0dHJpYnV0ZeKAmXMgdmFsdWUuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5tdXRhdGlvbk9ic2VydmVycykge1xuICAgICAgICBNdXRhdGlvbk9ic2VydmVyQWxnb3JpdGhtXzEub2JzZXJ2ZXJfcXVldWVBdHRyaWJ1dGVNdXRhdGlvblJlY29yZChlbGVtZW50LCBhdHRyaWJ1dGUuX2xvY2FsTmFtZSwgYXR0cmlidXRlLl9uYW1lc3BhY2UsIGF0dHJpYnV0ZS5fdmFsdWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBJZiBlbGVtZW50IGlzIGN1c3RvbSwgdGhlbiBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgY2FsbGJhY2sgcmVhY3Rpb25cbiAgICAgKiB3aXRoIGVsZW1lbnQsIGNhbGxiYWNrIG5hbWUgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgYW5kIGFuIGFyZ3VtZW50XG4gICAgICogbGlzdCBjb250YWluaW5nIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSwgYXR0cmlidXRl4oCZcyB2YWx1ZSwgbnVsbCxcbiAgICAgKiBhbmQgYXR0cmlidXRl4oCZcyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5jdXN0b21FbGVtZW50cykge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ3VzdG9tRWxlbWVudE5vZGUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24oZWxlbWVudCwgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgW2F0dHJpYnV0ZS5fbG9jYWxOYW1lLCBhdHRyaWJ1dGUuX3ZhbHVlLCBudWxsLCBhdHRyaWJ1dGUuX25hbWVzcGFjZV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIFJ1biB0aGUgYXR0cmlidXRlIGNoYW5nZSBzdGVwcyB3aXRoIGVsZW1lbnQsIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSxcbiAgICAgKiBhdHRyaWJ1dGXigJlzIHZhbHVlLCBudWxsLCBhbmQgYXR0cmlidXRl4oCZcyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQXR0cmlidXRlQ2hhbmdlU3RlcHMoZWxlbWVudCwgYXR0cmlidXRlLl9sb2NhbE5hbWUsIGF0dHJpYnV0ZS5fdmFsdWUsIG51bGwsIGF0dHJpYnV0ZS5fbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMy4gUmVtb3ZlIGF0dHJpYnV0ZSBmcm9tIGVsZW1lbnTigJlzIGF0dHJpYnV0ZSBsaXN0LlxuICAgICAqIDUuIFNldCBhdHRyaWJ1dGXigJlzIGVsZW1lbnQgdG8gbnVsbC5cbiAgICAgKi9cbiAgICBjb25zdCBpbmRleCA9IGVsZW1lbnQuX2F0dHJpYnV0ZUxpc3QuX2FzQXJyYXkoKS5pbmRleE9mKGF0dHJpYnV0ZSk7XG4gICAgZWxlbWVudC5fYXR0cmlidXRlTGlzdC5fYXNBcnJheSgpLnNwbGljZShpbmRleCwgMSk7XG4gICAgYXR0cmlidXRlLl9lbGVtZW50ID0gbnVsbDtcbn1cbmV4cG9ydHMuZWxlbWVudF9yZW1vdmUgPSBlbGVtZW50X3JlbW92ZTtcbi8qKlxuICogUmVwbGFjZXMgYW4gYXR0cmlidXRlIHdpdGggYW5vdGhlciBvZiBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIG9sZEF0dHIgLSBvbGQgYXR0cmlidXRlXG4gKiBAcGFyYW0gbmV3QXR0ciAtIG5ldyBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9yZXBsYWNlKG9sZEF0dHIsIG5ld0F0dHIsIGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBRdWV1ZSBhbiBhdHRyaWJ1dGUgbXV0YXRpb24gcmVjb3JkIGZvciBlbGVtZW50IHdpdGggb2xkQXR0cuKAmXNcbiAgICAgKiBsb2NhbCBuYW1lLCBvbGRBdHRy4oCZcyBuYW1lc3BhY2UsIGFuZCBvbGRBdHRy4oCZcyB2YWx1ZS5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLm11dGF0aW9uT2JzZXJ2ZXJzKSB7XG4gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMS5vYnNlcnZlcl9xdWV1ZUF0dHJpYnV0ZU11dGF0aW9uUmVjb3JkKGVsZW1lbnQsIG9sZEF0dHIuX2xvY2FsTmFtZSwgb2xkQXR0ci5fbmFtZXNwYWNlLCBvbGRBdHRyLl92YWx1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDIuIElmIGVsZW1lbnQgaXMgY3VzdG9tLCB0aGVuIGVucXVldWUgYSBjdXN0b20gZWxlbWVudCBjYWxsYmFjayByZWFjdGlvblxuICAgICAqIHdpdGggZWxlbWVudCwgY2FsbGJhY2sgbmFtZSBcImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFja1wiLCBhbmQgYW4gYXJndW1lbnRcbiAgICAgKiBsaXN0IGNvbnRhaW5pbmcgb2xkQXR0cuKAmXMgbG9jYWwgbmFtZSwgb2xkQXR0cuKAmXMgdmFsdWUsIG5ld0F0dHLigJlzIHZhbHVlLFxuICAgICAqIGFuZCBvbGRBdHRy4oCZcyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5jdXN0b21FbGVtZW50cykge1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ3VzdG9tRWxlbWVudE5vZGUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24oZWxlbWVudCwgXCJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2tcIiwgW29sZEF0dHIuX2xvY2FsTmFtZSwgb2xkQXR0ci5fdmFsdWUsIG5ld0F0dHIuX3ZhbHVlLCBvbGRBdHRyLl9uYW1lc3BhY2VdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBSdW4gdGhlIGF0dHJpYnV0ZSBjaGFuZ2Ugc3RlcHMgd2l0aCBlbGVtZW50LCBvbGRBdHRy4oCZcyBsb2NhbCBuYW1lLFxuICAgICAqIG9sZEF0dHLigJlzIHZhbHVlLCBuZXdBdHRy4oCZcyB2YWx1ZSwgYW5kIG9sZEF0dHLigJlzIG5hbWVzcGFjZS5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLnN0ZXBzKSB7XG4gICAgICAgIERPTUFsZ29yaXRobV8xLmRvbV9ydW5BdHRyaWJ1dGVDaGFuZ2VTdGVwcyhlbGVtZW50LCBvbGRBdHRyLl9sb2NhbE5hbWUsIG9sZEF0dHIuX3ZhbHVlLCBuZXdBdHRyLl92YWx1ZSwgb2xkQXR0ci5fbmFtZXNwYWNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gUmVwbGFjZSBvbGRBdHRyIGJ5IG5ld0F0dHIgaW4gZWxlbWVudOKAmXMgYXR0cmlidXRlIGxpc3QuXG4gICAgICogNS4gU2V0IG9sZEF0dHLigJlzIGVsZW1lbnQgdG8gbnVsbC5cbiAgICAgKiA2LiBTZXQgbmV3QXR0cuKAmXMgZWxlbWVudCB0byBlbGVtZW50LlxuICAgICAqL1xuICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudC5fYXR0cmlidXRlTGlzdC5fYXNBcnJheSgpLmluZGV4T2Yob2xkQXR0cik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBlbGVtZW50Ll9hdHRyaWJ1dGVMaXN0Ll9hc0FycmF5KClbaW5kZXhdID0gbmV3QXR0cjtcbiAgICB9XG4gICAgb2xkQXR0ci5fZWxlbWVudCA9IG51bGw7XG4gICAgbmV3QXR0ci5fZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgLy8gbWFyayB0aGF0IHRoZSBkb2N1bWVudCBoYXMgbmFtZXNwYWNlc1xuICAgIGlmICghZWxlbWVudC5fbm9kZURvY3VtZW50Ll9oYXNOYW1lc3BhY2VzICYmIChuZXdBdHRyLl9uYW1lc3BhY2UgIT09IG51bGwgfHxcbiAgICAgICAgbmV3QXR0ci5fbmFtZXNwYWNlUHJlZml4ICE9PSBudWxsIHx8IG5ld0F0dHIuX2xvY2FsTmFtZSA9PT0gXCJ4bWxuc1wiKSkge1xuICAgICAgICBlbGVtZW50Ll9ub2RlRG9jdW1lbnQuX2hhc05hbWVzcGFjZXMgPSB0cnVlO1xuICAgIH1cbn1cbmV4cG9ydHMuZWxlbWVudF9yZXBsYWNlID0gZWxlbWVudF9yZXBsYWNlO1xuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYXR0cmlidXRlIHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIHF1YWxpZmllZE5hbWUgLSBhbiBhdHRyaWJ1dGUgbmFtZVxuICogQHBhcmFtIGVsZW1lbnQgLSBhbiBlbGVtZW50IHRvIHJlY2VpdmUgdGhlIGF0dHJpYnV0ZVxuICovXG5mdW5jdGlvbiBlbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lKHF1YWxpZmllZE5hbWUsIGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBlbGVtZW50IGlzIGluIHRoZSBIVE1MIG5hbWVzcGFjZSBhbmQgaXRzIG5vZGUgZG9jdW1lbnQgaXMgYW4gSFRNTFxuICAgICAqIGRvY3VtZW50LCB0aGVuIHNldCBxdWFsaWZpZWROYW1lIHRvIHF1YWxpZmllZE5hbWUgaW4gQVNDSUkgbG93ZXJjYXNlLlxuICAgICAqIDIuIFJldHVybiB0aGUgZmlyc3QgYXR0cmlidXRlIGluIGVsZW1lbnTigJlzIGF0dHJpYnV0ZSBsaXN0IHdob3NlIHF1YWxpZmllZFxuICAgICAqIG5hbWUgaXMgcXVhbGlmaWVkTmFtZSwgYW5kIG51bGwgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGlmIChlbGVtZW50Ll9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwgJiYgZWxlbWVudC5fbm9kZURvY3VtZW50Ll90eXBlID09PSBcImh0bWxcIikge1xuICAgICAgICBxdWFsaWZpZWROYW1lID0gcXVhbGlmaWVkTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgICByZXR1cm4gZWxlbWVudC5fYXR0cmlidXRlTGlzdC5fYXNBcnJheSgpLmZpbmQoYXR0ciA9PiBhdHRyLl9xdWFsaWZpZWROYW1lID09PSBxdWFsaWZpZWROYW1lKSB8fCBudWxsO1xufVxuZXhwb3J0cy5lbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lID0gZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZTtcbi8qKlxuICogUmV0cmlldmVzIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBnaXZlbiBuYW1lc3BhY2UgYW5kIGxvY2FsIG5hbWUgZnJvbSBhblxuICogZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBhbiBhdHRyaWJ1dGUgbmFtZXNwYWNlXG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gYW4gYXR0cmlidXRlIGxvY2FsIG5hbWVcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lKG5hbWVzcGFjZSwgbG9jYWxOYW1lLCBlbGVtZW50KSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgbmFtZXNwYWNlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHNldCBpdCB0byBudWxsLlxuICAgICAqIDIuIFJldHVybiB0aGUgYXR0cmlidXRlIGluIGVsZW1lbnTigJlzIGF0dHJpYnV0ZSBsaXN0IHdob3NlIG5hbWVzcGFjZSBpc1xuICAgICAqIG5hbWVzcGFjZSBhbmQgbG9jYWwgbmFtZSBpcyBsb2NhbE5hbWUsIGlmIGFueSwgYW5kIG51bGwgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGNvbnN0IG5zID0gbmFtZXNwYWNlIHx8IG51bGw7XG4gICAgcmV0dXJuIGVsZW1lbnQuX2F0dHJpYnV0ZUxpc3QuX2FzQXJyYXkoKS5maW5kKGF0dHIgPT4gYXR0ci5fbmFtZXNwYWNlID09PSBucyAmJiBhdHRyLl9sb2NhbE5hbWUgPT09IGxvY2FsTmFtZSkgfHwgbnVsbDtcbn1cbmV4cG9ydHMuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lID0gZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lO1xuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYXR0cmlidXRlJ3MgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBuYW1lc3BhY2UgYW5kIGxvY2FsXG4gKiBuYW1lIGZyb20gYW4gZWxlbWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBsb2NhbE5hbWUgLSBhbiBhdHRyaWJ1dGUgbG9jYWwgbmFtZVxuICogQHBhcmFtIG5hbWVzcGFjZSAtIGFuIGF0dHJpYnV0ZSBuYW1lc3BhY2VcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9nZXRBbkF0dHJpYnV0ZVZhbHVlKGVsZW1lbnQsIGxvY2FsTmFtZSwgbmFtZXNwYWNlID0gJycpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgYXR0ciBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSxcbiAgICAgKiBsb2NhbE5hbWUsIGFuZCBlbGVtZW50LlxuICAgICAqIDIuIElmIGF0dHIgaXMgbnVsbCwgdGhlbiByZXR1cm4gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKiAzLiBSZXR1cm4gYXR0cuKAmXMgdmFsdWUuXG4gICAgICovXG4gICAgY29uc3QgYXR0ciA9IGVsZW1lbnRfZ2V0QW5BdHRyaWJ1dGVCeU5hbWVzcGFjZUFuZExvY2FsTmFtZShuYW1lc3BhY2UsIGxvY2FsTmFtZSwgZWxlbWVudCk7XG4gICAgaWYgKGF0dHIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiAnJztcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBhdHRyLl92YWx1ZTtcbn1cbmV4cG9ydHMuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZVZhbHVlID0gZWxlbWVudF9nZXRBbkF0dHJpYnV0ZVZhbHVlO1xuLyoqXG4gKiBTZXRzIGFuIGF0dHJpYnV0ZSBvZiBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIGF0dHIgLSBhbiBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCB0byByZWNlaXZlIHRoZSBhdHRyaWJ1dGVcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9zZXRBbkF0dHJpYnV0ZShhdHRyLCBlbGVtZW50KSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgYXR0cuKAmXMgZWxlbWVudCBpcyBuZWl0aGVyIG51bGwgbm9yIGVsZW1lbnQsIHRocm93IGFuXG4gICAgICogXCJJblVzZUF0dHJpYnV0ZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqIDIuIExldCBvbGRBdHRyIGJlIHRoZSByZXN1bHQgb2YgZ2V0dGluZyBhbiBhdHRyaWJ1dGUgZ2l2ZW4gYXR0cuKAmXNcbiAgICAgKiBuYW1lc3BhY2UsIGF0dHLigJlzIGxvY2FsIG5hbWUsIGFuZCBlbGVtZW50LlxuICAgICAqIDMuIElmIG9sZEF0dHIgaXMgYXR0ciwgcmV0dXJuIGF0dHIuXG4gICAgICogNC4gSWYgb2xkQXR0ciBpcyBub24tbnVsbCwgcmVwbGFjZSBpdCBieSBhdHRyIGluIGVsZW1lbnQuXG4gICAgICogNS4gT3RoZXJ3aXNlLCBhcHBlbmQgYXR0ciB0byBlbGVtZW50LlxuICAgICAqIDYuIFJldHVybiBvbGRBdHRyLlxuICAgICAqL1xuICAgIGlmIChhdHRyLl9lbGVtZW50ICE9PSBudWxsICYmIGF0dHIuX2VsZW1lbnQgIT09IGVsZW1lbnQpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JblVzZUF0dHJpYnV0ZUVycm9yKGBUaGlzIGF0dHJpYnV0ZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZG9jdW1lbnQ6ICR7YXR0ci5fcXVhbGlmaWVkTmFtZX0gYXMgYSBjaGlsZCBvZiAke2F0dHIuX2VsZW1lbnQuX3F1YWxpZmllZE5hbWV9LmApO1xuICAgIGNvbnN0IG9sZEF0dHIgPSBlbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUoYXR0ci5fbmFtZXNwYWNlIHx8ICcnLCBhdHRyLl9sb2NhbE5hbWUsIGVsZW1lbnQpO1xuICAgIGlmIChvbGRBdHRyID09PSBhdHRyKVxuICAgICAgICByZXR1cm4gYXR0cjtcbiAgICBpZiAob2xkQXR0ciAhPT0gbnVsbCkge1xuICAgICAgICBlbGVtZW50X3JlcGxhY2Uob2xkQXR0ciwgYXR0ciwgZWxlbWVudCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBlbGVtZW50X2FwcGVuZChhdHRyLCBlbGVtZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG9sZEF0dHI7XG59XG5leHBvcnRzLmVsZW1lbnRfc2V0QW5BdHRyaWJ1dGUgPSBlbGVtZW50X3NldEFuQXR0cmlidXRlO1xuLyoqXG4gKiBTZXRzIGFuIGF0dHJpYnV0ZSdzIHZhbHVlIG9mIGFuIGVsZW1lbnQgbm9kZS5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAtIGFuIGVsZW1lbnQgdG8gcmVjZWl2ZSB0aGUgYXR0cmlidXRlXG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gYW4gYXR0cmlidXRlIGxvY2FsIG5hbWVcbiAqIEBwYXJhbSB2YWx1ZSAtIGFuIGF0dHJpYnV0ZSB2YWx1ZVxuICogQHBhcmFtIHByZWZpeCAtIGFuIGF0dHJpYnV0ZSBwcmVmaXhcbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBhbiBhdHRyaWJ1dGUgbmFtZXNwYWNlXG4gKi9cbmZ1bmN0aW9uIGVsZW1lbnRfc2V0QW5BdHRyaWJ1dGVWYWx1ZShlbGVtZW50LCBsb2NhbE5hbWUsIHZhbHVlLCBwcmVmaXggPSBudWxsLCBuYW1lc3BhY2UgPSBudWxsKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgcHJlZml4IGlzIG5vdCBnaXZlbiwgc2V0IGl0IHRvIG51bGwuXG4gICAgICogMi4gSWYgbmFtZXNwYWNlIGlzIG5vdCBnaXZlbiwgc2V0IGl0IHRvIG51bGwuXG4gICAgICogMy4gTGV0IGF0dHJpYnV0ZSBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSxcbiAgICAgKiBsb2NhbE5hbWUsIGFuZCBlbGVtZW50LlxuICAgICAqIDQuIElmIGF0dHJpYnV0ZSBpcyBudWxsLCBjcmVhdGUgYW4gYXR0cmlidXRlIHdob3NlIG5hbWVzcGFjZSBpc1xuICAgICAqIG5hbWVzcGFjZSwgbmFtZXNwYWNlIHByZWZpeCBpcyBwcmVmaXgsIGxvY2FsIG5hbWUgaXMgbG9jYWxOYW1lLCB2YWx1ZVxuICAgICAqIGlzIHZhbHVlLCBhbmQgbm9kZSBkb2N1bWVudCBpcyBlbGVtZW504oCZcyBub2RlIGRvY3VtZW50LCB0aGVuIGFwcGVuZCB0aGlzXG4gICAgICogYXR0cmlidXRlIHRvIGVsZW1lbnQsIGFuZCB0aGVuIHJldHVybi5cbiAgICAgKiA1LiBDaGFuZ2UgYXR0cmlidXRlIGZyb20gZWxlbWVudCB0byB2YWx1ZS5cbiAgICAgKi9cbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBlbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlIHx8ICcnLCBsb2NhbE5hbWUsIGVsZW1lbnQpO1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbmV3QXR0ciA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9hdHRyKGVsZW1lbnQuX25vZGVEb2N1bWVudCwgbG9jYWxOYW1lKTtcbiAgICAgICAgbmV3QXR0ci5fbmFtZXNwYWNlID0gbmFtZXNwYWNlO1xuICAgICAgICBuZXdBdHRyLl9uYW1lc3BhY2VQcmVmaXggPSBwcmVmaXg7XG4gICAgICAgIG5ld0F0dHIuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIGVsZW1lbnRfYXBwZW5kKG5ld0F0dHIsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsZW1lbnRfY2hhbmdlKGF0dHJpYnV0ZSwgZWxlbWVudCwgdmFsdWUpO1xufVxuZXhwb3J0cy5lbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWUgPSBlbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWU7XG4vKipcbiAqIFJlbW92ZXMgYW4gYXR0cmlidXRlIHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSBhbiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIHF1YWxpZmllZE5hbWUgLSBhbiBhdHRyaWJ1dGUgbmFtZVxuICogQHBhcmFtIGVsZW1lbnQgLSBhbiBlbGVtZW50IHRvIHJlY2VpdmUgdGhlIGF0dHJpYnV0ZVxuICovXG5mdW5jdGlvbiBlbGVtZW50X3JlbW92ZUFuQXR0cmlidXRlQnlOYW1lKHF1YWxpZmllZE5hbWUsIGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgYXR0ciBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIHF1YWxpZmllZE5hbWVcbiAgICAgKiBhbmQgZWxlbWVudC5cbiAgICAgKiAyLiBJZiBhdHRyIGlzIG5vbi1udWxsLCByZW1vdmUgaXQgZnJvbSBlbGVtZW50LlxuICAgICAqIDMuIFJldHVybiBhdHRyLlxuICAgICAqL1xuICAgIGNvbnN0IGF0dHIgPSBlbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lKHF1YWxpZmllZE5hbWUsIGVsZW1lbnQpO1xuICAgIGlmIChhdHRyICE9PSBudWxsKSB7XG4gICAgICAgIGVsZW1lbnRfcmVtb3ZlKGF0dHIsIGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gYXR0cjtcbn1cbmV4cG9ydHMuZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZSA9IGVsZW1lbnRfcmVtb3ZlQW5BdHRyaWJ1dGVCeU5hbWU7XG4vKipcbiAqIFJlbW92ZXMgYW4gYXR0cmlidXRlIHdpdGggdGhlIGdpdmVuIG5hbWVzcGFjZSBhbmQgbG9jYWwgbmFtZSBmcm9tIGFuXG4gKiBlbGVtZW50IG5vZGUuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIGFuIGF0dHJpYnV0ZSBuYW1lc3BhY2VcbiAqIEBwYXJhbSBsb2NhbE5hbWUgLSBhbiBhdHRyaWJ1dGUgbG9jYWwgbmFtZVxuICogQHBhcmFtIGVsZW1lbnQgLSBhbiBlbGVtZW50IHRvIHJlY2VpdmUgdGhlIGF0dHJpYnV0ZVxuICovXG5mdW5jdGlvbiBlbGVtZW50X3JlbW92ZUFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlLCBsb2NhbE5hbWUsIGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgYXR0ciBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSwgbG9jYWxOYW1lLCBhbmQgZWxlbWVudC5cbiAgICAgKiAyLiBJZiBhdHRyIGlzIG5vbi1udWxsLCByZW1vdmUgaXQgZnJvbSBlbGVtZW50LlxuICAgICAqIDMuIFJldHVybiBhdHRyLlxuICAgICAqL1xuICAgIGNvbnN0IGF0dHIgPSBlbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlLCBsb2NhbE5hbWUsIGVsZW1lbnQpO1xuICAgIGlmIChhdHRyICE9PSBudWxsKSB7XG4gICAgICAgIGVsZW1lbnRfcmVtb3ZlKGF0dHIsIGVsZW1lbnQpO1xuICAgIH1cbiAgICByZXR1cm4gYXR0cjtcbn1cbmV4cG9ydHMuZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lID0gZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lO1xuLyoqXG4gKiBDcmVhdGVzIGFuIGVsZW1lbnQgbm9kZS5cbiAqIFNlZTogaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWNyZWF0ZS1lbGVtZW50LlxuICpcbiAqIEBwYXJhbSBkb2N1bWVudCAtIHRoZSBkb2N1bWVudCBvd25pbmcgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSBsb2NhbE5hbWUgLSBsb2NhbCBuYW1lXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gZWxlbWVudCBuYW1lc3BhY2VcbiAqIEBwYXJhbSBwcmVmaXggLSBuYW1lc3BhY2UgcHJlZml4XG4gKiBAcGFyYW0gaXMgLSB0aGUgXCJpc1wiIHZhbHVlXG4gKiBAcGFyYW0gc3luY2hyb25vdXNDdXN0b21FbGVtZW50c0ZsYWcgLSBzeW5jaHJvbm91cyBjdXN0b20gZWxlbWVudHMgZmxhZ1xuICovXG5mdW5jdGlvbiBlbGVtZW50X2NyZWF0ZUFuRWxlbWVudChkb2N1bWVudCwgbG9jYWxOYW1lLCBuYW1lc3BhY2UsIHByZWZpeCA9IG51bGwsIGlzID0gbnVsbCwgc3luY2hyb25vdXNDdXN0b21FbGVtZW50c0ZsYWcgPSBmYWxzZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIHByZWZpeCB3YXMgbm90IGdpdmVuLCBsZXQgcHJlZml4IGJlIG51bGwuXG4gICAgICogMi4gSWYgaXMgd2FzIG5vdCBnaXZlbiwgbGV0IGlzIGJlIG51bGwuXG4gICAgICogMy4gTGV0IHJlc3VsdCBiZSBudWxsLlxuICAgICAqL1xuICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgIGlmICghZG9tXzEuZG9tLmZlYXR1cmVzLmN1c3RvbUVsZW1lbnRzKSB7XG4gICAgICAgIHJlc3VsdCA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9lbGVtZW50KGRvY3VtZW50LCBsb2NhbE5hbWUsIG5hbWVzcGFjZSwgcHJlZml4KTtcbiAgICAgICAgcmVzdWx0Ll9jdXN0b21FbGVtZW50U3RhdGUgPSBcInVuY3VzdG9taXplZFwiO1xuICAgICAgICByZXN1bHQuX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uID0gbnVsbDtcbiAgICAgICAgcmVzdWx0Ll9pcyA9IGlzO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA0LiBMZXQgZGVmaW5pdGlvbiBiZSB0aGUgcmVzdWx0IG9mIGxvb2tpbmcgdXAgYSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uXG4gICAgICogZ2l2ZW4gZG9jdW1lbnQsIG5hbWVzcGFjZSwgbG9jYWxOYW1lLCBhbmQgaXMuXG4gICAgICovXG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2xvb2tVcEFDdXN0b21FbGVtZW50RGVmaW5pdGlvbihkb2N1bWVudCwgbmFtZXNwYWNlLCBsb2NhbE5hbWUsIGlzKTtcbiAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCAmJiBkZWZpbml0aW9uLm5hbWUgIT09IGRlZmluaXRpb24ubG9jYWxOYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAqIDUuIElmIGRlZmluaXRpb24gaXMgbm9uLW51bGwsIGFuZCBkZWZpbml0aW9u4oCZcyBuYW1lIGlzIG5vdCBlcXVhbCB0b1xuICAgICAgICAqIGl0cyBsb2NhbCBuYW1lIChpLmUuLCBkZWZpbml0aW9uIHJlcHJlc2VudHMgYSBjdXN0b21pemVkIGJ1aWx0LWluXG4gICAgICAgICogZWxlbWVudCksIHRoZW46XG4gICAgICAgICAgKiA1LjEuIExldCBpbnRlcmZhY2UgYmUgdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGZvciBsb2NhbE5hbWUgYW5kIHRoZSBIVE1MXG4gICAgICAgICAgKiBuYW1lc3BhY2UuXG4gICAgICAgICAgKiA1LjIuIFNldCByZXN1bHQgdG8gYSBuZXcgZWxlbWVudCB0aGF0IGltcGxlbWVudHMgaW50ZXJmYWNlLCB3aXRoIG5vXG4gICAgICAgICAgKiBhdHRyaWJ1dGVzLCBuYW1lc3BhY2Ugc2V0IHRvIHRoZSBIVE1MIG5hbWVzcGFjZSwgbmFtZXNwYWNlIHByZWZpeFxuICAgICAgICAgICogc2V0IHRvIHByZWZpeCwgbG9jYWwgbmFtZSBzZXQgdG8gbG9jYWxOYW1lLCBjdXN0b20gZWxlbWVudCBzdGF0ZSBzZXRcbiAgICAgICAgICAqIHRvIFwidW5kZWZpbmVkXCIsIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gc2V0IHRvIG51bGwsIGlzIHZhbHVlIHNldFxuICAgICAgICAgICogdG8gaXMsIGFuZCBub2RlIGRvY3VtZW50IHNldCB0byBkb2N1bWVudC5cbiAgICAgICAgICAqIDUuMy4gSWYgdGhlIHN5bmNocm9ub3VzIGN1c3RvbSBlbGVtZW50cyBmbGFnIGlzIHNldCwgdXBncmFkZSBlbGVtZW50XG4gICAgICAgICAgKiB1c2luZyBkZWZpbml0aW9uLlxuICAgICAgICAgICogNS40LiBPdGhlcndpc2UsIGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGdpdmVuIHJlc3VsdFxuICAgICAgICAgICogYW5kIGRlZmluaXRpb24uXG4gICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZWxlbWVuSW50ZXJmYWNlID0gRG9jdW1lbnRBbGdvcml0aG1fMS5kb2N1bWVudF9lbGVtZW50SW50ZXJmYWNlKGxvY2FsTmFtZSwgaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCk7XG4gICAgICAgIHJlc3VsdCA9IG5ldyBlbGVtZW5JbnRlcmZhY2UoKTtcbiAgICAgICAgcmVzdWx0Ll9sb2NhbE5hbWUgPSBsb2NhbE5hbWU7XG4gICAgICAgIHJlc3VsdC5fbmFtZXNwYWNlID0gaW5mcmFfMS5uYW1lc3BhY2UuSFRNTDtcbiAgICAgICAgcmVzdWx0Ll9uYW1lc3BhY2VQcmVmaXggPSBwcmVmaXg7XG4gICAgICAgIHJlc3VsdC5fY3VzdG9tRWxlbWVudFN0YXRlID0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgcmVzdWx0Ll9jdXN0b21FbGVtZW50RGVmaW5pdGlvbiA9IG51bGw7XG4gICAgICAgIHJlc3VsdC5faXMgPSBpcztcbiAgICAgICAgcmVzdWx0Ll9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgaWYgKHN5bmNocm9ub3VzQ3VzdG9tRWxlbWVudHNGbGFnKSB7XG4gICAgICAgICAgICBDdXN0b21FbGVtZW50QWxnb3JpdGhtXzEuY3VzdG9tRWxlbWVudF91cGdyYWRlKGRlZmluaXRpb24sIHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBDdXN0b21FbGVtZW50QWxnb3JpdGhtXzEuY3VzdG9tRWxlbWVudF9lbnF1ZXVlQUN1c3RvbUVsZW1lbnRVcGdyYWRlUmVhY3Rpb24ocmVzdWx0LCBkZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmIChkZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA2LiBPdGhlcndpc2UsIGlmIGRlZmluaXRpb24gaXMgbm9uLW51bGwsIHRoZW46XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoc3luY2hyb25vdXNDdXN0b21FbGVtZW50c0ZsYWcpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNi4xLiBJZiB0aGUgc3luY2hyb25vdXMgY3VzdG9tIGVsZW1lbnRzIGZsYWcgaXMgc2V0LCB0aGVuIHJ1biB0aGVzZVxuICAgICAgICAgICAgICogc3RlcHMgd2hpbGUgY2F0Y2hpbmcgYW55IGV4Y2VwdGlvbnM6XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogNi4xLjEuIExldCBDIGJlIGRlZmluaXRpb27igJlzIGNvbnN0cnVjdG9yLlxuICAgICAgICAgICAgICAgICAqIDYuMS4yLiBTZXQgcmVzdWx0IHRvIHRoZSByZXN1bHQgb2YgY29uc3RydWN0aW5nIEMsIHdpdGggbm8gYXJndW1lbnRzLlxuICAgICAgICAgICAgICAgICAqIDYuMS4zLiBBc3NlcnQ6IHJlc3VsdOKAmXMgY3VzdG9tIGVsZW1lbnQgc3RhdGUgYW5kIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgKiBhcmUgaW5pdGlhbGl6ZWQuXG4gICAgICAgICAgICAgICAgICogNi4xLjQuIEFzc2VydDogcmVzdWx04oCZcyBuYW1lc3BhY2UgaXMgdGhlIEhUTUwgbmFtZXNwYWNlLlxuICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gSURMIGVuZm9yY2VzIHRoYXQgcmVzdWx0IGlzIGFuIEhUTUxFbGVtZW50IG9iamVjdCwgd2hpY2ggYWxsXG4gICAgICAgICAgICAgICAgICogdXNlIHRoZSBIVE1MIG5hbWVzcGFjZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBDID0gZGVmaW5pdGlvbi5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgQygpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlc3VsdC5fY3VzdG9tRWxlbWVudFN0YXRlICE9PSB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlc3VsdC5fY3VzdG9tRWxlbWVudERlZmluaXRpb24gIT09IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzdWx0Ll9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDYuMS41LiBJZiByZXN1bHTigJlzIGF0dHJpYnV0ZSBsaXN0IGlzIG5vdCBlbXB0eSwgdGhlbiB0aHJvdyBhXG4gICAgICAgICAgICAgICAgICogXCJOb3RTdXBwb3J0ZWRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICAgICAgICAgKiA2LjEuNi4gSWYgcmVzdWx0IGhhcyBjaGlsZHJlbiwgdGhlbiB0aHJvdyBhIFwiTm90U3VwcG9ydGVkRXJyb3JcIlxuICAgICAgICAgICAgICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICAgICAgICAgKiA2LjEuNy4gSWYgcmVzdWx04oCZcyBwYXJlbnQgaXMgbm90IG51bGwsIHRoZW4gdGhyb3cgYVxuICAgICAgICAgICAgICAgICAqIFwiTm90U3VwcG9ydGVkRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAgICAgICAgICogNi4xLjguIElmIHJlc3VsdOKAmXMgbm9kZSBkb2N1bWVudCBpcyBub3QgZG9jdW1lbnQsIHRoZW4gdGhyb3cgYVxuICAgICAgICAgICAgICAgICAqIFwiTm90U3VwcG9ydGVkRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAgICAgICAgICogNi4xLjkuIElmIHJlc3VsdOKAmXMgbG9jYWwgbmFtZSBpcyBub3QgZXF1YWwgdG8gbG9jYWxOYW1lLCB0aGVuIHRocm93XG4gICAgICAgICAgICAgICAgICogYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoICE9PSAwKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoXCJDdXN0b20gZWxlbWVudCBhbHJlYWR5IGhhcyBhdHRyaWJ1dGVzLlwiKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Ll9jaGlsZHJlbi5zaXplICE9PSAwKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoXCJDdXN0b20gZWxlbWVudCBhbHJlYWR5IGhhcyBjaGlsZCBub2Rlcy5cIik7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5fcGFyZW50ICE9PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoXCJDdXN0b20gZWxlbWVudCBhbHJlYWR5IGhhcyBhIHBhcmVudCBub2RlLlwiKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Ll9ub2RlRG9jdW1lbnQgIT09IGRvY3VtZW50KVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoXCJDdXN0b20gZWxlbWVudCBpcyBhbHJlYWR5IGluIGEgZG9jdW1lbnQuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuX2xvY2FsTmFtZSAhPT0gbG9jYWxOYW1lKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoXCJDdXN0b20gZWxlbWVudCBoYXMgYSBkaWZmZXJlbnQgbG9jYWwgbmFtZS5cIik7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogNi4xLjEwLiBTZXQgcmVzdWx04oCZcyBuYW1lc3BhY2UgcHJlZml4IHRvIHByZWZpeC5cbiAgICAgICAgICAgICAgICAgKiA2LjEuMTEuIFNldCByZXN1bHTigJlzIGlzIHZhbHVlIHRvIG51bGwuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgcmVzdWx0Ll9uYW1lc3BhY2VQcmVmaXggPSBwcmVmaXg7XG4gICAgICAgICAgICAgICAgcmVzdWx0Ll9pcyA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGFueSBvZiB0aGVzZSBzdGVwcyB0aHJldyBhbiBleGNlcHRpb24sIHRoZW46XG4gICAgICAgICAgICAgICAgICogLSBSZXBvcnQgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICAgICAgICAgKiAtIFNldCByZXN1bHQgdG8gYSBuZXcgZWxlbWVudCB0aGF0IGltcGxlbWVudHMgdGhlIEhUTUxVbmtub3duRWxlbWVudFxuICAgICAgICAgICAgICAgICAqIGludGVyZmFjZSwgd2l0aCBubyBhdHRyaWJ1dGVzLCBuYW1lc3BhY2Ugc2V0IHRvIHRoZSBIVE1MIG5hbWVzcGFjZSxcbiAgICAgICAgICAgICAgICAgKiBuYW1lc3BhY2UgcHJlZml4IHNldCB0byBwcmVmaXgsIGxvY2FsIG5hbWUgc2V0IHRvIGxvY2FsTmFtZSwgY3VzdG9tXG4gICAgICAgICAgICAgICAgICogZWxlbWVudCBzdGF0ZSBzZXQgdG8gXCJmYWlsZWRcIiwgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBzZXQgdG8gbnVsbCxcbiAgICAgICAgICAgICAgICAgKiBpcyB2YWx1ZSBzZXQgdG8gbnVsbCwgYW5kIG5vZGUgZG9jdW1lbnQgc2V0IHRvIGRvY3VtZW50LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IFJlcG9ydCB0aGUgZXhjZXB0aW9uXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2h0bWxVbmtub3duRWxlbWVudChkb2N1bWVudCwgbG9jYWxOYW1lLCBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MLCBwcmVmaXgpO1xuICAgICAgICAgICAgICAgIHJlc3VsdC5fY3VzdG9tRWxlbWVudFN0YXRlID0gXCJmYWlsZWRcIjtcbiAgICAgICAgICAgICAgICByZXN1bHQuX2N1c3RvbUVsZW1lbnREZWZpbml0aW9uID0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXN1bHQuX2lzID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNi4yLiBPdGhlcndpc2U6XG4gICAgICAgICAgICAgKiA2LjIuMS4gU2V0IHJlc3VsdCB0byBhIG5ldyBlbGVtZW50IHRoYXQgaW1wbGVtZW50cyB0aGUgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAqIGludGVyZmFjZSwgd2l0aCBubyBhdHRyaWJ1dGVzLCBuYW1lc3BhY2Ugc2V0IHRvIHRoZSBIVE1MIG5hbWVzcGFjZSxcbiAgICAgICAgICAgICAqIG5hbWVzcGFjZSBwcmVmaXggc2V0IHRvIHByZWZpeCwgbG9jYWwgbmFtZSBzZXQgdG8gbG9jYWxOYW1lLCBjdXN0b21cbiAgICAgICAgICAgICAqIGVsZW1lbnQgc3RhdGUgc2V0IHRvIFwidW5kZWZpbmVkXCIsIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gc2V0IHRvXG4gICAgICAgICAgICAgKiBudWxsLCBpcyB2YWx1ZSBzZXQgdG8gbnVsbCwgYW5kIG5vZGUgZG9jdW1lbnQgc2V0IHRvIGRvY3VtZW50LlxuICAgICAgICAgICAgICogNi4yLjIuIEVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGdpdmVuIHJlc3VsdCBhbmRcbiAgICAgICAgICAgICAqIGRlZmluaXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJlc3VsdCA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9odG1sRWxlbWVudChkb2N1bWVudCwgbG9jYWxOYW1lLCBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MLCBwcmVmaXgpO1xuICAgICAgICAgICAgcmVzdWx0Ll9jdXN0b21FbGVtZW50U3RhdGUgPSBcInVuZGVmaW5lZFwiO1xuICAgICAgICAgICAgcmVzdWx0Ll9jdXN0b21FbGVtZW50RGVmaW5pdGlvbiA9IG51bGw7XG4gICAgICAgICAgICByZXN1bHQuX2lzID0gbnVsbDtcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudFVwZ3JhZGVSZWFjdGlvbihyZXN1bHQsIGRlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogNy4gT3RoZXJ3aXNlOlxuICAgICAgICAgKiA3LjEuIExldCBpbnRlcmZhY2UgYmUgdGhlIGVsZW1lbnQgaW50ZXJmYWNlIGZvciBsb2NhbE5hbWUgYW5kXG4gICAgICAgICAqIG5hbWVzcGFjZS5cbiAgICAgICAgICogNy4yLiBTZXQgcmVzdWx0IHRvIGEgbmV3IGVsZW1lbnQgdGhhdCBpbXBsZW1lbnRzIGludGVyZmFjZSwgd2l0aCBub1xuICAgICAgICAgKiBhdHRyaWJ1dGVzLCBuYW1lc3BhY2Ugc2V0IHRvIG5hbWVzcGFjZSwgbmFtZXNwYWNlIHByZWZpeCBzZXQgdG8gcHJlZml4LFxuICAgICAgICAgKiBsb2NhbCBuYW1lIHNldCB0byBsb2NhbE5hbWUsIGN1c3RvbSBlbGVtZW50IHN0YXRlIHNldCB0b1xuICAgICAgICAgKiBcInVuY3VzdG9taXplZFwiLCBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIHNldCB0byBudWxsLCBpcyB2YWx1ZSBzZXQgdG9cbiAgICAgICAgICogaXMsIGFuZCBub2RlIGRvY3VtZW50IHNldCB0byBkb2N1bWVudC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGVsZW1lbnRJbnRlcmZhY2UgPSBEb2N1bWVudEFsZ29yaXRobV8xLmRvY3VtZW50X2VsZW1lbnRJbnRlcmZhY2UobG9jYWxOYW1lLCBuYW1lc3BhY2UpO1xuICAgICAgICByZXN1bHQgPSBuZXcgZWxlbWVudEludGVyZmFjZSgpO1xuICAgICAgICByZXN1bHQuX2xvY2FsTmFtZSA9IGxvY2FsTmFtZTtcbiAgICAgICAgcmVzdWx0Ll9uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gICAgICAgIHJlc3VsdC5fbmFtZXNwYWNlUHJlZml4ID0gcHJlZml4O1xuICAgICAgICByZXN1bHQuX2N1c3RvbUVsZW1lbnRTdGF0ZSA9IFwidW5jdXN0b21pemVkXCI7XG4gICAgICAgIHJlc3VsdC5fY3VzdG9tRWxlbWVudERlZmluaXRpb24gPSBudWxsO1xuICAgICAgICByZXN1bHQuX2lzID0gaXM7XG4gICAgICAgIHJlc3VsdC5fbm9kZURvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA3LjMuIElmIG5hbWVzcGFjZSBpcyB0aGUgSFRNTCBuYW1lc3BhY2UsIGFuZCBlaXRoZXIgbG9jYWxOYW1lIGlzIGFcbiAgICAgICAgICogdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSBvciBpcyBpcyBub24tbnVsbCwgdGhlbiBzZXQgcmVzdWx04oCZc1xuICAgICAgICAgKiBjdXN0b20gZWxlbWVudCBzdGF0ZSB0byBcInVuZGVmaW5lZFwiLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCAmJiAoaXMgIT09IG51bGwgfHxcbiAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRBbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2lzVmFsaWRDdXN0b21FbGVtZW50TmFtZShsb2NhbE5hbWUpKSkge1xuICAgICAgICAgICAgcmVzdWx0Ll9jdXN0b21FbGVtZW50U3RhdGUgPSBcInVuZGVmaW5lZFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmFibGUgdG8gY3JlYXRlIGVsZW1lbnQuXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA4LiBSZXR1cm5zIHJlc3VsdFxuICAgICAqL1xuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLmVsZW1lbnRfY3JlYXRlQW5FbGVtZW50ID0gZWxlbWVudF9jcmVhdGVBbkVsZW1lbnQ7XG4vKipcbiAqIEluc2VydHMgYSBuZXcgbm9kZSBhZGphY2VudCB0byB0aGlzIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBhIHJlZmVyZW5jZSBlbGVtZW50XG4gKiBAcGFyYW0gd2hlcmUgLSBhIHN0cmluZyBkZWZpbmluZyB3aGVyZSB0byBpbnNlcnQgdGhlIGVsZW1lbnQgbm9kZS5cbiAqICAgLSBgYmVmb3JlYmVnaW5gIGJlZm9yZSB0aGlzIGVsZW1lbnQgaXRzZWxmLlxuICogICAtIGBhZnRlcmJlZ2luYCBiZWZvcmUgdGhlIGZpcnN0IGNoaWxkLlxuICogICAtIGBiZWZvcmVlbmRgIGFmdGVyIHRoZSBsYXN0IGNoaWxkLlxuICogICAtIGBhZnRlcmVuZGAgYWZ0ZXIgdGhpcyBlbGVtZW50IGl0c2VsZi5cbiAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBpbnNlcnRcbiAqL1xuZnVuY3Rpb24gZWxlbWVudF9pbnNlcnRBZGphY2VudChlbGVtZW50LCB3aGVyZSwgbm9kZSkge1xuICAgIC8qKlxuICAgICAqIC0gXCJiZWZvcmViZWdpblwiXG4gICAgICogSWYgZWxlbWVudOKAmXMgcGFyZW50IGlzIG51bGwsIHJldHVybiBudWxsLlxuICAgICAqIFJldHVybiB0aGUgcmVzdWx0IG9mIHByZS1pbnNlcnRpbmcgbm9kZSBpbnRvIGVsZW1lbnTigJlzIHBhcmVudCBiZWZvcmVcbiAgICAgKiBlbGVtZW50LlxuICAgICAqIC0gXCJhZnRlcmJlZ2luXCJcbiAgICAgKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBwcmUtaW5zZXJ0aW5nIG5vZGUgaW50byBlbGVtZW50IGJlZm9yZSBlbGVtZW504oCZc1xuICAgICAqIGZpcnN0IGNoaWxkLlxuICAgICAqIC0gXCJiZWZvcmVlbmRcIlxuICAgICAqIFJldHVybiB0aGUgcmVzdWx0IG9mIHByZS1pbnNlcnRpbmcgbm9kZSBpbnRvIGVsZW1lbnQgYmVmb3JlIG51bGwuXG4gICAgICogLSBcImFmdGVyZW5kXCJcbiAgICAgKiBJZiBlbGVtZW504oCZcyBwYXJlbnQgaXMgbnVsbCwgcmV0dXJuIG51bGwuXG4gICAgICogUmV0dXJuIHRoZSByZXN1bHQgb2YgcHJlLWluc2VydGluZyBub2RlIGludG8gZWxlbWVudOKAmXMgcGFyZW50IGJlZm9yZSBlbGVtZW504oCZcyBuZXh0IHNpYmxpbmcuXG4gICAgICogLSBPdGhlcndpc2VcbiAgICAgKiBUaHJvdyBhIFwiU3ludGF4RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICovXG4gICAgc3dpdGNoICh3aGVyZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2JlZm9yZWJlZ2luJzpcbiAgICAgICAgICAgIGlmIChlbGVtZW50Ll9wYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICByZXR1cm4gTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9wcmVJbnNlcnQobm9kZSwgZWxlbWVudC5fcGFyZW50LCBlbGVtZW50KTtcbiAgICAgICAgY2FzZSAnYWZ0ZXJiZWdpbic6XG4gICAgICAgICAgICByZXR1cm4gTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9wcmVJbnNlcnQobm9kZSwgZWxlbWVudCwgZWxlbWVudC5fZmlyc3RDaGlsZCk7XG4gICAgICAgIGNhc2UgJ2JlZm9yZWVuZCc6XG4gICAgICAgICAgICByZXR1cm4gTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9wcmVJbnNlcnQobm9kZSwgZWxlbWVudCwgbnVsbCk7XG4gICAgICAgIGNhc2UgJ2FmdGVyZW5kJzpcbiAgICAgICAgICAgIGlmIChlbGVtZW50Ll9wYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICByZXR1cm4gTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9wcmVJbnNlcnQobm9kZSwgZWxlbWVudC5fcGFyZW50LCBlbGVtZW50Ll9uZXh0U2libGluZyk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuU3ludGF4RXJyb3IoYEludmFsaWQgJ3doZXJlJyBhcmd1bWVudC4gXCJiZWZvcmViZWdpblwiLCBcImFmdGVyYmVnaW5cIiwgXCJiZWZvcmVlbmRcIiBvciBcImFmdGVyZW5kXCIgZXhwZWN0ZWRgKTtcbiAgICB9XG59XG5leHBvcnRzLmVsZW1lbnRfaW5zZXJ0QWRqYWNlbnQgPSBlbGVtZW50X2luc2VydEFkamFjZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RWxlbWVudEFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2J1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vYnV0dG9uXCIpKTtcblxudmFyIF9idXR0b25Hcm91cCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vYnV0dG9uLWdyb3VwXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbl9idXR0b25bXCJkZWZhdWx0XCJdLkdyb3VwID0gX2J1dHRvbkdyb3VwW1wiZGVmYXVsdFwiXTtcbnZhciBfZGVmYXVsdCA9IF9idXR0b25bXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kb20tc2Nyb2xsLWludG8tdmlldycpOyIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG50cnkge1xuICB2YXIgaW5kZXggPSByZXF1aXJlKCdpbmRleG9mJyk7XG59IGNhdGNoIChlcnIpIHtcbiAgdmFyIGluZGV4ID0gcmVxdWlyZSgnY29tcG9uZW50LWluZGV4b2YnKTtcbn1cblxuLyoqXG4gKiBXaGl0ZXNwYWNlIHJlZ2V4cC5cbiAqL1xuXG52YXIgcmUgPSAvXFxzKy87XG5cbi8qKlxuICogdG9TdHJpbmcgcmVmZXJlbmNlLlxuICovXG5cbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV3JhcCBgZWxgIGluIGEgYENsYXNzTGlzdGAuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBlbFxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGVsKXtcbiAgcmV0dXJuIG5ldyBDbGFzc0xpc3QoZWwpO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IENsYXNzTGlzdCBmb3IgYGVsYC5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBDbGFzc0xpc3QoZWwpIHtcbiAgaWYgKCFlbCB8fCAhZWwubm9kZVR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgRE9NIGVsZW1lbnQgcmVmZXJlbmNlIGlzIHJlcXVpcmVkJyk7XG4gIH1cbiAgdGhpcy5lbCA9IGVsO1xuICB0aGlzLmxpc3QgPSBlbC5jbGFzc0xpc3Q7XG59XG5cbi8qKlxuICogQWRkIGNsYXNzIGBuYW1lYCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obmFtZSl7XG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LmFkZChuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKCF+aSkgYXJyLnB1c2gobmFtZSk7XG4gIHRoaXMuZWwuY2xhc3NOYW1lID0gYXJyLmpvaW4oJyAnKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyBgbmFtZWAgd2hlbiBwcmVzZW50LCBvclxuICogcGFzcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byByZW1vdmVcbiAqIGFueSB3aGljaCBtYXRjaC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xSZWdFeHB9IG5hbWVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQ2xhc3NMaXN0LnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihuYW1lKXtcbiAgaWYgKCdbb2JqZWN0IFJlZ0V4cF0nID09IHRvU3RyaW5nLmNhbGwobmFtZSkpIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVNYXRjaGluZyhuYW1lKTtcbiAgfVxuXG4gIC8vIGNsYXNzTGlzdFxuICBpZiAodGhpcy5saXN0KSB7XG4gICAgdGhpcy5saXN0LnJlbW92ZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGZhbGxiYWNrXG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIHZhciBpID0gaW5kZXgoYXJyLCBuYW1lKTtcbiAgaWYgKH5pKSBhcnIuc3BsaWNlKGksIDEpO1xuICB0aGlzLmVsLmNsYXNzTmFtZSA9IGFyci5qb2luKCcgJyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgYWxsIGNsYXNzZXMgbWF0Y2hpbmcgYHJlYC5cbiAqXG4gKiBAcGFyYW0ge1JlZ0V4cH0gcmVcbiAqIEByZXR1cm4ge0NsYXNzTGlzdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUucmVtb3ZlTWF0Y2hpbmcgPSBmdW5jdGlvbihyZSl7XG4gIHZhciBhcnIgPSB0aGlzLmFycmF5KCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlLnRlc3QoYXJyW2ldKSkge1xuICAgICAgdGhpcy5yZW1vdmUoYXJyW2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFRvZ2dsZSBjbGFzcyBgbmFtZWAsIGNhbiBmb3JjZSBzdGF0ZSB2aWEgYGZvcmNlYC5cbiAqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGNsYXNzTGlzdCwgYnV0IGRvIG5vdCBzdXBwb3J0IGBmb3JjZWAgeWV0LFxuICogdGhlIG1pc3Rha2Ugd2lsbCBiZSBkZXRlY3RlZCBhbmQgY29ycmVjdGVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGZvcmNlXG4gKiBAcmV0dXJuIHtDbGFzc0xpc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24obmFtZSwgZm9yY2Upe1xuICAvLyBjbGFzc0xpc3RcbiAgaWYgKHRoaXMubGlzdCkge1xuICAgIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgZm9yY2UpIHtcbiAgICAgIGlmIChmb3JjZSAhPT0gdGhpcy5saXN0LnRvZ2dsZShuYW1lLCBmb3JjZSkpIHtcbiAgICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTsgLy8gdG9nZ2xlIGFnYWluIHRvIGNvcnJlY3RcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saXN0LnRvZ2dsZShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBmYWxsYmFja1xuICBpZiAoXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIGZvcmNlKSB7XG4gICAgaWYgKCFmb3JjZSkge1xuICAgICAgdGhpcy5yZW1vdmUobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkKG5hbWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAodGhpcy5oYXMobmFtZSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlKG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZChuYW1lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIGNsYXNzZXMuXG4gKlxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkNsYXNzTGlzdC5wcm90b3R5cGUuYXJyYXkgPSBmdW5jdGlvbigpe1xuICB2YXIgY2xhc3NOYW1lID0gdGhpcy5lbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJyc7XG4gIHZhciBzdHIgPSBjbGFzc05hbWUucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpO1xuICB2YXIgYXJyID0gc3RyLnNwbGl0KHJlKTtcbiAgaWYgKCcnID09PSBhcnJbMF0pIGFyci5zaGlmdCgpO1xuICByZXR1cm4gYXJyO1xufTtcblxuLyoqXG4gKiBDaGVjayBpZiBjbGFzcyBgbmFtZWAgaXMgcHJlc2VudC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHJldHVybiB7Q2xhc3NMaXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5DbGFzc0xpc3QucHJvdG90eXBlLmhhcyA9XG5DbGFzc0xpc3QucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiB0aGlzLmxpc3RcbiAgICA/IHRoaXMubGlzdC5jb250YWlucyhuYW1lKVxuICAgIDogISEgfmluZGV4KHRoaXMuYXJyYXkoKSwgbmFtZSk7XG59O1xuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyMltpXSA9IGFycltpXTtcbiAgfVxuXG4gIHJldHVybiBhcnIyO1xufSIsIi8vIDE5LjEuMi4xNCAvIDE1LjIuMy4xNCBPYmplY3Qua2V5cyhPKVxudmFyICRrZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHRydWU7XG4iLCJ2YXIgaWQgPSAwO1xudmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xufTtcbiIsImV4cG9ydHMuZiA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuIiwiLy8gNy4xLjEzIFRvT2JqZWN0KGFyZ3VtZW50KVxudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2RlZmF1bHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHRcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgTG9jYWxlUmVjZWl2ZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKExvY2FsZVJlY2VpdmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKExvY2FsZVJlY2VpdmVyKTtcblxuICBmdW5jdGlvbiBMb2NhbGVSZWNlaXZlcigpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTG9jYWxlUmVjZWl2ZXIpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExvY2FsZVJlY2VpdmVyLCBbe1xuICAgIGtleTogXCJnZXRMb2NhbGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TG9jYWxlKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjb21wb25lbnROYW1lID0gX3RoaXMkcHJvcHMuY29tcG9uZW50TmFtZSxcbiAgICAgICAgICBkZWZhdWx0TG9jYWxlID0gX3RoaXMkcHJvcHMuZGVmYXVsdExvY2FsZTtcbiAgICAgIHZhciBsb2NhbGUgPSBkZWZhdWx0TG9jYWxlIHx8IF9kZWZhdWx0W1wiZGVmYXVsdFwiXVtjb21wb25lbnROYW1lIHx8ICdnbG9iYWwnXTtcbiAgICAgIHZhciBhbnRMb2NhbGUgPSB0aGlzLmNvbnRleHQuYW50TG9jYWxlO1xuICAgICAgdmFyIGxvY2FsZUZyb21Db250ZXh0ID0gY29tcG9uZW50TmFtZSAmJiBhbnRMb2NhbGUgPyBhbnRMb2NhbGVbY29tcG9uZW50TmFtZV0gOiB7fTtcbiAgICAgIHJldHVybiBfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgdHlwZW9mIGxvY2FsZSA9PT0gJ2Z1bmN0aW9uJyA/IGxvY2FsZSgpIDogbG9jYWxlKSwgbG9jYWxlRnJvbUNvbnRleHQgfHwge30pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRMb2NhbGVDb2RlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExvY2FsZUNvZGUoKSB7XG4gICAgICB2YXIgYW50TG9jYWxlID0gdGhpcy5jb250ZXh0LmFudExvY2FsZTtcbiAgICAgIHZhciBsb2NhbGVDb2RlID0gYW50TG9jYWxlICYmIGFudExvY2FsZS5sb2NhbGU7IC8vIEhhZCB1c2UgTG9jYWxlUHJvdmlkZSBidXQgZGlkbid0IHNldCBsb2NhbGVcblxuICAgICAgaWYgKGFudExvY2FsZSAmJiBhbnRMb2NhbGUuZXhpc3QgJiYgIWxvY2FsZUNvZGUpIHtcbiAgICAgICAgcmV0dXJuIF9kZWZhdWx0W1wiZGVmYXVsdFwiXS5sb2NhbGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsb2NhbGVDb2RlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW4odGhpcy5nZXRMb2NhbGUoKSwgdGhpcy5nZXRMb2NhbGVDb2RlKCksIHRoaXMuY29udGV4dC5hbnRMb2NhbGUpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBMb2NhbGVSZWNlaXZlcjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBMb2NhbGVSZWNlaXZlcjtcbkxvY2FsZVJlY2VpdmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgY29tcG9uZW50TmFtZTogJ2dsb2JhbCdcbn07XG5Mb2NhbGVSZWNlaXZlci5jb250ZXh0VHlwZXMgPSB7XG4gIGFudExvY2FsZTogUHJvcFR5cGVzLm9iamVjdFxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRpZiAoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcblx0XHRtb2R1bGUuZGVwcmVjYXRlID0gZnVuY3Rpb24oKSB7fTtcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XG5cdH1cblx0cmV0dXJuIG1vZHVsZTtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmZpbGxSZWYgPSBmaWxsUmVmO1xuZXhwb3J0cy5jb21wb3NlUmVmID0gY29tcG9zZVJlZjtcbmV4cG9ydHMuc3VwcG9ydFJlZiA9IHN1cHBvcnRSZWY7XG5cbnZhciBfdHlwZW9mMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpKTtcblxudmFyIF9yZWFjdElzID0gcmVxdWlyZShcInJlYWN0LWlzXCIpO1xuXG5mdW5jdGlvbiBmaWxsUmVmKHJlZiwgbm9kZSkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZihub2RlKTtcbiAgfSBlbHNlIGlmICgoMCwgX3R5cGVvZjIuZGVmYXVsdCkocmVmKSA9PT0gJ29iamVjdCcgJiYgcmVmICYmICdjdXJyZW50JyBpbiByZWYpIHtcbiAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gIH1cbn1cbi8qKlxuICogTWVyZ2UgcmVmcyBpbnRvIG9uZSByZWYgZnVuY3Rpb24gdG8gc3VwcG9ydCByZWYgcGFzc2luZy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvbXBvc2VSZWYoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCByZWZzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIHJlZnNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZWZzLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0pO1xuICB9O1xufVxuXG5mdW5jdGlvbiBzdXBwb3J0UmVmKG5vZGVPckNvbXBvbmVudCkge1xuICB2YXIgX3R5cGUkcHJvdG90eXBlLCBfbm9kZU9yQ29tcG9uZW50JHByb3Q7XG5cbiAgdmFyIHR5cGUgPSAoMCwgX3JlYWN0SXMuaXNNZW1vKShub2RlT3JDb21wb25lbnQpID8gbm9kZU9yQ29tcG9uZW50LnR5cGUudHlwZSA6IG5vZGVPckNvbXBvbmVudC50eXBlOyAvLyBGdW5jdGlvbiBjb21wb25lbnQgbm9kZVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiAhKChfdHlwZSRwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZSkgPT09IG51bGwgfHwgX3R5cGUkcHJvdG90eXBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdHlwZSRwcm90b3R5cGUucmVuZGVyKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBDbGFzcyBjb21wb25lbnRcblxuXG4gIGlmICh0eXBlb2Ygbm9kZU9yQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmICEoKF9ub2RlT3JDb21wb25lbnQkcHJvdCA9IG5vZGVPckNvbXBvbmVudC5wcm90b3R5cGUpID09PSBudWxsIHx8IF9ub2RlT3JDb21wb25lbnQkcHJvdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX25vZGVPckNvbXBvbmVudCRwcm90LnJlbmRlcikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbi8qIGVzbGludC1lbmFibGUgKi8iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKTtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG5cbnZhciBfb2JqZWN0U3ByZWFkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMlwiKSk7XG5cbnZhciBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKSk7XG5cbnZhciBfdHlwZW9mMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpKTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfcmVmMyA9IHJlcXVpcmUoXCJyYy11dGlsL2xpYi9yZWZcIik7XG5cbnZhciBfdmFsdWVVdGlsID0gcmVxdWlyZShcIi4uL3V0aWxzL3ZhbHVlVXRpbFwiKTtcblxuZnVuY3Rpb24gaXNSZW5kZXJDZWxsKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgJiYgKDAsIF90eXBlb2YyLmRlZmF1bHQpKGRhdGEpID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShkYXRhKSAmJiAhIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChkYXRhKTtcbn1cblxuZnVuY3Rpb24gaXNSZWZDb21wb25lbnQoY29tcG9uZW50KSB7XG4gIC8vIFN0cmluZyB0YWcgY29tcG9uZW50IGFsc28gc3VwcG9ydCByZWZcbiAgaWYgKHR5cGVvZiBjb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gKDAsIF9yZWYzLnN1cHBvcnRSZWYpKGNvbXBvbmVudCk7XG59XG5cbmZ1bmN0aW9uIENlbGwoX3JlZiwgcmVmKSB7XG4gIHZhciBfY2xhc3NOYW1lcztcblxuICB2YXIgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgICBjbGFzc05hbWUgPSBfcmVmLmNsYXNzTmFtZSxcbiAgICAgIHJlY29yZCA9IF9yZWYucmVjb3JkLFxuICAgICAgaW5kZXggPSBfcmVmLmluZGV4LFxuICAgICAgZGF0YUluZGV4ID0gX3JlZi5kYXRhSW5kZXgsXG4gICAgICByZW5kZXIgPSBfcmVmLnJlbmRlcixcbiAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIF9yZWYkY29tcG9uZW50ID0gX3JlZi5jb21wb25lbnQsXG4gICAgICBDb21wb25lbnQgPSBfcmVmJGNvbXBvbmVudCA9PT0gdm9pZCAwID8gJ3RkJyA6IF9yZWYkY29tcG9uZW50LFxuICAgICAgY29sU3BhbiA9IF9yZWYuY29sU3BhbixcbiAgICAgIHJvd1NwYW4gPSBfcmVmLnJvd1NwYW4sXG4gICAgICBmaXhMZWZ0ID0gX3JlZi5maXhMZWZ0LFxuICAgICAgZml4UmlnaHQgPSBfcmVmLmZpeFJpZ2h0LFxuICAgICAgZmlyc3RGaXhMZWZ0ID0gX3JlZi5maXJzdEZpeExlZnQsXG4gICAgICBsYXN0Rml4TGVmdCA9IF9yZWYubGFzdEZpeExlZnQsXG4gICAgICBmaXJzdEZpeFJpZ2h0ID0gX3JlZi5maXJzdEZpeFJpZ2h0LFxuICAgICAgbGFzdEZpeFJpZ2h0ID0gX3JlZi5sYXN0Rml4UmlnaHQsXG4gICAgICBhcHBlbmROb2RlID0gX3JlZi5hcHBlbmROb2RlLFxuICAgICAgX3JlZiRhZGRpdGlvbmFsUHJvcHMgPSBfcmVmLmFkZGl0aW9uYWxQcm9wcyxcbiAgICAgIGFkZGl0aW9uYWxQcm9wcyA9IF9yZWYkYWRkaXRpb25hbFByb3BzID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkYWRkaXRpb25hbFByb3BzLFxuICAgICAgZWxsaXBzaXMgPSBfcmVmLmVsbGlwc2lzLFxuICAgICAgYWxpZ24gPSBfcmVmLmFsaWduLFxuICAgICAgcm93VHlwZSA9IF9yZWYucm93VHlwZSxcbiAgICAgIGlzU3RpY2t5ID0gX3JlZi5pc1N0aWNreTtcbiAgdmFyIGNlbGxQcmVmaXhDbHMgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNlbGxcIik7IC8vID09PT09PT09PT09PT09PT09PT09IENoaWxkIE5vZGUgPT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgY2VsbFByb3BzO1xuICB2YXIgY2hpbGROb2RlO1xuXG4gIGlmIChjaGlsZHJlbikge1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkcmVuO1xuICB9IGVsc2Uge1xuICAgIHZhciB2YWx1ZSA9ICgwLCBfdmFsdWVVdGlsLmdldFBhdGhWYWx1ZSkocmVjb3JkLCBkYXRhSW5kZXgpOyAvLyBDdXN0b21pemUgcmVuZGVyIG5vZGVcblxuICAgIGNoaWxkTm9kZSA9IHZhbHVlO1xuXG4gICAgaWYgKHJlbmRlcikge1xuICAgICAgdmFyIHJlbmRlckRhdGEgPSByZW5kZXIodmFsdWUsIHJlY29yZCwgaW5kZXgpO1xuXG4gICAgICBpZiAoaXNSZW5kZXJDZWxsKHJlbmRlckRhdGEpKSB7XG4gICAgICAgIGNoaWxkTm9kZSA9IHJlbmRlckRhdGEuY2hpbGRyZW47XG4gICAgICAgIGNlbGxQcm9wcyA9IHJlbmRlckRhdGEucHJvcHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZE5vZGUgPSByZW5kZXJEYXRhO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBOb3QgY3Jhc2ggaWYgZmluYWwgYGNoaWxkTm9kZWAgaXMgbm90IHZhbGlkYXRlIFJlYWN0Tm9kZVxuXG5cbiAgaWYgKCgwLCBfdHlwZW9mMi5kZWZhdWx0KShjaGlsZE5vZGUpID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShjaGlsZE5vZGUpICYmICEgLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkTm9kZSkpIHtcbiAgICBjaGlsZE5vZGUgPSBudWxsO1xuICB9XG5cbiAgaWYgKGVsbGlwc2lzICYmIChsYXN0Rml4TGVmdCB8fCBmaXJzdEZpeFJpZ2h0KSkge1xuICAgIGNoaWxkTm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWNvbnRlbnRcIilcbiAgICB9LCBjaGlsZE5vZGUpO1xuICB9XG5cbiAgdmFyIF9yZWYyID0gY2VsbFByb3BzIHx8IHt9LFxuICAgICAgY2VsbENvbFNwYW4gPSBfcmVmMi5jb2xTcGFuLFxuICAgICAgY2VsbFJvd1NwYW4gPSBfcmVmMi5yb3dTcGFuLFxuICAgICAgY2VsbFN0eWxlID0gX3JlZjIuc3R5bGUsXG4gICAgICBjZWxsQ2xhc3NOYW1lID0gX3JlZjIuY2xhc3NOYW1lLFxuICAgICAgcmVzdENlbGxQcm9wcyA9ICgwLCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyLmRlZmF1bHQpKF9yZWYyLCBbXCJjb2xTcGFuXCIsIFwicm93U3BhblwiLCBcInN0eWxlXCIsIFwiY2xhc3NOYW1lXCJdKTtcblxuICB2YXIgbWVyZ2VkQ29sU3BhbiA9IGNlbGxDb2xTcGFuICE9PSB1bmRlZmluZWQgPyBjZWxsQ29sU3BhbiA6IGNvbFNwYW47XG4gIHZhciBtZXJnZWRSb3dTcGFuID0gY2VsbFJvd1NwYW4gIT09IHVuZGVmaW5lZCA/IGNlbGxSb3dTcGFuIDogcm93U3BhbjtcblxuICBpZiAobWVyZ2VkQ29sU3BhbiA9PT0gMCB8fCBtZXJnZWRSb3dTcGFuID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PSBGaXhlZCA9PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgdmFyIGZpeGVkU3R5bGUgPSB7fTtcbiAgdmFyIGlzRml4TGVmdCA9IHR5cGVvZiBmaXhMZWZ0ID09PSAnbnVtYmVyJztcbiAgdmFyIGlzRml4UmlnaHQgPSB0eXBlb2YgZml4UmlnaHQgPT09ICdudW1iZXInO1xuXG4gIGlmIChpc0ZpeExlZnQpIHtcbiAgICBmaXhlZFN0eWxlLnBvc2l0aW9uID0gJ3N0aWNreSc7XG4gICAgZml4ZWRTdHlsZS5sZWZ0ID0gZml4TGVmdDtcbiAgfVxuXG4gIGlmIChpc0ZpeFJpZ2h0KSB7XG4gICAgZml4ZWRTdHlsZS5wb3NpdGlvbiA9ICdzdGlja3knO1xuICAgIGZpeGVkU3R5bGUucmlnaHQgPSBmaXhSaWdodDtcbiAgfSAvLyA9PT09PT09PT09PT09PT09PT09PT09IEFsaWduID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICB2YXIgYWxpZ25TdHlsZSA9IHt9O1xuXG4gIGlmIChhbGlnbikge1xuICAgIGFsaWduU3R5bGUudGV4dEFsaWduID0gYWxpZ247XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgdmFyIHRpdGxlO1xuICB2YXIgZWxsaXBzaXNDb25maWcgPSBlbGxpcHNpcyA9PT0gdHJ1ZSA/IHtcbiAgICBzaG93VGl0bGU6IHRydWVcbiAgfSA6IGVsbGlwc2lzO1xuXG4gIGlmIChlbGxpcHNpc0NvbmZpZyAmJiAoZWxsaXBzaXNDb25maWcuc2hvd1RpdGxlIHx8IHJvd1R5cGUgPT09ICdoZWFkZXInKSkge1xuICAgIGlmICh0eXBlb2YgY2hpbGROb2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGROb2RlID09PSAnbnVtYmVyJykge1xuICAgICAgdGl0bGUgPSBjaGlsZE5vZGUudG9TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSAmJiB0eXBlb2YgY2hpbGROb2RlLnByb3BzLmNoaWxkcmVuID09PSAnc3RyaW5nJykge1xuICAgICAgdGl0bGUgPSBjaGlsZE5vZGUucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbXBvbmVudFByb3BzID0gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKCgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSgoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe1xuICAgIHRpdGxlOiB0aXRsZVxuICB9LCByZXN0Q2VsbFByb3BzKSwgYWRkaXRpb25hbFByb3BzKSwge30sIHtcbiAgICBjb2xTcGFuOiBtZXJnZWRDb2xTcGFuICYmIG1lcmdlZENvbFNwYW4gIT09IDEgPyBtZXJnZWRDb2xTcGFuIDogbnVsbCxcbiAgICByb3dTcGFuOiBtZXJnZWRSb3dTcGFuICYmIG1lcmdlZFJvd1NwYW4gIT09IDEgPyBtZXJnZWRSb3dTcGFuIDogbnVsbCxcbiAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lcy5kZWZhdWx0KShjZWxsUHJlZml4Q2xzLCBjbGFzc05hbWUsIChfY2xhc3NOYW1lcyA9IHt9LCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItZml4LWxlZnRcIiksIGlzRml4TGVmdCksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtbGVmdC1maXJzdFwiKSwgZmlyc3RGaXhMZWZ0KSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWZpeC1sZWZ0LWxhc3RcIiksIGxhc3RGaXhMZWZ0KSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWZpeC1yaWdodFwiKSwgaXNGaXhSaWdodCksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtcmlnaHQtZmlyc3RcIiksIGZpcnN0Rml4UmlnaHQpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItZml4LXJpZ2h0LWxhc3RcIiksIGxhc3RGaXhSaWdodCksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1lbGxpcHNpc1wiKSwgZWxsaXBzaXMpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItd2l0aC1hcHBlbmRcIiksIGFwcGVuZE5vZGUpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItZml4LXN0aWNreVwiKSwgKGlzRml4TGVmdCB8fCBpc0ZpeFJpZ2h0KSAmJiBpc1N0aWNreSksIF9jbGFzc05hbWVzKSwgYWRkaXRpb25hbFByb3BzLmNsYXNzTmFtZSwgY2VsbENsYXNzTmFtZSksXG4gICAgc3R5bGU6ICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSgoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKCgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgYWRkaXRpb25hbFByb3BzLnN0eWxlKSwgYWxpZ25TdHlsZSksIGZpeGVkU3R5bGUpLCBjZWxsU3R5bGUpLFxuICAgIHJlZjogaXNSZWZDb21wb25lbnQoQ29tcG9uZW50KSA/IHJlZiA6IG51bGxcbiAgfSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDb21wb25lbnQsIGNvbXBvbmVudFByb3BzLCBhcHBlbmROb2RlLCBjaGlsZE5vZGUpO1xufVxuXG52YXIgUmVmQ2VsbCA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKENlbGwpO1xuUmVmQ2VsbC5kaXNwbGF5TmFtZSA9ICdDZWxsJztcbnZhciBNZW1vQ2VsbCA9IC8qI19fUFVSRV9fKi9SZWFjdC5tZW1vKFJlZkNlbGwsIGZ1bmN0aW9uIChwcmV2LCBuZXh0KSB7XG4gIGlmIChuZXh0LnNob3VsZENlbGxVcGRhdGUpIHtcbiAgICByZXR1cm4gIW5leHQuc2hvdWxkQ2VsbFVwZGF0ZShuZXh0LnJlY29yZCwgcHJldi5yZWNvcmQpO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufSk7XG52YXIgX2RlZmF1bHQgPSBNZW1vQ2VsbDtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnR1cGxlTnVtID0gZXhwb3J0cy50dXBsZSA9IHZvaWQgMDtcblxuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDYxNzYxNjUvd2F5cy10by1nZXQtc3RyaW5nLWxpdGVyYWwtdHlwZS1vZi1hcnJheS12YWx1ZXMtd2l0aG91dC1lbnVtLW92ZXJoZWFkXG52YXIgdHVwbGUgPSBmdW5jdGlvbiB0dXBsZSgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHJldHVybiBhcmdzO1xufTtcblxuZXhwb3J0cy50dXBsZSA9IHR1cGxlO1xuXG52YXIgdHVwbGVOdW0gPSBmdW5jdGlvbiB0dXBsZU51bSgpIHtcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICB9XG5cbiAgcmV0dXJuIGFyZ3M7XG59O1xuXG5leHBvcnRzLnR1cGxlTnVtID0gdHVwbGVOdW07IiwidmFyIGxpc3RDYWNoZUNsZWFyID0gcmVxdWlyZSgnLi9fbGlzdENhY2hlQ2xlYXInKSxcbiAgICBsaXN0Q2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVEZWxldGUnKSxcbiAgICBsaXN0Q2FjaGVHZXQgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVHZXQnKSxcbiAgICBsaXN0Q2FjaGVIYXMgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVIYXMnKSxcbiAgICBsaXN0Q2FjaGVTZXQgPSByZXF1aXJlKCcuL19saXN0Q2FjaGVTZXQnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGxpc3QgY2FjaGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXl9IFtlbnRyaWVzXSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNhY2hlLlxuICovXG5mdW5jdGlvbiBMaXN0Q2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTGlzdENhY2hlYC5cbkxpc3RDYWNoZS5wcm90b3R5cGUuY2xlYXIgPSBsaXN0Q2FjaGVDbGVhcjtcbkxpc3RDYWNoZS5wcm90b3R5cGVbJ2RlbGV0ZSddID0gbGlzdENhY2hlRGVsZXRlO1xuTGlzdENhY2hlLnByb3RvdHlwZS5nZXQgPSBsaXN0Q2FjaGVHZXQ7XG5MaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IGxpc3RDYWNoZUhhcztcbkxpc3RDYWNoZS5wcm90b3R5cGUuc2V0ID0gbGlzdENhY2hlU2V0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IExpc3RDYWNoZTtcbiIsInZhciBlcSA9IHJlcXVpcmUoJy4vZXEnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgYGtleWAgaXMgZm91bmQgaW4gYGFycmF5YCBvZiBrZXktdmFsdWUgcGFpcnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgdmFsdWUsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gYXNzb2NJbmRleE9mKGFycmF5LCBrZXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKGVxKGFycmF5W2xlbmd0aF1bMF0sIGtleSkpIHtcbiAgICAgIHJldHVybiBsZW5ndGg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NvY0luZGV4T2Y7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9fZ2V0TmF0aXZlJyk7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIHRoYXQgYXJlIHZlcmlmaWVkIHRvIGJlIG5hdGl2ZS4gKi9cbnZhciBuYXRpdmVDcmVhdGUgPSBnZXROYXRpdmUoT2JqZWN0LCAnY3JlYXRlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmF0aXZlQ3JlYXRlO1xuIiwidmFyIGlzS2V5YWJsZSA9IHJlcXVpcmUoJy4vX2lzS2V5YWJsZScpO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TWFwRGF0YTtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRE9NRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi9ET01FeGNlcHRpb25cIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhIHRhcmdldCB0byB3aGljaCBhbiBldmVudCBjYW4gYmUgZGlzcGF0Y2hlZC5cbiAqL1xuY2xhc3MgRXZlbnRUYXJnZXRJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgRXZlbnRUYXJnZXRgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG4gICAgZ2V0IF9ldmVudExpc3RlbmVyTGlzdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19ldmVudExpc3RlbmVyTGlzdCB8fCAodGhpcy5fX2V2ZW50TGlzdGVuZXJMaXN0ID0gW10pO1xuICAgIH1cbiAgICBnZXQgX2V2ZW50SGFuZGxlck1hcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX19ldmVudEhhbmRsZXJNYXAgfHwgKHRoaXMuX19ldmVudEhhbmRsZXJNYXAgPSB7fSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGFkZEV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2ssIG9wdGlvbnMgPSB7IHBhc3NpdmU6IGZhbHNlLCBvbmNlOiBmYWxzZSwgY2FwdHVyZTogZmFsc2UgfSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IGNhcHR1cmUsIHBhc3NpdmUsIGFuZCBvbmNlIGJlIHRoZSByZXN1bHQgb2YgZmxhdHRlbmluZyBtb3JlIG9wdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBbY2FwdHVyZSwgcGFzc2l2ZSwgb25jZV0gPSBhbGdvcml0aG1fMS5ldmVudFRhcmdldF9mbGF0dGVuTW9yZShvcHRpb25zKTtcbiAgICAgICAgLy8gY29udmVydCBjYWxsYmFjayBmdW5jdGlvbiB0byBFdmVudExpc3RlbmVyLCByZXR1cm4gaWYgbnVsbFxuICAgICAgICBsZXQgbGlzdGVuZXJDYWxsYmFjaztcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0V2ZW50TGlzdGVuZXIoY2FsbGJhY2spKSB7XG4gICAgICAgICAgICBsaXN0ZW5lckNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsaXN0ZW5lckNhbGxiYWNrID0geyBoYW5kbGVFdmVudDogY2FsbGJhY2sgfTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMi4gQWRkIGFuIGV2ZW50IGxpc3RlbmVyIHdpdGggdGhlIGNvbnRleHQgb2JqZWN0IGFuZCBhbiBldmVudCBsaXN0ZW5lclxuICAgICAgICAgKiB3aG9zZSB0eXBlIGlzIHR5cGUsIGNhbGxiYWNrIGlzIGNhbGxiYWNrLCBjYXB0dXJlIGlzIGNhcHR1cmUsIHBhc3NpdmUgaXNcbiAgICAgICAgICogcGFzc2l2ZSwgYW5kIG9uY2UgaXMgb25jZS5cbiAgICAgICAgICovXG4gICAgICAgIGFsZ29yaXRobV8xLmV2ZW50VGFyZ2V0X2FkZEV2ZW50TGlzdGVuZXIodGhpcywge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsaXN0ZW5lckNhbGxiYWNrLFxuICAgICAgICAgICAgY2FwdHVyZTogY2FwdHVyZSxcbiAgICAgICAgICAgIHBhc3NpdmU6IHBhc3NpdmUsXG4gICAgICAgICAgICBvbmNlOiBvbmNlLFxuICAgICAgICAgICAgcmVtb3ZlZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIodHlwZSwgY2FsbGJhY2ssIG9wdGlvbnMgPSB7IGNhcHR1cmU6IGZhbHNlIH0pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRPRE86IEltcGxlbWVudCByZWFsbXNcbiAgICAgICAgICogMS4gSWYgdGhlIGNvbnRleHQgb2JqZWN04oCZcyByZWxldmFudCBnbG9iYWwgb2JqZWN0IGlzIGFcbiAgICAgICAgICogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIG9iamVjdCBhbmQgaXRzIGFzc29jaWF0ZWQgc2VydmljZSB3b3JrZXLigJlzXG4gICAgICAgICAqIHNjcmlwdCByZXNvdXJjZeKAmXMgaGFzIGV2ZXIgYmVlbiBldmFsdWF0ZWQgZmxhZyBpcyBzZXQsIHRoZW4gdGhyb3dcbiAgICAgICAgICogYSBUeXBlRXJyb3IuIFtTRVJWSUNFLVdPUktFUlNdXG4gICAgICAgICAqL1xuICAgICAgICAvKipcbiAgICAgICAgICogMi4gTGV0IGNhcHR1cmUgYmUgdGhlIHJlc3VsdCBvZiBmbGF0dGVuaW5nIG9wdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBjYXB0dXJlID0gYWxnb3JpdGhtXzEuZXZlbnRUYXJnZXRfZmxhdHRlbihvcHRpb25zKTtcbiAgICAgICAgaWYgKCFjYWxsYmFjaylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIElmIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgZXZlbnQgbGlzdGVuZXIgbGlzdCBjb250YWlucyBhbiBldmVudCBsaXN0ZW5lclxuICAgICAgICAgKiB3aG9zZSB0eXBlIGlzIHR5cGUsIGNhbGxiYWNrIGlzIGNhbGxiYWNrLCBhbmQgY2FwdHVyZSBpcyBjYXB0dXJlLCB0aGVuXG4gICAgICAgICAqIHJlbW92ZSBhbiBldmVudCBsaXN0ZW5lciB3aXRoIHRoZSBjb250ZXh0IG9iamVjdCBhbmQgdGhhdCBldmVudCBsaXN0ZW5lci5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZXZlbnRMaXN0ZW5lckxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5fZXZlbnRMaXN0ZW5lckxpc3RbaV07XG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSAhPT0gdHlwZSB8fCBlbnRyeS5jYXB0dXJlICE9PSBjYXB0dXJlKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0V2ZW50TGlzdGVuZXIoY2FsbGJhY2spICYmIGVudHJ5LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFsZ29yaXRobV8xLmV2ZW50VGFyZ2V0X3JlbW92ZUV2ZW50TGlzdGVuZXIodGhpcywgZW50cnksIGkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY2FsbGJhY2sgJiYgZW50cnkuY2FsbGJhY2suaGFuZGxlRXZlbnQgPT09IGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgYWxnb3JpdGhtXzEuZXZlbnRUYXJnZXRfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLCBlbnRyeSwgaSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZGlzcGF0Y2hFdmVudChldmVudCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgZXZlbnTigJlzIGRpc3BhdGNoIGZsYWcgaXMgc2V0LCBvciBpZiBpdHMgaW5pdGlhbGl6ZWQgZmxhZyBpcyBub3RcbiAgICAgICAgICogc2V0LCB0aGVuIHRocm93IGFuIFwiSW52YWxpZFN0YXRlRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIEluaXRpYWxpemUgZXZlbnTigJlzIGlzVHJ1c3RlZCBhdHRyaWJ1dGUgdG8gZmFsc2UuXG4gICAgICAgICAqIDMuIFJldHVybiB0aGUgcmVzdWx0IG9mIGRpc3BhdGNoaW5nIGV2ZW50IHRvIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChldmVudC5fZGlzcGF0Y2hGbGFnIHx8ICFldmVudC5faW5pdGlhbGl6ZWRGbGFnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZFN0YXRlRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5faXNUcnVzdGVkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ldmVudF9kaXNwYXRjaChldmVudCwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIF9nZXRUaGVQYXJlbnQoZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuZXhwb3J0cy5FdmVudFRhcmdldEltcGwgPSBFdmVudFRhcmdldEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1FdmVudFRhcmdldEltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBOb2RlSW1wbF8xID0gcmVxdWlyZShcIi4vTm9kZUltcGxcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmljIHRleHQgbm9kZS5cbiAqL1xuY2xhc3MgQ2hhcmFjdGVyRGF0YUltcGwgZXh0ZW5kcyBOb2RlSW1wbF8xLk5vZGVJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgQ2hhcmFjdGVyRGF0YWAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGF0YSAtIHRoZSB0ZXh0IGNvbnRlbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihkYXRhKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgZGF0YSgpIHsgcmV0dXJuIHRoaXMuX2RhdGE7IH1cbiAgICBzZXQgZGF0YSh2YWx1ZSkge1xuICAgICAgICBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhKHRoaXMsIDAsIHRoaXMuX2RhdGEubGVuZ3RoLCB2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBsZW5ndGgoKSB7IHJldHVybiB0aGlzLl9kYXRhLmxlbmd0aDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHN1YnN0cmluZ0RhdGEob2Zmc2V0LCBjb3VudCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHN1YnN0cmluZ0RhdGEob2Zmc2V0LCBjb3VudCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuIHRoZVxuICAgICAgICAgKiByZXN1bHQgb2YgcnVubmluZyBzdWJzdHJpbmcgZGF0YSB3aXRoIG5vZGUgY29udGV4dCBvYmplY3QsIG9mZnNldCBvZmZzZXQsIGFuZCBjb3VudCBjb3VudC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3N1YnN0cmluZ0RhdGEodGhpcywgb2Zmc2V0LCBjb3VudCk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGFwcGVuZERhdGEoZGF0YSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGFwcGVuZERhdGEoZGF0YSkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmVwbGFjZSBkYXRhIHdpdGggbm9kZVxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdCwgb2Zmc2V0IGNvbnRleHQgb2JqZWN04oCZcyBsZW5ndGgsIGNvdW50IDAsIGFuZCBkYXRhIGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YSh0aGlzLCB0aGlzLl9kYXRhLmxlbmd0aCwgMCwgZGF0YSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGluc2VydERhdGEob2Zmc2V0LCBkYXRhKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaW5zZXJ0RGF0YShvZmZzZXQsIGRhdGEpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJlcGxhY2UgZGF0YSB3aXRoXG4gICAgICAgICAqIG5vZGUgY29udGV4dCBvYmplY3QsIG9mZnNldCBvZmZzZXQsIGNvdW50IDAsIGFuZCBkYXRhIGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhKHRoaXMsIG9mZnNldCwgMCwgZGF0YSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGRlbGV0ZURhdGEob2Zmc2V0LCBjb3VudCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGRlbGV0ZURhdGEob2Zmc2V0LCBjb3VudCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmVwbGFjZSBkYXRhXG4gICAgICAgICAqIHdpdGggbm9kZSBjb250ZXh0IG9iamVjdCwgb2Zmc2V0IG9mZnNldCwgY291bnQgY291bnQsIGFuZCBkYXRhIHRoZVxuICAgICAgICAgKiBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhKHRoaXMsIG9mZnNldCwgY291bnQsICcnKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcmVwbGFjZURhdGEob2Zmc2V0LCBjb3VudCwgZGF0YSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHJlcGxhY2VEYXRhKG9mZnNldCwgY291bnQsIGRhdGEpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJlcGxhY2VcbiAgICAgICAgICogZGF0YSB3aXRoIG5vZGUgY29udGV4dCBvYmplY3QsIG9mZnNldCBvZmZzZXQsIGNvdW50IGNvdW50LCBhbmQgZGF0YSBkYXRhLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEuY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YSh0aGlzLCBvZmZzZXQsIGNvdW50LCBkYXRhKTtcbiAgICB9XG4gICAgLy8gTUlYSU46IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IG5leHRFbGVtZW50U2libGluZygpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IENoaWxkTm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgYmVmb3JlKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBDaGlsZE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgYWZ0ZXIoLi4ubm9kZXMpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IENoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXBsYWNlV2l0aCguLi5ub2RlcykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogQ2hpbGROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJlbW92ZSgpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IENoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG59XG5leHBvcnRzLkNoYXJhY3RlckRhdGFJbXBsID0gQ2hhcmFjdGVyRGF0YUltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DaGFyYWN0ZXJEYXRhSW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGRvbV8xID0gcmVxdWlyZShcIi4uL2RvbVwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCIuLi91dGlsXCIpO1xuY29uc3QgdXRpbF8yID0gcmVxdWlyZShcIkBvb3pjaXRhay91dGlsXCIpO1xuY29uc3QgVHJlZUFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vVHJlZUFsZ29yaXRobVwiKTtcbmNvbnN0IE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL011dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1cIik7XG4vKipcbiAqIFNpZ25hbHMgYSBzbG90IGNoYW5nZSB0byB0aGUgZ2l2ZW4gc2xvdC5cbiAqXG4gKiBAcGFyYW0gc2xvdCAtIGEgc2xvdFxuICovXG5mdW5jdGlvbiBzaGFkb3dUcmVlX3NpZ25hbEFTbG90Q2hhbmdlKHNsb3QpIHtcbiAgICAvKipcbiAgICAgKiAxLiBBcHBlbmQgc2xvdCB0byBzbG904oCZcyByZWxldmFudCBhZ2VudOKAmXMgc2lnbmFsIHNsb3RzLlxuICAgICAqIDIuIFF1ZXVlIGEgbXV0YXRpb24gb2JzZXJ2ZXIgbWljcm90YXNrLlxuICAgICAqL1xuICAgIGNvbnN0IHdpbmRvdyA9IGRvbV8xLmRvbS53aW5kb3c7XG4gICAgd2luZG93Ll9zaWduYWxTbG90cy5hZGQoc2xvdCk7XG4gICAgTXV0YXRpb25PYnNlcnZlckFsZ29yaXRobV8xLm9ic2VydmVyX3F1ZXVlQU11dGF0aW9uT2JzZXJ2ZXJNaWNyb3Rhc2soKTtcbn1cbmV4cG9ydHMuc2hhZG93VHJlZV9zaWduYWxBU2xvdENoYW5nZSA9IHNoYWRvd1RyZWVfc2lnbmFsQVNsb3RDaGFuZ2U7XG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIHRoZSBzaGFkb3cgdHJlZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudCBub2RlIGlzXG4gKiBjb25uZWN0ZWQgdG8gYSBkb2N1bWVudCBub2RlLlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gYW4gZWxlbWVudCBub2RlIG9mIHRoZSBzaGFkb3cgdHJlZVxuICovXG5mdW5jdGlvbiBzaGFkb3dUcmVlX2lzQ29ubmVjdGVkKGVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiBBbiBlbGVtZW50IGlzIGNvbm5lY3RlZCBpZiBpdHMgc2hhZG93LWluY2x1ZGluZyByb290IGlzIGEgZG9jdW1lbnQuXG4gICAgICovXG4gICAgcmV0dXJuIHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50Tm9kZShUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShlbGVtZW50LCB0cnVlKSk7XG59XG5leHBvcnRzLnNoYWRvd1RyZWVfaXNDb25uZWN0ZWQgPSBzaGFkb3dUcmVlX2lzQ29ubmVjdGVkO1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzbG90YWJsZSBpcyBhc3NpZ25lZC5cbiAqXG4gKiBAcGFyYW0gc2xvdGFibGUgLSBhIHNsb3RhYmxlXG4gKi9cbmZ1bmN0aW9uIHNoYWRvd1RyZWVfaXNBc3NpZ25lZChzbG90YWJsZSkge1xuICAgIC8qKlxuICAgICAqIEEgc2xvdGFibGUgaXMgYXNzaWduZWQgaWYgaXRzIGFzc2lnbmVkIHNsb3QgaXMgbm9uLW51bGwuXG4gICAgICovXG4gICAgcmV0dXJuIChzbG90YWJsZS5fYXNzaWduZWRTbG90ICE9PSBudWxsKTtcbn1cbmV4cG9ydHMuc2hhZG93VHJlZV9pc0Fzc2lnbmVkID0gc2hhZG93VHJlZV9pc0Fzc2lnbmVkO1xuLyoqXG4gKiBGaW5kcyBhIHNsb3QgZm9yIHRoZSBnaXZlbiBzbG90YWJsZS5cbiAqXG4gKiBAcGFyYW0gc2xvdGFibGUgLSBhIHNsb3RhYmxlXG4gKiBAcGFyYW0gb3BlbkZsYWcgLSBgdHJ1ZWAgdG8gc2VhcmNoIG9wZW4gc2hhZG93IHRyZWUncyBvbmx5XG4gKi9cbmZ1bmN0aW9uIHNoYWRvd1RyZWVfZmluZEFTbG90KHNsb3RhYmxlLCBvcGVuRmxhZyA9IGZhbHNlKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgc2xvdGFibGXigJlzIHBhcmVudCBpcyBudWxsLCB0aGVuIHJldHVybiBudWxsLlxuICAgICAqIDIuIExldCBzaGFkb3cgYmUgc2xvdGFibGXigJlzIHBhcmVudOKAmXMgc2hhZG93IHJvb3QuXG4gICAgICogMy4gSWYgc2hhZG93IGlzIG51bGwsIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICogNC4gSWYgdGhlIG9wZW4gZmxhZyBpcyBzZXQgYW5kIHNoYWRvd+KAmXMgbW9kZSBpcyBub3QgXCJvcGVuXCIsIHRoZW5cbiAgICAgKiByZXR1cm4gbnVsbC5cbiAgICAgKiA1LiBSZXR1cm4gdGhlIGZpcnN0IHNsb3QgaW4gdHJlZSBvcmRlciBpbiBzaGFkb3figJlzIGRlc2NlbmRhbnRzIHdob3NlIG5hbWVcbiAgICAgKiBpcyBzbG90YWJsZeKAmXMgbmFtZSwgaWYgYW55LCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3Qgbm9kZSA9IHV0aWxfMS5DYXN0LmFzTm9kZShzbG90YWJsZSk7XG4gICAgY29uc3QgcGFyZW50ID0gbm9kZS5fcGFyZW50O1xuICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNoYWRvdyA9IHBhcmVudC5fc2hhZG93Um9vdCB8fCBudWxsO1xuICAgIGlmIChzaGFkb3cgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmIChvcGVuRmxhZyAmJiBzaGFkb3cuX21vZGUgIT09IFwib3BlblwiKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBsZXQgY2hpbGQgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXRGaXJzdERlc2NlbmRhbnROb2RlKHNoYWRvdywgZmFsc2UsIHRydWUsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNTbG90KGUpKTtcbiAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGNoaWxkLl9uYW1lID09PSBzbG90YWJsZS5fbmFtZSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY2hpbGQgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUoc2hhZG93LCBjaGlsZCwgZmFsc2UsIHRydWUsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNTbG90KGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnRzLnNoYWRvd1RyZWVfZmluZEFTbG90ID0gc2hhZG93VHJlZV9maW5kQVNsb3Q7XG4vKipcbiAqIEZpbmRzIHNsb3RhYmxlcyBmb3IgdGhlIGdpdmVuIHNsb3QuXG4gKlxuICogQHBhcmFtIHNsb3QgLSBhIHNsb3RcbiAqL1xuZnVuY3Rpb24gc2hhZG93VHJlZV9maW5kU2xvdGFibGVzKHNsb3QpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgcmVzdWx0IGJlIGFuIGVtcHR5IGxpc3QuXG4gICAgICogMi4gSWYgc2xvdOKAmXMgcm9vdCBpcyBub3QgYSBzaGFkb3cgcm9vdCwgdGhlbiByZXR1cm4gcmVzdWx0LlxuICAgICAqL1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGNvbnN0IHJvb3QgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShzbG90KTtcbiAgICBpZiAoIXV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3Qocm9vdCkpXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgLyoqXG4gICAgICogMy4gTGV0IGhvc3QgYmUgc2xvdOKAmXMgcm9vdOKAmXMgaG9zdC5cbiAgICAgKiA0LiBGb3IgZWFjaCBzbG90YWJsZSBjaGlsZCBvZiBob3N0LCBzbG90YWJsZSwgaW4gdHJlZSBvcmRlcjpcbiAgICAgKi9cbiAgICBjb25zdCBob3N0ID0gcm9vdC5faG9zdDtcbiAgICBmb3IgKGNvbnN0IHNsb3RhYmxlIG9mIGhvc3QuX2NoaWxkcmVuKSB7XG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNTbG90YWJsZShzbG90YWJsZSkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNC4xLiBMZXQgZm91bmRTbG90IGJlIHRoZSByZXN1bHQgb2YgZmluZGluZyBhIHNsb3QgZ2l2ZW4gc2xvdGFibGUuXG4gICAgICAgICAgICAgKiA0LjIuIElmIGZvdW5kU2xvdCBpcyBzbG90LCB0aGVuIGFwcGVuZCBzbG90YWJsZSB0byByZXN1bHQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGZvdW5kU2xvdCA9IHNoYWRvd1RyZWVfZmluZEFTbG90KHNsb3RhYmxlKTtcbiAgICAgICAgICAgIGlmIChmb3VuZFNsb3QgPT09IHNsb3QpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChzbG90YWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNS4gUmV0dXJuIHJlc3VsdC5cbiAgICAgKi9cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5zaGFkb3dUcmVlX2ZpbmRTbG90YWJsZXMgPSBzaGFkb3dUcmVlX2ZpbmRTbG90YWJsZXM7XG4vKipcbiAqIEZpbmRzIHNsb3RhYmxlcyBmb3IgdGhlIGdpdmVuIHNsb3QuXG4gKlxuICogQHBhcmFtIHNsb3QgLSBhIHNsb3RcbiAqL1xuZnVuY3Rpb24gc2hhZG93VHJlZV9maW5kRmxhdHRlbmVkU2xvdGFibGVzKHNsb3QpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgcmVzdWx0IGJlIGFuIGVtcHR5IGxpc3QuXG4gICAgICogMi4gSWYgc2xvdOKAmXMgcm9vdCBpcyBub3QgYSBzaGFkb3cgcm9vdCwgdGhlbiByZXR1cm4gcmVzdWx0LlxuICAgICAqL1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGNvbnN0IHJvb3QgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShzbG90KTtcbiAgICBpZiAoIXV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3Qocm9vdCkpXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgLyoqXG4gICAgICogMy4gTGV0IHNsb3RhYmxlcyBiZSB0aGUgcmVzdWx0IG9mIGZpbmRpbmcgc2xvdGFibGVzIGdpdmVuIHNsb3QuXG4gICAgICogNC4gSWYgc2xvdGFibGVzIGlzIHRoZSBlbXB0eSBsaXN0LCB0aGVuIGFwcGVuZCBlYWNoIHNsb3RhYmxlIGNoaWxkIG9mXG4gICAgICogc2xvdCwgaW4gdHJlZSBvcmRlciwgdG8gc2xvdGFibGVzLlxuICAgICAqL1xuICAgIGNvbnN0IHNsb3RhYmxlcyA9IHNoYWRvd1RyZWVfZmluZFNsb3RhYmxlcyhzbG90KTtcbiAgICBpZiAodXRpbF8yLmlzRW1wdHkoc2xvdGFibGVzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IHNsb3RhYmxlIG9mIHNsb3QuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2xvdGFibGUoc2xvdGFibGUpKSB7XG4gICAgICAgICAgICAgICAgc2xvdGFibGVzLnB1c2goc2xvdGFibGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDUuIEZvciBlYWNoIG5vZGUgaW4gc2xvdGFibGVzOlxuICAgICAqL1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBzbG90YWJsZXMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuMS4gSWYgbm9kZSBpcyBhIHNsb3Qgd2hvc2Ugcm9vdCBpcyBhIHNoYWRvdyByb290LCB0aGVuOlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1Nsb3Qobm9kZSkgJiYgdXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShub2RlKSkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4xLjEuIExldCB0ZW1wb3JhcnlSZXN1bHQgYmUgdGhlIHJlc3VsdCBvZiBmaW5kaW5nIGZsYXR0ZW5lZCBzbG90YWJsZXMgZ2l2ZW4gbm9kZS5cbiAgICAgICAgICAgICAqIDUuMS4yLiBBcHBlbmQgZWFjaCBzbG90YWJsZSBpbiB0ZW1wb3JhcnlSZXN1bHQsIGluIG9yZGVyLCB0byByZXN1bHQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHRlbXBvcmFyeVJlc3VsdCA9IHNoYWRvd1RyZWVfZmluZEZsYXR0ZW5lZFNsb3RhYmxlcyhub2RlKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLnRlbXBvcmFyeVJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDUuMi4gT3RoZXJ3aXNlLCBhcHBlbmQgbm9kZSB0byByZXN1bHQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDYuIFJldHVybiByZXN1bHQuXG4gICAgICovXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMuc2hhZG93VHJlZV9maW5kRmxhdHRlbmVkU2xvdGFibGVzID0gc2hhZG93VHJlZV9maW5kRmxhdHRlbmVkU2xvdGFibGVzO1xuLyoqXG4gKiBBc3NpZ25zIHNsb3RhYmxlcyB0byB0aGUgZ2l2ZW4gc2xvdC5cbiAqXG4gKiBAcGFyYW0gc2xvdCAtIGEgc2xvdFxuICovXG5mdW5jdGlvbiBzaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlcyhzbG90KSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IHNsb3RhYmxlcyBiZSB0aGUgcmVzdWx0IG9mIGZpbmRpbmcgc2xvdGFibGVzIGZvciBzbG90LlxuICAgICAqIDIuIElmIHNsb3RhYmxlcyBhbmQgc2xvdOKAmXMgYXNzaWduZWQgbm9kZXMgYXJlIG5vdCBpZGVudGljYWwsIHRoZW4gcnVuXG4gICAgICogc2lnbmFsIGEgc2xvdCBjaGFuZ2UgZm9yIHNsb3QuXG4gICAgICovXG4gICAgY29uc3Qgc2xvdGFibGVzID0gc2hhZG93VHJlZV9maW5kU2xvdGFibGVzKHNsb3QpO1xuICAgIGlmIChzbG90YWJsZXMubGVuZ3RoID09PSBzbG90Ll9hc3NpZ25lZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICBsZXQgbm9kZXNJZGVudGljYWwgPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsb3RhYmxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHNsb3RhYmxlc1tpXSAhPT0gc2xvdC5fYXNzaWduZWROb2Rlc1tpXSkge1xuICAgICAgICAgICAgICAgIG5vZGVzSWRlbnRpY2FsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFub2Rlc0lkZW50aWNhbCkge1xuICAgICAgICAgICAgc2hhZG93VHJlZV9zaWduYWxBU2xvdENoYW5nZShzbG90KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBTZXQgc2xvdOKAmXMgYXNzaWduZWQgbm9kZXMgdG8gc2xvdGFibGVzLlxuICAgICAqIDQuIEZvciBlYWNoIHNsb3RhYmxlIGluIHNsb3RhYmxlcywgc2V0IHNsb3RhYmxl4oCZcyBhc3NpZ25lZCBzbG90IHRvIHNsb3QuXG4gICAgICovXG4gICAgc2xvdC5fYXNzaWduZWROb2RlcyA9IHNsb3RhYmxlcztcbiAgICBmb3IgKGNvbnN0IHNsb3RhYmxlIG9mIHNsb3RhYmxlcykge1xuICAgICAgICBzbG90YWJsZS5fYXNzaWduZWRTbG90ID0gc2xvdDtcbiAgICB9XG59XG5leHBvcnRzLnNoYWRvd1RyZWVfYXNzaWduU2xvdGFibGVzID0gc2hhZG93VHJlZV9hc3NpZ25TbG90YWJsZXM7XG4vKipcbiAqIEFzc2lnbnMgc2xvdGFibGVzIHRvIGFsbCBub2RlcyBvZiBhIHRyZWUuXG4gKlxuICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAqL1xuZnVuY3Rpb24gc2hhZG93VHJlZV9hc3NpZ25TbG90YWJsZXNGb3JBVHJlZShyb290KSB7XG4gICAgLyoqXG4gICAgICogVG8gYXNzaWduIHNsb3RhYmxlcyBmb3IgYSB0cmVlLCBnaXZlbiBhIG5vZGUgcm9vdCwgcnVuIGFzc2lnbiBzbG90YWJsZXNcbiAgICAgKiBmb3IgZWFjaCBzbG90IHNsb3QgaW4gcm9vdOKAmXMgaW5jbHVzaXZlIGRlc2NlbmRhbnRzLCBpbiB0cmVlIG9yZGVyLlxuICAgICAqL1xuICAgIGxldCBkZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZShyb290LCB0cnVlLCBmYWxzZSwgKGUpID0+IHV0aWxfMS5HdWFyZC5pc1Nsb3QoZSkpO1xuICAgIHdoaWxlIChkZXNjZW5kYW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNoYWRvd1RyZWVfYXNzaWduU2xvdGFibGVzKGRlc2NlbmRhbnQpO1xuICAgICAgICBkZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlKHJvb3QsIGRlc2NlbmRhbnQsIHRydWUsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzU2xvdChlKSk7XG4gICAgfVxufVxuZXhwb3J0cy5zaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlc0ZvckFUcmVlID0gc2hhZG93VHJlZV9hc3NpZ25TbG90YWJsZXNGb3JBVHJlZTtcbi8qKlxuICogQXNzaWducyBhIHNsb3QgdG8gYSBzbG90YWJsZXMuXG4gKlxuICogQHBhcmFtIHNsb3RhYmxlIC0gYSBzbG90YWJsZVxuICovXG5mdW5jdGlvbiBzaGFkb3dUcmVlX2Fzc2lnbkFTbG90KHNsb3RhYmxlKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IHNsb3QgYmUgdGhlIHJlc3VsdCBvZiBmaW5kaW5nIGEgc2xvdCB3aXRoIHNsb3RhYmxlLlxuICAgICAqIDIuIElmIHNsb3QgaXMgbm9uLW51bGwsIHRoZW4gcnVuIGFzc2lnbiBzbG90YWJsZXMgZm9yIHNsb3QuXG4gICAgICovXG4gICAgY29uc3Qgc2xvdCA9IHNoYWRvd1RyZWVfZmluZEFTbG90KHNsb3RhYmxlKTtcbiAgICBpZiAoc2xvdCAhPT0gbnVsbCkge1xuICAgICAgICBzaGFkb3dUcmVlX2Fzc2lnblNsb3RhYmxlcyhzbG90KTtcbiAgICB9XG59XG5leHBvcnRzLnNoYWRvd1RyZWVfYXNzaWduQVNsb3QgPSBzaGFkb3dUcmVlX2Fzc2lnbkFTbG90O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2hhZG93VHJlZUFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IFBvdGVudGlhbEN1c3RvbUVsZW1lbnROYW1lID0gL1thLXpdKFtcXDAtXFx0XFx4MkRcXC5fYS16XFx4QjdcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMENcXHUyMDBEXFx1MjAzRlxcdTIwNDBcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRdfFtcXHVEODAwLVxcdURCN0ZdW1xcdURDMDAtXFx1REZGRl0pKi0oW1xcMC1cXHRcXHgyRFxcLl9hLXpcXHhCN1xceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQ1xcdTIwMERcXHUyMDNGXFx1MjA0MFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF18W1xcdUQ4MDAtXFx1REI3Rl1bXFx1REMwMC1cXHVERkZGXSkqLztcbmNvbnN0IE5hbWVzV2l0aEh5cGhlbiA9IG5ldyBTZXQoWydhbm5vdGF0aW9uLXhtbCcsICdjb2xvci1wcm9maWxlJyxcbiAgICAnZm9udC1mYWNlJywgJ2ZvbnQtZmFjZS1zcmMnLCAnZm9udC1mYWNlLXVyaScsICdmb250LWZhY2UtZm9ybWF0JyxcbiAgICAnZm9udC1mYWNlLW5hbWUnLCAnbWlzc2luZy1nbHlwaCddKTtcbmNvbnN0IEVsZW1lbnROYW1lcyA9IG5ldyBTZXQoWydhcnRpY2xlJywgJ2FzaWRlJywgJ2Jsb2NrcXVvdGUnLFxuICAgICdib2R5JywgJ2RpdicsICdmb290ZXInLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLFxuICAgICdoZWFkZXInLCAnbWFpbicsICduYXYnLCAncCcsICdzZWN0aW9uJywgJ3NwYW4nXSk7XG5jb25zdCBWb2lkRWxlbWVudE5hbWVzID0gbmV3IFNldChbJ2FyZWEnLCAnYmFzZScsICdiYXNlZm9udCcsXG4gICAgJ2Jnc291bmQnLCAnYnInLCAnY29sJywgJ2VtYmVkJywgJ2ZyYW1lJywgJ2hyJywgJ2ltZycsICdpbnB1dCcsICdrZXlnZW4nLFxuICAgICdsaW5rJywgJ21lbnVpdGVtJywgJ21ldGEnLCAncGFyYW0nLCAnc291cmNlJywgJ3RyYWNrJywgJ3diciddKTtcbmNvbnN0IFNoYWRvd0hvc3ROYW1lcyA9IG5ldyBTZXQoWydhcnRpY2xlJywgJ2FzaWRlJywgJ2Jsb2NrcXVvdGUnLCAnYm9keScsXG4gICAgJ2RpdicsICdmb290ZXInLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZGVyJywgJ21haW4nLFxuICAgICduYXYnLCAncCcsICdzZWN0aW9uJywgJ3NwYW4nXSk7XG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHN0cmluZyBpcyBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBhIG5hbWUgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbUVsZW1lbnRfaXNWYWxpZEN1c3RvbUVsZW1lbnROYW1lKG5hbWUpIHtcbiAgICBpZiAoIVBvdGVudGlhbEN1c3RvbUVsZW1lbnROYW1lLnRlc3QobmFtZSkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBpZiAoTmFtZXNXaXRoSHlwaGVuLmhhcyhuYW1lKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X2lzVmFsaWRDdXN0b21FbGVtZW50TmFtZSA9IGN1c3RvbUVsZW1lbnRfaXNWYWxpZEN1c3RvbUVsZW1lbnROYW1lO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgYSB2YWxpZCBlbGVtZW50IG5hbWUuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBhIG5hbWUgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbUVsZW1lbnRfaXNWYWxpZEVsZW1lbnROYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gKEVsZW1lbnROYW1lcy5oYXMobmFtZSkpO1xufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X2lzVmFsaWRFbGVtZW50TmFtZSA9IGN1c3RvbUVsZW1lbnRfaXNWYWxpZEVsZW1lbnROYW1lO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgYSB2b2lkIGVsZW1lbnQgbmFtZS5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIGEgbmFtZSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gY3VzdG9tRWxlbWVudF9pc1ZvaWRFbGVtZW50TmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIChWb2lkRWxlbWVudE5hbWVzLmhhcyhuYW1lKSk7XG59XG5leHBvcnRzLmN1c3RvbUVsZW1lbnRfaXNWb2lkRWxlbWVudE5hbWUgPSBjdXN0b21FbGVtZW50X2lzVm9pZEVsZW1lbnROYW1lO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgYSB2YWxpZCBzaGFkb3cgaG9zdCBlbGVtZW50IG5hbWUuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBhIG5hbWUgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbUVsZW1lbnRfaXNWYWxpZFNoYWRvd0hvc3ROYW1lKG5hbWUpIHtcbiAgICByZXR1cm4gKFNoYWRvd0hvc3ROYW1lcy5oYXMobmFtZSkpO1xufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X2lzVmFsaWRTaGFkb3dIb3N0TmFtZSA9IGN1c3RvbUVsZW1lbnRfaXNWYWxpZFNoYWRvd0hvc3ROYW1lO1xuLyoqXG4gKiBFbnF1ZXVlcyBhbiB1cGdyYWRlIHJlYWN0aW9uIGZvciBhIGN1c3RvbSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gYSBjdXN0b20gZWxlbWVudFxuICogQHBhcmFtIGRlZmluaXRpb24gLSBhIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb25cbiAqL1xuZnVuY3Rpb24gY3VzdG9tRWxlbWVudF9lbnF1ZXVlQUN1c3RvbUVsZW1lbnRVcGdyYWRlUmVhY3Rpb24oZWxlbWVudCwgZGVmaW5pdGlvbikge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudFVwZ3JhZGVSZWFjdGlvbiA9IGN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50VXBncmFkZVJlYWN0aW9uO1xuLyoqXG4gKiBFbnF1ZXVlcyBhIGNhbGxiYWNrIHJlYWN0aW9uIGZvciBhIGN1c3RvbSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gYSBjdXN0b20gZWxlbWVudFxuICogQHBhcmFtIGNhbGxiYWNrTmFtZSAtIG5hbWUgb2YgdGhlIGNhbGxiYWNrXG4gKiBAcGFyYW0gYXJncyAtIGNhbGxiYWNrIGFyZ3VtZW50c1xuICovXG5mdW5jdGlvbiBjdXN0b21FbGVtZW50X2VucXVldWVBQ3VzdG9tRWxlbWVudENhbGxiYWNrUmVhY3Rpb24oZWxlbWVudCwgY2FsbGJhY2tOYW1lLCBhcmdzKSB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIEhUTUwgRE9NXG59XG5leHBvcnRzLmN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50Q2FsbGJhY2tSZWFjdGlvbiA9IGN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50Q2FsbGJhY2tSZWFjdGlvbjtcbi8qKlxuICogVXBncmFkZSBhIGN1c3RvbSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gYSBjdXN0b20gZWxlbWVudFxuICovXG5mdW5jdGlvbiBjdXN0b21FbGVtZW50X3VwZ3JhZGUoZGVmaW5pdGlvbiwgZWxlbWVudCkge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X3VwZ3JhZGUgPSBjdXN0b21FbGVtZW50X3VwZ3JhZGU7XG4vKipcbiAqIFRyaWVzIHRvIHVwZ3JhZGUgYSBjdXN0b20gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0gZWxlbWVudCAtIGEgY3VzdG9tIGVsZW1lbnRcbiAqL1xuZnVuY3Rpb24gY3VzdG9tRWxlbWVudF90cnlUb1VwZ3JhZGUoZWxlbWVudCkge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxufVxuZXhwb3J0cy5jdXN0b21FbGVtZW50X3RyeVRvVXBncmFkZSA9IGN1c3RvbUVsZW1lbnRfdHJ5VG9VcGdyYWRlO1xuLyoqXG4gKiBMb29rcyB1cCBhIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIGRvY3VtZW50IC0gYSBkb2N1bWVudFxuICogQHBhcmFtIG5hbWVzcGFjZSAtIGVsZW1lbnQgbmFtZXNwYWNlXG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gZWxlbWVudCBsb2NhbCBuYW1lXG4gKiBAcGFyYW0gaXMgLSBhbiBgaXNgIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbUVsZW1lbnRfbG9va1VwQUN1c3RvbUVsZW1lbnREZWZpbml0aW9uKGRvY3VtZW50LCBuYW1lc3BhY2UsIGxvY2FsTmFtZSwgaXMpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgaW4gSFRNTCBET01cbiAgICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydHMuY3VzdG9tRWxlbWVudF9sb29rVXBBQ3VzdG9tRWxlbWVudERlZmluaXRpb24gPSBjdXN0b21FbGVtZW50X2xvb2tVcEFDdXN0b21FbGVtZW50RGVmaW5pdGlvbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUN1c3RvbUVsZW1lbnRBbGdvcml0aG0uanMubWFwIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBBcnJheWAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheShkb2N1bWVudC5ib2R5LmNoaWxkcmVuKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KCdhYmMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNBcnJheTtcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKTtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgdGhhdCBhcmUgdmVyaWZpZWQgdG8gYmUgbmF0aXZlLiAqL1xudmFyIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2ZShPYmplY3QsICdjcmVhdGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuYXRpdmVDcmVhdGU7XG4iLCJ2YXIgZXEgPSByZXF1aXJlKCcuL2VxJyk7XG5cbi8qKlxuICogR2V0cyB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIGBrZXlgIGlzIGZvdW5kIGluIGBhcnJheWAgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaW5zcGVjdC5cbiAqIEBwYXJhbSB7Kn0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGFzc29jSW5kZXhPZihhcnJheSwga2V5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIGlmIChlcShhcnJheVtsZW5ndGhdWzBdLCBrZXkpKSB7XG4gICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXNzb2NJbmRleE9mO1xuIiwidmFyIGlzS2V5YWJsZSA9IHJlcXVpcmUoJy4vX2lzS2V5YWJsZScpO1xuXG4vKipcbiAqIEdldHMgdGhlIGRhdGEgZm9yIGBtYXBgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gbWFwIFRoZSBtYXAgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSByZWZlcmVuY2Uga2V5LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIG1hcCBkYXRhLlxuICovXG5mdW5jdGlvbiBnZXRNYXBEYXRhKG1hcCwga2V5KSB7XG4gIHZhciBkYXRhID0gbWFwLl9fZGF0YV9fO1xuICByZXR1cm4gaXNLZXlhYmxlKGtleSlcbiAgICA/IGRhdGFbdHlwZW9mIGtleSA9PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2hhc2gnXVxuICAgIDogZGF0YS5tYXA7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TWFwRGF0YTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2l0ZXJhdG9yID0gcmVxdWlyZShcIi4uL2NvcmUtanMvc3ltYm9sL2l0ZXJhdG9yXCIpO1xuXG52YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTtcblxudmFyIF9zeW1ib2wgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9zeW1ib2xcIik7XG5cbnZhciBfc3ltYm9sMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbCk7XG5cbnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgX2l0ZXJhdG9yMi5kZWZhdWx0ID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgX3R5cGVvZihfaXRlcmF0b3IyLmRlZmF1bHQpID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59IDogZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBfc3ltYm9sMi5kZWZhdWx0ICYmIG9iaiAhPT0gX3N5bWJvbDIuZGVmYXVsdC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iaiA9PT0gXCJ1bmRlZmluZWRcIiA/IFwidW5kZWZpbmVkXCIgOiBfdHlwZW9mKG9iaik7XG59OyIsImZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxudmFyIENvbnRhaW5lclJlbmRlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ29udGFpbmVyUmVuZGVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENvbnRhaW5lclJlbmRlcik7XG5cbiAgZnVuY3Rpb24gQ29udGFpbmVyUmVuZGVyKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb250YWluZXJSZW5kZXIpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwuYXBwbHkoX3N1cGVyLCBbdGhpc10uY29uY2F0KGFyZ3MpKTtcblxuICAgIF90aGlzLnJlbW92ZUNvbnRhaW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgUmVhY3RET00udW5tb3VudENvbXBvbmVudEF0Tm9kZShfdGhpcy5jb250YWluZXIpO1xuXG4gICAgICAgIF90aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKF90aGlzLmNvbnRhaW5lcik7XG5cbiAgICAgICAgX3RoaXMuY29udGFpbmVyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyQ29tcG9uZW50ID0gZnVuY3Rpb24gKHByb3BzLCByZWFkeSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgdmlzaWJsZSA9IF90aGlzJHByb3BzLnZpc2libGUsXG4gICAgICAgICAgZ2V0Q29tcG9uZW50ID0gX3RoaXMkcHJvcHMuZ2V0Q29tcG9uZW50LFxuICAgICAgICAgIGZvcmNlUmVuZGVyID0gX3RoaXMkcHJvcHMuZm9yY2VSZW5kZXIsXG4gICAgICAgICAgZ2V0Q29udGFpbmVyID0gX3RoaXMkcHJvcHMuZ2V0Q29udGFpbmVyLFxuICAgICAgICAgIHBhcmVudCA9IF90aGlzJHByb3BzLnBhcmVudDtcblxuICAgICAgaWYgKHZpc2libGUgfHwgcGFyZW50Ll9jb21wb25lbnQgfHwgZm9yY2VSZW5kZXIpIHtcbiAgICAgICAgaWYgKCFfdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICBfdGhpcy5jb250YWluZXIgPSBnZXRDb250YWluZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIFJlYWN0RE9NLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKHBhcmVudCwgZ2V0Q29tcG9uZW50KHByb3BzKSwgX3RoaXMuY29udGFpbmVyLCBmdW5jdGlvbiBjYWxsYmFjaygpIHtcbiAgICAgICAgICBpZiAocmVhZHkpIHtcbiAgICAgICAgICAgIHJlYWR5LmNhbGwodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENvbnRhaW5lclJlbmRlciwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5hdXRvTW91bnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9Nb3VudCkge1xuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmF1dG9EZXN0cm95KSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbih7XG4gICAgICAgIHJlbmRlckNvbXBvbmVudDogdGhpcy5yZW5kZXJDb21wb25lbnQsXG4gICAgICAgIHJlbW92ZUNvbnRhaW5lcjogdGhpcy5yZW1vdmVDb250YWluZXJcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDb250YWluZXJSZW5kZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbkNvbnRhaW5lclJlbmRlci5wcm9wVHlwZXMgPSB7XG4gIGF1dG9Nb3VudDogUHJvcFR5cGVzLmJvb2wsXG4gIGF1dG9EZXN0cm95OiBQcm9wVHlwZXMuYm9vbCxcbiAgdmlzaWJsZTogUHJvcFR5cGVzLmJvb2wsXG4gIGZvcmNlUmVuZGVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgcGFyZW50OiBQcm9wVHlwZXMuYW55LFxuICBnZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldENvbnRhaW5lcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWRcbn07XG5Db250YWluZXJSZW5kZXIuZGVmYXVsdFByb3BzID0ge1xuICBhdXRvTW91bnQ6IHRydWUsXG4gIGF1dG9EZXN0cm95OiB0cnVlLFxuICBmb3JjZVJlbmRlcjogZmFsc2Vcbn07XG5leHBvcnQgeyBDb250YWluZXJSZW5kZXIgYXMgZGVmYXVsdCB9OyIsImZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxudmFyIFBvcnRhbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUG9ydGFsLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFBvcnRhbCk7XG5cbiAgZnVuY3Rpb24gUG9ydGFsKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQb3J0YWwpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFBvcnRhbCwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLmNyZWF0ZUNvbnRhaW5lcigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIGRpZFVwZGF0ZSA9IHRoaXMucHJvcHMuZGlkVXBkYXRlO1xuXG4gICAgICBpZiAoZGlkVXBkYXRlKSB7XG4gICAgICAgIGRpZFVwZGF0ZShwcmV2UHJvcHMpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ29udGFpbmVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNyZWF0ZUNvbnRhaW5lclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjcmVhdGVDb250YWluZXIoKSB7XG4gICAgICB0aGlzLl9jb250YWluZXIgPSB0aGlzLnByb3BzLmdldENvbnRhaW5lcigpO1xuICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW1vdmVDb250YWluZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVtb3ZlQ29udGFpbmVyKCkge1xuICAgICAgaWYgKHRoaXMuX2NvbnRhaW5lcikge1xuICAgICAgICB0aGlzLl9jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9jb250YWluZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgaWYgKHRoaXMuX2NvbnRhaW5lcikge1xuICAgICAgICByZXR1cm4gUmVhY3RET00uY3JlYXRlUG9ydGFsKHRoaXMucHJvcHMuY2hpbGRyZW4sIHRoaXMuX2NvbnRhaW5lcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBQb3J0YWw7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cblBvcnRhbC5wcm9wVHlwZXMgPSB7XG4gIGdldENvbnRhaW5lcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gIGRpZFVwZGF0ZTogUHJvcFR5cGVzLmZ1bmNcbn07XG5leHBvcnQgeyBQb3J0YWwgYXMgZGVmYXVsdCB9OyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJleHBvcnQgZGVmYXVsdCAoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoZWxlbWVudC5nZXRCQm94KSB7XG4gICAgdmFyIGJveCA9IGVsZW1lbnQuZ2V0QkJveCgpO1xuXG4gICAgaWYgKGJveC53aWR0aCB8fCBib3guaGVpZ2h0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtcbiAgICB2YXIgX2JveCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoX2JveC53aWR0aCB8fCBfYm94LmhlaWdodCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufSk7IiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjYW5Vc2VEb20oKSB7XG4gIHJldHVybiAhISh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xufSIsImV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAoKSB7XG4gIGlmICh0eXBlb2YgbmF2aWdhdG9yID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBhZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQgfHwgbmF2aWdhdG9yLnZlbmRvciB8fCB3aW5kb3cub3BlcmE7XG5cbiAgaWYgKC8oYW5kcm9pZHxiYlxcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXFwvfGJsYWNrYmVycnl8YmxhemVyfGNvbXBhbHxlbGFpbmV8ZmVubmVjfGhpcHRvcHxpZW1vYmlsZXxpcChob25lfG9kKXxpcmlzfGtpbmRsZXxsZ2UgfG1hZW1vfG1pZHB8bW1wfG1vYmlsZS4rZmlyZWZveHxuZXRmcm9udHxvcGVyYSBtKG9ifGluKWl8cGFsbSggb3MpP3xwaG9uZXxwKGl4aXxyZSlcXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm98YW5kcm9pZHxpcGFkfHBsYXlib29rfHNpbGsvaS50ZXN0KGFnZW50KSB8fCAvMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298cy0pfGFpKGtvfHJuKXxhbChhdnxjYXxjbyl8YW1vaXxhbihleHxueXx5dyl8YXB0dXxhcihjaHxnbyl8YXModGV8dXMpfGF0dHd8YXUoZGl8LW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxidy0obnx1KXxjNTVcXC98Y2FwaXxjY3dhfGNkbS18Y2VsbHxjaHRtfGNsZGN8Y21kLXxjbyhtcHxuZCl8Y3Jhd3xkYShpdHxsbHxuZyl8ZGJ0ZXxkYy1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoLXxfKXxnMSB1fGc1NjB8Z2VuZXxnZi01fGctbW98Z28oXFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZC0obXxwfHQpfGhlaS18aGkocHR8dGEpfGhwKCBpfGlwKXxocy1jfGh0KGMoLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGktKDIwfGdvfG1hKXxpMjMwfGlhYyggfC18XFwvKXxpYnJvfGlkZWF8aWcwMXxpa29tfGltMWt8aW5ub3xpcGFxfGlyaXN8amEodHx2KWF8amJyb3xqZW11fGppZ3N8a2RkaXxrZWppfGtndCggfFxcLyl8a2xvbnxrcHQgfGt3Yy18a3lvKGN8ayl8bGUobm98eGkpfGxnKCBnfFxcLyhrfGx8dSl8NTB8NTR8LVthLXddKXxsaWJ3fGx5bnh8bTEtd3xtM2dhfG01MFxcL3xtYSh0ZXx1aXx4byl8bWMoMDF8MjF8Y2EpfG0tY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pLXxvbnx0Znx3Znx3Z3x3dCl8bm9rKDZ8aSl8bnpwaHxvMmltfG9wKHRpfHd2KXxvcmFufG93ZzF8cDgwMHxwYW4oYXxkfHQpfHBkeGd8cGcoMTN8LShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwbi0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHQtZ3xxYS1hfHFjKDA3fDEyfDIxfDMyfDYwfC1bMi03XXxpLSl8cXRla3xyMzgwfHI2MDB8cmFrc3xyaW05fHJvKHZlfHpvKXxzNTVcXC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGgtfG9vfHAtKXxzZGtcXC98c2UoYygtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaC18c2hhcnxzaWUoLXxtKXxzay0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGgtfHYtfHYgKXxzeSgwMXxtYil8dDIoMTh8NTApfHQ2KDAwfDEwfDE4KXx0YShndHxsayl8dGNsLXx0ZGctfHRlbChpfG0pfHRpbS18dC1tb3x0byhwbHxzaCl8dHMoNzB8bS18bTN8bTUpfHR4LTl8dXAoXFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfC12KXx2bTQwfHZvZGF8dnVsY3x2eCg1Mnw1M3w2MHw2MXw3MHw4MHw4MXw4M3w4NXw5OCl8dzNjKC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXMtfHlvdXJ8emV0b3x6dGUtL2kudGVzdChhZ2VudCA9PT0gbnVsbCB8fCBhZ2VudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWdlbnQuc3Vic3RyKDAsIDQpKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufSk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9idWlsZGVyL2ludGVyZmFjZXNcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL3V0aWxcIik7XG5jb25zdCB1dGlsXzIgPSByZXF1aXJlKFwiQG9vemNpdGFrL2RvbS9saWIvdXRpbFwiKTtcbmNvbnN0IGJ1aWxkZXJfMSA9IHJlcXVpcmUoXCIuL2J1aWxkZXJcIik7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuL2J1aWxkZXIvZG9tXCIpO1xuY29uc3QgdXRpbF8zID0gcmVxdWlyZShcInV0aWxcIik7XG4vKiogQGluaGVyaXRkb2MgKi9cbmZ1bmN0aW9uIGJ1aWxkZXIocDEsIHAyKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGZvcm1hdE9wdGlvbnMoaXNYTUxCdWlsZGVyQ3JlYXRlT3B0aW9ucyhwMSkgPyBwMSA6IGludGVyZmFjZXNfMS5EZWZhdWx0QnVpbGRlck9wdGlvbnMpO1xuICAgIGNvbnN0IG5vZGVzID0gdXRpbF8yLkd1YXJkLmlzTm9kZShwMSkgfHwgdXRpbF8zLmlzQXJyYXkocDEpID8gcDEgOiBwMjtcbiAgICBpZiAobm9kZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGFyZ3VtZW50cy5cIik7XG4gICAgfVxuICAgIGlmICh1dGlsXzMuaXNBcnJheShub2RlcykpIHtcbiAgICAgICAgY29uc3QgYnVpbGRlcnMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBidWlsZGVyXzEuWE1MQnVpbGRlckltcGwobm9kZXNbaV0pO1xuICAgICAgICAgICAgYnVpbGRlci5zZXQob3B0aW9ucyk7XG4gICAgICAgICAgICBidWlsZGVycy5wdXNoKGJ1aWxkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidWlsZGVycztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgYnVpbGRlcl8xLlhNTEJ1aWxkZXJJbXBsKG5vZGVzKTtcbiAgICAgICAgYnVpbGRlci5zZXQob3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cbn1cbmV4cG9ydHMuYnVpbGRlciA9IGJ1aWxkZXI7XG4vKiogQGluaGVyaXRkb2MgKi9cbmZ1bmN0aW9uIGNyZWF0ZShwMSwgcDIpIHtcbiAgICBjb25zdCBvcHRpb25zID0gZm9ybWF0T3B0aW9ucyhwMSA9PT0gdW5kZWZpbmVkIHx8IGlzWE1MQnVpbGRlckNyZWF0ZU9wdGlvbnMocDEpID9cbiAgICAgICAgcDEgOiBpbnRlcmZhY2VzXzEuRGVmYXVsdEJ1aWxkZXJPcHRpb25zKTtcbiAgICBjb25zdCBjb250ZW50cyA9IGlzWE1MQnVpbGRlckNyZWF0ZU9wdGlvbnMocDEpID8gcDIgOiBwMTtcbiAgICBsZXQgYnVpbGRlcjtcbiAgICBpZiAoY29udGVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBlbXB0eSBkb2N1bWVudFxuICAgICAgICBjb25zdCBkb2MgPSBkb21fMS5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICBidWlsZGVyID0gbmV3IGJ1aWxkZXJfMS5YTUxCdWlsZGVySW1wbChkb2MpO1xuICAgICAgICBzZXRPcHRpb25zKGRvYywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHV0aWxfMS5pc09iamVjdChjb250ZW50cykpIHtcbiAgICAgICAgLy8gSlMgb2JqZWN0XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvbV8xLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgYnVpbGRlcl8xLlhNTEJ1aWxkZXJJbXBsKGRvYyk7XG4gICAgICAgIHNldE9wdGlvbnMoZG9jLCBvcHRpb25zKTtcbiAgICAgICAgYnVpbGRlci5lbGUoY29udGVudHMpO1xuICAgIH1cbiAgICBlbHNlIGlmICgvXlxccyo8Ly50ZXN0KGNvbnRlbnRzKSkge1xuICAgICAgICAvLyBYTUwgZG9jdW1lbnRcbiAgICAgICAgY29uc3QgZG9tUGFyc2VyID0gZG9tXzEuY3JlYXRlUGFyc2VyKCk7XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvbVBhcnNlci5wYXJzZUZyb21TdHJpbmcoY29udGVudHMsIFwidGV4dC94bWxcIik7XG4gICAgICAgIGRvbV8xLnRocm93SWZQYXJzZXJFcnJvcihkb2MpO1xuICAgICAgICBidWlsZGVyID0gbmV3IGJ1aWxkZXJfMS5YTUxCdWlsZGVySW1wbChkb2MpO1xuICAgICAgICBzZXRPcHRpb25zKGRvYywgb3B0aW9ucyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBKU09OXG4gICAgICAgIGNvbnN0IGRvYyA9IGRvbV8xLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgYnVpbGRlcl8xLlhNTEJ1aWxkZXJJbXBsKGRvYyk7XG4gICAgICAgIHNldE9wdGlvbnMoZG9jLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShjb250ZW50cyk7XG4gICAgICAgIGJ1aWxkZXIuZWxlKG9iaik7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xufVxuZXhwb3J0cy5jcmVhdGUgPSBjcmVhdGU7XG4vKiogQGluaGVyaXRkb2MgKi9cbmZ1bmN0aW9uIGZyYWdtZW50KHAxLCBwMikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBmb3JtYXRPcHRpb25zKHAxID09PSB1bmRlZmluZWQgfHwgaXNYTUxCdWlsZGVyQ3JlYXRlT3B0aW9ucyhwMSkgP1xuICAgICAgICBwMSA6IGludGVyZmFjZXNfMS5EZWZhdWx0QnVpbGRlck9wdGlvbnMpO1xuICAgIGNvbnN0IGNvbnRlbnRzID0gaXNYTUxCdWlsZGVyQ3JlYXRlT3B0aW9ucyhwMSkgPyBwMiA6IHAxO1xuICAgIGxldCBidWlsZGVyO1xuICAgIGlmIChjb250ZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8vIGVtcHR5IGZyYWdtZW50XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvbV8xLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHNldE9wdGlvbnMoZG9jLCBvcHRpb25zKTtcbiAgICAgICAgYnVpbGRlciA9IG5ldyBidWlsZGVyXzEuWE1MQnVpbGRlckltcGwoZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHV0aWxfMS5pc09iamVjdChjb250ZW50cykpIHtcbiAgICAgICAgLy8gSlMgb2JqZWN0XG4gICAgICAgIGNvbnN0IGRvYyA9IGRvbV8xLmNyZWF0ZURvY3VtZW50KCk7XG4gICAgICAgIHNldE9wdGlvbnMoZG9jLCBvcHRpb25zKTtcbiAgICAgICAgYnVpbGRlciA9IG5ldyBidWlsZGVyXzEuWE1MQnVpbGRlckltcGwoZG9jLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG4gICAgICAgIGJ1aWxkZXIuZWxlKGNvbnRlbnRzKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoL15cXHMqPC8udGVzdChjb250ZW50cykpIHtcbiAgICAgICAgLy8gWE1MIGRvY3VtZW50XG4gICAgICAgIGNvbnN0IGRvbVBhcnNlciA9IGRvbV8xLmNyZWF0ZVBhcnNlcigpO1xuICAgICAgICBjb25zdCBkb2MgPSBkb21QYXJzZXIucGFyc2VGcm9tU3RyaW5nKFwiPFRFTVBfUk9PVD5cIiArIGNvbnRlbnRzICsgXCI8L1RFTVBfUk9PVD5cIiwgXCJ0ZXh0L3htbFwiKTtcbiAgICAgICAgZG9tXzEudGhyb3dJZlBhcnNlckVycm9yKGRvYyk7XG4gICAgICAgIHNldE9wdGlvbnMoZG9jLCBvcHRpb25zKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKGRvYy5kb2N1bWVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkRvY3VtZW50IGVsZW1lbnQgaXMgbnVsbC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnJhZyA9IGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgZG9jLmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDaGlsZCA9IGRvYy5pbXBvcnROb2RlKGNoaWxkLCB0cnVlKTtcbiAgICAgICAgICAgIGZyYWcuYXBwZW5kQ2hpbGQobmV3Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgYnVpbGRlcl8xLlhNTEJ1aWxkZXJJbXBsKGZyYWcpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gSlNPTlxuICAgICAgICBjb25zdCBkb2MgPSBkb21fMS5jcmVhdGVEb2N1bWVudCgpO1xuICAgICAgICBzZXRPcHRpb25zKGRvYywgb3B0aW9ucyk7XG4gICAgICAgIGJ1aWxkZXIgPSBuZXcgYnVpbGRlcl8xLlhNTEJ1aWxkZXJJbXBsKGRvYy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpO1xuICAgICAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKGNvbnRlbnRzKTtcbiAgICAgICAgYnVpbGRlci5lbGUob2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG59XG5leHBvcnRzLmZyYWdtZW50ID0gZnJhZ21lbnQ7XG4vKiogQGluaGVyaXRkb2MgKi9cbmZ1bmN0aW9uIGNvbnZlcnQocDEsIHAyLCBwMykge1xuICAgIGxldCBidWlsZGVyT3B0aW9ucztcbiAgICBsZXQgY29udGVudHM7XG4gICAgbGV0IGNvbnZlcnRPcHRpb25zO1xuICAgIGlmIChpc1hNTEJ1aWxkZXJDcmVhdGVPcHRpb25zKHAxKSAmJiBwMiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJ1aWxkZXJPcHRpb25zID0gcDE7XG4gICAgICAgIGNvbnRlbnRzID0gcDI7XG4gICAgICAgIGNvbnZlcnRPcHRpb25zID0gcDM7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBidWlsZGVyT3B0aW9ucyA9IGludGVyZmFjZXNfMS5EZWZhdWx0QnVpbGRlck9wdGlvbnM7XG4gICAgICAgIGNvbnRlbnRzID0gcDE7XG4gICAgICAgIGNvbnZlcnRPcHRpb25zID0gcDIgfHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlKGJ1aWxkZXJPcHRpb25zLCBjb250ZW50cykuZW5kKGNvbnZlcnRPcHRpb25zKTtcbn1cbmV4cG9ydHMuY29udmVydCA9IGNvbnZlcnQ7XG5mdW5jdGlvbiBpc1hNTEJ1aWxkZXJDcmVhdGVPcHRpb25zKG9iaikge1xuICAgIGlmICghdXRpbF8xLmlzUGxhaW5PYmplY3Qob2JqKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGlmICghaW50ZXJmYWNlc18xLlhNTEJ1aWxkZXJPcHRpb25LZXlzLmhhcyhrZXkpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGZvcm1hdE9wdGlvbnMoY3JlYXRlT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHV0aWxfMS5hcHBseURlZmF1bHRzKGNyZWF0ZU9wdGlvbnMsIGludGVyZmFjZXNfMS5EZWZhdWx0QnVpbGRlck9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zLmNvbnZlcnQuYXR0Lmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICBvcHRpb25zLmNvbnZlcnQuaW5zLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICBvcHRpb25zLmNvbnZlcnQudGV4dC5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgb3B0aW9ucy5jb252ZXJ0LmNkYXRhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICBvcHRpb25zLmNvbnZlcnQuY29tbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSlMgb2JqZWN0IGNvbnZlcnRlciBzdHJpbmdzIGNhbm5vdCBiZSB6ZXJvIGxlbmd0aC5cIik7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xufVxuZnVuY3Rpb24gc2V0T3B0aW9ucyhkb2MsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBkb2NXaXRoU2V0dGluZ3MgPSBkb2M7XG4gICAgZG9jV2l0aFNldHRpbmdzLl94bWxCdWlsZGVyT3B0aW9ucyA9IG9wdGlvbnM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiLCIvLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuL19hLWZ1bmN0aW9uJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7XG4gICAgfTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7XG4gICAgfTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHtcbiAgICByZXR1cm4gZm4uYXBwbHkodGhhdCwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCIvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuLy8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcbi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgUykge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGl0O1xuICB2YXIgZm4sIHZhbDtcbiAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbn07XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoaXQpLnNsaWNlKDgsIC0xKTtcbn07XG4iLCIvLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiLy8gSUUgOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSAoXG4gICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnXG4pLnNwbGl0KCcsJyk7XG4iLCJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJleHBvcnRzLmYgPSByZXF1aXJlKCcuL193a3MnKTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgd2tzRXh0ID0gcmVxdWlyZSgnLi9fd2tzLWV4dCcpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgdmFyICRTeW1ib2wgPSBjb3JlLlN5bWJvbCB8fCAoY29yZS5TeW1ib2wgPSBMSUJSQVJZID8ge30gOiBnbG9iYWwuU3ltYm9sIHx8IHt9KTtcbiAgaWYgKG5hbWUuY2hhckF0KDApICE9ICdfJyAmJiAhKG5hbWUgaW4gJFN5bWJvbCkpIGRlZmluZVByb3BlcnR5KCRTeW1ib2wsIG5hbWUsIHsgdmFsdWU6IHdrc0V4dC5mKG5hbWUpIH0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5jaGFuZ2VDb25maXJtTG9jYWxlID0gY2hhbmdlQ29uZmlybUxvY2FsZTtcbmV4cG9ydHMuZ2V0Q29uZmlybUxvY2FsZSA9IGdldENvbmZpcm1Mb2NhbGU7XG5cbnZhciBfZGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS9kZWZhdWx0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBydW50aW1lTG9jYWxlID0gX2V4dGVuZHMoe30sIF9kZWZhdWx0W1wiZGVmYXVsdFwiXS5Nb2RhbCk7XG5cbmZ1bmN0aW9uIGNoYW5nZUNvbmZpcm1Mb2NhbGUobmV3TG9jYWxlKSB7XG4gIGlmIChuZXdMb2NhbGUpIHtcbiAgICBydW50aW1lTG9jYWxlID0gX2V4dGVuZHMoX2V4dGVuZHMoe30sIHJ1bnRpbWVMb2NhbGUpLCBuZXdMb2NhbGUpO1xuICB9IGVsc2Uge1xuICAgIHJ1bnRpbWVMb2NhbGUgPSBfZXh0ZW5kcyh7fSwgX2RlZmF1bHRbXCJkZWZhdWx0XCJdLk1vZGFsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDb25maXJtTG9jYWxlKCkge1xuICByZXR1cm4gcnVudGltZUxvY2FsZTtcbn0iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9pbXBsZW1lbnRhdGlvbiA9IHJlcXVpcmUoJy4vaW1wbGVtZW50YXRpb24nKTtcblxudmFyIF9pbXBsZW1lbnRhdGlvbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbXBsZW1lbnRhdGlvbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVDb250ZXh0IHx8IF9pbXBsZW1lbnRhdGlvbjIuZGVmYXVsdDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsInZhciBhcnJheUxpa2VUb0FycmF5ID0gcmVxdWlyZShcIi4vYXJyYXlMaWtlVG9BcnJheS5qc1wiKTtcblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikge1xuICBpZiAoIW8pIHJldHVybjtcbiAgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xuICB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7XG4gIGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7XG4gIGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pO1xuICBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRFeHBhbmRhYmxlUHJvcHMgPSBnZXRFeHBhbmRhYmxlUHJvcHM7XG5leHBvcnRzLmdldERhdGFBbmRBcmlhUHJvcHMgPSBnZXREYXRhQW5kQXJpYVByb3BzO1xuZXhwb3J0cy5JTlRFUk5BTF9DT0xfREVGSU5FID0gdm9pZCAwO1xuXG52YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZDJcIikpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIikpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi93YXJuaW5nXCIpKTtcblxudmFyIElOVEVSTkFMX0NPTF9ERUZJTkUgPSAnUkNfVEFCTEVfSU5URVJOQUxfQ09MX0RFRklORSc7XG5leHBvcnRzLklOVEVSTkFMX0NPTF9ERUZJTkUgPSBJTlRFUk5BTF9DT0xfREVGSU5FO1xuXG5mdW5jdGlvbiBnZXRFeHBhbmRhYmxlUHJvcHMocHJvcHMpIHtcbiAgdmFyIGV4cGFuZGFibGUgPSBwcm9wcy5leHBhbmRhYmxlLFxuICAgICAgbGVnYWN5RXhwYW5kYWJsZUNvbmZpZyA9ICgwLCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyLmRlZmF1bHQpKHByb3BzLCBbXCJleHBhbmRhYmxlXCJdKTtcblxuICBpZiAoJ2V4cGFuZGFibGUnIGluIHByb3BzKSB7XG4gICAgcmV0dXJuICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSgoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe30sIGxlZ2FjeUV4cGFuZGFibGVDb25maWcpLCBleHBhbmRhYmxlKTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIFsnaW5kZW50U2l6ZScsICdleHBhbmRlZFJvd0tleXMnLCAnZGVmYXVsdEV4cGFuZGVkUm93S2V5cycsICdkZWZhdWx0RXhwYW5kQWxsUm93cycsICdleHBhbmRlZFJvd1JlbmRlcicsICdleHBhbmRSb3dCeUNsaWNrJywgJ2V4cGFuZEljb24nLCAnb25FeHBhbmQnLCAnb25FeHBhbmRlZFJvd3NDaGFuZ2UnLCAnZXhwYW5kZWRSb3dDbGFzc05hbWUnLCAnZXhwYW5kSWNvbkNvbHVtbkluZGV4J10uc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBwcm9wIGluIHByb3BzO1xuICB9KSkge1xuICAgICgwLCBfd2FybmluZy5kZWZhdWx0KShmYWxzZSwgJ2V4cGFuZGVkIHJlbGF0ZWQgcHJvcHMgaGF2ZSBiZWVuIG1vdmVkIGludG8gYGV4cGFuZGFibGVgLicpO1xuICB9XG5cbiAgcmV0dXJuIGxlZ2FjeUV4cGFuZGFibGVDb25maWc7XG59XG4vKipcbiAqIFJldHVybnMgb25seSBkYXRhLSBhbmQgYXJpYS0ga2V5L3ZhbHVlIHBhaXJzXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqL1xuXG5cbmZ1bmN0aW9uIGdldERhdGFBbmRBcmlhUHJvcHMocHJvcHMpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHByb3BzKS5yZWR1Y2UoZnVuY3Rpb24gKG1lbW8sIGtleSkge1xuICAgIGlmIChrZXkuc3Vic3RyKDAsIDUpID09PSAnZGF0YS0nIHx8IGtleS5zdWJzdHIoMCwgNSkgPT09ICdhcmlhLScpIHtcbiAgICAgIG1lbW9ba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbW87XG4gIH0sIHt9KTtcbiAgLyogZXNsaW50LWVuYWJsZSAqL1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgQm9keUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbnZhciBfZGVmYXVsdCA9IEJvZHlDb250ZXh0O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdG9BcnJheTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yZWFjdElzID0gcmVxdWlyZShcInJlYWN0LWlzXCIpO1xuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHt9O1xuICB2YXIgcmV0ID0gW107XG5cbiAgX3JlYWN0LmRlZmF1bHQuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgaWYgKChjaGlsZCA9PT0gdW5kZWZpbmVkIHx8IGNoaWxkID09PSBudWxsKSAmJiAhb3B0aW9uLmtlZXBFbXB0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkKSkge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdCh0b0FycmF5KGNoaWxkKSk7XG4gICAgfSBlbHNlIGlmICgoMCwgX3JlYWN0SXMuaXNGcmFnbWVudCkoY2hpbGQpICYmIGNoaWxkLnByb3BzKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRvQXJyYXkoY2hpbGQucHJvcHMuY2hpbGRyZW4sIG9wdGlvbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucHVzaChjaGlsZCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmV0O1xufSIsImZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikge1xuICBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7XG4gICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpO1xuICB9XG5cbiAgcmV0dXJuIHNlbGY7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cbnZhciBJY29uQ29udGV4dCA9IC8qI19fUFVSRV9fKi8oMCwgX3JlYWN0LmNyZWF0ZUNvbnRleHQpKHt9KTtcbnZhciBfZGVmYXVsdCA9IEljb25Db250ZXh0O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1wYWdpbmF0aW9uL2xpYi9sb2NhbGUvZW5fVVNcIikpO1xuXG52YXIgX2VuX1VTMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2RhdGUtcGlja2VyL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxudmFyIF9lbl9VUzQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9jYWxlbmRhci9sb2NhbGUvZW5fVVNcIikpO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcgKi9cbnZhciB0eXBlVGVtcGxhdGUgPSAnJHtsYWJlbH0gaXMgbm90IGEgdmFsaWQgJHt0eXBlfSc7XG52YXIgbG9jYWxlVmFsdWVzID0ge1xuICBsb2NhbGU6ICdlbicsXG4gIFBhZ2luYXRpb246IF9lbl9VU1tcImRlZmF1bHRcIl0sXG4gIERhdGVQaWNrZXI6IF9lbl9VUzJbXCJkZWZhdWx0XCJdLFxuICBUaW1lUGlja2VyOiBfZW5fVVMzW1wiZGVmYXVsdFwiXSxcbiAgQ2FsZW5kYXI6IF9lbl9VUzRbXCJkZWZhdWx0XCJdLFxuICBnbG9iYWw6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBzZWxlY3QnXG4gIH0sXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXIgbWVudScsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1Jlc2V0JyxcbiAgICBmaWx0ZXJFbXB0eVRleHQ6ICdObyBmaWx0ZXJzJyxcbiAgICBlbXB0eVRleHQ6ICdObyBkYXRhJyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgY3VycmVudCBwYWdlJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnQgY3VycmVudCBwYWdlJyxcbiAgICBzZWxlY3ROb25lOiAnQ2xlYXIgYWxsIGRhdGEnLFxuICAgIHNlbGVjdGlvbkFsbDogJ1NlbGVjdCBhbGwgZGF0YScsXG4gICAgc29ydFRpdGxlOiAnU29ydCcsXG4gICAgZXhwYW5kOiAnRXhwYW5kIHJvdycsXG4gICAgY29sbGFwc2U6ICdDb2xsYXBzZSByb3cnLFxuICAgIHRyaWdnZXJEZXNjOiAnQ2xpY2sgdG8gc29ydCBkZXNjZW5kaW5nJyxcbiAgICB0cmlnZ2VyQXNjOiAnQ2xpY2sgdG8gc29ydCBhc2NlbmRpbmcnLFxuICAgIGNhbmNlbFNvcnQ6ICdDbGljayB0byBjYW5jZWwgc29ydGluZydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgdGl0bGVzOiBbJycsICcnXSxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBoZXJlJyxcbiAgICBpdGVtVW5pdDogJ2l0ZW0nLFxuICAgIGl0ZW1zVW5pdDogJ2l0ZW1zJyxcbiAgICByZW1vdmU6ICdSZW1vdmUnLFxuICAgIHNlbGVjdEN1cnJlbnQ6ICdTZWxlY3QgY3VycmVudCBwYWdlJyxcbiAgICByZW1vdmVDdXJyZW50OiAnUmVtb3ZlIGN1cnJlbnQgcGFnZScsXG4gICAgc2VsZWN0QWxsOiAnU2VsZWN0IGFsbCBkYXRhJyxcbiAgICByZW1vdmVBbGw6ICdSZW1vdmUgYWxsIGRhdGEnLFxuICAgIHNlbGVjdEludmVydDogJ0ludmVydCBjdXJyZW50IHBhZ2UnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1VwbG9hZGluZy4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1JlbW92ZSBmaWxlJyxcbiAgICB1cGxvYWRFcnJvcjogJ1VwbG9hZCBlcnJvcicsXG4gICAgcHJldmlld0ZpbGU6ICdQcmV2aWV3IGZpbGUnLFxuICAgIGRvd25sb2FkRmlsZTogJ0Rvd25sb2FkIGZpbGUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdObyBEYXRhJ1xuICB9LFxuICBJY29uOiB7XG4gICAgaWNvbjogJ2ljb24nXG4gIH0sXG4gIFRleHQ6IHtcbiAgICBlZGl0OiAnRWRpdCcsXG4gICAgY29weTogJ0NvcHknLFxuICAgIGNvcGllZDogJ0NvcGllZCcsXG4gICAgZXhwYW5kOiAnRXhwYW5kJ1xuICB9LFxuICBQYWdlSGVhZGVyOiB7XG4gICAgYmFjazogJ0JhY2snXG4gIH0sXG4gIEZvcm06IHtcbiAgICBvcHRpb25hbDogJyhvcHRpb25hbCknLFxuICAgIGRlZmF1bHRWYWxpZGF0ZU1lc3NhZ2VzOiB7XG4gICAgICBcImRlZmF1bHRcIjogJ0ZpZWxkIHZhbGlkYXRpb24gZXJyb3IgZm9yICR7bGFiZWx9JyxcbiAgICAgIHJlcXVpcmVkOiAnUGxlYXNlIGVudGVyICR7bGFiZWx9JyxcbiAgICAgIFwiZW51bVwiOiAnJHtsYWJlbH0gbXVzdCBiZSBvbmUgb2YgWyR7ZW51bX1dJyxcbiAgICAgIHdoaXRlc3BhY2U6ICcke2xhYmVsfSBjYW5ub3QgYmUgYSBibGFuayBjaGFyYWN0ZXInLFxuICAgICAgZGF0ZToge1xuICAgICAgICBmb3JtYXQ6ICcke2xhYmVsfSBkYXRlIGZvcm1hdCBpcyBpbnZhbGlkJyxcbiAgICAgICAgcGFyc2U6ICcke2xhYmVsfSBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZScsXG4gICAgICAgIGludmFsaWQ6ICcke2xhYmVsfSBpcyBhbiBpbnZhbGlkIGRhdGUnXG4gICAgICB9LFxuICAgICAgdHlwZXM6IHtcbiAgICAgICAgc3RyaW5nOiB0eXBlVGVtcGxhdGUsXG4gICAgICAgIG1ldGhvZDogdHlwZVRlbXBsYXRlLFxuICAgICAgICBhcnJheTogdHlwZVRlbXBsYXRlLFxuICAgICAgICBvYmplY3Q6IHR5cGVUZW1wbGF0ZSxcbiAgICAgICAgbnVtYmVyOiB0eXBlVGVtcGxhdGUsXG4gICAgICAgIGRhdGU6IHR5cGVUZW1wbGF0ZSxcbiAgICAgICAgXCJib29sZWFuXCI6IHR5cGVUZW1wbGF0ZSxcbiAgICAgICAgaW50ZWdlcjogdHlwZVRlbXBsYXRlLFxuICAgICAgICBcImZsb2F0XCI6IHR5cGVUZW1wbGF0ZSxcbiAgICAgICAgcmVnZXhwOiB0eXBlVGVtcGxhdGUsXG4gICAgICAgIGVtYWlsOiB0eXBlVGVtcGxhdGUsXG4gICAgICAgIHVybDogdHlwZVRlbXBsYXRlLFxuICAgICAgICBoZXg6IHR5cGVUZW1wbGF0ZVxuICAgICAgfSxcbiAgICAgIHN0cmluZzoge1xuICAgICAgICBsZW46ICcke2xhYmVsfSBtdXN0IGJlICR7bGVufSBjaGFyYWN0ZXJzJyxcbiAgICAgICAgbWluOiAnJHtsYWJlbH0gbXVzdCBiZSBhdCBsZWFzdCAke21pbn0gY2hhcmFjdGVycycsXG4gICAgICAgIG1heDogJyR7bGFiZWx9IG11c3QgYmUgdXAgdG8gJHttYXh9IGNoYXJhY3RlcnMnLFxuICAgICAgICByYW5nZTogJyR7bGFiZWx9IG11c3QgYmUgYmV0d2VlbiAke21pbn0tJHttYXh9IGNoYXJhY3RlcnMnXG4gICAgICB9LFxuICAgICAgbnVtYmVyOiB7XG4gICAgICAgIGxlbjogJyR7bGFiZWx9IG11c3QgYmUgZXF1YWwgdG8gJHtsZW59JyxcbiAgICAgICAgbWluOiAnJHtsYWJlbH0gbXVzdCBiZSBtaW5pbXVtICR7bWlufScsXG4gICAgICAgIG1heDogJyR7bGFiZWx9IG11c3QgYmUgbWF4aW11bSAke21heH0nLFxuICAgICAgICByYW5nZTogJyR7bGFiZWx9IG11c3QgYmUgYmV0d2VlbiAke21pbn0tJHttYXh9J1xuICAgICAgfSxcbiAgICAgIGFycmF5OiB7XG4gICAgICAgIGxlbjogJ011c3QgYmUgJHtsZW59ICR7bGFiZWx9JyxcbiAgICAgICAgbWluOiAnQXQgbGVhc3QgJHttaW59ICR7bGFiZWx9JyxcbiAgICAgICAgbWF4OiAnQXQgbW9zdCAke21heH0gJHtsYWJlbH0nLFxuICAgICAgICByYW5nZTogJ1RoZSBhbW91bnQgb2YgJHtsYWJlbH0gbXVzdCBiZSBiZXR3ZWVuICR7bWlufS0ke21heH0nXG4gICAgICB9LFxuICAgICAgcGF0dGVybjoge1xuICAgICAgICBtaXNtYXRjaDogJyR7bGFiZWx9IGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuICR7cGF0dGVybn0nXG4gICAgICB9XG4gICAgfVxuICB9LFxuICBJbWFnZToge1xuICAgIHByZXZpZXc6ICdQcmV2aWV3J1xuICB9XG59O1xudmFyIF9kZWZhdWx0ID0gbG9jYWxlVmFsdWVzO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbnZhciBfdHlwZW9mID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VMb2NhbGVSZWNlaXZlciA9IHVzZUxvY2FsZVJlY2VpdmVyO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIikpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3NcIikpO1xuXG52YXIgX2luaGVyaXRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHNcIikpO1xuXG52YXIgX2NyZWF0ZVN1cGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlU3VwZXJcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2RlZmF1bHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2RlZmF1bHRcIikpO1xuXG52YXIgX2NvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NvbnRleHRcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBMb2NhbGVSZWNlaXZlciA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAoMCwgX2luaGVyaXRzMltcImRlZmF1bHRcIl0pKExvY2FsZVJlY2VpdmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gKDAsIF9jcmVhdGVTdXBlcjJbXCJkZWZhdWx0XCJdKShMb2NhbGVSZWNlaXZlcik7XG5cbiAgZnVuY3Rpb24gTG9jYWxlUmVjZWl2ZXIoKSB7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazJbXCJkZWZhdWx0XCJdKSh0aGlzLCBMb2NhbGVSZWNlaXZlcik7XG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczJbXCJkZWZhdWx0XCJdKShMb2NhbGVSZWNlaXZlciwgW3tcbiAgICBrZXk6IFwiZ2V0TG9jYWxlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExvY2FsZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY29tcG9uZW50TmFtZSA9IF90aGlzJHByb3BzLmNvbXBvbmVudE5hbWUsXG4gICAgICAgICAgZGVmYXVsdExvY2FsZSA9IF90aGlzJHByb3BzLmRlZmF1bHRMb2NhbGU7XG4gICAgICB2YXIgbG9jYWxlID0gZGVmYXVsdExvY2FsZSB8fCBfZGVmYXVsdFtcImRlZmF1bHRcIl1bY29tcG9uZW50TmFtZSB8fCAnZ2xvYmFsJ107XG4gICAgICB2YXIgYW50TG9jYWxlID0gdGhpcy5jb250ZXh0O1xuICAgICAgdmFyIGxvY2FsZUZyb21Db250ZXh0ID0gY29tcG9uZW50TmFtZSAmJiBhbnRMb2NhbGUgPyBhbnRMb2NhbGVbY29tcG9uZW50TmFtZV0gOiB7fTtcbiAgICAgIHJldHVybiAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCB0eXBlb2YgbG9jYWxlID09PSAnZnVuY3Rpb24nID8gbG9jYWxlKCkgOiBsb2NhbGUpLCBsb2NhbGVGcm9tQ29udGV4dCB8fCB7fSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldExvY2FsZUNvZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TG9jYWxlQ29kZSgpIHtcbiAgICAgIHZhciBhbnRMb2NhbGUgPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgbG9jYWxlQ29kZSA9IGFudExvY2FsZSAmJiBhbnRMb2NhbGUubG9jYWxlOyAvLyBIYWQgdXNlIExvY2FsZVByb3ZpZGUgYnV0IGRpZG4ndCBzZXQgbG9jYWxlXG5cbiAgICAgIGlmIChhbnRMb2NhbGUgJiYgYW50TG9jYWxlLmV4aXN0ICYmICFsb2NhbGVDb2RlKSB7XG4gICAgICAgIHJldHVybiBfZGVmYXVsdFtcImRlZmF1bHRcIl0ubG9jYWxlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYWxlQ29kZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuKHRoaXMuZ2V0TG9jYWxlKCksIHRoaXMuZ2V0TG9jYWxlQ29kZSgpLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgfV0pO1xuICByZXR1cm4gTG9jYWxlUmVjZWl2ZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTG9jYWxlUmVjZWl2ZXI7XG5Mb2NhbGVSZWNlaXZlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdnbG9iYWwnXG59O1xuTG9jYWxlUmVjZWl2ZXIuY29udGV4dFR5cGUgPSBfY29udGV4dFtcImRlZmF1bHRcIl07XG5cbmZ1bmN0aW9uIHVzZUxvY2FsZVJlY2VpdmVyKGNvbXBvbmVudE5hbWUsIGRlZmF1bHRMb2NhbGUpIHtcbiAgdmFyIGFudExvY2FsZSA9IFJlYWN0LnVzZUNvbnRleHQoX2NvbnRleHRbXCJkZWZhdWx0XCJdKTtcbiAgdmFyIGNvbXBvbmVudExvY2FsZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBsb2NhbGUgPSBkZWZhdWx0TG9jYWxlIHx8IF9kZWZhdWx0W1wiZGVmYXVsdFwiXVtjb21wb25lbnROYW1lIHx8ICdnbG9iYWwnXTtcbiAgICB2YXIgbG9jYWxlRnJvbUNvbnRleHQgPSBjb21wb25lbnROYW1lICYmIGFudExvY2FsZSA/IGFudExvY2FsZVtjb21wb25lbnROYW1lXSA6IHt9O1xuICAgIHJldHVybiAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCB0eXBlb2YgbG9jYWxlID09PSAnZnVuY3Rpb24nID8gbG9jYWxlKCkgOiBsb2NhbGUpLCBsb2NhbGVGcm9tQ29udGV4dCB8fCB7fSk7XG4gIH0sIFtjb21wb25lbnROYW1lLCBkZWZhdWx0TG9jYWxlLCBhbnRMb2NhbGVdKTtcbiAgcmV0dXJuIFtjb21wb25lbnRMb2NhbGVdO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLndpdGhDb25maWdDb25zdW1lciA9IHdpdGhDb25maWdDb25zdW1lcjtcbmV4cG9ydHMuQ29uZmlnQ29uc3VtZXIgPSBleHBvcnRzLkNvbmZpZ0NvbnRleHQgPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlbmRlckVtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9yZW5kZXJFbXB0eVwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIGRlZmF1bHRHZXRQcmVmaXhDbHMgPSBmdW5jdGlvbiBkZWZhdWx0R2V0UHJlZml4Q2xzKHN1ZmZpeENscywgY3VzdG9taXplUHJlZml4Q2xzKSB7XG4gIGlmIChjdXN0b21pemVQcmVmaXhDbHMpIHJldHVybiBjdXN0b21pemVQcmVmaXhDbHM7XG4gIHJldHVybiBzdWZmaXhDbHMgPyBcImFudC1cIi5jb25jYXQoc3VmZml4Q2xzKSA6ICdhbnQnO1xufTtcblxudmFyIENvbmZpZ0NvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIC8vIFdlIHByb3ZpZGUgYSBkZWZhdWx0IGZ1bmN0aW9uIGZvciBDb250ZXh0IHdpdGhvdXQgcHJvdmlkZXJcbiAgZ2V0UHJlZml4Q2xzOiBkZWZhdWx0R2V0UHJlZml4Q2xzLFxuICByZW5kZXJFbXB0eTogX3JlbmRlckVtcHR5W1wiZGVmYXVsdFwiXVxufSk7XG5leHBvcnRzLkNvbmZpZ0NvbnRleHQgPSBDb25maWdDb250ZXh0O1xudmFyIENvbmZpZ0NvbnN1bWVyID0gQ29uZmlnQ29udGV4dC5Db25zdW1lcjtcbi8qKiBAZGVwcmVjYXRlZCBVc2UgaG9va3MgaW5zdGVhZC4gVGhpcyBpcyBhIGxlZ2FjeSBmdW5jdGlvbiAqL1xuXG5leHBvcnRzLkNvbmZpZ0NvbnN1bWVyID0gQ29uZmlnQ29uc3VtZXI7XG5cbmZ1bmN0aW9uIHdpdGhDb25maWdDb25zdW1lcihjb25maWcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHdpdGhDb25maWdDb25zdW1lckZ1bmMoQ29tcG9uZW50KSB7XG4gICAgLy8gV3JhcCB3aXRoIENvbmZpZ0NvbnN1bWVyLiBTaW5jZSB3ZSBuZWVkIGNvbXBhdGlibGUgd2l0aCByZWFjdCAxNSwgYmUgY2FyZSB3aGVuIHVzaW5nIHJlZiBtZXRob2RzXG4gICAgdmFyIFNGQyA9IGZ1bmN0aW9uIFNGQyhwcm9wcykge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbmZpZ0NvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoY29uZmlnUHJvcHMpIHtcbiAgICAgICAgdmFyIGJhc2ljUHJlZml4Q2xzID0gY29uZmlnLnByZWZpeENscztcbiAgICAgICAgdmFyIGdldFByZWZpeENscyA9IGNvbmZpZ1Byb3BzLmdldFByZWZpeENscztcbiAgICAgICAgdmFyIGN1c3RvbWl6ZVByZWZpeENscyA9IHByb3BzLnByZWZpeENscztcbiAgICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscyhiYXNpY1ByZWZpeENscywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwgKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCBjb25maWdQcm9wcywgcHJvcHMsIHtcbiAgICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENsc1xuICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgdmFyIGNvbnMgPSBDb21wb25lbnQuY29uc3RydWN0b3I7XG4gICAgdmFyIG5hbWUgPSBjb25zICYmIGNvbnMuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG4gICAgU0ZDLmRpc3BsYXlOYW1lID0gXCJ3aXRoQ29uZmlnQ29uc3VtZXIoXCIuY29uY2F0KG5hbWUsIFwiKVwiKTtcbiAgICByZXR1cm4gU0ZDO1xuICB9O1xufSIsIid1c2Ugc3RyaWN0JztcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbiAgfSk7XG4gIGV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbiAgXG4gIHZhciBfTG9hZGluZ091dGxpbmVkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCcuL2xpYi9pY29ucy9Mb2FkaW5nT3V0bGluZWQnKSk7XG4gIFxuICBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG4gIFxuICB2YXIgX2RlZmF1bHQgPSBfTG9hZGluZ091dGxpbmVkO1xuICBleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKTtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLndhcm5pbmcgPSB3YXJuaW5nO1xuZXhwb3J0cy5pc0ljb25EZWZpbml0aW9uID0gaXNJY29uRGVmaW5pdGlvbjtcbmV4cG9ydHMubm9ybWFsaXplQXR0cnMgPSBub3JtYWxpemVBdHRycztcbmV4cG9ydHMuZ2VuZXJhdGUgPSBnZW5lcmF0ZTtcbmV4cG9ydHMuZ2V0U2Vjb25kYXJ5Q29sb3IgPSBnZXRTZWNvbmRhcnlDb2xvcjtcbmV4cG9ydHMubm9ybWFsaXplVHdvVG9uZUNvbG9ycyA9IG5vcm1hbGl6ZVR3b1RvbmVDb2xvcnM7XG5leHBvcnRzLnVzZUluc2VydFN0eWxlcyA9IGV4cG9ydHMuaWNvblN0eWxlcyA9IGV4cG9ydHMuc3ZnQmFzZVByb3BzID0gdm9pZCAwO1xuXG52YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZDJcIikpO1xuXG52YXIgX3R5cGVvZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKSk7XG5cbnZhciBfY29sb3JzID0gcmVxdWlyZShcIkBhbnQtZGVzaWduL2NvbG9yc1wiKTtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL3dhcm5pbmdcIikpO1xuXG52YXIgX2R5bmFtaWNDU1MgPSByZXF1aXJlKFwicmMtdXRpbC9saWIvRG9tL2R5bmFtaWNDU1NcIik7XG5cbnZhciBfQ29udGV4dCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY29tcG9uZW50cy9Db250ZXh0XCIpKTtcblxuZnVuY3Rpb24gd2FybmluZyh2YWxpZCwgbWVzc2FnZSkge1xuICAoMCwgX3dhcm5pbmcuZGVmYXVsdCkodmFsaWQsIFwiW0BhbnQtZGVzaWduL2ljb25zXSBcIi5jb25jYXQobWVzc2FnZSkpO1xufVxuXG5mdW5jdGlvbiBpc0ljb25EZWZpbml0aW9uKHRhcmdldCkge1xuICByZXR1cm4gKDAsIF90eXBlb2YyLmRlZmF1bHQpKHRhcmdldCkgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQubmFtZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHRhcmdldC50aGVtZSA9PT0gJ3N0cmluZycgJiYgKCgwLCBfdHlwZW9mMi5kZWZhdWx0KSh0YXJnZXQuaWNvbikgPT09ICdvYmplY3QnIHx8IHR5cGVvZiB0YXJnZXQuaWNvbiA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUF0dHJzKCkge1xuICB2YXIgYXR0cnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICByZXR1cm4gT2JqZWN0LmtleXMoYXR0cnMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBrZXkpIHtcbiAgICB2YXIgdmFsID0gYXR0cnNba2V5XTtcblxuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5jbGFzc05hbWUgPSB2YWw7XG4gICAgICAgIGRlbGV0ZSBhY2MuY2xhc3M7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBhY2Nba2V5XSA9IHZhbDtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlKG5vZGUsIGtleSwgcm9vdFByb3BzKSB7XG4gIGlmICghcm9vdFByb3BzKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9fcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG5vZGUudGFnLCAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe1xuICAgICAga2V5OiBrZXlcbiAgICB9LCBub3JtYWxpemVBdHRycyhub2RlLmF0dHJzKSksIChub2RlLmNoaWxkcmVuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKGNoaWxkLCBpbmRleCkge1xuICAgICAgcmV0dXJuIGdlbmVyYXRlKGNoaWxkLCBcIlwiLmNvbmNhdChrZXksIFwiLVwiKS5jb25jYXQobm9kZS50YWcsIFwiLVwiKS5jb25jYXQoaW5kZXgpKTtcbiAgICB9KSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL19yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQobm9kZS50YWcsICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSgoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe1xuICAgIGtleToga2V5XG4gIH0sIG5vcm1hbGl6ZUF0dHJzKG5vZGUuYXR0cnMpKSwgcm9vdFByb3BzKSwgKG5vZGUuY2hpbGRyZW4gfHwgW10pLm1hcChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgcmV0dXJuIGdlbmVyYXRlKGNoaWxkLCBcIlwiLmNvbmNhdChrZXksIFwiLVwiKS5jb25jYXQobm9kZS50YWcsIFwiLVwiKS5jb25jYXQoaW5kZXgpKTtcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpIHtcbiAgLy8gY2hvb3NlIHRoZSBzZWNvbmQgY29sb3JcbiAgcmV0dXJuICgwLCBfY29sb3JzLmdlbmVyYXRlKShwcmltYXJ5Q29sb3IpWzBdO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVUd29Ub25lQ29sb3JzKHR3b1RvbmVDb2xvcikge1xuICBpZiAoIXR3b1RvbmVDb2xvcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHR3b1RvbmVDb2xvcikgPyB0d29Ub25lQ29sb3IgOiBbdHdvVG9uZUNvbG9yXTtcbn0gLy8gVGhlc2UgcHJvcHMgbWFrZSBzdXJlIHRoYXQgdGhlIFNWRyBiZWhhdmlvdXJzIGxpa2UgZ2VuZXJhbCB0ZXh0LlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2Jsb2cucHJvdG90eXByLmlvL2FsaWduLXN2Zy1pY29ucy10by10ZXh0LWFuZC1zYXktZ29vZGJ5ZS10by1mb250LWljb25zLWQ0NGIzZDdiMjZiNFxuXG5cbnZhciBzdmdCYXNlUHJvcHMgPSB7XG4gIHdpZHRoOiAnMWVtJyxcbiAgaGVpZ2h0OiAnMWVtJyxcbiAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICdhcmlhLWhpZGRlbic6ICd0cnVlJyxcbiAgZm9jdXNhYmxlOiAnZmFsc2UnXG59O1xuZXhwb3J0cy5zdmdCYXNlUHJvcHMgPSBzdmdCYXNlUHJvcHM7XG52YXIgaWNvblN0eWxlcyA9IFwiXFxuLmFudGljb24ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBmb250LXN0eWxlOiBub3JtYWw7XFxuICBsaW5lLWhlaWdodDogMDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgdmVydGljYWwtYWxpZ246IC0wLjEyNWVtO1xcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG59XFxuXFxuLmFudGljb24gPiAqIHtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG5cXG4uYW50aWNvbiBzdmcge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG4uYW50aWNvbjo6YmVmb3JlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcblxcbi5hbnRpY29uIC5hbnRpY29uLWljb24ge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbi5hbnRpY29uW3RhYmluZGV4XSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5hbnRpY29uLXNwaW46OmJlZm9yZSxcXG4uYW50aWNvbi1zcGluIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBsb2FkaW5nQ2lyY2xlIDFzIGluZmluaXRlIGxpbmVhcjtcXG4gIGFuaW1hdGlvbjogbG9hZGluZ0NpcmNsZSAxcyBpbmZpbml0ZSBsaW5lYXI7XFxufVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBsb2FkaW5nQ2lyY2xlIHtcXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblxcbkBrZXlmcmFtZXMgbG9hZGluZ0NpcmNsZSB7XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgfVxcbn1cXG5cIjtcbmV4cG9ydHMuaWNvblN0eWxlcyA9IGljb25TdHlsZXM7XG5cbnZhciB1c2VJbnNlcnRTdHlsZXMgPSBmdW5jdGlvbiB1c2VJbnNlcnRTdHlsZXMoKSB7XG4gIHZhciBzdHlsZVN0ciA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogaWNvblN0eWxlcztcblxuICB2YXIgX3VzZUNvbnRleHQgPSAoMCwgX3JlYWN0LnVzZUNvbnRleHQpKF9Db250ZXh0LmRlZmF1bHQpLFxuICAgICAgY3NwID0gX3VzZUNvbnRleHQuY3NwO1xuXG4gICgwLCBfcmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbiAoKSB7XG4gICAgKDAsIF9keW5hbWljQ1NTLnVwZGF0ZUNTUykoc3R5bGVTdHIsICdAYW50LWRlc2lnbi1pY29ucycsIHtcbiAgICAgIHByZXBlbmQ6IHRydWUsXG4gICAgICBjc3A6IGNzcFxuICAgIH0pO1xuICB9LCBbXSk7XG59O1xuXG5leHBvcnRzLnVzZUluc2VydFN0eWxlcyA9IHVzZUluc2VydFN0eWxlczsiLCIndXNlIHN0cmljdCc7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG4gIH0pO1xuICBleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG4gIFxuICB2YXIgX1JpZ2h0T3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoJy4vbGliL2ljb25zL1JpZ2h0T3V0bGluZWQnKSk7XG4gIFxuICBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG4gIFxuICB2YXIgX2RlZmF1bHQgPSBfUmlnaHRPdXRsaW5lZDtcbiAgZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG4gIG1vZHVsZS5leHBvcnRzID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuZ2V0VHJhbnNpdGlvbk5hbWUgPSB2b2lkIDA7XG5cbi8vID09PT09PT09PT09PT09PT09PSBDb2xsYXBzZSBNb3Rpb24gPT09PT09PT09PT09PT09PT09XG52YXIgZ2V0Q29sbGFwc2VkSGVpZ2h0ID0gZnVuY3Rpb24gZ2V0Q29sbGFwc2VkSGVpZ2h0KCkge1xuICByZXR1cm4ge1xuICAgIGhlaWdodDogMCxcbiAgICBvcGFjaXR5OiAwXG4gIH07XG59O1xuXG52YXIgZ2V0UmVhbEhlaWdodCA9IGZ1bmN0aW9uIGdldFJlYWxIZWlnaHQobm9kZSkge1xuICByZXR1cm4ge1xuICAgIGhlaWdodDogbm9kZS5zY3JvbGxIZWlnaHQsXG4gICAgb3BhY2l0eTogMVxuICB9O1xufTtcblxudmFyIGdldEN1cnJlbnRIZWlnaHQgPSBmdW5jdGlvbiBnZXRDdXJyZW50SGVpZ2h0KG5vZGUpIHtcbiAgcmV0dXJuIHtcbiAgICBoZWlnaHQ6IG5vZGUub2Zmc2V0SGVpZ2h0XG4gIH07XG59O1xuXG52YXIgc2tpcE9wYWNpdHlUcmFuc2l0aW9uID0gZnVuY3Rpb24gc2tpcE9wYWNpdHlUcmFuc2l0aW9uKF8sIGV2ZW50KSB7XG4gIHJldHVybiBldmVudC5wcm9wZXJ0eU5hbWUgPT09ICdoZWlnaHQnO1xufTtcblxudmFyIGNvbGxhcHNlTW90aW9uID0ge1xuICBtb3Rpb25OYW1lOiAnYW50LW1vdGlvbi1jb2xsYXBzZScsXG4gIG9uQXBwZWFyU3RhcnQ6IGdldENvbGxhcHNlZEhlaWdodCxcbiAgb25FbnRlclN0YXJ0OiBnZXRDb2xsYXBzZWRIZWlnaHQsXG4gIG9uQXBwZWFyQWN0aXZlOiBnZXRSZWFsSGVpZ2h0LFxuICBvbkVudGVyQWN0aXZlOiBnZXRSZWFsSGVpZ2h0LFxuICBvbkxlYXZlU3RhcnQ6IGdldEN1cnJlbnRIZWlnaHQsXG4gIG9uTGVhdmVBY3RpdmU6IGdldENvbGxhcHNlZEhlaWdodCxcbiAgb25BcHBlYXJFbmQ6IHNraXBPcGFjaXR5VHJhbnNpdGlvbixcbiAgb25FbnRlckVuZDogc2tpcE9wYWNpdHlUcmFuc2l0aW9uLFxuICBvbkxlYXZlRW5kOiBza2lwT3BhY2l0eVRyYW5zaXRpb24sXG4gIG1vdGlvbkRlYWRsaW5lOiA1MDBcbn07XG5cbnZhciBnZXRUcmFuc2l0aW9uTmFtZSA9IGZ1bmN0aW9uIGdldFRyYW5zaXRpb25OYW1lKHJvb3RQcmVmaXhDbHMsIG1vdGlvbiwgdHJhbnNpdGlvbk5hbWUpIHtcbiAgaWYgKHRyYW5zaXRpb25OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHJhbnNpdGlvbk5hbWU7XG4gIH1cblxuICByZXR1cm4gXCJcIi5jb25jYXQocm9vdFByZWZpeENscywgXCItXCIpLmNvbmNhdChtb3Rpb24pO1xufTtcblxuZXhwb3J0cy5nZXRUcmFuc2l0aW9uTmFtZSA9IGdldFRyYW5zaXRpb25OYW1lO1xudmFyIF9kZWZhdWx0ID0gY29sbGFwc2VNb3Rpb247XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuYXJyRGVsID0gYXJyRGVsO1xuZXhwb3J0cy5hcnJBZGQgPSBhcnJBZGQ7XG5leHBvcnRzLnBvc1RvQXJyID0gcG9zVG9BcnI7XG5leHBvcnRzLmdldFBvc2l0aW9uID0gZ2V0UG9zaXRpb247XG5leHBvcnRzLmlzVHJlZU5vZGUgPSBpc1RyZWVOb2RlO1xuZXhwb3J0cy5nZXREcmFnQ2hpbGRyZW5LZXlzID0gZ2V0RHJhZ0NoaWxkcmVuS2V5cztcbmV4cG9ydHMuaXNMYXN0Q2hpbGQgPSBpc0xhc3RDaGlsZDtcbmV4cG9ydHMuaXNGaXJzdENoaWxkID0gaXNGaXJzdENoaWxkO1xuZXhwb3J0cy5jYWxjRHJvcFBvc2l0aW9uID0gY2FsY0Ryb3BQb3NpdGlvbjtcbmV4cG9ydHMuY2FsY1NlbGVjdGVkS2V5cyA9IGNhbGNTZWxlY3RlZEtleXM7XG5leHBvcnRzLmNvbnZlcnREYXRhVG9UcmVlID0gY29udmVydERhdGFUb1RyZWU7XG5leHBvcnRzLnBhcnNlQ2hlY2tlZEtleXMgPSBwYXJzZUNoZWNrZWRLZXlzO1xuZXhwb3J0cy5jb25kdWN0RXhwYW5kUGFyZW50ID0gY29uZHVjdEV4cGFuZFBhcmVudDtcbmV4cG9ydHMuZ2V0RGF0YUFuZEFyaWEgPSBnZXREYXRhQW5kQXJpYTtcblxudmFyIF90b0NvbnN1bWFibGVBcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5XCIpKTtcblxudmFyIF90eXBlb2YyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIikpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi93YXJuaW5nXCIpKTtcblxudmFyIF9UcmVlTm9kZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vVHJlZU5vZGVcIikpO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1sb25lbHktaWYgKi9cblxuLyoqXG4gKiBMZWdhY3kgY29kZS4gU2hvdWxkIGF2b2lkIHRvIHVzZSBpZiB5b3UgYXJlIG5ldyB0byBpbXBvcnQgdGhlc2UgY29kZS5cbiAqL1xuZnVuY3Rpb24gYXJyRGVsKGxpc3QsIHZhbHVlKSB7XG4gIHZhciBjbG9uZSA9IGxpc3Quc2xpY2UoKTtcbiAgdmFyIGluZGV4ID0gY2xvbmUuaW5kZXhPZih2YWx1ZSk7XG5cbiAgaWYgKGluZGV4ID49IDApIHtcbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgcmV0dXJuIGNsb25lO1xufVxuXG5mdW5jdGlvbiBhcnJBZGQobGlzdCwgdmFsdWUpIHtcbiAgdmFyIGNsb25lID0gbGlzdC5zbGljZSgpO1xuXG4gIGlmIChjbG9uZS5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICBjbG9uZS5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBjbG9uZTtcbn1cblxuZnVuY3Rpb24gcG9zVG9BcnIocG9zKSB7XG4gIHJldHVybiBwb3Muc3BsaXQoJy0nKTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zaXRpb24obGV2ZWwsIGluZGV4KSB7XG4gIHJldHVybiBcIlwiLmNvbmNhdChsZXZlbCwgXCItXCIpLmNvbmNhdChpbmRleCk7XG59XG5cbmZ1bmN0aW9uIGlzVHJlZU5vZGUobm9kZSkge1xuICByZXR1cm4gbm9kZSAmJiBub2RlLnR5cGUgJiYgbm9kZS50eXBlLmlzVHJlZU5vZGU7XG59XG5cbmZ1bmN0aW9uIGdldERyYWdDaGlsZHJlbktleXMoZHJhZ05vZGVLZXksIGtleUVudGl0aWVzKSB7XG4gIC8vIG5vdCBjb250YWlucyBzZWxmXG4gIC8vIHNlbGYgZm9yIGxlZnQgb3IgcmlnaHQgZHJhZ1xuICB2YXIgZHJhZ0NoaWxkcmVuS2V5cyA9IFtdO1xuICB2YXIgZW50aXR5ID0ga2V5RW50aXRpZXNbZHJhZ05vZGVLZXldO1xuXG4gIGZ1bmN0aW9uIGRpZygpIHtcbiAgICB2YXIgbGlzdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107XG4gICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIga2V5ID0gX3JlZi5rZXksXG4gICAgICAgICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuO1xuICAgICAgZHJhZ0NoaWxkcmVuS2V5cy5wdXNoKGtleSk7XG4gICAgICBkaWcoY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgZGlnKGVudGl0eS5jaGlsZHJlbik7XG4gIHJldHVybiBkcmFnQ2hpbGRyZW5LZXlzO1xufVxuXG5mdW5jdGlvbiBpc0xhc3RDaGlsZCh0cmVlTm9kZUVudGl0eSkge1xuICBpZiAodHJlZU5vZGVFbnRpdHkucGFyZW50KSB7XG4gICAgdmFyIHBvc0FyciA9IHBvc1RvQXJyKHRyZWVOb2RlRW50aXR5LnBvcyk7XG4gICAgcmV0dXJuIE51bWJlcihwb3NBcnJbcG9zQXJyLmxlbmd0aCAtIDFdKSA9PT0gdHJlZU5vZGVFbnRpdHkucGFyZW50LmNoaWxkcmVuLmxlbmd0aCAtIDE7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGlzRmlyc3RDaGlsZCh0cmVlTm9kZUVudGl0eSkge1xuICB2YXIgcG9zQXJyID0gcG9zVG9BcnIodHJlZU5vZGVFbnRpdHkucG9zKTtcbiAgcmV0dXJuIE51bWJlcihwb3NBcnJbcG9zQXJyLmxlbmd0aCAtIDFdKSA9PT0gMDtcbn0gLy8gT25seSB1c2VkIHdoZW4gZHJhZywgbm90IGFmZmVjdCBTU1IuXG5cblxuZnVuY3Rpb24gY2FsY0Ryb3BQb3NpdGlvbihldmVudCwgZHJhZ05vZGUsIHRhcmdldE5vZGUsIGluZGVudCwgc3RhcnRNb3VzZVBvc2l0aW9uLCBhbGxvd0Ryb3AsIGZsYXR0ZW5lZE5vZGVzLCBrZXlFbnRpdGllcywgZXhwYW5kS2V5cywgZGlyZWN0aW9uKSB7XG4gIHZhciBfYWJzdHJhY3REcm9wTm9kZUVudGk7XG5cbiAgdmFyIGNsaWVudFggPSBldmVudC5jbGllbnRYLFxuICAgICAgY2xpZW50WSA9IGV2ZW50LmNsaWVudFk7XG5cbiAgdmFyIF9ldmVudCR0YXJnZXQkZ2V0Qm91biA9IGV2ZW50LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgIHRvcCA9IF9ldmVudCR0YXJnZXQkZ2V0Qm91bi50b3AsXG4gICAgICBoZWlnaHQgPSBfZXZlbnQkdGFyZ2V0JGdldEJvdW4uaGVpZ2h0OyAvLyBvcHRpb25hbCBjaGFpbiBmb3IgdGVzdGluZ1xuXG5cbiAgdmFyIGhvcml6b250YWxNb3VzZU9mZnNldCA9IChkaXJlY3Rpb24gPT09ICdydGwnID8gLTEgOiAxKSAqICgoKHN0YXJ0TW91c2VQb3NpdGlvbiA9PT0gbnVsbCB8fCBzdGFydE1vdXNlUG9zaXRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0YXJ0TW91c2VQb3NpdGlvbi54KSB8fCAwKSAtIGNsaWVudFgpO1xuICB2YXIgcmF3RHJvcExldmVsT2Zmc2V0ID0gKGhvcml6b250YWxNb3VzZU9mZnNldCAtIDEyKSAvIGluZGVudDsgLy8gZmluZCBhYnN0cmFjdCBkcm9wIG5vZGUgYnkgaG9yaXpvbnRhbCBvZmZzZXRcblxuICB2YXIgYWJzdHJhY3REcm9wTm9kZUVudGl0eSA9IGtleUVudGl0aWVzW3RhcmdldE5vZGUucHJvcHMuZXZlbnRLZXldO1xuXG4gIGlmIChjbGllbnRZIDwgdG9wICsgaGVpZ2h0IC8gMikge1xuICAgIC8vIGZpcnN0IGhhbGYsIHNldCBhYnN0cmFjdCBkcm9wIG5vZGUgdG8gcHJldmlvdXMgbm9kZVxuICAgIHZhciBub2RlSW5kZXggPSBmbGF0dGVuZWROb2Rlcy5maW5kSW5kZXgoZnVuY3Rpb24gKGZsYXR0ZW5lZE5vZGUpIHtcbiAgICAgIHJldHVybiBmbGF0dGVuZWROb2RlLmRhdGEua2V5ID09PSBhYnN0cmFjdERyb3BOb2RlRW50aXR5LmtleTtcbiAgICB9KTtcbiAgICB2YXIgcHJldk5vZGVJbmRleCA9IG5vZGVJbmRleCA8PSAwID8gMCA6IG5vZGVJbmRleCAtIDE7XG4gICAgdmFyIHByZXZOb2RlS2V5ID0gZmxhdHRlbmVkTm9kZXNbcHJldk5vZGVJbmRleF0uZGF0YS5rZXk7XG4gICAgYWJzdHJhY3REcm9wTm9kZUVudGl0eSA9IGtleUVudGl0aWVzW3ByZXZOb2RlS2V5XTtcbiAgfVxuXG4gIHZhciBpbml0aWFsQWJzdHJhY3REcm9wTm9kZUtleSA9IGFic3RyYWN0RHJvcE5vZGVFbnRpdHkua2V5O1xuICB2YXIgYWJzdHJhY3REcmFnT3ZlckVudGl0eSA9IGFic3RyYWN0RHJvcE5vZGVFbnRpdHk7XG4gIHZhciBkcmFnT3Zlck5vZGVLZXkgPSBhYnN0cmFjdERyb3BOb2RlRW50aXR5LmtleTtcbiAgdmFyIGRyb3BQb3NpdGlvbiA9IDA7XG4gIHZhciBkcm9wTGV2ZWxPZmZzZXQgPSAwOyAvLyBPbmx5IGFsbG93IGNyb3NzIGxldmVsIGRyb3Agd2hlbiBkcmFnZ2luZyBvbiBhIG5vbi1leHBhbmRlZCBub2RlXG5cbiAgaWYgKCFleHBhbmRLZXlzLmluY2x1ZGVzKGluaXRpYWxBYnN0cmFjdERyb3BOb2RlS2V5KSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3RHJvcExldmVsT2Zmc2V0OyBpICs9IDEpIHtcbiAgICAgIGlmIChpc0xhc3RDaGlsZChhYnN0cmFjdERyb3BOb2RlRW50aXR5KSkge1xuICAgICAgICBhYnN0cmFjdERyb3BOb2RlRW50aXR5ID0gYWJzdHJhY3REcm9wTm9kZUVudGl0eS5wYXJlbnQ7XG4gICAgICAgIGRyb3BMZXZlbE9mZnNldCArPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGFic3RyYWN0RHJvcERhdGFOb2RlID0gYWJzdHJhY3REcm9wTm9kZUVudGl0eS5ub2RlO1xuICB2YXIgZHJvcEFsbG93ZWQgPSB0cnVlO1xuXG4gIGlmIChpc0ZpcnN0Q2hpbGQoYWJzdHJhY3REcm9wTm9kZUVudGl0eSkgJiYgYWJzdHJhY3REcm9wTm9kZUVudGl0eS5sZXZlbCA9PT0gMCAmJiBjbGllbnRZIDwgdG9wICsgaGVpZ2h0IC8gMiAmJiBhbGxvd0Ryb3Aoe1xuICAgIGRyb3BOb2RlOiBhYnN0cmFjdERyb3BEYXRhTm9kZSxcbiAgICBkcm9wUG9zaXRpb246IC0xXG4gIH0pICYmIGFic3RyYWN0RHJvcE5vZGVFbnRpdHkua2V5ID09PSB0YXJnZXROb2RlLnByb3BzLmV2ZW50S2V5KSB7XG4gICAgLy8gZmlyc3QgaGFsZiBvZiBmaXJzdCBub2RlIGluIGZpcnN0IGxldmVsXG4gICAgZHJvcFBvc2l0aW9uID0gLTE7XG4gIH0gZWxzZSBpZiAoKGFic3RyYWN0RHJhZ092ZXJFbnRpdHkuY2hpbGRyZW4gfHwgW10pLmxlbmd0aCAmJiBleHBhbmRLZXlzLmluY2x1ZGVzKGRyYWdPdmVyTm9kZUtleSkpIHtcbiAgICAvLyBkcm9wIG9uIGV4cGFuZGVkIG5vZGVcbiAgICAvLyBvbmx5IGFsbG93IGRyb3AgaW5zaWRlXG4gICAgaWYgKGFsbG93RHJvcCh7XG4gICAgICBkcm9wTm9kZTogYWJzdHJhY3REcm9wRGF0YU5vZGUsXG4gICAgICBkcm9wUG9zaXRpb246IDBcbiAgICB9KSkge1xuICAgICAgZHJvcFBvc2l0aW9uID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcEFsbG93ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZHJvcExldmVsT2Zmc2V0ID09PSAwKSB7XG4gICAgaWYgKHJhd0Ryb3BMZXZlbE9mZnNldCA+IC0xLjUpIHtcbiAgICAgIC8vIHwgTm9kZSAgICAgfCA8LSBhYnN0cmFjdERyb3BOb2RlXG4gICAgICAvLyB8IC1eLT09PT09IHwgPC0gbW91c2VQb3NpdGlvblxuICAgICAgLy8gMS4gdHJ5IGRyb3AgYWZ0ZXJcbiAgICAgIC8vIDIuIGRvIG5vdCBhbGxvdyBkcm9wXG4gICAgICBpZiAoYWxsb3dEcm9wKHtcbiAgICAgICAgZHJvcE5vZGU6IGFic3RyYWN0RHJvcERhdGFOb2RlLFxuICAgICAgICBkcm9wUG9zaXRpb246IDFcbiAgICAgIH0pKSB7XG4gICAgICAgIGRyb3BQb3NpdGlvbiA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkcm9wQWxsb3dlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB8IE5vZGUgICAgIHwgPC0gYWJzdHJhY3REcm9wTm9kZVxuICAgICAgLy8gfCAtLS09PV49PSB8IDwtIG1vdXNlUG9zaXRpb25cbiAgICAgIC8vIHdoZXRoZXIgaXQgaGFzIGNoaWxkcmVuIG9yIGRvZXNuJ3QgaGFzIGNoaWxkcmVuXG4gICAgICAvLyBhbHdheXNcbiAgICAgIC8vIDEuIHRyeSBkcm9wIGluc2lkZVxuICAgICAgLy8gMi4gdHJ5IGRyb3AgYWZ0ZXJcbiAgICAgIC8vIDMuIGRvIG5vdCBhbGxvdyBkcm9wXG4gICAgICBpZiAoYWxsb3dEcm9wKHtcbiAgICAgICAgZHJvcE5vZGU6IGFic3RyYWN0RHJvcERhdGFOb2RlLFxuICAgICAgICBkcm9wUG9zaXRpb246IDBcbiAgICAgIH0pKSB7XG4gICAgICAgIGRyb3BQb3NpdGlvbiA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGFsbG93RHJvcCh7XG4gICAgICAgIGRyb3BOb2RlOiBhYnN0cmFjdERyb3BEYXRhTm9kZSxcbiAgICAgICAgZHJvcFBvc2l0aW9uOiAxXG4gICAgICB9KSkge1xuICAgICAgICBkcm9wUG9zaXRpb24gPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJvcEFsbG93ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gfCBOb2RlMSB8IDwtIGFic3RyYWN0RHJvcE5vZGVcbiAgICAvLyAgICAgIHwgIE5vZGUyICB8XG4gICAgLy8gLS1eLS18LS0tLT09PT09fCA8LSBtb3VzZVBvc2l0aW9uXG4gICAgLy8gMS4gdHJ5IGluc2VydCBhZnRlciBOb2RlMVxuICAgIC8vIDIuIGRvIG5vdCBhbGxvdyBkcm9wXG4gICAgaWYgKGFsbG93RHJvcCh7XG4gICAgICBkcm9wTm9kZTogYWJzdHJhY3REcm9wRGF0YU5vZGUsXG4gICAgICBkcm9wUG9zaXRpb246IDFcbiAgICB9KSkge1xuICAgICAgZHJvcFBvc2l0aW9uID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcEFsbG93ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRyb3BQb3NpdGlvbjogZHJvcFBvc2l0aW9uLFxuICAgIGRyb3BMZXZlbE9mZnNldDogZHJvcExldmVsT2Zmc2V0LFxuICAgIGRyb3BUYXJnZXRLZXk6IGFic3RyYWN0RHJvcE5vZGVFbnRpdHkua2V5LFxuICAgIGRyb3BUYXJnZXRQb3M6IGFic3RyYWN0RHJvcE5vZGVFbnRpdHkucG9zLFxuICAgIGRyYWdPdmVyTm9kZUtleTogZHJhZ092ZXJOb2RlS2V5LFxuICAgIGRyb3BDb250YWluZXJLZXk6IGRyb3BQb3NpdGlvbiA9PT0gMCA/IG51bGwgOiAoKF9hYnN0cmFjdERyb3BOb2RlRW50aSA9IGFic3RyYWN0RHJvcE5vZGVFbnRpdHkucGFyZW50KSA9PT0gbnVsbCB8fCBfYWJzdHJhY3REcm9wTm9kZUVudGkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hYnN0cmFjdERyb3BOb2RlRW50aS5rZXkpIHx8IG51bGwsXG4gICAgZHJvcEFsbG93ZWQ6IGRyb3BBbGxvd2VkXG4gIH07XG59XG4vKipcbiAqIFJldHVybiBzZWxlY3RlZEtleXMgYWNjb3JkaW5nIHdpdGggbXVsdGlwbGUgcHJvcFxuICogQHBhcmFtIHNlbGVjdGVkS2V5c1xuICogQHBhcmFtIHByb3BzXG4gKiBAcmV0dXJucyBbc3RyaW5nXVxuICovXG5cblxuZnVuY3Rpb24gY2FsY1NlbGVjdGVkS2V5cyhzZWxlY3RlZEtleXMsIHByb3BzKSB7XG4gIGlmICghc2VsZWN0ZWRLZXlzKSByZXR1cm4gdW5kZWZpbmVkO1xuICB2YXIgbXVsdGlwbGUgPSBwcm9wcy5tdWx0aXBsZTtcblxuICBpZiAobXVsdGlwbGUpIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRLZXlzLnNsaWNlKCk7XG4gIH1cblxuICBpZiAoc2VsZWN0ZWRLZXlzLmxlbmd0aCkge1xuICAgIHJldHVybiBbc2VsZWN0ZWRLZXlzWzBdXTtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3RlZEtleXM7XG59XG5cbnZhciBpbnRlcm5hbFByb2Nlc3NQcm9wcyA9IGZ1bmN0aW9uIGludGVybmFsUHJvY2Vzc1Byb3BzKHByb3BzKSB7XG4gIHJldHVybiBwcm9wcztcbn07XG5cbmZ1bmN0aW9uIGNvbnZlcnREYXRhVG9UcmVlKHRyZWVEYXRhLCBwcm9jZXNzb3IpIHtcbiAgaWYgKCF0cmVlRGF0YSkgcmV0dXJuIFtdO1xuXG4gIHZhciBfcmVmMiA9IHByb2Nlc3NvciB8fCB7fSxcbiAgICAgIF9yZWYyJHByb2Nlc3NQcm9wcyA9IF9yZWYyLnByb2Nlc3NQcm9wcyxcbiAgICAgIHByb2Nlc3NQcm9wcyA9IF9yZWYyJHByb2Nlc3NQcm9wcyA9PT0gdm9pZCAwID8gaW50ZXJuYWxQcm9jZXNzUHJvcHMgOiBfcmVmMiRwcm9jZXNzUHJvcHM7XG5cbiAgdmFyIGxpc3QgPSBBcnJheS5pc0FycmF5KHRyZWVEYXRhKSA/IHRyZWVEYXRhIDogW3RyZWVEYXRhXTtcbiAgcmV0dXJuIGxpc3QubWFwKGZ1bmN0aW9uIChfcmVmMykge1xuICAgIHZhciBjaGlsZHJlbiA9IF9yZWYzLmNoaWxkcmVuLFxuICAgICAgICBwcm9wcyA9ICgwLCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyLmRlZmF1bHQpKF9yZWYzLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkcmVuTm9kZXMgPSBjb252ZXJ0RGF0YVRvVHJlZShjaGlsZHJlbiwgcHJvY2Vzc29yKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL19yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX1RyZWVOb2RlLmRlZmF1bHQsIHByb2Nlc3NQcm9wcyhwcm9wcyksIGNoaWxkcmVuTm9kZXMpO1xuICB9KTtcbn1cbi8qKlxuICogUGFyc2UgYGNoZWNrZWRLZXlzYCB0byB7IGNoZWNrZWRLZXlzLCBoYWxmQ2hlY2tlZEtleXMgfSBzdHlsZVxuICovXG5cblxuZnVuY3Rpb24gcGFyc2VDaGVja2VkS2V5cyhrZXlzKSB7XG4gIGlmICgha2V5cykge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIENvbnZlcnQga2V5cyB0byBvYmplY3QgZm9ybWF0XG5cblxuICB2YXIga2V5UHJvcHM7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoa2V5cykpIHtcbiAgICAvLyBbTGVnYWN5XSBGb2xsb3cgdGhlIGFwaSBkb2NcbiAgICBrZXlQcm9wcyA9IHtcbiAgICAgIGNoZWNrZWRLZXlzOiBrZXlzLFxuICAgICAgaGFsZkNoZWNrZWRLZXlzOiB1bmRlZmluZWRcbiAgICB9O1xuICB9IGVsc2UgaWYgKCgwLCBfdHlwZW9mMi5kZWZhdWx0KShrZXlzKSA9PT0gJ29iamVjdCcpIHtcbiAgICBrZXlQcm9wcyA9IHtcbiAgICAgIGNoZWNrZWRLZXlzOiBrZXlzLmNoZWNrZWQgfHwgdW5kZWZpbmVkLFxuICAgICAgaGFsZkNoZWNrZWRLZXlzOiBrZXlzLmhhbGZDaGVja2VkIHx8IHVuZGVmaW5lZFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgKDAsIF93YXJuaW5nLmRlZmF1bHQpKGZhbHNlLCAnYGNoZWNrZWRLZXlzYCBpcyBub3QgYW4gYXJyYXkgb3IgYW4gb2JqZWN0Jyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ga2V5UHJvcHM7XG59XG4vKipcbiAqIElmIHVzZXIgdXNlIGBhdXRvRXhwYW5kUGFyZW50YCB3ZSBzaG91bGQgZ2V0IHRoZSBsaXN0IG9mIHBhcmVudCBub2RlXG4gKiBAcGFyYW0ga2V5TGlzdFxuICogQHBhcmFtIGtleUVudGl0aWVzXG4gKi9cblxuXG5mdW5jdGlvbiBjb25kdWN0RXhwYW5kUGFyZW50KGtleUxpc3QsIGtleUVudGl0aWVzKSB7XG4gIHZhciBleHBhbmRlZEtleXMgPSBuZXcgU2V0KCk7XG5cbiAgZnVuY3Rpb24gY29uZHVjdFVwKGtleSkge1xuICAgIGlmIChleHBhbmRlZEtleXMuaGFzKGtleSkpIHJldHVybjtcbiAgICB2YXIgZW50aXR5ID0ga2V5RW50aXRpZXNba2V5XTtcbiAgICBpZiAoIWVudGl0eSkgcmV0dXJuO1xuICAgIGV4cGFuZGVkS2V5cy5hZGQoa2V5KTtcbiAgICB2YXIgcGFyZW50ID0gZW50aXR5LnBhcmVudCxcbiAgICAgICAgbm9kZSA9IGVudGl0eS5ub2RlO1xuICAgIGlmIChub2RlLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBjb25kdWN0VXAocGFyZW50LmtleSk7XG4gICAgfVxuICB9XG5cbiAgKGtleUxpc3QgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIGNvbmR1Y3RVcChrZXkpO1xuICB9KTtcbiAgcmV0dXJuICgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKGV4cGFuZGVkS2V5cyk7XG59XG4vKipcbiAqIFJldHVybnMgb25seSB0aGUgZGF0YS0gYW5kIGFyaWEtIGtleS92YWx1ZSBwYWlyc1xuICovXG5cblxuZnVuY3Rpb24gZ2V0RGF0YUFuZEFyaWEocHJvcHMpIHtcbiAgdmFyIG9taXRQcm9wcyA9IHt9O1xuICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKCdkYXRhLScpIHx8IGtleS5zdGFydHNXaXRoKCdhcmlhLScpKSB7XG4gICAgICBvbWl0UHJvcHNba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9taXRQcm9wcztcbn0iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKTtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB1c2VDb250cm9sbGVkU3RhdGU7XG5cbnZhciBfc2xpY2VkVG9BcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXlcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG5mdW5jdGlvbiB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFN0YXRlVmFsdWUsIG9wdGlvbikge1xuICB2YXIgX3JlZiA9IG9wdGlvbiB8fCB7fSxcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IF9yZWYuZGVmYXVsdFZhbHVlLFxuICAgICAgdmFsdWUgPSBfcmVmLnZhbHVlLFxuICAgICAgb25DaGFuZ2UgPSBfcmVmLm9uQ2hhbmdlLFxuICAgICAgcG9zdFN0YXRlID0gX3JlZi5wb3N0U3RhdGU7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBkZWZhdWx0VmFsdWUgPT09ICdmdW5jdGlvbicgPyBkZWZhdWx0VmFsdWUoKSA6IGRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIGRlZmF1bHRTdGF0ZVZhbHVlID09PSAnZnVuY3Rpb24nID8gZGVmYXVsdFN0YXRlVmFsdWUoKSA6IGRlZmF1bHRTdGF0ZVZhbHVlO1xuICB9KSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgICBpbm5lclZhbHVlID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICAgIHNldElubmVyVmFsdWUgPSBfUmVhY3QkdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBtZXJnZWRWYWx1ZSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IGlubmVyVmFsdWU7XG5cbiAgaWYgKHBvc3RTdGF0ZSkge1xuICAgIG1lcmdlZFZhbHVlID0gcG9zdFN0YXRlKG1lcmdlZFZhbHVlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyaWdnZXJDaGFuZ2UobmV3VmFsdWUpIHtcbiAgICBzZXRJbm5lclZhbHVlKG5ld1ZhbHVlKTtcblxuICAgIGlmIChtZXJnZWRWYWx1ZSAhPT0gbmV3VmFsdWUgJiYgb25DaGFuZ2UpIHtcbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlLCBtZXJnZWRWYWx1ZSk7XG4gICAgfVxuICB9IC8vIEVmZmVjdCBvZiByZXNldCB2YWx1ZSB0byBgdW5kZWZpbmVkYFxuXG5cbiAgdmFyIGZpcnN0UmVuZGVyUmVmID0gUmVhY3QudXNlUmVmKHRydWUpO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChmaXJzdFJlbmRlclJlZi5jdXJyZW50KSB7XG4gICAgICBmaXJzdFJlbmRlclJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldElubmVyVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfSwgW3ZhbHVlXSk7XG4gIHJldHVybiBbbWVyZ2VkVmFsdWUsIHRyaWdnZXJDaGFuZ2VdO1xufSIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5cbnZhciBNZW51Q29udGV4dCA9IC8qI19fUFVSRV9fKi8oMCwgX3JlYWN0LmNyZWF0ZUNvbnRleHQpKHtcbiAgaW5saW5lQ29sbGFwc2VkOiBmYWxzZVxufSk7XG52YXIgX2RlZmF1bHQgPSBNZW51Q29udGV4dDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX2V4dGVuZHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzXCIpKTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9yY0NoZWNrYm94ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtY2hlY2tib3hcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9yZWYgPSByZXF1aXJlKFwicmMtdXRpbC9saWIvcmVmXCIpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9jb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9jb250ZXh0XCIpKTtcblxudmFyIF9kZXZXYXJuaW5nID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvZGV2V2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBJbnRlcm5hbFJhZGlvID0gZnVuY3Rpb24gSW50ZXJuYWxSYWRpbyhwcm9wcywgcmVmKSB7XG4gIHZhciBfY2xhc3NOYW1lcztcblxuICB2YXIgY29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoX2NvbnRleHRbXCJkZWZhdWx0XCJdKTtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KF9jb25maWdQcm92aWRlci5Db25maWdDb250ZXh0KSxcbiAgICAgIGdldFByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICB2YXIgaW5uZXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgdmFyIG1lcmdlZFJlZiA9ICgwLCBfcmVmLmNvbXBvc2VSZWYpKHJlZiwgaW5uZXJSZWYpO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICgwLCBfZGV2V2FybmluZ1tcImRlZmF1bHRcIl0pKCEoJ29wdGlvblR5cGUnIGluIHByb3BzKSwgJ1JhZGlvJywgJ2BvcHRpb25UeXBlYCBpcyBvbmx5IHN1cHBvcnQgaW4gUmFkaW8uR3JvdXAuJyk7XG4gIH0sIFtdKTtcblxuICB2YXIgb25DaGFuZ2UgPSBmdW5jdGlvbiBvbkNoYW5nZShlKSB7XG4gICAgdmFyIF9hLCBfYjtcblxuICAgIChfYSA9IHByb3BzLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwcm9wcywgZSk7XG4gICAgKF9iID0gY29udGV4dCA9PT0gbnVsbCB8fCBjb250ZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250ZXh0Lm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChjb250ZXh0LCBlKTtcbiAgfTtcblxuICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgIHN0eWxlID0gcHJvcHMuc3R5bGUsXG4gICAgICByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcImNoaWxkcmVuXCIsIFwic3R5bGVcIl0pO1xuXG4gIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ3JhZGlvJywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgdmFyIHJhZGlvUHJvcHMgPSAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIHJlc3RQcm9wcyk7XG5cbiAgaWYgKGNvbnRleHQpIHtcbiAgICByYWRpb1Byb3BzLm5hbWUgPSBjb250ZXh0Lm5hbWU7XG4gICAgcmFkaW9Qcm9wcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICAgIHJhZGlvUHJvcHMuY2hlY2tlZCA9IHByb3BzLnZhbHVlID09PSBjb250ZXh0LnZhbHVlO1xuICAgIHJhZGlvUHJvcHMuZGlzYWJsZWQgPSBwcm9wcy5kaXNhYmxlZCB8fCBjb250ZXh0LmRpc2FibGVkO1xuICB9XG5cbiAgdmFyIHdyYXBwZXJDbGFzc1N0cmluZyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlclwiKSwgKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlci1jaGVja2VkXCIpLCByYWRpb1Byb3BzLmNoZWNrZWQpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXdyYXBwZXItZGlzYWJsZWRcIiksIHJhZGlvUHJvcHMuZGlzYWJsZWQpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXdyYXBwZXItcnRsXCIpLCBkaXJlY3Rpb24gPT09ICdydGwnKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWUpO1xuICByZXR1cm4gKFxuICAgIC8qI19fUFVSRV9fKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvbGFiZWwtaGFzLWFzc29jaWF0ZWQtY29udHJvbFxuICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCB7XG4gICAgICBjbGFzc05hbWU6IHdyYXBwZXJDbGFzc1N0cmluZyxcbiAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgIG9uTW91c2VFbnRlcjogcHJvcHMub25Nb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZUxlYXZlOiBwcm9wcy5vbk1vdXNlTGVhdmVcbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNDaGVja2JveFtcImRlZmF1bHRcIl0sICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgcmFkaW9Qcm9wcywge1xuICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICByZWY6IG1lcmdlZFJlZlxuICAgIH0pKSwgY2hpbGRyZW4gIT09IHVuZGVmaW5lZCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBjaGlsZHJlbikgOiBudWxsKVxuICApO1xufTtcblxudmFyIFJhZGlvID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoSW50ZXJuYWxSYWRpbyk7XG5SYWRpby5kaXNwbGF5TmFtZSA9ICdSYWRpbyc7XG5SYWRpby5kZWZhdWx0UHJvcHMgPSB7XG4gIHR5cGU6ICdyYWRpbydcbn07XG52YXIgX2RlZmF1bHQgPSBSYWRpbztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfdHlwZW9mID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBleHBvcnRzLlJhZGlvR3JvdXBDb250ZXh0UHJvdmlkZXIgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wOyB9KShub2RlSW50ZXJvcCk7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkgeyBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxudmFyIFJhZGlvR3JvdXBDb250ZXh0ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG52YXIgUmFkaW9Hcm91cENvbnRleHRQcm92aWRlciA9IFJhZGlvR3JvdXBDb250ZXh0LlByb3ZpZGVyO1xuZXhwb3J0cy5SYWRpb0dyb3VwQ29udGV4dFByb3ZpZGVyID0gUmFkaW9Hcm91cENvbnRleHRQcm92aWRlcjtcbnZhciBfZGVmYXVsdCA9IFJhZGlvR3JvdXBDb250ZXh0O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0Q29sdW1uS2V5ID0gZ2V0Q29sdW1uS2V5O1xuZXhwb3J0cy5nZXRDb2x1bW5Qb3MgPSBnZXRDb2x1bW5Qb3M7XG5leHBvcnRzLnJlbmRlckNvbHVtblRpdGxlID0gcmVuZGVyQ29sdW1uVGl0bGU7XG5cbmZ1bmN0aW9uIGdldENvbHVtbktleShjb2x1bW4sIGRlZmF1bHRLZXkpIHtcbiAgaWYgKCdrZXknIGluIGNvbHVtbiAmJiBjb2x1bW4ua2V5ICE9PSB1bmRlZmluZWQgJiYgY29sdW1uLmtleSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBjb2x1bW4ua2V5O1xuICB9XG5cbiAgaWYgKGNvbHVtbi5kYXRhSW5kZXgpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb2x1bW4uZGF0YUluZGV4KSA/IGNvbHVtbi5kYXRhSW5kZXguam9pbignLicpIDogY29sdW1uLmRhdGFJbmRleDtcbiAgfVxuXG4gIHJldHVybiBkZWZhdWx0S2V5O1xufVxuXG5mdW5jdGlvbiBnZXRDb2x1bW5Qb3MoaW5kZXgsIHBvcykge1xuICByZXR1cm4gcG9zID8gXCJcIi5jb25jYXQocG9zLCBcIi1cIikuY29uY2F0KGluZGV4KSA6IFwiXCIuY29uY2F0KGluZGV4KTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyQ29sdW1uVGl0bGUodGl0bGUsIHByb3BzKSB7XG4gIGlmICh0eXBlb2YgdGl0bGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdGl0bGUocHJvcHMpO1xuICB9XG5cbiAgcmV0dXJuIHRpdGxlO1xufSIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL19nZXROYXRpdmUnKSxcbiAgICByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyB0aGF0IGFyZSB2ZXJpZmllZCB0byBiZSBuYXRpdmUuICovXG52YXIgTWFwID0gZ2V0TmF0aXZlKHJvb3QsICdNYXAnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXA7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL3V0aWxcIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL2RvbS9saWIvZG9tL2ludGVyZmFjZXNcIik7XG5jb25zdCBQcmVTZXJpYWxpemVyXzEgPSByZXF1aXJlKFwiLi9iYXNlL1ByZVNlcmlhbGl6ZXJcIik7XG4vKipcbiAqIFNlcmlhbGl6ZXMgWE1MIG5vZGVzIGludG8gb2JqZWN0cyBhbmQgYXJyYXlzLlxuICovXG5jbGFzcyBPYmplY3RXcml0ZXJJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgT2JqZWN0V3JpdGVySW1wbGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnVpbGRlck9wdGlvbnMgLSBYTUwgYnVpbGRlciBvcHRpb25zXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoYnVpbGRlck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fYnVpbGRlck9wdGlvbnMgPSBidWlsZGVyT3B0aW9ucztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgdGhlIGdpdmVuIG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gc2VyaWFsaXplXG4gICAgICogQHBhcmFtIHdyaXRlck9wdGlvbnMgLSBzZXJpYWxpemF0aW9uIG9wdGlvbnNcbiAgICAgKi9cbiAgICBzZXJpYWxpemUobm9kZSwgd3JpdGVyT3B0aW9ucykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gdXRpbF8xLmFwcGx5RGVmYXVsdHMod3JpdGVyT3B0aW9ucywge1xuICAgICAgICAgICAgZm9ybWF0OiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgd2VsbEZvcm1lZDogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjdXJyZW50TGlzdCA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gMDtcbiAgICAgICAgbGV0IGxpc3RSZWdpc3RlciA9IFtjdXJyZW50TGlzdF07XG4gICAgICAgIGNvbnN0IHByZSA9IG5ldyBQcmVTZXJpYWxpemVyXzEuUHJlU2VyaWFsaXplcigpO1xuICAgICAgICBwcmUuc2V0Q2FsbGJhY2tzKHtcbiAgICAgICAgICAgIGJlZ2luRWxlbWVudDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEl0ZW1zID0gdGhpcy5fYWRkRWxlbWVudChjdXJyZW50TGlzdCwgbmFtZSk7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4Kys7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3RSZWdpc3Rlci5sZW5ndGggPiBjdXJyZW50SW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdFJlZ2lzdGVyW2N1cnJlbnRJbmRleF0gPSBjaGlsZEl0ZW1zO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdFJlZ2lzdGVyLnB1c2goY2hpbGRJdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRMaXN0ID0gY2hpbGRJdGVtcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmRFbGVtZW50OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY3VycmVudExpc3QgPSBsaXN0UmVnaXN0ZXJbLS1jdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQXR0cihjdXJyZW50TGlzdCwgbmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1lbnQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRkQ29tbWVudChjdXJyZW50TGlzdCwgZGF0YSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZGRUZXh0KGN1cnJlbnRMaXN0LCBkYXRhKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnN0cnVjdGlvbjogKHRhcmdldCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZEluc3RydWN0aW9uKGN1cnJlbnRMaXN0LCB0YXJnZXQgKyBcIiBcIiArIGRhdGEpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNkYXRhOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkZENEQVRBKGN1cnJlbnRMaXN0LCBkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaXJzdCBwYXNzLCBzZXJpYWxpemUgbm9kZXNcbiAgICAgICAgICogVGhpcyBjcmVhdGVzIGEgbGlzdCBvZiBub2RlcyBncm91cGVkIHVuZGVyIG5vZGUgdHlwZXMgd2hpbGUgcHJlc2VydmluZ1xuICAgICAgICAgKiBpbnNlcnRpb24gb3JkZXIuIEZvciBleGFtcGxlOlxuICAgICAgICAgKiBbXG4gICAgICAgICAqICAgcm9vdDogW1xuICAgICAgICAgKiAgICAgbm9kZTogW1xuICAgICAgICAgKiAgICAgICB7IFwiQFwiIDogeyBcImF0dDFcIjogXCJ2YWwxXCIsIFwiYXR0MlwiOiBcInZhbDJcIiB9XG4gICAgICAgICAqICAgICAgIHsgXCIjXCI6IFwibm9kZSB0ZXh0XCIgfVxuICAgICAgICAgKiAgICAgICB7IGNoaWxkTm9kZTogW10gfVxuICAgICAgICAgKiAgICAgICB7IFwiI1wiOiBcIm1vcmUgdGV4dFwiIH1cbiAgICAgICAgICogICAgIF0sXG4gICAgICAgICAqICAgICBub2RlOiBbXG4gICAgICAgICAqICAgICAgIHsgXCJAXCIgOiB7IFwiYXR0XCI6IFwidmFsXCIgfVxuICAgICAgICAgKiAgICAgICB7IFwiI1wiOiBbIFwidGV4dCBsaW5lMVwiLCBcInRleHQgbGluZTJcIiBdIH1cbiAgICAgICAgICogICAgIF1cbiAgICAgICAgICogICBdXG4gICAgICAgICAqIF1cbiAgICAgICAgICovXG4gICAgICAgIHByZS5zZXJpYWxpemUobm9kZSwgb3B0aW9ucy53ZWxsRm9ybWVkKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNlY29uZCBwYXNzLCBwcm9jZXNzIG5vZGUgbGlzdHMuIEFib3ZlIGV4YW1wbGUgYmVjb21lczpcbiAgICAgICAgICoge1xuICAgICAgICAgKiAgIHJvb3Q6IHtcbiAgICAgICAgICogICAgIG5vZGU6IFtcbiAgICAgICAgICogICAgICAge1xuICAgICAgICAgKiAgICAgICAgIFwiQGF0dDFcIjogXCJ2YWwxXCIsXG4gICAgICAgICAqICAgICAgICAgXCJAYXR0MlwiOiBcInZhbDJcIixcbiAgICAgICAgICogICAgICAgICBcIiMxXCI6IFwibm9kZSB0ZXh0XCIsXG4gICAgICAgICAqICAgICAgICAgY2hpbGROb2RlOiB7fSxcbiAgICAgICAgICogICAgICAgICBcIiMyXCI6IFwibW9yZSB0ZXh0XCJcbiAgICAgICAgICogICAgICAgfSxcbiAgICAgICAgICogICAgICAge1xuICAgICAgICAgKiAgICAgICAgIFwiQGF0dFwiOiBcInZhbFwiLFxuICAgICAgICAgKiAgICAgICAgIFwiI1wiOiBbIFwidGV4dCBsaW5lMVwiLCBcInRleHQgbGluZTJcIiBdXG4gICAgICAgICAqICAgICAgIH1cbiAgICAgICAgICogICAgIF1cbiAgICAgICAgICogICB9XG4gICAgICAgICAqIH1cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzKGN1cnJlbnRMaXN0KTtcbiAgICB9XG4gICAgX3Byb2Nlc3MoaXRlbXMpIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZXJlIGFyZSBub24tdW5pcXVlIGVsZW1lbnQgbmFtZXNcbiAgICAgICAgY29uc3QgbmFtZXNTZWVuID0ge307XG4gICAgICAgIGxldCBoYXNOb25VbmlxdWVOYW1lcyA9IGZhbHNlO1xuICAgICAgICBsZXQgdGV4dENvdW50ID0gMDtcbiAgICAgICAgbGV0IGNvbW1lbnRDb3VudCA9IDA7XG4gICAgICAgIGxldCBpbnN0cnVjdGlvbkNvdW50ID0gMDtcbiAgICAgICAgbGV0IGNkYXRhQ291bnQgPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNbaV07XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcbiAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkBcIjpcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcIiNcIjpcbiAgICAgICAgICAgICAgICAgICAgdGV4dENvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCIhXCI6XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRDb3VudCsrO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiP1wiOlxuICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbkNvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCIkXCI6XG4gICAgICAgICAgICAgICAgICAgIGNkYXRhQ291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzU2VlbltrZXldKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNOb25VbmlxdWVOYW1lcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lc1NlZW5ba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHRDb3VudCA9PT0gMSAmJiBpdGVtcy5sZW5ndGggPT09IDEgJiYgdXRpbF8xLmlzU3RyaW5nKGl0ZW1zWzBdW1wiI1wiXSkpIHtcbiAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBvZiBhbiBlbGVtZW50IG5vZGUgd2l0aCBhIHNpbmdsZSB0ZXh0IG5vZGVcbiAgICAgICAgICAgIHJldHVybiBpdGVtc1swXVtcIiNcIl07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaGFzTm9uVW5pcXVlTmFtZXMpIHtcbiAgICAgICAgICAgIC8vIGxpc3QgY29udGFpbnMgZWxlbWVudCBub2RlcyB3aXRoIG5vbi11bmlxdWUgbmFtZXNcbiAgICAgICAgICAgIC8vIHJldHVybiBhbiBhcnJheSB3aXRoIG1peGVkIGNvbnRlbnQgbm90YXRpb25cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgY29uc3Qgb2JqID0geyBcIiNcIjogcmVzdWx0IH07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGl0ZW0pWzBdO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJAXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRycyA9IGl0ZW1bXCJAXCJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXR0cktleXMgPSBPYmplY3Qua2V5cyhhdHRycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cktleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBbdGhpcy5fZ2V0QXR0cktleSgpICsgYXR0cktleXNbMF1dOiBhdHRyc1thdHRyS2V5c1swXV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7IFt0aGlzLl9nZXRBdHRyS2V5KCldOiBpdGVtW1wiQFwiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiI1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dEtleSA9IHRoaXMuX2dldE5vZGVLZXkoaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBbdGV4dEtleV06IGl0ZW1bXCIjXCJdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCIhXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21tZW50S2V5ID0gdGhpcy5fZ2V0Tm9kZUtleShpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7IFtjb21tZW50S2V5XTogaXRlbVtcIiFcIl0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIj9cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RydWN0aW9uS2V5ID0gdGhpcy5fZ2V0Tm9kZUtleShpbnRlcmZhY2VzXzEuTm9kZVR5cGUuUHJvY2Vzc2luZ0luc3RydWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsgW2luc3RydWN0aW9uS2V5XTogaXRlbVtcIj9cIl0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIiRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNkYXRhS2V5ID0gdGhpcy5fZ2V0Tm9kZUtleShpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goeyBbY2RhdGFLZXldOiBpdGVtW1wiJFwiXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGUgPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZVtrZXldLmxlbmd0aCAhPT0gMCAmJiB1dGlsXzEuaXNBcnJheShlbGVba2V5XVswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBncm91cCBvZiBlbGVtZW50IG5vZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlR3JvdXAgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXN0T2ZMaXN0cyA9IGVsZVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdE9mTGlzdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlR3JvdXAucHVzaCh0aGlzLl9wcm9jZXNzKGxpc3RPZkxpc3RzW2ldKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsgW2tleV06IGVsZUdyb3VwIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGVsZW1lbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHsgW2tleV06IHRoaXMuX3Byb2Nlc3MoZWxlW2tleV0pIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGFsbCBlbGVtZW50IG5vZGVzIGhhdmUgdW5pcXVlIG5hbWVzXG4gICAgICAgICAgICAvLyByZXR1cm4gYW4gb2JqZWN0IHdoaWxlIHByZWZpeGluZyBkYXRhIG5vZGUga2V5c1xuICAgICAgICAgICAgbGV0IHRleHRJZCA9IDE7XG4gICAgICAgICAgICBsZXQgY29tbWVudElkID0gMTtcbiAgICAgICAgICAgIGxldCBpbnN0cnVjdGlvbklkID0gMTtcbiAgICAgICAgICAgIGxldCBjZGF0YUlkID0gMTtcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXR0cnMgPSBpdGVtW1wiQFwiXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF0dHJLZXlzID0gT2JqZWN0LmtleXMoYXR0cnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJLZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialt0aGlzLl9nZXRBdHRyS2V5KCkgKyBhdHRyS2V5c1swXV0gPSBhdHRyc1thdHRyS2V5c1swXV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpbdGhpcy5fZ2V0QXR0cktleSgpXSA9IGl0ZW1bXCJAXCJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCIjXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0S2V5ID0gdGV4dENvdW50ID4gMSA/IHRoaXMuX2dldE5vZGVLZXkoaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQpICsgKHRleHRJZCsrKS50b1N0cmluZygpIDogdGhpcy5fZ2V0Tm9kZUtleShpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmpbdGV4dEtleV0gPSBpdGVtW1wiI1wiXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiIVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tbWVudEtleSA9IGNvbW1lbnRDb3VudCA+IDEgPyB0aGlzLl9nZXROb2RlS2V5KGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Db21tZW50KSArIChjb21tZW50SWQrKykudG9TdHJpbmcoKSA6IHRoaXMuX2dldE5vZGVLZXkoaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNvbW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2NvbW1lbnRLZXldID0gaXRlbVtcIiFcIl07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIj9cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc3RydWN0aW9uS2V5ID0gaW5zdHJ1Y3Rpb25Db3VudCA+IDEgPyB0aGlzLl9nZXROb2RlS2V5KGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pICsgKGluc3RydWN0aW9uSWQrKykudG9TdHJpbmcoKSA6IHRoaXMuX2dldE5vZGVLZXkoaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYmpbaW5zdHJ1Y3Rpb25LZXldID0gaXRlbVtcIj9cIl07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIiRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNkYXRhS2V5ID0gY2RhdGFDb3VudCA+IDEgPyB0aGlzLl9nZXROb2RlS2V5KGludGVyZmFjZXNfMS5Ob2RlVHlwZS5DRGF0YSkgKyAoY2RhdGFJZCsrKS50b1N0cmluZygpIDogdGhpcy5fZ2V0Tm9kZUtleShpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2NkYXRhS2V5XSA9IGl0ZW1bXCIkXCJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlW2tleV0ubGVuZ3RoICE9PSAwICYmIHV0aWxfMS5pc0FycmF5KGVsZVtrZXldWzBdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdyb3VwIG9mIGVsZW1lbnQgbm9kZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVHcm91cCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RPZkxpc3RzID0gZWxlW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0T2ZMaXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVHcm91cC5wdXNoKHRoaXMuX3Byb2Nlc3MobGlzdE9mTGlzdHNbaV0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gPSBlbGVHcm91cDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpbmdsZSBlbGVtZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpba2V5XSA9IHRoaXMuX3Byb2Nlc3MoZWxlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfYWRkQXR0cihpdGVtcywgbmFtZSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7IFwiQFwiOiB7IFtuYW1lXTogdmFsdWUgfSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RJdGVtID0gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzQXR0ck5vZGUobGFzdEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgbGFzdEl0ZW1bXCJAXCJdW25hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCJAXCI6IHsgW25hbWVdOiB2YWx1ZSB9IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRUZXh0KGl0ZW1zLCB2YWx1ZSkge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCIjXCI6IHZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1RleHROb2RlKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuaXNBcnJheShsYXN0SXRlbVtcIiNcIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJdGVtW1wiI1wiXS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJdGVtW1wiI1wiXSA9IFtsYXN0SXRlbVtcIiNcIl0sIHZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCIjXCI6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRDb21tZW50KGl0ZW1zLCB2YWx1ZSkge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCIhXCI6IHZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0NvbW1lbnROb2RlKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuaXNBcnJheShsYXN0SXRlbVtcIiFcIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJdGVtW1wiIVwiXS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJdGVtW1wiIVwiXSA9IFtsYXN0SXRlbVtcIiFcIl0sIHZhbHVlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCIhXCI6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIF9hZGRJbnN0cnVjdGlvbihpdGVtcywgdmFsdWUpIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7IFwiP1wiOiB2YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RJdGVtID0gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAodGhpcy5faXNJbnN0cnVjdGlvbk5vZGUobGFzdEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKHV0aWxfMS5pc0FycmF5KGxhc3RJdGVtW1wiP1wiXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW1bXCI/XCJdLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW1bXCI/XCJdID0gW2xhc3RJdGVtW1wiP1wiXSwgdmFsdWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBcIj9cIjogdmFsdWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgX2FkZENEQVRBKGl0ZW1zLCB2YWx1ZSkge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHsgXCIkXCI6IHZhbHVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0NEQVRBTm9kZShsYXN0SXRlbSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodXRpbF8xLmlzQXJyYXkobGFzdEl0ZW1bXCIkXCJdKSkge1xuICAgICAgICAgICAgICAgICAgICBsYXN0SXRlbVtcIiRcIl0ucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsYXN0SXRlbVtcIiRcIl0gPSBbbGFzdEl0ZW1bXCIkXCJdLCB2YWx1ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IFwiJFwiOiB2YWx1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBfYWRkRWxlbWVudChpdGVtcywgbmFtZSkge1xuICAgICAgICBjb25zdCBjaGlsZEl0ZW1zID0gW107XG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBbbmFtZV06IGNoaWxkSXRlbXMgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0SXRlbSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lzRWxlbWVudE5vZGUobGFzdEl0ZW0sIG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtW25hbWVdLmxlbmd0aCAhPT0gMCAmJiB1dGlsXzEuaXNBcnJheShsYXN0SXRlbVtuYW1lXVswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdE9mTGlzdHMgPSBsYXN0SXRlbVtuYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgbGlzdE9mTGlzdHMucHVzaChjaGlsZEl0ZW1zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RJdGVtW25hbWVdID0gW2xhc3RJdGVtW25hbWVdLCBjaGlsZEl0ZW1zXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgW25hbWVdOiBjaGlsZEl0ZW1zIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZEl0ZW1zO1xuICAgIH1cbiAgICBfaXNBdHRyTm9kZSh4KSB7XG4gICAgICAgIHJldHVybiBcIkBcIiBpbiB4O1xuICAgIH1cbiAgICBfaXNUZXh0Tm9kZSh4KSB7XG4gICAgICAgIHJldHVybiBcIiNcIiBpbiB4O1xuICAgIH1cbiAgICBfaXNDb21tZW50Tm9kZSh4KSB7XG4gICAgICAgIHJldHVybiBcIiFcIiBpbiB4O1xuICAgIH1cbiAgICBfaXNJbnN0cnVjdGlvbk5vZGUoeCkge1xuICAgICAgICByZXR1cm4gXCI/XCIgaW4geDtcbiAgICB9XG4gICAgX2lzQ0RBVEFOb2RlKHgpIHtcbiAgICAgICAgcmV0dXJuIFwiJFwiIGluIHg7XG4gICAgfVxuICAgIF9pc0VsZW1lbnROb2RlKHgsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIG5hbWUgaW4geDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYmplY3Qga2V5IGZvciBhbiBhdHRyaWJ1dGUgb3IgbmFtZXNwYWNlIGRlY2xhcmF0aW9uLlxuICAgICAqL1xuICAgIF9nZXRBdHRyS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnVpbGRlck9wdGlvbnMuY29udmVydC5hdHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGtleSBmb3IgdGhlIGdpdmVuIG5vZGUgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlVHlwZSAtIG5vZGUgdHlwZSB0byBnZXQgYSBrZXkgZm9yXG4gICAgICovXG4gICAgX2dldE5vZGVLZXkobm9kZVR5cGUpIHtcbiAgICAgICAgc3dpdGNoIChub2RlVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYnVpbGRlck9wdGlvbnMuY29udmVydC5jb21tZW50O1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYnVpbGRlck9wdGlvbnMuY29udmVydC50ZXh0O1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuUHJvY2Vzc2luZ0luc3RydWN0aW9uOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9idWlsZGVyT3B0aW9ucy5jb252ZXJ0LmlucztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNEYXRhOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9idWlsZGVyT3B0aW9ucy5jb252ZXJ0LmNkYXRhO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBub2RlIHR5cGUuXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5PYmplY3RXcml0ZXJJbXBsID0gT2JqZWN0V3JpdGVySW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU9iamVjdFdyaXRlckltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIEEgc3Vycm9nYXRlIGlzIGEgY29kZSBwb2ludCB0aGF0IGlzIGluIHRoZSByYW5nZSBVK0Q4MDAgdG8gVStERkZGLCBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuU3Vycm9nYXRlID0gL1tcXHVEODAwLVxcdURGRkZdLztcbi8qKlxuICogQSBzY2FsYXIgdmFsdWUgaXMgYSBjb2RlIHBvaW50IHRoYXQgaXMgbm90IGEgc3Vycm9nYXRlLlxuICovXG5leHBvcnRzLlNjYWxhclZhbHVlID0gL1tcXHVEODAwLVxcdURGRkZdLztcbi8qKlxuICogQSBub25jaGFyYWN0ZXIgaXMgYSBjb2RlIHBvaW50IHRoYXQgaXMgaW4gdGhlIHJhbmdlIFUrRkREMCB0byBVK0ZERUYsXG4gKiBpbmNsdXNpdmUsIG9yIFUrRkZGRSwgVStGRkZGLCBVKzFGRkZFLCBVKzFGRkZGLCBVKzJGRkZFLCBVKzJGRkZGLCBVKzNGRkZFLFxuICogVSszRkZGRiwgVSs0RkZGRSwgVSs0RkZGRiwgVSs1RkZGRSwgVSs1RkZGRiwgVSs2RkZGRSwgVSs2RkZGRiwgVSs3RkZGRSxcbiAqIFUrN0ZGRkYsIFUrOEZGRkUsIFUrOEZGRkYsIFUrOUZGRkUsIFUrOUZGRkYsIFUrQUZGRkUsIFUrQUZGRkYsIFUrQkZGRkUsXG4gKiBVK0JGRkZGLCBVK0NGRkZFLCBVK0NGRkZGLCBVK0RGRkZFLCBVK0RGRkZGLCBVK0VGRkZFLCBVK0VGRkZGLCBVK0ZGRkZFLFxuICogVStGRkZGRiwgVSsxMEZGRkUsIG9yIFUrMTBGRkZGLlxuICovXG5leHBvcnRzLk5vbkNoYXJhY3RlciA9IC9bXFx1RkREMC1cXHVGREVGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODNGXFx1RDg3RlxcdUQ4QkZcXHVEOEZGXFx1RDkzRlxcdUQ5N0ZcXHVEOUJGXFx1RDlGRlxcdURBM0ZcXHVEQTdGXFx1REFCRlxcdURBRkZcXHVEQjNGXFx1REI3RlxcdURCQkZcXHVEQkZGXVtcXHVERkZFXFx1REZGRl0vO1xuLyoqXG4gKiBBbiBBU0NJSSBjb2RlIHBvaW50IGlzIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgVSswMDAwIE5VTEwgdG8gVSswMDdGXG4gKiBERUxFVEUsIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5BU0NJSUNvZGVQb2ludCA9IC9bXFx1MDAwMC1cXHUwMDdGXS87XG4vKipcbiAqIEFuIEFTQ0lJIHRhYiBvciBuZXdsaW5lIGlzIFUrMDAwOSBUQUIsIFUrMDAwQSBMRiwgb3IgVSswMDBEIENSLlxuICovXG5leHBvcnRzLkFTQ0lJVGFiT3JOZXdMaW5lID0gL1tcXHRcXG5cXHJdLztcbi8qKlxuICogQVNDSUkgd2hpdGVzcGFjZSBpcyBVKzAwMDkgVEFCLCBVKzAwMEEgTEYsIFUrMDAwQyBGRiwgVSswMDBEIENSLCBvclxuICogVSswMDIwIFNQQUNFLlxuICovXG5leHBvcnRzLkFTQ0lJV2hpdGVTcGFjZSA9IC9bXFx0XFxuXFxmXFxyIF0vO1xuLyoqXG4gKiBBIEMwIGNvbnRyb2wgaXMgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZSBVKzAwMDAgTlVMTCB0byBVKzAwMUZcbiAqIElORk9STUFUSU9OIFNFUEFSQVRPUiBPTkUsIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5DMENvbnRyb2wgPSAvW1xcdTAwMDAtXFx1MDAxRl0vO1xuLyoqXG4gKiBBIEMwIGNvbnRyb2wgb3Igc3BhY2UgaXMgYSBDMCBjb250cm9sIG9yIFUrMDAyMCBTUEFDRS5cbiAqL1xuZXhwb3J0cy5DMENvbnRyb2xPclNwYWNlID0gL1tcXHUwMDAwLVxcdTAwMUYgXS87XG4vKipcbiAqIEEgY29udHJvbCBpcyBhIEMwIGNvbnRyb2wgb3IgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZSBVKzAwN0YgREVMRVRFIHRvXG4gKiBVKzAwOUYgQVBQTElDQVRJT04gUFJPR1JBTSBDT01NQU5ELCBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQ29udHJvbCA9IC9bXFx1MDAwMC1cXHUwMDFGXFx1MDA3Ri1cXHUwMDlGXS87XG4vKipcbiAqIEFuIEFTQ0lJIGRpZ2l0IGlzIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgVSswMDMwICgwKSB0byBVKzAwMzkgKDkpLFxuICogaW5jbHVzaXZlLlxuICovXG5leHBvcnRzLkFTQ0lJRGlnaXQgPSAvWzAtOV0vO1xuLyoqXG4gKiBBbiBBU0NJSSB1cHBlciBoZXggZGlnaXQgaXMgYW4gQVNDSUkgZGlnaXQgb3IgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZVxuICogVSswMDQxIChBKSB0byBVKzAwNDYgKEYpLCBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQVNDSUlVcHBlckhleERpZ2l0ID0gL1swLTlBLUZdLztcbi8qKlxuICogQW4gQVNDSUkgbG93ZXIgaGV4IGRpZ2l0IGlzIGFuIEFTQ0lJIGRpZ2l0IG9yIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2VcbiAqIFUrMDA2MSAoYSkgdG8gVSswMDY2IChmKSwgaW5jbHVzaXZlLlxuICovXG5leHBvcnRzLkFTQ0lJTG93ZXJIZXhEaWdpdCA9IC9bMC05YS1mXS87XG4vKipcbiAqIEFuIEFTQ0lJIGhleCBkaWdpdCBpcyBhbiBBU0NJSSB1cHBlciBoZXggZGlnaXQgb3IgQVNDSUkgbG93ZXIgaGV4IGRpZ2l0LlxuICovXG5leHBvcnRzLkFTQ0lJSGV4RGlnaXQgPSAvWzAtOUEtRmEtZl0vO1xuLyoqXG4gKiBBbiBBU0NJSSB1cHBlciBhbHBoYSBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFUrMDA0MSAoQSkgdG8gVSswMDVBIChaKSxcbiAqIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5BU0NJSVVwcGVyQWxwaGEgPSAvW0EtWl0vO1xuLyoqXG4gKiBBbiBBU0NJSSBsb3dlciBhbHBoYSBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFUrMDA2MSAoYSkgdG8gVSswMDdBICh6KSxcbiAqIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5BU0NJSUxvd2VyQWxwaGEgPSAvW2Etel0vO1xuLyoqXG4gKiBBbiBBU0NJSSBhbHBoYSBpcyBhbiBBU0NJSSB1cHBlciBhbHBoYSBvciBBU0NJSSBsb3dlciBhbHBoYS5cbiAqL1xuZXhwb3J0cy5BU0NJSUFscGhhID0gL1tBLVphLXpdLztcbi8qKlxuICogQW4gQVNDSUkgYWxwaGFudW1lcmljIGlzIGFuIEFTQ0lJIGRpZ2l0IG9yIEFTQ0lJIGFscGhhLlxuICovXG5leHBvcnRzLkFTQ0lJQWxwaGFudW1lcmljID0gL1swLTlBLVphLXpdLztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvZGVQb2ludHMuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuLi9kb21cIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi4vZG9tL2ludGVyZmFjZXNcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IEN1c3RvbUV2ZW50SW1wbF8xID0gcmVxdWlyZShcIi4uL2RvbS9DdXN0b21FdmVudEltcGxcIik7XG5jb25zdCBFdmVudEltcGxfMSA9IHJlcXVpcmUoXCIuLi9kb20vRXZlbnRJbXBsXCIpO1xuY29uc3QgRE9NRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi4vZG9tL0RPTUV4Y2VwdGlvblwiKTtcbmNvbnN0IFRyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBTaGFkb3dUcmVlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9TaGFkb3dUcmVlQWxnb3JpdGhtXCIpO1xuY29uc3QgRE9NQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9ET01BbGdvcml0aG1cIik7XG4vKipcbiAqIFNldHMgdGhlIGNhbmNlbGVkIGZsYWcgb2YgYW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gYW4gZXZlbnRcbiAqL1xuZnVuY3Rpb24gZXZlbnRfc2V0VGhlQ2FuY2VsZWRGbGFnKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50Ll9jYW5jZWxhYmxlICYmICFldmVudC5faW5QYXNzaXZlTGlzdGVuZXJGbGFnKSB7XG4gICAgICAgIGV2ZW50Ll9jYW5jZWxlZEZsYWcgPSB0cnVlO1xuICAgIH1cbn1cbmV4cG9ydHMuZXZlbnRfc2V0VGhlQ2FuY2VsZWRGbGFnID0gZXZlbnRfc2V0VGhlQ2FuY2VsZWRGbGFnO1xuLyoqXG4gKiBJbml0aWFsaXplcyB0aGUgdmFsdWUgb2YgYW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gYW4gZXZlbnQgdG8gaW5pdGlhbGl6ZVxuICogQHBhcmFtIHR5cGUgLSB0aGUgdHlwZSBvZiBldmVudFxuICogQHBhcmFtIGJ1YmJsZXMgLSB3aGV0aGVyIHRoZSBldmVudCBwcm9wYWdhdGVzIGluIHJldmVyc2VcbiAqIEBwYXJhbSBjYW5jZWxhYmxlIC0gd2hldGhlciB0aGUgZXZlbnQgY2FuIGJlIGNhbmNlbGxlZFxuICovXG5mdW5jdGlvbiBldmVudF9pbml0aWFsaXplKGV2ZW50LCB0eXBlLCBidWJibGVzLCBjYW5jZWxhYmxlKSB7XG4gICAgZXZlbnQuX2luaXRpYWxpemVkRmxhZyA9IHRydWU7XG4gICAgZXZlbnQuX3N0b3BQcm9wYWdhdGlvbkZsYWcgPSBmYWxzZTtcbiAgICBldmVudC5fc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uRmxhZyA9IGZhbHNlO1xuICAgIGV2ZW50Ll9jYW5jZWxlZEZsYWcgPSBmYWxzZTtcbiAgICBldmVudC5faXNUcnVzdGVkID0gZmFsc2U7XG4gICAgZXZlbnQuX3RhcmdldCA9IG51bGw7XG4gICAgZXZlbnQuX3R5cGUgPSB0eXBlO1xuICAgIGV2ZW50Ll9idWJibGVzID0gYnViYmxlcztcbiAgICBldmVudC5fY2FuY2VsYWJsZSA9IGNhbmNlbGFibGU7XG59XG5leHBvcnRzLmV2ZW50X2luaXRpYWxpemUgPSBldmVudF9pbml0aWFsaXplO1xuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGV2ZW50LlxuICpcbiAqIEBwYXJhbSBldmVudEludGVyZmFjZSAtIGV2ZW50IGludGVyZmFjZVxuICogQHBhcmFtIHJlYWxtIC0gcmVhbG1cbiAqL1xuZnVuY3Rpb24gZXZlbnRfY3JlYXRlQW5FdmVudChldmVudEludGVyZmFjZSwgcmVhbG0gPSB1bmRlZmluZWQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiByZWFsbSBpcyBub3QgZ2l2ZW4sIHRoZW4gc2V0IGl0IHRvIG51bGwuXG4gICAgICogMi4gTGV0IGRpY3Rpb25hcnkgYmUgdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHRoZSBKYXZhU2NyaXB0IHZhbHVlXG4gICAgICogdW5kZWZpbmVkIHRvIHRoZSBkaWN0aW9uYXJ5IHR5cGUgYWNjZXB0ZWQgYnkgZXZlbnRJbnRlcmZhY2XigJlzXG4gICAgICogY29uc3RydWN0b3IuIChUaGlzIGRpY3Rpb25hcnkgdHlwZSB3aWxsIGVpdGhlciBiZSBFdmVudEluaXQgb3IgYVxuICAgICAqIGRpY3Rpb25hcnkgdGhhdCBpbmhlcml0cyBmcm9tIGl0LilcbiAgICAgKiAzLiBMZXQgZXZlbnQgYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBpbm5lciBldmVudCBjcmVhdGlvbiBzdGVwcyB3aXRoXG4gICAgICogZXZlbnRJbnRlcmZhY2UsIHJlYWxtLCB0aGUgdGltZSBvZiB0aGUgb2NjdXJyZW5jZSB0aGF0IHRoZSBldmVudCBpc1xuICAgICAqIHNpZ25hbGluZywgYW5kIGRpY3Rpb25hcnkuXG4gICAgICogNC4gSW5pdGlhbGl6ZSBldmVudOKAmXMgaXNUcnVzdGVkIGF0dHJpYnV0ZSB0byB0cnVlLlxuICAgICAqIDUuIFJldHVybiBldmVudC5cbiAgICAgKi9cbiAgICBpZiAocmVhbG0gPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmVhbG0gPSBudWxsO1xuICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB7fTtcbiAgICBjb25zdCBldmVudCA9IGV2ZW50X2lubmVyRXZlbnRDcmVhdGlvblN0ZXBzKGV2ZW50SW50ZXJmYWNlLCByZWFsbSwgbmV3IERhdGUoKSwgZGljdGlvbmFyeSk7XG4gICAgZXZlbnQuX2lzVHJ1c3RlZCA9IHRydWU7XG4gICAgcmV0dXJuIGV2ZW50O1xufVxuZXhwb3J0cy5ldmVudF9jcmVhdGVBbkV2ZW50ID0gZXZlbnRfY3JlYXRlQW5FdmVudDtcbi8qKlxuICogUGVyZm9ybXMgZXZlbnQgY3JlYXRpb24gc3RlcHMuXG4gKlxuICogQHBhcmFtIGV2ZW50SW50ZXJmYWNlIC0gZXZlbnQgaW50ZXJmYWNlXG4gKiBAcGFyYW0gcmVhbG0gLSByZWFsbVxuICogQHBhcmFtIHRpbWUgLSB0aW1lIG9mIG9jY3VycmFuY2VcbiAqIEBwYXJhbSBkaWN0aW9uYXJ5IC0gZXZlbnQgYXR0cmlidXRlc1xuICpcbiAqL1xuZnVuY3Rpb24gZXZlbnRfaW5uZXJFdmVudENyZWF0aW9uU3RlcHMoZXZlbnRJbnRlcmZhY2UsIHJlYWxtLCB0aW1lLCBkaWN0aW9uYXJ5KSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IGV2ZW50IGJlIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYSBuZXcgb2JqZWN0IHVzaW5nIGV2ZW50SW50ZXJmYWNlLlxuICAgICAqIFRPRE86IEltcGxlbWVudCByZWFsbXNcbiAgICAgKiBJZiByZWFsbSBpcyBub24tbnVsbCwgdGhlbiB1c2UgdGhhdCBSZWFsbTsgb3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHRcbiAgICAgKiBiZWhhdmlvciBkZWZpbmVkIGluIFdlYiBJREwuXG4gICAgICovXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgZXZlbnRJbnRlcmZhY2UoXCJcIik7XG4gICAgLyoqXG4gICAgICogMi4gU2V0IGV2ZW504oCZcyBpbml0aWFsaXplZCBmbGFnLlxuICAgICAqIDMuIEluaXRpYWxpemUgZXZlbnTigJlzIHRpbWVTdGFtcCBhdHRyaWJ1dGUgdG8gYSBET01IaWdoUmVzVGltZVN0YW1wXG4gICAgICogcmVwcmVzZW50aW5nIHRoZSBoaWdoIHJlc29sdXRpb24gdGltZSBmcm9tIHRoZSB0aW1lIG9yaWdpbiB0byB0aW1lLlxuICAgICAqIDQuIEZvciBlYWNoIG1lbWJlciDihpIgdmFsdWUgaW4gZGljdGlvbmFyeSwgaWYgZXZlbnQgaGFzIGFuIGF0dHJpYnV0ZVxuICAgICAqIHdob3NlIGlkZW50aWZpZXIgaXMgbWVtYmVyLCB0aGVuIGluaXRpYWxpemUgdGhhdCBhdHRyaWJ1dGUgdG8gdmFsdWUuXG4gICAgICogNS4gUnVuIHRoZSBldmVudCBjb25zdHJ1Y3Rpbmcgc3RlcHMgd2l0aCBldmVudC5cbiAgICAgKiA2LiBSZXR1cm4gZXZlbnQuXG4gICAgICovXG4gICAgZXZlbnQuX2luaXRpYWxpemVkRmxhZyA9IHRydWU7XG4gICAgZXZlbnQuX3RpbWVTdGFtcCA9IHRpbWUuZ2V0VGltZSgpO1xuICAgIE9iamVjdC5hc3NpZ24oZXZlbnQsIGRpY3Rpb25hcnkpO1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1bkV2ZW50Q29uc3RydWN0aW5nU3RlcHMoZXZlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG59XG5leHBvcnRzLmV2ZW50X2lubmVyRXZlbnRDcmVhdGlvblN0ZXBzID0gZXZlbnRfaW5uZXJFdmVudENyZWF0aW9uU3RlcHM7XG4vKipcbiAqIERpc3BhdGNoZXMgYW4gZXZlbnQgdG8gYW4gZXZlbnQgdGFyZ2V0LlxuICpcbiAqIEBwYXJhbSBldmVudCAtIHRoZSBldmVudCB0byBkaXNwYXRjaFxuICogQHBhcmFtIHRhcmdldCAtIGV2ZW50IHRhcmdldFxuICogQHBhcmFtIGxlZ2FjeVRhcmdldE92ZXJyaWRlRmxhZyAtIGxlZ2FjeSB0YXJnZXQgb3ZlcnJpZGUgZmxhZ1xuICogQHBhcmFtIGxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyAtIGxlZ2FjeSBvdXRwdXQgZmxhZyB0aGF0IHJldHVybnNcbiAqIHdoZXRoZXIgdGhlIGV2ZW50IGxpc3RlbmVyJ3MgY2FsbGJhY2sgdGhyZXcgYW4gZXhjZXB0aW9uXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2Rpc3BhdGNoKGV2ZW50LCB0YXJnZXQsIGxlZ2FjeVRhcmdldE92ZXJyaWRlRmxhZyA9IGZhbHNlLCBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgPSB7IHZhbHVlOiBmYWxzZSB9KSB7XG4gICAgbGV0IGNsZWFyVGFyZ2V0cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIDEuIFNldCBldmVudCdzIGRpc3BhdGNoIGZsYWcuXG4gICAgICovXG4gICAgZXZlbnQuX2Rpc3BhdGNoRmxhZyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogMi4gTGV0IHRhcmdldE92ZXJyaWRlIGJlIHRhcmdldCwgaWYgbGVnYWN5IHRhcmdldCBvdmVycmlkZSBmbGFnIGlzIG5vdFxuICAgICAqIGdpdmVuLCBhbmQgdGFyZ2V0J3MgYXNzb2NpYXRlZCBEb2N1bWVudCBvdGhlcndpc2UuXG4gICAgICpcbiAgICAgKiBfTm90ZTpfIGxlZ2FjeSB0YXJnZXQgb3ZlcnJpZGUgZmxhZyBpcyBvbmx5IHVzZWQgYnkgSFRNTCBhbmQgb25seSB3aGVuXG4gICAgICogdGFyZ2V0IGlzIGEgV2luZG93IG9iamVjdC5cbiAgICAgKi9cbiAgICBsZXQgdGFyZ2V0T3ZlcnJpZGUgPSB0YXJnZXQ7XG4gICAgaWYgKGxlZ2FjeVRhcmdldE92ZXJyaWRlRmxhZykge1xuICAgICAgICBjb25zdCBkb2MgPSB0YXJnZXQuX2Fzc29jaWF0ZWREb2N1bWVudDtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50Tm9kZShkb2MpKSB7XG4gICAgICAgICAgICB0YXJnZXRPdmVycmlkZSA9IGRvYztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBMZXQgYWN0aXZhdGlvblRhcmdldCBiZSBudWxsLlxuICAgICAqIDQuIExldCByZWxhdGVkVGFyZ2V0IGJlIHRoZSByZXN1bHQgb2YgcmV0YXJnZXRpbmcgZXZlbnQncyByZWxhdGVkVGFyZ2V0XG4gICAgICogYWdhaW5zdCB0YXJnZXQuXG4gICAgICogNS4gSWYgdGFyZ2V0IGlzIG5vdCByZWxhdGVkVGFyZ2V0IG9yIHRhcmdldCBpcyBldmVudCdzIHJlbGF0ZWRUYXJnZXQsXG4gICAgICogdGhlbjpcbiAgICAqL1xuICAgIGxldCBhY3RpdmF0aW9uVGFyZ2V0ID0gbnVsbDtcbiAgICBsZXQgcmVsYXRlZFRhcmdldCA9IFRyZWVBbGdvcml0aG1fMS50cmVlX3JldGFyZ2V0KGV2ZW50Ll9yZWxhdGVkVGFyZ2V0LCB0YXJnZXQpO1xuICAgIGlmICh0YXJnZXQgIT09IHJlbGF0ZWRUYXJnZXQgfHwgdGFyZ2V0ID09PSBldmVudC5fcmVsYXRlZFRhcmdldCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogNS4xLiBMZXQgdG91Y2hUYXJnZXRzIGJlIGEgbmV3IGxpc3QuXG4gICAgICAgICAqIDUuMi4gRm9yIGVhY2ggdG91Y2hUYXJnZXQgb2YgZXZlbnQncyB0b3VjaCB0YXJnZXQgbGlzdCwgYXBwZW5kIHRoZVxuICAgICAgICAgKiByZXN1bHQgb2YgcmV0YXJnZXRpbmcgdG91Y2hUYXJnZXQgYWdhaW5zdCB0YXJnZXQgdG8gdG91Y2hUYXJnZXRzLlxuICAgICAgICAgKiA1LjMuIEFwcGVuZCB0byBhbiBldmVudCBwYXRoIHdpdGggZXZlbnQsIHRhcmdldCwgdGFyZ2V0T3ZlcnJpZGUsXG4gICAgICAgICAqIHJlbGF0ZWRUYXJnZXQsIHRvdWNoVGFyZ2V0cywgYW5kIGZhbHNlLlxuICAgICAgICAgKiA1LjQuIExldCBpc0FjdGl2YXRpb25FdmVudCBiZSB0cnVlLCBpZiBldmVudCBpcyBhIE1vdXNlRXZlbnQgb2JqZWN0XG4gICAgICAgICAqIGFuZCBldmVudCdzIHR5cGUgYXR0cmlidXRlIGlzIFwiY2xpY2tcIiwgYW5kIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgICAgICogNS41LiBJZiBpc0FjdGl2YXRpb25FdmVudCBpcyB0cnVlIGFuZCB0YXJnZXQgaGFzIGFjdGl2YXRpb24gYmVoYXZpb3IsXG4gICAgICAgICAqIHRoZW4gc2V0IGFjdGl2YXRpb25UYXJnZXQgdG8gdGFyZ2V0LlxuICAgICAgICAgKiA1LjYuIExldCBzbG90YWJsZSBiZSB0YXJnZXQsIGlmIHRhcmdldCBpcyBhIHNsb3RhYmxlIGFuZCBpcyBhc3NpZ25lZCxcbiAgICAgICAgICogYW5kIG51bGwgb3RoZXJ3aXNlLlxuICAgICAgICAgKiA1LjcuIExldCBzbG90LWluLWNsb3NlZC10cmVlIGJlIGZhbHNlLlxuICAgICAgICAgKiA1LjguIExldCBwYXJlbnQgYmUgdGhlIHJlc3VsdCBvZiBpbnZva2luZyB0YXJnZXQncyBnZXQgdGhlIHBhcmVudCB3aXRoXG4gICAgICAgICAqIGV2ZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHRvdWNoVGFyZ2V0cyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHRvdWNoVGFyZ2V0IG9mIGV2ZW50Ll90b3VjaFRhcmdldExpc3QpIHtcbiAgICAgICAgICAgIHRvdWNoVGFyZ2V0cy5wdXNoKFRyZWVBbGdvcml0aG1fMS50cmVlX3JldGFyZ2V0KHRvdWNoVGFyZ2V0LCB0YXJnZXQpKTtcbiAgICAgICAgfVxuICAgICAgICBldmVudF9hcHBlbmRUb0FuRXZlbnRQYXRoKGV2ZW50LCB0YXJnZXQsIHRhcmdldE92ZXJyaWRlLCByZWxhdGVkVGFyZ2V0LCB0b3VjaFRhcmdldHMsIGZhbHNlKTtcbiAgICAgICAgY29uc3QgaXNBY3RpdmF0aW9uRXZlbnQgPSAodXRpbF8xLkd1YXJkLmlzTW91c2VFdmVudChldmVudCkgJiYgZXZlbnQuX3R5cGUgPT09IFwiY2xpY2tcIik7XG4gICAgICAgIGlmIChpc0FjdGl2YXRpb25FdmVudCAmJiB0YXJnZXQuX2FjdGl2YXRpb25CZWhhdmlvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhY3RpdmF0aW9uVGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIGxldCBzbG90YWJsZSA9ICh1dGlsXzEuR3VhcmQuaXNTbG90YWJsZSh0YXJnZXQpICYmIFNoYWRvd1RyZWVBbGdvcml0aG1fMS5zaGFkb3dUcmVlX2lzQXNzaWduZWQodGFyZ2V0KSkgP1xuICAgICAgICAgICAgdGFyZ2V0IDogbnVsbDtcbiAgICAgICAgbGV0IHNsb3RJbkNsb3NlZFRyZWUgPSBmYWxzZTtcbiAgICAgICAgbGV0IHBhcmVudCA9IHRhcmdldC5fZ2V0VGhlUGFyZW50KGV2ZW50KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuOS4gV2hpbGUgcGFyZW50IGlzIG5vbi1udWxsOlxuICAgICAgICAgKi9cbiAgICAgICAgd2hpbGUgKHBhcmVudCAhPT0gbnVsbCAmJiB1dGlsXzEuR3VhcmQuaXNOb2RlKHBhcmVudCkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS45LjEgSWYgc2xvdGFibGUgaXMgbm9uLW51bGw6XG4gICAgICAgICAgICAgKiA1LjkuMS4xLiBBc3NlcnQ6IHBhcmVudCBpcyBhIHNsb3QuXG4gICAgICAgICAgICAgKiA1LjkuMS4yLiBTZXQgc2xvdGFibGUgdG8gbnVsbC5cbiAgICAgICAgICAgICAqIDUuOS4xLjMuIElmIHBhcmVudCdzIHJvb3QgaXMgYSBzaGFkb3cgcm9vdCB3aG9zZSBtb2RlIGlzIFwiY2xvc2VkXCIsXG4gICAgICAgICAgICAgKiB0aGVuIHNldCBzbG90LWluLWNsb3NlZC10cmVlIHRvIHRydWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzbG90YWJsZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghdXRpbF8xLkd1YXJkLmlzU2xvdChwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcmVudCBub2RlIG9mIGEgc2xvdGFibGUgc2hvdWxkIGJlIGEgc2xvdC5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNsb3RhYmxlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUocGFyZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChyb290KSAmJiByb290Ll9tb2RlID09PSBcImNsb3NlZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHNsb3RJbkNsb3NlZFRyZWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS45LjIgSWYgcGFyZW50IGlzIGEgc2xvdGFibGUgYW5kIGlzIGFzc2lnbmVkLCB0aGVuIHNldCBzbG90YWJsZSB0b1xuICAgICAgICAgICAgICogcGFyZW50LlxuICAgICAgICAgICAgICogNS45LjMuIExldCByZWxhdGVkVGFyZ2V0IGJlIHRoZSByZXN1bHQgb2YgcmV0YXJnZXRpbmcgZXZlbnQnc1xuICAgICAgICAgICAgICogcmVsYXRlZFRhcmdldCBhZ2FpbnN0IHBhcmVudC5cbiAgICAgICAgICAgICAqIDUuOS40LiBMZXQgdG91Y2hUYXJnZXRzIGJlIGEgbmV3IGxpc3QuXG4gICAgICAgICAgICAgKiA1LjkuNC4gRm9yIGVhY2ggdG91Y2hUYXJnZXQgb2YgZXZlbnQncyB0b3VjaCB0YXJnZXQgbGlzdCwgYXBwZW5kIHRoZVxuICAgICAgICAgICAgICogcmVzdWx0IG9mIHJldGFyZ2V0aW5nIHRvdWNoVGFyZ2V0IGFnYWluc3QgcGFyZW50IHRvIHRvdWNoVGFyZ2V0cy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1Nsb3RhYmxlKHBhcmVudCkgJiYgU2hhZG93VHJlZUFsZ29yaXRobV8xLnNoYWRvd1RyZWVfaXNBc3NpZ25lZChwYXJlbnQpKSB7XG4gICAgICAgICAgICAgICAgc2xvdGFibGUgPSBwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWxhdGVkVGFyZ2V0ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfcmV0YXJnZXQoZXZlbnQuX3JlbGF0ZWRUYXJnZXQsIHBhcmVudCk7XG4gICAgICAgICAgICB0b3VjaFRhcmdldHMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdG91Y2hUYXJnZXQgb2YgZXZlbnQuX3RvdWNoVGFyZ2V0TGlzdCkge1xuICAgICAgICAgICAgICAgIHRvdWNoVGFyZ2V0cy5wdXNoKFRyZWVBbGdvcml0aG1fMS50cmVlX3JldGFyZ2V0KHRvdWNoVGFyZ2V0LCBwYXJlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS45LjYuIElmIHBhcmVudCBpcyBhIFdpbmRvdyBvYmplY3QsIG9yIHBhcmVudCBpcyBhIG5vZGUgYW5kIHRhcmdldCdzXG4gICAgICAgICAgICAgKiByb290IGlzIGEgc2hhZG93LWluY2x1ZGluZyBpbmNsdXNpdmUgYW5jZXN0b3Igb2YgcGFyZW50LCB0aGVuOlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzV2luZG93KHBhcmVudCkgfHwgKHV0aWxfMS5HdWFyZC5pc05vZGUocGFyZW50KSAmJiB1dGlsXzEuR3VhcmQuaXNOb2RlKHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICBUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0FuY2VzdG9yT2YoVHJlZUFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUodGFyZ2V0LCB0cnVlKSwgcGFyZW50LCB0cnVlLCB0cnVlKSkpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA1LjkuNi4xLiBJZiBpc0FjdGl2YXRpb25FdmVudCBpcyB0cnVlLCBldmVudCdzIGJ1YmJsZXMgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgICogaXMgdHJ1ZSwgYWN0aXZhdGlvblRhcmdldCBpcyBudWxsLCBhbmQgcGFyZW50IGhhcyBhY3RpdmF0aW9uXG4gICAgICAgICAgICAgICAgICogYmVoYXZpb3IsIHRoZW4gc2V0IGFjdGl2YXRpb25UYXJnZXQgdG8gcGFyZW50LlxuICAgICAgICAgICAgICAgICAqIDUuOS42LjIuIEFwcGVuZCB0byBhbiBldmVudCBwYXRoIHdpdGggZXZlbnQsIHBhcmVudCwgbnVsbCxcbiAgICAgICAgICAgICAgICAgKiByZWxhdGVkVGFyZ2V0LCB0b3VjaFRhcmdldHMsIGFuZCBzbG90LWluLWNsb3NlZC10cmVlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChpc0FjdGl2YXRpb25FdmVudCAmJiBldmVudC5fYnViYmxlcyAmJiBhY3RpdmF0aW9uVGFyZ2V0ID09PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5fYWN0aXZhdGlvbkJlaGF2aW9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRpb25UYXJnZXQgPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV2ZW50X2FwcGVuZFRvQW5FdmVudFBhdGgoZXZlbnQsIHBhcmVudCwgbnVsbCwgcmVsYXRlZFRhcmdldCwgdG91Y2hUYXJnZXRzLCBzbG90SW5DbG9zZWRUcmVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcmVudCA9PT0gcmVsYXRlZFRhcmdldCkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDUuOS43LiBPdGhlcndpc2UsIGlmIHBhcmVudCBpcyByZWxhdGVkVGFyZ2V0LFxuICAgICAgICAgICAgICAgICAqIHRoZW4gc2V0IHBhcmVudCB0byBudWxsLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA1LjkuOC4gT3RoZXJ3aXNlLCBzZXQgdGFyZ2V0IHRvIHBhcmVudCBhbmQgdGhlbjpcbiAgICAgICAgICAgICAgICAgKiA1LjkuOC4xLiBJZiBpc0FjdGl2YXRpb25FdmVudCBpcyB0cnVlLCBhY3RpdmF0aW9uVGFyZ2V0IGlzIG51bGwsXG4gICAgICAgICAgICAgICAgICogYW5kIHRhcmdldCBoYXMgYWN0aXZhdGlvbiBiZWhhdmlvciwgdGhlbiBzZXQgYWN0aXZhdGlvblRhcmdldFxuICAgICAgICAgICAgICAgICAqIHRvIHRhcmdldC5cbiAgICAgICAgICAgICAgICAgKiA1LjkuOC4yLiBBcHBlbmQgdG8gYW4gZXZlbnQgcGF0aCB3aXRoIGV2ZW50LCBwYXJlbnQsIHRhcmdldCxcbiAgICAgICAgICAgICAgICAgKiByZWxhdGVkVGFyZ2V0LCB0b3VjaFRhcmdldHMsIGFuZCBzbG90LWluLWNsb3NlZC10cmVlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IHBhcmVudDtcbiAgICAgICAgICAgICAgICBpZiAoaXNBY3RpdmF0aW9uRXZlbnQgJiYgYWN0aXZhdGlvblRhcmdldCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuX2FjdGl2YXRpb25CZWhhdmlvcikge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0aW9uVGFyZ2V0ID0gdGFyZ2V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBldmVudF9hcHBlbmRUb0FuRXZlbnRQYXRoKGV2ZW50LCBwYXJlbnQsIHRhcmdldCwgcmVsYXRlZFRhcmdldCwgdG91Y2hUYXJnZXRzLCBzbG90SW5DbG9zZWRUcmVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS45LjkuIElmIHBhcmVudCBpcyBub24tbnVsbCwgdGhlbiBzZXQgcGFyZW50IHRvIHRoZSByZXN1bHQgb2ZcbiAgICAgICAgICAgICAqIGludm9raW5nIHBhcmVudCdzIGdldCB0aGUgcGFyZW50IHdpdGggZXZlbnQuXG4gICAgICAgICAgICAgKiA1LjkuMTAuIFNldCBzbG90LWluLWNsb3NlZC10cmVlIHRvIGZhbHNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50Ll9nZXRUaGVQYXJlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2xvdEluQ2xvc2VkVHJlZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA1LjEwLiBMZXQgY2xlYXJUYXJnZXRzU3RydWN0IGJlIHRoZSBsYXN0IHN0cnVjdCBpbiBldmVudCdzIHBhdGggd2hvc2VcbiAgICAgICAgICogc2hhZG93LWFkanVzdGVkIHRhcmdldCBpcyBub24tbnVsbC5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBjbGVhclRhcmdldHNTdHJ1Y3QgPSBudWxsO1xuICAgICAgICBjb25zdCBwYXRoID0gZXZlbnQuX3BhdGg7XG4gICAgICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSBwYXRoW2ldO1xuICAgICAgICAgICAgaWYgKHN0cnVjdC5zaGFkb3dBZGp1c3RlZFRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGFyZ2V0c1N0cnVjdCA9IHN0cnVjdDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNS4xMS4gTGV0IGNsZWFyVGFyZ2V0cyBiZSB0cnVlIGlmIGNsZWFyVGFyZ2V0c1N0cnVjdCdzIHNoYWRvdy1hZGp1c3RlZFxuICAgICAgICAgKiB0YXJnZXQsIGNsZWFyVGFyZ2V0c1N0cnVjdCdzIHJlbGF0ZWRUYXJnZXQsIG9yIGFuIEV2ZW50VGFyZ2V0IG9iamVjdFxuICAgICAgICAgKiBpbiBjbGVhclRhcmdldHNTdHJ1Y3QncyB0b3VjaCB0YXJnZXQgbGlzdCBpcyBhIG5vZGUgYW5kIGl0cyByb290IGlzXG4gICAgICAgICAqIGEgc2hhZG93IHJvb3QsIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoY2xlYXJUYXJnZXRzU3RydWN0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzTm9kZShjbGVhclRhcmdldHNTdHJ1Y3Quc2hhZG93QWRqdXN0ZWRUYXJnZXQpICYmXG4gICAgICAgICAgICAgICAgdXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShjbGVhclRhcmdldHNTdHJ1Y3Quc2hhZG93QWRqdXN0ZWRUYXJnZXQsIHRydWUpKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGFyZ2V0cyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNOb2RlKGNsZWFyVGFyZ2V0c1N0cnVjdC5yZWxhdGVkVGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgIHV0aWxfMS5HdWFyZC5pc1NoYWRvd1Jvb3QoVHJlZUFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUoY2xlYXJUYXJnZXRzU3RydWN0LnJlbGF0ZWRUYXJnZXQsIHRydWUpKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGFyZ2V0cyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNsZWFyVGFyZ2V0c1N0cnVjdC50b3VjaFRhcmdldExpc3QubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0ID0gY2xlYXJUYXJnZXRzU3RydWN0LnRvdWNoVGFyZ2V0TGlzdFtqXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc05vZGUoc3RydWN0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShzdHJ1Y3QsIHRydWUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUYXJnZXRzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA1LjEyLiBJZiBhY3RpdmF0aW9uVGFyZ2V0IGlzIG5vbi1udWxsIGFuZCBhY3RpdmF0aW9uVGFyZ2V0IGhhc1xuICAgICAgICAgKiBsZWdhY3ktcHJlLWFjdGl2YXRpb24gYmVoYXZpb3IsIHRoZW4gcnVuIGFjdGl2YXRpb25UYXJnZXQnc1xuICAgICAgICAgKiBsZWdhY3ktcHJlLWFjdGl2YXRpb24gYmVoYXZpb3IuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoYWN0aXZhdGlvblRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYWN0aXZhdGlvblRhcmdldC5fbGVnYWN5UHJlQWN0aXZhdGlvbkJlaGF2aW9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFjdGl2YXRpb25UYXJnZXQuX2xlZ2FjeVByZUFjdGl2YXRpb25CZWhhdmlvcihldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuMTMuIEZvciBlYWNoIHN0cnVjdCBpbiBldmVudCdzIHBhdGgsIGluIHJldmVyc2Ugb3JkZXI6XG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gcGF0aC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3Qgc3RydWN0ID0gcGF0aFtpXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4xMy4xLiBJZiBzdHJ1Y3QncyBzaGFkb3ctYWRqdXN0ZWQgdGFyZ2V0IGlzIG5vbi1udWxsLCB0aGVuIHNldFxuICAgICAgICAgICAgICogZXZlbnQncyBldmVudFBoYXNlIGF0dHJpYnV0ZSB0byBBVF9UQVJHRVQuXG4gICAgICAgICAgICAgKiA1LjEzLjIuIE90aGVyd2lzZSwgc2V0IGV2ZW50J3MgZXZlbnRQaGFzZSBhdHRyaWJ1dGUgdG9cbiAgICAgICAgICAgICAqIENBUFRVUklOR19QSEFTRS5cbiAgICAgICAgICAgICAqIDUuMTMuMy4gSW52b2tlIHdpdGggc3RydWN0LCBldmVudCwgXCJjYXB0dXJpbmdcIiwgYW5kXG4gICAgICAgICAgICAgKiBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgaWYgZ2l2ZW4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzdHJ1Y3Quc2hhZG93QWRqdXN0ZWRUYXJnZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBldmVudC5fZXZlbnRQaGFzZSA9IGludGVyZmFjZXNfMS5FdmVudFBoYXNlLkF0VGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZXZlbnQuX2V2ZW50UGhhc2UgPSBpbnRlcmZhY2VzXzEuRXZlbnRQaGFzZS5DYXB0dXJpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudF9pbnZva2Uoc3RydWN0LCBldmVudCwgXCJjYXB0dXJpbmdcIiwgbGVnYWN5T3V0cHV0RGlkTGlzdGVuZXJzVGhyb3dGbGFnKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNS4xNC4gRm9yIGVhY2ggc3RydWN0IGluIGV2ZW50J3MgcGF0aFxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzdHJ1Y3QgPSBwYXRoW2ldO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiA1LjE0LjEuIElmIHN0cnVjdCdzIHNoYWRvdy1hZGp1c3RlZCB0YXJnZXQgaXMgbm9uLW51bGwsIHRoZW4gc2V0XG4gICAgICAgICAgICAgKiBldmVudCdzIGV2ZW50UGhhc2UgYXR0cmlidXRlIHRvIEFUX1RBUkdFVC5cbiAgICAgICAgICAgICAqIDUuMTQuMi4gT3RoZXJ3aXNlOlxuICAgICAgICAgICAgICogNS4xNC4yLjEuIElmIGV2ZW50J3MgYnViYmxlcyBhdHRyaWJ1dGUgaXMgZmFsc2UsIHRoZW4gY29udGludWUuXG4gICAgICAgICAgICAgKiA1LjE0LjIuMi4gU2V0IGV2ZW50J3MgZXZlbnRQaGFzZSBhdHRyaWJ1dGUgdG8gQlVCQkxJTkdfUEhBU0UuXG4gICAgICAgICAgICAgKiA1LjE0LjMuIEludm9rZSB3aXRoIHN0cnVjdCwgZXZlbnQsIFwiYnViYmxpbmdcIiwgYW5kXG4gICAgICAgICAgICAgKiBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgaWYgZ2l2ZW4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzdHJ1Y3Quc2hhZG93QWRqdXN0ZWRUYXJnZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBldmVudC5fZXZlbnRQaGFzZSA9IGludGVyZmFjZXNfMS5FdmVudFBoYXNlLkF0VGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudC5fYnViYmxlcylcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgZXZlbnQuX2V2ZW50UGhhc2UgPSBpbnRlcmZhY2VzXzEuRXZlbnRQaGFzZS5CdWJibGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50X2ludm9rZShzdHJ1Y3QsIGV2ZW50LCBcImJ1YmJsaW5nXCIsIGxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gU2V0IGV2ZW50J3MgZXZlbnRQaGFzZSBhdHRyaWJ1dGUgdG8gTk9ORS5cbiAgICAgKiA3LiBTZXQgZXZlbnQncyBjdXJyZW50VGFyZ2V0IGF0dHJpYnV0ZSB0byBudWxsLlxuICAgICAqIDguIFNldCBldmVudCdzIHBhdGggdG8gdGhlIGVtcHR5IGxpc3QuXG4gICAgICogOS4gVW5zZXQgZXZlbnQncyBkaXNwYXRjaCBmbGFnLCBzdG9wIHByb3BhZ2F0aW9uIGZsYWcsIGFuZCBzdG9wXG4gICAgICogaW1tZWRpYXRlIHByb3BhZ2F0aW9uIGZsYWcuXG4gICAgICovXG4gICAgZXZlbnQuX2V2ZW50UGhhc2UgPSBpbnRlcmZhY2VzXzEuRXZlbnRQaGFzZS5Ob25lO1xuICAgIGV2ZW50Ll9jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbiAgICBldmVudC5fcGF0aCA9IFtdO1xuICAgIGV2ZW50Ll9kaXNwYXRjaEZsYWcgPSBmYWxzZTtcbiAgICBldmVudC5fc3RvcFByb3BhZ2F0aW9uRmxhZyA9IGZhbHNlO1xuICAgIGV2ZW50Ll9zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25GbGFnID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogMTAuIElmIGNsZWFyVGFyZ2V0cywgdGhlbjpcbiAgICAgKiAxMC4xLiBTZXQgZXZlbnQncyB0YXJnZXQgdG8gbnVsbC5cbiAgICAgKiAxMC4yLiBTZXQgZXZlbnQncyByZWxhdGVkVGFyZ2V0IHRvIG51bGwuXG4gICAgICogMTAuMy4gU2V0IGV2ZW50J3MgdG91Y2ggdGFyZ2V0IGxpc3QgdG8gdGhlIGVtcHR5IGxpc3QuXG4gICAgICovXG4gICAgaWYgKGNsZWFyVGFyZ2V0cykge1xuICAgICAgICBldmVudC5fdGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgZXZlbnQuX3JlbGF0ZWRUYXJnZXQgPSBudWxsO1xuICAgICAgICBldmVudC5fdG91Y2hUYXJnZXRMaXN0ID0gW107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDExLiBJZiBhY3RpdmF0aW9uVGFyZ2V0IGlzIG5vbi1udWxsLCB0aGVuOlxuICAgICAqIDExLjEuIElmIGV2ZW50J3MgY2FuY2VsZWQgZmxhZyBpcyB1bnNldCwgdGhlbiBydW4gYWN0aXZhdGlvblRhcmdldCdzXG4gICAgICogYWN0aXZhdGlvbiBiZWhhdmlvciB3aXRoIGV2ZW50LlxuICAgICAqIDExLjIuIE90aGVyd2lzZSwgaWYgYWN0aXZhdGlvblRhcmdldCBoYXMgbGVnYWN5LWNhbmNlbGVkLWFjdGl2YXRpb25cbiAgICAgKiBiZWhhdmlvciwgdGhlbiBydW4gYWN0aXZhdGlvblRhcmdldCdzIGxlZ2FjeS1jYW5jZWxlZC1hY3RpdmF0aW9uXG4gICAgICogYmVoYXZpb3IuXG4gICAgICovXG4gICAgaWYgKGFjdGl2YXRpb25UYXJnZXQgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKCFldmVudC5fY2FuY2VsZWRGbGFnICYmIGFjdGl2YXRpb25UYXJnZXQuX2FjdGl2YXRpb25CZWhhdmlvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhY3RpdmF0aW9uVGFyZ2V0Ll9hY3RpdmF0aW9uQmVoYXZpb3IoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGFjdGl2YXRpb25UYXJnZXQuX2xlZ2FjeUNhbmNlbGVkQWN0aXZhdGlvbkJlaGF2aW9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFjdGl2YXRpb25UYXJnZXQuX2xlZ2FjeUNhbmNlbGVkQWN0aXZhdGlvbkJlaGF2aW9yKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAxMi4gUmV0dXJuIGZhbHNlIGlmIGV2ZW50J3MgY2FuY2VsZWQgZmxhZyBpcyBzZXQsIGFuZCB0cnVlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICByZXR1cm4gIWV2ZW50Ll9jYW5jZWxlZEZsYWc7XG59XG5leHBvcnRzLmV2ZW50X2Rpc3BhdGNoID0gZXZlbnRfZGlzcGF0Y2g7XG4vKipcbiAqIEFwcGVuZHMgYSBuZXcgc3RydWN0IHRvIGFuIGV2ZW50J3MgcGF0aC5cbiAqXG4gKiBAcGFyYW0gZXZlbnQgLSBhbiBldmVudFxuICogQHBhcmFtIGludm9jYXRpb25UYXJnZXQgLSB0aGUgdGFyZ2V0IG9mIHRoZSBpbnZvY2F0aW9uXG4gKiBAcGFyYW0gc2hhZG93QWRqdXN0ZWRUYXJnZXQgLSBzaGFkb3ctcm9vdCBhZGp1c3RlZCBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSByZWxhdGVkVGFyZ2V0IC0gcmVsYXRlZCBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSB0b3VjaFRhcmdldHMgLSBhIGxpc3Qgb2YgdG91Y2ggdGFyZ2V0c1xuICogQHBhcmFtIHNsb3RJbkNsb3NlZFRyZWUgLSBpZiB0aGUgdGFyZ2V0J3MgcGFyZW50IGlzIGEgY2xvc2VkIHNoYWRvdyByb290XG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2FwcGVuZFRvQW5FdmVudFBhdGgoZXZlbnQsIGludm9jYXRpb25UYXJnZXQsIHNoYWRvd0FkanVzdGVkVGFyZ2V0LCByZWxhdGVkVGFyZ2V0LCB0b3VjaFRhcmdldHMsIHNsb3RJbkNsb3NlZFRyZWUpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgaW52b2NhdGlvblRhcmdldEluU2hhZG93VHJlZSBiZSBmYWxzZS5cbiAgICAgKiAyLiBJZiBpbnZvY2F0aW9uVGFyZ2V0IGlzIGEgbm9kZSBhbmQgaXRzIHJvb3QgaXMgYSBzaGFkb3cgcm9vdCwgdGhlblxuICAgICAqIHNldCBpbnZvY2F0aW9uVGFyZ2V0SW5TaGFkb3dUcmVlIHRvIHRydWUuXG4gICAgICovXG4gICAgbGV0IGludm9jYXRpb25UYXJnZXRJblNoYWRvd1RyZWUgPSBmYWxzZTtcbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzTm9kZShpbnZvY2F0aW9uVGFyZ2V0KSAmJlxuICAgICAgICB1dGlsXzEuR3VhcmQuaXNTaGFkb3dSb290KFRyZWVBbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKGludm9jYXRpb25UYXJnZXQpKSkge1xuICAgICAgICBpbnZvY2F0aW9uVGFyZ2V0SW5TaGFkb3dUcmVlID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMy4gTGV0IHJvb3Qtb2YtY2xvc2VkLXRyZWUgYmUgZmFsc2UuXG4gICAgICogNC4gSWYgaW52b2NhdGlvblRhcmdldCBpcyBhIHNoYWRvdyByb290IHdob3NlIG1vZGUgaXMgXCJjbG9zZWRcIiwgdGhlblxuICAgICAqIHNldCByb290LW9mLWNsb3NlZC10cmVlIHRvIHRydWUuXG4gICAgICovXG4gICAgbGV0IHJvb3RPZkNsb3NlZFRyZWUgPSBmYWxzZTtcbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChpbnZvY2F0aW9uVGFyZ2V0KSAmJlxuICAgICAgICBpbnZvY2F0aW9uVGFyZ2V0Ll9tb2RlID09PSBcImNsb3NlZFwiKSB7XG4gICAgICAgIHJvb3RPZkNsb3NlZFRyZWUgPSB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA1LiBBcHBlbmQgYSBuZXcgc3RydWN0IHRvIGV2ZW50J3MgcGF0aCB3aG9zZSBpbnZvY2F0aW9uIHRhcmdldCBpc1xuICAgICAqIGludm9jYXRpb25UYXJnZXQsIGludm9jYXRpb24tdGFyZ2V0LWluLXNoYWRvdy10cmVlIGlzXG4gICAgICogaW52b2NhdGlvblRhcmdldEluU2hhZG93VHJlZSwgc2hhZG93LWFkanVzdGVkIHRhcmdldCBpc1xuICAgICAqIHNoYWRvd0FkanVzdGVkVGFyZ2V0LCByZWxhdGVkVGFyZ2V0IGlzIHJlbGF0ZWRUYXJnZXQsXG4gICAgICogdG91Y2ggdGFyZ2V0IGxpc3QgaXMgdG91Y2hUYXJnZXRzLCByb290LW9mLWNsb3NlZC10cmVlIGlzXG4gICAgICogcm9vdC1vZi1jbG9zZWQtdHJlZSwgYW5kIHNsb3QtaW4tY2xvc2VkLXRyZWUgaXMgc2xvdC1pbi1jbG9zZWQtdHJlZS5cbiAgICAgKi9cbiAgICBldmVudC5fcGF0aC5wdXNoKHtcbiAgICAgICAgaW52b2NhdGlvblRhcmdldDogaW52b2NhdGlvblRhcmdldCxcbiAgICAgICAgaW52b2NhdGlvblRhcmdldEluU2hhZG93VHJlZTogaW52b2NhdGlvblRhcmdldEluU2hhZG93VHJlZSxcbiAgICAgICAgc2hhZG93QWRqdXN0ZWRUYXJnZXQ6IHNoYWRvd0FkanVzdGVkVGFyZ2V0LFxuICAgICAgICByZWxhdGVkVGFyZ2V0OiByZWxhdGVkVGFyZ2V0LFxuICAgICAgICB0b3VjaFRhcmdldExpc3Q6IHRvdWNoVGFyZ2V0cyxcbiAgICAgICAgcm9vdE9mQ2xvc2VkVHJlZTogcm9vdE9mQ2xvc2VkVHJlZSxcbiAgICAgICAgc2xvdEluQ2xvc2VkVHJlZTogc2xvdEluQ2xvc2VkVHJlZVxuICAgIH0pO1xufVxuZXhwb3J0cy5ldmVudF9hcHBlbmRUb0FuRXZlbnRQYXRoID0gZXZlbnRfYXBwZW5kVG9BbkV2ZW50UGF0aDtcbi8qKlxuICogSW52b2tlcyBhbiBldmVudC5cbiAqXG4gKiBAcGFyYW0gc3RydWN0IC0gYSBzdHJ1Y3QgZGVmaW5pbmcgZXZlbnQncyBwYXRoXG4gKiBAcGFyYW0gZXZlbnQgLSB0aGUgZXZlbnQgdG8gaW52b2tlXG4gKiBAcGFyYW0gcGhhc2UgLSBldmVudCBwaGFzZVxuICogQHBhcmFtIGxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyAtIGxlZ2FjeSBvdXRwdXQgZmxhZyB0aGF0IHJldHVybnNcbiAqIHdoZXRoZXIgdGhlIGV2ZW50IGxpc3RlbmVyJ3MgY2FsbGJhY2sgdGhyZXcgYW4gZXhjZXB0aW9uXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2ludm9rZShzdHJ1Y3QsIGV2ZW50LCBwaGFzZSwgbGVnYWN5T3V0cHV0RGlkTGlzdGVuZXJzVGhyb3dGbGFnID0geyB2YWx1ZTogZmFsc2UgfSkge1xuICAgIC8qKlxuICAgICAqIDEuIFNldCBldmVudCdzIHRhcmdldCB0byB0aGUgc2hhZG93LWFkanVzdGVkIHRhcmdldCBvZiB0aGUgbGFzdCBzdHJ1Y3RcbiAgICAgKiBpbiBldmVudCdzIHBhdGgsIHRoYXQgaXMgZWl0aGVyIHN0cnVjdCBvciBwcmVjZWRpbmcgc3RydWN0LCB3aG9zZVxuICAgICAqIHNoYWRvdy1hZGp1c3RlZCB0YXJnZXQgaXMgbm9uLW51bGwuXG4gICAgICovXG4gICAgY29uc3QgcGF0aCA9IGV2ZW50Ll9wYXRoO1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocGF0aFtpXSA9PT0gc3RydWN0KSB7XG4gICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGxldCBpdGVtID0gcGF0aFtpbmRleF07XG4gICAgICAgIGlmIChpdGVtLnNoYWRvd0FkanVzdGVkVGFyZ2V0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBldmVudC5fdGFyZ2V0ID0gaXRlbS5zaGFkb3dBZGp1c3RlZFRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgIGl0ZW0gPSBwYXRoW2luZGV4IC0gMV07XG4gICAgICAgICAgICBpZiAoaXRlbS5zaGFkb3dBZGp1c3RlZFRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGV2ZW50Ll90YXJnZXQgPSBpdGVtLnNoYWRvd0FkanVzdGVkVGFyZ2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDIuIFNldCBldmVudCdzIHJlbGF0ZWRUYXJnZXQgdG8gc3RydWN0J3MgcmVsYXRlZFRhcmdldC5cbiAgICAgKiAzLiBTZXQgZXZlbnQncyB0b3VjaCB0YXJnZXQgbGlzdCB0byBzdHJ1Y3QncyB0b3VjaCB0YXJnZXQgbGlzdC5cbiAgICAgKiA0LiBJZiBldmVudCdzIHN0b3AgcHJvcGFnYXRpb24gZmxhZyBpcyBzZXQsIHRoZW4gcmV0dXJuLlxuICAgICAqIDUuIEluaXRpYWxpemUgZXZlbnQncyBjdXJyZW50VGFyZ2V0IGF0dHJpYnV0ZSB0byBzdHJ1Y3QncyBpbnZvY2F0aW9uXG4gICAgICogdGFyZ2V0LlxuICAgICAqIDYuIExldCBsaXN0ZW5lcnMgYmUgYSBjbG9uZSBvZiBldmVudCdzIGN1cnJlbnRUYXJnZXQgYXR0cmlidXRlIHZhbHVlJ3NcbiAgICAgKiBldmVudCBsaXN0ZW5lciBsaXN0LlxuICAgICAqXG4gICAgICogX05vdGU6XyBUaGlzIGF2b2lkcyBldmVudCBsaXN0ZW5lcnMgYWRkZWQgYWZ0ZXIgdGhpcyBwb2ludCBmcm9tIGJlaW5nXG4gICAgICogcnVuLiBOb3RlIHRoYXQgcmVtb3ZhbCBzdGlsbCBoYXMgYW4gZWZmZWN0IGR1ZSB0byB0aGUgcmVtb3ZlZCBmaWVsZC5cbiAgICAgKi9cbiAgICBldmVudC5fcmVsYXRlZFRhcmdldCA9IHN0cnVjdC5yZWxhdGVkVGFyZ2V0O1xuICAgIGV2ZW50Ll90b3VjaFRhcmdldExpc3QgPSBzdHJ1Y3QudG91Y2hUYXJnZXRMaXN0O1xuICAgIGlmIChldmVudC5fc3RvcFByb3BhZ2F0aW9uRmxhZylcbiAgICAgICAgcmV0dXJuO1xuICAgIGV2ZW50Ll9jdXJyZW50VGFyZ2V0ID0gc3RydWN0Lmludm9jYXRpb25UYXJnZXQ7XG4gICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50Ll9jdXJyZW50VGFyZ2V0O1xuICAgIGNvbnN0IHRhcmdldExpc3RlbmVycyA9IGN1cnJlbnRUYXJnZXQuX2V2ZW50TGlzdGVuZXJMaXN0O1xuICAgIGxldCBsaXN0ZW5lcnMgPSBuZXcgQXJyYXkoLi4udGFyZ2V0TGlzdGVuZXJzKTtcbiAgICAvKipcbiAgICAgKiA3LiBMZXQgZm91bmQgYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGlubmVyIGludm9rZSB3aXRoIGV2ZW50LCBsaXN0ZW5lcnMsXG4gICAgICogcGhhc2UsIGFuZCBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgaWYgZ2l2ZW4uXG4gICAgICovXG4gICAgY29uc3QgZm91bmQgPSBldmVudF9pbm5lckludm9rZShldmVudCwgbGlzdGVuZXJzLCBwaGFzZSwgc3RydWN0LCBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcpO1xuICAgIC8qKlxuICAgICAqIDguIElmIGZvdW5kIGlzIGZhbHNlIGFuZCBldmVudCdzIGlzVHJ1c3RlZCBhdHRyaWJ1dGUgaXMgdHJ1ZSwgdGhlbjpcbiAgICAgKi9cbiAgICBpZiAoIWZvdW5kICYmIGV2ZW50Ll9pc1RydXN0ZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDguMS4gTGV0IG9yaWdpbmFsRXZlbnRUeXBlIGJlIGV2ZW50J3MgdHlwZSBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICAgICAqIDguMi4gSWYgZXZlbnQncyB0eXBlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBhIG1hdGNoIGZvciBhbnkgb2YgdGhlIHN0cmluZ3NcbiAgICAgICAgICogaW4gdGhlIGZpcnN0IGNvbHVtbiBpbiB0aGUgZm9sbG93aW5nIHRhYmxlLCBzZXQgZXZlbnQncyB0eXBlIGF0dHJpYnV0ZVxuICAgICAgICAgKiB2YWx1ZSB0byB0aGUgc3RyaW5nIGluIHRoZSBzZWNvbmQgY29sdW1uIG9uIHRoZSBzYW1lIHJvdyBhcyB0aGUgbWF0Y2hpbmdcbiAgICAgICAgICogc3RyaW5nLCBhbmQgcmV0dXJuIG90aGVyd2lzZS5cbiAgICAgICAgICpcbiAgICAgICAgICogRXZlbnQgdHlwZSAgICAgICAgICAgfCBMZWdhY3kgZXZlbnQgdHlwZVxuICAgICAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAqIFwiYW5pbWF0aW9uZW5kXCIgICAgICAgfCBcIndlYmtpdEFuaW1hdGlvbkVuZFwiXG4gICAgICAgICAqIFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIgfCBcIndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvblwiXG4gICAgICAgICAqIFwiYW5pbWF0aW9uc3RhcnRcIiAgICAgfCBcIndlYmtpdEFuaW1hdGlvblN0YXJ0XCJcbiAgICAgICAgICogXCJ0cmFuc2l0aW9uZW5kXCIgICAgICB8IFwid2Via2l0VHJhbnNpdGlvbkVuZFwiXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBvcmlnaW5hbEV2ZW50VHlwZSA9IGV2ZW50Ll90eXBlO1xuICAgICAgICBpZiAob3JpZ2luYWxFdmVudFR5cGUgPT09IFwiYW5pbWF0aW9uZW5kXCIpIHtcbiAgICAgICAgICAgIGV2ZW50Ll90eXBlID0gXCJ3ZWJraXRBbmltYXRpb25FbmRcIjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvcmlnaW5hbEV2ZW50VHlwZSA9PT0gXCJhbmltYXRpb25pdGVyYXRpb25cIikge1xuICAgICAgICAgICAgZXZlbnQuX3R5cGUgPSBcIndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvblwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9yaWdpbmFsRXZlbnRUeXBlID09PSBcImFuaW1hdGlvbnN0YXJ0XCIpIHtcbiAgICAgICAgICAgIGV2ZW50Ll90eXBlID0gXCJ3ZWJraXRBbmltYXRpb25TdGFydFwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKG9yaWdpbmFsRXZlbnRUeXBlID09PSBcInRyYW5zaXRpb25lbmRcIikge1xuICAgICAgICAgICAgZXZlbnQuX3R5cGUgPSBcIndlYmtpdFRyYW5zaXRpb25FbmRcIjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogOC4zLiBJbm5lciBpbnZva2Ugd2l0aCBldmVudCwgbGlzdGVuZXJzLCBwaGFzZSwgYW5kXG4gICAgICAgICAqIGxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyBpZiBnaXZlbi5cbiAgICAgICAgICogOC40LiBTZXQgZXZlbnQncyB0eXBlIGF0dHJpYnV0ZSB2YWx1ZSB0byBvcmlnaW5hbEV2ZW50VHlwZS5cbiAgICAgICAgICovXG4gICAgICAgIGV2ZW50X2lubmVySW52b2tlKGV2ZW50LCBsaXN0ZW5lcnMsIHBoYXNlLCBzdHJ1Y3QsIGxlZ2FjeU91dHB1dERpZExpc3RlbmVyc1Rocm93RmxhZyk7XG4gICAgICAgIGV2ZW50Ll90eXBlID0gb3JpZ2luYWxFdmVudFR5cGU7XG4gICAgfVxufVxuZXhwb3J0cy5ldmVudF9pbnZva2UgPSBldmVudF9pbnZva2U7XG4vKipcbiAqIEludm9rZXMgYW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIGV2ZW50IC0gdGhlIGV2ZW50IHRvIGludm9rZVxuICogQHBhcmFtIGxpc3RlbmVycyAtIGV2ZW50IGxpc3RlbmVyc1xuICogQHBhcmFtIHBoYXNlIC0gZXZlbnQgcGhhc2VcbiAqIEBwYXJhbSBzdHJ1Y3QgLSBhIHN0cnVjdCBkZWZpbmluZyBldmVudCdzIHBhdGhcbiAqIEBwYXJhbSBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgLSBsZWdhY3kgb3V0cHV0IGZsYWcgdGhhdCByZXR1cm5zXG4gKiB3aGV0aGVyIHRoZSBldmVudCBsaXN0ZW5lcidzIGNhbGxiYWNrIHRocmV3IGFuIGV4Y2VwdGlvblxuICovXG5mdW5jdGlvbiBldmVudF9pbm5lckludm9rZShldmVudCwgbGlzdGVuZXJzLCBwaGFzZSwgc3RydWN0LCBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgPSB7IHZhbHVlOiBmYWxzZSB9KSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IGZvdW5kIGJlIGZhbHNlLlxuICAgICAqIDIuIEZvciBlYWNoIGxpc3RlbmVyIGluIGxpc3RlbmVycywgd2hvc2UgcmVtb3ZlZCBpcyBmYWxzZTpcbiAgICAgKi9cbiAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgICAgaWYgKCFsaXN0ZW5lci5yZW1vdmVkKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDIuMS4gSWYgZXZlbnQncyB0eXBlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBub3QgbGlzdGVuZXIncyB0eXBlLCB0aGVuXG4gICAgICAgICAgICAgKiBjb250aW51ZS5cbiAgICAgICAgICAgICAqIDIuMi4gU2V0IGZvdW5kIHRvIHRydWUuXG4gICAgICAgICAgICAgKiAyLjMuIElmIHBoYXNlIGlzIFwiY2FwdHVyaW5nXCIgYW5kIGxpc3RlbmVyJ3MgY2FwdHVyZSBpcyBmYWxzZSwgdGhlblxuICAgICAgICAgICAgICogY29udGludWUuXG4gICAgICAgICAgICAgKiAyLjQuIElmIHBoYXNlIGlzIFwiYnViYmxpbmdcIiBhbmQgbGlzdGVuZXIncyBjYXB0dXJlIGlzIHRydWUsIHRoZW5cbiAgICAgICAgICAgICAqIGNvbnRpbnVlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZXZlbnQuX3R5cGUgIT09IGxpc3RlbmVyLnR5cGUpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAocGhhc2UgPT09IFwiY2FwdHVyaW5nXCIgJiYgIWxpc3RlbmVyLmNhcHR1cmUpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBpZiAocGhhc2UgPT09IFwiYnViYmxpbmdcIiAmJiBsaXN0ZW5lci5jYXB0dXJlKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAyLjUuIElmIGxpc3RlbmVyJ3Mgb25jZSBpcyB0cnVlLCB0aGVuIHJlbW92ZSBsaXN0ZW5lciBmcm9tIGV2ZW50J3NcbiAgICAgICAgICAgICAqIGN1cnJlbnRUYXJnZXQgYXR0cmlidXRlIHZhbHVlJ3MgZXZlbnQgbGlzdGVuZXIgbGlzdC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGxpc3RlbmVyLm9uY2UgJiYgZXZlbnQuX2N1cnJlbnRUYXJnZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbXBsID0gZXZlbnQuX2N1cnJlbnRUYXJnZXQ7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbXBsLl9ldmVudExpc3RlbmVyTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1wbC5fZXZlbnRMaXN0ZW5lckxpc3RbaV0gPT09IGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGltcGwuX2V2ZW50TGlzdGVuZXJMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUT0RPOiBJbXBsZW1lbnQgcmVhbG1zXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogMi42LiBMZXQgZ2xvYmFsIGJlIGxpc3RlbmVyIGNhbGxiYWNrJ3MgYXNzb2NpYXRlZCBSZWFsbSdzIGdsb2JhbFxuICAgICAgICAgICAgICogb2JqZWN0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBnbG9iYWxPYmplY3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDIuNy4gTGV0IGN1cnJlbnRFdmVudCBiZSB1bmRlZmluZWQuXG4gICAgICAgICAgICAgKiAyLjguIElmIGdsb2JhbCBpcyBhIFdpbmRvdyBvYmplY3QsIHRoZW46XG4gICAgICAgICAgICAgKiAyLjguMS4gU2V0IGN1cnJlbnRFdmVudCB0byBnbG9iYWwncyBjdXJyZW50IGV2ZW50LlxuICAgICAgICAgICAgICogMi44LjIuIElmIHN0cnVjdCdzIGludm9jYXRpb24tdGFyZ2V0LWluLXNoYWRvdy10cmVlIGlzIGZhbHNlLCB0aGVuXG4gICAgICAgICAgICAgKiBzZXQgZ2xvYmFsJ3MgY3VycmVudCBldmVudCB0byBldmVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRFdmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNXaW5kb3coZ2xvYmFsT2JqZWN0KSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRFdmVudCA9IGdsb2JhbE9iamVjdC5fY3VycmVudEV2ZW50O1xuICAgICAgICAgICAgICAgIGlmIChzdHJ1Y3QuaW52b2NhdGlvblRhcmdldEluU2hhZG93VHJlZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0Ll9jdXJyZW50RXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDIuOS4gSWYgbGlzdGVuZXIncyBwYXNzaXZlIGlzIHRydWUsIHRoZW4gc2V0IGV2ZW50J3MgaW4gcGFzc2l2ZVxuICAgICAgICAgICAgICogbGlzdGVuZXIgZmxhZy5cbiAgICAgICAgICAgICAqIDIuMTAuIENhbGwgYSB1c2VyIG9iamVjdCdzIG9wZXJhdGlvbiB3aXRoIGxpc3RlbmVyJ3MgY2FsbGJhY2ssXG4gICAgICAgICAgICAgKiBcImhhbmRsZUV2ZW50XCIsIMKrIGV2ZW50IMK7LCBhbmQgZXZlbnQncyBjdXJyZW50VGFyZ2V0IGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGxpc3RlbmVyLnBhc3NpdmUpXG4gICAgICAgICAgICAgICAgZXZlbnQuX2luUGFzc2l2ZUxpc3RlbmVyRmxhZyA9IHRydWU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxpc3RlbmVyLmNhbGxiYWNrLmhhbmRsZUV2ZW50LmNhbGwoZXZlbnQuX2N1cnJlbnRUYXJnZXQsIGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB0aGlzIHRocm93cyBhbiBleGNlcHRpb24sIHRoZW46XG4gICAgICAgICAgICAgICAgICogMi4xMC4xLiBSZXBvcnQgdGhlIGV4Y2VwdGlvbi5cbiAgICAgICAgICAgICAgICAgKiAyLjEwLjIuIFNldCBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgaWYgZ2l2ZW4uXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIFRoZSBsZWdhY3lPdXRwdXREaWRMaXN0ZW5lcnNUaHJvd0ZsYWcgaXMgb25seSB1c2VkIGJ5XG4gICAgICAgICAgICAgICAgICogSW5kZXhlZCBEYXRhYmFzZSBBUEkuXG4gICAgICAgICAgICAgICAgICogVE9ETzogUmVwb3J0IHRoZSBleGNlcHRpb25cbiAgICAgICAgICAgICAgICAgKiBTZWU6IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCNydW50aW1lLXNjcmlwdC1lcnJvcnMtaW4tZG9jdW1lbnRzXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgbGVnYWN5T3V0cHV0RGlkTGlzdGVuZXJzVGhyb3dGbGFnLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi4xMS4gVW5zZXQgZXZlbnQncyBpbiBwYXNzaXZlIGxpc3RlbmVyIGZsYWcuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChsaXN0ZW5lci5wYXNzaXZlKVxuICAgICAgICAgICAgICAgIGV2ZW50Ll9pblBhc3NpdmVMaXN0ZW5lckZsYWcgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi4xMi4gSWYgZ2xvYmFsIGlzIGEgV2luZG93IG9iamVjdCwgdGhlbiBzZXQgZ2xvYmFsJ3MgY3VycmVudCBldmVudFxuICAgICAgICAgICAgICogdG8gY3VycmVudEV2ZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzV2luZG93KGdsb2JhbE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QuX2N1cnJlbnRFdmVudCA9IGN1cnJlbnRFdmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi4xMy4gSWYgZXZlbnQncyBzdG9wIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBmbGFnIGlzIHNldCwgdGhlbiByZXR1cm5cbiAgICAgICAgICAgICAqIGZvdW5kLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZXZlbnQuX3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbkZsYWcpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIFJldHVybiBmb3VuZC5cbiAgICAgKi9cbiAgICByZXR1cm4gZm91bmQ7XG59XG5leHBvcnRzLmV2ZW50X2lubmVySW52b2tlID0gZXZlbnRfaW5uZXJJbnZva2U7XG4vKipcbiAqIEZpcmVzIGFuIGV2ZW50IGF0IHRhcmdldC5cbiAqIEBwYXJhbSBlIC0gZXZlbnQgbmFtZVxuICogQHBhcmFtIHRhcmdldCAtIGV2ZW50IHRhcmdldFxuICogQHBhcmFtIGV2ZW50Q29uc3RydWN0b3IgLSBhbiBldmVudCBjb25zdHJ1Y3Rvciwgd2l0aCBhIGRlc2NyaXB0aW9uIG9mIGhvd1xuICogSURMIGF0dHJpYnV0ZXMgYXJlIHRvIGJlIGluaXRpYWxpemVkXG4gKiBAcGFyYW0gaWRsQXR0cmlidXRlcyAtIGEgZGljdGlvbmFyeSBkZXNjcmliaW5nIGhvdyBJREwgYXR0cmlidXRlcyBhcmVcbiAqIHRvIGJlIGluaXRpYWxpemVkXG4gKiBAcGFyYW0gbGVnYWN5VGFyZ2V0T3ZlcnJpZGVGbGFnIC0gbGVnYWN5IHRhcmdldCBvdmVycmlkZSBmbGFnXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2ZpcmVBbkV2ZW50KGUsIHRhcmdldCwgZXZlbnRDb25zdHJ1Y3RvciwgaWRsQXR0cmlidXRlcywgbGVnYWN5VGFyZ2V0T3ZlcnJpZGVGbGFnKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgZXZlbnRDb25zdHJ1Y3RvciBpcyBub3QgZ2l2ZW4sIHRoZW4gbGV0IGV2ZW50Q29uc3RydWN0b3IgYmUgRXZlbnQuXG4gICAgICovXG4gICAgaWYgKGV2ZW50Q29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBldmVudENvbnN0cnVjdG9yID0gRXZlbnRJbXBsXzEuRXZlbnRJbXBsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBMZXQgZXZlbnQgYmUgdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhbiBldmVudCBnaXZlbiBldmVudENvbnN0cnVjdG9yLFxuICAgICAqIGluIHRoZSByZWxldmFudCBSZWFsbSBvZiB0YXJnZXQuXG4gICAgICovXG4gICAgY29uc3QgZXZlbnQgPSBldmVudF9jcmVhdGVBbkV2ZW50KGV2ZW50Q29uc3RydWN0b3IpO1xuICAgIC8qKlxuICAgICAqIDMuIEluaXRpYWxpemUgZXZlbnTigJlzIHR5cGUgYXR0cmlidXRlIHRvIGUuXG4gICAgICovXG4gICAgZXZlbnQuX3R5cGUgPSBlO1xuICAgIC8qKlxuICAgICAqIDQuIEluaXRpYWxpemUgYW55IG90aGVyIElETCBhdHRyaWJ1dGVzIG9mIGV2ZW50IGFzIGRlc2NyaWJlZCBpbiB0aGVcbiAgICAgKiBpbnZvY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLlxuICAgICAqIF9Ob3RlOl8gVGhpcyBhbHNvIGFsbG93cyBmb3IgdGhlIGlzVHJ1c3RlZCBhdHRyaWJ1dGUgdG8gYmUgc2V0IHRvIGZhbHNlLlxuICAgICAqL1xuICAgIGlmIChpZGxBdHRyaWJ1dGVzKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGlkbEF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGlkbE9iaiA9IGV2ZW50O1xuICAgICAgICAgICAgaWRsT2JqW2tleV0gPSBpZGxBdHRyaWJ1dGVzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNS4gUmV0dXJuIHRoZSByZXN1bHQgb2YgZGlzcGF0Y2hpbmcgZXZlbnQgYXQgdGFyZ2V0LCB3aXRoIGxlZ2FjeSB0YXJnZXRcbiAgICAgKiBvdmVycmlkZSBmbGFnIHNldCBpZiBzZXQuXG4gICAgICovXG4gICAgcmV0dXJuIGV2ZW50X2Rpc3BhdGNoKGV2ZW50LCB0YXJnZXQsIGxlZ2FjeVRhcmdldE92ZXJyaWRlRmxhZyk7XG59XG5leHBvcnRzLmV2ZW50X2ZpcmVBbkV2ZW50ID0gZXZlbnRfZmlyZUFuRXZlbnQ7XG4vKipcbiAqIENyZWF0ZXMgYW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIGV2ZW50SW50ZXJmYWNlIC0gdGhlIG5hbWUgb2YgdGhlIGV2ZW50IGludGVyZmFjZVxuICovXG5mdW5jdGlvbiBldmVudF9jcmVhdGVMZWdhY3lFdmVudChldmVudEludGVyZmFjZSkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBjb25zdHJ1Y3RvciBiZSBudWxsLlxuICAgICAqL1xuICAgIGxldCBjb25zdHJ1Y3RvciA9IG51bGw7XG4gICAgLyoqXG4gICAgICogVE9ETzogSW1wbGVtZW50IGluIEhUTUwgRE9NXG4gICAgICogMi4gSWYgaW50ZXJmYWNlIGlzIGFuIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIGFueSBvZiB0aGUgc3RyaW5nc1xuICAgICAqIGluIHRoZSBmaXJzdCBjb2x1bW4gaW4gdGhlIGZvbGxvd2luZyB0YWJsZSwgdGhlbiBzZXQgY29uc3RydWN0b3IgdG8gdGhlXG4gICAgICogaW50ZXJmYWNlIGluIHRoZSBzZWNvbmQgY29sdW1uIG9uIHRoZSBzYW1lIHJvdyBhcyB0aGUgbWF0Y2hpbmcgc3RyaW5nOlxuICAgICAqXG4gICAgICogU3RyaW5nIHwgSW50ZXJmYWNlXG4gICAgICogLS0tLS0tLXwtLS0tLS0tLS0tXG4gICAgICogXCJiZWZvcmV1bmxvYWRldmVudFwiIHwgQmVmb3JlVW5sb2FkRXZlbnRcbiAgICAgKiBcImNvbXBvc2l0aW9uZXZlbnRcIiB8IENvbXBvc2l0aW9uRXZlbnRcbiAgICAgKiBcImN1c3RvbWV2ZW50XCIgfCBDdXN0b21FdmVudFxuICAgICAqIFwiZGV2aWNlbW90aW9uZXZlbnRcIiB8IERldmljZU1vdGlvbkV2ZW50XG4gICAgICogXCJkZXZpY2VvcmllbnRhdGlvbmV2ZW50XCIgfCBEZXZpY2VPcmllbnRhdGlvbkV2ZW50XG4gICAgICogXCJkcmFnZXZlbnRcIiB8IERyYWdFdmVudFxuICAgICAqIFwiZXZlbnRcIiB8IEV2ZW50XG4gICAgICogXCJldmVudHNcIiB8IEV2ZW50XG4gICAgICogXCJmb2N1c2V2ZW50XCIgfCBGb2N1c0V2ZW50XG4gICAgICogXCJoYXNoY2hhbmdlZXZlbnRcIiB8IEhhc2hDaGFuZ2VFdmVudFxuICAgICAqIFwiaHRtbGV2ZW50c1wiIHwgRXZlbnRcbiAgICAgKiBcImtleWJvYXJkZXZlbnRcIiB8IEtleWJvYXJkRXZlbnRcbiAgICAgKiBcIm1lc3NhZ2VldmVudFwiIHwgTWVzc2FnZUV2ZW50XG4gICAgICogXCJtb3VzZWV2ZW50XCIgfCBNb3VzZUV2ZW50XG4gICAgICogXCJtb3VzZWV2ZW50c1wiIHxcbiAgICAgKiBcInN0b3JhZ2VldmVudFwiIHwgU3RvcmFnZUV2ZW50XG4gICAgICogXCJzdmdldmVudHNcIiB8IEV2ZW50XG4gICAgICogXCJ0ZXh0ZXZlbnRcIiB8IENvbXBvc2l0aW9uRXZlbnRcbiAgICAgKiBcInRvdWNoZXZlbnRcIiB8IFRvdWNoRXZlbnRcbiAgICAgKiBcInVpZXZlbnRcIiB8IFVJRXZlbnRcbiAgICAgKiBcInVpZXZlbnRzXCIgfCBVSUV2ZW50XG4gICAgICovXG4gICAgc3dpdGNoIChldmVudEludGVyZmFjZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgXCJiZWZvcmV1bmxvYWRldmVudFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbmV2ZW50XCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImN1c3RvbWV2ZW50XCI6XG4gICAgICAgICAgICBjb25zdHJ1Y3RvciA9IEN1c3RvbUV2ZW50SW1wbF8xLkN1c3RvbUV2ZW50SW1wbDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGV2aWNlbW90aW9uZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGV2aWNlb3JpZW50YXRpb25ldmVudFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkcmFnZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZXZlbnRcIjpcbiAgICAgICAgY2FzZSBcImV2ZW50c1wiOlxuICAgICAgICAgICAgY29uc3RydWN0b3IgPSBFdmVudEltcGxfMS5FdmVudEltcGw7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImZvY3VzZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaGFzaGNoYW5nZWV2ZW50XCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImh0bWxldmVudHNcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwia2V5Ym9hcmRldmVudFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtZXNzYWdlZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibW91c2VldmVudFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtb3VzZWV2ZW50c1wiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdG9yYWdlZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3ZnZXZlbnRzXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRleHRldmVudFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ0b3VjaGV2ZW50XCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInVpZXZlbnRcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidWlldmVudHNcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBJZiBjb25zdHJ1Y3RvciBpcyBudWxsLCB0aGVuIHRocm93IGEgXCJOb3RTdXBwb3J0ZWRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgKi9cbiAgICBpZiAoY29uc3RydWN0b3IgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLk5vdFN1cHBvcnRlZEVycm9yKGBFdmVudCBjb25zdHJ1Y3RvciBub3QgZm91bmQgZm9yIGludGVyZmFjZSAke2V2ZW50SW50ZXJmYWNlfS5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gSWYgdGhlIGludGVyZmFjZSBpbmRpY2F0ZWQgYnkgY29uc3RydWN0b3IgaXMgbm90IGV4cG9zZWQgb24gdGhlXG4gICAgICogcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCBvZiB0aGUgY29udGV4dCBvYmplY3QsIHRoZW4gdGhyb3cgYVxuICAgICAqIFwiTm90U3VwcG9ydGVkRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICogX05vdGU6XyBUeXBpY2FsbHkgdXNlciBhZ2VudHMgZGlzYWJsZSBzdXBwb3J0IGZvciB0b3VjaCBldmVudHMgaW4gc29tZVxuICAgICAqIGNvbmZpZ3VyYXRpb25zLCBpbiB3aGljaCBjYXNlIHRoaXMgY2xhdXNlIHdvdWxkIGJlIHRyaWdnZXJlZCBmb3IgdGhlXG4gICAgICogaW50ZXJmYWNlIFRvdWNoRXZlbnQuXG4gICAgICovXG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHJlYWxtc1xuICAgIC8qKlxuICAgICAqIDUuIExldCBldmVudCBiZSB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGFuIGV2ZW50IGdpdmVuIGNvbnN0cnVjdG9yLlxuICAgICAqIDYuIEluaXRpYWxpemUgZXZlbnTigJlzIHR5cGUgYXR0cmlidXRlIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICogNy4gSW5pdGlhbGl6ZSBldmVudOKAmXMgdGltZVN0YW1wIGF0dHJpYnV0ZSB0byBhIERPTUhpZ2hSZXNUaW1lU3RhbXBcbiAgICAgKiByZXByZXNlbnRpbmcgdGhlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lIGZyb20gdGhlIHRpbWUgb3JpZ2luIHRvIG5vdy5cbiAgICAgKiA4LiBJbml0aWFsaXplIGV2ZW504oCZcyBpc1RydXN0ZWQgYXR0cmlidXRlIHRvIGZhbHNlLlxuICAgICAqIDkuIFVuc2V0IGV2ZW504oCZcyBpbml0aWFsaXplZCBmbGFnLlxuICAgICAqL1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IGNvbnN0cnVjdG9yKFwiXCIpO1xuICAgIGV2ZW50Ll90eXBlID0gXCJcIjtcbiAgICBldmVudC5fdGltZVN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgZXZlbnQuX2lzVHJ1c3RlZCA9IGZhbHNlO1xuICAgIGV2ZW50Ll9pbml0aWFsaXplZEZsYWcgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiAxMC4gUmV0dXJuIGV2ZW50LlxuICAgICAqL1xuICAgIHJldHVybiBldmVudDtcbn1cbmV4cG9ydHMuZXZlbnRfY3JlYXRlTGVnYWN5RXZlbnQgPSBldmVudF9jcmVhdGVMZWdhY3lFdmVudDtcbi8qKlxuICogR2V0dGVyIG9mIGFuIGV2ZW50IGhhbmRsZXIgSURMIGF0dHJpYnV0ZS5cbiAqXG4gKiBAcGFyYW0gZXZlbnRUYXJnZXQgLSBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSBuYW1lIC0gZXZlbnQgbmFtZVxuICovXG5mdW5jdGlvbiBldmVudF9nZXR0ZXJFdmVudEhhbmRsZXJJRExBdHRyaWJ1dGUodGhpc09iaiwgbmFtZSkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBldmVudFRhcmdldCBiZSB0aGUgcmVzdWx0IG9mIGRldGVybWluaW5nIHRoZSB0YXJnZXQgb2YgYW4gZXZlbnRcbiAgICAgKiBoYW5kbGVyIGdpdmVuIHRoaXMgb2JqZWN0IGFuZCBuYW1lLlxuICAgICAqIDIuIElmIGV2ZW50VGFyZ2V0IGlzIG51bGwsIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICogMy4gUmV0dXJuIHRoZSByZXN1bHQgb2YgZ2V0dGluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZXZlbnQgaGFuZGxlclxuICAgICAqIGdpdmVuIGV2ZW50VGFyZ2V0IGFuZCBuYW1lLlxuICAgICAqL1xuICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnRfZGV0ZXJtaW5lVGhlVGFyZ2V0T2ZBbkV2ZW50SGFuZGxlcih0aGlzT2JqLCBuYW1lKTtcbiAgICBpZiAoZXZlbnRUYXJnZXQgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBldmVudF9nZXRUaGVDdXJyZW50VmFsdWVPZkFuRXZlbnRIYW5kbGVyKGV2ZW50VGFyZ2V0LCBuYW1lKTtcbn1cbmV4cG9ydHMuZXZlbnRfZ2V0dGVyRXZlbnRIYW5kbGVySURMQXR0cmlidXRlID0gZXZlbnRfZ2V0dGVyRXZlbnRIYW5kbGVySURMQXR0cmlidXRlO1xuLyoqXG4gKiBTZXR0ZXIgb2YgYW4gZXZlbnQgaGFuZGxlciBJREwgYXR0cmlidXRlLlxuICpcbiAqIEBwYXJhbSBldmVudFRhcmdldCAtIGV2ZW50IHRhcmdldFxuICogQHBhcmFtIG5hbWUgLSBldmVudCBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgLSBldmVudCBoYW5kbGVyXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X3NldHRlckV2ZW50SGFuZGxlcklETEF0dHJpYnV0ZSh0aGlzT2JqLCBuYW1lLCB2YWx1ZSkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBldmVudFRhcmdldCBiZSB0aGUgcmVzdWx0IG9mIGRldGVybWluaW5nIHRoZSB0YXJnZXQgb2YgYW4gZXZlbnRcbiAgICAgKiBoYW5kbGVyIGdpdmVuIHRoaXMgb2JqZWN0IGFuZCBuYW1lLlxuICAgICAqIDIuIElmIGV2ZW50VGFyZ2V0IGlzIG51bGwsIHRoZW4gcmV0dXJuLlxuICAgICAqIDMuIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBudWxsLCB0aGVuIGRlYWN0aXZhdGUgYW4gZXZlbnQgaGFuZGxlciBnaXZlblxuICAgICAqIGV2ZW50VGFyZ2V0IGFuZCBuYW1lLlxuICAgICAqIDQuIE90aGVyd2lzZTpcbiAgICAgKiA0LjEuIExldCBoYW5kbGVyTWFwIGJlIGV2ZW50VGFyZ2V0J3MgZXZlbnQgaGFuZGxlciBtYXAuXG4gICAgICogNC4yLiBMZXQgZXZlbnRIYW5kbGVyIGJlIGhhbmRsZXJNYXBbbmFtZV0uXG4gICAgICogNC4zLiBTZXQgZXZlbnRIYW5kbGVyJ3MgdmFsdWUgdG8gdGhlIGdpdmVuIHZhbHVlLlxuICAgICAqIDQuNC4gQWN0aXZhdGUgYW4gZXZlbnQgaGFuZGxlciBnaXZlbiBldmVudFRhcmdldCBhbmQgbmFtZS5cbiAgICAgKi9cbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50X2RldGVybWluZVRoZVRhcmdldE9mQW5FdmVudEhhbmRsZXIodGhpc09iaiwgbmFtZSk7XG4gICAgaWYgKGV2ZW50VGFyZ2V0ID09PSBudWxsKVxuICAgICAgICByZXR1cm47XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgIGV2ZW50X2RlYWN0aXZhdGVBbkV2ZW50SGFuZGxlcihldmVudFRhcmdldCwgbmFtZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5kbGVyTWFwID0gZXZlbnRUYXJnZXQuX2V2ZW50SGFuZGxlck1hcDtcbiAgICAgICAgY29uc3QgZXZlbnRIYW5kbGVyID0gaGFuZGxlck1hcFtcIm9uYWJvcnRcIl07XG4gICAgICAgIGlmIChldmVudEhhbmRsZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZXZlbnRIYW5kbGVyLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnRfYWN0aXZhdGVBbkV2ZW50SGFuZGxlcihldmVudFRhcmdldCwgbmFtZSk7XG4gICAgfVxufVxuZXhwb3J0cy5ldmVudF9zZXR0ZXJFdmVudEhhbmRsZXJJRExBdHRyaWJ1dGUgPSBldmVudF9zZXR0ZXJFdmVudEhhbmRsZXJJRExBdHRyaWJ1dGU7XG4vKipcbiAqIERldGVybWluZXMgdGhlIHRhcmdldCBvZiBhbiBldmVudCBoYW5kbGVyLlxuICpcbiAqIEBwYXJhbSBldmVudFRhcmdldCAtIGV2ZW50IHRhcmdldFxuICogQHBhcmFtIG5hbWUgLSBldmVudCBuYW1lXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2RldGVybWluZVRoZVRhcmdldE9mQW5FdmVudEhhbmRsZXIoZXZlbnRUYXJnZXQsIG5hbWUpIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgaW4gSFRNTCBET01cbiAgICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydHMuZXZlbnRfZGV0ZXJtaW5lVGhlVGFyZ2V0T2ZBbkV2ZW50SGFuZGxlciA9IGV2ZW50X2RldGVybWluZVRoZVRhcmdldE9mQW5FdmVudEhhbmRsZXI7XG4vKipcbiAqIEdldHMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgYW4gZXZlbnQgaGFuZGxlci5cbiAqXG4gKiBAcGFyYW0gZXZlbnRUYXJnZXQgLSBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSBuYW1lIC0gZXZlbnQgbmFtZVxuICovXG5mdW5jdGlvbiBldmVudF9nZXRUaGVDdXJyZW50VmFsdWVPZkFuRXZlbnRIYW5kbGVyKGV2ZW50VGFyZ2V0LCBuYW1lKSB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIEhUTUwgRE9NXG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnRzLmV2ZW50X2dldFRoZUN1cnJlbnRWYWx1ZU9mQW5FdmVudEhhbmRsZXIgPSBldmVudF9nZXRUaGVDdXJyZW50VmFsdWVPZkFuRXZlbnRIYW5kbGVyO1xuLyoqXG4gKiBBY3RpdmF0ZXMgYW4gZXZlbnQgaGFuZGxlci5cbiAqXG4gKiBAcGFyYW0gZXZlbnRUYXJnZXQgLSBldmVudCB0YXJnZXRcbiAqIEBwYXJhbSBuYW1lIC0gZXZlbnQgbmFtZVxuICovXG5mdW5jdGlvbiBldmVudF9hY3RpdmF0ZUFuRXZlbnRIYW5kbGVyKGV2ZW50VGFyZ2V0LCBuYW1lKSB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IGluIEhUTUwgRE9NXG59XG5leHBvcnRzLmV2ZW50X2FjdGl2YXRlQW5FdmVudEhhbmRsZXIgPSBldmVudF9hY3RpdmF0ZUFuRXZlbnRIYW5kbGVyO1xuLyoqXG4gKiBEZWFjdGl2YXRlcyBhbiBldmVudCBoYW5kbGVyLlxuICpcbiAqIEBwYXJhbSBldmVudFRhcmdldCAtIGV2ZW50IHRhcmdldFxuICogQHBhcmFtIG5hbWUgLSBldmVudCBuYW1lXG4gKi9cbmZ1bmN0aW9uIGV2ZW50X2RlYWN0aXZhdGVBbkV2ZW50SGFuZGxlcihldmVudFRhcmdldCwgbmFtZSkge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBpbiBIVE1MIERPTVxufVxuZXhwb3J0cy5ldmVudF9kZWFjdGl2YXRlQW5FdmVudEhhbmRsZXIgPSBldmVudF9kZWFjdGl2YXRlQW5FdmVudEhhbmRsZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1FdmVudEFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogUmVwcmVzZW50cyBhbiBhYnN0cmFjdCByYW5nZSB3aXRoIGEgc3RhcnQgYW5kIGVuZCBib3VuZGFyeSBwb2ludC5cbiAqL1xuY2xhc3MgQWJzdHJhY3RSYW5nZUltcGwge1xuICAgIGdldCBfc3RhcnROb2RlKCkgeyByZXR1cm4gdGhpcy5fc3RhcnRbMF07IH1cbiAgICBnZXQgX3N0YXJ0T2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fc3RhcnRbMV07IH1cbiAgICBnZXQgX2VuZE5vZGUoKSB7IHJldHVybiB0aGlzLl9lbmRbMF07IH1cbiAgICBnZXQgX2VuZE9mZnNldCgpIHsgcmV0dXJuIHRoaXMuX2VuZFsxXTsgfVxuICAgIGdldCBfY29sbGFwc2VkKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX3N0YXJ0WzBdID09PSB0aGlzLl9lbmRbMF0gJiZcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0WzFdID09PSB0aGlzLl9lbmRbMV0pO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgc3RhcnRDb250YWluZXIoKSB7IHJldHVybiB0aGlzLl9zdGFydE5vZGU7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgc3RhcnRPZmZzZXQoKSB7IHJldHVybiB0aGlzLl9zdGFydE9mZnNldDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBlbmRDb250YWluZXIoKSB7IHJldHVybiB0aGlzLl9lbmROb2RlOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGVuZE9mZnNldCgpIHsgcmV0dXJuIHRoaXMuX2VuZE9mZnNldDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjb2xsYXBzZWQoKSB7IHJldHVybiB0aGlzLl9jb2xsYXBzZWQ7IH1cbn1cbmV4cG9ydHMuQWJzdHJhY3RSYW5nZUltcGwgPSBBYnN0cmFjdFJhbmdlSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFic3RyYWN0UmFuZ2VJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBBIHN1cnJvZ2F0ZSBpcyBhIGNvZGUgcG9pbnQgdGhhdCBpcyBpbiB0aGUgcmFuZ2UgVStEODAwIHRvIFUrREZGRiwgaW5jbHVzaXZlLlxuICovXG5leHBvcnRzLlN1cnJvZ2F0ZSA9IC9bXFx1RDgwMC1cXHVERkZGXS87XG4vKipcbiAqIEEgc2NhbGFyIHZhbHVlIGlzIGEgY29kZSBwb2ludCB0aGF0IGlzIG5vdCBhIHN1cnJvZ2F0ZS5cbiAqL1xuZXhwb3J0cy5TY2FsYXJWYWx1ZSA9IC9bXFx1RDgwMC1cXHVERkZGXS87XG4vKipcbiAqIEEgbm9uY2hhcmFjdGVyIGlzIGEgY29kZSBwb2ludCB0aGF0IGlzIGluIHRoZSByYW5nZSBVK0ZERDAgdG8gVStGREVGLFxuICogaW5jbHVzaXZlLCBvciBVK0ZGRkUsIFUrRkZGRiwgVSsxRkZGRSwgVSsxRkZGRiwgVSsyRkZGRSwgVSsyRkZGRiwgVSszRkZGRSxcbiAqIFUrM0ZGRkYsIFUrNEZGRkUsIFUrNEZGRkYsIFUrNUZGRkUsIFUrNUZGRkYsIFUrNkZGRkUsIFUrNkZGRkYsIFUrN0ZGRkUsXG4gKiBVKzdGRkZGLCBVKzhGRkZFLCBVKzhGRkZGLCBVKzlGRkZFLCBVKzlGRkZGLCBVK0FGRkZFLCBVK0FGRkZGLCBVK0JGRkZFLFxuICogVStCRkZGRiwgVStDRkZGRSwgVStDRkZGRiwgVStERkZGRSwgVStERkZGRiwgVStFRkZGRSwgVStFRkZGRiwgVStGRkZGRSxcbiAqIFUrRkZGRkYsIFUrMTBGRkZFLCBvciBVKzEwRkZGRi5cbiAqL1xuZXhwb3J0cy5Ob25DaGFyYWN0ZXIgPSAvW1xcdUZERDAtXFx1RkRFRlxcdUZGRkVcXHVGRkZGXXxbXFx1RDgzRlxcdUQ4N0ZcXHVEOEJGXFx1RDhGRlxcdUQ5M0ZcXHVEOTdGXFx1RDlCRlxcdUQ5RkZcXHVEQTNGXFx1REE3RlxcdURBQkZcXHVEQUZGXFx1REIzRlxcdURCN0ZcXHVEQkJGXFx1REJGRl1bXFx1REZGRVxcdURGRkZdLztcbi8qKlxuICogQW4gQVNDSUkgY29kZSBwb2ludCBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFUrMDAwMCBOVUxMIHRvIFUrMDA3RlxuICogREVMRVRFLCBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQVNDSUlDb2RlUG9pbnQgPSAvW1xcdTAwMDAtXFx1MDA3Rl0vO1xuLyoqXG4gKiBBbiBBU0NJSSB0YWIgb3IgbmV3bGluZSBpcyBVKzAwMDkgVEFCLCBVKzAwMEEgTEYsIG9yIFUrMDAwRCBDUi5cbiAqL1xuZXhwb3J0cy5BU0NJSVRhYk9yTmV3TGluZSA9IC9bXFx0XFxuXFxyXS87XG4vKipcbiAqIEFTQ0lJIHdoaXRlc3BhY2UgaXMgVSswMDA5IFRBQiwgVSswMDBBIExGLCBVKzAwMEMgRkYsIFUrMDAwRCBDUiwgb3JcbiAqIFUrMDAyMCBTUEFDRS5cbiAqL1xuZXhwb3J0cy5BU0NJSVdoaXRlU3BhY2UgPSAvW1xcdFxcblxcZlxcciBdLztcbi8qKlxuICogQSBDMCBjb250cm9sIGlzIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgVSswMDAwIE5VTEwgdG8gVSswMDFGXG4gKiBJTkZPUk1BVElPTiBTRVBBUkFUT1IgT05FLCBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQzBDb250cm9sID0gL1tcXHUwMDAwLVxcdTAwMUZdLztcbi8qKlxuICogQSBDMCBjb250cm9sIG9yIHNwYWNlIGlzIGEgQzAgY29udHJvbCBvciBVKzAwMjAgU1BBQ0UuXG4gKi9cbmV4cG9ydHMuQzBDb250cm9sT3JTcGFjZSA9IC9bXFx1MDAwMC1cXHUwMDFGIF0vO1xuLyoqXG4gKiBBIGNvbnRyb2wgaXMgYSBDMCBjb250cm9sIG9yIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgVSswMDdGIERFTEVURSB0b1xuICogVSswMDlGIEFQUExJQ0FUSU9OIFBST0dSQU0gQ09NTUFORCwgaW5jbHVzaXZlLlxuICovXG5leHBvcnRzLkNvbnRyb2wgPSAvW1xcdTAwMDAtXFx1MDAxRlxcdTAwN0YtXFx1MDA5Rl0vO1xuLyoqXG4gKiBBbiBBU0NJSSBkaWdpdCBpcyBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlIFUrMDAzMCAoMCkgdG8gVSswMDM5ICg5KSxcbiAqIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5BU0NJSURpZ2l0ID0gL1swLTldLztcbi8qKlxuICogQW4gQVNDSUkgdXBwZXIgaGV4IGRpZ2l0IGlzIGFuIEFTQ0lJIGRpZ2l0IG9yIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2VcbiAqIFUrMDA0MSAoQSkgdG8gVSswMDQ2IChGKSwgaW5jbHVzaXZlLlxuICovXG5leHBvcnRzLkFTQ0lJVXBwZXJIZXhEaWdpdCA9IC9bMC05QS1GXS87XG4vKipcbiAqIEFuIEFTQ0lJIGxvd2VyIGhleCBkaWdpdCBpcyBhbiBBU0NJSSBkaWdpdCBvciBhIGNvZGUgcG9pbnQgaW4gdGhlIHJhbmdlXG4gKiBVKzAwNjEgKGEpIHRvIFUrMDA2NiAoZiksIGluY2x1c2l2ZS5cbiAqL1xuZXhwb3J0cy5BU0NJSUxvd2VySGV4RGlnaXQgPSAvWzAtOWEtZl0vO1xuLyoqXG4gKiBBbiBBU0NJSSBoZXggZGlnaXQgaXMgYW4gQVNDSUkgdXBwZXIgaGV4IGRpZ2l0IG9yIEFTQ0lJIGxvd2VyIGhleCBkaWdpdC5cbiAqL1xuZXhwb3J0cy5BU0NJSUhleERpZ2l0ID0gL1swLTlBLUZhLWZdLztcbi8qKlxuICogQW4gQVNDSUkgdXBwZXIgYWxwaGEgaXMgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZSBVKzAwNDEgKEEpIHRvIFUrMDA1QSAoWiksXG4gKiBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQVNDSUlVcHBlckFscGhhID0gL1tBLVpdLztcbi8qKlxuICogQW4gQVNDSUkgbG93ZXIgYWxwaGEgaXMgYSBjb2RlIHBvaW50IGluIHRoZSByYW5nZSBVKzAwNjEgKGEpIHRvIFUrMDA3QSAoeiksXG4gKiBpbmNsdXNpdmUuXG4gKi9cbmV4cG9ydHMuQVNDSUlMb3dlckFscGhhID0gL1thLXpdLztcbi8qKlxuICogQW4gQVNDSUkgYWxwaGEgaXMgYW4gQVNDSUkgdXBwZXIgYWxwaGEgb3IgQVNDSUkgbG93ZXIgYWxwaGEuXG4gKi9cbmV4cG9ydHMuQVNDSUlBbHBoYSA9IC9bQS1aYS16XS87XG4vKipcbiAqIEFuIEFTQ0lJIGFscGhhbnVtZXJpYyBpcyBhbiBBU0NJSSBkaWdpdCBvciBBU0NJSSBhbHBoYS5cbiAqL1xuZXhwb3J0cy5BU0NJSUFscGhhbnVtZXJpYyA9IC9bMC05QS1aYS16XS87XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db2RlUG9pbnRzLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IENoYXJhY3RlckRhdGFJbXBsXzEgPSByZXF1aXJlKFwiLi9DaGFyYWN0ZXJEYXRhSW1wbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbmNvbnN0IFdlYklETEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobS9XZWJJRExBbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSB0ZXh0IG5vZGUuXG4gKi9cbmNsYXNzIFRleHRJbXBsIGV4dGVuZHMgQ2hhcmFjdGVyRGF0YUltcGxfMS5DaGFyYWN0ZXJEYXRhSW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYFRleHRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEgLSB0aGUgdGV4dCBjb250ZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGF0YSA9ICcnKSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgICAgICB0aGlzLl9uYW1lID0gJyc7XG4gICAgICAgIHRoaXMuX2Fzc2lnbmVkU2xvdCA9IG51bGw7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCB3aG9sZVRleHQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgd2hvbGVUZXh0IGF0dHJpYnV0ZeKAmXMgZ2V0dGVyIG11c3QgcmV0dXJuIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZVxuICAgICAgICAgKiBkYXRhIG9mIHRoZSBjb250aWd1b3VzIFRleHQgbm9kZXMgb2YgdGhlIGNvbnRleHQgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHRleHQgPSAnJztcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIGFsZ29yaXRobV8xLnRleHRfY29udGlndW91c1RleHROb2Rlcyh0aGlzLCB0cnVlKSkge1xuICAgICAgICAgICAgdGV4dCA9IHRleHQgKyBub2RlLl9kYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzcGxpdFRleHQob2Zmc2V0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgc3BsaXRUZXh0KG9mZnNldCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3Qgc3BsaXQgY29udGV4dCBvYmplY3RcbiAgICAgICAgICogd2l0aCBvZmZzZXQgb2Zmc2V0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLnRleHRfc3BsaXQodGhpcywgb2Zmc2V0KTtcbiAgICB9XG4gICAgLy8gTUlYSU46IFNsb3RhYmxlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgYXNzaWduZWRTbG90KCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogU2xvdGFibGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBgVGV4dGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICAgICAqIEBwYXJhbSBkYXRhIC0gdGhlIHRleHQgY29udGVudFxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBkYXRhID0gJycpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBUZXh0SW1wbChkYXRhKTtcbiAgICAgICAgbm9kZS5fbm9kZURvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn1cbmV4cG9ydHMuVGV4dEltcGwgPSBUZXh0SW1wbDtcbi8qKlxuICogSW5pdGlhbGl6ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuICovXG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoVGV4dEltcGwucHJvdG90eXBlLCBcIl9ub2RlVHlwZVwiLCBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UZXh0SW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuL2ludGVyZmFjZXNcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgRE9NIGV2ZW50LlxuICovXG5jbGFzcyBFdmVudEltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBFdmVudGAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgZXZlbnRJbml0KSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IG51bGw7XG4gICAgICAgIHRoaXMuX3JlbGF0ZWRUYXJnZXQgPSBudWxsO1xuICAgICAgICB0aGlzLl90b3VjaFRhcmdldExpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5fcGF0aCA9IFtdO1xuICAgICAgICB0aGlzLl9jdXJyZW50VGFyZ2V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZXZlbnRQaGFzZSA9IGludGVyZmFjZXNfMS5FdmVudFBoYXNlLk5vbmU7XG4gICAgICAgIHRoaXMuX3N0b3BQcm9wYWdhdGlvbkZsYWcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uRmxhZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jYW5jZWxlZEZsYWcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faW5QYXNzaXZlTGlzdGVuZXJGbGFnID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NvbXBvc2VkRmxhZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZEZsYWcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hGbGFnID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lzVHJ1c3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9idWJibGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NhbmNlbGFibGUgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gYSBjb25zdHJ1Y3RvciBvZiB0aGUgRXZlbnQgaW50ZXJmYWNlLCBvciBvZiBhbiBpbnRlcmZhY2UgdGhhdFxuICAgICAgICAgKiBpbmhlcml0cyBmcm9tIHRoZSBFdmVudCBpbnRlcmZhY2UsIGlzIGludm9rZWQsIHRoZXNlIHN0ZXBzIG11c3QgYmUgcnVuLFxuICAgICAgICAgKiBnaXZlbiB0aGUgYXJndW1lbnRzIHR5cGUgYW5kIGV2ZW50SW5pdERpY3Q6XG4gICAgICAgICAqIDEuIExldCBldmVudCBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIGlubmVyIGV2ZW50IGNyZWF0aW9uIHN0ZXBzIHdpdGhcbiAgICAgICAgICogdGhpcyBpbnRlcmZhY2UsIG51bGwsIG5vdywgYW5kIGV2ZW50SW5pdERpY3QuXG4gICAgICAgICAqIDIuIEluaXRpYWxpemUgZXZlbnTigJlzIHR5cGUgYXR0cmlidXRlIHRvIHR5cGUuXG4gICAgICAgICAqIDMuIFJldHVybiBldmVudC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgICAgICBpZiAoZXZlbnRJbml0KSB7XG4gICAgICAgICAgICB0aGlzLl9idWJibGVzID0gZXZlbnRJbml0LmJ1YmJsZXMgfHwgZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jYW5jZWxhYmxlID0gZXZlbnRJbml0LmNhbmNlbGFibGUgfHwgZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9jb21wb3NlZEZsYWcgPSBldmVudEluaXQuY29tcG9zZWQgfHwgZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRGbGFnID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fdGltZVN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCB0YXJnZXQoKSB7IHJldHVybiB0aGlzLl90YXJnZXQ7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgc3JjRWxlbWVudCgpIHsgcmV0dXJuIHRoaXMuX3RhcmdldDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjdXJyZW50VGFyZ2V0KCkgeyByZXR1cm4gdGhpcy5fY3VycmVudFRhcmdldDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNvbXBvc2VkUGF0aCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBjb21wb3NlZFBhdGggYmUgYW4gZW1wdHkgbGlzdC5cbiAgICAgICAgICogMi4gTGV0IHBhdGggYmUgdGhlIGNvbnRleHQgb2JqZWN04oCZcyBwYXRoLlxuICAgICAgICAgKiAzLiBJZiBwYXRoIGlzIGVtcHR5LCB0aGVuIHJldHVybiBjb21wb3NlZFBhdGguXG4gICAgICAgICAqIDQuIExldCBjdXJyZW50VGFyZ2V0IGJlIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgY3VycmVudFRhcmdldCBhdHRyaWJ1dGVcbiAgICAgICAgICogdmFsdWUuXG4gICAgICAgICAqIDUuIEFwcGVuZCBjdXJyZW50VGFyZ2V0IHRvIGNvbXBvc2VkUGF0aC5cbiAgICAgICAgICogNi4gTGV0IGN1cnJlbnRUYXJnZXRJbmRleCBiZSAwLlxuICAgICAgICAgKiA3LiBMZXQgY3VycmVudFRhcmdldEhpZGRlblN1YnRyZWVMZXZlbCBiZSAwLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY29tcG9zZWRQYXRoID0gW107XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLl9wYXRoO1xuICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gY29tcG9zZWRQYXRoO1xuICAgICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gdGhpcy5fY3VycmVudFRhcmdldDtcbiAgICAgICAgaWYgKGN1cnJlbnRUYXJnZXQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkV2ZW50IGN1cnJlbnRUYXJnZXQgaXMgbnVsbC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9zZWRQYXRoLnB1c2goY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBjdXJyZW50VGFyZ2V0SW5kZXggPSAwO1xuICAgICAgICBsZXQgY3VycmVudFRhcmdldEhpZGRlblN1YnRyZWVMZXZlbCA9IDA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA4LiBMZXQgaW5kZXggYmUgcGF0aOKAmXMgc2l6ZSDiiJIgMS5cbiAgICAgICAgICogOS4gV2hpbGUgaW5kZXggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDA6XG4gICAgICAgICAqL1xuICAgICAgICBsZXQgaW5kZXggPSBwYXRoLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDkuMS4gSWYgcGF0aFtpbmRleF0ncyByb290LW9mLWNsb3NlZC10cmVlIGlzIHRydWUsIHRoZW4gaW5jcmVhc2VcbiAgICAgICAgICAgICAqIGN1cnJlbnRUYXJnZXRIaWRkZW5TdWJ0cmVlTGV2ZWwgYnkgMS5cbiAgICAgICAgICAgICAqIDkuMi4gSWYgcGF0aFtpbmRleF0ncyBpbnZvY2F0aW9uIHRhcmdldCBpcyBjdXJyZW50VGFyZ2V0LCB0aGVuIHNldFxuICAgICAgICAgICAgICogY3VycmVudFRhcmdldEluZGV4IHRvIGluZGV4IGFuZCBicmVhay5cbiAgICAgICAgICAgICAqIDkuMy4gSWYgcGF0aFtpbmRleF0ncyBzbG90LWluLWNsb3NlZC10cmVlIGlzIHRydWUsIHRoZW4gZGVjcmVhc2VcbiAgICAgICAgICAgICAqIGN1cnJlbnRUYXJnZXRIaWRkZW5TdWJ0cmVlTGV2ZWwgYnkgMS5cbiAgICAgICAgICAgICAqIDkuNC4gRGVjcmVhc2UgaW5kZXggYnkgMS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHBhdGhbaW5kZXhdLnJvb3RPZkNsb3NlZFRyZWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGF0aFtpbmRleF0uaW52b2NhdGlvblRhcmdldCA9PT0gY3VycmVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhdGhbaW5kZXhdLnNsb3RJbkNsb3NlZFRyZWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxMC4gTGV0IGN1cnJlbnRIaWRkZW5MZXZlbCBhbmQgbWF4SGlkZGVuTGV2ZWwgYmVcbiAgICAgICAgICogY3VycmVudFRhcmdldEhpZGRlblN1YnRyZWVMZXZlbC5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBjdXJyZW50SGlkZGVuTGV2ZWwgPSBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsO1xuICAgICAgICBsZXQgbWF4SGlkZGVuTGV2ZWwgPSBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsO1xuICAgICAgICAvKipcbiAgICAgICAgICogMTEuIFNldCBpbmRleCB0byBjdXJyZW50VGFyZ2V0SW5kZXgg4oiSIDEuXG4gICAgICAgICAqIDEyLiBXaGlsZSBpbmRleCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMDpcbiAgICAgICAgICovXG4gICAgICAgIGluZGV4ID0gY3VycmVudFRhcmdldEluZGV4IC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMTIuMS4gSWYgcGF0aFtpbmRleF0ncyByb290LW9mLWNsb3NlZC10cmVlIGlzIHRydWUsIHRoZW4gaW5jcmVhc2VcbiAgICAgICAgICAgICAqIGN1cnJlbnRIaWRkZW5MZXZlbCBieSAxLlxuICAgICAgICAgICAgICogMTIuMi4gSWYgY3VycmVudEhpZGRlbkxldmVsIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBtYXhIaWRkZW5MZXZlbCxcbiAgICAgICAgICAgICAqIHRoZW4gcHJlcGVuZCBwYXRoW2luZGV4XSdzIGludm9jYXRpb24gdGFyZ2V0IHRvIGNvbXBvc2VkUGF0aC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHBhdGhbaW5kZXhdLnJvb3RPZkNsb3NlZFRyZWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SGlkZGVuTGV2ZWwrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50SGlkZGVuTGV2ZWwgPD0gbWF4SGlkZGVuTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICBjb21wb3NlZFBhdGgudW5zaGlmdChwYXRoW2luZGV4XS5pbnZvY2F0aW9uVGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMTIuMy4gSWYgcGF0aFtpbmRleF0ncyBzbG90LWluLWNsb3NlZC10cmVlIGlzIHRydWUsIHRoZW46XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChwYXRoW2luZGV4XS5zbG90SW5DbG9zZWRUcmVlKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTIuMy4xLiBEZWNyZWFzZSBjdXJyZW50SGlkZGVuTGV2ZWwgYnkgMS5cbiAgICAgICAgICAgICAgICAgKiAxMi4zLjIuIElmIGN1cnJlbnRIaWRkZW5MZXZlbCBpcyBsZXNzIHRoYW4gbWF4SGlkZGVuTGV2ZWwsIHRoZW4gc2V0XG4gICAgICAgICAgICAgICAgICogbWF4SGlkZGVuTGV2ZWwgdG8gY3VycmVudEhpZGRlbkxldmVsLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGN1cnJlbnRIaWRkZW5MZXZlbC0tO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SGlkZGVuTGV2ZWwgPCBtYXhIaWRkZW5MZXZlbCkge1xuICAgICAgICAgICAgICAgICAgICBtYXhIaWRkZW5MZXZlbCA9IGN1cnJlbnRIaWRkZW5MZXZlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDEyLjQuIERlY3JlYXNlIGluZGV4IGJ5IDEuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEzLiBTZXQgY3VycmVudEhpZGRlbkxldmVsIGFuZCBtYXhIaWRkZW5MZXZlbCB0b1xuICAgICAgICAgKiBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsLlxuICAgICAgICAgKi9cbiAgICAgICAgY3VycmVudEhpZGRlbkxldmVsID0gY3VycmVudFRhcmdldEhpZGRlblN1YnRyZWVMZXZlbDtcbiAgICAgICAgbWF4SGlkZGVuTGV2ZWwgPSBjdXJyZW50VGFyZ2V0SGlkZGVuU3VidHJlZUxldmVsO1xuICAgICAgICAvKipcbiAgICAgICAgICogMTQuIFNldCBpbmRleCB0byBjdXJyZW50VGFyZ2V0SW5kZXggKyAxLlxuICAgICAgICAgKiAxNS4gV2hpbGUgaW5kZXggaXMgbGVzcyB0aGFuIHBhdGjigJlzIHNpemU6XG4gICAgICAgICAqL1xuICAgICAgICBpbmRleCA9IGN1cnJlbnRUYXJnZXRJbmRleCArIDE7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IHBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDE1LjEuIElmIHBhdGhbaW5kZXhdJ3Mgc2xvdC1pbi1jbG9zZWQtdHJlZSBpcyB0cnVlLCB0aGVuIGluY3JlYXNlXG4gICAgICAgICAgICAgKiBjdXJyZW50SGlkZGVuTGV2ZWwgYnkgMS5cbiAgICAgICAgICAgICAqIDE1LjIuIElmIGN1cnJlbnRIaWRkZW5MZXZlbCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gbWF4SGlkZGVuTGV2ZWwsXG4gICAgICAgICAgICAgKiB0aGVuIGFwcGVuZCBwYXRoW2luZGV4XSdzIGludm9jYXRpb24gdGFyZ2V0IHRvIGNvbXBvc2VkUGF0aC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHBhdGhbaW5kZXhdLnNsb3RJbkNsb3NlZFRyZWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SGlkZGVuTGV2ZWwrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50SGlkZGVuTGV2ZWwgPD0gbWF4SGlkZGVuTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICBjb21wb3NlZFBhdGgucHVzaChwYXRoW2luZGV4XS5pbnZvY2F0aW9uVGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMTUuMy4gSWYgcGF0aFtpbmRleF0ncyByb290LW9mLWNsb3NlZC10cmVlIGlzIHRydWUsIHRoZW46XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChwYXRoW2luZGV4XS5yb290T2ZDbG9zZWRUcmVlKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTUuMy4xLiBEZWNyZWFzZSBjdXJyZW50SGlkZGVuTGV2ZWwgYnkgMS5cbiAgICAgICAgICAgICAgICAgKiAxNS4zLjIuIElmIGN1cnJlbnRIaWRkZW5MZXZlbCBpcyBsZXNzIHRoYW4gbWF4SGlkZGVuTGV2ZWwsIHRoZW4gc2V0XG4gICAgICAgICAgICAgICAgICogbWF4SGlkZGVuTGV2ZWwgdG8gY3VycmVudEhpZGRlbkxldmVsLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGN1cnJlbnRIaWRkZW5MZXZlbC0tO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SGlkZGVuTGV2ZWwgPCBtYXhIaWRkZW5MZXZlbCkge1xuICAgICAgICAgICAgICAgICAgICBtYXhIaWRkZW5MZXZlbCA9IGN1cnJlbnRIaWRkZW5MZXZlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDE1LjQuIEluY3JlYXNlIGluZGV4IGJ5IDEuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDE2LiBSZXR1cm4gY29tcG9zZWRQYXRoLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGNvbXBvc2VkUGF0aDtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGV2ZW50UGhhc2UoKSB7IHJldHVybiB0aGlzLl9ldmVudFBoYXNlOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc3RvcFByb3BhZ2F0aW9uKCkgeyB0aGlzLl9zdG9wUHJvcGFnYXRpb25GbGFnID0gdHJ1ZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjYW5jZWxCdWJibGUoKSB7IHJldHVybiB0aGlzLl9zdG9wUHJvcGFnYXRpb25GbGFnOyB9XG4gICAgc2V0IGNhbmNlbEJ1YmJsZSh2YWx1ZSkgeyBpZiAodmFsdWUpXG4gICAgICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSB7XG4gICAgICAgIHRoaXMuX3N0b3BQcm9wYWdhdGlvbkZsYWcgPSB0cnVlO1xuICAgICAgICB0aGlzLl9zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb25GbGFnID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGJ1YmJsZXMoKSB7IHJldHVybiB0aGlzLl9idWJibGVzOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGNhbmNlbGFibGUoKSB7IHJldHVybiB0aGlzLl9jYW5jZWxhYmxlOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHJldHVyblZhbHVlKCkgeyByZXR1cm4gIXRoaXMuX2NhbmNlbGVkRmxhZzsgfVxuICAgIHNldCByZXR1cm5WYWx1ZSh2YWx1ZSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICBhbGdvcml0aG1fMS5ldmVudF9zZXRUaGVDYW5jZWxlZEZsYWcodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcHJldmVudERlZmF1bHQoKSB7XG4gICAgICAgIGFsZ29yaXRobV8xLmV2ZW50X3NldFRoZUNhbmNlbGVkRmxhZyh0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGRlZmF1bHRQcmV2ZW50ZWQoKSB7IHJldHVybiB0aGlzLl9jYW5jZWxlZEZsYWc7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgY29tcG9zZWQoKSB7IHJldHVybiB0aGlzLl9jb21wb3NlZEZsYWc7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgaXNUcnVzdGVkKCkgeyByZXR1cm4gdGhpcy5faXNUcnVzdGVkOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHRpbWVTdGFtcCgpIHsgcmV0dXJuIHRoaXMuX3RpbWVTdGFtcDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGluaXRFdmVudCh0eXBlLCBidWJibGVzID0gZmFsc2UsIGNhbmNlbGFibGUgPSBmYWxzZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgdGhlIGNvbnRleHQgb2JqZWN04oCZcyBkaXNwYXRjaCBmbGFnIGlzIHNldCwgdGhlbiByZXR1cm4uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fZGlzcGF0Y2hGbGFnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSW5pdGlhbGl6ZSB0aGUgY29udGV4dCBvYmplY3Qgd2l0aCB0eXBlLCBidWJibGVzLCBhbmQgY2FuY2VsYWJsZS5cbiAgICAgICAgICovXG4gICAgICAgIGFsZ29yaXRobV8xLmV2ZW50X2luaXRpYWxpemUodGhpcywgdHlwZSwgYnViYmxlcywgY2FuY2VsYWJsZSk7XG4gICAgfVxufVxuZXhwb3J0cy5FdmVudEltcGwgPSBFdmVudEltcGw7XG5FdmVudEltcGwuTk9ORSA9IDA7XG5FdmVudEltcGwuQ0FQVFVSSU5HX1BIQVNFID0gMTtcbkV2ZW50SW1wbC5BVF9UQVJHRVQgPSAyO1xuRXZlbnRJbXBsLkJVQkJMSU5HX1BIQVNFID0gMztcbi8qKlxuICogRGVmaW5lIGNvbnN0YW50cyBvbiBwcm90b3R5cGUuXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChFdmVudEltcGwucHJvdG90eXBlLCBcIk5PTkVcIiwgMCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRXZlbnRJbXBsLnByb3RvdHlwZSwgXCJDQVBUVVJJTkdfUEhBU0VcIiwgMSk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRXZlbnRJbXBsLnByb3RvdHlwZSwgXCJBVF9UQVJHRVRcIiwgMik7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRXZlbnRJbXBsLnByb3RvdHlwZSwgXCJCVUJCTElOR19QSEFTRVwiLCAzKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUV2ZW50SW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuL2ludGVyZmFjZXNcIik7XG5jb25zdCBOb2RlSW1wbF8xID0gcmVxdWlyZShcIi4vTm9kZUltcGxcIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgZG9jdW1lbnQgZnJhZ21lbnQgaW4gdGhlIFhNTCB0cmVlLlxuICovXG5jbGFzcyBEb2N1bWVudEZyYWdtZW50SW1wbCBleHRlbmRzIE5vZGVJbXBsXzEuTm9kZUltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBEb2N1bWVudEZyYWdtZW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBob3N0IC0gc2hhZG93IHJvb3QncyBob3N0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihob3N0ID0gbnVsbCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgdGhpcy5faG9zdCA9IGhvc3Q7XG4gICAgfVxuICAgIC8vIE1JWElOOiBOb25FbGVtZW50UGFyZW50Tm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBOb25FbGVtZW50UGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IFBhcmVudE5vZGVcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGdldCBjaGlsZHJlbigpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IFBhcmVudE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IGZpcnN0RWxlbWVudENoaWxkKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgbGFzdEVsZW1lbnRDaGlsZCgpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IFBhcmVudE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IGNoaWxkRWxlbWVudENvdW50KCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBwcmVwZW5kKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGFwcGVuZCguLi5ub2RlcykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBxdWVyeVNlbGVjdG9yKHNlbGVjdG9ycykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBxdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ycykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgRG9jdW1lbnRGcmFnbWVudGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICAgICAqIEBwYXJhbSBob3N0IC0gc2hhZG93IHJvb3QncyBob3N0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgX2NyZWF0ZShkb2N1bWVudCwgaG9zdCA9IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBEb2N1bWVudEZyYWdtZW50SW1wbChob3N0KTtcbiAgICAgICAgbm9kZS5fbm9kZURvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn1cbmV4cG9ydHMuRG9jdW1lbnRGcmFnbWVudEltcGwgPSBEb2N1bWVudEZyYWdtZW50SW1wbDtcbi8qKlxuICogSW5pdGlhbGl6ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuICovXG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRG9jdW1lbnRGcmFnbWVudEltcGwucHJvdG90eXBlLCBcIl9ub2RlVHlwZVwiLCBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRGcmFnbWVudCk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Eb2N1bWVudEZyYWdtZW50SW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IF8xID0gcmVxdWlyZShcIi4vXCIpO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4vRE9NRXhjZXB0aW9uXCIpO1xuY29uc3QgTm9kZUltcGxfMSA9IHJlcXVpcmUoXCIuL05vZGVJbXBsXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIi4uL3V0aWxcIik7XG5jb25zdCB1dGlsXzIgPSByZXF1aXJlKFwiQG9vemNpdGFrL3V0aWxcIik7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IFVSTEFsZ29yaXRobV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay91cmwvbGliL1VSTEFsZ29yaXRobVwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbmNvbnN0IFdlYklETEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobS9XZWJJRExBbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBkb2N1bWVudCBub2RlLlxuICovXG5jbGFzcyBEb2N1bWVudEltcGwgZXh0ZW5kcyBOb2RlSW1wbF8xLk5vZGVJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgRG9jdW1lbnRgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgdGhpcy5fZW5jb2RpbmcgPSB7XG4gICAgICAgICAgICBuYW1lOiBcIlVURi04XCIsXG4gICAgICAgICAgICBsYWJlbHM6IFtcInVuaWNvZGUtMS0xLXV0Zi04XCIsIFwidXRmLThcIiwgXCJ1dGY4XCJdXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gICAgICAgIHRoaXMuX1VSTCA9IHtcbiAgICAgICAgICAgIHNjaGVtZTogXCJhYm91dFwiLFxuICAgICAgICAgICAgdXNlcm5hbWU6IFwiXCIsXG4gICAgICAgICAgICBwYXNzd29yZDogXCJcIixcbiAgICAgICAgICAgIGhvc3Q6IG51bGwsXG4gICAgICAgICAgICBwb3J0OiBudWxsLFxuICAgICAgICAgICAgcGF0aDogW1wiYmxhbmtcIl0sXG4gICAgICAgICAgICBxdWVyeTogbnVsbCxcbiAgICAgICAgICAgIGZyYWdtZW50OiBudWxsLFxuICAgICAgICAgICAgX2Nhbm5vdEJlQUJhc2VVUkxGbGFnOiB0cnVlLFxuICAgICAgICAgICAgX2Jsb2JVUkxFbnRyeTogbnVsbFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9vcmlnaW4gPSBudWxsO1xuICAgICAgICB0aGlzLl90eXBlID0gXCJ4bWxcIjtcbiAgICAgICAgdGhpcy5fbW9kZSA9IFwibm8tcXVpcmtzXCI7XG4gICAgICAgIHRoaXMuX2RvY3VtZW50RWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2hhc05hbWVzcGFjZXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbm9kZURvY3VtZW50T3ZlcndyaXRlID0gbnVsbDtcbiAgICB9XG4gICAgZ2V0IF9ub2RlRG9jdW1lbnQoKSB7IHJldHVybiB0aGlzLl9ub2RlRG9jdW1lbnRPdmVyd3JpdGUgfHwgdGhpczsgfVxuICAgIHNldCBfbm9kZURvY3VtZW50KHZhbCkgeyB0aGlzLl9ub2RlRG9jdW1lbnRPdmVyd3JpdGUgPSB2YWw7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgaW1wbGVtZW50YXRpb24oKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gdGhlIERPTUltcGxlbWVudGF0aW9uXG4gICAgICAgICAqIG9iamVjdCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZG9jdW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdGhpcy5faW1wbGVtZW50YXRpb24gfHwgKHRoaXMuX2ltcGxlbWVudGF0aW9uID0gYWxnb3JpdGhtXzEuY3JlYXRlX2RvbUltcGxlbWVudGF0aW9uKHRoaXMpKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IFVSTCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBVUkwgYXR0cmlidXRl4oCZcyBnZXR0ZXIgYW5kIGRvY3VtZW50VVJJIGF0dHJpYnV0ZeKAmXMgZ2V0dGVyIG11c3QgcmV0dXJuXG4gICAgICAgICAqIHRoZSBVUkwsIHNlcmlhbGl6ZWQuXG4gICAgICAgICAqIFNlZTogaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LXVybC1zZXJpYWxpemVyXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gVVJMQWxnb3JpdGhtXzEudXJsU2VyaWFsaXplcih0aGlzLl9VUkwpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgZG9jdW1lbnRVUkkoKSB7IHJldHVybiB0aGlzLlVSTDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBvcmlnaW4oKSB7XG4gICAgICAgIHJldHVybiBcIm51bGxcIjtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGNvbXBhdE1vZGUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29tcGF0TW9kZSBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiBcIkJhY2tDb21wYXRcIiBpZiBjb250ZXh0XG4gICAgICAgICAqIG9iamVjdOKAmXMgbW9kZSBpcyBcInF1aXJrc1wiLCBhbmQgXCJDU1MxQ29tcGF0XCIgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGUgPT09IFwicXVpcmtzXCIgPyBcIkJhY2tDb21wYXRcIiA6IFwiQ1NTMUNvbXBhdFwiO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgY2hhcmFjdGVyU2V0KCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGNoYXJhY3RlclNldCBhdHRyaWJ1dGXigJlzIGdldHRlciwgY2hhcnNldCBhdHRyaWJ1dGXigJlzIGdldHRlciwgYW5kXG4gICAgICAgICAqIGlucHV0RW5jb2RpbmcgYXR0cmlidXRl4oCZcyBnZXR0ZXIsIG11c3QgcmV0dXJuIGNvbnRleHQgb2JqZWN04oCZc1xuICAgICAgICAgKiBlbmNvZGluZ+KAmXMgbmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9lbmNvZGluZy5uYW1lO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgY2hhcnNldCgpIHsgcmV0dXJuIHRoaXMuX2VuY29kaW5nLm5hbWU7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgaW5wdXRFbmNvZGluZygpIHsgcmV0dXJuIHRoaXMuX2VuY29kaW5nLm5hbWU7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgY29udGVudFR5cGUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29udGVudFR5cGUgYXR0cmlidXRl4oCZcyBnZXR0ZXIgbXVzdCByZXR1cm4gdGhlIGNvbnRlbnQgdHlwZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50VHlwZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGRvY3R5cGUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZG9jdHlwZSBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0aGUgY2hpbGQgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAqIHRoYXQgaXMgYSBkb2N0eXBlLCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShjaGlsZCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgZG9jdW1lbnRFbGVtZW50KCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGRvY3VtZW50RWxlbWVudCBhdHRyaWJ1dGXigJlzIGdldHRlciBtdXN0IHJldHVybiB0aGUgZG9jdW1lbnQgZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9kb2N1bWVudEVsZW1lbnQ7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnZXRFbGVtZW50c0J5VGFnTmFtZShxdWFsaWZpZWROYW1lKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm5cbiAgICAgICAgICogdGhlIGxpc3Qgb2YgZWxlbWVudHMgd2l0aCBxdWFsaWZpZWQgbmFtZSBxdWFsaWZpZWROYW1lIGZvciB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZV9saXN0T2ZFbGVtZW50c1dpdGhRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWUsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKG5hbWVzcGFjZSwgbG9jYWxOYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhuYW1lc3BhY2UsIGxvY2FsTmFtZSkgbWV0aG9kLCB3aGVuIGludm9rZWQsXG4gICAgICAgICAqIG11c3QgcmV0dXJuIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggbmFtZXNwYWNlIG5hbWVzcGFjZSBhbmQgbG9jYWwgbmFtZVxuICAgICAgICAgKiBsb2NhbE5hbWUgZm9yIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ub2RlX2xpc3RPZkVsZW1lbnRzV2l0aE5hbWVzcGFjZShuYW1lc3BhY2UsIGxvY2FsTmFtZSwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lcykge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lcykgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuXG4gICAgICAgICAqIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggY2xhc3MgbmFtZXMgY2xhc3NOYW1lcyBmb3IgdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLm5vZGVfbGlzdE9mRWxlbWVudHNXaXRoQ2xhc3NOYW1lcyhjbGFzc05hbWVzLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRWxlbWVudChsb2NhbE5hbWUsIG9wdGlvbnMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGxvY2FsTmFtZSBkb2VzIG5vdCBtYXRjaCB0aGUgTmFtZSBwcm9kdWN0aW9uLCB0aGVuIHRocm93IGFuXG4gICAgICAgICAqIFwiSW52YWxpZENoYXJhY3RlckVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAyLiBJZiB0aGUgY29udGV4dCBvYmplY3QgaXMgYW4gSFRNTCBkb2N1bWVudCwgdGhlbiBzZXQgbG9jYWxOYW1lIHRvXG4gICAgICAgICAqIGxvY2FsTmFtZSBpbiBBU0NJSSBsb3dlcmNhc2UuXG4gICAgICAgICAqIDMuIExldCBpcyBiZSBudWxsLlxuICAgICAgICAgKiA0LiBJZiBvcHRpb25zIGlzIGEgZGljdGlvbmFyeSBhbmQgb3B0aW9uc+KAmXMgaXMgaXMgcHJlc2VudCwgdGhlbiBzZXQgaXNcbiAgICAgICAgICogdG8gaXQuXG4gICAgICAgICAqIDUuIExldCBuYW1lc3BhY2UgYmUgdGhlIEhUTUwgbmFtZXNwYWNlLCBpZiB0aGUgY29udGV4dCBvYmplY3QgaXMgYW5cbiAgICAgICAgICogSFRNTCBkb2N1bWVudCBvciBjb250ZXh0IG9iamVjdOKAmXMgY29udGVudCB0eXBlIGlzXG4gICAgICAgICAqIFwiYXBwbGljYXRpb24veGh0bWwreG1sXCIsIGFuZCBudWxsIG90aGVyd2lzZS5cbiAgICAgICAgICogNi4gUmV0dXJuIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZWxlbWVudCBnaXZlbiB0aGUgY29udGV4dCBvYmplY3QsXG4gICAgICAgICAqIGxvY2FsTmFtZSwgbmFtZXNwYWNlLCBudWxsLCBpcywgYW5kIHdpdGggdGhlIHN5bmNocm9ub3VzIGN1c3RvbSBlbGVtZW50c1xuICAgICAgICAgKiBmbGFnIHNldC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICghYWxnb3JpdGhtXzEueG1sX2lzTmFtZShsb2NhbE5hbWUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcigpO1xuICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gXCJodG1sXCIpXG4gICAgICAgICAgICBsb2NhbE5hbWUgPSBsb2NhbE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgbGV0IGlzID0gbnVsbDtcbiAgICAgICAgaWYgKG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHV0aWxfMi5pc1N0cmluZyhvcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIGlzID0gb3B0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlzID0gb3B0aW9ucy5pcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2UgPSAodGhpcy5fdHlwZSA9PT0gXCJodG1sXCIgfHwgdGhpcy5fY29udGVudFR5cGUgPT09IFwiYXBwbGljYXRpb24veGh0bWwreG1sXCIpID9cbiAgICAgICAgICAgIGluZnJhXzEubmFtZXNwYWNlLkhUTUwgOiBudWxsO1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZWxlbWVudF9jcmVhdGVBbkVsZW1lbnQodGhpcywgbG9jYWxOYW1lLCBuYW1lc3BhY2UsIG51bGwsIGlzLCB0cnVlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZSwgcXVhbGlmaWVkTmFtZSwgb3B0aW9ucykge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2UsIHF1YWxpZmllZE5hbWUsIG9wdGlvbnMpIG1ldGhvZCwgd2hlblxuICAgICAgICAgKiBpbnZva2VkLCBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIGludGVybmFsIGNyZWF0ZUVsZW1lbnROU1xuICAgICAgICAgKiBzdGVwcywgZ2l2ZW4gY29udGV4dCBvYmplY3QsIG5hbWVzcGFjZSwgcXVhbGlmaWVkTmFtZSwgYW5kIG9wdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZG9jdW1lbnRfaW50ZXJuYWxDcmVhdGVFbGVtZW50TlModGhpcywgbmFtZXNwYWNlLCBxdWFsaWZpZWROYW1lLCBvcHRpb25zKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBjcmVhdGVEb2N1bWVudEZyYWdtZW50KCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuIGEgbmV3XG4gICAgICAgICAqIERvY3VtZW50RnJhZ21lbnQgbm9kZSB3aXRoIGl0cyBub2RlIGRvY3VtZW50IHNldCB0byB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuY3JlYXRlX2RvY3VtZW50RnJhZ21lbnQodGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNyZWF0ZVRleHROb2RlKGRhdGEpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBjcmVhdGVUZXh0Tm9kZShkYXRhKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gYSBuZXcgVGV4dFxuICAgICAgICAgKiBub2RlIHdpdGggaXRzIGRhdGEgc2V0IHRvIGRhdGEgYW5kIG5vZGUgZG9jdW1lbnQgc2V0IHRvIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5jcmVhdGVfdGV4dCh0aGlzLCBkYXRhKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlQ0RBVEFTZWN0aW9uKGRhdGEpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGNvbnRleHQgb2JqZWN0IGlzIGFuIEhUTUwgZG9jdW1lbnQsIHRoZW4gdGhyb3cgYVxuICAgICAgICAgKiBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAyLiBJZiBkYXRhIGNvbnRhaW5zIHRoZSBzdHJpbmcgXCJdXT5cIiwgdGhlbiB0aHJvdyBhblxuICAgICAgICAgKiBcIkludmFsaWRDaGFyYWN0ZXJFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gUmV0dXJuIGEgbmV3IENEQVRBU2VjdGlvbiBub2RlIHdpdGggaXRzIGRhdGEgc2V0IHRvIGRhdGEgYW5kIG5vZGVcbiAgICAgICAgICogZG9jdW1lbnQgc2V0IHRvIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLl90eXBlID09PSBcImh0bWxcIilcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RTdXBwb3J0ZWRFcnJvcigpO1xuICAgICAgICBpZiAoZGF0YS5pbmRleE9mKCddXT4nKSAhPT0gLTEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKCk7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5jcmVhdGVfY2RhdGFTZWN0aW9uKHRoaXMsIGRhdGEpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjcmVhdGVDb21tZW50KGRhdGEpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBjcmVhdGVDb21tZW50KGRhdGEpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiBhIG5ldyBDb21tZW50XG4gICAgICAgICAqIG5vZGUgd2l0aCBpdHMgZGF0YSBzZXQgdG8gZGF0YSBhbmQgbm9kZSBkb2N1bWVudCBzZXQgdG8gdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLmNyZWF0ZV9jb21tZW50KHRoaXMsIGRhdGEpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCBkYXRhKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiB0YXJnZXQgZG9lcyBub3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiwgdGhlbiB0aHJvdyBhblxuICAgICAgICAgKiBcIkludmFsaWRDaGFyYWN0ZXJFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMi4gSWYgZGF0YSBjb250YWlucyB0aGUgc3RyaW5nIFwiPz5cIiwgdGhlbiB0aHJvdyBhblxuICAgICAgICAgKiBcIkludmFsaWRDaGFyYWN0ZXJFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gUmV0dXJuIGEgbmV3IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBub2RlLCB3aXRoIHRhcmdldCBzZXQgdG8gdGFyZ2V0LFxuICAgICAgICAgKiBkYXRhIHNldCB0byBkYXRhLCBhbmQgbm9kZSBkb2N1bWVudCBzZXQgdG8gdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFhbGdvcml0aG1fMS54bWxfaXNOYW1lKHRhcmdldCkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKCk7XG4gICAgICAgIGlmIChkYXRhLmluZGV4T2YoXCI/PlwiKSAhPT0gLTEpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKCk7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5jcmVhdGVfcHJvY2Vzc2luZ0luc3RydWN0aW9uKHRoaXMsIHRhcmdldCwgZGF0YSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGltcG9ydE5vZGUobm9kZSwgZGVlcCA9IGZhbHNlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBub2RlIGlzIGEgZG9jdW1lbnQgb3Igc2hhZG93IHJvb3QsIHRoZW4gdGhyb3cgYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50Tm9kZShub2RlKSB8fCB1dGlsXzEuR3VhcmQuaXNTaGFkb3dSb290KG5vZGUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLk5vdFN1cHBvcnRlZEVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBSZXR1cm4gYSBjbG9uZSBvZiBub2RlLCB3aXRoIGNvbnRleHQgb2JqZWN0IGFuZCB0aGUgY2xvbmUgY2hpbGRyZW4gZmxhZyBzZXQgaWYgZGVlcCBpcyB0cnVlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLm5vZGVfY2xvbmUobm9kZSwgdGhpcywgZGVlcCk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGFkb3B0Tm9kZShub2RlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBub2RlIGlzIGEgZG9jdW1lbnQsIHRoZW4gdGhyb3cgYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50Tm9kZShub2RlKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RTdXBwb3J0ZWRFcnJvcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSWYgbm9kZSBpcyBhIHNoYWRvdyByb290LCB0aGVuIHRocm93IGEgXCJIaWVyYXJjaHlSZXF1ZXN0RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzU2hhZG93Um9vdChub2RlKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5IaWVyYXJjaHlSZXF1ZXN0RXJyb3IoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIEFkb3B0IG5vZGUgaW50byB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqIDQuIFJldHVybiBub2RlLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEuZG9jdW1lbnRfYWRvcHQobm9kZSwgdGhpcyk7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjcmVhdGVBdHRyaWJ1dGUobG9jYWxOYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBsb2NhbE5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiBpbiBYTUwsIHRoZW4gdGhyb3dcbiAgICAgICAgICogYW4gXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIElmIHRoZSBjb250ZXh0IG9iamVjdCBpcyBhbiBIVE1MIGRvY3VtZW50LCB0aGVuIHNldCBsb2NhbE5hbWUgdG9cbiAgICAgICAgICogbG9jYWxOYW1lIGluIEFTQ0lJIGxvd2VyY2FzZS5cbiAgICAgICAgICogMy4gUmV0dXJuIGEgbmV3IGF0dHJpYnV0ZSB3aG9zZSBsb2NhbCBuYW1lIGlzIGxvY2FsTmFtZSBhbmQgbm9kZSBkb2N1bWVudFxuICAgICAgICAgKiBpcyBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICghYWxnb3JpdGhtXzEueG1sX2lzTmFtZShsb2NhbE5hbWUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcigpO1xuICAgICAgICBpZiAodGhpcy5fdHlwZSA9PT0gXCJodG1sXCIpIHtcbiAgICAgICAgICAgIGxvY2FsTmFtZSA9IGxvY2FsTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGF0dHIgPSBhbGdvcml0aG1fMS5jcmVhdGVfYXR0cih0aGlzLCBsb2NhbE5hbWUpO1xuICAgICAgICByZXR1cm4gYXR0cjtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlQXR0cmlidXRlTlMobmFtZXNwYWNlLCBxdWFsaWZpZWROYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgbmFtZXNwYWNlLCBwcmVmaXgsIGFuZCBsb2NhbE5hbWUgYmUgdGhlIHJlc3VsdCBvZiBwYXNzaW5nXG4gICAgICAgICAqIG5hbWVzcGFjZSBhbmQgcXVhbGlmaWVkTmFtZSB0byB2YWxpZGF0ZSBhbmQgZXh0cmFjdC5cbiAgICAgICAgICogMi4gUmV0dXJuIGEgbmV3IGF0dHJpYnV0ZSB3aG9zZSBuYW1lc3BhY2UgaXMgbmFtZXNwYWNlLCBuYW1lc3BhY2UgcHJlZml4XG4gICAgICAgICAqIGlzIHByZWZpeCwgbG9jYWwgbmFtZSBpcyBsb2NhbE5hbWUsIGFuZCBub2RlIGRvY3VtZW50IGlzIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgW25zLCBwcmVmaXgsIGxvY2FsTmFtZV0gPSBhbGdvcml0aG1fMS5uYW1lc3BhY2VfdmFsaWRhdGVBbmRFeHRyYWN0KG5hbWVzcGFjZSwgcXVhbGlmaWVkTmFtZSk7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBhbGdvcml0aG1fMS5jcmVhdGVfYXR0cih0aGlzLCBsb2NhbE5hbWUpO1xuICAgICAgICBhdHRyLl9uYW1lc3BhY2UgPSBucztcbiAgICAgICAgYXR0ci5fbmFtZXNwYWNlUHJlZml4ID0gcHJlZml4O1xuICAgICAgICByZXR1cm4gYXR0cjtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRXZlbnQoZXZlbnRJbnRlcmZhY2UpIHtcbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLmV2ZW50X2NyZWF0ZUxlZ2FjeUV2ZW50KGV2ZW50SW50ZXJmYWNlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlUmFuZ2UoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY3JlYXRlUmFuZ2UoKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gYSBuZXcgbGl2ZSByYW5nZVxuICAgICAgICAgKiB3aXRoIChjb250ZXh0IG9iamVjdCwgMCkgYXMgaXRzIHN0YXJ0IGFuZCBlbmQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCByYW5nZSA9IGFsZ29yaXRobV8xLmNyZWF0ZV9yYW5nZSgpO1xuICAgICAgICByYW5nZS5fc3RhcnQgPSBbdGhpcywgMF07XG4gICAgICAgIHJhbmdlLl9lbmQgPSBbdGhpcywgMF07XG4gICAgICAgIHJldHVybiByYW5nZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlTm9kZUl0ZXJhdG9yKHJvb3QsIHdoYXRUb1Nob3cgPSBpbnRlcmZhY2VzXzEuV2hhdFRvU2hvdy5BbGwsIGZpbHRlciA9IG51bGwpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBpdGVyYXRvciBiZSBhIG5ldyBOb2RlSXRlcmF0b3Igb2JqZWN0LlxuICAgICAgICAgKiAyLiBTZXQgaXRlcmF0b3LigJlzIHJvb3QgYW5kIGl0ZXJhdG9y4oCZcyByZWZlcmVuY2UgdG8gcm9vdC5cbiAgICAgICAgICogMy4gU2V0IGl0ZXJhdG9y4oCZcyBwb2ludGVyIGJlZm9yZSByZWZlcmVuY2UgdG8gdHJ1ZS5cbiAgICAgICAgICogNC4gU2V0IGl0ZXJhdG9y4oCZcyB3aGF0VG9TaG93IHRvIHdoYXRUb1Nob3cuXG4gICAgICAgICAqIDUuIFNldCBpdGVyYXRvcuKAmXMgZmlsdGVyIHRvIGZpbHRlci5cbiAgICAgICAgICogNi4gUmV0dXJuIGl0ZXJhdG9yLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBhbGdvcml0aG1fMS5jcmVhdGVfbm9kZUl0ZXJhdG9yKHJvb3QsIHJvb3QsIHRydWUpO1xuICAgICAgICBpdGVyYXRvci5fd2hhdFRvU2hvdyA9IHdoYXRUb1Nob3c7XG4gICAgICAgIGl0ZXJhdG9yLl9pdGVyYXRvckNvbGxlY3Rpb24gPSBhbGdvcml0aG1fMS5jcmVhdGVfbm9kZUxpc3Qocm9vdCk7XG4gICAgICAgIGlmICh1dGlsXzIuaXNGdW5jdGlvbihmaWx0ZXIpKSB7XG4gICAgICAgICAgICBpdGVyYXRvci5fZmlsdGVyID0gYWxnb3JpdGhtXzEuY3JlYXRlX25vZGVGaWx0ZXIoKTtcbiAgICAgICAgICAgIGl0ZXJhdG9yLl9maWx0ZXIuYWNjZXB0Tm9kZSA9IGZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGl0ZXJhdG9yLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjcmVhdGVUcmVlV2Fsa2VyKHJvb3QsIHdoYXRUb1Nob3cgPSBpbnRlcmZhY2VzXzEuV2hhdFRvU2hvdy5BbGwsIGZpbHRlciA9IG51bGwpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCB3YWxrZXIgYmUgYSBuZXcgVHJlZVdhbGtlciBvYmplY3QuXG4gICAgICAgICAqIDIuIFNldCB3YWxrZXLigJlzIHJvb3QgYW5kIHdhbGtlcuKAmXMgY3VycmVudCB0byByb290LlxuICAgICAgICAgKiAzLiBTZXQgd2Fsa2Vy4oCZcyB3aGF0VG9TaG93IHRvIHdoYXRUb1Nob3cuXG4gICAgICAgICAqIDQuIFNldCB3YWxrZXLigJlzIGZpbHRlciB0byBmaWx0ZXIuXG4gICAgICAgICAqIDUuIFJldHVybiB3YWxrZXIuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB3YWxrZXIgPSBhbGdvcml0aG1fMS5jcmVhdGVfdHJlZVdhbGtlcihyb290LCByb290KTtcbiAgICAgICAgd2Fsa2VyLl93aGF0VG9TaG93ID0gd2hhdFRvU2hvdztcbiAgICAgICAgaWYgKHV0aWxfMi5pc0Z1bmN0aW9uKGZpbHRlcikpIHtcbiAgICAgICAgICAgIHdhbGtlci5fZmlsdGVyID0gYWxnb3JpdGhtXzEuY3JlYXRlX25vZGVGaWx0ZXIoKTtcbiAgICAgICAgICAgIHdhbGtlci5fZmlsdGVyLmFjY2VwdE5vZGUgPSBmaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB3YWxrZXIuX2ZpbHRlciA9IGZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2Fsa2VyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwYXJlbnQgZXZlbnQgdGFyZ2V0IGZvciB0aGUgZ2l2ZW4gZXZlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBhbiBldmVudFxuICAgICAqL1xuICAgIF9nZXRUaGVQYXJlbnQoZXZlbnQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRPRE86IEltcGxlbWVudCByZWFsbXNcbiAgICAgICAgICogQSBkb2N1bWVudOKAmXMgZ2V0IHRoZSBwYXJlbnQgYWxnb3JpdGhtLCBnaXZlbiBhbiBldmVudCwgcmV0dXJucyBudWxsIGlmXG4gICAgICAgICAqIGV2ZW504oCZcyB0eXBlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBcImxvYWRcIiBvciBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGFcbiAgICAgICAgICogYnJvd3NpbmcgY29udGV4dCwgYW5kIHRoZSBkb2N1bWVudOKAmXMgcmVsZXZhbnQgZ2xvYmFsIG9iamVjdCBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZXZlbnQuX3R5cGUgPT09IFwibG9hZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBfMS5kb20ud2luZG93O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIE1JWElOOiBOb25FbGVtZW50UGFyZW50Tm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBOb25FbGVtZW50UGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IERvY3VtZW50T3JTaGFkb3dSb290XG4gICAgLy8gTm8gZWxlbWVudHNcbiAgICAvLyBNSVhJTjogUGFyZW50Tm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IGNoaWxkcmVuKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgZmlyc3RFbGVtZW50Q2hpbGQoKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGdldCBsYXN0RWxlbWVudENoaWxkKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgY2hpbGRFbGVtZW50Q291bnQoKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHByZXBlbmQoLi4ubm9kZXMpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IFBhcmVudE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgYXBwZW5kKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3JzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3JzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbn1cbmV4cG9ydHMuRG9jdW1lbnRJbXBsID0gRG9jdW1lbnRJbXBsO1xuLyoqXG4gKiBJbml0aWFsaXplIHByb3RvdHlwZSBwcm9wZXJ0aWVzXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChEb2N1bWVudEltcGwucHJvdG90eXBlLCBcIl9ub2RlVHlwZVwiLCBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RG9jdW1lbnRJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IE5vZGVJbXBsXzEgPSByZXF1aXJlKFwiLi9Ob2RlSW1wbFwiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4vRE9NRXhjZXB0aW9uXCIpO1xuY29uc3QgaW5mcmFfMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvaW5mcmFcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVsZW1lbnQgbm9kZS5cbiAqL1xuY2xhc3MgRWxlbWVudEltcGwgZXh0ZW5kcyBOb2RlSW1wbF8xLk5vZGVJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgRWxlbWVudGAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2NoaWxkcmVuID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9uYW1lc3BhY2UgPSBudWxsO1xuICAgICAgICB0aGlzLl9uYW1lc3BhY2VQcmVmaXggPSBudWxsO1xuICAgICAgICB0aGlzLl9sb2NhbE5hbWUgPSBcIlwiO1xuICAgICAgICB0aGlzLl9jdXN0b21FbGVtZW50U3RhdGUgPSBcInVuZGVmaW5lZFwiO1xuICAgICAgICB0aGlzLl9jdXN0b21FbGVtZW50RGVmaW5pdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuX2lzID0gbnVsbDtcbiAgICAgICAgdGhpcy5fc2hhZG93Um9vdCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2F0dHJpYnV0ZUxpc3QgPSBhbGdvcml0aG1fMS5jcmVhdGVfbmFtZWROb2RlTWFwKHRoaXMpO1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2VTdGVwcyA9IFtdO1xuICAgICAgICB0aGlzLl9uYW1lID0gJyc7XG4gICAgICAgIHRoaXMuX2Fzc2lnbmVkU2xvdCA9IG51bGw7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBuYW1lc3BhY2VVUkkoKSB7IHJldHVybiB0aGlzLl9uYW1lc3BhY2U7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgcHJlZml4KCkgeyByZXR1cm4gdGhpcy5fbmFtZXNwYWNlUHJlZml4OyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGxvY2FsTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2xvY2FsTmFtZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCB0YWdOYW1lKCkgeyByZXR1cm4gdGhpcy5faHRtbFVwcGVyY2FzZWRRdWFsaWZpZWROYW1lOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGlkKCkge1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZVZhbHVlKHRoaXMsIFwiaWRcIik7XG4gICAgfVxuICAgIHNldCBpZCh2YWx1ZSkge1xuICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWUodGhpcywgXCJpZFwiLCB2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X2dldEFuQXR0cmlidXRlVmFsdWUodGhpcywgXCJjbGFzc1wiKTtcbiAgICB9XG4gICAgc2V0IGNsYXNzTmFtZSh2YWx1ZSkge1xuICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWUodGhpcywgXCJjbGFzc1wiLCB2YWx1ZSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjbGFzc0xpc3QoKSB7XG4gICAgICAgIGxldCBhdHRyID0gYWxnb3JpdGhtXzEuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZShcImNsYXNzXCIsIHRoaXMpO1xuICAgICAgICBpZiAoYXR0ciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgYXR0ciA9IGFsZ29yaXRobV8xLmNyZWF0ZV9hdHRyKHRoaXMuX25vZGVEb2N1bWVudCwgXCJjbGFzc1wiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuY3JlYXRlX2RvbVRva2VuTGlzdCh0aGlzLCBhdHRyKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHNsb3QoKSB7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X2dldEFuQXR0cmlidXRlVmFsdWUodGhpcywgXCJzbG90XCIpO1xuICAgIH1cbiAgICBzZXQgc2xvdCh2YWx1ZSkge1xuICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWUodGhpcywgXCJzbG90XCIsIHZhbHVlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaGFzQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoICE9PSAwO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgYXR0cmlidXRlcygpIHsgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZUxpc3Q7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXRBdHRyaWJ1dGVOYW1lcygpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnZXRBdHRyaWJ1dGVOYW1lcygpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0aGUgcXVhbGlmaWVkXG4gICAgICAgICAqIG5hbWVzIG9mIHRoZSBhdHRyaWJ1dGVzIGluIGNvbnRleHQgb2JqZWN04oCZcyBhdHRyaWJ1dGUgbGlzdCwgaW4gb3JkZXIsXG4gICAgICAgICAqIGFuZCBhIG5ldyBsaXN0IG90aGVyd2lzZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5hbWVzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgYXR0ciBvZiB0aGlzLl9hdHRyaWJ1dGVMaXN0KSB7XG4gICAgICAgICAgICBuYW1lcy5wdXNoKGF0dHIuX3F1YWxpZmllZE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYW1lcztcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0QXR0cmlidXRlKHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBhdHRyIGJlIHRoZSByZXN1bHQgb2YgZ2V0dGluZyBhbiBhdHRyaWJ1dGUgZ2l2ZW4gcXVhbGlmaWVkTmFtZVxuICAgICAgICAgKiBhbmQgdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKiAyLiBJZiBhdHRyIGlzIG51bGwsIHJldHVybiBudWxsLlxuICAgICAgICAgKiAzLiBSZXR1cm4gYXR0cuKAmXMgdmFsdWUuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBhdHRyID0gYWxnb3JpdGhtXzEuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZUJ5TmFtZShxdWFsaWZpZWROYW1lLCB0aGlzKTtcbiAgICAgICAgcmV0dXJuIChhdHRyID8gYXR0ci5fdmFsdWUgOiBudWxsKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBhdHRyIGJlIHRoZSByZXN1bHQgb2YgZ2V0dGluZyBhbiBhdHRyaWJ1dGUgZ2l2ZW4gbmFtZXNwYWNlLFxuICAgICAgICAgKiBsb2NhbE5hbWUsIGFuZCB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqIDIuIElmIGF0dHIgaXMgbnVsbCwgcmV0dXJuIG51bGwuXG4gICAgICAgICAqIDMuIFJldHVybiBhdHRy4oCZcyB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGF0dHIgPSBhbGdvcml0aG1fMS5lbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlLCBsb2NhbE5hbWUsIHRoaXMpO1xuICAgICAgICByZXR1cm4gKGF0dHIgPyBhdHRyLl92YWx1ZSA6IG51bGwpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzZXRBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSwgdmFsdWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHF1YWxpZmllZE5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiBpbiBYTUwsIHRoZW5cbiAgICAgICAgICogdGhyb3cgYW4gXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIWFsZ29yaXRobV8xLnhtbF9pc05hbWUocXVhbGlmaWVkTmFtZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiB0aGUgY29udGV4dCBvYmplY3QgaXMgaW4gdGhlIEhUTUwgbmFtZXNwYWNlIGFuZCBpdHMgbm9kZSBkb2N1bWVudFxuICAgICAgICAgKiBpcyBhbiBIVE1MIGRvY3VtZW50LCB0aGVuIHNldCBxdWFsaWZpZWROYW1lIHRvIHF1YWxpZmllZE5hbWUgaW4gQVNDSUlcbiAgICAgICAgICogbG93ZXJjYXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX25hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCAmJiB0aGlzLl9ub2RlRG9jdW1lbnQuX3R5cGUgPT09IFwiaHRtbFwiKSB7XG4gICAgICAgICAgICBxdWFsaWZpZWROYW1lID0gcXVhbGlmaWVkTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBMZXQgYXR0cmlidXRlIGJlIHRoZSBmaXJzdCBhdHRyaWJ1dGUgaW4gY29udGV4dCBvYmplY3TigJlzIGF0dHJpYnV0ZVxuICAgICAgICAgKiBsaXN0IHdob3NlIHF1YWxpZmllZCBuYW1lIGlzIHF1YWxpZmllZE5hbWUsIGFuZCBudWxsIG90aGVyd2lzZS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBhdHRyaWJ1dGUgPSBudWxsO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHIgPSB0aGlzLl9hdHRyaWJ1dGVMaXN0W2ldO1xuICAgICAgICAgICAgaWYgKGF0dHIuX3F1YWxpZmllZE5hbWUgPT09IHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPSBhdHRyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBJZiBhdHRyaWJ1dGUgaXMgbnVsbCwgY3JlYXRlIGFuIGF0dHJpYnV0ZSB3aG9zZSBsb2NhbCBuYW1lIGlzXG4gICAgICAgICAqIHF1YWxpZmllZE5hbWUsIHZhbHVlIGlzIHZhbHVlLCBhbmQgbm9kZSBkb2N1bWVudCBpcyBjb250ZXh0IG9iamVjdOKAmXNcbiAgICAgICAgICogbm9kZSBkb2N1bWVudCwgdGhlbiBhcHBlbmQgdGhpcyBhdHRyaWJ1dGUgdG8gY29udGV4dCBvYmplY3QsIGFuZFxuICAgICAgICAgKiB0aGVuIHJldHVybi5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChhdHRyaWJ1dGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZSA9IGFsZ29yaXRobV8xLmNyZWF0ZV9hdHRyKHRoaXMuX25vZGVEb2N1bWVudCwgcXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICBhdHRyaWJ1dGUuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X2FwcGVuZChhdHRyaWJ1dGUsIHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA1LiBDaGFuZ2UgYXR0cmlidXRlIGZyb20gY29udGV4dCBvYmplY3QgdG8gdmFsdWUuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X2NoYW5nZShhdHRyaWJ1dGUsIHRoaXMsIHZhbHVlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBxdWFsaWZpZWROYW1lLCB2YWx1ZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IG5hbWVzcGFjZSwgcHJlZml4LCBhbmQgbG9jYWxOYW1lIGJlIHRoZSByZXN1bHQgb2YgcGFzc2luZ1xuICAgICAgICAgKiBuYW1lc3BhY2UgYW5kIHF1YWxpZmllZE5hbWUgdG8gdmFsaWRhdGUgYW5kIGV4dHJhY3QuXG4gICAgICAgICAqIDIuIFNldCBhbiBhdHRyaWJ1dGUgdmFsdWUgZm9yIHRoZSBjb250ZXh0IG9iamVjdCB1c2luZyBsb2NhbE5hbWUsIHZhbHVlLFxuICAgICAgICAgKiBhbmQgYWxzbyBwcmVmaXggYW5kIG5hbWVzcGFjZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IFtucywgcHJlZml4LCBsb2NhbE5hbWVdID0gYWxnb3JpdGhtXzEubmFtZXNwYWNlX3ZhbGlkYXRlQW5kRXh0cmFjdChuYW1lc3BhY2UsIHF1YWxpZmllZE5hbWUpO1xuICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X3NldEFuQXR0cmlidXRlVmFsdWUodGhpcywgbG9jYWxOYW1lLCB2YWx1ZSwgcHJlZml4LCBucyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHJlbW92ZUF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcmVtb3ZlQXR0cmlidXRlKHF1YWxpZmllZE5hbWUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJlbW92ZSBhblxuICAgICAgICAgKiBhdHRyaWJ1dGUgZ2l2ZW4gcXVhbGlmaWVkTmFtZSBhbmQgdGhlIGNvbnRleHQgb2JqZWN0LCBhbmQgdGhlbiByZXR1cm5cbiAgICAgICAgICogdW5kZWZpbmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEuZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZShxdWFsaWZpZWROYW1lLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcmVtb3ZlQXR0cmlidXRlTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSByZW1vdmVBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIGxvY2FsTmFtZSkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3RcbiAgICAgICAgICogcmVtb3ZlIGFuIGF0dHJpYnV0ZSBnaXZlbiBuYW1lc3BhY2UsIGxvY2FsTmFtZSwgYW5kIGNvbnRleHQgb2JqZWN0LCBhbmRcbiAgICAgICAgICogdGhlbiByZXR1cm4gdW5kZWZpbmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEuZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZXNwYWNlQW5kTG9jYWxOYW1lKG5hbWVzcGFjZSwgbG9jYWxOYW1lLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaGFzQXR0cmlidXRlKHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHRoZSBjb250ZXh0IG9iamVjdCBpcyBpbiB0aGUgSFRNTCBuYW1lc3BhY2UgYW5kIGl0cyBub2RlIGRvY3VtZW50XG4gICAgICAgICAqIGlzIGFuIEhUTUwgZG9jdW1lbnQsIHRoZW4gc2V0IHF1YWxpZmllZE5hbWUgdG8gcXVhbGlmaWVkTmFtZSBpbiBBU0NJSVxuICAgICAgICAgKiBsb3dlcmNhc2UuXG4gICAgICAgICAqIDIuIFJldHVybiB0cnVlIGlmIHRoZSBjb250ZXh0IG9iamVjdCBoYXMgYW4gYXR0cmlidXRlIHdob3NlIHF1YWxpZmllZFxuICAgICAgICAgKiBuYW1lIGlzIHF1YWxpZmllZE5hbWUsIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fbmFtZXNwYWNlID09PSBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MICYmIHRoaXMuX25vZGVEb2N1bWVudC5fdHlwZSA9PT0gXCJodG1sXCIpIHtcbiAgICAgICAgICAgIHF1YWxpZmllZE5hbWUgPSBxdWFsaWZpZWROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdHRyaWJ1dGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyID0gdGhpcy5fYXR0cmlidXRlTGlzdFtpXTtcbiAgICAgICAgICAgIGlmIChhdHRyLl9xdWFsaWZpZWROYW1lID09PSBxdWFsaWZpZWROYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICB0b2dnbGVBdHRyaWJ1dGUocXVhbGlmaWVkTmFtZSwgZm9yY2UpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHF1YWxpZmllZE5hbWUgZG9lcyBub3QgbWF0Y2ggdGhlIE5hbWUgcHJvZHVjdGlvbiBpbiBYTUwsIHRoZW5cbiAgICAgICAgICogdGhyb3cgYW4gXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIWFsZ29yaXRobV8xLnhtbF9pc05hbWUocXVhbGlmaWVkTmFtZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiB0aGUgY29udGV4dCBvYmplY3QgaXMgaW4gdGhlIEhUTUwgbmFtZXNwYWNlIGFuZCBpdHMgbm9kZSBkb2N1bWVudFxuICAgICAgICAgKiBpcyBhbiBIVE1MIGRvY3VtZW50LCB0aGVuIHNldCBxdWFsaWZpZWROYW1lIHRvIHF1YWxpZmllZE5hbWUgaW4gQVNDSUlcbiAgICAgICAgICogbG93ZXJjYXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX25hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCAmJiB0aGlzLl9ub2RlRG9jdW1lbnQuX3R5cGUgPT09IFwiaHRtbFwiKSB7XG4gICAgICAgICAgICBxdWFsaWZpZWROYW1lID0gcXVhbGlmaWVkTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBMZXQgYXR0cmlidXRlIGJlIHRoZSBmaXJzdCBhdHRyaWJ1dGUgaW4gdGhlIGNvbnRleHQgb2JqZWN04oCZcyBhdHRyaWJ1dGVcbiAgICAgICAgICogbGlzdCB3aG9zZSBxdWFsaWZpZWQgbmFtZSBpcyBxdWFsaWZpZWROYW1lLCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgYXR0cmlidXRlID0gbnVsbDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hdHRyaWJ1dGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyID0gdGhpcy5fYXR0cmlidXRlTGlzdFtpXTtcbiAgICAgICAgICAgIGlmIChhdHRyLl9xdWFsaWZpZWROYW1lID09PSBxdWFsaWZpZWROYW1lKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlID0gYXR0cjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYXR0cmlidXRlID09PSBudWxsKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDQuIElmIGF0dHJpYnV0ZSBpcyBudWxsLCB0aGVuOlxuICAgICAgICAgICAgICogNC4xLiBJZiBmb3JjZSBpcyBub3QgZ2l2ZW4gb3IgaXMgdHJ1ZSwgY3JlYXRlIGFuIGF0dHJpYnV0ZSB3aG9zZSBsb2NhbFxuICAgICAgICAgICAgICogbmFtZSBpcyBxdWFsaWZpZWROYW1lLCB2YWx1ZSBpcyB0aGUgZW1wdHkgc3RyaW5nLCBhbmQgbm9kZSBkb2N1bWVudCBpc1xuICAgICAgICAgICAgICogdGhlIGNvbnRleHQgb2JqZWN04oCZcyBub2RlIGRvY3VtZW50LCB0aGVuIGFwcGVuZCB0aGlzIGF0dHJpYnV0ZSB0byB0aGVcbiAgICAgICAgICAgICAqIGNvbnRleHQgb2JqZWN0LCBhbmQgdGhlbiByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAqIDQuMi4gUmV0dXJuIGZhbHNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZm9yY2UgPT09IHVuZGVmaW5lZCB8fCBmb3JjZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSA9IGFsZ29yaXRobV8xLmNyZWF0ZV9hdHRyKHRoaXMuX25vZGVEb2N1bWVudCwgcXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlLl92YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIGFsZ29yaXRobV8xLmVsZW1lbnRfYXBwZW5kKGF0dHJpYnV0ZSwgdGhpcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZm9yY2UgPT09IHVuZGVmaW5lZCB8fCBmb3JjZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4gT3RoZXJ3aXNlLCBpZiBmb3JjZSBpcyBub3QgZ2l2ZW4gb3IgaXMgZmFsc2UsIHJlbW92ZSBhbiBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAqIGdpdmVuIHF1YWxpZmllZE5hbWUgYW5kIHRoZSBjb250ZXh0IG9iamVjdCwgYW5kIHRoZW4gcmV0dXJuIGZhbHNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhbGdvcml0aG1fMS5lbGVtZW50X3JlbW92ZUFuQXR0cmlidXRlQnlOYW1lKHF1YWxpZmllZE5hbWUsIHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA2LiBSZXR1cm4gdHJ1ZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBoYXNBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIGxvY2FsTmFtZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgbmFtZXNwYWNlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHNldCBpdCB0byBudWxsLlxuICAgICAgICAgKiAyLiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY29udGV4dCBvYmplY3QgaGFzIGFuIGF0dHJpYnV0ZSB3aG9zZSBuYW1lc3BhY2UgaXNcbiAgICAgICAgICogbmFtZXNwYWNlIGFuZCBsb2NhbCBuYW1lIGlzIGxvY2FsTmFtZSwgYW5kIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5zID0gbmFtZXNwYWNlIHx8IG51bGw7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYXR0cmlidXRlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYXR0ciA9IHRoaXMuX2F0dHJpYnV0ZUxpc3RbaV07XG4gICAgICAgICAgICBpZiAoYXR0ci5fbmFtZXNwYWNlID09PSBucyAmJiBhdHRyLl9sb2NhbE5hbWUgPT09IGxvY2FsTmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0QXR0cmlidXRlTm9kZShxdWFsaWZpZWROYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZ2V0QXR0cmlidXRlTm9kZShxdWFsaWZpZWROYW1lKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdGhlXG4gICAgICAgICAqIHJlc3VsdCBvZiBnZXR0aW5nIGFuIGF0dHJpYnV0ZSBnaXZlbiBxdWFsaWZpZWROYW1lIGFuZCBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lKHF1YWxpZmllZE5hbWUsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXRBdHRyaWJ1dGVOb2RlTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnZXRBdHRyaWJ1dGVOb2RlTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0XG4gICAgICAgICAqIHJldHVybiB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSwgbG9jYWxOYW1lLCBhbmRcbiAgICAgICAgICogdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLmVsZW1lbnRfZ2V0QW5BdHRyaWJ1dGVCeU5hbWVzcGFjZUFuZExvY2FsTmFtZShuYW1lc3BhY2UsIGxvY2FsTmFtZSwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHNldEF0dHJpYnV0ZU5vZGUoYXR0cikge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHNldEF0dHJpYnV0ZU5vZGUoYXR0cikgYW5kIHNldEF0dHJpYnV0ZU5vZGVOUyhhdHRyKSBtZXRob2RzLCB3aGVuXG4gICAgICAgICAqIGludm9rZWQsIG11c3QgcmV0dXJuIHRoZSByZXN1bHQgb2Ygc2V0dGluZyBhbiBhdHRyaWJ1dGUgZ2l2ZW4gYXR0ciBhbmRcbiAgICAgICAgICogdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLmVsZW1lbnRfc2V0QW5BdHRyaWJ1dGUoYXR0ciwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHNldEF0dHJpYnV0ZU5vZGVOUyhhdHRyKSB7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X3NldEFuQXR0cmlidXRlKGF0dHIsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICByZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHIpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGNvbnRleHQgb2JqZWN04oCZcyBhdHRyaWJ1dGUgbGlzdCBkb2VzIG5vdCBjb250YWluIGF0dHIsIHRoZW4gdGhyb3dcbiAgICAgICAgICogYSBcIk5vdEZvdW5kRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIFJlbW92ZSBhdHRyIGZyb20gY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqIDMuIFJldHVybiBhdHRyLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYXR0cmlidXRlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlID0gdGhpcy5fYXR0cmlidXRlTGlzdFtpXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT09IGF0dHIpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmb3VuZClcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RGb3VuZEVycm9yKCk7XG4gICAgICAgIGFsZ29yaXRobV8xLmVsZW1lbnRfcmVtb3ZlKGF0dHIsIHRoaXMpO1xuICAgICAgICByZXR1cm4gYXR0cjtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgYXR0YWNoU2hhZG93KGluaXQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGNvbnRleHQgb2JqZWN04oCZcyBuYW1lc3BhY2UgaXMgbm90IHRoZSBIVE1MIG5hbWVzcGFjZSwgdGhlbiB0aHJvdyBhXG4gICAgICAgICAqIFwiTm90U3VwcG9ydGVkRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fbmFtZXNwYWNlICE9PSBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLk5vdFN1cHBvcnRlZEVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiBjb250ZXh0IG9iamVjdOKAmXMgbG9jYWwgbmFtZSBpcyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lLFxuICAgICAgICAgKiBcImFydGljbGVcIiwgXCJhc2lkZVwiLCBcImJsb2NrcXVvdGVcIiwgXCJib2R5XCIsIFwiZGl2XCIsIFwiZm9vdGVyXCIsIFwiaDFcIiwgXCJoMlwiLFxuICAgICAgICAgKiBcImgzXCIsIFwiaDRcIiwgXCJoNVwiLCBcImg2XCIsIFwiaGVhZGVyXCIsIFwibWFpblwiIFwibmF2XCIsIFwicFwiLCBcInNlY3Rpb25cIixcbiAgICAgICAgICogb3IgXCJzcGFuXCIsIHRoZW4gdGhyb3cgYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFhbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2lzVmFsaWRDdXN0b21FbGVtZW50TmFtZSh0aGlzLl9sb2NhbE5hbWUpICYmXG4gICAgICAgICAgICAhYWxnb3JpdGhtXzEuY3VzdG9tRWxlbWVudF9pc1ZhbGlkU2hhZG93SG9zdE5hbWUodGhpcy5fbG9jYWxOYW1lKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RTdXBwb3J0ZWRFcnJvcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gSWYgY29udGV4dCBvYmplY3TigJlzIGxvY2FsIG5hbWUgaXMgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lLFxuICAgICAgICAgKiBvciBjb250ZXh0IG9iamVjdOKAmXMgaXMgdmFsdWUgaXMgbm90IG51bGwsIHRoZW46XG4gICAgICAgICAqIDMuMS4gTGV0IGRlZmluaXRpb24gYmUgdGhlIHJlc3VsdCBvZiBsb29raW5nIHVwIGEgY3VzdG9tIGVsZW1lbnRcbiAgICAgICAgICogZGVmaW5pdGlvbiBnaXZlbiBjb250ZXh0IG9iamVjdOKAmXMgbm9kZSBkb2N1bWVudCwgaXRzIG5hbWVzcGFjZSwgaXRzXG4gICAgICAgICAqIGxvY2FsIG5hbWUsIGFuZCBpdHMgaXMgdmFsdWUuXG4gICAgICAgICAqIDMuMi4gSWYgZGVmaW5pdGlvbiBpcyBub3QgbnVsbCBhbmQgZGVmaW5pdGlvbuKAmXMgZGlzYWJsZSBzaGFkb3cgaXMgdHJ1ZSxcbiAgICAgICAgICogIHRoZW4gdGhyb3cgYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGFsZ29yaXRobV8xLmN1c3RvbUVsZW1lbnRfaXNWYWxpZEN1c3RvbUVsZW1lbnROYW1lKHRoaXMuX2xvY2FsTmFtZSkgfHwgdGhpcy5faXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBhbGdvcml0aG1fMS5jdXN0b21FbGVtZW50X2xvb2tVcEFDdXN0b21FbGVtZW50RGVmaW5pdGlvbih0aGlzLl9ub2RlRG9jdW1lbnQsIHRoaXMuX25hbWVzcGFjZSwgdGhpcy5fbG9jYWxOYW1lLCB0aGlzLl9pcyk7XG4gICAgICAgICAgICBpZiAoZGVmaW5pdGlvbiAhPT0gbnVsbCAmJiBkZWZpbml0aW9uLmRpc2FibGVTaGFkb3cgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNC4gSWYgY29udGV4dCBvYmplY3QgaXMgYSBzaGFkb3cgaG9zdCwgdGhlbiB0aHJvdyBhbiBcIk5vdFN1cHBvcnRlZEVycm9yXCJcbiAgICAgICAgICogRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX3NoYWRvd1Jvb3QgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuIExldCBzaGFkb3cgYmUgYSBuZXcgc2hhZG93IHJvb3Qgd2hvc2Ugbm9kZSBkb2N1bWVudCBpcyBjb250ZXh0XG4gICAgICAgICAqIG9iamVjdOKAmXMgbm9kZSBkb2N1bWVudCwgaG9zdCBpcyBjb250ZXh0IG9iamVjdCwgYW5kIG1vZGUgaXMgaW5pdOKAmXMgbW9kZS5cbiAgICAgICAgICogNi4gU2V0IGNvbnRleHQgb2JqZWN04oCZcyBzaGFkb3cgcm9vdCB0byBzaGFkb3cuXG4gICAgICAgICAqIDcuIFJldHVybiBzaGFkb3cuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzaGFkb3cgPSBhbGdvcml0aG1fMS5jcmVhdGVfc2hhZG93Um9vdCh0aGlzLl9ub2RlRG9jdW1lbnQsIHRoaXMpO1xuICAgICAgICBzaGFkb3cuX21vZGUgPSBpbml0Lm1vZGU7XG4gICAgICAgIHRoaXMuX3NoYWRvd1Jvb3QgPSBzaGFkb3c7XG4gICAgICAgIHJldHVybiBzaGFkb3c7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBzaGFkb3dSb290KCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IHNoYWRvdyBiZSBjb250ZXh0IG9iamVjdOKAmXMgc2hhZG93IHJvb3QuXG4gICAgICAgICAqIDIuIElmIHNoYWRvdyBpcyBudWxsIG9yIGl0cyBtb2RlIGlzIFwiY2xvc2VkXCIsIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICAgICAqIDMuIFJldHVybiBzaGFkb3cuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzaGFkb3cgPSB0aGlzLl9zaGFkb3dSb290O1xuICAgICAgICBpZiAoc2hhZG93ID09PSBudWxsIHx8IHNoYWRvdy5tb2RlID09PSBcImNsb3NlZFwiKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBzaGFkb3c7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNsb3Nlc3Qoc2VsZWN0b3JzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBTZWxlY3RvcnNcbiAgICAgICAgICogMS4gTGV0IHMgYmUgdGhlIHJlc3VsdCBvZiBwYXJzZSBhIHNlbGVjdG9yIGZyb20gc2VsZWN0b3JzLiBbU0VMRUNUT1JTNF1cbiAgICAgICAgICogMi4gSWYgcyBpcyBmYWlsdXJlLCB0aHJvdyBhIFwiU3ludGF4RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDMuIExldCBlbGVtZW50cyBiZSBjb250ZXh0IG9iamVjdOKAmXMgaW5jbHVzaXZlIGFuY2VzdG9ycyB0aGF0IGFyZVxuICAgICAgICAgKiBlbGVtZW50cywgaW4gcmV2ZXJzZSB0cmVlIG9yZGVyLlxuICAgICAgICAgKiA0LiBGb3IgZWFjaCBlbGVtZW50IGluIGVsZW1lbnRzLCBpZiBtYXRjaCBhIHNlbGVjdG9yIGFnYWluc3QgYW4gZWxlbWVudCxcbiAgICAgICAgICogdXNpbmcgcywgZWxlbWVudCwgYW5kIDpzY29wZSBlbGVtZW50IGNvbnRleHQgb2JqZWN0LCByZXR1cm5zIHN1Y2Nlc3MsXG4gICAgICAgICAqIHJldHVybiBlbGVtZW50LiBbU0VMRUNUT1JTNF1cbiAgICAgICAgICogNS4gUmV0dXJuIG51bGwuXG4gICAgICAgICAqL1xuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBtYXRjaGVzKHNlbGVjdG9ycykge1xuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETzogU2VsZWN0b3JzXG4gICAgICAgICAqIDEuIExldCBzIGJlIHRoZSByZXN1bHQgb2YgcGFyc2UgYSBzZWxlY3RvciBmcm9tIHNlbGVjdG9ycy4gW1NFTEVDVE9SUzRdXG4gICAgICAgICAqIDIuIElmIHMgaXMgZmFpbHVyZSwgdGhyb3cgYSBcIlN5bnRheEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAzLiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcmVzdWx0IG9mIG1hdGNoIGEgc2VsZWN0b3IgYWdhaW5zdCBhbiBlbGVtZW50LFxuICAgICAgICAgKiB1c2luZyBzLCBlbGVtZW50LCBhbmQgOnNjb3BlIGVsZW1lbnQgY29udGV4dCBvYmplY3QsIHJldHVybnMgc3VjY2VzcyxcbiAgICAgICAgICogYW5kIGZhbHNlIG90aGVyd2lzZS4gW1NFTEVDVE9SUzRdXG4gICAgICAgICAqL1xuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICB3ZWJraXRNYXRjaGVzU2VsZWN0b3Ioc2VsZWN0b3JzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hdGNoZXMoc2VsZWN0b3JzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUocXVhbGlmaWVkTmFtZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdldEVsZW1lbnRzQnlUYWdOYW1lKHF1YWxpZmllZE5hbWUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVyblxuICAgICAgICAgKiB0aGUgbGlzdCBvZiBlbGVtZW50cyB3aXRoIHF1YWxpZmllZCBuYW1lIHF1YWxpZmllZE5hbWUgZm9yIGNvbnRleHRcbiAgICAgICAgICogb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLm5vZGVfbGlzdE9mRWxlbWVudHNXaXRoUXVhbGlmaWVkTmFtZShxdWFsaWZpZWROYW1lLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhuYW1lc3BhY2UsIGxvY2FsTmFtZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdldEVsZW1lbnRzQnlUYWdOYW1lTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLFxuICAgICAgICAgKiBtdXN0IHJldHVybiB0aGUgbGlzdCBvZiBlbGVtZW50cyB3aXRoIG5hbWVzcGFjZSBuYW1lc3BhY2UgYW5kIGxvY2FsIG5hbWVcbiAgICAgICAgICogbG9jYWxOYW1lIGZvciBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5ub2RlX2xpc3RPZkVsZW1lbnRzV2l0aE5hbWVzcGFjZShuYW1lc3BhY2UsIGxvY2FsTmFtZSwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lcykge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lcykgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuXG4gICAgICAgICAqIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggY2xhc3MgbmFtZXMgY2xhc3NOYW1lcyBmb3IgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZV9saXN0T2ZFbGVtZW50c1dpdGhDbGFzc05hbWVzKGNsYXNzTmFtZXMsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBpbnNlcnRBZGphY2VudEVsZW1lbnQod2hlcmUsIGVsZW1lbnQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBpbnNlcnRBZGphY2VudEVsZW1lbnQod2hlcmUsIGVsZW1lbnQpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0XG4gICAgICAgICAqIHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgaW5zZXJ0IGFkamFjZW50LCBnaXZlbiBjb250ZXh0IG9iamVjdCxcbiAgICAgICAgICogIHdoZXJlLCBhbmQgZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X2luc2VydEFkamFjZW50KHRoaXMsIHdoZXJlLCBlbGVtZW50KTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaW5zZXJ0QWRqYWNlbnRUZXh0KHdoZXJlLCBkYXRhKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgdGV4dCBiZSBhIG5ldyBUZXh0IG5vZGUgd2hvc2UgZGF0YSBpcyBkYXRhIGFuZCBub2RlIGRvY3VtZW50IGlzXG4gICAgICAgICAqIGNvbnRleHQgb2JqZWN04oCZcyBub2RlIGRvY3VtZW50LlxuICAgICAgICAgKiAyLiBSdW4gaW5zZXJ0IGFkamFjZW50LCBnaXZlbiBjb250ZXh0IG9iamVjdCwgd2hlcmUsIGFuZCB0ZXh0LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgdGV4dCA9IGFsZ29yaXRobV8xLmNyZWF0ZV90ZXh0KHRoaXMuX25vZGVEb2N1bWVudCwgZGF0YSk7XG4gICAgICAgIGFsZ29yaXRobV8xLmVsZW1lbnRfaW5zZXJ0QWRqYWNlbnQodGhpcywgd2hlcmUsIHRleHQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBxdWFsaWZpZWQgbmFtZS5cbiAgICAgKi9cbiAgICBnZXQgX3F1YWxpZmllZE5hbWUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbiBlbGVtZW504oCZcyBxdWFsaWZpZWQgbmFtZSBpcyBpdHMgbG9jYWwgbmFtZSBpZiBpdHMgbmFtZXNwYWNlIHByZWZpeCBpc1xuICAgICAgICAgKiBudWxsLCBhbmQgaXRzIG5hbWVzcGFjZSBwcmVmaXgsIGZvbGxvd2VkIGJ5IFwiOlwiLCBmb2xsb3dlZCBieSBpdHNcbiAgICAgICAgICogbG9jYWwgbmFtZSwgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuICh0aGlzLl9uYW1lc3BhY2VQcmVmaXggP1xuICAgICAgICAgICAgdGhpcy5fbmFtZXNwYWNlUHJlZml4ICsgJzonICsgdGhpcy5fbG9jYWxOYW1lIDpcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsTmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHVwcGVyLWNhc2VkIHF1YWxpZmllZCBuYW1lIGZvciBhIGh0bWwgZWxlbWVudC5cbiAgICAgKi9cbiAgICBnZXQgX2h0bWxVcHBlcmNhc2VkUXVhbGlmaWVkTmFtZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBxdWFsaWZpZWROYW1lIGJlIGNvbnRleHQgb2JqZWN04oCZcyBxdWFsaWZpZWQgbmFtZS5cbiAgICAgICAgICogMi4gSWYgdGhlIGNvbnRleHQgb2JqZWN0IGlzIGluIHRoZSBIVE1MIG5hbWVzcGFjZSBhbmQgaXRzIG5vZGUgZG9jdW1lbnRcbiAgICAgICAgICogaXMgYW4gSFRNTCBkb2N1bWVudCwgdGhlbiBzZXQgcXVhbGlmaWVkTmFtZSB0byBxdWFsaWZpZWROYW1lIGluIEFTQ0lJXG4gICAgICAgICAqIHVwcGVyY2FzZS5cbiAgICAgICAgICogMy4gUmV0dXJuIHF1YWxpZmllZE5hbWUuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgcXVhbGlmaWVkTmFtZSA9IHRoaXMuX3F1YWxpZmllZE5hbWU7XG4gICAgICAgIGlmICh0aGlzLl9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwgJiYgdGhpcy5fbm9kZURvY3VtZW50Ll90eXBlID09PSBcImh0bWxcIikge1xuICAgICAgICAgICAgcXVhbGlmaWVkTmFtZSA9IHF1YWxpZmllZE5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVhbGlmaWVkTmFtZTtcbiAgICB9XG4gICAgLy8gTUlYSU46IFBhcmVudE5vZGVcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGdldCBjaGlsZHJlbigpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IFBhcmVudE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IGZpcnN0RWxlbWVudENoaWxkKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgbGFzdEVsZW1lbnRDaGlsZCgpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IFBhcmVudE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IGNoaWxkRWxlbWVudENvdW50KCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBwcmVwZW5kKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBQYXJlbnROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGFwcGVuZCguLi5ub2RlcykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBxdWVyeVNlbGVjdG9yKHNlbGVjdG9ycykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBxdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ycykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogUGFyZW50Tm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZ2V0IG5leHRFbGVtZW50U2libGluZygpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IENoaWxkTm9kZVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgYmVmb3JlKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBDaGlsZE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgYWZ0ZXIoLi4ubm9kZXMpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IENoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXBsYWNlV2l0aCguLi5ub2RlcykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogQ2hpbGROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJlbW92ZSgpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IENoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLy8gTUlYSU46IFNsb3RhYmxlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBnZXQgYXNzaWduZWRTbG90KCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogU2xvdGFibGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYEVsZW1lbnRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAgICAgKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBuYW1lc3BhY2VcbiAgICAgKiBAcGFyYW0gcHJlZml4IC0gbmFtZXNwYWNlIHByZWZpeFxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBsb2NhbE5hbWUsIG5hbWVzcGFjZSA9IG51bGwsIG5hbWVzcGFjZVByZWZpeCA9IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBFbGVtZW50SW1wbCgpO1xuICAgICAgICBub2RlLl9sb2NhbE5hbWUgPSBsb2NhbE5hbWU7XG4gICAgICAgIG5vZGUuX25hbWVzcGFjZSA9IG5hbWVzcGFjZTtcbiAgICAgICAgbm9kZS5fbmFtZXNwYWNlUHJlZml4ID0gbmFtZXNwYWNlUHJlZml4O1xuICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufVxuZXhwb3J0cy5FbGVtZW50SW1wbCA9IEVsZW1lbnRJbXBsO1xuLyoqXG4gKiBJbml0aWFsaXplIHByb3RvdHlwZSBwcm9wZXJ0aWVzXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChFbGVtZW50SW1wbC5wcm90b3R5cGUsIFwiX25vZGVUeXBlXCIsIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVsZW1lbnRJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhbiBvYmplY3Qgd2hpY2ggY2FuIGJlIHVzZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBub2Rlc1xuICogb2YgYSBzdWJ0cmVlLlxuICovXG5jbGFzcyBUcmF2ZXJzZXJJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgVHJhdmVyc2VyYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb290IC0gcm9vdCBub2RlXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm9vdCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVGbGFnID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSByb290O1xuICAgICAgICB0aGlzLl93aGF0VG9TaG93ID0gaW50ZXJmYWNlc18xLldoYXRUb1Nob3cuQWxsO1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgcm9vdCgpIHsgcmV0dXJuIHRoaXMuX3Jvb3Q7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgd2hhdFRvU2hvdygpIHsgcmV0dXJuIHRoaXMuX3doYXRUb1Nob3c7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgZmlsdGVyKCkgeyByZXR1cm4gdGhpcy5fZmlsdGVyOyB9XG59XG5leHBvcnRzLlRyYXZlcnNlckltcGwgPSBUcmF2ZXJzZXJJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VHJhdmVyc2VySW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuLi9kb20vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4uL2RvbS9ET01FeGNlcHRpb25cIik7XG4vKipcbiAqIEFwcGxpZXMgdGhlIGZpbHRlciB0byB0aGUgZ2l2ZW4gbm9kZSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LlxuICpcbiAqIEBwYXJhbSB0cmF2ZXJzZXIgLSB0aGUgYE5vZGVJdGVyYXRvcmAgb3IgYFRyZWVXYWxrZXJgIGluc3RhbmNlXG4gKiBAcGFyYW0gbm9kZSAtIHRoZSBub2RlIHRvIGZpbHRlclxuICovXG5mdW5jdGlvbiB0cmF2ZXJzYWxfZmlsdGVyKHRyYXZlcnNlciwgbm9kZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIHRyYXZlcnNlcuKAmXMgYWN0aXZlIGZsYWcgaXMgc2V0LCB0aGVuIHRocm93IGFuIFwiSW52YWxpZFN0YXRlRXJyb3JcIlxuICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgKi9cbiAgICBpZiAodHJhdmVyc2VyLl9hY3RpdmVGbGFnKSB7XG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbnZhbGlkU3RhdGVFcnJvcigpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBMZXQgbiBiZSBub2Rl4oCZcyBub2RlVHlwZSBhdHRyaWJ1dGUgdmFsdWUg4oiSIDEuXG4gICAgICovXG4gICAgY29uc3QgbiA9IG5vZGUuX25vZGVUeXBlIC0gMTtcbiAgICAvKipcbiAgICAgKiAzLiBJZiB0aGUgbnRoIGJpdCAod2hlcmUgMCBpcyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0KSBvZiB0cmF2ZXJzZXLigJlzXG4gICAgICogd2hhdFRvU2hvdyBpcyBub3Qgc2V0LCB0aGVuIHJldHVybiBGSUxURVJfU0tJUC5cbiAgICAgKi9cbiAgICBjb25zdCBtYXNrID0gMSA8PCBuO1xuICAgIGlmICgodHJhdmVyc2VyLndoYXRUb1Nob3cgJiBtYXNrKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLkZpbHRlclJlc3VsdC5Ta2lwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA0LiBJZiB0cmF2ZXJzZXLigJlzIGZpbHRlciBpcyBudWxsLCB0aGVuIHJldHVybiBGSUxURVJfQUNDRVBULlxuICAgICAqL1xuICAgIGlmICghdHJhdmVyc2VyLmZpbHRlcikge1xuICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLkZpbHRlclJlc3VsdC5BY2NlcHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDUuIFNldCB0cmF2ZXJzZXLigJlzIGFjdGl2ZSBmbGFnLlxuICAgICAqL1xuICAgIHRyYXZlcnNlci5fYWN0aXZlRmxhZyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogNi4gTGV0IHJlc3VsdCBiZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGNhbGwgYSB1c2VyIG9iamVjdOKAmXMgb3BlcmF0aW9uIHdpdGhcbiAgICAgKiB0cmF2ZXJzZXLigJlzIGZpbHRlciwgXCJhY2NlcHROb2RlXCIsIGFuZCDCqyBub2RlIMK7LiBJZiB0aGlzIHRocm93cyBhblxuICAgICAqIGV4Y2VwdGlvbiwgdGhlbiB1bnNldCB0cmF2ZXJzZXLigJlzIGFjdGl2ZSBmbGFnIGFuZCByZXRocm93IHRoZSBleGNlcHRpb24uXG4gICAgICovXG4gICAgbGV0IHJlc3VsdCA9IGludGVyZmFjZXNfMS5GaWx0ZXJSZXN1bHQuUmVqZWN0O1xuICAgIHRyeSB7XG4gICAgICAgIHJlc3VsdCA9IHRyYXZlcnNlci5maWx0ZXIuYWNjZXB0Tm9kZShub2RlKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICB0cmF2ZXJzZXIuX2FjdGl2ZUZsYWcgPSBmYWxzZTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LiBVbnNldCB0cmF2ZXJzZXLigJlzIGFjdGl2ZSBmbGFnLlxuICAgICAqIDguIFJldHVybiByZXN1bHQuXG4gICAgICovXG4gICAgdHJhdmVyc2VyLl9hY3RpdmVGbGFnID0gZmFsc2U7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMudHJhdmVyc2FsX2ZpbHRlciA9IHRyYXZlcnNhbF9maWx0ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1UcmF2ZXJzYWxBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuLi9kb21cIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IHV0aWxfMiA9IHJlcXVpcmUoXCJAb296Y2l0YWsvdXRpbFwiKTtcbmNvbnN0IEVsZW1lbnRJbXBsXzEgPSByZXF1aXJlKFwiLi4vZG9tL0VsZW1lbnRJbXBsXCIpO1xuY29uc3QgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vQ3VzdG9tRWxlbWVudEFsZ29yaXRobVwiKTtcbmNvbnN0IFRyZWVBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL1RyZWVBbGdvcml0aG1cIik7XG5jb25zdCBOYW1lc3BhY2VBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuL05hbWVzcGFjZUFsZ29yaXRobVwiKTtcbmNvbnN0IERPTUFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vRE9NQWxnb3JpdGhtXCIpO1xuY29uc3QgRWxlbWVudEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vRWxlbWVudEFsZ29yaXRobVwiKTtcbmNvbnN0IE11dGF0aW9uQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9NdXRhdGlvbkFsZ29yaXRobVwiKTtcbi8qKlxuICogUmV0dXJucyBhbiBlbGVtZW50IGludGVyZmFjZSBmb3IgdGhlIGdpdmVuIG5hbWUgYW5kIG5hbWVzcGFjZS5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIGVsZW1lbnQgbmFtZVxuICogQHBhcmFtIG5hbWVzcGFjZSAtIG5hbWVzcGFjZVxuICovXG5mdW5jdGlvbiBkb2N1bWVudF9lbGVtZW50SW50ZXJmYWNlKG5hbWUsIG5hbWVzcGFjZSkge1xuICAgIHJldHVybiBFbGVtZW50SW1wbF8xLkVsZW1lbnRJbXBsO1xufVxuZXhwb3J0cy5kb2N1bWVudF9lbGVtZW50SW50ZXJmYWNlID0gZG9jdW1lbnRfZWxlbWVudEludGVyZmFjZTtcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBlbGVtZW50IG5vZGUuXG4gKiBTZWU6IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJuYWwtY3JlYXRlZWxlbWVudG5zLXN0ZXBzXG4gKlxuICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBlbGVtZW50IG5hbWVzcGFjZVxuICogQHBhcmFtIHF1YWxpZmllZE5hbWUgLSBxdWFsaWZpZWQgbmFtZVxuICogQHBhcmFtIG9wdGlvbnMgLSBlbGVtZW50IG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gZG9jdW1lbnRfaW50ZXJuYWxDcmVhdGVFbGVtZW50TlMoZG9jdW1lbnQsIG5hbWVzcGFjZSwgcXVhbGlmaWVkTmFtZSwgb3B0aW9ucykge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBuYW1lc3BhY2UsIHByZWZpeCwgYW5kIGxvY2FsTmFtZSBiZSB0aGUgcmVzdWx0IG9mIHBhc3NpbmdcbiAgICAgKiBuYW1lc3BhY2UgYW5kIHF1YWxpZmllZE5hbWUgdG8gdmFsaWRhdGUgYW5kIGV4dHJhY3QuXG4gICAgICogMi4gTGV0IGlzIGJlIG51bGwuXG4gICAgICogMy4gSWYgb3B0aW9ucyBpcyBhIGRpY3Rpb25hcnkgYW5kIG9wdGlvbnPigJlzIGlzIGlzIHByZXNlbnQsIHRoZW4gc2V0XG4gICAgICogaXMgdG8gaXQuXG4gICAgICogNC4gUmV0dXJuIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZWxlbWVudCBnaXZlbiBkb2N1bWVudCwgbG9jYWxOYW1lLFxuICAgICAqIG5hbWVzcGFjZSwgcHJlZml4LCBpcywgYW5kIHdpdGggdGhlIHN5bmNocm9ub3VzIGN1c3RvbSBlbGVtZW50cyBmbGFnIHNldC5cbiAgICAgKi9cbiAgICBjb25zdCBbbnMsIHByZWZpeCwgbG9jYWxOYW1lXSA9IE5hbWVzcGFjZUFsZ29yaXRobV8xLm5hbWVzcGFjZV92YWxpZGF0ZUFuZEV4dHJhY3QobmFtZXNwYWNlLCBxdWFsaWZpZWROYW1lKTtcbiAgICBsZXQgaXMgPSBudWxsO1xuICAgIGlmIChvcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHV0aWxfMi5pc1N0cmluZyhvcHRpb25zKSkge1xuICAgICAgICAgICAgaXMgPSBvcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaXMgPSBvcHRpb25zLmlzO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBFbGVtZW50QWxnb3JpdGhtXzEuZWxlbWVudF9jcmVhdGVBbkVsZW1lbnQoZG9jdW1lbnQsIGxvY2FsTmFtZSwgbnMsIHByZWZpeCwgaXMsIHRydWUpO1xufVxuZXhwb3J0cy5kb2N1bWVudF9pbnRlcm5hbENyZWF0ZUVsZW1lbnROUyA9IGRvY3VtZW50X2ludGVybmFsQ3JlYXRlRWxlbWVudE5TO1xuLyoqXG4gKiBSZW1vdmVzIGBub2RlYCBhbmQgaXRzIHN1YnRyZWUgZnJvbSBpdHMgZG9jdW1lbnQgYW5kIGNoYW5nZXNcbiAqIGl0cyBvd25lciBkb2N1bWVudCB0byBgZG9jdW1lbnRgIHNvIHRoYXQgaXQgY2FuIGJlIGluc2VydGVkXG4gKiBpbnRvIGBkb2N1bWVudGAuXG4gKlxuICogQHBhcmFtIG5vZGUgLSB0aGUgbm9kZSB0byBtb3ZlXG4gKiBAcGFyYW0gZG9jdW1lbnQgLSBkb2N1bWVudCB0byByZWNlaXZlIHRoZSBub2RlIGFuZCBpdHMgc3VidHJlZVxuICovXG5mdW5jdGlvbiBkb2N1bWVudF9hZG9wdChub2RlLCBkb2N1bWVudCkge1xuICAgIC8vIE9wdGltaXplIGZvciBjb21tb24gY2FzZSBvZiBpbnNlcnRpbmcgYSBmcmVzaCBub2RlXG4gICAgaWYgKG5vZGUuX25vZGVEb2N1bWVudCA9PT0gZG9jdW1lbnQgJiYgbm9kZS5fcGFyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMS4gTGV0IG9sZERvY3VtZW50IGJlIG5vZGXigJlzIG5vZGUgZG9jdW1lbnQuXG4gICAgICogMi4gSWYgbm9kZeKAmXMgcGFyZW50IGlzIG5vdCBudWxsLCByZW1vdmUgbm9kZSBmcm9tIGl0cyBwYXJlbnQuXG4gICAgICovXG4gICAgY29uc3Qgb2xkRG9jdW1lbnQgPSBub2RlLl9ub2RlRG9jdW1lbnQ7XG4gICAgaWYgKG5vZGUuX3BhcmVudClcbiAgICAgICAgTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9yZW1vdmUobm9kZSwgbm9kZS5fcGFyZW50KTtcbiAgICAvKipcbiAgICAgKiAzLiBJZiBkb2N1bWVudCBpcyBub3Qgb2xkRG9jdW1lbnQsIHRoZW46XG4gICAgICovXG4gICAgaWYgKGRvY3VtZW50ICE9PSBvbGREb2N1bWVudCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4xLiBGb3IgZWFjaCBpbmNsdXNpdmVEZXNjZW5kYW50IGluIG5vZGXigJlzIHNoYWRvdy1pbmNsdWRpbmcgaW5jbHVzaXZlXG4gICAgICAgICAqIGRlc2NlbmRhbnRzOlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGluY2x1c2l2ZURlc2NlbmRhbnQgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXRGaXJzdERlc2NlbmRhbnROb2RlKG5vZGUsIHRydWUsIHRydWUpO1xuICAgICAgICB3aGlsZSAoaW5jbHVzaXZlRGVzY2VuZGFudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjEuMS4gU2V0IGluY2x1c2l2ZURlc2NlbmRhbnTigJlzIG5vZGUgZG9jdW1lbnQgdG8gZG9jdW1lbnQuXG4gICAgICAgICAgICAgKiAzLjEuMi4gSWYgaW5jbHVzaXZlRGVzY2VuZGFudCBpcyBhbiBlbGVtZW50LCB0aGVuIHNldCB0aGUgbm9kZVxuICAgICAgICAgICAgICogZG9jdW1lbnQgb2YgZWFjaCBhdHRyaWJ1dGUgaW4gaW5jbHVzaXZlRGVzY2VuZGFudOKAmXMgYXR0cmlidXRlIGxpc3RcbiAgICAgICAgICAgICAqIHRvIGRvY3VtZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpbmNsdXNpdmVEZXNjZW5kYW50Ll9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShpbmNsdXNpdmVEZXNjZW5kYW50KSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXR0ciBvZiBpbmNsdXNpdmVEZXNjZW5kYW50Ll9hdHRyaWJ1dGVMaXN0Ll9hc0FycmF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5fbm9kZURvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjIuIEZvciBlYWNoIGluY2x1c2l2ZURlc2NlbmRhbnQgaW4gbm9kZSdzIHNoYWRvdy1pbmNsdWRpbmdcbiAgICAgICAgICAgICAqIGluY2x1c2l2ZSBkZXNjZW5kYW50cyB0aGF0IGlzIGN1c3RvbSwgZW5xdWV1ZSBhIGN1c3RvbVxuICAgICAgICAgICAgICogZWxlbWVudCBjYWxsYmFjayByZWFjdGlvbiB3aXRoIGluY2x1c2l2ZURlc2NlbmRhbnQsXG4gICAgICAgICAgICAgKiBjYWxsYmFjayBuYW1lIFwiYWRvcHRlZENhbGxiYWNrXCIsIGFuZCBhbiBhcmd1bWVudCBsaXN0XG4gICAgICAgICAgICAgKiBjb250YWluaW5nIG9sZERvY3VtZW50IGFuZCBkb2N1bWVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5jdXN0b21FbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShpbmNsdXNpdmVEZXNjZW5kYW50KSAmJlxuICAgICAgICAgICAgICAgICAgICBpbmNsdXNpdmVEZXNjZW5kYW50Ll9jdXN0b21FbGVtZW50U3RhdGUgPT09IFwiY3VzdG9tXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRWxlbWVudEFsZ29yaXRobV8xLmN1c3RvbUVsZW1lbnRfZW5xdWV1ZUFDdXN0b21FbGVtZW50Q2FsbGJhY2tSZWFjdGlvbihpbmNsdXNpdmVEZXNjZW5kYW50LCBcImFkb3B0ZWRDYWxsYmFja1wiLCBbb2xkRG9jdW1lbnQsIGRvY3VtZW50XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjMuIEZvciBlYWNoIGluY2x1c2l2ZURlc2NlbmRhbnQgaW4gbm9kZeKAmXMgc2hhZG93LWluY2x1ZGluZ1xuICAgICAgICAgICAgICogaW5jbHVzaXZlIGRlc2NlbmRhbnRzLCBpbiBzaGFkb3ctaW5jbHVkaW5nIHRyZWUgb3JkZXIsIHJ1biB0aGVcbiAgICAgICAgICAgICAqIGFkb3B0aW5nIHN0ZXBzIHdpdGggaW5jbHVzaXZlRGVzY2VuZGFudCBhbmQgb2xkRG9jdW1lbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQWRvcHRpbmdTdGVwcyhpbmNsdXNpdmVEZXNjZW5kYW50LCBvbGREb2N1bWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmNsdXNpdmVEZXNjZW5kYW50ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfZ2V0TmV4dERlc2NlbmRhbnROb2RlKG5vZGUsIGluY2x1c2l2ZURlc2NlbmRhbnQsIHRydWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5kb2N1bWVudF9hZG9wdCA9IGRvY3VtZW50X2Fkb3B0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RG9jdW1lbnRBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuLi9kb21cIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4uL2RvbS9ET01FeGNlcHRpb25cIik7XG5jb25zdCBUcmVlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9UcmVlQWxnb3JpdGhtXCIpO1xuY29uc3QgTXV0YXRpb25PYnNlcnZlckFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vTXV0YXRpb25PYnNlcnZlckFsZ29yaXRobVwiKTtcbmNvbnN0IERPTUFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vRE9NQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXBsYWNlcyBjaGFyYWN0ZXIgZGF0YS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgY2hhcmFjdGVyIGRhdGEgbm9kZVxuICogQHBhcmFtIG9mZnNldCAtIHN0YXJ0IG9mZnNldFxuICogQHBhcmFtIGNvdW50IC0gY291bnQgb2YgY2hhcmFjdGVycyB0byByZXBsYWNlXG4gKiBAcGFyYW0gZGF0YSAtIG5ldyBkYXRhXG4gKi9cbmZ1bmN0aW9uIGNoYXJhY3RlckRhdGFfcmVwbGFjZURhdGEobm9kZSwgb2Zmc2V0LCBjb3VudCwgZGF0YSkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBsZW5ndGggYmUgbm9kZeKAmXMgbGVuZ3RoLlxuICAgICAqIDIuIElmIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLCB0aGVuIHRocm93IGFuIFwiSW5kZXhTaXplRXJyb3JcIlxuICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgKiAzLiBJZiBvZmZzZXQgcGx1cyBjb3VudCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLCB0aGVuIHNldCBjb3VudCB0byBsZW5ndGhcbiAgICAgKiBtaW51cyBvZmZzZXQuXG4gICAgICovXG4gICAgY29uc3QgbGVuZ3RoID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfbm9kZUxlbmd0aChub2RlKTtcbiAgICBpZiAob2Zmc2V0ID4gbGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbmRleFNpemVFcnJvcihgT2Zmc2V0IGV4Y2VlZHMgY2hhcmFjdGVyIGRhdGEgbGVuZ3RoLiBPZmZzZXQ6ICR7b2Zmc2V0fSwgTGVuZ3RoOiAke2xlbmd0aH0sIE5vZGUgaXMgJHtub2RlLm5vZGVOYW1lfS5gKTtcbiAgICB9XG4gICAgaWYgKG9mZnNldCArIGNvdW50ID4gbGVuZ3RoKSB7XG4gICAgICAgIGNvdW50ID0gbGVuZ3RoIC0gb2Zmc2V0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA0LiBRdWV1ZSBhIG11dGF0aW9uIHJlY29yZCBvZiBcImNoYXJhY3RlckRhdGFcIiBmb3Igbm9kZSB3aXRoIG51bGwsIG51bGwsXG4gICAgICogbm9kZeKAmXMgZGF0YSwgwqsgwrssIMKrIMK7LCBudWxsLCBhbmQgbnVsbC5cbiAgICAgKi9cbiAgICBpZiAoZG9tXzEuZG9tLmZlYXR1cmVzLm11dGF0aW9uT2JzZXJ2ZXJzKSB7XG4gICAgICAgIE11dGF0aW9uT2JzZXJ2ZXJBbGdvcml0aG1fMS5vYnNlcnZlcl9xdWV1ZU11dGF0aW9uUmVjb3JkKFwiY2hhcmFjdGVyRGF0YVwiLCBub2RlLCBudWxsLCBudWxsLCBub2RlLl9kYXRhLCBbXSwgW10sIG51bGwsIG51bGwpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA1LiBJbnNlcnQgZGF0YSBpbnRvIG5vZGXigJlzIGRhdGEgYWZ0ZXIgb2Zmc2V0IGNvZGUgdW5pdHMuXG4gICAgICogNi4gTGV0IGRlbGV0ZSBvZmZzZXQgYmUgb2Zmc2V0ICsgZGF0YeKAmXMgbGVuZ3RoLlxuICAgICAqIDcuIFN0YXJ0aW5nIGZyb20gZGVsZXRlIG9mZnNldCBjb2RlIHVuaXRzLCByZW1vdmUgY291bnQgY29kZSB1bml0cyBmcm9tXG4gICAgICogbm9kZeKAmXMgZGF0YS5cbiAgICAgKi9cbiAgICBjb25zdCBuZXdEYXRhID0gbm9kZS5fZGF0YS5zdWJzdHJpbmcoMCwgb2Zmc2V0KSArIGRhdGEgK1xuICAgICAgICBub2RlLl9kYXRhLnN1YnN0cmluZyhvZmZzZXQgKyBjb3VudCk7XG4gICAgbm9kZS5fZGF0YSA9IG5ld0RhdGE7XG4gICAgLyoqXG4gICAgICogOC4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBzdGFydCBub2RlIGlzIG5vZGUgYW5kIHN0YXJ0IG9mZnNldCBpc1xuICAgICAqIGdyZWF0ZXIgdGhhbiBvZmZzZXQgYnV0IGxlc3MgdGhhbiBvciBlcXVhbCB0byBvZmZzZXQgcGx1cyBjb3VudCwgc2V0IGl0c1xuICAgICAqIHN0YXJ0IG9mZnNldCB0byBvZmZzZXQuXG4gICAgICogOS4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBlbmQgbm9kZSBpcyBub2RlIGFuZCBlbmQgb2Zmc2V0IGlzIGdyZWF0ZXJcbiAgICAgKiB0aGFuIG9mZnNldCBidXQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIG9mZnNldCBwbHVzIGNvdW50LCBzZXQgaXRzIGVuZFxuICAgICAqIG9mZnNldCB0byBvZmZzZXQuXG4gICAgICogMTAuIEZvciBlYWNoIGxpdmUgcmFuZ2Ugd2hvc2Ugc3RhcnQgbm9kZSBpcyBub2RlIGFuZCBzdGFydCBvZmZzZXQgaXNcbiAgICAgKiBncmVhdGVyIHRoYW4gb2Zmc2V0IHBsdXMgY291bnQsIGluY3JlYXNlIGl0cyBzdGFydCBvZmZzZXQgYnkgZGF0YeKAmXNcbiAgICAgKiBsZW5ndGggYW5kIGRlY3JlYXNlIGl0IGJ5IGNvdW50LlxuICAgICAqIDExLiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIGVuZCBub2RlIGlzIG5vZGUgYW5kIGVuZCBvZmZzZXQgaXMgZ3JlYXRlclxuICAgICAqIHRoYW4gb2Zmc2V0IHBsdXMgY291bnQsIGluY3JlYXNlIGl0cyBlbmQgb2Zmc2V0IGJ5IGRhdGHigJlzIGxlbmd0aCBhbmRcbiAgICAgKiBkZWNyZWFzZSBpdCBieSBjb3VudC5cbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IHJhbmdlIG9mIGRvbV8xLmRvbS5yYW5nZUxpc3QpIHtcbiAgICAgICAgaWYgKHJhbmdlLl9zdGFydFswXSA9PT0gbm9kZSAmJiByYW5nZS5fc3RhcnRbMV0gPiBvZmZzZXQgJiYgcmFuZ2UuX3N0YXJ0WzFdIDw9IG9mZnNldCArIGNvdW50KSB7XG4gICAgICAgICAgICByYW5nZS5fc3RhcnRbMV0gPSBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJhbmdlLl9lbmRbMF0gPT09IG5vZGUgJiYgcmFuZ2UuX2VuZFsxXSA+IG9mZnNldCAmJiByYW5nZS5fZW5kWzFdIDw9IG9mZnNldCArIGNvdW50KSB7XG4gICAgICAgICAgICByYW5nZS5fZW5kWzFdID0gb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYW5nZS5fc3RhcnRbMF0gPT09IG5vZGUgJiYgcmFuZ2UuX3N0YXJ0WzFdID4gb2Zmc2V0ICsgY291bnQpIHtcbiAgICAgICAgICAgIHJhbmdlLl9zdGFydFsxXSArPSBkYXRhLmxlbmd0aCAtIGNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChyYW5nZS5fZW5kWzBdID09PSBub2RlICYmIHJhbmdlLl9lbmRbMV0gPiBvZmZzZXQgKyBjb3VudCkge1xuICAgICAgICAgICAgcmFuZ2UuX2VuZFsxXSArPSBkYXRhLmxlbmd0aCAtIGNvdW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDEyLiBJZiBub2RlIGlzIGEgVGV4dCBub2RlIGFuZCBpdHMgcGFyZW50IGlzIG5vdCBudWxsLCBydW4gdGhlIGNoaWxkXG4gICAgICogdGV4dCBjb250ZW50IGNoYW5nZSBzdGVwcyBmb3Igbm9kZeKAmXMgcGFyZW50LlxuICAgICAqL1xuICAgIGlmIChkb21fMS5kb20uZmVhdHVyZXMuc3RlcHMpIHtcbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc1RleHROb2RlKG5vZGUpICYmIG5vZGUuX3BhcmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgRE9NQWxnb3JpdGhtXzEuZG9tX3J1bkNoaWxkVGV4dENvbnRlbnRDaGFuZ2VTdGVwcyhub2RlLl9wYXJlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhID0gY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YTtcbi8qKlxuICogUmV0dXJucyBgY291bnRgIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gYG5vZGVgJ3MgZGF0YSBzdGFydGluZyBhdFxuICogdGhlIGdpdmVuIGBvZmZzZXRgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gYSBjaGFyYWN0ZXIgZGF0YSBub2RlXG4gKiBAcGFyYW0gb2Zmc2V0IC0gc3RhcnQgb2Zmc2V0XG4gKiBAcGFyYW0gY291bnQgLSBjb3VudCBvZiBjaGFyYWN0ZXJzIHRvIHJldHVyblxuICovXG5mdW5jdGlvbiBjaGFyYWN0ZXJEYXRhX3N1YnN0cmluZ0RhdGEobm9kZSwgb2Zmc2V0LCBjb3VudCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBsZW5ndGggYmUgbm9kZeKAmXMgbGVuZ3RoLlxuICAgICAqIDIuIElmIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLCB0aGVuIHRocm93IGFuIFwiSW5kZXhTaXplRXJyb3JcIlxuICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgKiAzLiBJZiBvZmZzZXQgcGx1cyBjb3VudCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLCByZXR1cm4gYSBzdHJpbmcgd2hvc2VcbiAgICAgKiB2YWx1ZSBpcyB0aGUgY29kZSB1bml0cyBmcm9tIHRoZSBvZmZzZXR0aCBjb2RlIHVuaXQgdG8gdGhlIGVuZCBvZiBub2Rl4oCZc1xuICAgICAqIGRhdGEsIGFuZCB0aGVuIHJldHVybi5cbiAgICAgKiA0LiBSZXR1cm4gYSBzdHJpbmcgd2hvc2UgdmFsdWUgaXMgdGhlIGNvZGUgdW5pdHMgZnJvbSB0aGUgb2Zmc2V0dGggY29kZVxuICAgICAqIHVuaXQgdG8gdGhlIG9mZnNldCtjb3VudHRoIGNvZGUgdW5pdCBpbiBub2Rl4oCZcyBkYXRhLlxuICAgICAqL1xuICAgIGNvbnN0IGxlbmd0aCA9IFRyZWVBbGdvcml0aG1fMS50cmVlX25vZGVMZW5ndGgobm9kZSk7XG4gICAgaWYgKG9mZnNldCA+IGxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW5kZXhTaXplRXJyb3IoYE9mZnNldCBleGNlZWRzIGNoYXJhY3RlciBkYXRhIGxlbmd0aC4gT2Zmc2V0OiAke29mZnNldH0sIExlbmd0aDogJHtsZW5ndGh9LCBOb2RlIGlzICR7bm9kZS5ub2RlTmFtZX0uYCk7XG4gICAgfVxuICAgIGlmIChvZmZzZXQgKyBjb3VudCA+IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4gbm9kZS5fZGF0YS5zdWJzdHIob2Zmc2V0KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBub2RlLl9kYXRhLnN1YnN0cihvZmZzZXQsIGNvdW50KTtcbiAgICB9XG59XG5leHBvcnRzLmNoYXJhY3RlckRhdGFfc3Vic3RyaW5nRGF0YSA9IGNoYXJhY3RlckRhdGFfc3Vic3RyaW5nRGF0YTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNoYXJhY3RlckRhdGFBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbi8qKlxuICogQ29udmVydHMgYSB3aGl0ZXNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgaW50byBhbiBhcnJheSBvZiB0b2tlbnMuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gYSBzdHJpbmcgb2Ygd2hpdGVzcGFjZSBzZXBhcmF0ZWQgdG9rZW5zXG4gKi9cbmZ1bmN0aW9uIG9yZGVyZWRTZXRfcGFyc2UodmFsdWUpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgaW5wdXRUb2tlbnMgYmUgdGhlIHJlc3VsdCBvZiBzcGxpdHRpbmcgaW5wdXQgb24gQVNDSUkgd2hpdGVzcGFjZS5cbiAgICAgKiAyLiBMZXQgdG9rZW5zIGJlIGEgbmV3IG9yZGVyZWQgc2V0LlxuICAgICAqIDMuIEZvciBlYWNoIHRva2VuIGluIGlucHV0VG9rZW5zLCBhcHBlbmQgdG9rZW4gdG8gdG9rZW5zLlxuICAgICAqIDQuIFJldHVybiB0b2tlbnMuXG4gICAgICovXG4gICAgY29uc3QgaW5wdXRUb2tlbnMgPSBpbmZyYV8xLnN0cmluZy5zcGxpdEFTdHJpbmdPbkFTQ0lJV2hpdGVzcGFjZSh2YWx1ZSk7XG4gICAgcmV0dXJuIG5ldyBTZXQoaW5wdXRUb2tlbnMpO1xufVxuZXhwb3J0cy5vcmRlcmVkU2V0X3BhcnNlID0gb3JkZXJlZFNldF9wYXJzZTtcbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgdG9rZW5zIGludG8gYSBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB0b2tlbnMgLSBhbiBhcnJheSBvZiB0b2tlbiBzdHJpbmdzXG4gKi9cbmZ1bmN0aW9uIG9yZGVyZWRTZXRfc2VyaWFsaXplKHRva2Vucykge1xuICAgIC8qKlxuICAgICAqIFRoZSBvcmRlcmVkIHNldCBzZXJpYWxpemVyIHRha2VzIGEgc2V0IGFuZCByZXR1cm5zIHRoZSBjb25jYXRlbmF0aW9uIG9mXG4gICAgICogc2V0IHVzaW5nIFUrMDAyMCBTUEFDRS5cbiAgICAgKi9cbiAgICByZXR1cm4gWy4uLnRva2Vuc10uam9pbignICcpO1xufVxuZXhwb3J0cy5vcmRlcmVkU2V0X3NlcmlhbGl6ZSA9IG9yZGVyZWRTZXRfc2VyaWFsaXplO1xuLyoqXG4gKiBSZW1vdmVzIGR1cGxpY2F0ZSB0b2tlbnMgYW5kIGNvbnZlcnQgYWxsIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuICogdG8gc3BhY2UuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gYSBzdHJpbmcgb2Ygd2hpdGVzcGFjZSBzZXBhcmF0ZWQgdG9rZW5zXG4gKi9cbmZ1bmN0aW9uIG9yZGVyZWRTZXRfc2FuaXRpemUodmFsdWUpIHtcbiAgICByZXR1cm4gb3JkZXJlZFNldF9zZXJpYWxpemUob3JkZXJlZFNldF9wYXJzZSh2YWx1ZSkpO1xufVxuZXhwb3J0cy5vcmRlcmVkU2V0X3Nhbml0aXplID0gb3JkZXJlZFNldF9zYW5pdGl6ZTtcbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgc2V0IGNvbnRhaW5zIHRoZSBvdGhlci5cbiAqXG4gKiBAcGFyYW0gc2V0MSAtIGEgc2V0XG4gKiBAcGFyYW0gc2V0MSAtIGEgc2V0IHRoYXQgaXMgY29udGFpbmVkIGluIHNldDFcbiAqIEBwYXJhbSBjYXNlU2Vuc2l0aXZlIC0gd2hldGhlciBtYXRjaGVzIGFyZSBjYXNlLXNlbnNpdGl2ZVxuICovXG5mdW5jdGlvbiBvcmRlcmVkU2V0X2NvbnRhaW5zKHNldDEsIHNldDIsIGNhc2VTZW5zaXRpdmUpIHtcbiAgICBmb3IgKGNvbnN0IHZhbDIgb2Ygc2V0Mikge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCB2YWwxIG9mIHNldDEpIHtcbiAgICAgICAgICAgIGlmIChjYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbDEgPT09IHZhbDIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsMS50b1VwcGVyQ2FzZSgpID09PSB2YWwyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmb3VuZClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5leHBvcnRzLm9yZGVyZWRTZXRfY29udGFpbnMgPSBvcmRlcmVkU2V0X2NvbnRhaW5zO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9T3JkZXJlZFNldEFsZ29yaXRobS5qcy5tYXAiLCJ2YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzS2V5ID0gcmVxdWlyZSgnLi9faXNLZXknKSxcbiAgICBzdHJpbmdUb1BhdGggPSByZXF1aXJlKCcuL19zdHJpbmdUb1BhdGgnKSxcbiAgICB0b1N0cmluZyA9IHJlcXVpcmUoJy4vdG9TdHJpbmcnKTtcblxuLyoqXG4gKiBDYXN0cyBgdmFsdWVgIHRvIGEgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeSBrZXlzIG9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBjYXN0IHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGNhc3RQYXRoKHZhbHVlLCBvYmplY3QpIHtcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBpc0tleSh2YWx1ZSwgb2JqZWN0KSA/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFsdWUpKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYXN0UGF0aDtcbiIsInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N5bWJvbDtcbiIsInZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19TeW1ib2wnKSxcbiAgICBnZXRSYXdUYWcgPSByZXF1aXJlKCcuL19nZXRSYXdUYWcnKSxcbiAgICBvYmplY3RUb1N0cmluZyA9IHJlcXVpcmUoJy4vX29iamVjdFRvU3RyaW5nJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VHZXRUYWc7XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sO1xuIiwidmFyIGZyZWVHbG9iYWwgPSByZXF1aXJlKCcuL19mcmVlR2xvYmFsJyk7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb290O1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNPYmplY3RMaWtlO1xuIiwidmFyIGJhc2VJc05hdGl2ZSA9IHJlcXVpcmUoJy4vX2Jhc2VJc05hdGl2ZScpLFxuICAgIGdldFZhbHVlID0gcmVxdWlyZSgnLi9fZ2V0VmFsdWUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsIi8qKlxuICogUGVyZm9ybXMgYVxuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAqXG4gKiBfLmVxKG9iamVjdCwgb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKCdhJywgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKCdhJywgT2JqZWN0KCdhJykpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKE5hTiwgTmFOKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gZXEodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxO1xuIiwidmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi9pc1N5bWJvbCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcga2V5IGlmIGl0J3Mgbm90IGEgc3RyaW5nIG9yIHN5bWJvbC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIHtzdHJpbmd8c3ltYm9sfSBSZXR1cm5zIHRoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIHRvS2V5KHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgfHwgaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciByZXN1bHQgPSAodmFsdWUgKyAnJyk7XG4gIHJldHVybiAocmVzdWx0ID09ICcwJyAmJiAoMSAvIHZhbHVlKSA9PSAtSU5GSU5JVFkpID8gJy0wJyA6IHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b0tleTtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzMiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzJyk7XG5cbnZhciBfZXh0ZW5kczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leHRlbmRzMik7XG5cbmV4cG9ydHMuYXJndW1lbnRDb250YWluZXIgPSBhcmd1bWVudENvbnRhaW5lcjtcbmV4cG9ydHMuaWRlbnRpdHkgPSBpZGVudGl0eTtcbmV4cG9ydHMuZmxhdHRlbkFycmF5ID0gZmxhdHRlbkFycmF5O1xuZXhwb3J0cy50cmVlVHJhdmVyc2UgPSB0cmVlVHJhdmVyc2U7XG5leHBvcnRzLmZsYXR0ZW5GaWVsZHMgPSBmbGF0dGVuRmllbGRzO1xuZXhwb3J0cy5ub3JtYWxpemVWYWxpZGF0ZVJ1bGVzID0gbm9ybWFsaXplVmFsaWRhdGVSdWxlcztcbmV4cG9ydHMuZ2V0VmFsaWRhdGVUcmlnZ2VycyA9IGdldFZhbGlkYXRlVHJpZ2dlcnM7XG5leHBvcnRzLmdldFZhbHVlRnJvbUV2ZW50ID0gZ2V0VmFsdWVGcm9tRXZlbnQ7XG5leHBvcnRzLmdldEVycm9yU3RycyA9IGdldEVycm9yU3RycztcbmV4cG9ydHMuZ2V0UGFyYW1zID0gZ2V0UGFyYW1zO1xuZXhwb3J0cy5pc0VtcHR5T2JqZWN0ID0gaXNFbXB0eU9iamVjdDtcbmV4cG9ydHMuaGFzUnVsZXMgPSBoYXNSdWxlcztcbmV4cG9ydHMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG5cbnZhciBfaG9pc3ROb25SZWFjdFN0YXRpY3MgPSByZXF1aXJlKCdob2lzdC1ub24tcmVhY3Qtc3RhdGljcycpO1xuXG52YXIgX2hvaXN0Tm9uUmVhY3RTdGF0aWNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hvaXN0Tm9uUmVhY3RTdGF0aWNzKTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gZ2V0RGlzcGxheU5hbWUoV3JhcHBlZENvbXBvbmVudCkge1xuICByZXR1cm4gV3JhcHBlZENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBXcmFwcGVkQ29tcG9uZW50Lm5hbWUgfHwgJ1dyYXBwZWRDb21wb25lbnQnO1xufVxuXG5mdW5jdGlvbiBhcmd1bWVudENvbnRhaW5lcihDb250YWluZXIsIFdyYXBwZWRDb21wb25lbnQpIHtcbiAgLyogZXNsaW50IG5vLXBhcmFtLXJlYXNzaWduOjAgKi9cbiAgQ29udGFpbmVyLmRpc3BsYXlOYW1lID0gJ0Zvcm0oJyArIGdldERpc3BsYXlOYW1lKFdyYXBwZWRDb21wb25lbnQpICsgJyknO1xuICBDb250YWluZXIuV3JhcHBlZENvbXBvbmVudCA9IFdyYXBwZWRDb21wb25lbnQ7XG4gIHJldHVybiAoMCwgX2hvaXN0Tm9uUmVhY3RTdGF0aWNzMlsnZGVmYXVsdCddKShDb250YWluZXIsIFdyYXBwZWRDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBpZGVudGl0eShvYmopIHtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZmxhdHRlbkFycmF5KGFycikge1xuICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgYXJyKTtcbn1cblxuZnVuY3Rpb24gdHJlZVRyYXZlcnNlKCkge1xuICB2YXIgcGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7XG4gIHZhciB0cmVlID0gYXJndW1lbnRzWzFdO1xuICB2YXIgaXNMZWFmTm9kZSA9IGFyZ3VtZW50c1syXTtcbiAgdmFyIGVycm9yTWVzc2FnZSA9IGFyZ3VtZW50c1szXTtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzWzRdO1xuXG4gIGlmIChpc0xlYWZOb2RlKHBhdGgsIHRyZWUpKSB7XG4gICAgY2FsbGJhY2socGF0aCwgdHJlZSk7XG4gIH0gZWxzZSBpZiAodHJlZSA9PT0gdW5kZWZpbmVkIHx8IHRyZWUgPT09IG51bGwpIHtcbiAgICAvLyBEbyBub3RoaW5nXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0cmVlKSkge1xuICAgIHRyZWUuZm9yRWFjaChmdW5jdGlvbiAoc3ViVHJlZSwgaW5kZXgpIHtcbiAgICAgIHJldHVybiB0cmVlVHJhdmVyc2UocGF0aCArICdbJyArIGluZGV4ICsgJ10nLCBzdWJUcmVlLCBpc0xlYWZOb2RlLCBlcnJvck1lc3NhZ2UsIGNhbGxiYWNrKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJdCdzIG9iamVjdCBhbmQgbm90IGEgbGVhZiBub2RlXG4gICAgaWYgKHR5cGVvZiB0cmVlICE9PSAnb2JqZWN0Jykge1xuICAgICAgKDAsIF93YXJuaW5nMlsnZGVmYXVsdCddKShmYWxzZSwgZXJyb3JNZXNzYWdlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgT2JqZWN0LmtleXModHJlZSkuZm9yRWFjaChmdW5jdGlvbiAoc3ViVHJlZUtleSkge1xuICAgICAgdmFyIHN1YlRyZWUgPSB0cmVlW3N1YlRyZWVLZXldO1xuICAgICAgdHJlZVRyYXZlcnNlKCcnICsgcGF0aCArIChwYXRoID8gJy4nIDogJycpICsgc3ViVHJlZUtleSwgc3ViVHJlZSwgaXNMZWFmTm9kZSwgZXJyb3JNZXNzYWdlLCBjYWxsYmFjayk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmxhdHRlbkZpZWxkcyhtYXliZU5lc3RlZEZpZWxkcywgaXNMZWFmTm9kZSwgZXJyb3JNZXNzYWdlKSB7XG4gIHZhciBmaWVsZHMgPSB7fTtcbiAgdHJlZVRyYXZlcnNlKHVuZGVmaW5lZCwgbWF5YmVOZXN0ZWRGaWVsZHMsIGlzTGVhZk5vZGUsIGVycm9yTWVzc2FnZSwgZnVuY3Rpb24gKHBhdGgsIG5vZGUpIHtcbiAgICBmaWVsZHNbcGF0aF0gPSBub2RlO1xuICB9KTtcbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplVmFsaWRhdGVSdWxlcyh2YWxpZGF0ZSwgcnVsZXMsIHZhbGlkYXRlVHJpZ2dlcikge1xuICB2YXIgdmFsaWRhdGVSdWxlcyA9IHZhbGlkYXRlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgIHZhciBuZXdJdGVtID0gKDAsIF9leHRlbmRzM1snZGVmYXVsdCddKSh7fSwgaXRlbSwge1xuICAgICAgdHJpZ2dlcjogaXRlbS50cmlnZ2VyIHx8IFtdXG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBuZXdJdGVtLnRyaWdnZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICBuZXdJdGVtLnRyaWdnZXIgPSBbbmV3SXRlbS50cmlnZ2VyXTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0l0ZW07XG4gIH0pO1xuICBpZiAocnVsZXMpIHtcbiAgICB2YWxpZGF0ZVJ1bGVzLnB1c2goe1xuICAgICAgdHJpZ2dlcjogdmFsaWRhdGVUcmlnZ2VyID8gW10uY29uY2F0KHZhbGlkYXRlVHJpZ2dlcikgOiBbXSxcbiAgICAgIHJ1bGVzOiBydWxlc1xuICAgIH0pO1xuICB9XG4gIHJldHVybiB2YWxpZGF0ZVJ1bGVzO1xufVxuXG5mdW5jdGlvbiBnZXRWYWxpZGF0ZVRyaWdnZXJzKHZhbGlkYXRlUnVsZXMpIHtcbiAgcmV0dXJuIHZhbGlkYXRlUnVsZXMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgcmV0dXJuICEhaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aDtcbiAgfSkubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0udHJpZ2dlcjtcbiAgfSkucmVkdWNlKGZ1bmN0aW9uIChwcmUsIGN1cnIpIHtcbiAgICByZXR1cm4gcHJlLmNvbmNhdChjdXJyKTtcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiBnZXRWYWx1ZUZyb21FdmVudChlKSB7XG4gIC8vIFRvIHN1cHBvcnQgY3VzdG9tIGVsZW1lbnRcbiAgaWYgKCFlIHx8ICFlLnRhcmdldCkge1xuICAgIHJldHVybiBlO1xuICB9XG4gIHZhciB0YXJnZXQgPSBlLnRhcmdldDtcblxuICByZXR1cm4gdGFyZ2V0LnR5cGUgPT09ICdjaGVja2JveCcgPyB0YXJnZXQuY2hlY2tlZCA6IHRhcmdldC52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0RXJyb3JTdHJzKGVycm9ycykge1xuICBpZiAoZXJyb3JzKSB7XG4gICAgcmV0dXJuIGVycm9ycy5tYXAoZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmIChlICYmIGUubWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gZS5tZXNzYWdlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGU7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGVycm9ycztcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1zKG5zLCBvcHQsIGNiKSB7XG4gIHZhciBuYW1lcyA9IG5zO1xuICB2YXIgb3B0aW9ucyA9IG9wdDtcbiAgdmFyIGNhbGxiYWNrID0gY2I7XG4gIGlmIChjYiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBuYW1lcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY2FsbGJhY2sgPSBuYW1lcztcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgIG5hbWVzID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShuYW1lcykpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0gbmFtZXMgfHwge307XG4gICAgICBuYW1lcyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lczogbmFtZXMsXG4gICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICBjYWxsYmFjazogY2FsbGJhY2tcbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmopIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBoYXNSdWxlcyh2YWxpZGF0ZSkge1xuICBpZiAodmFsaWRhdGUpIHtcbiAgICByZXR1cm4gdmFsaWRhdGUuc29tZShmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGg7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBzdGFydHNXaXRoKHN0ciwgcHJlZml4KSB7XG4gIHJldHVybiBzdHIubGFzdEluZGV4T2YocHJlZml4LCAwKSA9PT0gMDtcbn0iLCJ2YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmV4cG9ydCB2YXIgTWluaVN0b3JlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG52YXIgUHJvdmlkZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFByb3ZpZGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChNaW5pU3RvcmVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB0aGlzLnByb3BzLnN0b3JlIH0sIHRoaXMucHJvcHMuY2hpbGRyZW4pKTtcbiAgICB9O1xuICAgIHJldHVybiBQcm92aWRlcjtcbn0oUmVhY3QuQ29tcG9uZW50KSk7XG5leHBvcnQgeyBQcm92aWRlciB9O1xuIiwidmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHNoYWxsb3dFcXVhbCBmcm9tICdzaGFsbG93ZXF1YWwnO1xuaW1wb3J0IGhvaXN0U3RhdGljcyBmcm9tICdob2lzdC1ub24tcmVhY3Qtc3RhdGljcyc7XG5pbXBvcnQgeyBNaW5pU3RvcmVDb250ZXh0IH0gZnJvbSAnLi9Qcm92aWRlcic7XG5mdW5jdGlvbiBnZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIFdyYXBwZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgV3JhcHBlZENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnO1xufVxudmFyIGRlZmF1bHRNYXBTdGF0ZVRvUHJvcHMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAoe30pOyB9O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzLCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMgPT09IHZvaWQgMCkgeyBvcHRpb25zID0ge307IH1cbiAgICB2YXIgc2hvdWxkU3Vic2NyaWJlID0gISFtYXBTdGF0ZVRvUHJvcHM7XG4gICAgdmFyIGZpbmFsTWFwU3RhdGVUb1Byb3BzID0gbWFwU3RhdGVUb1Byb3BzIHx8IGRlZmF1bHRNYXBTdGF0ZVRvUHJvcHM7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHdyYXBXaXRoQ29ubmVjdChXcmFwcGVkQ29tcG9uZW50KSB7XG4gICAgICAgIHZhciBDb25uZWN0ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgICAgICAgICAgX19leHRlbmRzKENvbm5lY3QsIF9zdXBlcik7XG4gICAgICAgICAgICBmdW5jdGlvbiBDb25uZWN0KHByb3BzLCBjb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpIHx8IHRoaXM7XG4gICAgICAgICAgICAgICAgX3RoaXMudW5zdWJzY3JpYmUgPSBudWxsO1xuICAgICAgICAgICAgICAgIF90aGlzLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfdGhpcy51bnN1YnNjcmliZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXh0U3RhdGUgPSBmaW5hbE1hcFN0YXRlVG9Qcm9wcyhfdGhpcy5zdG9yZS5nZXRTdGF0ZSgpLCBfdGhpcy5wcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgc3Vic2NyaWJlZDogbmV4dFN0YXRlIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX3RoaXMuc3RvcmUgPSBfdGhpcy5jb250ZXh0O1xuICAgICAgICAgICAgICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVkOiBmaW5hbE1hcFN0YXRlVG9Qcm9wcyhfdGhpcy5zdG9yZS5nZXRTdGF0ZSgpLCBwcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIHN0b3JlOiBfdGhpcy5zdG9yZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQ29ubmVjdC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiAocHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgICAgICAgICAgIC8vIHVzaW5nIG93blByb3BzXG4gICAgICAgICAgICAgICAgaWYgKG1hcFN0YXRlVG9Qcm9wcyAmJiBtYXBTdGF0ZVRvUHJvcHMubGVuZ3RoID09PSAyICYmIHByb3BzICE9PSBwcmV2U3RhdGUucHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZWQ6IGZpbmFsTWFwU3RhdGVUb1Byb3BzKHByZXZTdGF0ZS5zdG9yZS5nZXRTdGF0ZSgpLCBwcm9wcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IHByb3BzOiBwcm9wcyB9O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJ5U3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgQ29ubmVjdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cnlVbnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9IGZ1bmN0aW9uIChuZXh0UHJvcHMsIG5leHRTdGF0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoIXNoYWxsb3dFcXVhbCh0aGlzLnByb3BzLCBuZXh0UHJvcHMpIHx8XG4gICAgICAgICAgICAgICAgICAgICFzaGFsbG93RXF1YWwodGhpcy5zdGF0ZS5zdWJzY3JpYmVkLCBuZXh0U3RhdGUuc3Vic2NyaWJlZCkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QucHJvdG90eXBlLnRyeVN1YnNjcmliZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2hvdWxkU3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUgPSB0aGlzLnN0b3JlLnN1YnNjcmliZSh0aGlzLmhhbmRsZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QucHJvdG90eXBlLnRyeVVuc3Vic2NyaWJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcHMgPSBfX2Fzc2lnbihfX2Fzc2lnbihfX2Fzc2lnbih7fSwgdGhpcy5wcm9wcyksIHRoaXMuc3RhdGUuc3Vic2NyaWJlZCksIHsgc3RvcmU6IHRoaXMuc3RvcmUgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoV3JhcHBlZENvbXBvbmVudCwgX19hc3NpZ24oe30sIHByb3BzLCB7IHJlZjogdGhpcy5wcm9wcy5taW5pU3RvcmVGb3J3YXJkZWRSZWYgfSkpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIENvbm5lY3QuZGlzcGxheU5hbWUgPSBcIkNvbm5lY3QoXCIgKyBnZXREaXNwbGF5TmFtZShXcmFwcGVkQ29tcG9uZW50KSArIFwiKVwiO1xuICAgICAgICAgICAgQ29ubmVjdC5jb250ZXh0VHlwZSA9IE1pbmlTdG9yZUNvbnRleHQ7XG4gICAgICAgICAgICByZXR1cm4gQ29ubmVjdDtcbiAgICAgICAgfShSZWFjdC5Db21wb25lbnQpKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZm9yd2FyZFJlZikge1xuICAgICAgICAgICAgdmFyIGZvcndhcmRlZCA9IFJlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKHByb3BzLCByZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChDb25uZWN0LCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgbWluaVN0b3JlRm9yd2FyZGVkUmVmOiByZWYgfSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gaG9pc3RTdGF0aWNzKGZvcndhcmRlZCwgV3JhcHBlZENvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhvaXN0U3RhdGljcyhDb25uZWN0LCBXcmFwcGVkQ29tcG9uZW50KTtcbiAgICB9O1xufVxuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoaW5pdGlhbFN0YXRlKSB7XG4gICAgdmFyIHN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBbXTtcbiAgICBmdW5jdGlvbiBzZXRTdGF0ZShwYXJ0aWFsKSB7XG4gICAgICAgIHN0YXRlID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHN0YXRlKSwgcGFydGlhbCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnNbaV0oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdWJzY3JpYmUobGlzdGVuZXIpIHtcbiAgICAgICAgbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gICAgICAgICAgICBsaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2V0U3RhdGU6IHNldFN0YXRlLFxuICAgICAgICBnZXRTdGF0ZTogZ2V0U3RhdGUsXG4gICAgICAgIHN1YnNjcmliZTogc3Vic2NyaWJlLFxuICAgIH07XG59XG4iLCJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuXG5mdW5jdGlvbiBvd25LZXlzKG9iamVjdCwgZW51bWVyYWJsZU9ubHkpIHsgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpOyBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykgeyB2YXIgc3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqZWN0KTsgaWYgKGVudW1lcmFibGVPbmx5KSBzeW1ib2xzID0gc3ltYm9scy5maWx0ZXIoZnVuY3Rpb24gKHN5bSkgeyByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHN5bSkuZW51bWVyYWJsZTsgfSk7IGtleXMucHVzaC5hcHBseShrZXlzLCBzeW1ib2xzKTsgfSByZXR1cm4ga2V5czsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldICE9IG51bGwgPyBhcmd1bWVudHNbaV0gOiB7fTsgaWYgKGkgJSAyKSB7IG93bktleXMoT2JqZWN0KHNvdXJjZSksIHRydWUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgeyBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTsgfSk7IH0gZWxzZSBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpIHsgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhzb3VyY2UpKTsgfSBlbHNlIHsgb3duS2V5cyhPYmplY3Qoc291cmNlKSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpOyB9KTsgfSB9IHJldHVybiB0YXJnZXQ7IH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gb21pdChvYmosIGZpZWxkcykge1xuICB2YXIgY2xvbmUgPSBfb2JqZWN0U3ByZWFkKHt9LCBvYmopO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcbiAgICBmaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBkZWxldGUgY2xvbmVba2V5XTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjbG9uZTtcbn0iLCIvKipcbiAqIFNhZmUgY2hhaW5lZCBmdW5jdGlvblxuICpcbiAqIFdpbGwgb25seSBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gaWYgbmVlZGVkLFxuICogb3RoZXJ3aXNlIHdpbGwgcGFzcyBiYWNrIGV4aXN0aW5nIGZ1bmN0aW9ucyBvciBudWxsLlxuICpcbiAqIEByZXR1cm5zIHtmdW5jdGlvbnxudWxsfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDaGFpbmVkRnVuY3Rpb24oKSB7XG4gIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBhcmdzWzBdO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGNoYWluZWRGdW5jdGlvbigpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcmdzW2ldICYmIGFyZ3NbaV0uYXBwbHkpIHtcbiAgICAgICAgYXJnc1tpXS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn0iLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG4vLyBNSVQgTGljZW5zZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9rYWltYWxsZWEvaXNNb2JpbGVcbnZhciBhcHBsZVBob25lID0gL2lQaG9uZS9pO1xudmFyIGFwcGxlSXBvZCA9IC9pUG9kL2k7XG52YXIgYXBwbGVUYWJsZXQgPSAvaVBhZC9pO1xudmFyIGFuZHJvaWRQaG9uZSA9IC9cXGJBbmRyb2lkKD86LispTW9iaWxlXFxiL2k7IC8vIE1hdGNoICdBbmRyb2lkJyBBTkQgJ01vYmlsZSdcblxudmFyIGFuZHJvaWRUYWJsZXQgPSAvQW5kcm9pZC9pO1xudmFyIGFtYXpvblBob25lID0gL1xcYkFuZHJvaWQoPzouKylTRDQ5MzBVUlxcYi9pO1xudmFyIGFtYXpvblRhYmxldCA9IC9cXGJBbmRyb2lkKD86LispKD86S0ZbQS1aXXsyLDR9KVxcYi9pO1xudmFyIHdpbmRvd3NQaG9uZSA9IC9XaW5kb3dzIFBob25lL2k7XG52YXIgd2luZG93c1RhYmxldCA9IC9cXGJXaW5kb3dzKD86LispQVJNXFxiL2k7IC8vIE1hdGNoICdXaW5kb3dzJyBBTkQgJ0FSTSdcblxudmFyIG90aGVyQmxhY2tiZXJyeSA9IC9CbGFja0JlcnJ5L2k7XG52YXIgb3RoZXJCbGFja2JlcnJ5MTAgPSAvQkIxMC9pO1xudmFyIG90aGVyT3BlcmEgPSAvT3BlcmEgTWluaS9pO1xudmFyIG90aGVyQ2hyb21lID0gL1xcYihDcmlPU3xDaHJvbWUpKD86LispTW9iaWxlL2k7XG52YXIgb3RoZXJGaXJlZm94ID0gL01vYmlsZSg/Oi4rKUZpcmVmb3hcXGIvaTsgLy8gTWF0Y2ggJ01vYmlsZScgQU5EICdGaXJlZm94J1xuXG5mdW5jdGlvbiBtYXRjaChyZWdleCwgdXNlckFnZW50KSB7XG4gIHJldHVybiByZWdleC50ZXN0KHVzZXJBZ2VudCk7XG59XG5cbmZ1bmN0aW9uIGlzTW9iaWxlKHVzZXJBZ2VudCkge1xuICB2YXIgdWEgPSB1c2VyQWdlbnQgfHwgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudCA6ICcnKTsgLy8gRmFjZWJvb2sgbW9iaWxlIGFwcCdzIGludGVncmF0ZWQgYnJvd3NlciBhZGRzIGEgYnVuY2ggb2Ygc3RyaW5ncyB0aGF0XG4gIC8vIG1hdGNoIGV2ZXJ5dGhpbmcuIFN0cmlwIGl0IG91dCBpZiBpdCBleGlzdHMuXG5cbiAgdmFyIHRtcCA9IHVhLnNwbGl0KCdbRkJBTicpO1xuXG4gIGlmICh0eXBlb2YgdG1wWzFdICE9PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBfdG1wID0gdG1wO1xuXG4gICAgdmFyIF90bXAyID0gX3NsaWNlZFRvQXJyYXkoX3RtcCwgMSk7XG5cbiAgICB1YSA9IF90bXAyWzBdO1xuICB9IC8vIFR3aXR0ZXIgbW9iaWxlIGFwcCdzIGludGVncmF0ZWQgYnJvd3NlciBvbiBpUGFkIGFkZHMgYSBcIlR3aXR0ZXIgZm9yXG4gIC8vIGlQaG9uZVwiIHN0cmluZy4gU2FtZSBwcm9iYWJseSBoYXBwZW5zIG9uIG90aGVyIHRhYmxldCBwbGF0Zm9ybXMuXG4gIC8vIFRoaXMgd2lsbCBjb25mdXNlIGRldGVjdGlvbiBzbyBzdHJpcCBpdCBvdXQgaWYgaXQgZXhpc3RzLlxuXG5cbiAgdG1wID0gdWEuc3BsaXQoJ1R3aXR0ZXInKTtcblxuICBpZiAodHlwZW9mIHRtcFsxXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgX3RtcDMgPSB0bXA7XG5cbiAgICB2YXIgX3RtcDQgPSBfc2xpY2VkVG9BcnJheShfdG1wMywgMSk7XG5cbiAgICB1YSA9IF90bXA0WzBdO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IHtcbiAgICBhcHBsZToge1xuICAgICAgcGhvbmU6IG1hdGNoKGFwcGxlUGhvbmUsIHVhKSAmJiAhbWF0Y2god2luZG93c1Bob25lLCB1YSksXG4gICAgICBpcG9kOiBtYXRjaChhcHBsZUlwb2QsIHVhKSxcbiAgICAgIHRhYmxldDogIW1hdGNoKGFwcGxlUGhvbmUsIHVhKSAmJiBtYXRjaChhcHBsZVRhYmxldCwgdWEpICYmICFtYXRjaCh3aW5kb3dzUGhvbmUsIHVhKSxcbiAgICAgIGRldmljZTogKG1hdGNoKGFwcGxlUGhvbmUsIHVhKSB8fCBtYXRjaChhcHBsZUlwb2QsIHVhKSB8fCBtYXRjaChhcHBsZVRhYmxldCwgdWEpKSAmJiAhbWF0Y2god2luZG93c1Bob25lLCB1YSlcbiAgICB9LFxuICAgIGFtYXpvbjoge1xuICAgICAgcGhvbmU6IG1hdGNoKGFtYXpvblBob25lLCB1YSksXG4gICAgICB0YWJsZXQ6ICFtYXRjaChhbWF6b25QaG9uZSwgdWEpICYmIG1hdGNoKGFtYXpvblRhYmxldCwgdWEpLFxuICAgICAgZGV2aWNlOiBtYXRjaChhbWF6b25QaG9uZSwgdWEpIHx8IG1hdGNoKGFtYXpvblRhYmxldCwgdWEpXG4gICAgfSxcbiAgICBhbmRyb2lkOiB7XG4gICAgICBwaG9uZTogIW1hdGNoKHdpbmRvd3NQaG9uZSwgdWEpICYmIG1hdGNoKGFtYXpvblBob25lLCB1YSkgfHwgIW1hdGNoKHdpbmRvd3NQaG9uZSwgdWEpICYmIG1hdGNoKGFuZHJvaWRQaG9uZSwgdWEpLFxuICAgICAgdGFibGV0OiAhbWF0Y2god2luZG93c1Bob25lLCB1YSkgJiYgIW1hdGNoKGFtYXpvblBob25lLCB1YSkgJiYgIW1hdGNoKGFuZHJvaWRQaG9uZSwgdWEpICYmIChtYXRjaChhbWF6b25UYWJsZXQsIHVhKSB8fCBtYXRjaChhbmRyb2lkVGFibGV0LCB1YSkpLFxuICAgICAgZGV2aWNlOiAhbWF0Y2god2luZG93c1Bob25lLCB1YSkgJiYgKG1hdGNoKGFtYXpvblBob25lLCB1YSkgfHwgbWF0Y2goYW1hem9uVGFibGV0LCB1YSkgfHwgbWF0Y2goYW5kcm9pZFBob25lLCB1YSkgfHwgbWF0Y2goYW5kcm9pZFRhYmxldCwgdWEpKSB8fCBtYXRjaCgvXFxib2todHRwXFxiL2ksIHVhKVxuICAgIH0sXG4gICAgd2luZG93czoge1xuICAgICAgcGhvbmU6IG1hdGNoKHdpbmRvd3NQaG9uZSwgdWEpLFxuICAgICAgdGFibGV0OiBtYXRjaCh3aW5kb3dzVGFibGV0LCB1YSksXG4gICAgICBkZXZpY2U6IG1hdGNoKHdpbmRvd3NQaG9uZSwgdWEpIHx8IG1hdGNoKHdpbmRvd3NUYWJsZXQsIHVhKVxuICAgIH0sXG4gICAgb3RoZXI6IHtcbiAgICAgIGJsYWNrYmVycnk6IG1hdGNoKG90aGVyQmxhY2tiZXJyeSwgdWEpLFxuICAgICAgYmxhY2tiZXJyeTEwOiBtYXRjaChvdGhlckJsYWNrYmVycnkxMCwgdWEpLFxuICAgICAgb3BlcmE6IG1hdGNoKG90aGVyT3BlcmEsIHVhKSxcbiAgICAgIGZpcmVmb3g6IG1hdGNoKG90aGVyRmlyZWZveCwgdWEpLFxuICAgICAgY2hyb21lOiBtYXRjaChvdGhlckNocm9tZSwgdWEpLFxuICAgICAgZGV2aWNlOiBtYXRjaChvdGhlckJsYWNrYmVycnksIHVhKSB8fCBtYXRjaChvdGhlckJsYWNrYmVycnkxMCwgdWEpIHx8IG1hdGNoKG90aGVyT3BlcmEsIHVhKSB8fCBtYXRjaChvdGhlckZpcmVmb3gsIHVhKSB8fCBtYXRjaChvdGhlckNocm9tZSwgdWEpXG4gICAgfSxcbiAgICAvLyBBZGRpdGlvbmFsXG4gICAgYW55OiBudWxsLFxuICAgIHBob25lOiBudWxsLFxuICAgIHRhYmxldDogbnVsbFxuICB9O1xuICByZXN1bHQuYW55ID0gcmVzdWx0LmFwcGxlLmRldmljZSB8fCByZXN1bHQuYW5kcm9pZC5kZXZpY2UgfHwgcmVzdWx0LndpbmRvd3MuZGV2aWNlIHx8IHJlc3VsdC5vdGhlci5kZXZpY2U7IC8vIGV4Y2x1ZGVzICdvdGhlcicgZGV2aWNlcyBhbmQgaXBvZHMsIHRhcmdldGluZyB0b3VjaHNjcmVlbiBwaG9uZXNcblxuICByZXN1bHQucGhvbmUgPSByZXN1bHQuYXBwbGUucGhvbmUgfHwgcmVzdWx0LmFuZHJvaWQucGhvbmUgfHwgcmVzdWx0LndpbmRvd3MucGhvbmU7XG4gIHJlc3VsdC50YWJsZXQgPSByZXN1bHQuYXBwbGUudGFibGV0IHx8IHJlc3VsdC5hbmRyb2lkLnRhYmxldCB8fCByZXN1bHQud2luZG93cy50YWJsZXQ7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbnZhciBkZWZhdWx0UmVzdWx0ID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBpc01vYmlsZSgpKSwge30sIHtcbiAgaXNNb2JpbGU6IGlzTW9iaWxlXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdFJlc3VsdDsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaXNNb2JpbGUgZnJvbSAnLi91dGlscy9pc01vYmlsZSc7XG5leHBvcnQgZnVuY3Rpb24gbm9vcCgpIHt9XG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5RnJvbUNoaWxkcmVuSW5kZXgoY2hpbGQsIG1lbnVFdmVudEtleSwgaW5kZXgpIHtcbiAgdmFyIHByZWZpeCA9IG1lbnVFdmVudEtleSB8fCAnJztcbiAgcmV0dXJuIGNoaWxkLmtleSB8fCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiaXRlbV9cIikuY29uY2F0KGluZGV4KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZW51SWRGcm9tU3ViTWVudUV2ZW50S2V5KGV2ZW50S2V5KSB7XG4gIHJldHVybiBcIlwiLmNvbmNhdChldmVudEtleSwgXCItbWVudS1cIik7XG59XG5leHBvcnQgZnVuY3Rpb24gbG9vcE1lbnVJdGVtKGNoaWxkcmVuLCBjYikge1xuICB2YXIgaW5kZXggPSAtMTtcbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGMpIHtcbiAgICBpbmRleCArPSAxO1xuXG4gICAgaWYgKGMgJiYgYy50eXBlICYmIGMudHlwZS5pc01lbnVJdGVtR3JvdXApIHtcbiAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goYy5wcm9wcy5jaGlsZHJlbiwgZnVuY3Rpb24gKGMyKSB7XG4gICAgICAgIGluZGV4ICs9IDE7XG4gICAgICAgIGNiKGMyLCBpbmRleCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2IoYywgaW5kZXgpO1xuICAgIH1cbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gbG9vcE1lbnVJdGVtUmVjdXJzaXZlbHkoY2hpbGRyZW4sIGtleXMsIHJldCkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFjaGlsZHJlbiB8fCByZXQuZmluZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjKSB7XG4gICAgaWYgKGMpIHtcbiAgICAgIHZhciBjb25zdHJ1Y3QgPSBjLnR5cGU7XG5cbiAgICAgIGlmICghY29uc3RydWN0IHx8ICEoY29uc3RydWN0LmlzU3ViTWVudSB8fCBjb25zdHJ1Y3QuaXNNZW51SXRlbSB8fCBjb25zdHJ1Y3QuaXNNZW51SXRlbUdyb3VwKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXlzLmluZGV4T2YoYy5rZXkpICE9PSAtMSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgcmV0LmZpbmQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChjLnByb3BzLmNoaWxkcmVuKSB7XG4gICAgICAgIGxvb3BNZW51SXRlbVJlY3Vyc2l2ZWx5KGMucHJvcHMuY2hpbGRyZW4sIGtleXMsIHJldCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbmV4cG9ydCB2YXIgbWVudUFsbFByb3BzID0gWydkZWZhdWx0U2VsZWN0ZWRLZXlzJywgJ3NlbGVjdGVkS2V5cycsICdkZWZhdWx0T3BlbktleXMnLCAnb3BlbktleXMnLCAnbW9kZScsICdnZXRQb3B1cENvbnRhaW5lcicsICdvblNlbGVjdCcsICdvbkRlc2VsZWN0JywgJ29uRGVzdHJveScsICdvcGVuVHJhbnNpdGlvbk5hbWUnLCAnb3BlbkFuaW1hdGlvbicsICdzdWJNZW51T3BlbkRlbGF5JywgJ3N1Yk1lbnVDbG9zZURlbGF5JywgJ2ZvcmNlU3ViTWVudVJlbmRlcicsICd0cmlnZ2VyU3ViTWVudUFjdGlvbicsICdsZXZlbCcsICdzZWxlY3RhYmxlJywgJ211bHRpcGxlJywgJ29uT3BlbkNoYW5nZScsICd2aXNpYmxlJywgJ2ZvY3VzYWJsZScsICdkZWZhdWx0QWN0aXZlRmlyc3QnLCAncHJlZml4Q2xzJywgJ2lubGluZUluZGVudCcsICdwYXJlbnRNZW51JywgJ3RpdGxlJywgJ3Jvb3RQcmVmaXhDbHMnLCAnZXZlbnRLZXknLCAnYWN0aXZlJywgJ29uSXRlbUhvdmVyJywgJ29uVGl0bGVNb3VzZUVudGVyJywgJ29uVGl0bGVNb3VzZUxlYXZlJywgJ29uVGl0bGVDbGljaycsICdwb3B1cEFsaWduJywgJ3BvcHVwT2Zmc2V0JywgJ2lzT3BlbicsICdyZW5kZXJNZW51SXRlbScsICdtYW51YWxSZWYnLCAnc3ViTWVudUtleScsICdkaXNhYmxlZCcsICdpbmRleCcsICdpc1NlbGVjdGVkJywgJ3N0b3JlJywgJ2FjdGl2ZUtleScsICdidWlsdGluUGxhY2VtZW50cycsICdvdmVyZmxvd2VkSW5kaWNhdG9yJywgJ21vdGlvbicsIC8vIHRoZSBmb2xsb3dpbmcga2V5cyBmb3VuZCBuZWVkIHRvIGJlIHJlbW92ZWQgZnJvbSB0ZXN0IHJlZ3Jlc3Npb25cbidhdHRyaWJ1dGUnLCAndmFsdWUnLCAncG9wdXBDbGFzc05hbWUnLCAnaW5saW5lQ29sbGFwc2VkJywgJ21lbnUnLCAndGhlbWUnLCAnaXRlbUljb24nLCAnZXhwYW5kSWNvbiddOyAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE0MDA3XG4vLyByZWY6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM2MDg4OVxuLy8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0IHJldHVybiB0aGUgZnVsbCBwcmVjaXNpb24gdmFsdWUsIHdoaWNoIGlzXG4vLyBub3QgdGhlIHNhbWUgYmVoYXZpb3IgYXMgb24gY2hyb21lLiBTZXQgdGhlIHByZWNpc2lvbiB0byA2IHRvXG4vLyB1bmlmeSB0aGVpciBiZWhhdmlvclxuXG5leHBvcnQgdmFyIGdldFdpZHRoID0gZnVuY3Rpb24gZ2V0V2lkdGgoZWxlbSkge1xuICB2YXIgaW5jbHVkZU1hcmdpbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogZmFsc2U7XG4gIHZhciB3aWR0aCA9IGVsZW0gJiYgdHlwZW9mIGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nICYmIGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgaWYgKHdpZHRoKSB7XG4gICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcbiAgICAgIHZhciBfZ2V0Q29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbSksXG4gICAgICAgICAgbWFyZ2luTGVmdCA9IF9nZXRDb21wdXRlZFN0eWxlLm1hcmdpbkxlZnQsXG4gICAgICAgICAgbWFyZ2luUmlnaHQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodDtcblxuICAgICAgd2lkdGggKz0gK21hcmdpbkxlZnQucmVwbGFjZSgncHgnLCAnJykgKyArbWFyZ2luUmlnaHQucmVwbGFjZSgncHgnLCAnJyk7XG4gICAgfVxuXG4gICAgd2lkdGggPSArd2lkdGgudG9GaXhlZCg2KTtcbiAgfVxuXG4gIHJldHVybiB3aWR0aCB8fCAwO1xufTtcbmV4cG9ydCB2YXIgc2V0U3R5bGUgPSBmdW5jdGlvbiBzZXRTdHlsZShlbGVtLCBzdHlsZVByb3BlcnR5LCB2YWx1ZSkge1xuICBpZiAoZWxlbSAmJiBfdHlwZW9mKGVsZW0uc3R5bGUpID09PSAnb2JqZWN0Jykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIGVsZW0uc3R5bGVbc3R5bGVQcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgfVxufTtcbmV4cG9ydCB2YXIgaXNNb2JpbGVEZXZpY2UgPSBmdW5jdGlvbiBpc01vYmlsZURldmljZSgpIHtcbiAgcmV0dXJuIGlzTW9iaWxlLmFueTtcbn07IiwidmFyIGF1dG9BZGp1c3RPdmVyZmxvdyA9IHtcbiAgYWRqdXN0WDogMSxcbiAgYWRqdXN0WTogMVxufTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IHtcbiAgdG9wTGVmdDoge1xuICAgIHBvaW50czogWydibCcsICd0bCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgLTddXG4gIH0sXG4gIGJvdHRvbUxlZnQ6IHtcbiAgICBwb2ludHM6IFsndGwnLCAnYmwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzAsIDddXG4gIH0sXG4gIGxlZnRUb3A6IHtcbiAgICBwb2ludHM6IFsndHInLCAndGwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWy00LCAwXVxuICB9LFxuICByaWdodFRvcDoge1xuICAgIHBvaW50czogWyd0bCcsICd0ciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbNCwgMF1cbiAgfVxufTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50c1J0bCA9IHtcbiAgdG9wTGVmdDoge1xuICAgIHBvaW50czogWydibCcsICd0bCddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbMCwgLTddXG4gIH0sXG4gIGJvdHRvbUxlZnQ6IHtcbiAgICBwb2ludHM6IFsndGwnLCAnYmwnXSxcbiAgICBvdmVyZmxvdzogYXV0b0FkanVzdE92ZXJmbG93LFxuICAgIG9mZnNldDogWzAsIDddXG4gIH0sXG4gIHJpZ2h0VG9wOiB7XG4gICAgcG9pbnRzOiBbJ3RyJywgJ3RsJ10sXG4gICAgb3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvdyxcbiAgICBvZmZzZXQ6IFstNCwgMF1cbiAgfSxcbiAgbGVmdFRvcDoge1xuICAgIHBvaW50czogWyd0bCcsICd0ciddLFxuICAgIG92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3csXG4gICAgb2Zmc2V0OiBbNCwgMF1cbiAgfVxufTtcbmV4cG9ydCBkZWZhdWx0IHBsYWNlbWVudHM7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFRyaWdnZXIgZnJvbSAncmMtdHJpZ2dlcic7XG5pbXBvcnQgcmFmIGZyb20gXCJyYy11dGlsL2VzL3JhZlwiO1xuaW1wb3J0IEtleUNvZGUgZnJvbSBcInJjLXV0aWwvZXMvS2V5Q29kZVwiO1xuaW1wb3J0IENTU01vdGlvbiBmcm9tICdyYy1tb3Rpb24nO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBjb25uZWN0IH0gZnJvbSAnbWluaS1zdG9yZSc7XG5pbXBvcnQgU3ViUG9wdXBNZW51IGZyb20gJy4vU3ViUG9wdXBNZW51JztcbmltcG9ydCB7IHBsYWNlbWVudHMsIHBsYWNlbWVudHNSdGwgfSBmcm9tICcuL3BsYWNlbWVudHMnO1xuaW1wb3J0IHsgbm9vcCwgbG9vcE1lbnVJdGVtUmVjdXJzaXZlbHksIGdldE1lbnVJZEZyb21TdWJNZW51RXZlbnRLZXksIG1lbnVBbGxQcm9wcyB9IGZyb20gJy4vdXRpbCc7XG52YXIgZ3VpZCA9IDA7XG52YXIgcG9wdXBQbGFjZW1lbnRNYXAgPSB7XG4gIGhvcml6b250YWw6ICdib3R0b21MZWZ0JyxcbiAgdmVydGljYWw6ICdyaWdodFRvcCcsXG4gICd2ZXJ0aWNhbC1sZWZ0JzogJ3JpZ2h0VG9wJyxcbiAgJ3ZlcnRpY2FsLXJpZ2h0JzogJ2xlZnRUb3AnXG59O1xuXG52YXIgdXBkYXRlRGVmYXVsdEFjdGl2ZUZpcnN0ID0gZnVuY3Rpb24gdXBkYXRlRGVmYXVsdEFjdGl2ZUZpcnN0KHN0b3JlLCBldmVudEtleSwgZGVmYXVsdEFjdGl2ZUZpcnN0KSB7XG4gIHZhciBtZW51SWQgPSBnZXRNZW51SWRGcm9tU3ViTWVudUV2ZW50S2V5KGV2ZW50S2V5KTtcbiAgdmFyIHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgc3RvcmUuc2V0U3RhdGUoe1xuICAgIGRlZmF1bHRBY3RpdmVGaXJzdDogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZS5kZWZhdWx0QWN0aXZlRmlyc3QpLCB7fSwgX2RlZmluZVByb3BlcnR5KHt9LCBtZW51SWQsIGRlZmF1bHRBY3RpdmVGaXJzdCkpXG4gIH0pO1xufTtcblxuZXhwb3J0IHZhciBTdWJNZW51ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTdWJNZW51LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFN1Yk1lbnUpO1xuXG4gIGZ1bmN0aW9uIFN1Yk1lbnUocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU3ViTWVudSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLm9uRGVzdHJveSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIF90aGlzLnByb3BzLm9uRGVzdHJveShrZXkpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogbm90ZTpcbiAgICAgKiAgVGhpcyBsZWdhY3kgY29kZSB0aGF0IGBvbktleURvd25gIGlzIGNhbGxlZCBieSBwYXJlbnQgaW5zdGVhZCBvZiBkb20gc2VsZi5cbiAgICAgKiAgd2hpY2ggbmVlZCByZXR1cm4gY29kZSB0byBjaGVjayBpZiB0aGlzIGV2ZW50IGlzIGhhbmRsZWRcbiAgICAgKi9cblxuXG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBrZXlDb2RlID0gZS5rZXlDb2RlO1xuICAgICAgdmFyIG1lbnUgPSBfdGhpcy5tZW51SW5zdGFuY2U7XG4gICAgICB2YXIgc3RvcmUgPSBfdGhpcy5wcm9wcy5zdG9yZTtcblxuICAgICAgdmFyIHZpc2libGUgPSBfdGhpcy5nZXRWaXNpYmxlKCk7XG5cbiAgICAgIGlmIChrZXlDb2RlID09PSBLZXlDb2RlLkVOVEVSKSB7XG4gICAgICAgIF90aGlzLm9uVGl0bGVDbGljayhlKTtcblxuICAgICAgICB1cGRhdGVEZWZhdWx0QWN0aXZlRmlyc3Qoc3RvcmUsIF90aGlzLnByb3BzLmV2ZW50S2V5LCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChrZXlDb2RlID09PSBLZXlDb2RlLlJJR0hUKSB7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgbWVudS5vbktleURvd24oZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3RoaXMudHJpZ2dlck9wZW5DaGFuZ2UodHJ1ZSk7IC8vIG5lZWQgdG8gdXBkYXRlIGN1cnJlbnQgbWVudSdzIGRlZmF1bHRBY3RpdmVGaXJzdCB2YWx1ZVxuXG5cbiAgICAgICAgICB1cGRhdGVEZWZhdWx0QWN0aXZlRmlyc3Qoc3RvcmUsIF90aGlzLnByb3BzLmV2ZW50S2V5LCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoa2V5Q29kZSA9PT0gS2V5Q29kZS5MRUZUKSB7XG4gICAgICAgIHZhciBoYW5kbGVkO1xuXG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgaGFuZGxlZCA9IG1lbnUub25LZXlEb3duKGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICBfdGhpcy50cmlnZ2VyT3BlbkNoYW5nZShmYWxzZSk7XG5cbiAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoYW5kbGVkO1xuICAgICAgfVxuXG4gICAgICBpZiAodmlzaWJsZSAmJiAoa2V5Q29kZSA9PT0gS2V5Q29kZS5VUCB8fCBrZXlDb2RlID09PSBLZXlDb2RlLkRPV04pKSB7XG4gICAgICAgIHJldHVybiBtZW51Lm9uS2V5RG93bihlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgX3RoaXMub25PcGVuQ2hhbmdlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLnByb3BzLm9uT3BlbkNoYW5nZShlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMub25Qb3B1cFZpc2libGVDaGFuZ2UgPSBmdW5jdGlvbiAodmlzaWJsZSkge1xuICAgICAgX3RoaXMudHJpZ2dlck9wZW5DaGFuZ2UodmlzaWJsZSwgdmlzaWJsZSA/ICdtb3VzZWVudGVyJyA6ICdtb3VzZWxlYXZlJyk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uTW91c2VFbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBrZXkgPSBfdGhpcyRwcm9wcy5ldmVudEtleSxcbiAgICAgICAgICBvbk1vdXNlRW50ZXIgPSBfdGhpcyRwcm9wcy5vbk1vdXNlRW50ZXIsXG4gICAgICAgICAgc3RvcmUgPSBfdGhpcyRwcm9wcy5zdG9yZTtcbiAgICAgIHVwZGF0ZURlZmF1bHRBY3RpdmVGaXJzdChzdG9yZSwgX3RoaXMucHJvcHMuZXZlbnRLZXksIGZhbHNlKTtcbiAgICAgIG9uTW91c2VFbnRlcih7XG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBkb21FdmVudDogZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uTW91c2VMZWF2ZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgcGFyZW50TWVudSA9IF90aGlzJHByb3BzMi5wYXJlbnRNZW51LFxuICAgICAgICAgIGV2ZW50S2V5ID0gX3RoaXMkcHJvcHMyLmV2ZW50S2V5LFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSA9IF90aGlzJHByb3BzMi5vbk1vdXNlTGVhdmU7XG4gICAgICBwYXJlbnRNZW51LnN1Yk1lbnVJbnN0YW5jZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpO1xuICAgICAgb25Nb3VzZUxlYXZlKHtcbiAgICAgICAga2V5OiBldmVudEtleSxcbiAgICAgICAgZG9tRXZlbnQ6IGVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5vblRpdGxlTW91c2VFbnRlciA9IGZ1bmN0aW9uIChkb21FdmVudCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzMyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGtleSA9IF90aGlzJHByb3BzMy5ldmVudEtleSxcbiAgICAgICAgICBvbkl0ZW1Ib3ZlciA9IF90aGlzJHByb3BzMy5vbkl0ZW1Ib3ZlcixcbiAgICAgICAgICBvblRpdGxlTW91c2VFbnRlciA9IF90aGlzJHByb3BzMy5vblRpdGxlTW91c2VFbnRlcjtcbiAgICAgIG9uSXRlbUhvdmVyKHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGhvdmVyOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIG9uVGl0bGVNb3VzZUVudGVyKHtcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIGRvbUV2ZW50OiBkb21FdmVudFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uVGl0bGVNb3VzZUxlYXZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBwYXJlbnRNZW51ID0gX3RoaXMkcHJvcHM0LnBhcmVudE1lbnUsXG4gICAgICAgICAgZXZlbnRLZXkgPSBfdGhpcyRwcm9wczQuZXZlbnRLZXksXG4gICAgICAgICAgb25JdGVtSG92ZXIgPSBfdGhpcyRwcm9wczQub25JdGVtSG92ZXIsXG4gICAgICAgICAgb25UaXRsZU1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wczQub25UaXRsZU1vdXNlTGVhdmU7XG4gICAgICBwYXJlbnRNZW51LnN1Yk1lbnVJbnN0YW5jZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpO1xuICAgICAgb25JdGVtSG92ZXIoe1xuICAgICAgICBrZXk6IGV2ZW50S2V5LFxuICAgICAgICBob3ZlcjogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgb25UaXRsZU1vdXNlTGVhdmUoe1xuICAgICAgICBrZXk6IGV2ZW50S2V5LFxuICAgICAgICBkb21FdmVudDogZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uVGl0bGVDbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHM7XG5cbiAgICAgIHByb3BzLm9uVGl0bGVDbGljayh7XG4gICAgICAgIGtleTogcHJvcHMuZXZlbnRLZXksXG4gICAgICAgIGRvbUV2ZW50OiBlXG4gICAgICB9KTtcblxuICAgICAgaWYgKHByb3BzLnRyaWdnZXJTdWJNZW51QWN0aW9uID09PSAnaG92ZXInKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgX3RoaXMudHJpZ2dlck9wZW5DaGFuZ2UoIV90aGlzLmdldFZpc2libGUoKSwgJ2NsaWNrJyk7XG5cbiAgICAgIHVwZGF0ZURlZmF1bHRBY3RpdmVGaXJzdChwcm9wcy5zdG9yZSwgX3RoaXMucHJvcHMuZXZlbnRLZXksIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMub25TdWJNZW51Q2xpY2sgPSBmdW5jdGlvbiAoaW5mbykge1xuICAgICAgLy8gaW4gdGhlIGNhc2Ugb2Ygb3ZlcmZsb3dlZCBzdWJtZW51XG4gICAgICAvLyBvbkNsaWNrIGlzIG5vdCBjb3BpZWQgb3ZlclxuICAgICAgaWYgKHR5cGVvZiBfdGhpcy5wcm9wcy5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uQ2xpY2soX3RoaXMuYWRkS2V5UGF0aChpbmZvKSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLm9uU2VsZWN0ID0gZnVuY3Rpb24gKGluZm8pIHtcbiAgICAgIF90aGlzLnByb3BzLm9uU2VsZWN0KGluZm8pO1xuICAgIH07XG5cbiAgICBfdGhpcy5vbkRlc2VsZWN0ID0gZnVuY3Rpb24gKGluZm8pIHtcbiAgICAgIF90aGlzLnByb3BzLm9uRGVzZWxlY3QoaW5mbyk7XG4gICAgfTtcblxuICAgIF90aGlzLmdldFByZWZpeENscyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdChfdGhpcy5wcm9wcy5yb290UHJlZml4Q2xzLCBcIi1zdWJtZW51XCIpO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRBY3RpdmVDbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuZ2V0UHJlZml4Q2xzKCksIFwiLWFjdGl2ZVwiKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0RGlzYWJsZWRDbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMuZ2V0UHJlZml4Q2xzKCksIFwiLWRpc2FibGVkXCIpO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRTZWxlY3RlZENsYXNzTmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdChfdGhpcy5nZXRQcmVmaXhDbHMoKSwgXCItc2VsZWN0ZWRcIik7XG4gICAgfTtcblxuICAgIF90aGlzLmdldE9wZW5DbGFzc05hbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQoX3RoaXMucHJvcHMucm9vdFByZWZpeENscywgXCItc3VibWVudS1vcGVuXCIpO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRWaXNpYmxlID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90aGlzLnN0YXRlLmlzT3BlbjtcbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0TW9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdGhpcy5zdGF0ZS5tb2RlO1xuICAgIH07XG5cbiAgICBfdGhpcy5zYXZlTWVudUluc3RhbmNlID0gZnVuY3Rpb24gKGMpIHtcbiAgICAgIC8vIGNoaWxkcmVuIG1lbnUgaW5zdGFuY2VcbiAgICAgIF90aGlzLm1lbnVJbnN0YW5jZSA9IGM7XG4gICAgfTtcblxuICAgIF90aGlzLmFkZEtleVBhdGggPSBmdW5jdGlvbiAoaW5mbykge1xuICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgaW5mbyksIHt9LCB7XG4gICAgICAgIGtleVBhdGg6IChpbmZvLmtleVBhdGggfHwgW10pLmNvbmNhdChfdGhpcy5wcm9wcy5ldmVudEtleSlcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy50cmlnZ2VyT3BlbkNoYW5nZSA9IGZ1bmN0aW9uIChvcGVuLCB0eXBlKSB7XG4gICAgICB2YXIga2V5ID0gX3RoaXMucHJvcHMuZXZlbnRLZXk7XG5cbiAgICAgIHZhciBvcGVuQ2hhbmdlID0gZnVuY3Rpb24gb3BlbkNoYW5nZSgpIHtcbiAgICAgICAgX3RoaXMub25PcGVuQ2hhbmdlKHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICBpdGVtOiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSxcbiAgICAgICAgICB0cmlnZ2VyOiB0eXBlLFxuICAgICAgICAgIG9wZW46IG9wZW5cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBpZiAodHlwZSA9PT0gJ21vdXNlZW50ZXInKSB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBtb3VzZWVudGVyIGhhcHBlbiBhZnRlciBvdGhlciBtZW51IGl0ZW0ncyBtb3VzZWxlYXZlXG4gICAgICAgIF90aGlzLm1vdXNlZW50ZXJUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgb3BlbkNoYW5nZSgpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wZW5DaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuaXNDaGlsZHJlblNlbGVjdGVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHJldCA9IHtcbiAgICAgICAgZmluZDogZmFsc2VcbiAgICAgIH07XG4gICAgICBsb29wTWVudUl0ZW1SZWN1cnNpdmVseShfdGhpcy5wcm9wcy5jaGlsZHJlbiwgX3RoaXMucHJvcHMuc2VsZWN0ZWRLZXlzLCByZXQpO1xuICAgICAgcmV0dXJuIHJldC5maW5kO1xuICAgIH07XG5cbiAgICBfdGhpcy5pc0lubGluZU1vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuZ2V0TW9kZSgpID09PSAnaW5saW5lJztcbiAgICB9O1xuXG4gICAgX3RoaXMuYWRqdXN0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghX3RoaXMuc3ViTWVudVRpdGxlIHx8ICFfdGhpcy5tZW51SW5zdGFuY2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgcG9wdXBNZW51ID0gUmVhY3RET00uZmluZERPTU5vZGUoX3RoaXMubWVudUluc3RhbmNlKTtcblxuICAgICAgaWYgKHBvcHVwTWVudS5vZmZzZXRXaWR0aCA+PSBfdGhpcy5zdWJNZW51VGl0bGUub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cblxuXG4gICAgICBwb3B1cE1lbnUuc3R5bGUubWluV2lkdGggPSBcIlwiLmNvbmNhdChfdGhpcy5zdWJNZW51VGl0bGUub2Zmc2V0V2lkdGgsIFwicHhcIik7XG4gICAgfTtcblxuICAgIF90aGlzLnNhdmVTdWJNZW51VGl0bGUgPSBmdW5jdGlvbiAoc3ViTWVudVRpdGxlKSB7XG4gICAgICBfdGhpcy5zdWJNZW51VGl0bGUgPSBzdWJNZW51VGl0bGU7XG4gICAgfTtcblxuICAgIF90aGlzLmdldEJhc2VQcm9wcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemUyID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUyLnByb3BzO1xuXG4gICAgICB2YXIgbWVyZ2VkTW9kZSA9IF90aGlzLmdldE1vZGUoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogbWVyZ2VkTW9kZSA9PT0gJ2hvcml6b250YWwnID8gJ3ZlcnRpY2FsJyA6IG1lcmdlZE1vZGUsXG4gICAgICAgIHZpc2libGU6IF90aGlzLmdldFZpc2libGUoKSxcbiAgICAgICAgbGV2ZWw6IHByb3BzLmxldmVsICsgMSxcbiAgICAgICAgaW5saW5lSW5kZW50OiBwcm9wcy5pbmxpbmVJbmRlbnQsXG4gICAgICAgIGZvY3VzYWJsZTogZmFsc2UsXG4gICAgICAgIG9uQ2xpY2s6IF90aGlzLm9uU3ViTWVudUNsaWNrLFxuICAgICAgICBvblNlbGVjdDogX3RoaXMub25TZWxlY3QsXG4gICAgICAgIG9uRGVzZWxlY3Q6IF90aGlzLm9uRGVzZWxlY3QsXG4gICAgICAgIG9uRGVzdHJveTogX3RoaXMub25EZXN0cm95LFxuICAgICAgICBzZWxlY3RlZEtleXM6IHByb3BzLnNlbGVjdGVkS2V5cyxcbiAgICAgICAgZXZlbnRLZXk6IFwiXCIuY29uY2F0KHByb3BzLmV2ZW50S2V5LCBcIi1tZW51LVwiKSxcbiAgICAgICAgb3BlbktleXM6IHByb3BzLm9wZW5LZXlzLFxuICAgICAgICBtb3Rpb246IHByb3BzLm1vdGlvbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBfdGhpcy5vbk9wZW5DaGFuZ2UsXG4gICAgICAgIHN1Yk1lbnVPcGVuRGVsYXk6IHByb3BzLnN1Yk1lbnVPcGVuRGVsYXksXG4gICAgICAgIHBhcmVudE1lbnU6IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICBzdWJNZW51Q2xvc2VEZWxheTogcHJvcHMuc3ViTWVudUNsb3NlRGVsYXksXG4gICAgICAgIGZvcmNlU3ViTWVudVJlbmRlcjogcHJvcHMuZm9yY2VTdWJNZW51UmVuZGVyLFxuICAgICAgICB0cmlnZ2VyU3ViTWVudUFjdGlvbjogcHJvcHMudHJpZ2dlclN1Yk1lbnVBY3Rpb24sXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzOiBwcm9wcy5idWlsdGluUGxhY2VtZW50cyxcbiAgICAgICAgZGVmYXVsdEFjdGl2ZUZpcnN0OiBwcm9wcy5zdG9yZS5nZXRTdGF0ZSgpLmRlZmF1bHRBY3RpdmVGaXJzdFtnZXRNZW51SWRGcm9tU3ViTWVudUV2ZW50S2V5KHByb3BzLmV2ZW50S2V5KV0sXG4gICAgICAgIG11bHRpcGxlOiBwcm9wcy5tdWx0aXBsZSxcbiAgICAgICAgcHJlZml4Q2xzOiBwcm9wcy5yb290UHJlZml4Q2xzLFxuICAgICAgICBpZDogX3RoaXMuaW50ZXJuYWxNZW51SWQsXG4gICAgICAgIG1hbnVhbFJlZjogX3RoaXMuc2F2ZU1lbnVJbnN0YW5jZSxcbiAgICAgICAgaXRlbUljb246IHByb3BzLml0ZW1JY29uLFxuICAgICAgICBleHBhbmRJY29uOiBwcm9wcy5leHBhbmRJY29uLFxuICAgICAgICBkaXJlY3Rpb246IHByb3BzLmRpcmVjdGlvblxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0TW90aW9uID0gZnVuY3Rpb24gKG1vZGUsIHZpc2libGUpIHtcbiAgICAgIHZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemUzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgaGF2ZVJlbmRlcmVkID0gX2Fzc2VydFRoaXNJbml0aWFsaXplMy5oYXZlUmVuZGVyZWQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczUgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBtb3Rpb24gPSBfdGhpcyRwcm9wczUubW90aW9uLFxuICAgICAgICAgIHJvb3RQcmVmaXhDbHMgPSBfdGhpcyRwcm9wczUucm9vdFByZWZpeENsczsgLy8gZG9uJ3Qgc2hvdyB0cmFuc2l0aW9uIG9uIGZpcnN0IHJlbmRlcmluZyAobm8gYW5pbWF0aW9uIGZvciBvcGVuZWQgbWVudSlcbiAgICAgIC8vIHNob3cgYXBwZWFyIHRyYW5zaXRpb24gaWYgaXQncyBub3QgdmlzaWJsZSAobm90IHN1cmUgd2h5KVxuICAgICAgLy8gc2hvdyBhcHBlYXIgdHJhbnNpdGlvbiBpZiBpdCdzIG5vdCBpbmxpbmUgbW9kZVxuXG4gICAgICB2YXIgbWVyZ2VkTW90aW9uID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBtb3Rpb24pLCB7fSwge1xuICAgICAgICBsZWF2ZWRDbGFzc05hbWU6IFwiXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLWhpZGRlblwiKSxcbiAgICAgICAgcmVtb3ZlT25MZWF2ZTogZmFsc2UsXG4gICAgICAgIG1vdGlvbkFwcGVhcjogaGF2ZVJlbmRlcmVkIHx8ICF2aXNpYmxlIHx8IG1vZGUgIT09ICdpbmxpbmUnXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG1lcmdlZE1vdGlvbjtcbiAgICB9O1xuXG4gICAgdmFyIHN0b3JlID0gcHJvcHMuc3RvcmUsXG4gICAgICAgIGV2ZW50S2V5ID0gcHJvcHMuZXZlbnRLZXk7XG5cbiAgICB2YXIgX3N0b3JlJGdldFN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKSxcbiAgICAgICAgZGVmYXVsdEFjdGl2ZUZpcnN0ID0gX3N0b3JlJGdldFN0YXRlLmRlZmF1bHRBY3RpdmVGaXJzdDtcblxuICAgIF90aGlzLmlzUm9vdE1lbnUgPSBmYWxzZTtcbiAgICB2YXIgdmFsdWUgPSBmYWxzZTtcblxuICAgIGlmIChkZWZhdWx0QWN0aXZlRmlyc3QpIHtcbiAgICAgIHZhbHVlID0gZGVmYXVsdEFjdGl2ZUZpcnN0W2V2ZW50S2V5XTtcbiAgICB9XG5cbiAgICB1cGRhdGVEZWZhdWx0QWN0aXZlRmlyc3Qoc3RvcmUsIGV2ZW50S2V5LCB2YWx1ZSk7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBtb2RlOiBwcm9wcy5tb2RlLFxuICAgICAgaXNPcGVuOiBwcm9wcy5pc09wZW5cbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTdWJNZW51LCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuY29tcG9uZW50RGlkVXBkYXRlKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgbW9kZSA9IF90aGlzJHByb3BzNi5tb2RlLFxuICAgICAgICAgIHBhcmVudE1lbnUgPSBfdGhpcyRwcm9wczYucGFyZW50TWVudSxcbiAgICAgICAgICBtYW51YWxSZWYgPSBfdGhpcyRwcm9wczYubWFudWFsUmVmLFxuICAgICAgICAgIGlzT3BlbiA9IF90aGlzJHByb3BzNi5pc09wZW47XG5cbiAgICAgIHZhciB1cGRhdGVTdGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZVN0YXRlKCkge1xuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgICAgaXNPcGVuOiBpc09wZW5cbiAgICAgICAgfSk7XG4gICAgICB9OyAvLyBEZWxheSBzeW5jIHdoZW4gbW9kZSBjaGFuZ2VkIGluIGNhc2Ugb3BlbktleXMgY2hhbmdlIG5vdCBzeW5jXG5cblxuICAgICAgdmFyIGlzT3BlbkNoYW5nZWQgPSBpc09wZW4gIT09IHRoaXMuc3RhdGUuaXNPcGVuO1xuICAgICAgdmFyIGlzTW9kZUNoYW5nZWQgPSBtb2RlICE9PSB0aGlzLnN0YXRlLm1vZGU7XG5cbiAgICAgIGlmIChpc01vZGVDaGFuZ2VkIHx8IGlzT3BlbkNoYW5nZWQpIHtcbiAgICAgICAgcmFmLmNhbmNlbCh0aGlzLnVwZGF0ZVN0YXRlUmFmKTtcblxuICAgICAgICBpZiAoaXNNb2RlQ2hhbmdlZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGVSYWYgPSByYWYodXBkYXRlU3RhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZVN0YXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gaW52b2tlIGN1c3RvbWl6ZWQgcmVmIHRvIGV4cG9zZSBjb21wb25lbnQgdG8gbWl4aW5cblxuXG4gICAgICBpZiAobWFudWFsUmVmKSB7XG4gICAgICAgIG1hbnVhbFJlZih0aGlzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgIT09ICdob3Jpem9udGFsJyB8fCAhKHBhcmVudE1lbnUgPT09IG51bGwgfHwgcGFyZW50TWVudSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyZW50TWVudS5pc1Jvb3RNZW51KSB8fCAhaXNPcGVuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5taW5XaWR0aFRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIF90aGlzMi5hZGp1c3RXaWR0aCgpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzNyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgb25EZXN0cm95ID0gX3RoaXMkcHJvcHM3Lm9uRGVzdHJveSxcbiAgICAgICAgICBldmVudEtleSA9IF90aGlzJHByb3BzNy5ldmVudEtleTtcblxuICAgICAgaWYgKG9uRGVzdHJveSkge1xuICAgICAgICBvbkRlc3Ryb3koZXZlbnRLZXkpO1xuICAgICAgfVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5cblxuICAgICAgaWYgKHRoaXMubWluV2lkdGhUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1pbldpZHRoVGltZW91dCk7XG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cblxuXG4gICAgICBpZiAodGhpcy5tb3VzZWVudGVyVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5tb3VzZWVudGVyVGltZW91dCk7XG4gICAgICB9XG5cbiAgICAgIHJhZi5jYW5jZWwodGhpcy51cGRhdGVTdGF0ZVJhZik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclBvcHVwTWVudVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJQb3B1cE1lbnUoY2xhc3NOYW1lLCBzdHlsZSkge1xuICAgICAgdmFyIGJhc2VQcm9wcyA9IHRoaXMuZ2V0QmFzZVByb3BzKCk7XG4gICAgICAvKipcbiAgICAgICAqIHpvbWJpZWo6IFdoeSBTdWJQb3B1cE1lbnUgaGVyZT9cbiAgICAgICAqIFNlZW1zIHdoYXRldmVyIHBvcHVwIG9yIGlubGluZSBtb2RlIGJvdGggd2lsbCByZW5kZXIgU3ViUG9wdXBNZW51LlxuICAgICAgICogSXQncyBjb250cm9sbGVkIGJ5IFRyaWdnZXIgZm9yIHBvcHVwIG9yIG5vdC5cbiAgICAgICAqL1xuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU3ViUG9wdXBNZW51LCBfZXh0ZW5kcyh7fSwgYmFzZVByb3BzLCB7XG4gICAgICAgIGlkOiB0aGlzLmludGVybmFsTWVudUlkLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9KSwgdGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckNoaWxkcmVuXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckNoaWxkcmVuKCkge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBiYXNlUHJvcHMgPSB0aGlzLmdldEJhc2VQcm9wcygpO1xuICAgICAgdmFyIG1vZGUgPSBiYXNlUHJvcHMubW9kZSxcbiAgICAgICAgICB2aXNpYmxlID0gYmFzZVByb3BzLnZpc2libGUsXG4gICAgICAgICAgZm9yY2VTdWJNZW51UmVuZGVyID0gYmFzZVByb3BzLmZvcmNlU3ViTWVudVJlbmRlcixcbiAgICAgICAgICBkaXJlY3Rpb24gPSBiYXNlUHJvcHMuZGlyZWN0aW9uOyAvLyBbTGVnYWN5XSBnZXRNb3Rpb24gbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGBoYXZlUmVuZGVyZWRgXG5cbiAgICAgIHZhciBtZXJnZWRNb3Rpb24gPSB0aGlzLmdldE1vdGlvbihtb2RlLCB2aXNpYmxlKTtcbiAgICAgIHRoaXMuaGF2ZVJlbmRlcmVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaGF2ZU9wZW5lZCA9IHRoaXMuaGF2ZU9wZW5lZCB8fCB2aXNpYmxlIHx8IGZvcmNlU3ViTWVudVJlbmRlcjsgLy8gbmV2ZXIgcmVuZGVyZWQgbm90IHBsYW5uaW5nIHRvLCBkb24ndCByZW5kZXJcblxuICAgICAgaWYgKCF0aGlzLmhhdmVPcGVuZWQpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICB2YXIgc2hhcmVkQ2xhc3NOYW1lID0gY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChiYXNlUHJvcHMucHJlZml4Q2xzLCBcIi1zdWJcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQoYmFzZVByb3BzLnByZWZpeENscywgXCItcnRsXCIpLCBkaXJlY3Rpb24gPT09ICdydGwnKSk7XG5cbiAgICAgIGlmICghdGhpcy5pc0lubGluZU1vZGUoKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJQb3B1cE1lbnUoc2hhcmVkQ2xhc3NOYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENTU01vdGlvbiwgX2V4dGVuZHMoe1xuICAgICAgICB2aXNpYmxlOiBiYXNlUHJvcHMudmlzaWJsZVxuICAgICAgfSwgbWVyZ2VkTW90aW9uKSwgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgdmFyIGNsYXNzTmFtZSA9IF9yZWYuY2xhc3NOYW1lLFxuICAgICAgICAgICAgc3R5bGUgPSBfcmVmLnN0eWxlO1xuICAgICAgICB2YXIgbWVyZ2VkQ2xhc3NOYW1lID0gY2xhc3NOYW1lcyhzaGFyZWRDbGFzc05hbWUsIGNsYXNzTmFtZSk7XG4gICAgICAgIHJldHVybiBfdGhpczMucmVuZGVyUG9wdXBNZW51KG1lcmdlZENsYXNzTmFtZSwgc3R5bGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXMyLCBfcHJvcHMkcGFyZW50TWVudSwgX2NsYXNzTmFtZXMzO1xuXG4gICAgICB2YXIgcHJvcHMgPSBfb2JqZWN0U3ByZWFkKHt9LCB0aGlzLnByb3BzKTtcblxuICAgICAgdmFyIHZpc2libGUgPSB0aGlzLmdldFZpc2libGUoKTtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSB0aGlzLmdldFByZWZpeENscygpO1xuICAgICAgdmFyIGlubGluZSA9IHRoaXMuaXNJbmxpbmVNb2RlKCk7XG4gICAgICB2YXIgbWVyZ2VkTW9kZSA9IHRoaXMuZ2V0TW9kZSgpO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IGNsYXNzTmFtZXMocHJlZml4Q2xzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQobWVyZ2VkTW9kZSksIChfY2xhc3NOYW1lczIgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMiwgcHJvcHMuY2xhc3NOYW1lLCAhIXByb3BzLmNsYXNzTmFtZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lczIsIHRoaXMuZ2V0T3BlbkNsYXNzTmFtZSgpLCB2aXNpYmxlKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMiwgdGhpcy5nZXRBY3RpdmVDbGFzc05hbWUoKSwgcHJvcHMuYWN0aXZlIHx8IHZpc2libGUgJiYgIWlubGluZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lczIsIHRoaXMuZ2V0RGlzYWJsZWRDbGFzc05hbWUoKSwgcHJvcHMuZGlzYWJsZWQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMyLCB0aGlzLmdldFNlbGVjdGVkQ2xhc3NOYW1lKCksIHRoaXMuaXNDaGlsZHJlblNlbGVjdGVkKCkpLCBfY2xhc3NOYW1lczIpKTtcblxuICAgICAgaWYgKCF0aGlzLmludGVybmFsTWVudUlkKSB7XG4gICAgICAgIGlmIChwcm9wcy5ldmVudEtleSkge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxNZW51SWQgPSBcIlwiLmNvbmNhdChwcm9wcy5ldmVudEtleSwgXCIkTWVudVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBndWlkICs9IDE7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbE1lbnVJZCA9IFwiJF9fJFwiLmNvbmNhdChndWlkLCBcIiRNZW51XCIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBtb3VzZUV2ZW50cyA9IHt9O1xuICAgICAgdmFyIHRpdGxlQ2xpY2tFdmVudHMgPSB7fTtcbiAgICAgIHZhciB0aXRsZU1vdXNlRXZlbnRzID0ge307XG5cbiAgICAgIGlmICghcHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgbW91c2VFdmVudHMgPSB7XG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiB0aGlzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICBvbk1vdXNlRW50ZXI6IHRoaXMub25Nb3VzZUVudGVyXG4gICAgICAgIH07IC8vIG9ubHkgd29ya3MgaW4gdGl0bGUsIG5vdCBvdXRlciBsaVxuXG4gICAgICAgIHRpdGxlQ2xpY2tFdmVudHMgPSB7XG4gICAgICAgICAgb25DbGljazogdGhpcy5vblRpdGxlQ2xpY2tcbiAgICAgICAgfTtcbiAgICAgICAgdGl0bGVNb3VzZUV2ZW50cyA9IHtcbiAgICAgICAgICBvbk1vdXNlRW50ZXI6IHRoaXMub25UaXRsZU1vdXNlRW50ZXIsXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiB0aGlzLm9uVGl0bGVNb3VzZUxlYXZlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHZhciBzdHlsZSA9IHt9O1xuICAgICAgdmFyIGRpcmVjdGlvbiA9IHByb3BzLmRpcmVjdGlvbjtcbiAgICAgIHZhciBpc1JUTCA9IGRpcmVjdGlvbiA9PT0gJ3J0bCc7XG5cbiAgICAgIGlmIChpbmxpbmUpIHtcbiAgICAgICAgaWYgKGlzUlRMKSB7XG4gICAgICAgICAgc3R5bGUucGFkZGluZ1JpZ2h0ID0gcHJvcHMuaW5saW5lSW5kZW50ICogcHJvcHMubGV2ZWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3R5bGUucGFkZGluZ0xlZnQgPSBwcm9wcy5pbmxpbmVJbmRlbnQgKiBwcm9wcy5sZXZlbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgYXJpYU93bnMgPSB7fTsgLy8gb25seSBzZXQgYXJpYS1vd25zIHdoZW4gbWVudSBpcyBvcGVuXG4gICAgICAvLyBvdGhlcndpc2UgaXQgd291bGQgYmUgYW4gaW52YWxpZCBhcmlhLW93bnMgdmFsdWVcbiAgICAgIC8vIHNpbmNlIGNvcnJlc3BvbmRpbmcgbm9kZSBjYW5ub3QgYmUgZm91bmRcblxuICAgICAgaWYgKHRoaXMuZ2V0VmlzaWJsZSgpKSB7XG4gICAgICAgIGFyaWFPd25zID0ge1xuICAgICAgICAgICdhcmlhLW93bnMnOiB0aGlzLmludGVybmFsTWVudUlkXG4gICAgICAgIH07XG4gICAgICB9IC8vIGV4cGFuZCBjdXN0b20gaWNvbiBzaG91bGQgTk9UIGJlIGRpc3BsYXllZCBpbiBtZW51IHdpdGggaG9yaXpvbnRhbCBtb2RlLlxuXG5cbiAgICAgIHZhciBpY29uID0gbnVsbDtcblxuICAgICAgaWYgKG1lcmdlZE1vZGUgIT09ICdob3Jpem9udGFsJykge1xuICAgICAgICBpY29uID0gdGhpcy5wcm9wcy5leHBhbmRJY29uOyAvLyBSZWFjdE5vZGVcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMuZXhwYW5kSWNvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGljb24gPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudCh0aGlzLnByb3BzLmV4cGFuZEljb24sIF9vYmplY3RTcHJlYWQoe30sIHRoaXMucHJvcHMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgdGl0bGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogdGhpcy5zYXZlU3ViTWVudVRpdGxlLFxuICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10aXRsZVwiKSxcbiAgICAgICAgcm9sZTogXCJidXR0b25cIlxuICAgICAgfSwgdGl0bGVNb3VzZUV2ZW50cywgdGl0bGVDbGlja0V2ZW50cywge1xuICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogdmlzaWJsZVxuICAgICAgfSwgYXJpYU93bnMsIHtcbiAgICAgICAgXCJhcmlhLWhhc3BvcHVwXCI6IFwidHJ1ZVwiLFxuICAgICAgICB0aXRsZTogdHlwZW9mIHByb3BzLnRpdGxlID09PSAnc3RyaW5nJyA/IHByb3BzLnRpdGxlIDogdW5kZWZpbmVkXG4gICAgICB9KSwgcHJvcHMudGl0bGUsIGljb24gfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFycm93XCIpXG4gICAgICB9KSk7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnJlbmRlckNoaWxkcmVuKCk7XG4gICAgICB2YXIgZ2V0UG9wdXBDb250YWluZXIgPSAoKF9wcm9wcyRwYXJlbnRNZW51ID0gcHJvcHMucGFyZW50TWVudSkgPT09IG51bGwgfHwgX3Byb3BzJHBhcmVudE1lbnUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9wcyRwYXJlbnRNZW51LmlzUm9vdE1lbnUpID8gcHJvcHMucGFyZW50TWVudS5wcm9wcy5nZXRQb3B1cENvbnRhaW5lciA6IGZ1bmN0aW9uICh0cmlnZ2VyTm9kZSkge1xuICAgICAgICByZXR1cm4gdHJpZ2dlck5vZGUucGFyZW50Tm9kZTtcbiAgICAgIH07XG4gICAgICB2YXIgcG9wdXBQbGFjZW1lbnQgPSBwb3B1cFBsYWNlbWVudE1hcFttZXJnZWRNb2RlXTtcbiAgICAgIHZhciBwb3B1cEFsaWduID0gcHJvcHMucG9wdXBPZmZzZXQgPyB7XG4gICAgICAgIG9mZnNldDogcHJvcHMucG9wdXBPZmZzZXRcbiAgICAgIH0gOiB7fTtcbiAgICAgIHZhciBwb3B1cENsYXNzTmFtZSA9IGNsYXNzTmFtZXMoKF9jbGFzc05hbWVzMyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMzLCBwcm9wcy5wb3B1cENsYXNzTmFtZSwgcHJvcHMucG9wdXBDbGFzc05hbWUgJiYgIWlubGluZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lczMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcnRsXCIpLCBpc1JUTCksIF9jbGFzc05hbWVzMykpO1xuICAgICAgdmFyIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgdHJpZ2dlclN1Yk1lbnVBY3Rpb24gPSBwcm9wcy50cmlnZ2VyU3ViTWVudUFjdGlvbixcbiAgICAgICAgICBzdWJNZW51T3BlbkRlbGF5ID0gcHJvcHMuc3ViTWVudU9wZW5EZWxheSxcbiAgICAgICAgICBmb3JjZVN1Yk1lbnVSZW5kZXIgPSBwcm9wcy5mb3JjZVN1Yk1lbnVSZW5kZXIsXG4gICAgICAgICAgc3ViTWVudUNsb3NlRGVsYXkgPSBwcm9wcy5zdWJNZW51Q2xvc2VEZWxheSxcbiAgICAgICAgICBidWlsdGluUGxhY2VtZW50cyA9IHByb3BzLmJ1aWx0aW5QbGFjZW1lbnRzO1xuICAgICAgbWVudUFsbFByb3BzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXR1cm4gZGVsZXRlIHByb3BzW2tleV07XG4gICAgICB9KTsgLy8gU2V0IG9uQ2xpY2sgdG8gbnVsbCwgdG8gaWdub3JlIHByb3BhZ2F0ZWQgb25DbGljayBldmVudFxuXG4gICAgICBkZWxldGUgcHJvcHMub25DbGljaztcbiAgICAgIHZhciBwbGFjZW1lbnQgPSBpc1JUTCA/IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcGxhY2VtZW50c1J0bCksIGJ1aWx0aW5QbGFjZW1lbnRzKSA6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcGxhY2VtZW50cyksIGJ1aWx0aW5QbGFjZW1lbnRzKTtcbiAgICAgIGRlbGV0ZSBwcm9wcy5kaXJlY3Rpb247IC8vIFtMZWdhY3ldIEl0J3MgYSBmYXN0IGZpeCxcbiAgICAgIC8vIGJ1dCB3ZSBzaG91bGQgY2hlY2sgaWYgd2UgY2FuIHJlZmFjdG9yIHRoaXMgdG8gbWFrZSBjb2RlIG1vcmUgZWFzeSB0byB1bmRlcnN0YW5kXG5cbiAgICAgIHZhciBiYXNlUHJvcHMgPSB0aGlzLmdldEJhc2VQcm9wcygpO1xuICAgICAgdmFyIG1lcmdlZE1vdGlvbiA9IGlubGluZSA/IG51bGwgOiB0aGlzLmdldE1vdGlvbihiYXNlUHJvcHMubW9kZSwgYmFzZVByb3BzLnZpc2libGUpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwibGlcIiwgX2V4dGVuZHMoe30sIHByb3BzLCBtb3VzZUV2ZW50cywge1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgcm9sZTogXCJtZW51aXRlbVwiXG4gICAgICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVHJpZ2dlciwge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgcG9wdXBDbGFzc05hbWU6IGNsYXNzTmFtZXMoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wb3B1cFwiKSwgcG9wdXBDbGFzc05hbWUpLFxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogZ2V0UG9wdXBDb250YWluZXIsXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzOiBwbGFjZW1lbnQsXG4gICAgICAgIHBvcHVwUGxhY2VtZW50OiBwb3B1cFBsYWNlbWVudCxcbiAgICAgICAgcG9wdXBWaXNpYmxlOiBpbmxpbmUgPyBmYWxzZSA6IHZpc2libGUsXG4gICAgICAgIHBvcHVwQWxpZ246IHBvcHVwQWxpZ24sXG4gICAgICAgIHBvcHVwOiBpbmxpbmUgPyBudWxsIDogY2hpbGRyZW4sXG4gICAgICAgIGFjdGlvbjogZGlzYWJsZWQgfHwgaW5saW5lID8gW10gOiBbdHJpZ2dlclN1Yk1lbnVBY3Rpb25dLFxuICAgICAgICBtb3VzZUVudGVyRGVsYXk6IHN1Yk1lbnVPcGVuRGVsYXksXG4gICAgICAgIG1vdXNlTGVhdmVEZWxheTogc3ViTWVudUNsb3NlRGVsYXksXG4gICAgICAgIG9uUG9wdXBWaXNpYmxlQ2hhbmdlOiB0aGlzLm9uUG9wdXBWaXNpYmxlQ2hhbmdlLFxuICAgICAgICBmb3JjZVJlbmRlcjogZm9yY2VTdWJNZW51UmVuZGVyLFxuICAgICAgICBwb3B1cE1vdGlvbjogbWVyZ2VkTW90aW9uXG4gICAgICB9LCB0aXRsZSksIGlubGluZSA/IGNoaWxkcmVuIDogbnVsbCk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFN1Yk1lbnU7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5TdWJNZW51LmRlZmF1bHRQcm9wcyA9IHtcbiAgb25Nb3VzZUVudGVyOiBub29wLFxuICBvbk1vdXNlTGVhdmU6IG5vb3AsXG4gIG9uVGl0bGVNb3VzZUVudGVyOiBub29wLFxuICBvblRpdGxlTW91c2VMZWF2ZTogbm9vcCxcbiAgb25UaXRsZUNsaWNrOiBub29wLFxuICBtYW51YWxSZWY6IG5vb3AsXG4gIG1vZGU6ICd2ZXJ0aWNhbCcsXG4gIHRpdGxlOiAnJ1xufTtcbnZhciBjb25uZWN0ZWQgPSBjb25uZWN0KGZ1bmN0aW9uIChfcmVmMiwgX3JlZjMpIHtcbiAgdmFyIG9wZW5LZXlzID0gX3JlZjIub3BlbktleXMsXG4gICAgICBhY3RpdmVLZXkgPSBfcmVmMi5hY3RpdmVLZXksXG4gICAgICBzZWxlY3RlZEtleXMgPSBfcmVmMi5zZWxlY3RlZEtleXM7XG4gIHZhciBldmVudEtleSA9IF9yZWYzLmV2ZW50S2V5LFxuICAgICAgc3ViTWVudUtleSA9IF9yZWYzLnN1Yk1lbnVLZXk7XG4gIHJldHVybiB7XG4gICAgaXNPcGVuOiBvcGVuS2V5cy5pbmRleE9mKGV2ZW50S2V5KSA+IC0xLFxuICAgIGFjdGl2ZTogYWN0aXZlS2V5W3N1Yk1lbnVLZXldID09PSBldmVudEtleSxcbiAgICBzZWxlY3RlZEtleXM6IHNlbGVjdGVkS2V5c1xuICB9O1xufSkoU3ViTWVudSk7XG5jb25uZWN0ZWQuaXNTdWJNZW51ID0gdHJ1ZTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZDsiLCJpbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheVwiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrXCI7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNcIjtcbmltcG9ydCBfY3JlYXRlU3VwZXIgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZVN1cGVyXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAncmVzaXplLW9ic2VydmVyLXBvbHlmaWxsJztcbmltcG9ydCBTdWJNZW51IGZyb20gJy4vU3ViTWVudSc7XG5pbXBvcnQgeyBnZXRXaWR0aCwgc2V0U3R5bGUsIG1lbnVBbGxQcm9wcyB9IGZyb20gJy4vdXRpbCc7XG52YXIgTUVOVUlURU1fT1ZFUkZMT1dFRF9DTEFTU05BTUUgPSAnbWVudWl0ZW0tb3ZlcmZsb3dlZCc7XG52YXIgRkxPQVRfUFJFQ0lTSU9OX0FESlVTVCA9IDAuNTtcblxudmFyIERPTVdyYXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKERPTVdyYXAsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoRE9NV3JhcCk7XG5cbiAgZnVuY3Rpb24gRE9NV3JhcCgpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRE9NV3JhcCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIF90aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBfdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbnVsbDsgLy8gb3JpZ2luYWwgc2Nyb2xsIHNpemUgb2YgdGhlIGxpc3RcblxuICAgIF90aGlzLm9yaWdpbmFsVG90YWxXaWR0aCA9IDA7IC8vIGNvcHkgb2Ygb3ZlcmZsb3dlZCBpdGVtc1xuXG4gICAgX3RoaXMub3ZlcmZsb3dlZEl0ZW1zID0gW107IC8vIGNhY2hlIGl0ZW0gb2YgdGhlIG9yaWdpbmFsIGl0ZW1zIChzbyB3ZSBjYW4gdHJhY2sgdGhlIHNpemUgYW5kIG9yZGVyKVxuXG4gICAgX3RoaXMubWVudUl0ZW1TaXplcyA9IFtdO1xuICAgIF90aGlzLmNhbmNlbEZyYW1lSWQgPSBudWxsO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgbGFzdFZpc2libGVJbmRleDogdW5kZWZpbmVkXG4gICAgfTtcbiAgICBfdGhpcy5jaGlsZFJlZiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVSZWYoKTsgLy8gZ2V0IGFsbCB2YWxpZCBtZW51SXRlbSBub2Rlc1xuXG4gICAgX3RoaXMuZ2V0TWVudUl0ZW1Ob2RlcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBfdGhpcy5wcm9wcy5wcmVmaXhDbHM7XG4gICAgICB2YXIgdWwgPSBfdGhpcy5jaGlsZFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoIXVsKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0gLy8gZmlsdGVyIG91dCBhbGwgb3ZlcmZsb3dlZCBpbmRpY2F0b3IgcGxhY2Vob2xkZXJcblxuXG4gICAgICByZXR1cm4gW10uc2xpY2UuY2FsbCh1bC5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNsYXNzTmFtZS5zcGxpdCgnICcpLmluZGV4T2YoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1vdmVyZmxvd2VkLXN1Ym1lbnVcIikpIDwgMDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5nZXRPdmVyZmxvd2VkU3ViTWVudUl0ZW0gPSBmdW5jdGlvbiAoa2V5UHJlZml4LCBvdmVyZmxvd2VkSXRlbXMsIHJlbmRlclBsYWNlaG9sZGVyKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBvdmVyZmxvd2VkSW5kaWNhdG9yID0gX3RoaXMkcHJvcHMub3ZlcmZsb3dlZEluZGljYXRvcixcbiAgICAgICAgICBsZXZlbCA9IF90aGlzJHByb3BzLmxldmVsLFxuICAgICAgICAgIG1vZGUgPSBfdGhpcyRwcm9wcy5tb2RlLFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICB0aGVtZSA9IF90aGlzJHByb3BzLnRoZW1lO1xuXG4gICAgICBpZiAobGV2ZWwgIT09IDEgfHwgbW9kZSAhPT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSAvLyBwdXQgYWxsIHRoZSBvdmVyZmxvd2VkIGl0ZW0gaW5zaWRlIGEgc3VibWVudVxuICAgICAgLy8gd2l0aCBhIHRpdGxlIG9mIG92ZXJmbG93IGluZGljYXRvciAoJy4uLicpXG5cblxuICAgICAgdmFyIGNvcHkgPSBfdGhpcy5wcm9wcy5jaGlsZHJlblswXTtcblxuICAgICAgdmFyIF9jb3B5JHByb3BzID0gY29weS5wcm9wcyxcbiAgICAgICAgICB0aHJvd0F3YXkgPSBfY29weSRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICB0aXRsZSA9IF9jb3B5JHByb3BzLnRpdGxlLFxuICAgICAgICAgIHByb3BTdHlsZSA9IF9jb3B5JHByb3BzLnN0eWxlLFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX2NvcHkkcHJvcHMsIFtcImNoaWxkcmVuXCIsIFwidGl0bGVcIiwgXCJzdHlsZVwiXSk7XG5cbiAgICAgIHZhciBzdHlsZSA9IF9vYmplY3RTcHJlYWQoe30sIHByb3BTdHlsZSk7XG5cbiAgICAgIHZhciBrZXkgPSBcIlwiLmNvbmNhdChrZXlQcmVmaXgsIFwiLW92ZXJmbG93ZWQtaW5kaWNhdG9yXCIpO1xuICAgICAgdmFyIGV2ZW50S2V5ID0gXCJcIi5jb25jYXQoa2V5UHJlZml4LCBcIi1vdmVyZmxvd2VkLWluZGljYXRvclwiKTtcblxuICAgICAgaWYgKG92ZXJmbG93ZWRJdGVtcy5sZW5ndGggPT09IDAgJiYgcmVuZGVyUGxhY2Vob2xkZXIgIT09IHRydWUpIHtcbiAgICAgICAgc3R5bGUgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHN0eWxlKSwge30sIHtcbiAgICAgICAgICBkaXNwbGF5OiAnbm9uZSdcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHJlbmRlclBsYWNlaG9sZGVyKSB7XG4gICAgICAgIHN0eWxlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZSksIHt9LCB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgLy8gcHJldmVudCBmcm9tIHRha2luZyBub3JtYWwgZG9tIHNwYWNlXG4gICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbiAgICAgICAgfSk7XG4gICAgICAgIGtleSA9IFwiXCIuY29uY2F0KGtleSwgXCItcGxhY2Vob2xkZXJcIik7XG4gICAgICAgIGV2ZW50S2V5ID0gXCJcIi5jb25jYXQoZXZlbnRLZXksIFwiLXBsYWNlaG9sZGVyXCIpO1xuICAgICAgfVxuXG4gICAgICB2YXIgcG9wdXBDbGFzc05hbWUgPSB0aGVtZSA/IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdCh0aGVtZSkgOiAnJztcbiAgICAgIHZhciBwcm9wcyA9IHt9O1xuICAgICAgbWVudUFsbFByb3BzLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICAgICAgaWYgKHJlc3Rba10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHByb3BzW2tdID0gcmVzdFtrXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU3ViTWVudSwgX2V4dGVuZHMoe1xuICAgICAgICB0aXRsZTogb3ZlcmZsb3dlZEluZGljYXRvcixcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW92ZXJmbG93ZWQtc3VibWVudVwiKSxcbiAgICAgICAgcG9wdXBDbGFzc05hbWU6IHBvcHVwQ2xhc3NOYW1lXG4gICAgICB9LCBwcm9wcywge1xuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgZXZlbnRLZXk6IGV2ZW50S2V5LFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIHN0eWxlOiBzdHlsZVxuICAgICAgfSksIG92ZXJmbG93ZWRJdGVtcyk7XG4gICAgfTsgLy8gbWVtb3JpemUgcmVuZGVyZWQgbWVudVNpemVcblxuXG4gICAgX3RoaXMuc2V0Q2hpbGRyZW5XaWR0aEFuZFJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChfdGhpcy5wcm9wcy5tb2RlICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgdWwgPSBfdGhpcy5jaGlsZFJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoIXVsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIHVsQ2hpbGRyZW5Ob2RlcyA9IHVsLmNoaWxkcmVuO1xuXG4gICAgICBpZiAoIXVsQ2hpbGRyZW5Ob2RlcyB8fCB1bENoaWxkcmVuTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGxhc3RPdmVyZmxvd2VkSW5kaWNhdG9yUGxhY2Vob2xkZXIgPSB1bC5jaGlsZHJlblt1bENoaWxkcmVuTm9kZXMubGVuZ3RoIC0gMV07IC8vIG5lZWQgbGFzdCBvdmVyZmxvd2VkIGluZGljYXRvciBmb3IgY2FsY3VsYXRpbmcgbGVuZ3RoO1xuXG4gICAgICBzZXRTdHlsZShsYXN0T3ZlcmZsb3dlZEluZGljYXRvclBsYWNlaG9sZGVyLCAnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcblxuICAgICAgdmFyIG1lbnVJdGVtTm9kZXMgPSBfdGhpcy5nZXRNZW51SXRlbU5vZGVzKCk7IC8vIHJlc2V0IGRpc3BsYXkgYXR0cmlidXRlIGZvciBhbGwgaGlkZGVuIGVsZW1lbnRzIGNhdXNlZCBieSBvdmVyZmxvdyB0byBjYWxjdWxhdGUgdXBkYXRlZCB3aWR0aFxuICAgICAgLy8gYW5kIHRoZW4gcmVzZXQgdG8gb3JpZ2luYWwgc3RhdGUgYWZ0ZXIgd2lkdGggY2FsY3VsYXRpb25cblxuXG4gICAgICB2YXIgb3ZlcmZsb3dlZEl0ZW1zID0gbWVudUl0ZW1Ob2Rlcy5maWx0ZXIoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgcmV0dXJuIGMuY2xhc3NOYW1lLnNwbGl0KCcgJykuaW5kZXhPZihNRU5VSVRFTV9PVkVSRkxPV0VEX0NMQVNTTkFNRSkgPj0gMDtcbiAgICAgIH0pO1xuICAgICAgb3ZlcmZsb3dlZEl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgc2V0U3R5bGUoYywgJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7XG4gICAgICB9KTtcbiAgICAgIF90aGlzLm1lbnVJdGVtU2l6ZXMgPSBtZW51SXRlbU5vZGVzLm1hcChmdW5jdGlvbiAoYykge1xuICAgICAgICByZXR1cm4gZ2V0V2lkdGgoYywgdHJ1ZSk7XG4gICAgICB9KTtcbiAgICAgIG92ZXJmbG93ZWRJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgIHNldFN0eWxlKGMsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIH0pO1xuICAgICAgX3RoaXMub3ZlcmZsb3dlZEluZGljYXRvcldpZHRoID0gZ2V0V2lkdGgodWwuY2hpbGRyZW5bdWwuY2hpbGRyZW4ubGVuZ3RoIC0gMV0sIHRydWUpO1xuICAgICAgX3RoaXMub3JpZ2luYWxUb3RhbFdpZHRoID0gX3RoaXMubWVudUl0ZW1TaXplcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgY3VyKSB7XG4gICAgICAgIHJldHVybiBhY2MgKyBjdXI7XG4gICAgICB9LCAwKTtcblxuICAgICAgX3RoaXMuaGFuZGxlUmVzaXplKCk7IC8vIHByZXZlbnQgdGhlIG92ZXJmbG93ZWQgaW5kaWNhdG9yIGZyb20gdGFraW5nIHNwYWNlO1xuXG5cbiAgICAgIHNldFN0eWxlKGxhc3RPdmVyZmxvd2VkSW5kaWNhdG9yUGxhY2Vob2xkZXIsICdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlUmVzaXplID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLm1vZGUgIT09ICdob3Jpem9udGFsJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciB1bCA9IF90aGlzLmNoaWxkUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmICghdWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgd2lkdGggPSBnZXRXaWR0aCh1bCk7XG4gICAgICBfdGhpcy5vdmVyZmxvd2VkSXRlbXMgPSBbXTtcbiAgICAgIHZhciBjdXJyZW50U3VtV2lkdGggPSAwOyAvLyBpbmRleCBmb3IgbGFzdCB2aXNpYmxlIGNoaWxkIGluIGhvcml6b250YWwgbW9kZVxuXG4gICAgICB2YXIgbGFzdFZpc2libGVJbmRleDsgLy8gZmxvYXQgbnVtYmVyIGNvbXBhcmlzb24gY291bGQgYmUgcHJvYmxlbWF0aWNcbiAgICAgIC8vIGUuZy4gMC4xICsgMC4yID4gMC4zID09PT09PiB0cnVlXG4gICAgICAvLyB0aHVzIHVzaW5nIEZMT0FUX1BSRUNJU0lPTl9BREpVU1QgYXMgYnVmZmVyIHRvIGhlbHAgdGhlIHNpdHVhdGlvblxuXG4gICAgICBpZiAoX3RoaXMub3JpZ2luYWxUb3RhbFdpZHRoID4gd2lkdGggKyBGTE9BVF9QUkVDSVNJT05fQURKVVNUKSB7XG4gICAgICAgIGxhc3RWaXNpYmxlSW5kZXggPSAtMTtcblxuICAgICAgICBfdGhpcy5tZW51SXRlbVNpemVzLmZvckVhY2goZnVuY3Rpb24gKGxpV2lkdGgpIHtcbiAgICAgICAgICBjdXJyZW50U3VtV2lkdGggKz0gbGlXaWR0aDtcblxuICAgICAgICAgIGlmIChjdXJyZW50U3VtV2lkdGggKyBfdGhpcy5vdmVyZmxvd2VkSW5kaWNhdG9yV2lkdGggPD0gd2lkdGgpIHtcbiAgICAgICAgICAgIGxhc3RWaXNpYmxlSW5kZXggKz0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxhc3RWaXNpYmxlSW5kZXg6IGxhc3RWaXNpYmxlSW5kZXhcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoRE9NV3JhcCwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdGhpcy5zZXRDaGlsZHJlbldpZHRoQW5kUmVzaXplKCk7XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLmxldmVsID09PSAxICYmIHRoaXMucHJvcHMubW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgIHZhciBtZW51VWwgPSB0aGlzLmNoaWxkUmVmLmN1cnJlbnQ7XG5cbiAgICAgICAgaWYgKCFtZW51VWwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGZ1bmN0aW9uIChlbnRyaWVzKSB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjYW5jZWxGcmFtZUlkID0gX3RoaXMyLmNhbmNlbEZyYW1lSWQ7XG4gICAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShjYW5jZWxGcmFtZUlkKTtcbiAgICAgICAgICAgIF90aGlzMi5jYW5jZWxGcmFtZUlkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKF90aGlzMi5zZXRDaGlsZHJlbldpZHRoQW5kUmVzaXplKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFtdLnNsaWNlLmNhbGwobWVudVVsLmNoaWxkcmVuKS5jb25jYXQobWVudVVsKS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG5cbiAgICAgICAgICAgIFtdLnNsaWNlLmNhbGwobWVudVVsLmNoaWxkcmVuKS5jb25jYXQobWVudVVsKS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgX3RoaXMyLnNldENoaWxkcmVuV2lkdGhBbmRSZXNpemUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShtZW51VWwsIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgICAgc3ViVHJlZTogZmFsc2VcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tdXRhdGlvbk9ic2VydmVyKSB7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9XG5cbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuY2FuY2VsRnJhbWVJZCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlckNoaWxkcmVuXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgLy8gbmVlZCB0byB0YWtlIGNhcmUgb2Ygb3ZlcmZsb3dlZCBpdGVtcyBpbiBob3Jpem9udGFsIG1vZGVcbiAgICAgIHZhciBsYXN0VmlzaWJsZUluZGV4ID0gdGhpcy5zdGF0ZS5sYXN0VmlzaWJsZUluZGV4O1xuICAgICAgcmV0dXJuIChjaGlsZHJlbiB8fCBbXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGNoaWxkTm9kZSwgaW5kZXgpIHtcbiAgICAgICAgdmFyIGl0ZW0gPSBjaGlsZE5vZGU7XG5cbiAgICAgICAgaWYgKF90aGlzMy5wcm9wcy5tb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICB2YXIgb3ZlcmZsb3dlZCA9IF90aGlzMy5nZXRPdmVyZmxvd2VkU3ViTWVudUl0ZW0oY2hpbGROb2RlLnByb3BzLmV2ZW50S2V5LCBbXSk7XG5cbiAgICAgICAgICBpZiAobGFzdFZpc2libGVJbmRleCAhPT0gdW5kZWZpbmVkICYmIF90aGlzMy5wcm9wcy5jbGFzc05hbWUuaW5kZXhPZihcIlwiLmNvbmNhdChfdGhpczMucHJvcHMucHJlZml4Q2xzLCBcIi1yb290XCIpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IGxhc3RWaXNpYmxlSW5kZXgpIHtcbiAgICAgICAgICAgICAgaXRlbSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGROb2RlLCAvLyDov5nph4zkv67mlLkgZXZlbnRLZXkg5piv5Li65LqG6Ziy5q2i6ZqQ6JeP54q25oCB5LiL6L+Y5Lya6Kem5Y+RIG9wZW5rZXlzIOS6i+S7tlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXZlbnRLZXk6IFwiXCIuY29uY2F0KGNoaWxkTm9kZS5wcm9wcy5ldmVudEtleSwgXCItaGlkZGVuXCIpLFxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogTGVnYWN5IGNvZGUuIEhlcmUgYGNsYXNzTmFtZWAgbmV2ZXIgdXNlZDpcbiAgICAgICAgICAgICAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtY29tcG9uZW50L21lbnUvY29tbWl0LzRjZDZiNDlmY2U5ZDExNjcyNmY0ZWEwMGRkYTg1MzI1ZDZmMjY1MDAjZGlmZi1lMmZhNDhmNzVjMmRkMjMxODI5NWNkZTQyODU1NmE3NlIyNDBcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KE1FTlVJVEVNX09WRVJGTE9XRURfQ0xBU1NOQU1FKVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGluZGV4ID09PSBsYXN0VmlzaWJsZUluZGV4ICsgMSkge1xuICAgICAgICAgICAgICBfdGhpczMub3ZlcmZsb3dlZEl0ZW1zID0gY2hpbGRyZW4uc2xpY2UobGFzdFZpc2libGVJbmRleCArIDEpLm1hcChmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGMsIC8vIGNoaWxkcmVuW2luZGV4XS5rZXkgd2lsbCBiZWNvbWUgJy4ka2V5JyBpbiBjbG9uZSBieSBkZWZhdWx0LFxuICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gb3ZlcndyaXRlIHdpdGggdGhlIGNvcnJlY3Qga2V5IGV4cGxpY2l0bHlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBrZXk6IGMucHJvcHMuZXZlbnRLZXksXG4gICAgICAgICAgICAgICAgICBtb2RlOiAndmVydGljYWwtbGVmdCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIG92ZXJmbG93ZWQgPSBfdGhpczMuZ2V0T3ZlcmZsb3dlZFN1Yk1lbnVJdGVtKGNoaWxkTm9kZS5wcm9wcy5ldmVudEtleSwgX3RoaXMzLm92ZXJmbG93ZWRJdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHJldCA9IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoYWNjKSwgW292ZXJmbG93ZWQsIGl0ZW1dKTtcblxuICAgICAgICAgIGlmIChpbmRleCA9PT0gY2hpbGRyZW4ubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgLy8gbmVlZCBhIHBsYWNlaG9sZGVyIGZvciBjYWxjdWxhdGluZyBvdmVyZmxvd2VkIGluZGljYXRvciB3aWR0aFxuICAgICAgICAgICAgcmV0LnB1c2goX3RoaXMzLmdldE92ZXJmbG93ZWRTdWJNZW51SXRlbShjaGlsZE5vZGUucHJvcHMuZXZlbnRLZXksIFtdLCB0cnVlKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGFjYyksIFtpdGVtXSk7XG4gICAgICB9LCBbXSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB2aXNpYmxlID0gX3RoaXMkcHJvcHMyLnZpc2libGUsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMyLnByZWZpeENscyxcbiAgICAgICAgICBvdmVyZmxvd2VkSW5kaWNhdG9yID0gX3RoaXMkcHJvcHMyLm92ZXJmbG93ZWRJbmRpY2F0b3IsXG4gICAgICAgICAgbW9kZSA9IF90aGlzJHByb3BzMi5tb2RlLFxuICAgICAgICAgIGxldmVsID0gX3RoaXMkcHJvcHMyLmxldmVsLFxuICAgICAgICAgIHRhZyA9IF90aGlzJHByb3BzMi50YWcsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczIuY2hpbGRyZW4sXG4gICAgICAgICAgdGhlbWUgPSBfdGhpcyRwcm9wczIudGhlbWUsXG4gICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wczIsIFtcInZpc2libGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvdmVyZmxvd2VkSW5kaWNhdG9yXCIsIFwibW9kZVwiLCBcImxldmVsXCIsIFwidGFnXCIsIFwiY2hpbGRyZW5cIiwgXCJ0aGVtZVwiXSk7XG5cbiAgICAgIHZhciBUYWcgPSB0YWc7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVGFnLCBfZXh0ZW5kcyh7XG4gICAgICAgIHJlZjogdGhpcy5jaGlsZFJlZlxuICAgICAgfSwgcmVzdCksIHRoaXMucmVuZGVyQ2hpbGRyZW4oY2hpbGRyZW4pKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRE9NV3JhcDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuRE9NV3JhcC5kZWZhdWx0UHJvcHMgPSB7XG4gIHRhZzogJ2RpdicsXG4gIGNsYXNzTmFtZTogJydcbn07XG5leHBvcnQgZGVmYXVsdCBET01XcmFwOyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ21pbmktc3RvcmUnO1xuaW1wb3J0IEtleUNvZGUgZnJvbSBcInJjLXV0aWwvZXMvS2V5Q29kZVwiO1xuaW1wb3J0IGNyZWF0ZUNoYWluZWRGdW5jdGlvbiBmcm9tIFwicmMtdXRpbC9lcy9jcmVhdGVDaGFpbmVkRnVuY3Rpb25cIjtcbmltcG9ydCB0b0FycmF5IGZyb20gXCJyYy11dGlsL2VzL0NoaWxkcmVuL3RvQXJyYXlcIjtcbmltcG9ydCBzaGFsbG93RXF1YWwgZnJvbSAnc2hhbGxvd2VxdWFsJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgZ2V0S2V5RnJvbUNoaWxkcmVuSW5kZXgsIGxvb3BNZW51SXRlbSwgbm9vcCwgbWVudUFsbFByb3BzLCBpc01vYmlsZURldmljZSB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgRE9NV3JhcCBmcm9tICcuL0RPTVdyYXAnO1xuXG5mdW5jdGlvbiBhbGxEaXNhYmxlZChhcnIpIHtcbiAgaWYgKCFhcnIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gYXJyLmV2ZXJ5KGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuICEhYy5wcm9wcy5kaXNhYmxlZDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUFjdGl2ZUtleShzdG9yZSwgbWVudUlkLCBhY3RpdmVLZXkpIHtcbiAgdmFyIHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgc3RvcmUuc2V0U3RhdGUoe1xuICAgIGFjdGl2ZUtleTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZS5hY3RpdmVLZXkpLCB7fSwgX2RlZmluZVByb3BlcnR5KHt9LCBtZW51SWQsIGFjdGl2ZUtleSkpXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRFdmVudEtleShwcm9wcykge1xuICAvLyB3aGVuIGV2ZW50S2V5IG5vdCBhdmFpbGFibGUgLGl0J3MgbWVudSBhbmQgcmV0dXJuIG1lbnUgaWQgJzAtbWVudS0nXG4gIHJldHVybiBwcm9wcy5ldmVudEtleSB8fCAnMC1tZW51LSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3RpdmVLZXkocHJvcHMsIG9yaWdpbmFsQWN0aXZlS2V5KSB7XG4gIHZhciBhY3RpdmVLZXkgPSBvcmlnaW5hbEFjdGl2ZUtleTtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICBldmVudEtleSA9IHByb3BzLmV2ZW50S2V5O1xuXG4gIGlmIChhY3RpdmVLZXkpIHtcbiAgICB2YXIgZm91bmQ7XG4gICAgbG9vcE1lbnVJdGVtKGNoaWxkcmVuLCBmdW5jdGlvbiAoYywgaSkge1xuICAgICAgaWYgKGMgJiYgYy5wcm9wcyAmJiAhYy5wcm9wcy5kaXNhYmxlZCAmJiBhY3RpdmVLZXkgPT09IGdldEtleUZyb21DaGlsZHJlbkluZGV4KGMsIGV2ZW50S2V5LCBpKSkge1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBhY3RpdmVLZXk7XG4gICAgfVxuICB9XG5cbiAgYWN0aXZlS2V5ID0gbnVsbDtcblxuICBpZiAocHJvcHMuZGVmYXVsdEFjdGl2ZUZpcnN0KSB7XG4gICAgbG9vcE1lbnVJdGVtKGNoaWxkcmVuLCBmdW5jdGlvbiAoYywgaSkge1xuICAgICAgaWYgKCFhY3RpdmVLZXkgJiYgYyAmJiAhYy5wcm9wcy5kaXNhYmxlZCkge1xuICAgICAgICBhY3RpdmVLZXkgPSBnZXRLZXlGcm9tQ2hpbGRyZW5JbmRleChjLCBldmVudEtleSwgaSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGl2ZUtleTtcbiAgfVxuXG4gIHJldHVybiBhY3RpdmVLZXk7XG59XG5leHBvcnQgZnVuY3Rpb24gc2F2ZVJlZihjKSB7XG4gIGlmICghYykge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC10aGlzICovXG5cblxuICB2YXIgaW5kZXggPSB0aGlzLmluc3RhbmNlQXJyYXkuaW5kZXhPZihjKTtcblxuICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgLy8gdXBkYXRlIGNvbXBvbmVudCBpZiBpdCdzIGFscmVhZHkgaW5zaWRlIGluc3RhbmNlQXJyYXlcbiAgICB0aGlzLmluc3RhbmNlQXJyYXlbaW5kZXhdID0gYztcbiAgfSBlbHNlIHtcbiAgICAvLyBhZGQgY29tcG9uZW50IGlmIGl0J3Mgbm90IGluIGluc3RhbmNlQXJyYXkgeWV0O1xuICAgIHRoaXMuaW5zdGFuY2VBcnJheS5wdXNoKGMpO1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdGhpcyAqL1xuXG59XG5leHBvcnQgdmFyIFN1YlBvcHVwTWVudSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoU3ViUG9wdXBNZW51LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFN1YlBvcHVwTWVudSk7XG5cbiAgZnVuY3Rpb24gU3ViUG9wdXBNZW51KHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFN1YlBvcHVwTWVudSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICAvKipcbiAgICAgKiBhbGwga2V5Ym9hcmQgZXZlbnRzIGNhbGxiYWNrcyBydW4gZnJvbSBoZXJlIGF0IGZpcnN0XG4gICAgICpcbiAgICAgKiBub3RlOlxuICAgICAqICBUaGlzIGxlZ2FjeSBjb2RlIHRoYXQgYG9uS2V5RG93bmAgaXMgY2FsbGVkIGJ5IHBhcmVudCBpbnN0ZWFkIG9mIGRvbSBzZWxmLlxuICAgICAqICB3aGljaCBuZWVkIHJldHVybiBjb2RlIHRvIGNoZWNrIGlmIHRoaXMgZXZlbnQgaXMgaGFuZGxlZFxuICAgICAqL1xuXG4gICAgX3RoaXMub25LZXlEb3duID0gZnVuY3Rpb24gKGUsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIga2V5Q29kZSA9IGUua2V5Q29kZTtcbiAgICAgIHZhciBoYW5kbGVkO1xuXG4gICAgICBfdGhpcy5nZXRGbGF0SW5zdGFuY2VBcnJheSgpLmZvckVhY2goZnVuY3Rpb24gKG9iaikge1xuICAgICAgICBpZiAob2JqICYmIG9iai5wcm9wcy5hY3RpdmUgJiYgb2JqLm9uS2V5RG93bikge1xuICAgICAgICAgIGhhbmRsZWQgPSBvYmoub25LZXlEb3duKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG5cbiAgICAgIHZhciBhY3RpdmVJdGVtID0gbnVsbDtcblxuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUNvZGUuVVAgfHwga2V5Q29kZSA9PT0gS2V5Q29kZS5ET1dOKSB7XG4gICAgICAgIGFjdGl2ZUl0ZW0gPSBfdGhpcy5zdGVwKGtleUNvZGUgPT09IEtleUNvZGUuVVAgPyAtMSA6IDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHVwZGF0ZUFjdGl2ZUtleShfdGhpcy5wcm9wcy5zdG9yZSwgZ2V0RXZlbnRLZXkoX3RoaXMucHJvcHMpLCBhY3RpdmVJdGVtLnByb3BzLmV2ZW50S2V5KTtcblxuICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY2FsbGJhY2soYWN0aXZlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgX3RoaXMub25JdGVtSG92ZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIGtleSA9IGUua2V5LFxuICAgICAgICAgIGhvdmVyID0gZS5ob3ZlcjtcbiAgICAgIHVwZGF0ZUFjdGl2ZUtleShfdGhpcy5wcm9wcy5zdG9yZSwgZ2V0RXZlbnRLZXkoX3RoaXMucHJvcHMpLCBob3ZlciA/IGtleSA6IG51bGwpO1xuICAgIH07XG5cbiAgICBfdGhpcy5vbkRlc2VsZWN0ID0gZnVuY3Rpb24gKHNlbGVjdEluZm8pIHtcbiAgICAgIF90aGlzLnByb3BzLm9uRGVzZWxlY3Qoc2VsZWN0SW5mbyk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uU2VsZWN0ID0gZnVuY3Rpb24gKHNlbGVjdEluZm8pIHtcbiAgICAgIF90aGlzLnByb3BzLm9uU2VsZWN0KHNlbGVjdEluZm8pO1xuICAgIH07XG5cbiAgICBfdGhpcy5vbkNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLnByb3BzLm9uQ2xpY2soZSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uT3BlbkNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBfdGhpcy5wcm9wcy5vbk9wZW5DaGFuZ2UoZSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uRGVzdHJveSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBfdGhpcy5wcm9wcy5vbkRlc3Ryb3koa2V5KTtcbiAgICB9O1xuXG4gICAgX3RoaXMuZ2V0RmxhdEluc3RhbmNlQXJyYXkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaW5zdGFuY2VBcnJheTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3RlcCA9IGZ1bmN0aW9uIChkaXJlY3Rpb24pIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IF90aGlzLmdldEZsYXRJbnN0YW5jZUFycmF5KCk7XG5cbiAgICAgIHZhciBhY3RpdmVLZXkgPSBfdGhpcy5wcm9wcy5zdG9yZS5nZXRTdGF0ZSgpLmFjdGl2ZUtleVtnZXRFdmVudEtleShfdGhpcy5wcm9wcyldO1xuXG4gICAgICB2YXIgbGVuID0gY2hpbGRyZW4ubGVuZ3RoO1xuXG4gICAgICBpZiAoIWxlbikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA8IDApIHtcbiAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoKS5yZXZlcnNlKCk7XG4gICAgICB9IC8vIGZpbmQgY3VycmVudCBhY3RpdmVJbmRleFxuXG5cbiAgICAgIHZhciBhY3RpdmVJbmRleCA9IC0xO1xuICAgICAgY2hpbGRyZW4uZXZlcnkoZnVuY3Rpb24gKGMsIGNpKSB7XG4gICAgICAgIGlmIChjICYmIGMucHJvcHMuZXZlbnRLZXkgPT09IGFjdGl2ZUtleSkge1xuICAgICAgICAgIGFjdGl2ZUluZGV4ID0gY2k7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcblxuICAgICAgaWYgKCFfdGhpcy5wcm9wcy5kZWZhdWx0QWN0aXZlRmlyc3QgJiYgYWN0aXZlSW5kZXggIT09IC0xICYmIGFsbERpc2FibGVkKGNoaWxkcmVuLnNsaWNlKGFjdGl2ZUluZGV4LCBsZW4gLSAxKSkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgdmFyIHN0YXJ0ID0gKGFjdGl2ZUluZGV4ICsgMSkgJSBsZW47XG4gICAgICB2YXIgaSA9IHN0YXJ0O1xuXG4gICAgICBkbyB7XG4gICAgICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuXG4gICAgICAgIGlmICghY2hpbGQgfHwgY2hpbGQucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgICBpID0gKGkgKyAxKSAlIGxlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIH1cbiAgICAgIH0gd2hpbGUgKGkgIT09IHN0YXJ0KTtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbW1vbk1lbnVJdGVtID0gZnVuY3Rpb24gKGNoaWxkLCBpLCBleHRyYVByb3BzKSB7XG4gICAgICB2YXIgc3RhdGUgPSBfdGhpcy5wcm9wcy5zdG9yZS5nZXRTdGF0ZSgpO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHM7XG5cbiAgICAgIHZhciBrZXkgPSBnZXRLZXlGcm9tQ2hpbGRyZW5JbmRleChjaGlsZCwgcHJvcHMuZXZlbnRLZXksIGkpO1xuICAgICAgdmFyIGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wczsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTE1MTcjaXNzdWVjb21tZW50LTQ3NzQwMzA1NVxuXG4gICAgICBpZiAoIWNoaWxkUHJvcHMgfHwgdHlwZW9mIGNoaWxkLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cblxuICAgICAgdmFyIGlzQWN0aXZlID0ga2V5ID09PSBzdGF0ZS5hY3RpdmVLZXk7XG5cbiAgICAgIHZhciBuZXdDaGlsZFByb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgbW9kZTogY2hpbGRQcm9wcy5tb2RlIHx8IHByb3BzLm1vZGUsXG4gICAgICAgIGxldmVsOiBwcm9wcy5sZXZlbCxcbiAgICAgICAgaW5saW5lSW5kZW50OiBwcm9wcy5pbmxpbmVJbmRlbnQsXG4gICAgICAgIHJlbmRlck1lbnVJdGVtOiBfdGhpcy5yZW5kZXJNZW51SXRlbSxcbiAgICAgICAgcm9vdFByZWZpeENsczogcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICBpbmRleDogaSxcbiAgICAgICAgcGFyZW50TWVudTogcHJvcHMucGFyZW50TWVudSxcbiAgICAgICAgLy8gY3VzdG9taXplZCByZWYgZnVuY3Rpb24sIG5lZWQgdG8gYmUgaW52b2tlZCBtYW51YWxseSBpbiBjaGlsZCdzIGNvbXBvbmVudERpZE1vdW50XG4gICAgICAgIG1hbnVhbFJlZjogY2hpbGRQcm9wcy5kaXNhYmxlZCA/IHVuZGVmaW5lZCA6IGNyZWF0ZUNoYWluZWRGdW5jdGlvbihjaGlsZC5yZWYsIHNhdmVSZWYuYmluZChfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSkpLFxuICAgICAgICBldmVudEtleToga2V5LFxuICAgICAgICBhY3RpdmU6ICFjaGlsZFByb3BzLmRpc2FibGVkICYmIGlzQWN0aXZlLFxuICAgICAgICBtdWx0aXBsZTogcHJvcHMubXVsdGlwbGUsXG4gICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgIChjaGlsZFByb3BzLm9uQ2xpY2sgfHwgbm9vcCkoZSk7XG5cbiAgICAgICAgICBfdGhpcy5vbkNsaWNrKGUpO1xuICAgICAgICB9LFxuICAgICAgICBvbkl0ZW1Ib3ZlcjogX3RoaXMub25JdGVtSG92ZXIsXG4gICAgICAgIG1vdGlvbjogcHJvcHMubW90aW9uLFxuICAgICAgICBzdWJNZW51T3BlbkRlbGF5OiBwcm9wcy5zdWJNZW51T3BlbkRlbGF5LFxuICAgICAgICBzdWJNZW51Q2xvc2VEZWxheTogcHJvcHMuc3ViTWVudUNsb3NlRGVsYXksXG4gICAgICAgIGZvcmNlU3ViTWVudVJlbmRlcjogcHJvcHMuZm9yY2VTdWJNZW51UmVuZGVyLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IF90aGlzLm9uT3BlbkNoYW5nZSxcbiAgICAgICAgb25EZXNlbGVjdDogX3RoaXMub25EZXNlbGVjdCxcbiAgICAgICAgb25TZWxlY3Q6IF90aGlzLm9uU2VsZWN0LFxuICAgICAgICBidWlsdGluUGxhY2VtZW50czogcHJvcHMuYnVpbHRpblBsYWNlbWVudHMsXG4gICAgICAgIGl0ZW1JY29uOiBjaGlsZFByb3BzLml0ZW1JY29uIHx8IF90aGlzLnByb3BzLml0ZW1JY29uLFxuICAgICAgICBleHBhbmRJY29uOiBjaGlsZFByb3BzLmV4cGFuZEljb24gfHwgX3RoaXMucHJvcHMuZXhwYW5kSWNvblxuICAgICAgfSwgZXh0cmFQcm9wcyksIHt9LCB7XG4gICAgICAgIGRpcmVjdGlvbjogcHJvcHMuZGlyZWN0aW9uXG4gICAgICB9KTsgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xMzk0M1xuXG5cbiAgICAgIGlmIChwcm9wcy5tb2RlID09PSAnaW5saW5lJyB8fCBpc01vYmlsZURldmljZSgpKSB7XG4gICAgICAgIG5ld0NoaWxkUHJvcHMudHJpZ2dlclN1Yk1lbnVBY3Rpb24gPSAnY2xpY2snO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBuZXdDaGlsZFByb3BzKSwge30sIHtcbiAgICAgICAga2V5OiBrZXkgfHwgaVxuICAgICAgfSkpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJNZW51SXRlbSA9IGZ1bmN0aW9uIChjLCBpLCBzdWJNZW51S2V5KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghYykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIHN0YXRlID0gX3RoaXMucHJvcHMuc3RvcmUuZ2V0U3RhdGUoKTtcblxuICAgICAgdmFyIGV4dHJhUHJvcHMgPSB7XG4gICAgICAgIG9wZW5LZXlzOiBzdGF0ZS5vcGVuS2V5cyxcbiAgICAgICAgc2VsZWN0ZWRLZXlzOiBzdGF0ZS5zZWxlY3RlZEtleXMsXG4gICAgICAgIHRyaWdnZXJTdWJNZW51QWN0aW9uOiBfdGhpcy5wcm9wcy50cmlnZ2VyU3ViTWVudUFjdGlvbixcbiAgICAgICAgc3ViTWVudUtleTogc3ViTWVudUtleVxuICAgICAgfTtcbiAgICAgIHJldHVybiBfdGhpcy5yZW5kZXJDb21tb25NZW51SXRlbShjLCBpLCBleHRyYVByb3BzKTtcbiAgICB9O1xuXG4gICAgcHJvcHMuc3RvcmUuc2V0U3RhdGUoe1xuICAgICAgYWN0aXZlS2V5OiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHByb3BzLnN0b3JlLmdldFN0YXRlKCkuYWN0aXZlS2V5KSwge30sIF9kZWZpbmVQcm9wZXJ0eSh7fSwgcHJvcHMuZXZlbnRLZXksIGdldEFjdGl2ZUtleShwcm9wcywgcHJvcHMuYWN0aXZlS2V5KSkpXG4gICAgfSk7XG4gICAgX3RoaXMuaW5zdGFuY2VBcnJheSA9IFtdO1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTdWJQb3B1cE1lbnUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgLy8gaW52b2tlIGN1c3RvbWl6ZWQgcmVmIHRvIGV4cG9zZSBjb21wb25lbnQgdG8gbWl4aW5cbiAgICAgIGlmICh0aGlzLnByb3BzLm1hbnVhbFJlZikge1xuICAgICAgICB0aGlzLnByb3BzLm1hbnVhbFJlZih0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwic2hvdWxkQ29tcG9uZW50VXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLnZpc2libGUgfHwgbmV4dFByb3BzLnZpc2libGUgfHwgdGhpcy5wcm9wcy5jbGFzc05hbWUgIT09IG5leHRQcm9wcy5jbGFzc05hbWUgfHwgIXNoYWxsb3dFcXVhbCh0aGlzLnByb3BzLnN0eWxlLCBuZXh0UHJvcHMuc3R5bGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciBvcmlnaW5hbEFjdGl2ZUtleSA9ICdhY3RpdmVLZXknIGluIHByb3BzID8gcHJvcHMuYWN0aXZlS2V5IDogcHJvcHMuc3RvcmUuZ2V0U3RhdGUoKS5hY3RpdmVLZXlbZ2V0RXZlbnRLZXkocHJvcHMpXTtcbiAgICAgIHZhciBhY3RpdmVLZXkgPSBnZXRBY3RpdmVLZXkocHJvcHMsIG9yaWdpbmFsQWN0aXZlS2V5KTtcblxuICAgICAgaWYgKGFjdGl2ZUtleSAhPT0gb3JpZ2luYWxBY3RpdmVLZXkpIHtcbiAgICAgICAgdXBkYXRlQWN0aXZlS2V5KHByb3BzLnN0b3JlLCBnZXRFdmVudEtleShwcm9wcyksIGFjdGl2ZUtleSk7XG4gICAgICB9IGVsc2UgaWYgKCdhY3RpdmVLZXknIGluIHByZXZQcm9wcykge1xuICAgICAgICAvLyBJZiBwcmV2IGFjdGl2ZUtleSBpcyBub3Qgc2FtZSBhcyBjdXJyZW50IGFjdGl2ZUtleSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIHNldCBpdC5cbiAgICAgICAgdmFyIHByZXZBY3RpdmVLZXkgPSBnZXRBY3RpdmVLZXkocHJldlByb3BzLCBwcmV2UHJvcHMuYWN0aXZlS2V5KTtcblxuICAgICAgICBpZiAoYWN0aXZlS2V5ICE9PSBwcmV2QWN0aXZlS2V5KSB7XG4gICAgICAgICAgdXBkYXRlQWN0aXZlS2V5KHByb3BzLnN0b3JlLCBnZXRFdmVudEtleShwcm9wcyksIGFjdGl2ZUtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgcHJvcHMgPSBfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcyk7XG5cbiAgICAgIHRoaXMuaW5zdGFuY2VBcnJheSA9IFtdO1xuICAgICAgdmFyIGNsYXNzTmFtZSA9IGNsYXNzTmFtZXMocHJvcHMucHJlZml4Q2xzLCBwcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByb3BzLnByZWZpeENscywgXCItXCIpLmNvbmNhdChwcm9wcy5tb2RlKSk7XG4gICAgICB2YXIgZG9tUHJvcHMgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAvLyByb2xlIGNvdWxkIGJlICdzZWxlY3QnIGFuZCBieSBkZWZhdWx0IHNldCB0byBtZW51XG4gICAgICAgIHJvbGU6IHByb3BzLnJvbGUgfHwgJ21lbnUnXG4gICAgICB9O1xuXG4gICAgICBpZiAocHJvcHMuaWQpIHtcbiAgICAgICAgZG9tUHJvcHMuaWQgPSBwcm9wcy5pZDtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLmZvY3VzYWJsZSkge1xuICAgICAgICBkb21Qcm9wcy50YWJJbmRleCA9IDA7XG4gICAgICAgIGRvbVByb3BzLm9uS2V5RG93biA9IHRoaXMub25LZXlEb3duO1xuICAgICAgfVxuXG4gICAgICB2YXIgcHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIGV2ZW50S2V5ID0gcHJvcHMuZXZlbnRLZXksXG4gICAgICAgICAgdmlzaWJsZSA9IHByb3BzLnZpc2libGUsXG4gICAgICAgICAgbGV2ZWwgPSBwcm9wcy5sZXZlbCxcbiAgICAgICAgICBtb2RlID0gcHJvcHMubW9kZSxcbiAgICAgICAgICBvdmVyZmxvd2VkSW5kaWNhdG9yID0gcHJvcHMub3ZlcmZsb3dlZEluZGljYXRvcixcbiAgICAgICAgICB0aGVtZSA9IHByb3BzLnRoZW1lO1xuICAgICAgbWVudUFsbFByb3BzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXR1cm4gZGVsZXRlIHByb3BzW2tleV07XG4gICAgICB9KTsgLy8gT3RoZXJ3aXNlLCB0aGUgcHJvcGFnYXRlZCBjbGljayBldmVudCB3aWxsIHRyaWdnZXIgYW5vdGhlciBvbkNsaWNrXG5cbiAgICAgIGRlbGV0ZSBwcm9wcy5vbkNsaWNrO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KERPTVdyYXAsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgbW9kZTogbW9kZSxcbiAgICAgICAgdGFnOiBcInVsXCIsXG4gICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgdGhlbWU6IHRoZW1lLFxuICAgICAgICB2aXNpYmxlOiB2aXNpYmxlLFxuICAgICAgICBvdmVyZmxvd2VkSW5kaWNhdG9yOiBvdmVyZmxvd2VkSW5kaWNhdG9yXG4gICAgICB9LCBkb21Qcm9wcyksIHRvQXJyYXkocHJvcHMuY2hpbGRyZW4pLm1hcChmdW5jdGlvbiAoYywgaSkge1xuICAgICAgICByZXR1cm4gX3RoaXMyLnJlbmRlck1lbnVJdGVtKGMsIGksIGV2ZW50S2V5IHx8ICcwLW1lbnUtJyk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFN1YlBvcHVwTWVudTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblN1YlBvcHVwTWVudS5kZWZhdWx0UHJvcHMgPSB7XG4gIHByZWZpeENsczogJ3JjLW1lbnUnLFxuICBjbGFzc05hbWU6ICcnLFxuICBtb2RlOiAndmVydGljYWwnLFxuICBsZXZlbDogMSxcbiAgaW5saW5lSW5kZW50OiAyNCxcbiAgdmlzaWJsZTogdHJ1ZSxcbiAgZm9jdXNhYmxlOiB0cnVlLFxuICBzdHlsZToge30sXG4gIG1hbnVhbFJlZjogbm9vcFxufTtcbnZhciBjb25uZWN0ZWQgPSBjb25uZWN0KCkoU3ViUG9wdXBNZW51KTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZDsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG5pbXBvcnQgd2FybmluZyBmcm9tIFwicmMtdXRpbC9lcy93YXJuaW5nXCI7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TW90aW9uKF9yZWYsIF9yZWYyLCBtZW51TW9kZSkge1xuICB2YXIgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgICBtb3Rpb24gPSBfcmVmLm1vdGlvbixcbiAgICAgIF9yZWYkZGVmYXVsdE1vdGlvbnMgPSBfcmVmLmRlZmF1bHRNb3Rpb25zLFxuICAgICAgZGVmYXVsdE1vdGlvbnMgPSBfcmVmJGRlZmF1bHRNb3Rpb25zID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkZGVmYXVsdE1vdGlvbnMsXG4gICAgICBvcGVuQW5pbWF0aW9uID0gX3JlZi5vcGVuQW5pbWF0aW9uLFxuICAgICAgb3BlblRyYW5zaXRpb25OYW1lID0gX3JlZi5vcGVuVHJhbnNpdGlvbk5hbWU7XG4gIHZhciBzd2l0Y2hpbmdNb2RlRnJvbUlubGluZSA9IF9yZWYyLnN3aXRjaGluZ01vZGVGcm9tSW5saW5lO1xuXG4gIGlmIChtb3Rpb24pIHtcbiAgICByZXR1cm4gbW90aW9uO1xuICB9XG5cbiAgaWYgKF90eXBlb2Yob3BlbkFuaW1hdGlvbikgPT09ICdvYmplY3QnICYmIG9wZW5BbmltYXRpb24pIHtcbiAgICB3YXJuaW5nKGZhbHNlLCAnT2JqZWN0IHR5cGUgb2YgYG9wZW5BbmltYXRpb25gIGlzIHJlbW92ZWQuIFBsZWFzZSB1c2UgYG1vdGlvbmAgaW5zdGVhZC4nKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb3BlbkFuaW1hdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW90aW9uTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1vcGVuLVwiKS5jb25jYXQob3BlbkFuaW1hdGlvbilcbiAgICB9O1xuICB9XG5cbiAgaWYgKG9wZW5UcmFuc2l0aW9uTmFtZSkge1xuICAgIHJldHVybiB7XG4gICAgICBtb3Rpb25OYW1lOiBvcGVuVHJhbnNpdGlvbk5hbWVcbiAgICB9O1xuICB9IC8vIERlZmF1bHQgbG9naWNcblxuXG4gIHZhciBkZWZhdWx0TW90aW9uID0gZGVmYXVsdE1vdGlvbnNbbWVudU1vZGVdO1xuXG4gIGlmIChkZWZhdWx0TW90aW9uKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNb3Rpb247XG4gIH0gLy8gV2hlbiBtb2RlIHN3aXRjaCBmcm9tIGlubGluZVxuICAvLyBzdWJtZW51IHNob3VsZCBoaWRlIHdpdGhvdXQgYW5pbWF0aW9uXG5cblxuICByZXR1cm4gc3dpdGNoaW5nTW9kZUZyb21JbmxpbmUgPyBudWxsIDogZGVmYXVsdE1vdGlvbnMub3RoZXI7XG59IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFByb3ZpZGVyLCBjcmVhdGUgfSBmcm9tICdtaW5pLXN0b3JlJztcbmltcG9ydCBvbWl0IGZyb20gXCJyYy11dGlsL2VzL29taXRcIjtcbmltcG9ydCBTdWJQb3B1cE1lbnUsIHsgZ2V0QWN0aXZlS2V5IH0gZnJvbSAnLi9TdWJQb3B1cE1lbnUnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBnZXRNb3Rpb24gfSBmcm9tICcuL3V0aWxzL2xlZ2FjeVV0aWwnO1xuXG52YXIgTWVudSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTWVudSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihNZW51KTtcblxuICBmdW5jdGlvbiBNZW51KHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE1lbnUpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5vblNlbGVjdCA9IGZ1bmN0aW9uIChzZWxlY3RJbmZvKSB7XG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUucHJvcHM7XG5cbiAgICAgIGlmIChwcm9wcy5zZWxlY3RhYmxlKSB7XG4gICAgICAgIC8vIHJvb3QgbWVudVxuICAgICAgICB2YXIgX3RoaXMkc3RvcmUkZ2V0U3RhdGUgPSBfdGhpcy5zdG9yZS5nZXRTdGF0ZSgpLFxuICAgICAgICAgICAgX3NlbGVjdGVkS2V5cyA9IF90aGlzJHN0b3JlJGdldFN0YXRlLnNlbGVjdGVkS2V5cztcblxuICAgICAgICB2YXIgc2VsZWN0ZWRLZXkgPSBzZWxlY3RJbmZvLmtleTtcblxuICAgICAgICBpZiAocHJvcHMubXVsdGlwbGUpIHtcbiAgICAgICAgICBfc2VsZWN0ZWRLZXlzID0gX3NlbGVjdGVkS2V5cy5jb25jYXQoW3NlbGVjdGVkS2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgX3NlbGVjdGVkS2V5cyA9IFtzZWxlY3RlZEtleV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISgnc2VsZWN0ZWRLZXlzJyBpbiBwcm9wcykpIHtcbiAgICAgICAgICBfdGhpcy5zdG9yZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBzZWxlY3RlZEtleXM6IF9zZWxlY3RlZEtleXNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BzLm9uU2VsZWN0KF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc2VsZWN0SW5mbyksIHt9LCB7XG4gICAgICAgICAgc2VsZWN0ZWRLZXlzOiBfc2VsZWN0ZWRLZXlzXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMub25DbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgbW9kZSA9IF90aGlzLmdldFJlYWxNZW51TW9kZSgpO1xuXG4gICAgICB2YXIgX2Fzc2VydFRoaXNJbml0aWFsaXplMiA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIHN0b3JlID0gX2Fzc2VydFRoaXNJbml0aWFsaXplMi5zdG9yZSxcbiAgICAgICAgICBvbk9wZW5DaGFuZ2UgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUyLnByb3BzLm9uT3BlbkNoYW5nZTtcblxuICAgICAgaWYgKG1vZGUgIT09ICdpbmxpbmUnICYmICEoJ29wZW5LZXlzJyBpbiBfdGhpcy5wcm9wcykpIHtcbiAgICAgICAgLy8gY2xvc2luZyB2ZXJ0aWNhbCBwb3B1cCBzdWJtZW51IGFmdGVyIGNsaWNrIGl0XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICBvcGVuS2V5czogW11cbiAgICAgICAgfSk7XG4gICAgICAgIG9uT3BlbkNoYW5nZShbXSk7XG4gICAgICB9XG5cbiAgICAgIF90aGlzLnByb3BzLm9uQ2xpY2soZSk7XG4gICAgfTsgLy8gb25LZXlEb3duIG5lZWRzIHRvIGJlIGV4cG9zZWQgYXMgYSBpbnN0YW5jZSBtZXRob2RcbiAgICAvLyBlLmcuLCBpbiByYy1zZWxlY3QsIHdlIG5lZWQgdG8gbmF2aWdhdGUgbWVudSBpdGVtIHdoaWxlXG4gICAgLy8gY3VycmVudCBhY3RpdmUgaXRlbSBpcyByYy1zZWxlY3QgaW5wdXQgYm94IHJhdGhlciB0aGFuIHRoZSBtZW51IGl0c2VsZlxuXG5cbiAgICBfdGhpcy5vbktleURvd24gPSBmdW5jdGlvbiAoZSwgY2FsbGJhY2spIHtcbiAgICAgIF90aGlzLmlubmVyTWVudS5nZXRXcmFwcGVkSW5zdGFuY2UoKS5vbktleURvd24oZSwgY2FsbGJhY2spO1xuICAgIH07XG5cbiAgICBfdGhpcy5vbk9wZW5DaGFuZ2UgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIHZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemUzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemUzLnByb3BzO1xuXG4gICAgICB2YXIgb3BlbktleXMgPSBfdGhpcy5zdG9yZS5nZXRTdGF0ZSgpLm9wZW5LZXlzLmNvbmNhdCgpO1xuXG4gICAgICB2YXIgY2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICB2YXIgcHJvY2Vzc1NpbmdsZSA9IGZ1bmN0aW9uIHByb2Nlc3NTaW5nbGUoZSkge1xuICAgICAgICB2YXIgb25lQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChlLm9wZW4pIHtcbiAgICAgICAgICBvbmVDaGFuZ2VkID0gb3BlbktleXMuaW5kZXhPZihlLmtleSkgPT09IC0xO1xuXG4gICAgICAgICAgaWYgKG9uZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIG9wZW5LZXlzLnB1c2goZS5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSBvcGVuS2V5cy5pbmRleE9mKGUua2V5KTtcbiAgICAgICAgICBvbmVDaGFuZ2VkID0gaW5kZXggIT09IC0xO1xuXG4gICAgICAgICAgaWYgKG9uZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIG9wZW5LZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2hhbmdlZCA9IGNoYW5nZWQgfHwgb25lQ2hhbmdlZDtcbiAgICAgIH07XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZW50KSkge1xuICAgICAgICAvLyBiYXRjaCBjaGFuZ2UgY2FsbFxuICAgICAgICBldmVudC5mb3JFYWNoKHByb2Nlc3NTaW5nbGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzc1NpbmdsZShldmVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgIGlmICghKCdvcGVuS2V5cycgaW4gX3RoaXMucHJvcHMpKSB7XG4gICAgICAgICAgX3RoaXMuc3RvcmUuc2V0U3RhdGUoe1xuICAgICAgICAgICAgb3BlbktleXM6IG9wZW5LZXlzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9wcy5vbk9wZW5DaGFuZ2Uob3BlbktleXMpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vbkRlc2VsZWN0ID0gZnVuY3Rpb24gKHNlbGVjdEluZm8pIHtcbiAgICAgIHZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemU0ID0gX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksXG4gICAgICAgICAgcHJvcHMgPSBfYXNzZXJ0VGhpc0luaXRpYWxpemU0LnByb3BzO1xuXG4gICAgICBpZiAocHJvcHMuc2VsZWN0YWJsZSkge1xuICAgICAgICB2YXIgX3NlbGVjdGVkS2V5czIgPSBfdGhpcy5zdG9yZS5nZXRTdGF0ZSgpLnNlbGVjdGVkS2V5cy5jb25jYXQoKTtcblxuICAgICAgICB2YXIgc2VsZWN0ZWRLZXkgPSBzZWxlY3RJbmZvLmtleTtcblxuICAgICAgICB2YXIgaW5kZXggPSBfc2VsZWN0ZWRLZXlzMi5pbmRleE9mKHNlbGVjdGVkS2V5KTtcblxuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgX3NlbGVjdGVkS2V5czIuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghKCdzZWxlY3RlZEtleXMnIGluIHByb3BzKSkge1xuICAgICAgICAgIF90aGlzLnN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHNlbGVjdGVkS2V5czogX3NlbGVjdGVkS2V5czJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb3BzLm9uRGVzZWxlY3QoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzZWxlY3RJbmZvKSwge30sIHtcbiAgICAgICAgICBzZWxlY3RlZEtleXM6IF9zZWxlY3RlZEtleXMyXG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9OyAvLyBSZXN0b3JlIHZlcnRpY2FsIG1vZGUgd2hlbiBtZW51IGlzIGNvbGxhcHNlZCByZXNwb25zaXZlbHkgd2hlbiBtb3VudGVkXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTMxMDRcbiAgICAvLyBUT0RPOiBub3QgYSBwZXJmZWN0IHNvbHV0aW9uLFxuICAgIC8vIGxvb2tpbmcgYSBuZXcgd2F5IHRvIGF2b2lkIHNldHRpbmcgc3dpdGNoaW5nTW9kZUZyb21JbmxpbmUgaW4gdGhpcyBzaXR1YXRpb25cblxuXG4gICAgX3RoaXMub25Nb3VzZUVudGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLnJlc3RvcmVNb2RlVmVydGljYWxGcm9tSW5saW5lKCk7XG5cbiAgICAgIHZhciBvbk1vdXNlRW50ZXIgPSBfdGhpcy5wcm9wcy5vbk1vdXNlRW50ZXI7XG5cbiAgICAgIGlmIChvbk1vdXNlRW50ZXIpIHtcbiAgICAgICAgb25Nb3VzZUVudGVyKGUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgLy8gd2hlbiBpbmxpbmVDb2xsYXBzZWQgbWVudSB3aWR0aCBhbmltYXRpb24gZmluaXNoZWRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzEyODY0XG4gICAgICB2YXIgd2lkdGhDb2xsYXBzZWQgPSBlLnByb3BlcnR5TmFtZSA9PT0gJ3dpZHRoJyAmJiBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0OyAvLyBGaXggU1ZHRWxlbWVudCBlLnRhcmdldC5jbGFzc05hbWUuaW5kZXhPZiBpcyBub3QgYSBmdW5jdGlvblxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTU2OTlcblxuICAgICAgdmFyIGNsYXNzTmFtZSA9IGUudGFyZ2V0LmNsYXNzTmFtZTsgLy8gU1ZHQW5pbWF0ZWRTdHJpbmcuYW5pbVZhbCBzaG91bGQgYmUgaWRlbnRpY2FsIHRvIFNWR0FuaW1hdGVkU3RyaW5nLmJhc2VWYWwsXG4gICAgICAvLyB1bmxlc3MgZHVyaW5nIGFuIGFuaW1hdGlvbi5cblxuICAgICAgdmFyIGNsYXNzTmFtZVZhbHVlID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGNsYXNzTmFtZSkgPT09ICdbb2JqZWN0IFNWR0FuaW1hdGVkU3RyaW5nXScgPyBjbGFzc05hbWUuYW5pbVZhbCA6IGNsYXNzTmFtZTsgLy8gRml4IGZvciA8TWVudSBzdHlsZT17eyB3aWR0aDogJzEwMCUnIH19IC8+LFxuICAgICAgLy8gdGhlIHdpZHRoIHRyYW5zaXRpb24gd29uJ3QgdHJpZ2dlciB3aGVuIG1lbnUgaXMgY29sbGFwc2VkXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduLXByby9pc3N1ZXMvMjc4M1xuXG4gICAgICB2YXIgaWNvblNjYWxlZCA9IGUucHJvcGVydHlOYW1lID09PSAnZm9udC1zaXplJyAmJiBjbGFzc05hbWVWYWx1ZS5pbmRleE9mKCdhbnRpY29uJykgPj0gMDtcblxuICAgICAgaWYgKHdpZHRoQ29sbGFwc2VkIHx8IGljb25TY2FsZWQpIHtcbiAgICAgICAgX3RoaXMucmVzdG9yZU1vZGVWZXJ0aWNhbEZyb21JbmxpbmUoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuc2V0SW5uZXJNZW51ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLmlubmVyTWVudSA9IG5vZGU7XG4gICAgfTtcblxuICAgIF90aGlzLmlzUm9vdE1lbnUgPSB0cnVlO1xuICAgIHZhciBzZWxlY3RlZEtleXMgPSBwcm9wcy5kZWZhdWx0U2VsZWN0ZWRLZXlzO1xuICAgIHZhciBvcGVuS2V5cyA9IHByb3BzLmRlZmF1bHRPcGVuS2V5cztcblxuICAgIGlmICgnc2VsZWN0ZWRLZXlzJyBpbiBwcm9wcykge1xuICAgICAgc2VsZWN0ZWRLZXlzID0gcHJvcHMuc2VsZWN0ZWRLZXlzIHx8IFtdO1xuICAgIH1cblxuICAgIGlmICgnb3BlbktleXMnIGluIHByb3BzKSB7XG4gICAgICBvcGVuS2V5cyA9IHByb3BzLm9wZW5LZXlzIHx8IFtdO1xuICAgIH1cblxuICAgIF90aGlzLnN0b3JlID0gY3JlYXRlKHtcbiAgICAgIHNlbGVjdGVkS2V5czogc2VsZWN0ZWRLZXlzLFxuICAgICAgb3BlbktleXM6IG9wZW5LZXlzLFxuICAgICAgYWN0aXZlS2V5OiB7XG4gICAgICAgICcwLW1lbnUtJzogZ2V0QWN0aXZlS2V5KHByb3BzLCBwcm9wcy5hY3RpdmVLZXkpXG4gICAgICB9XG4gICAgfSk7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBzd2l0Y2hpbmdNb2RlRnJvbUlubGluZTogZmFsc2UsXG4gICAgICBwcmV2UHJvcHM6IHByb3BzLFxuICAgICAgaW5saW5lT3BlbktleXM6IFtdLFxuICAgICAgc3RvcmU6IF90aGlzLnN0b3JlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTWVudSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1pbmlTdG9yZSgpO1xuICAgICAgdGhpcy51cGRhdGVNZW51RGlzcGxheSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBzaWRlckNvbGxhcHNlZCA9IF90aGlzJHByb3BzLnNpZGVyQ29sbGFwc2VkLFxuICAgICAgICAgIGlubGluZUNvbGxhcHNlZCA9IF90aGlzJHByb3BzLmlubGluZUNvbGxhcHNlZCxcbiAgICAgICAgICBvbk9wZW5DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbk9wZW5DaGFuZ2U7XG5cbiAgICAgIGlmICghcHJldlByb3BzLmlubGluZUNvbGxhcHNlZCAmJiBpbmxpbmVDb2xsYXBzZWQgfHwgIXByZXZQcm9wcy5zaWRlckNvbGxhcHNlZCAmJiBzaWRlckNvbGxhcHNlZCkge1xuICAgICAgICBvbk9wZW5DaGFuZ2UoW10pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnVwZGF0ZU1pbmlTdG9yZSgpO1xuICAgICAgdGhpcy51cGRhdGVNZW51RGlzcGxheSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJ1cGRhdGVNZW51RGlzcGxheVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB1cGRhdGVNZW51RGlzcGxheSgpIHtcbiAgICAgIHZhciBjb2xsYXBzZWRXaWR0aCA9IHRoaXMucHJvcHMuY29sbGFwc2VkV2lkdGgsXG4gICAgICAgICAgc3RvcmUgPSB0aGlzLnN0b3JlLFxuICAgICAgICAgIHByZXZPcGVuS2V5cyA9IHRoaXMucHJldk9wZW5LZXlzOyAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy84NTg3XG5cbiAgICAgIHZhciBoaWRlTWVudSA9IHRoaXMuZ2V0SW5saW5lQ29sbGFwc2VkKCkgJiYgKGNvbGxhcHNlZFdpZHRoID09PSAwIHx8IGNvbGxhcHNlZFdpZHRoID09PSAnMCcgfHwgY29sbGFwc2VkV2lkdGggPT09ICcwcHgnKTtcblxuICAgICAgaWYgKGhpZGVNZW51KSB7XG4gICAgICAgIHRoaXMucHJldk9wZW5LZXlzID0gc3RvcmUuZ2V0U3RhdGUoKS5vcGVuS2V5cy5jb25jYXQoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgb3BlbktleXM6IFtdXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChwcmV2T3BlbktleXMpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgb3BlbktleXM6IHByZXZPcGVuS2V5c1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcmV2T3BlbktleXMgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRSZWFsTWVudU1vZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UmVhbE1lbnVNb2RlKCkge1xuICAgICAgdmFyIG1vZGUgPSB0aGlzLnByb3BzLm1vZGU7XG4gICAgICB2YXIgc3dpdGNoaW5nTW9kZUZyb21JbmxpbmUgPSB0aGlzLnN0YXRlLnN3aXRjaGluZ01vZGVGcm9tSW5saW5lO1xuICAgICAgdmFyIGlubGluZUNvbGxhcHNlZCA9IHRoaXMuZ2V0SW5saW5lQ29sbGFwc2VkKCk7XG5cbiAgICAgIGlmIChzd2l0Y2hpbmdNb2RlRnJvbUlubGluZSAmJiBpbmxpbmVDb2xsYXBzZWQpIHtcbiAgICAgICAgcmV0dXJuICdpbmxpbmUnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5saW5lQ29sbGFwc2VkID8gJ3ZlcnRpY2FsJyA6IG1vZGU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldElubGluZUNvbGxhcHNlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRJbmxpbmVDb2xsYXBzZWQoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBpbmxpbmVDb2xsYXBzZWQgPSBfdGhpcyRwcm9wczIuaW5saW5lQ29sbGFwc2VkLFxuICAgICAgICAgIHNpZGVyQ29sbGFwc2VkID0gX3RoaXMkcHJvcHMyLnNpZGVyQ29sbGFwc2VkO1xuXG4gICAgICBpZiAoc2lkZXJDb2xsYXBzZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2lkZXJDb2xsYXBzZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmxpbmVDb2xsYXBzZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc3RvcmVNb2RlVmVydGljYWxGcm9tSW5saW5lXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc3RvcmVNb2RlVmVydGljYWxGcm9tSW5saW5lKCkge1xuICAgICAgdmFyIHN3aXRjaGluZ01vZGVGcm9tSW5saW5lID0gdGhpcy5zdGF0ZS5zd2l0Y2hpbmdNb2RlRnJvbUlubGluZTtcblxuICAgICAgaWYgKHN3aXRjaGluZ01vZGVGcm9tSW5saW5lKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHN3aXRjaGluZ01vZGVGcm9tSW5saW5lOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwidXBkYXRlTWluaVN0b3JlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHVwZGF0ZU1pbmlTdG9yZSgpIHtcbiAgICAgIGlmICgnc2VsZWN0ZWRLZXlzJyBpbiB0aGlzLnByb3BzKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0U3RhdGUoe1xuICAgICAgICAgIHNlbGVjdGVkS2V5czogdGhpcy5wcm9wcy5zZWxlY3RlZEtleXMgfHwgW11cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICgnb3BlbktleXMnIGluIHRoaXMucHJvcHMpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRTdGF0ZSh7XG4gICAgICAgICAgb3BlbktleXM6IHRoaXMucHJvcHMub3BlbktleXMgfHwgW11cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgcHJvcHMgPSBfb2JqZWN0U3ByZWFkKHt9LCBvbWl0KHRoaXMucHJvcHMsIFsnY29sbGFwc2VkV2lkdGgnLCAnc2lkZXJDb2xsYXBzZWQnLCAnZGVmYXVsdE1vdGlvbnMnXSkpO1xuXG4gICAgICB2YXIgbW9kZSA9IHRoaXMuZ2V0UmVhbE1lbnVNb2RlKCk7XG4gICAgICBwcm9wcy5jbGFzc05hbWUgKz0gXCIgXCIuY29uY2F0KHByb3BzLnByZWZpeENscywgXCItcm9vdFwiKTtcblxuICAgICAgaWYgKHByb3BzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgcHJvcHMuY2xhc3NOYW1lICs9IFwiIFwiLmNvbmNhdChwcm9wcy5wcmVmaXhDbHMsIFwiLXJ0bFwiKTtcbiAgICAgIH1cblxuICAgICAgcHJvcHMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHByb3BzKSwge30sIHtcbiAgICAgICAgbW9kZTogbW9kZSxcbiAgICAgICAgb25DbGljazogdGhpcy5vbkNsaWNrLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IHRoaXMub25PcGVuQ2hhbmdlLFxuICAgICAgICBvbkRlc2VsZWN0OiB0aGlzLm9uRGVzZWxlY3QsXG4gICAgICAgIG9uU2VsZWN0OiB0aGlzLm9uU2VsZWN0LFxuICAgICAgICBvbk1vdXNlRW50ZXI6IHRoaXMub25Nb3VzZUVudGVyLFxuICAgICAgICBvblRyYW5zaXRpb25FbmQ6IHRoaXMub25UcmFuc2l0aW9uRW5kLFxuICAgICAgICBwYXJlbnRNZW51OiB0aGlzLFxuICAgICAgICBtb3Rpb246IGdldE1vdGlvbih0aGlzLnByb3BzLCB0aGlzLnN0YXRlLCBtb2RlKVxuICAgICAgfSk7XG4gICAgICBkZWxldGUgcHJvcHMub3BlbkFuaW1hdGlvbjtcbiAgICAgIGRlbGV0ZSBwcm9wcy5vcGVuVHJhbnNpdGlvbk5hbWU7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUHJvdmlkZXIsIHtcbiAgICAgICAgc3RvcmU6IHRoaXMuc3RvcmVcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFN1YlBvcHVwTWVudSwgX2V4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgICAgIHJlZjogdGhpcy5zZXRJbm5lck1lbnVcbiAgICAgIH0pLCB0aGlzLnByb3BzLmNoaWxkcmVuKSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgdmFyIHByZXZQcm9wcyA9IHByZXZTdGF0ZS5wcmV2UHJvcHMsXG4gICAgICAgICAgc3RvcmUgPSBwcmV2U3RhdGUuc3RvcmU7XG4gICAgICB2YXIgcHJldlN0b3JlU3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgdmFyIG5ld1N0b3JlU3RhdGUgPSB7fTtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IHtcbiAgICAgICAgcHJldlByb3BzOiBuZXh0UHJvcHNcbiAgICAgIH07XG5cbiAgICAgIGlmIChwcmV2UHJvcHMubW9kZSA9PT0gJ2lubGluZScgJiYgbmV4dFByb3BzLm1vZGUgIT09ICdpbmxpbmUnKSB7XG4gICAgICAgIG5ld1N0YXRlLnN3aXRjaGluZ01vZGVGcm9tSW5saW5lID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCdvcGVuS2V5cycgaW4gbmV4dFByb3BzKSB7XG4gICAgICAgIG5ld1N0b3JlU3RhdGUub3BlbktleXMgPSBuZXh0UHJvcHMub3BlbktleXMgfHwgW107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBbTGVnYWN5XSBPbGQgY29kZSB3aWxsIHJldHVybiBhZnRlciBgb3BlbktleXNgIGNoYW5nZWQuXG4gICAgICAgIC8vIE5vdCBzdXJlIHRoZSByZWFzb24sIHdlIHNob3VsZCBrZWVwIHRoaXMgbG9naWMgc3RpbGwuXG4gICAgICAgIGlmIChuZXh0UHJvcHMuaW5saW5lQ29sbGFwc2VkICYmICFwcmV2UHJvcHMuaW5saW5lQ29sbGFwc2VkIHx8IG5leHRQcm9wcy5zaWRlckNvbGxhcHNlZCAmJiAhcHJldlByb3BzLnNpZGVyQ29sbGFwc2VkKSB7XG4gICAgICAgICAgbmV3U3RhdGUuc3dpdGNoaW5nTW9kZUZyb21JbmxpbmUgPSB0cnVlO1xuICAgICAgICAgIG5ld1N0YXRlLmlubGluZU9wZW5LZXlzID0gcHJldlN0b3JlU3RhdGUub3BlbktleXM7XG4gICAgICAgICAgbmV3U3RvcmVTdGF0ZS5vcGVuS2V5cyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFuZXh0UHJvcHMuaW5saW5lQ29sbGFwc2VkICYmIHByZXZQcm9wcy5pbmxpbmVDb2xsYXBzZWQgfHwgIW5leHRQcm9wcy5zaWRlckNvbGxhcHNlZCAmJiBwcmV2UHJvcHMuc2lkZXJDb2xsYXBzZWQpIHtcbiAgICAgICAgICBuZXdTdG9yZVN0YXRlLm9wZW5LZXlzID0gcHJldlN0YXRlLmlubGluZU9wZW5LZXlzO1xuICAgICAgICAgIG5ld1N0YXRlLmlubGluZU9wZW5LZXlzID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKE9iamVjdC5rZXlzKG5ld1N0b3JlU3RhdGUpLmxlbmd0aCkge1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZShuZXdTdG9yZVN0YXRlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBNZW51O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5NZW51LmRlZmF1bHRQcm9wcyA9IHtcbiAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgb25DbGljazogbm9vcCxcbiAgb25TZWxlY3Q6IG5vb3AsXG4gIG9uT3BlbkNoYW5nZTogbm9vcCxcbiAgb25EZXNlbGVjdDogbm9vcCxcbiAgZGVmYXVsdFNlbGVjdGVkS2V5czogW10sXG4gIGRlZmF1bHRPcGVuS2V5czogW10sXG4gIHN1Yk1lbnVPcGVuRGVsYXk6IDAuMSxcbiAgc3ViTWVudUNsb3NlRGVsYXk6IDAuMSxcbiAgdHJpZ2dlclN1Yk1lbnVBY3Rpb246ICdob3ZlcicsXG4gIHByZWZpeENsczogJ3JjLW1lbnUnLFxuICBjbGFzc05hbWU6ICcnLFxuICBtb2RlOiAndmVydGljYWwnLFxuICBzdHlsZToge30sXG4gIGJ1aWx0aW5QbGFjZW1lbnRzOiB7fSxcbiAgb3ZlcmZsb3dlZEluZGljYXRvcjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIFwiXFx4QjdcXHhCN1xceEI3XCIpXG59O1xuZXhwb3J0IGRlZmF1bHQgTWVudTsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2Fzc2VydFRoaXNJbml0aWFsaXplZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBLZXlDb2RlIGZyb20gXCJyYy11dGlsL2VzL0tleUNvZGVcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IG9taXQgZnJvbSBcInJjLXV0aWwvZXMvb21pdFwiO1xuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJ21pbmktc3RvcmUnO1xuaW1wb3J0IHsgbm9vcCwgbWVudUFsbFByb3BzIH0gZnJvbSAnLi91dGlsJztcbmV4cG9ydCB2YXIgTWVudUl0ZW0gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKE1lbnVJdGVtLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKE1lbnVJdGVtKTtcblxuICBmdW5jdGlvbiBNZW51SXRlbSgpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWVudUl0ZW0pO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgIF90aGlzLm9uS2V5RG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIga2V5Q29kZSA9IGUua2V5Q29kZTtcblxuICAgICAgaWYgKGtleUNvZGUgPT09IEtleUNvZGUuRU5URVIpIHtcbiAgICAgICAgX3RoaXMub25DbGljayhlKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgX3RoaXMub25Nb3VzZUxlYXZlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGV2ZW50S2V5ID0gX3RoaXMkcHJvcHMuZXZlbnRLZXksXG4gICAgICAgICAgb25JdGVtSG92ZXIgPSBfdGhpcyRwcm9wcy5vbkl0ZW1Ib3ZlcixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfdGhpcyRwcm9wcy5vbk1vdXNlTGVhdmU7XG4gICAgICBvbkl0ZW1Ib3Zlcih7XG4gICAgICAgIGtleTogZXZlbnRLZXksXG4gICAgICAgIGhvdmVyOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBvbk1vdXNlTGVhdmUoe1xuICAgICAgICBrZXk6IGV2ZW50S2V5LFxuICAgICAgICBkb21FdmVudDogZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF90aGlzLm9uTW91c2VFbnRlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgZXZlbnRLZXkgPSBfdGhpcyRwcm9wczIuZXZlbnRLZXksXG4gICAgICAgICAgb25JdGVtSG92ZXIgPSBfdGhpcyRwcm9wczIub25JdGVtSG92ZXIsXG4gICAgICAgICAgb25Nb3VzZUVudGVyID0gX3RoaXMkcHJvcHMyLm9uTW91c2VFbnRlcjtcbiAgICAgIG9uSXRlbUhvdmVyKHtcbiAgICAgICAga2V5OiBldmVudEtleSxcbiAgICAgICAgaG92ZXI6IHRydWVcbiAgICAgIH0pO1xuICAgICAgb25Nb3VzZUVudGVyKHtcbiAgICAgICAga2V5OiBldmVudEtleSxcbiAgICAgICAgZG9tRXZlbnQ6IGVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5vbkNsaWNrID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBldmVudEtleSA9IF90aGlzJHByb3BzMy5ldmVudEtleSxcbiAgICAgICAgICBtdWx0aXBsZSA9IF90aGlzJHByb3BzMy5tdWx0aXBsZSxcbiAgICAgICAgICBvbkNsaWNrID0gX3RoaXMkcHJvcHMzLm9uQ2xpY2ssXG4gICAgICAgICAgb25TZWxlY3QgPSBfdGhpcyRwcm9wczMub25TZWxlY3QsXG4gICAgICAgICAgb25EZXNlbGVjdCA9IF90aGlzJHByb3BzMy5vbkRlc2VsZWN0LFxuICAgICAgICAgIGlzU2VsZWN0ZWQgPSBfdGhpcyRwcm9wczMuaXNTZWxlY3RlZDtcbiAgICAgIHZhciBpbmZvID0ge1xuICAgICAgICBrZXk6IGV2ZW50S2V5LFxuICAgICAgICBrZXlQYXRoOiBbZXZlbnRLZXldLFxuICAgICAgICBpdGVtOiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSxcbiAgICAgICAgZG9tRXZlbnQ6IGVcbiAgICAgIH07XG4gICAgICBvbkNsaWNrKGluZm8pO1xuXG4gICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICBvbkRlc2VsZWN0KGluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uU2VsZWN0KGluZm8pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCFpc1NlbGVjdGVkKSB7XG4gICAgICAgIG9uU2VsZWN0KGluZm8pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5zYXZlTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBfdGhpcy5ub2RlID0gbm9kZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1lbnVJdGVtLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIGludm9rZSBjdXN0b21pemVkIHJlZiB0byBleHBvc2UgY29tcG9uZW50IHRvIG1peGluXG4gICAgICB0aGlzLmNhbGxSZWYoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHRoaXMuY2FsbFJlZigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChwcm9wcy5vbkRlc3Ryb3kpIHtcbiAgICAgICAgcHJvcHMub25EZXN0cm95KHByb3BzLmV2ZW50S2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UHJlZml4Q2xzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldFByZWZpeENscygpIHtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdCh0aGlzLnByb3BzLnJvb3RQcmVmaXhDbHMsIFwiLWl0ZW1cIik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldEFjdGl2ZUNsYXNzTmFtZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRBY3RpdmVDbGFzc05hbWUoKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQodGhpcy5nZXRQcmVmaXhDbHMoKSwgXCItYWN0aXZlXCIpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRTZWxlY3RlZENsYXNzTmFtZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRTZWxlY3RlZENsYXNzTmFtZSgpIHtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdCh0aGlzLmdldFByZWZpeENscygpLCBcIi1zZWxlY3RlZFwiKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0RGlzYWJsZWRDbGFzc05hbWVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0RGlzYWJsZWRDbGFzc05hbWUoKSB7XG4gICAgICByZXR1cm4gXCJcIi5jb25jYXQodGhpcy5nZXRQcmVmaXhDbHMoKSwgXCItZGlzYWJsZWRcIik7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNhbGxSZWZcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY2FsbFJlZigpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm1hbnVhbFJlZikge1xuICAgICAgICB0aGlzLnByb3BzLm1hbnVhbFJlZih0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIHByb3BzID0gX29iamVjdFNwcmVhZCh7fSwgdGhpcy5wcm9wcyk7XG5cbiAgICAgIHZhciBjbGFzc05hbWUgPSBjbGFzc05hbWVzKHRoaXMuZ2V0UHJlZml4Q2xzKCksIHByb3BzLmNsYXNzTmFtZSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgdGhpcy5nZXRBY3RpdmVDbGFzc05hbWUoKSwgIXByb3BzLmRpc2FibGVkICYmIHByb3BzLmFjdGl2ZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgdGhpcy5nZXRTZWxlY3RlZENsYXNzTmFtZSgpLCBwcm9wcy5pc1NlbGVjdGVkKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCB0aGlzLmdldERpc2FibGVkQ2xhc3NOYW1lKCksIHByb3BzLmRpc2FibGVkKSwgX2NsYXNzTmFtZXMpKTtcblxuICAgICAgdmFyIGF0dHJzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBwcm9wcy5hdHRyaWJ1dGUpLCB7fSwge1xuICAgICAgICB0aXRsZTogdHlwZW9mIHByb3BzLnRpdGxlID09PSAnc3RyaW5nJyA/IHByb3BzLnRpdGxlIDogdW5kZWZpbmVkLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgICAgLy8gc2V0IHRvIG1lbnVpdGVtIGJ5IGRlZmF1bHRcbiAgICAgICAgcm9sZTogcHJvcHMucm9sZSB8fCAnbWVudWl0ZW0nLFxuICAgICAgICAnYXJpYS1kaXNhYmxlZCc6IHByb3BzLmRpc2FibGVkXG4gICAgICB9KTtcblxuICAgICAgaWYgKHByb3BzLnJvbGUgPT09ICdvcHRpb24nKSB7XG4gICAgICAgIC8vIG92ZXJ3cml0ZSB0byBvcHRpb25cbiAgICAgICAgYXR0cnMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGF0dHJzKSwge30sIHtcbiAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHByb3BzLmlzU2VsZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnJvbGUgPT09IG51bGwgfHwgcHJvcHMucm9sZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgIC8vIHNvbWV0aW1lcyB3ZSB3YW50IHRvIHNwZWNpZnkgcm9sZSBpbnNpZGUgPGxpLz4gZWxlbWVudFxuICAgICAgICAvLyA8bGk+PGEgcm9sZT0nbWVudWl0ZW0nPkxpbms8L2E+PC9saT4gd291bGQgYmUgYSBnb29kIGV4YW1wbGVcbiAgICAgICAgLy8gaW4gdGhpcyBjYXNlIHRoZSByb2xlIG9uIDxsaS8+IHNob3VsZCBiZSBcIm5vbmVcIiB0b1xuICAgICAgICAvLyByZW1vdmUgdGhlIGltcGxpZWQgbGlzdGl0ZW0gcm9sZS5cbiAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLXByYWN0aWNlcy0xLjEvZXhhbXBsZXMvbWVudWJhci9tZW51YmFyLTEvbWVudWJhci0xLmh0bWxcbiAgICAgICAgYXR0cnMucm9sZSA9ICdub25lJztcbiAgICAgIH0gLy8gSW4gY2FzZSB0aGF0IG9uQ2xpY2svb25Nb3VzZUxlYXZlL29uTW91c2VFbnRlciBpcyBwYXNzZWQgZG93biBmcm9tIG93bmVyXG5cblxuICAgICAgdmFyIG1vdXNlRXZlbnQgPSB7XG4gICAgICAgIG9uQ2xpY2s6IHByb3BzLmRpc2FibGVkID8gbnVsbCA6IHRoaXMub25DbGljayxcbiAgICAgICAgb25Nb3VzZUxlYXZlOiBwcm9wcy5kaXNhYmxlZCA/IG51bGwgOiB0aGlzLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiBwcm9wcy5kaXNhYmxlZCA/IG51bGwgOiB0aGlzLm9uTW91c2VFbnRlclxuICAgICAgfTtcblxuICAgICAgdmFyIHN0eWxlID0gX29iamVjdFNwcmVhZCh7fSwgcHJvcHMuc3R5bGUpO1xuXG4gICAgICBpZiAocHJvcHMubW9kZSA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgaWYgKHByb3BzLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgICBzdHlsZS5wYWRkaW5nUmlnaHQgPSBwcm9wcy5pbmxpbmVJbmRlbnQgKiBwcm9wcy5sZXZlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHlsZS5wYWRkaW5nTGVmdCA9IHByb3BzLmlubGluZUluZGVudCAqIHByb3BzLmxldmVsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG1lbnVBbGxQcm9wcy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZSBwcm9wc1trZXldO1xuICAgICAgfSk7XG4gICAgICBkZWxldGUgcHJvcHMuZGlyZWN0aW9uO1xuICAgICAgdmFyIGljb24gPSB0aGlzLnByb3BzLml0ZW1JY29uO1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMuaXRlbUljb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBpcyBhIGJ1ZyB3aGljaCBzaG91bGQgZml4ZWQgYWZ0ZXIgVFMgcmVmYWN0b3JcbiAgICAgICAgaWNvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KHRoaXMucHJvcHMuaXRlbUljb24sIHRoaXMucHJvcHMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCBfZXh0ZW5kcyh7fSwgb21pdChwcm9wcywgWydvbkNsaWNrJywgJ29uTW91c2VFbnRlcicsICdvbk1vdXNlTGVhdmUnLCAnb25TZWxlY3QnXSksIGF0dHJzLCBtb3VzZUV2ZW50LCB7XG4gICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgcmVmOiB0aGlzLnNhdmVOb2RlXG4gICAgICB9KSwgcHJvcHMuY2hpbGRyZW4sIGljb24pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBNZW51SXRlbTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcbk1lbnVJdGVtLmlzTWVudUl0ZW0gPSB0cnVlO1xuTWVudUl0ZW0uZGVmYXVsdFByb3BzID0ge1xuICBvblNlbGVjdDogbm9vcCxcbiAgb25Nb3VzZUVudGVyOiBub29wLFxuICBvbk1vdXNlTGVhdmU6IG5vb3AsXG4gIG1hbnVhbFJlZjogbm9vcFxufTtcbnZhciBjb25uZWN0ZWQgPSBjb25uZWN0KGZ1bmN0aW9uIChfcmVmLCBfcmVmMikge1xuICB2YXIgYWN0aXZlS2V5ID0gX3JlZi5hY3RpdmVLZXksXG4gICAgICBzZWxlY3RlZEtleXMgPSBfcmVmLnNlbGVjdGVkS2V5cztcbiAgdmFyIGV2ZW50S2V5ID0gX3JlZjIuZXZlbnRLZXksXG4gICAgICBzdWJNZW51S2V5ID0gX3JlZjIuc3ViTWVudUtleTtcbiAgcmV0dXJuIHtcbiAgICBhY3RpdmU6IGFjdGl2ZUtleVtzdWJNZW51S2V5XSA9PT0gZXZlbnRLZXksXG4gICAgLy8gc2VsZWN0ZWRLZXlzIHNob3VsZCBiZSBhcnJheSBpbiBhbnkgY2lyY3Vtc3RhbmNlXG4gICAgLy8gd2hlbiBpdCBpcyBub3QsIHdlIGhhdmUgZmFsbGJhY2sgbG9naWMgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzI5NDMwXG4gICAgaXNTZWxlY3RlZDogQXJyYXkuaXNBcnJheShzZWxlY3RlZEtleXMpID8gc2VsZWN0ZWRLZXlzLmluZGV4T2YoZXZlbnRLZXkpICE9PSAtMSA6IHNlbGVjdGVkS2V5cyA9PT0gZXZlbnRLZXlcbiAgfTtcbn0pKE1lbnVJdGVtKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RlZDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2V4dGVuZHNcIjtcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrXCI7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNcIjtcbmltcG9ydCBfY3JlYXRlU3VwZXIgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZVN1cGVyXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtZW51QWxsUHJvcHMgfSBmcm9tICcuL3V0aWwnO1xuXG52YXIgTWVudUl0ZW1Hcm91cCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTWVudUl0ZW1Hcm91cCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihNZW51SXRlbUdyb3VwKTtcblxuICBmdW5jdGlvbiBNZW51SXRlbUdyb3VwKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNZW51SXRlbUdyb3VwKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgICBfdGhpcy5yZW5kZXJJbm5lck1lbnVJdGVtID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIHJlbmRlck1lbnVJdGVtID0gX3RoaXMkcHJvcHMucmVuZGVyTWVudUl0ZW0sXG4gICAgICAgICAgaW5kZXggPSBfdGhpcyRwcm9wcy5pbmRleDtcbiAgICAgIHJldHVybiByZW5kZXJNZW51SXRlbShpdGVtLCBpbmRleCwgX3RoaXMucHJvcHMuc3ViTWVudUtleSk7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNZW51SXRlbUdyb3VwLCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIHByb3BzID0gX2V4dGVuZHMoe30sIHRoaXMucHJvcHMpO1xuXG4gICAgICB2YXIgX3Byb3BzJGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMkY2xhc3NOYW1lID09PSB2b2lkIDAgPyAnJyA6IF9wcm9wcyRjbGFzc05hbWUsXG4gICAgICAgICAgcm9vdFByZWZpeENscyA9IHByb3BzLnJvb3RQcmVmaXhDbHM7XG4gICAgICB2YXIgdGl0bGVDbGFzc05hbWUgPSBcIlwiLmNvbmNhdChyb290UHJlZml4Q2xzLCBcIi1pdGVtLWdyb3VwLXRpdGxlXCIpO1xuICAgICAgdmFyIGxpc3RDbGFzc05hbWUgPSBcIlwiLmNvbmNhdChyb290UHJlZml4Q2xzLCBcIi1pdGVtLWdyb3VwLWxpc3RcIik7XG4gICAgICB2YXIgdGl0bGUgPSBwcm9wcy50aXRsZSxcbiAgICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICAgICAgbWVudUFsbFByb3BzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICByZXR1cm4gZGVsZXRlIHByb3BzW2tleV07XG4gICAgICB9KTtcbiAgICAgIGRlbGV0ZSBwcm9wcy5kaXJlY3Rpb247XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHtcbiAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgcmV0dXJuIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY2xhc3NOYW1lLCBcIiBcIikuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLWl0ZW0tZ3JvdXBcIilcbiAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogdGl0bGVDbGFzc05hbWUsXG4gICAgICAgIHRpdGxlOiB0eXBlb2YgdGl0bGUgPT09ICdzdHJpbmcnID8gdGl0bGUgOiB1bmRlZmluZWRcbiAgICAgIH0sIHRpdGxlKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogbGlzdENsYXNzTmFtZVxuICAgICAgfSwgUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCB0aGlzLnJlbmRlcklubmVyTWVudUl0ZW0pKSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE1lbnVJdGVtR3JvdXA7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbk1lbnVJdGVtR3JvdXAuaXNNZW51SXRlbUdyb3VwID0gdHJ1ZTtcbk1lbnVJdGVtR3JvdXAuZGVmYXVsdFByb3BzID0ge1xuICBkaXNhYmxlZDogdHJ1ZVxufTtcbmV4cG9ydCBkZWZhdWx0IE1lbnVJdGVtR3JvdXA7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG52YXIgRGl2aWRlciA9IGZ1bmN0aW9uIERpdmlkZXIoX3JlZikge1xuICB2YXIgY2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgICByb290UHJlZml4Q2xzID0gX3JlZi5yb290UHJlZml4Q2xzLFxuICAgICAgc3R5bGUgPSBfcmVmLnN0eWxlO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQocm9vdFByZWZpeENscywgXCItaXRlbS1kaXZpZGVyXCIpLFxuICAgIHN0eWxlOiBzdHlsZVxuICB9KTtcbn07XG5cbkRpdmlkZXIuZGVmYXVsdFByb3BzID0ge1xuICAvLyBUbyBmaXgga2V5Ym9hcmQgVVguXG4gIGRpc2FibGVkOiB0cnVlLFxuICBjbGFzc05hbWU6ICcnLFxuICBzdHlsZToge31cbn07XG5leHBvcnQgZGVmYXVsdCBEaXZpZGVyOyIsImltcG9ydCBNZW51IGZyb20gJy4vTWVudSc7XG5pbXBvcnQgU3ViTWVudSBmcm9tICcuL1N1Yk1lbnUnO1xuaW1wb3J0IE1lbnVJdGVtIGZyb20gJy4vTWVudUl0ZW0nO1xuaW1wb3J0IE1lbnVJdGVtR3JvdXAgZnJvbSAnLi9NZW51SXRlbUdyb3VwJztcbmltcG9ydCBEaXZpZGVyIGZyb20gJy4vRGl2aWRlcic7XG5leHBvcnQgeyBTdWJNZW51LCBNZW51SXRlbSBhcyBJdGVtLCBNZW51SXRlbSwgTWVudUl0ZW1Hcm91cCwgTWVudUl0ZW1Hcm91cCBhcyBJdGVtR3JvdXAsIERpdmlkZXIgfTtcbmV4cG9ydCBkZWZhdWx0IE1lbnU7IiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1snZGVmYXVsdCddID0gYWRkRXZlbnRMaXN0ZW5lcjtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX0V2ZW50T2JqZWN0ID0gcmVxdWlyZSgnLi9FdmVudE9iamVjdCcpO1xuXG52YXIgX0V2ZW50T2JqZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0V2ZW50T2JqZWN0KTtcblxuZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lcih0YXJnZXQsIGV2ZW50VHlwZSwgY2FsbGJhY2ssIG9wdGlvbikge1xuICBmdW5jdGlvbiB3cmFwQ2FsbGJhY2soZSkge1xuICAgIHZhciBuZSA9IG5ldyBfRXZlbnRPYmplY3QyWydkZWZhdWx0J10oZSk7XG4gICAgY2FsbGJhY2suY2FsbCh0YXJnZXQsIG5lKTtcbiAgfVxuXG4gIGlmICh0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIHZhciBfcmV0ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB1c2VDYXB0dXJlID0gZmFsc2U7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdXNlQ2FwdHVyZSA9IG9wdGlvbi5jYXB0dXJlIHx8IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdXNlQ2FwdHVyZSA9IG9wdGlvbjtcbiAgICAgIH1cblxuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB3cmFwQ2FsbGJhY2ssIG9wdGlvbiB8fCBmYWxzZSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHY6IHtcbiAgICAgICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgICAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgd3JhcENhbGxiYWNrLCB1c2VDYXB0dXJlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSkoKTtcblxuICAgIGlmICh0eXBlb2YgX3JldCA9PT0gJ29iamVjdCcpIHJldHVybiBfcmV0LnY7XG4gIH0gZWxzZSBpZiAodGFyZ2V0LmF0dGFjaEV2ZW50KSB7XG4gICAgdGFyZ2V0LmF0dGFjaEV2ZW50KCdvbicgKyBldmVudFR5cGUsIHdyYXBDYWxsYmFjayk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgICB0YXJnZXQuZGV0YWNoRXZlbnQoJ29uJyArIGV2ZW50VHlwZSwgd3JhcENhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIihmdW5jdGlvbihmKXtpZih0eXBlb2YgZXhwb3J0cz09PVwib2JqZWN0XCImJnR5cGVvZiBtb2R1bGUhPT1cInVuZGVmaW5lZFwiKXttb2R1bGUuZXhwb3J0cz1mKCl9ZWxzZSBpZih0eXBlb2YgZGVmaW5lPT09XCJmdW5jdGlvblwiJiZkZWZpbmUuYW1kKXtkZWZpbmUoW10sZil9ZWxzZXt2YXIgZztpZih0eXBlb2Ygd2luZG93IT09XCJ1bmRlZmluZWRcIil7Zz13aW5kb3d9ZWxzZSBpZih0eXBlb2YgZ2xvYmFsIT09XCJ1bmRlZmluZWRcIil7Zz1nbG9iYWx9ZWxzZSBpZih0eXBlb2Ygc2VsZiE9PVwidW5kZWZpbmVkXCIpe2c9c2VsZn1lbHNle2c9dGhpc31nLm1lbW9pemVyaWZpYyA9IGYoKX19KShmdW5jdGlvbigpe3ZhciBkZWZpbmUsbW9kdWxlLGV4cG9ydHM7cmV0dXJuIChmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pKHsxOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZm9yY2VTaW1pbGFyKSB7XG5cdGlmICh0eXBlb2YgTWFwICE9PSAnZnVuY3Rpb24nIHx8IGZvcmNlU2ltaWxhcikge1xuXHRcdHZhciBTaW1pbGFyID0gX2RlcmVxXygnLi9zaW1pbGFyJyk7XG5cdFx0cmV0dXJuIG5ldyBTaW1pbGFyKCk7XG5cdH1cblx0ZWxzZSB7XG5cdFx0cmV0dXJuIG5ldyBNYXAoKTtcblx0fVxufVxuXG59LHtcIi4vc2ltaWxhclwiOjJ9XSwyOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbmZ1bmN0aW9uIFNpbWlsYXIoKSB7XG5cdHRoaXMubGlzdCA9IFtdO1xuXHR0aGlzLmxhc3RJdGVtID0gdW5kZWZpbmVkO1xuXHR0aGlzLnNpemUgPSAwO1xuXG5cdHJldHVybiB0aGlzO1xufVxuXG5TaW1pbGFyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihrZXkpIHtcblx0dmFyIGluZGV4O1xuXG5cdGlmICh0aGlzLmxhc3RJdGVtICYmIHRoaXMuaXNFcXVhbCh0aGlzLmxhc3RJdGVtLmtleSwga2V5KSkge1xuXHRcdHJldHVybiB0aGlzLmxhc3RJdGVtLnZhbDtcblx0fVxuXG5cdGluZGV4ID0gdGhpcy5pbmRleE9mKGtleSk7XG5cdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0dGhpcy5sYXN0SXRlbSA9IHRoaXMubGlzdFtpbmRleF07XG5cdFx0cmV0dXJuIHRoaXMubGlzdFtpbmRleF0udmFsO1xuXHR9XG5cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cblNpbWlsYXIucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGtleSwgdmFsKSB7XG5cdHZhciBpbmRleDtcblxuXHRpZiAodGhpcy5sYXN0SXRlbSAmJiB0aGlzLmlzRXF1YWwodGhpcy5sYXN0SXRlbS5rZXksIGtleSkpIHtcblx0XHR0aGlzLmxhc3RJdGVtLnZhbCA9IHZhbDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdGluZGV4ID0gdGhpcy5pbmRleE9mKGtleSk7XG5cdGlmIChpbmRleCA+PSAwKSB7XG5cdFx0dGhpcy5sYXN0SXRlbSA9IHRoaXMubGlzdFtpbmRleF07XG5cdFx0dGhpcy5saXN0W2luZGV4XS52YWwgPSB2YWw7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHR0aGlzLmxhc3RJdGVtID0geyBrZXk6IGtleSwgdmFsOiB2YWwgfTtcblx0dGhpcy5saXN0LnB1c2godGhpcy5sYXN0SXRlbSk7XG5cdHRoaXMuc2l6ZSsrO1xuXG5cdHJldHVybiB0aGlzO1xufTtcblxuU2ltaWxhci5wcm90b3R5cGUuZGVsZXRlID0gZnVuY3Rpb24oa2V5KSB7XG5cdHZhciBpbmRleDtcblxuXHRpZiAodGhpcy5sYXN0SXRlbSAmJiB0aGlzLmlzRXF1YWwodGhpcy5sYXN0SXRlbS5rZXksIGtleSkpIHtcblx0XHR0aGlzLmxhc3RJdGVtID0gdW5kZWZpbmVkO1xuXHR9XG5cblx0aW5kZXggPSB0aGlzLmluZGV4T2Yoa2V5KTtcblx0aWYgKGluZGV4ID49IDApIHtcblx0XHR0aGlzLnNpemUtLTtcblx0XHRyZXR1cm4gdGhpcy5saXN0LnNwbGljZShpbmRleCwgMSlbMF07XG5cdH1cblxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuXG4vLyBpbXBvcnRhbnQgdGhhdCBoYXMoKSBkb2Vzbid0IHVzZSBnZXQoKSBpbiBjYXNlIGFuIGV4aXN0aW5nIGtleSBoYXMgYSBmYWxzeSB2YWx1ZSwgaW4gd2hpY2ggY2FzZSBoYXMoKSB3b3VsZCByZXR1cm4gZmFsc2VcblNpbWlsYXIucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uKGtleSkge1xuXHR2YXIgaW5kZXg7XG5cblx0aWYgKHRoaXMubGFzdEl0ZW0gJiYgdGhpcy5pc0VxdWFsKHRoaXMubGFzdEl0ZW0ua2V5LCBrZXkpKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpbmRleCA9IHRoaXMuaW5kZXhPZihrZXkpO1xuXHRpZiAoaW5kZXggPj0gMCkge1xuXHRcdHRoaXMubGFzdEl0ZW0gPSB0aGlzLmxpc3RbaW5kZXhdO1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxuU2ltaWxhci5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCB0aGlzQXJnKSB7XG5cdHZhciBpO1xuXHRmb3IgKGkgPSAwOyBpIDwgdGhpcy5zaXplOyBpKyspIHtcblx0XHRjYWxsYmFjay5jYWxsKHRoaXNBcmcgfHwgdGhpcywgdGhpcy5saXN0W2ldLnZhbCwgdGhpcy5saXN0W2ldLmtleSwgdGhpcyk7XG5cdH1cbn07XG5cblNpbWlsYXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbihrZXkpIHtcblx0dmFyIGk7XG5cdGZvciAoaSA9IDA7IGkgPCB0aGlzLnNpemU7IGkrKykge1xuXHRcdGlmICh0aGlzLmlzRXF1YWwodGhpcy5saXN0W2ldLmtleSwga2V5KSkge1xuXHRcdFx0cmV0dXJuIGk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiAtMTtcbn07XG5cbi8vIGNoZWNrIGlmIHRoZSBudW1iZXJzIGFyZSBlcXVhbCwgb3Igd2hldGhlciB0aGV5IGFyZSBib3RoIHByZWNpc2VseSBOYU4gKGlzTmFOIHJldHVybnMgdHJ1ZSBmb3IgYWxsIG5vbi1udW1iZXJzKVxuU2ltaWxhci5wcm90b3R5cGUuaXNFcXVhbCA9IGZ1bmN0aW9uKHZhbDEsIHZhbDIpIHtcblx0cmV0dXJuIHZhbDEgPT09IHZhbDIgfHwgKHZhbDEgIT09IHZhbDEgJiYgdmFsMiAhPT0gdmFsMik7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNpbWlsYXI7XG59LHt9XSwzOltmdW5jdGlvbihfZGVyZXFfLG1vZHVsZSxleHBvcnRzKXtcbnZhciBNYXBPclNpbWlsYXIgPSBfZGVyZXFfKCdtYXAtb3Itc2ltaWxhcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaW1pdCkge1xuXHR2YXIgY2FjaGUgPSBuZXcgTWFwT3JTaW1pbGFyKHVuZGVmaW5lZCA9PT0gJ3RydWUnKSxcblx0XHRscnUgPSBbXTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGZuKSB7XG5cdFx0dmFyIG1lbW9pemVyaWZpYyA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHZhciBjdXJyZW50Q2FjaGUgPSBjYWNoZSxcblx0XHRcdFx0bmV3TWFwLFxuXHRcdFx0XHRmblJlc3VsdCxcblx0XHRcdFx0YXJnc0xlbmd0aE1pbnVzT25lID0gYXJndW1lbnRzLmxlbmd0aCAtIDEsXG5cdFx0XHRcdGxydVBhdGggPSBBcnJheShhcmdzTGVuZ3RoTWludXNPbmUgKyAxKSxcblx0XHRcdFx0aXNNZW1vaXplZCA9IHRydWUsXG5cdFx0XHRcdGk7XG5cblx0XHRcdGlmICgobWVtb2l6ZXJpZmljLm51bUFyZ3MgfHwgbWVtb2l6ZXJpZmljLm51bUFyZ3MgPT09IDApICYmIG1lbW9pemVyaWZpYy5udW1BcmdzICE9PSBhcmdzTGVuZ3RoTWludXNPbmUgKyAxKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignTWVtb2l6ZXJpZmljIGZ1bmN0aW9ucyBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBhcmd1bWVudHMnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gbG9vcCB0aHJvdWdoIGVhY2ggYXJndW1lbnQgdG8gdHJhdmVyc2UgdGhlIG1hcCB0cmVlXG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgYXJnc0xlbmd0aE1pbnVzT25lOyBpKyspIHtcblx0XHRcdFx0bHJ1UGF0aFtpXSA9IHtcblx0XHRcdFx0XHRjYWNoZUl0ZW06IGN1cnJlbnRDYWNoZSxcblx0XHRcdFx0XHRhcmc6IGFyZ3VtZW50c1tpXVxuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdC8vIGNsaW1iIHRocm91Z2ggdGhlIGhpZXJhcmNoaWNhbCBtYXAgdHJlZSB1bnRpbCB0aGUgc2Vjb25kLWxhc3QgYXJndW1lbnQgaGFzIGJlZW4gZm91bmQsIG9yIGFuIGFyZ3VtZW50IGlzIG1pc3NpbmcuXG5cdFx0XHRcdC8vIGlmIGFsbCBhcmd1bWVudHMgdXAgdG8gdGhlIHNlY29uZC1sYXN0IGhhdmUgYmVlbiBmb3VuZCwgdGhpcyB3aWxsIHBvdGVudGlhbGx5IGJlIGEgY2FjaGUgaGl0IChkZXRlcm1pbmVkIGxhdGVyKVxuXHRcdFx0XHRpZiAoY3VycmVudENhY2hlLmhhcyhhcmd1bWVudHNbaV0pKSB7XG5cdFx0XHRcdFx0Y3VycmVudENhY2hlID0gY3VycmVudENhY2hlLmdldChhcmd1bWVudHNbaV0pO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aXNNZW1vaXplZCA9IGZhbHNlO1xuXG5cdFx0XHRcdC8vIG1ha2UgbWFwcyB1bnRpbCBsYXN0IHZhbHVlXG5cdFx0XHRcdG5ld01hcCA9IG5ldyBNYXBPclNpbWlsYXIodW5kZWZpbmVkID09PSAndHJ1ZScpO1xuXHRcdFx0XHRjdXJyZW50Q2FjaGUuc2V0KGFyZ3VtZW50c1tpXSwgbmV3TWFwKTtcblx0XHRcdFx0Y3VycmVudENhY2hlID0gbmV3TWFwO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyB3ZSBhcmUgYXQgdGhlIGxhc3QgYXJnLCBjaGVjayBpZiBpdCBpcyByZWFsbHkgbWVtb2l6ZWRcblx0XHRcdGlmIChpc01lbW9pemVkKSB7XG5cdFx0XHRcdGlmIChjdXJyZW50Q2FjaGUuaGFzKGFyZ3VtZW50c1thcmdzTGVuZ3RoTWludXNPbmVdKSkge1xuXHRcdFx0XHRcdGZuUmVzdWx0ID0gY3VycmVudENhY2hlLmdldChhcmd1bWVudHNbYXJnc0xlbmd0aE1pbnVzT25lXSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aXNNZW1vaXplZCA9IGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICghaXNNZW1vaXplZCkge1xuXHRcdFx0XHRmblJlc3VsdCA9IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG5cdFx0XHRcdGN1cnJlbnRDYWNoZS5zZXQoYXJndW1lbnRzW2FyZ3NMZW5ndGhNaW51c09uZV0sIGZuUmVzdWx0KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGxpbWl0ID4gMCkge1xuXHRcdFx0XHRscnVQYXRoW2FyZ3NMZW5ndGhNaW51c09uZV0gPSB7XG5cdFx0XHRcdFx0Y2FjaGVJdGVtOiBjdXJyZW50Q2FjaGUsXG5cdFx0XHRcdFx0YXJnOiBhcmd1bWVudHNbYXJnc0xlbmd0aE1pbnVzT25lXVxuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdGlmIChpc01lbW9pemVkKSB7XG5cdFx0XHRcdFx0bW92ZVRvTW9zdFJlY2VudExydShscnUsIGxydVBhdGgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGxydS5wdXNoKGxydVBhdGgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKGxydS5sZW5ndGggPiBsaW1pdCkge1xuXHRcdFx0XHRcdHJlbW92ZUNhY2hlZFJlc3VsdChscnUuc2hpZnQoKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0bWVtb2l6ZXJpZmljLndhc01lbW9pemVkID0gaXNNZW1vaXplZDtcblx0XHRcdG1lbW9pemVyaWZpYy5udW1BcmdzID0gYXJnc0xlbmd0aE1pbnVzT25lICsgMTtcblxuXHRcdFx0cmV0dXJuIGZuUmVzdWx0O1xuXHRcdH07XG5cblx0XHRtZW1vaXplcmlmaWMubGltaXQgPSBsaW1pdDtcblx0XHRtZW1vaXplcmlmaWMud2FzTWVtb2l6ZWQgPSBmYWxzZTtcblx0XHRtZW1vaXplcmlmaWMuY2FjaGUgPSBjYWNoZTtcblx0XHRtZW1vaXplcmlmaWMubHJ1ID0gbHJ1O1xuXG5cdFx0cmV0dXJuIG1lbW9pemVyaWZpYztcblx0fTtcbn07XG5cbi8vIG1vdmUgY3VycmVudCBhcmdzIHRvIG1vc3QgcmVjZW50IHBvc2l0aW9uXG5mdW5jdGlvbiBtb3ZlVG9Nb3N0UmVjZW50THJ1KGxydSwgbHJ1UGF0aCkge1xuXHR2YXIgbHJ1TGVuID0gbHJ1Lmxlbmd0aCxcblx0XHRscnVQYXRoTGVuID0gbHJ1UGF0aC5sZW5ndGgsXG5cdFx0aXNNYXRjaCxcblx0XHRpLCBpaTtcblxuXHRmb3IgKGkgPSAwOyBpIDwgbHJ1TGVuOyBpKyspIHtcblx0XHRpc01hdGNoID0gdHJ1ZTtcblx0XHRmb3IgKGlpID0gMDsgaWkgPCBscnVQYXRoTGVuOyBpaSsrKSB7XG5cdFx0XHRpZiAoIWlzRXF1YWwobHJ1W2ldW2lpXS5hcmcsIGxydVBhdGhbaWldLmFyZykpIHtcblx0XHRcdFx0aXNNYXRjaCA9IGZhbHNlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzTWF0Y2gpIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdGxydS5wdXNoKGxydS5zcGxpY2UoaSwgMSlbMF0pO1xufVxuXG4vLyByZW1vdmUgbGVhc3QgcmVjZW50bHkgdXNlZCBjYWNoZSBpdGVtIGFuZCBhbGwgZGVhZCBicmFuY2hlc1xuZnVuY3Rpb24gcmVtb3ZlQ2FjaGVkUmVzdWx0KHJlbW92ZWRMcnUpIHtcblx0dmFyIHJlbW92ZWRMcnVMZW4gPSByZW1vdmVkTHJ1Lmxlbmd0aCxcblx0XHRjdXJyZW50THJ1ID0gcmVtb3ZlZExydVtyZW1vdmVkTHJ1TGVuIC0gMV0sXG5cdFx0dG1wLFxuXHRcdGk7XG5cblx0Y3VycmVudExydS5jYWNoZUl0ZW0uZGVsZXRlKGN1cnJlbnRMcnUuYXJnKTtcblxuXHQvLyB3YWxrIGRvd24gdGhlIHRyZWUgcmVtb3ZpbmcgZGVhZCBicmFuY2hlcyAoc2l6ZSAwKSBhbG9uZyB0aGUgd2F5XG5cdGZvciAoaSA9IHJlbW92ZWRMcnVMZW4gLSAyOyBpID49IDA7IGktLSkge1xuXHRcdGN1cnJlbnRMcnUgPSByZW1vdmVkTHJ1W2ldO1xuXHRcdHRtcCA9IGN1cnJlbnRMcnUuY2FjaGVJdGVtLmdldChjdXJyZW50THJ1LmFyZyk7XG5cblx0XHRpZiAoIXRtcCB8fCAhdG1wLnNpemUpIHtcblx0XHRcdGN1cnJlbnRMcnUuY2FjaGVJdGVtLmRlbGV0ZShjdXJyZW50THJ1LmFyZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxufVxuXG4vLyBjaGVjayBpZiB0aGUgbnVtYmVycyBhcmUgZXF1YWwsIG9yIHdoZXRoZXIgdGhleSBhcmUgYm90aCBwcmVjaXNlbHkgTmFOIChpc05hTiByZXR1cm5zIHRydWUgZm9yIGFsbCBub24tbnVtYmVycylcbmZ1bmN0aW9uIGlzRXF1YWwodmFsMSwgdmFsMikge1xuXHRyZXR1cm4gdmFsMSA9PT0gdmFsMiB8fCAodmFsMSAhPT0gdmFsMSAmJiB2YWwyICE9PSB2YWwyKTtcbn1cbn0se1wibWFwLW9yLXNpbWlsYXJcIjoxfV19LHt9LFszXSkoMylcbn0pOyIsIi8qIGdsb2JhbCB3aW5kb3cgKi9cbmltcG9ydCBwb255ZmlsbCBmcm9tICcuL3BvbnlmaWxsLmpzJztcblxudmFyIHJvb3Q7XG5cbmlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgcm9vdCA9IHNlbGY7XG59IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIHJvb3QgPSB3aW5kb3c7XG59IGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7XG4gIHJvb3QgPSBnbG9iYWw7XG59IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG4gIHJvb3QgPSBtb2R1bGU7XG59IGVsc2Uge1xuICByb290ID0gRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbn1cblxudmFyIHJlc3VsdCA9IHBvbnlmaWxsKHJvb3QpO1xuZXhwb3J0IGRlZmF1bHQgcmVzdWx0O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9yY1NlbGVjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyYy1zZWxlY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9vbWl0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwib21pdC5qc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC93YXJuaW5nXCIpKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC90eXBlXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIFNlbGVjdFNpemVzID0gKDAsIF90eXBlLnR1cGxlKSgnZGVmYXVsdCcsICdsYXJnZScsICdzbWFsbCcpO1xudmFyIE1vZGVPcHRpb25zID0gKDAsIF90eXBlLnR1cGxlKSgnZGVmYXVsdCcsICdtdWx0aXBsZScsICd0YWdzJywgJ2NvbWJvYm94JywgJ1NFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0UnKTtcbnZhciBTZWxlY3RQcm9wVHlwZXMgPSB7XG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzaXplOiBQcm9wVHlwZXMub25lT2YoU2VsZWN0U2l6ZXMpLFxuICBub3RGb3VuZENvbnRlbnQ6IFByb3BUeXBlcy5hbnksXG4gIHNob3dTZWFyY2g6IFByb3BUeXBlcy5ib29sLFxuICBvcHRpb25MYWJlbFByb3A6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRyYW5zaXRpb25OYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaG9pY2VUcmFuc2l0aW9uTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmdcbn07XG5cbnZhciBTZWxlY3QgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNlbGVjdCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihTZWxlY3QpO1xuXG4gIGZ1bmN0aW9uIFNlbGVjdChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTZWxlY3QpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5zYXZlU2VsZWN0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLnJjU2VsZWN0ID0gbm9kZTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyU2VsZWN0ID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldENvbnRleHRQb3B1cENvbnRhaW5lciA9IF9yZWYuZ2V0UG9wdXBDb250YWluZXIsXG4gICAgICAgICAgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHMsXG4gICAgICAgICAgcmVuZGVyRW1wdHkgPSBfcmVmLnJlbmRlckVtcHR5O1xuXG4gICAgICB2YXIgX2EgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICAgICAgX2EkY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9hJGNsYXNzTmFtZSA9PT0gdm9pZCAwID8gJycgOiBfYSRjbGFzc05hbWUsXG4gICAgICAgICAgc2l6ZSA9IF9hLnNpemUsXG4gICAgICAgICAgbW9kZSA9IF9hLm1vZGUsXG4gICAgICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBfYS5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICByZW1vdmVJY29uID0gX2EucmVtb3ZlSWNvbixcbiAgICAgICAgICBjbGVhckljb24gPSBfYS5jbGVhckljb24sXG4gICAgICAgICAgbWVudUl0ZW1TZWxlY3RlZEljb24gPSBfYS5tZW51SXRlbVNlbGVjdGVkSWNvbixcbiAgICAgICAgICBzaG93QXJyb3cgPSBfYS5zaG93QXJyb3csXG4gICAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJzaXplXCIsIFwibW9kZVwiLCBcImdldFBvcHVwQ29udGFpbmVyXCIsIFwicmVtb3ZlSWNvblwiLCBcImNsZWFySWNvblwiLCBcIm1lbnVJdGVtU2VsZWN0ZWRJY29uXCIsIFwic2hvd0Fycm93XCJdKTtcblxuICAgICAgdmFyIHJlc3QgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShyZXN0UHJvcHMsIFsnaW5wdXRJY29uJ10pO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnc2VsZWN0JywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgIHZhciBjbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKSgoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWxnXCIpLCBzaXplID09PSAnbGFyZ2UnKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNtXCIpLCBzaXplID09PSAnc21hbGwnKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNob3ctYXJyb3dcIiksIHNob3dBcnJvdyksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKTtcbiAgICAgIHZhciBvcHRpb25MYWJlbFByb3AgPSBfdGhpcy5wcm9wcy5vcHRpb25MYWJlbFByb3A7XG5cbiAgICAgIGlmIChfdGhpcy5pc0NvbWJvYm94KCkpIHtcbiAgICAgICAgLy8gY2hpbGRyZW4g5bimIGRvbSDnu5PmnoTml7bvvIzml6Dms5XloavlhaXovpPlhaXmoYZcbiAgICAgICAgb3B0aW9uTGFiZWxQcm9wID0gb3B0aW9uTGFiZWxQcm9wIHx8ICd2YWx1ZSc7XG4gICAgICB9XG5cbiAgICAgIHZhciBtb2RlQ29uZmlnID0ge1xuICAgICAgICBtdWx0aXBsZTogbW9kZSA9PT0gJ211bHRpcGxlJyxcbiAgICAgICAgdGFnczogbW9kZSA9PT0gJ3RhZ3MnLFxuICAgICAgICBjb21ib2JveDogX3RoaXMuaXNDb21ib2JveCgpXG4gICAgICB9O1xuICAgICAgdmFyIGZpbmFsUmVtb3ZlSWNvbiA9IHJlbW92ZUljb24gJiYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQocmVtb3ZlSWNvbikgPyAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KHJlbW92ZUljb24sIHtcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShyZW1vdmVJY29uLnByb3BzLmNsYXNzTmFtZSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1yZW1vdmUtaWNvblwiKSlcbiAgICAgIH0pIDogcmVtb3ZlSWNvbikgfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHR5cGU6IFwiY2xvc2VcIixcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJlbW92ZS1pY29uXCIpXG4gICAgICB9KTtcbiAgICAgIHZhciBmaW5hbENsZWFySWNvbiA9IGNsZWFySWNvbiAmJiAoIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChjbGVhckljb24pID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjbGVhckljb24sIHtcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShjbGVhckljb24ucHJvcHMuY2xhc3NOYW1lLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsZWFyLWljb25cIikpXG4gICAgICB9KSA6IGNsZWFySWNvbikgfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHR5cGU6IFwiY2xvc2UtY2lyY2xlXCIsXG4gICAgICAgIHRoZW1lOiBcImZpbGxlZFwiLFxuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2xlYXItaWNvblwiKVxuICAgICAgfSk7XG4gICAgICB2YXIgZmluYWxNZW51SXRlbVNlbGVjdGVkSWNvbiA9IG1lbnVJdGVtU2VsZWN0ZWRJY29uICYmICggLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KG1lbnVJdGVtU2VsZWN0ZWRJY29uKSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQobWVudUl0ZW1TZWxlY3RlZEljb24sIHtcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShtZW51SXRlbVNlbGVjdGVkSWNvbi5wcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc2VsZWN0ZWQtaWNvblwiKSlcbiAgICAgIH0pIDogbWVudUl0ZW1TZWxlY3RlZEljb24pIHx8IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICB0eXBlOiBcImNoZWNrXCIsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zZWxlY3RlZC1pY29uXCIpXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNTZWxlY3RbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7XG4gICAgICAgIGlucHV0SWNvbjogX3RoaXMucmVuZGVyU3VmZml4SWNvbihwcmVmaXhDbHMpLFxuICAgICAgICByZW1vdmVJY29uOiBmaW5hbFJlbW92ZUljb24sXG4gICAgICAgIGNsZWFySWNvbjogZmluYWxDbGVhckljb24sXG4gICAgICAgIG1lbnVJdGVtU2VsZWN0ZWRJY29uOiBmaW5hbE1lbnVJdGVtU2VsZWN0ZWRJY29uLFxuICAgICAgICBzaG93QXJyb3c6IHNob3dBcnJvd1xuICAgICAgfSwgcmVzdCwgbW9kZUNvbmZpZywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgY2xhc3NOYW1lOiBjbHMsXG4gICAgICAgIG9wdGlvbkxhYmVsUHJvcDogb3B0aW9uTGFiZWxQcm9wIHx8ICdjaGlsZHJlbicsXG4gICAgICAgIG5vdEZvdW5kQ29udGVudDogX3RoaXMuZ2V0Tm90Rm91bmRDb250ZW50KHJlbmRlckVtcHR5KSxcbiAgICAgICAgZ2V0UG9wdXBDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyIHx8IGdldENvbnRleHRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlU2VsZWN0XG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKHByb3BzLm1vZGUgIT09ICdjb21ib2JveCcsICdTZWxlY3QnLCAnVGhlIGNvbWJvYm94IG1vZGUgaXMgZGVwcmVjYXRlZCwgJyArICdpdCB3aWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciB2ZXJzaW9uLCAnICsgJ3BsZWFzZSB1c2UgQXV0b0NvbXBsZXRlIGluc3RlYWQnKTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoU2VsZWN0LCBbe1xuICAgIGtleTogXCJnZXROb3RGb3VuZENvbnRlbnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Tm90Rm91bmRDb250ZW50KHJlbmRlckVtcHR5KSB7XG4gICAgICB2YXIgbm90Rm91bmRDb250ZW50ID0gdGhpcy5wcm9wcy5ub3RGb3VuZENvbnRlbnQ7XG5cbiAgICAgIGlmIChub3RGb3VuZENvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbm90Rm91bmRDb250ZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0NvbWJvYm94KCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZW5kZXJFbXB0eSgnU2VsZWN0Jyk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImZvY3VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzKCkge1xuICAgICAgdGhpcy5yY1NlbGVjdC5mb2N1cygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJibHVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXIoKSB7XG4gICAgICB0aGlzLnJjU2VsZWN0LmJsdXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiaXNDb21ib2JveFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc0NvbWJvYm94KCkge1xuICAgICAgdmFyIG1vZGUgPSB0aGlzLnByb3BzLm1vZGU7XG4gICAgICByZXR1cm4gbW9kZSA9PT0gJ2NvbWJvYm94JyB8fCBtb2RlID09PSBTZWxlY3QuU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyU3VmZml4SWNvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJTdWZmaXhJY29uKHByZWZpeENscykge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBsb2FkaW5nID0gX3RoaXMkcHJvcHMubG9hZGluZyxcbiAgICAgICAgICBzdWZmaXhJY29uID0gX3RoaXMkcHJvcHMuc3VmZml4SWNvbjtcblxuICAgICAgaWYgKHN1ZmZpeEljb24pIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChzdWZmaXhJY29uKSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoc3VmZml4SWNvbiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoc3VmZml4SWNvbi5wcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYXJyb3ctaWNvblwiKSlcbiAgICAgICAgfSkgOiBzdWZmaXhJY29uO1xuICAgICAgfVxuXG4gICAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgICAgdHlwZTogXCJsb2FkaW5nXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogXCJkb3duXCIsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hcnJvdy1pY29uXCIpXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyU2VsZWN0KTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU2VsZWN0O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFNlbGVjdDtcblNlbGVjdC5PcHRpb24gPSBfcmNTZWxlY3QuT3B0aW9uO1xuU2VsZWN0Lk9wdEdyb3VwID0gX3JjU2VsZWN0Lk9wdEdyb3VwO1xuU2VsZWN0LlNFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0UgPSAnU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSc7XG5TZWxlY3QuZGVmYXVsdFByb3BzID0ge1xuICBzaG93U2VhcmNoOiBmYWxzZSxcbiAgdHJhbnNpdGlvbk5hbWU6ICdzbGlkZS11cCcsXG4gIGNob2ljZVRyYW5zaXRpb25OYW1lOiAnem9vbSdcbn07XG5TZWxlY3QucHJvcFR5cGVzID0gU2VsZWN0UHJvcFR5cGVzOyIsIid1c2Ugc3RyaWN0JztcblxudmFyIHJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1LCBZYWhvbyEgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG52YXIgUkVBQ1RfU1RBVElDUyA9IHtcbiAgY2hpbGRDb250ZXh0VHlwZXM6IHRydWUsXG4gIGNvbnRleHRUeXBlOiB0cnVlLFxuICBjb250ZXh0VHlwZXM6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIGdldERlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yOiB0cnVlLFxuICBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM6IHRydWUsXG4gIG1peGluczogdHJ1ZSxcbiAgcHJvcFR5cGVzOiB0cnVlLFxuICB0eXBlOiB0cnVlXG59O1xudmFyIEtOT1dOX1NUQVRJQ1MgPSB7XG4gIG5hbWU6IHRydWUsXG4gIGxlbmd0aDogdHJ1ZSxcbiAgcHJvdG90eXBlOiB0cnVlLFxuICBjYWxsZXI6IHRydWUsXG4gIGNhbGxlZTogdHJ1ZSxcbiAgYXJndW1lbnRzOiB0cnVlLFxuICBhcml0eTogdHJ1ZVxufTtcbnZhciBGT1JXQVJEX1JFRl9TVEFUSUNTID0ge1xuICAnJCR0eXBlb2YnOiB0cnVlLFxuICByZW5kZXI6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZVxufTtcbnZhciBNRU1PX1NUQVRJQ1MgPSB7XG4gICckJHR5cGVvZic6IHRydWUsXG4gIGNvbXBhcmU6IHRydWUsXG4gIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgZGlzcGxheU5hbWU6IHRydWUsXG4gIHByb3BUeXBlczogdHJ1ZSxcbiAgdHlwZTogdHJ1ZVxufTtcbnZhciBUWVBFX1NUQVRJQ1MgPSB7fTtcblRZUEVfU1RBVElDU1tyZWFjdElzLkZvcndhcmRSZWZdID0gRk9SV0FSRF9SRUZfU1RBVElDUztcblRZUEVfU1RBVElDU1tyZWFjdElzLk1lbW9dID0gTUVNT19TVEFUSUNTO1xuXG5mdW5jdGlvbiBnZXRTdGF0aWNzKGNvbXBvbmVudCkge1xuICAvLyBSZWFjdCB2MTYuMTEgYW5kIGJlbG93XG4gIGlmIChyZWFjdElzLmlzTWVtbyhjb21wb25lbnQpKSB7XG4gICAgcmV0dXJuIE1FTU9fU1RBVElDUztcbiAgfSAvLyBSZWFjdCB2MTYuMTIgYW5kIGFib3ZlXG5cblxuICByZXR1cm4gVFlQRV9TVEFUSUNTW2NvbXBvbmVudFsnJCR0eXBlb2YnXV0gfHwgUkVBQ1RfU1RBVElDUztcbn1cblxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcztcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG52YXIgb2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbmZ1bmN0aW9uIGhvaXN0Tm9uUmVhY3RTdGF0aWNzKHRhcmdldENvbXBvbmVudCwgc291cmNlQ29tcG9uZW50LCBibGFja2xpc3QpIHtcbiAgaWYgKHR5cGVvZiBzb3VyY2VDb21wb25lbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgaG9pc3Qgb3ZlciBzdHJpbmcgKGh0bWwpIGNvbXBvbmVudHNcbiAgICBpZiAob2JqZWN0UHJvdG90eXBlKSB7XG4gICAgICB2YXIgaW5oZXJpdGVkQ29tcG9uZW50ID0gZ2V0UHJvdG90eXBlT2Yoc291cmNlQ29tcG9uZW50KTtcblxuICAgICAgaWYgKGluaGVyaXRlZENvbXBvbmVudCAmJiBpbmhlcml0ZWRDb21wb25lbnQgIT09IG9iamVjdFByb3RvdHlwZSkge1xuICAgICAgICBob2lzdE5vblJlYWN0U3RhdGljcyh0YXJnZXRDb21wb25lbnQsIGluaGVyaXRlZENvbXBvbmVudCwgYmxhY2tsaXN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cyA9IGdldE93blByb3BlcnR5TmFtZXMoc291cmNlQ29tcG9uZW50KTtcblxuICAgIGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgICAgIGtleXMgPSBrZXlzLmNvbmNhdChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlQ29tcG9uZW50KSk7XG4gICAgfVxuXG4gICAgdmFyIHRhcmdldFN0YXRpY3MgPSBnZXRTdGF0aWNzKHRhcmdldENvbXBvbmVudCk7XG4gICAgdmFyIHNvdXJjZVN0YXRpY3MgPSBnZXRTdGF0aWNzKHNvdXJjZUNvbXBvbmVudCk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuXG4gICAgICBpZiAoIUtOT1dOX1NUQVRJQ1Nba2V5XSAmJiAhKGJsYWNrbGlzdCAmJiBibGFja2xpc3Rba2V5XSkgJiYgIShzb3VyY2VTdGF0aWNzICYmIHNvdXJjZVN0YXRpY3Nba2V5XSkgJiYgISh0YXJnZXRTdGF0aWNzICYmIHRhcmdldFN0YXRpY3Nba2V5XSkpIHtcbiAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlQ29tcG9uZW50LCBrZXkpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gQXZvaWQgZmFpbHVyZXMgZnJvbSByZWFkLW9ubHkgcHJvcGVydGllc1xuICAgICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldENvbXBvbmVudCwga2V5LCBkZXNjcmlwdG9yKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0Q29tcG9uZW50O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhvaXN0Tm9uUmVhY3RTdGF0aWNzO1xuIiwiLyogZ2xvYmFscyB3cG1sX3dpemFyZCwgV1BNTF9jb3JlICovXG5pbXBvcnQge3VzZUZldGNofSBmcm9tIFwiQGJqb3JuYWdoL3VzZS1mZXRjaFwiO1xuaW1wb3J0IHtjdXJyeU4sIGZsaXB9IGZyb20gXCJyYW1kYVwiO1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gXCJxdWVyeS1zdHJpbmdcIjtcblxuZ2xvYmFsLldQTUxfY29yZSA9IGdsb2JhbC5XUE1MX2NvcmUgfHwge307XG5XUE1MX2NvcmUuYWpheEluUHJvZ3Jlc3MgPSAwO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWpheCA9ICh7XG5cdFx0XHRcdFx0XHRcdCAgIG1ldGhvZCA9IFwiUE9TVFwiLFxuXHRcdFx0XHRcdFx0XHQgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnXG5cdFx0XHRcdFx0XHQgICB9ID0ge30pID0+IHVzZUZldGNoKHtcblx0dXJsOiBhamF4dXJsLFxuXHRtZXRob2QsXG5cdGluaXQ6IHtcblx0XHRoZWFkZXJzOiB7XG5cdFx0XHQnQ29udGVudC1UeXBlJzogY29udGVudFR5cGVcblx0XHR9XG5cdH1cbn0pO1xuXG5leHBvcnQgY29uc3QgZG9BamF4ID0gKHBheWxvYWQsIHtcblx0bWV0aG9kID0gXCJQT1NUXCIsXG5cdGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD11dGYtOCdcbn0gPSB7fSkgPT4ge1xuXHRXUE1MX2NvcmUuYWpheEluUHJvZ3Jlc3MrKztcblxuXHRyZXR1cm4gZmV0Y2goYWpheHVybCwge1xuXHRcdG1ldGhvZCxcblx0XHRoZWFkZXJzOiB7XG5cdFx0XHQnQ29udGVudC1UeXBlJzogY29udGVudFR5cGVcblx0XHR9LFxuXHRcdGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuXHRcdGJvZHk6IHN0cmluZ2lmeShwYXlsb2FkKSxcblx0fSlcblx0XHQudGhlbihhc3luYyByZXMgPT4ge1xuXHRcdFx0aWYgKHJlcy5vaykge1xuXHRcdFx0XHRjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHQuLi5yZXMsXG5cdFx0XHRcdFx0ZGF0YSxcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHQuLi5yZXMsXG5cdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRzdWNjZXNzOiBmYWxzZSxcblx0XHRcdFx0XHRkYXRhOiB7XG5cdFx0XHRcdFx0XHR0eXBlOiAnYWpheEVycm9yJyxcblx0XHRcdFx0XHRcdG1lc3NhZ2U6IHJlcy5zdGF0dXNUZXh0LFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KVxuXHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcy0tO1xuXHRcdH0pO1xufVxuXG5leHBvcnQgY29uc3QgY2FsbEVuZHBvaW50ID0gY3VycnlOKDIsICh7bm9uY2UsIGVuZHBvaW50fSwgZGF0YSkgPT4gZG9BamF4KGJ1aWxkQWpheFBheWxvYWQobm9uY2UsIGVuZHBvaW50LCBkYXRhKSkpO1xuXG5leHBvcnQgY29uc3QgZG9SZXF1ZXN0R0VUID0gKHVybCwgKSA9PiB7XG5cdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcysrO1xuXG5cdHJldHVybiBmZXRjaCh1cmwsIHttZXRob2Q6ICdHRVQnIH0pLlxuXHRcdHRoZW4ocmVzID0+IChcblx0XHRcdHtcblx0XHRcdFx0Li4ucmVzLFxuXHRcdFx0XHRzdWNjZXNzOiB0cnVlLFxuXHRcdFx0XHRkYXRhOiBKU09OLnBhcnNlKCByZXMuX2JvZHlUZXh0ICksXG5cdFx0XHR9XG5cdFx0KSkuXG5cdFx0Y2F0Y2goZXJyID0+IChcblx0XHRcdHsgc3VjY2VzczogZmFsc2UsIH1cblx0XHQpKS5cblx0XHRmaW5hbGx5KCgpID0+IHtcblx0XHRcdFdQTUxfY29yZS5hamF4SW5Qcm9ncmVzcyAtLTtcblx0XHR9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEFqYXhQYXlsb2FkID0gKG5vbmNlLCBlbmRwb2ludCwgZGF0YSkgPT4gKHtcblx0YWN0aW9uOiAnd3BtbF9hY3Rpb24nLFxuXHRub25jZSxcblx0ZW5kcG9pbnQsXG5cdGRhdGE6IEpTT04uc3RyaW5naWZ5KGRhdGEpXG59KTtcblxuZXhwb3J0IGNvbnN0IHN0cmluZ2lmeSA9IGZsaXAocXVlcnlTdHJpbmcuc3RyaW5naWZ5KSh7YXJyYXlGb3JtYXQ6ICdicmFja2V0J30pO1xuXG5leHBvcnQgY29uc3QgYnVpbGRQYXlsb2FkID0gY3VycnlOKDMsIChub25jZSwgZW5kcG9pbnQsIGRhdGEpID0+IChcblx0XHR7XG5cdFx0XHRib2R5OiBzdHJpbmdpZnkoe1xuXHRcdFx0XHRhY3Rpb246ICd3cG1sX2FjdGlvbicsXG5cdFx0XHRcdG5vbmNlLFxuXHRcdFx0XHRlbmRwb2ludCxcblx0XHRcdFx0ZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YSlcblx0XHRcdH0pXG5cdFx0fVxuXHQpXG4pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9Gb3JtID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9Gb3JtXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9Gb3JtW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwidmFyIGFycmF5TGlrZVRvQXJyYXkgPSByZXF1aXJlKFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCIpO1xuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheTtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuaGFzUHJlZml4U3VmZml4ID0gaGFzUHJlZml4U3VmZml4O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZShcInJlYWN0LWxpZmVjeWNsZXMtY29tcGF0XCIpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC90eXBlXCIpO1xuXG52YXIgX0lucHV0ID0gcmVxdWlyZShcIi4vSW5wdXRcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBDbGVhcmFibGVJbnB1dFR5cGUgPSAoMCwgX3R5cGUudHVwbGUpKCd0ZXh0JywgJ2lucHV0Jyk7XG5cbmZ1bmN0aW9uIGhhc1ByZWZpeFN1ZmZpeChwcm9wcykge1xuICByZXR1cm4gISEocHJvcHMucHJlZml4IHx8IHByb3BzLnN1ZmZpeCB8fCBwcm9wcy5hbGxvd0NsZWFyKTtcbn1cblxudmFyIENsZWFyYWJsZUxhYmVsZWRJbnB1dCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ2xlYXJhYmxlTGFiZWxlZElucHV0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENsZWFyYWJsZUxhYmVsZWRJbnB1dCk7XG5cbiAgZnVuY3Rpb24gQ2xlYXJhYmxlTGFiZWxlZElucHV0KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDbGVhcmFibGVMYWJlbGVkSW5wdXQpO1xuXG4gICAgcmV0dXJuIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENsZWFyYWJsZUxhYmVsZWRJbnB1dCwgW3tcbiAgICBrZXk6IFwicmVuZGVyQ2xlYXJJY29uXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlckNsZWFySWNvbihwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgYWxsb3dDbGVhciA9IF90aGlzJHByb3BzLmFsbG93Q2xlYXIsXG4gICAgICAgICAgdmFsdWUgPSBfdGhpcyRwcm9wcy52YWx1ZSxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgIHJlYWRPbmx5ID0gX3RoaXMkcHJvcHMucmVhZE9ubHksXG4gICAgICAgICAgaW5wdXRUeXBlID0gX3RoaXMkcHJvcHMuaW5wdXRUeXBlLFxuICAgICAgICAgIGhhbmRsZVJlc2V0ID0gX3RoaXMkcHJvcHMuaGFuZGxlUmVzZXQ7XG5cbiAgICAgIGlmICghYWxsb3dDbGVhciB8fCBkaXNhYmxlZCB8fCByZWFkT25seSB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGNsYXNzTmFtZSA9IGlucHV0VHlwZSA9PT0gQ2xlYXJhYmxlSW5wdXRUeXBlWzBdID8gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10ZXh0YXJlYS1jbGVhci1pY29uXCIpIDogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jbGVhci1pY29uXCIpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICB0eXBlOiBcImNsb3NlLWNpcmNsZVwiLFxuICAgICAgICB0aGVtZTogXCJmaWxsZWRcIixcbiAgICAgICAgb25DbGljazogaGFuZGxlUmVzZXQsXG4gICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICByb2xlOiBcImJ1dHRvblwiXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyU3VmZml4XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlclN1ZmZpeChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHN1ZmZpeCA9IF90aGlzJHByb3BzMi5zdWZmaXgsXG4gICAgICAgICAgYWxsb3dDbGVhciA9IF90aGlzJHByb3BzMi5hbGxvd0NsZWFyO1xuXG4gICAgICBpZiAoc3VmZml4IHx8IGFsbG93Q2xlYXIpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXN1ZmZpeFwiKVxuICAgICAgICB9LCB0aGlzLnJlbmRlckNsZWFySWNvbihwcmVmaXhDbHMpLCBzdWZmaXgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyTGFiZWxlZEljb25cIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyTGFiZWxlZEljb24ocHJlZml4Q2xzLCBlbGVtZW50KSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB2YXIgc3VmZml4ID0gdGhpcy5yZW5kZXJTdWZmaXgocHJlZml4Q2xzKTtcblxuICAgICAgaWYgKCFoYXNQcmVmaXhTdWZmaXgocHJvcHMpKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICB2YWx1ZTogcHJvcHMudmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcmVmaXggPSBwcm9wcy5wcmVmaXggPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcHJlZml4XCIpXG4gICAgICB9LCBwcm9wcy5wcmVmaXgpIDogbnVsbDtcbiAgICAgIHZhciBhZmZpeFdyYXBwZXJDbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYWZmaXgtd3JhcHBlclwiKSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hZmZpeC13cmFwcGVyLXNtXCIpLCBwcm9wcy5zaXplID09PSAnc21hbGwnKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFmZml4LXdyYXBwZXItbGdcIiksIHByb3BzLnNpemUgPT09ICdsYXJnZScpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYWZmaXgtd3JhcHBlci1pbnB1dC13aXRoLWNsZWFyLWJ0blwiKSwgcHJvcHMuc3VmZml4ICYmIHByb3BzLmFsbG93Q2xlYXIgJiYgdGhpcy5wcm9wcy52YWx1ZSksIF9jbGFzc05hbWVzKSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBhZmZpeFdyYXBwZXJDbHMsXG4gICAgICAgIHN0eWxlOiBwcm9wcy5zdHlsZVxuICAgICAgfSwgcHJlZml4LCAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHtcbiAgICAgICAgc3R5bGU6IG51bGwsXG4gICAgICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICAgICAgY2xhc3NOYW1lOiAoMCwgX0lucHV0LmdldElucHV0Q2xhc3NOYW1lKShwcmVmaXhDbHMsIHByb3BzLnNpemUsIHByb3BzLmRpc2FibGVkKVxuICAgICAgfSksIHN1ZmZpeCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlcklucHV0V2l0aExhYmVsXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcklucHV0V2l0aExhYmVsKHByZWZpeENscywgbGFiZWxlZEVsZW1lbnQpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lczM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGFkZG9uQmVmb3JlID0gX3RoaXMkcHJvcHMzLmFkZG9uQmVmb3JlLFxuICAgICAgICAgIGFkZG9uQWZ0ZXIgPSBfdGhpcyRwcm9wczMuYWRkb25BZnRlcixcbiAgICAgICAgICBzdHlsZSA9IF90aGlzJHByb3BzMy5zdHlsZSxcbiAgICAgICAgICBzaXplID0gX3RoaXMkcHJvcHMzLnNpemUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMzLmNsYXNzTmFtZTsgLy8gTm90IHdyYXAgd2hlbiB0aGVyZSBpcyBub3QgYWRkb25zXG5cbiAgICAgIGlmICghYWRkb25CZWZvcmUgJiYgIWFkZG9uQWZ0ZXIpIHtcbiAgICAgICAgcmV0dXJuIGxhYmVsZWRFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB2YXIgd3JhcHBlckNsYXNzTmFtZSA9IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JvdXBcIik7XG4gICAgICB2YXIgYWRkb25DbGFzc05hbWUgPSBcIlwiLmNvbmNhdCh3cmFwcGVyQ2xhc3NOYW1lLCBcIi1hZGRvblwiKTtcbiAgICAgIHZhciBhZGRvbkJlZm9yZU5vZGUgPSBhZGRvbkJlZm9yZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogYWRkb25DbGFzc05hbWVcbiAgICAgIH0sIGFkZG9uQmVmb3JlKSA6IG51bGw7XG4gICAgICB2YXIgYWRkb25BZnRlck5vZGUgPSBhZGRvbkFmdGVyID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBhZGRvbkNsYXNzTmFtZVxuICAgICAgfSwgYWRkb25BZnRlcikgOiBudWxsO1xuICAgICAgdmFyIG1lcmdlZFdyYXBwZXJDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXdyYXBwZXJcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgd3JhcHBlckNsYXNzTmFtZSwgYWRkb25CZWZvcmUgfHwgYWRkb25BZnRlcikpO1xuICAgICAgdmFyIG1lcmdlZEdyb3VwQ2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoY2xhc3NOYW1lLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWdyb3VwLXdyYXBwZXJcIiksIChfY2xhc3NOYW1lczMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ncm91cC13cmFwcGVyLXNtXCIpLCBzaXplID09PSAnc21hbGwnKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzMywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ncm91cC13cmFwcGVyLWxnXCIpLCBzaXplID09PSAnbGFyZ2UnKSwgX2NsYXNzTmFtZXMzKSk7IC8vIE5lZWQgYW5vdGhlciB3cmFwcGVyIGZvciBjaGFuZ2luZyBkaXNwbGF5OnRhYmxlIHRvIGRpc3BsYXk6aW5saW5lLWJsb2NrXG4gICAgICAvLyBhbmQgcHV0IHN0eWxlIHByb3AgaW4gd3JhcHBlclxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBtZXJnZWRHcm91cENsYXNzTmFtZSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IG1lcmdlZFdyYXBwZXJDbGFzc05hbWVcbiAgICAgIH0sIGFkZG9uQmVmb3JlTm9kZSwgLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChsYWJlbGVkRWxlbWVudCwge1xuICAgICAgICBzdHlsZTogbnVsbFxuICAgICAgfSksIGFkZG9uQWZ0ZXJOb2RlKSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclRleHRBcmVhV2l0aENsZWFySWNvblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXJUZXh0QXJlYVdpdGhDbGVhckljb24ocHJlZml4Q2xzLCBlbGVtZW50KSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM0ID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB2YWx1ZSA9IF90aGlzJHByb3BzNC52YWx1ZSxcbiAgICAgICAgICBhbGxvd0NsZWFyID0gX3RoaXMkcHJvcHM0LmFsbG93Q2xlYXIsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHM0LmNsYXNzTmFtZSxcbiAgICAgICAgICBzdHlsZSA9IF90aGlzJHByb3BzNC5zdHlsZTtcblxuICAgICAgaWYgKCFhbGxvd0NsZWFyKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhZmZpeFdyYXBwZXJDbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShjbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYWZmaXgtd3JhcHBlclwiKSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1hZmZpeC13cmFwcGVyLXRleHRhcmVhLXdpdGgtY2xlYXItYnRuXCIpKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IGFmZml4V3JhcHBlckNscyxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHtcbiAgICAgICAgc3R5bGU6IG51bGwsXG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfSksIHRoaXMucmVuZGVyQ2xlYXJJY29uKHByZWZpeENscykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJDbGVhcmFibGVMYWJlbGVkSW5wdXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyQ2xlYXJhYmxlTGFiZWxlZElucHV0KCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzNSA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHM1LnByZWZpeENscyxcbiAgICAgICAgICBpbnB1dFR5cGUgPSBfdGhpcyRwcm9wczUuaW5wdXRUeXBlLFxuICAgICAgICAgIGVsZW1lbnQgPSBfdGhpcyRwcm9wczUuZWxlbWVudDtcblxuICAgICAgaWYgKGlucHV0VHlwZSA9PT0gQ2xlYXJhYmxlSW5wdXRUeXBlWzBdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlclRleHRBcmVhV2l0aENsZWFySWNvbihwcmVmaXhDbHMsIGVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJJbnB1dFdpdGhMYWJlbChwcmVmaXhDbHMsIHRoaXMucmVuZGVyTGFiZWxlZEljb24ocHJlZml4Q2xzLCBlbGVtZW50KSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJDbGVhcmFibGVMYWJlbGVkSW5wdXQoKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQ2xlYXJhYmxlTGFiZWxlZElucHV0O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG4oMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoQ2xlYXJhYmxlTGFiZWxlZElucHV0KTtcbnZhciBfZGVmYXVsdCA9IENsZWFyYWJsZUxhYmVsZWRJbnB1dDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCIndXNlIHN0cmljdCc7XG52YXIgJGF0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWF0JykodHJ1ZSk7XG5cbi8vIDIxLjEuMy4yNyBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2l0ZXItZGVmaW5lJykoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHRoaXMuX3QgPSBTdHJpbmcoaXRlcmF0ZWQpOyAvLyB0YXJnZXRcbiAgdGhpcy5faSA9IDA7ICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbi8vIDIxLjEuNS4yLjEgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KClcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIE8gPSB0aGlzLl90O1xuICB2YXIgaW5kZXggPSB0aGlzLl9pO1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBPLmxlbmd0aCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICBwb2ludCA9ICRhdChPLCBpbmRleCk7XG4gIHRoaXMuX2kgKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBMSUJSQVJZID0gcmVxdWlyZSgnLi9fbGlicmFyeScpO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciAkaXRlckNyZWF0ZSA9IHJlcXVpcmUoJy4vX2l0ZXItY3JlYXRlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdwbycpO1xudmFyIElURVJBVE9SID0gcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbnZhciBGRl9JVEVSQVRPUiA9ICdAQGl0ZXJhdG9yJztcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEJhc2UsIE5BTUUsIENvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkge1xuICAgIGlmICghQlVHR1kgJiYga2luZCBpbiBwcm90bykgcmV0dXJuIHByb3RvW2tpbmRdO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVM7XG4gIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7XG4gIHZhciBwcm90byA9IEJhc2UucHJvdG90eXBlO1xuICB2YXIgJG5hdGl2ZSA9IHByb3RvW0lURVJBVE9SXSB8fCBwcm90b1tGRl9JVEVSQVRPUl0gfHwgREVGQVVMVCAmJiBwcm90b1tERUZBVUxUXTtcbiAgdmFyICRkZWZhdWx0ID0gJG5hdGl2ZSB8fCBnZXRNZXRob2QoREVGQVVMVCk7XG4gIHZhciAkZW50cmllcyA9IERFRkFVTFQgPyAhREVGX1ZBTFVFUyA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKCdlbnRyaWVzJykgOiB1bmRlZmluZWQ7XG4gIHZhciAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZTtcbiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7XG4gIC8vIEZpeCBuYXRpdmVcbiAgaWYgKCRhbnlOYXRpdmUpIHtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZiAoIUxJQlJBUlkgJiYgdHlwZW9mIEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSAhPSAnZnVuY3Rpb24nKSBoaWRlKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgfVxuICB9XG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykge1xuICAgIFZBTFVFU19CVUcgPSB0cnVlO1xuICAgICRkZWZhdWx0ID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gJG5hdGl2ZS5jYWxsKHRoaXMpOyB9O1xuICB9XG4gIC8vIERlZmluZSBpdGVyYXRvclxuICBpZiAoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpIHtcbiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpO1xuICB9XG4gIC8vIFBsdWcgZm9yIGxpYnJhcnlcbiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7XG4gIEl0ZXJhdG9yc1tUQUddID0gcmV0dXJuVGhpcztcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoa2V5IGluIG1ldGhvZHMpIHtcbiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbiIsIi8vIDE5LjEuMi43IC8gMTUuMi4zLjQgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4vX2VudW0tYnVnLWtleXMnKS5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG4iLCJ2YXIgcElFID0gcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gZ09QRCA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0lPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBnT1BEKE8sIFApO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZURlc2MoIXBJRS5mLmNhbGwoTywgUCksIE9bUF0pO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy53YXJuaW5nID0gd2FybmluZztcbmV4cG9ydHMubm90ZSA9IG5vdGU7XG5leHBvcnRzLnJlc2V0V2FybmVkID0gcmVzZXRXYXJuZWQ7XG5leHBvcnRzLmNhbGwgPSBjYWxsO1xuZXhwb3J0cy53YXJuaW5nT25jZSA9IHdhcm5pbmdPbmNlO1xuZXhwb3J0cy5ub3RlT25jZSA9IG5vdGVPbmNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG52YXIgd2FybmVkID0ge307XG5cbmZ1bmN0aW9uIHdhcm5pbmcodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJXYXJuaW5nOiBcIi5jb25jYXQobWVzc2FnZSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vdGUodmFsaWQsIG1lc3NhZ2UpIHtcbiAgLy8gU3VwcG9ydCB1Z2xpZnlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIXZhbGlkICYmIGNvbnNvbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUud2FybihcIk5vdGU6IFwiLmNvbmNhdChtZXNzYWdlKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzZXRXYXJuZWQoKSB7XG4gIHdhcm5lZCA9IHt9O1xufVxuXG5mdW5jdGlvbiBjYWxsKG1ldGhvZCwgdmFsaWQsIG1lc3NhZ2UpIHtcbiAgaWYgKCF2YWxpZCAmJiAhd2FybmVkW21lc3NhZ2VdKSB7XG4gICAgbWV0aG9kKGZhbHNlLCBtZXNzYWdlKTtcbiAgICB3YXJuZWRbbWVzc2FnZV0gPSB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5pbmdPbmNlKHZhbGlkLCBtZXNzYWdlKSB7XG4gIGNhbGwod2FybmluZywgdmFsaWQsIG1lc3NhZ2UpO1xufVxuXG5mdW5jdGlvbiBub3RlT25jZSh2YWxpZCwgbWVzc2FnZSkge1xuICBjYWxsKG5vdGUsIHZhbGlkLCBtZXNzYWdlKTtcbn1cblxudmFyIF9kZWZhdWx0ID0gd2FybmluZ09uY2U7XG4vKiBlc2xpbnQtZW5hYmxlICovXG5cbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1wYWdpbmF0aW9uL2xpYi9sb2NhbGUvZW5fVVNcIikpO1xuXG52YXIgX2VuX1VTMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2RhdGUtcGlja2VyL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxudmFyIF9lbl9VUzQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9jYWxlbmRhci9sb2NhbGUvZW5fVVNcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIF9kZWZhdWx0ID0ge1xuICBsb2NhbGU6ICdlbicsXG4gIFBhZ2luYXRpb246IF9lbl9VU1tcImRlZmF1bHRcIl0sXG4gIERhdGVQaWNrZXI6IF9lbl9VUzJbXCJkZWZhdWx0XCJdLFxuICBUaW1lUGlja2VyOiBfZW5fVVMzW1wiZGVmYXVsdFwiXSxcbiAgQ2FsZW5kYXI6IF9lbl9VUzRbXCJkZWZhdWx0XCJdLFxuICBnbG9iYWw6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBzZWxlY3QnXG4gIH0sXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXIgbWVudScsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1Jlc2V0JyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgY3VycmVudCBwYWdlJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnQgY3VycmVudCBwYWdlJyxcbiAgICBzb3J0VGl0bGU6ICdTb3J0JyxcbiAgICBleHBhbmQ6ICdFeHBhbmQgcm93JyxcbiAgICBjb2xsYXBzZTogJ0NvbGxhcHNlIHJvdydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgdGl0bGVzOiBbJycsICcnXSxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBoZXJlJyxcbiAgICBpdGVtVW5pdDogJ2l0ZW0nLFxuICAgIGl0ZW1zVW5pdDogJ2l0ZW1zJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdVcGxvYWRpbmcuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdSZW1vdmUgZmlsZScsXG4gICAgdXBsb2FkRXJyb3I6ICdVcGxvYWQgZXJyb3InLFxuICAgIHByZXZpZXdGaWxlOiAnUHJldmlldyBmaWxlJyxcbiAgICBkb3dubG9hZEZpbGU6ICdEb3dubG9hZCBmaWxlJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnTm8gRGF0YSdcbiAgfSxcbiAgSWNvbjoge1xuICAgIGljb246ICdpY29uJ1xuICB9LFxuICBUZXh0OiB7XG4gICAgZWRpdDogJ0VkaXQnLFxuICAgIGNvcHk6ICdDb3B5JyxcbiAgICBjb3BpZWQ6ICdDb3BpZWQnLFxuICAgIGV4cGFuZDogJ0V4cGFuZCdcbiAgfSxcbiAgUGFnZUhlYWRlcjoge1xuICAgIGJhY2s6ICdCYWNrJ1xuICB9XG59O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2VuX1VTID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtY2FsZW5kYXIvbGliL2xvY2FsZS9lbl9VU1wiKSk7XG5cbnZhciBfZW5fVVMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vdGltZS1waWNrZXIvbG9jYWxlL2VuX1VTXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG52YXIgbG9jYWxlID0ge1xuICBsYW5nOiBfZXh0ZW5kcyh7XG4gICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgZGF0ZScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydCBkYXRlJywgJ0VuZCBkYXRlJ11cbiAgfSwgX2VuX1VTW1wiZGVmYXVsdFwiXSksXG4gIHRpbWVQaWNrZXJMb2NhbGU6IF9leHRlbmRzKHt9LCBfZW5fVVMyW1wiZGVmYXVsdFwiXSlcbn07IC8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbnZhciBfZGVmYXVsdCA9IGxvY2FsZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcbnZhciBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU2VsZWN0IHRpbWUnXG59O1xudmFyIF9kZWZhdWx0ID0gbG9jYWxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQWZyaWthYW5zIFthZl1cbi8vISBhdXRob3IgOiBXZXJuZXIgTW9sbGVudHplIDogaHR0cHM6Ly9naXRodWIuY29tL3dlcm5lcm1cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBhZiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FmJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpZV9GZWJydWFyaWVfTWFhcnRfQXByaWxfTWVpX0p1bmllX0p1bGllX0F1Z3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTXJ0X0Fwcl9NZWlfSnVuX0p1bF9BdWdfU2VwX09rdF9Ob3ZfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1NvbmRhZ19NYWFuZGFnX0RpbnNkYWdfV29lbnNkYWdfRG9uZGVyZGFnX1ZyeWRhZ19TYXRlcmRhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1Nvbl9NYWFfRGluX1dvZV9Eb25fVnJ5X1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19NYV9EaV9Xb19Eb19Wcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3ZtfG5tL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9ebm0kL2kudGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAndm0nIDogJ1ZNJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnbm0nIDogJ05NJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tWYW5kYWcgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTcO0cmUgb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbR2lzdGVyIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYWFzXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvb3IgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGdlbGVkZScsXG4gICAgICAgICAgICBzOiBcIiduIHBhYXIgc2Vrb25kZXNcIixcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vrb25kZXMnLFxuICAgICAgICAgICAgbTogXCInbiBtaW51dXRcIixcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlJyxcbiAgICAgICAgICAgIGg6IFwiJ24gdXVyXCIsXG4gICAgICAgICAgICBoaDogJyVkIHVyZScsXG4gICAgICAgICAgICBkOiBcIiduIGRhZ1wiLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWUnLFxuICAgICAgICAgICAgTTogXCInbiBtYWFuZFwiLFxuICAgICAgICAgICAgTU06ICclZCBtYWFuZGUnLFxuICAgICAgICAgICAgeTogXCInbiBqYWFyXCIsXG4gICAgICAgICAgICB5eTogJyVkIGphYXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjAgPyAnc3RlJyA6ICdkZScpXG4gICAgICAgICAgICApOyAvLyBUaGFua3MgdG8gSm9yaXMgUsO2bGluZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qanVwaXRlclxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1hYW5kYWcgaXMgZGllIGVlcnN0ZSBkYWcgdmFuIGRpZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBEaWUgd2VlayB3YXQgZGllIDRkZSBKYW51YXJpZSBiZXZhdCBpcyBkaWUgZWVyc3RlIHdlZWsgdmFuIGRpZSBqYWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFmO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFyYWJpYyBbYXJdXG4vLyEgYXV0aG9yIDogQWJkZWwgU2FpZDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuLy8hIGF1dGhvciA6IEFobWVkIEVsa2hhdGliXG4vLyEgYXV0aG9yIDogZm9yYWJpIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JhYmlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfZoScsXG4gICAgICAgICAgICAnMic6ICfZoicsXG4gICAgICAgICAgICAnMyc6ICfZoycsXG4gICAgICAgICAgICAnNCc6ICfZpCcsXG4gICAgICAgICAgICAnNSc6ICfZpScsXG4gICAgICAgICAgICAnNic6ICfZpicsXG4gICAgICAgICAgICAnNyc6ICfZpycsXG4gICAgICAgICAgICAnOCc6ICfZqCcsXG4gICAgICAgICAgICAnOSc6ICfZqScsXG4gICAgICAgICAgICAnMCc6ICfZoCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfZoSc6ICcxJyxcbiAgICAgICAgICAgICfZoic6ICcyJyxcbiAgICAgICAgICAgICfZoyc6ICczJyxcbiAgICAgICAgICAgICfZpCc6ICc0JyxcbiAgICAgICAgICAgICfZpSc6ICc1JyxcbiAgICAgICAgICAgICfZpic6ICc2JyxcbiAgICAgICAgICAgICfZpyc6ICc3JyxcbiAgICAgICAgICAgICfZqCc6ICc4JyxcbiAgICAgICAgICAgICfZqSc6ICc5JyxcbiAgICAgICAgICAgICfZoCc6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFsRm9ybSA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICByZXR1cm4gbiA9PT0gMFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogbiA9PT0gMVxuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogbiA9PT0gMlxuICAgICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTBcbiAgICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMTFcbiAgICAgICAgICAgICAgICA/IDRcbiAgICAgICAgICAgICAgICA6IDU7XG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbHMgPSB7XG4gICAgICAgICAgICBzOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICfYq9in2YbZitipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2KvYp9mG2YrYqtin2YYnLCAn2KvYp9mG2YrYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KvZiNin2YYnLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAn2K/ZgtmK2YLYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iv2YLZitmC2KrYp9mGJywgJ9iv2YLZitmC2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJ9iz2KfYudipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2LPYp9i52KrYp9mGJywgJ9iz2KfYudiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDZitmI2YUnLFxuICAgICAgICAgICAgICAgICfZitmI2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2YrZiNmF2KfZhicsICfZitmI2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgTTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYtNmH2LEnLFxuICAgICAgICAgICAgICAgICfYtNmH2LEg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LTZh9ix2KfZhicsICfYtNmH2LHZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ix2KcnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LEnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHk6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LnYp9mFJyxcbiAgICAgICAgICAgICAgICAn2LnYp9mFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i52KfZhdin2YYnLCAn2LnYp9mF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i52YjYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxpemUgPSBmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZiA9IHBsdXJhbEZvcm0obnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gcGx1cmFsc1t1XVtwbHVyYWxGb3JtKG51bWJlcildO1xuICAgICAgICAgICAgICAgIGlmIChmID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0clt3aXRob3V0U3VmZml4ID8gMCA6IDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBtb250aHMgPSBbXG4gICAgICAgICAgICAn2YrZhtin2YrYsScsXG4gICAgICAgICAgICAn2YHYqNix2KfZitixJyxcbiAgICAgICAgICAgICfZhdin2LHYsycsXG4gICAgICAgICAgICAn2KPYqNix2YrZhCcsXG4gICAgICAgICAgICAn2YXYp9mK2YgnLFxuICAgICAgICAgICAgJ9mK2YjZhtmK2YgnLFxuICAgICAgICAgICAgJ9mK2YjZhNmK2YgnLFxuICAgICAgICAgICAgJ9ij2LrYs9i32LMnLFxuICAgICAgICAgICAgJ9iz2KjYqtmF2KjYsScsXG4gICAgICAgICAgICAn2KPZg9iq2YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YHZhdio2LEnLFxuICAgICAgICAgICAgJ9iv2YrYs9mF2KjYsScsXG4gICAgICAgIF07XG5cbiAgICB2YXIgYXIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhcicsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvXFx1MjAwRk0vXFx1MjAwRllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/Zi9inINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9io2LnYryAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgc3M6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBtbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGhoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgZGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICBNTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICB5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgICAgIHl5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW9mh2aLZo9mk2aXZptmn2ajZqdmgXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNiwgLy8gU2F0dXJkYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChBbGdlcmlhKSBbYXItZHpdXG4vLyEgYXV0aG9yIDogQW1pbmUgUm91a2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9BbWluZTI3XG4vLyEgYXV0aG9yIDogQWJkZWwgU2FpZDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuLy8hIGF1dGhvciA6IEFobWVkIEVsa2hhdGliXG4vLyEgYXV0aG9yIDogZm9yYWJpIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3JhYmlcbi8vISBhdXRob3IgOiBOb3VyZWRkaW5lIExPVUFIRURKIDogaHR0cHM6Ly9naXRodWIuY29tL25vdXJlZGRpbmVtXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgcGx1cmFsRm9ybSA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgICAgICByZXR1cm4gbiA9PT0gMFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogbiA9PT0gMVxuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogbiA9PT0gMlxuICAgICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTBcbiAgICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgICA6IG4gJSAxMDAgPj0gMTFcbiAgICAgICAgICAgICAgICA/IDRcbiAgICAgICAgICAgICAgICA6IDU7XG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbHMgPSB7XG4gICAgICAgICAgICBzOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICfYq9in2YbZitipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2KvYp9mG2YrYqtin2YYnLCAn2KvYp9mG2YrYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KvZiNin2YYnLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgICAgICAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAn2K/ZgtmK2YLYqSDZiNin2K3Yr9ipJyxcbiAgICAgICAgICAgICAgICBbJ9iv2YLZitmC2KrYp9mGJywgJ9iv2YLZitmC2KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgICAgICAnJWQg2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJ9iz2KfYudipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2LPYp9i52KrYp9mGJywgJ9iz2KfYudiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgICAgICAnJWQg2LPYp9i52KknLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZDogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDZitmI2YUnLFxuICAgICAgICAgICAgICAgICfZitmI2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2YrZiNmF2KfZhicsICfZitmI2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2YrYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINmK2YjZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgTTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYtNmH2LEnLFxuICAgICAgICAgICAgICAgICfYtNmH2LEg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LTZh9ix2KfZhicsICfYtNmH2LHZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgICAgICAnJWQg2LTZh9ix2KcnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LEnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHk6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2LnYp9mFJyxcbiAgICAgICAgICAgICAgICAn2LnYp9mFINmI2KfYrdivJyxcbiAgICAgICAgICAgICAgICBbJ9i52KfZhdin2YYnLCAn2LnYp9mF2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYo9i52YjYp9mFJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mF2YvYpycsXG4gICAgICAgICAgICAgICAgJyVkINi52KfZhScsXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxpemUgPSBmdW5jdGlvbiAodSkge1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZiA9IHBsdXJhbEZvcm0obnVtYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gcGx1cmFsc1t1XVtwbHVyYWxGb3JtKG51bWJlcildO1xuICAgICAgICAgICAgICAgIGlmIChmID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0clt3aXRob3V0U3VmZml4ID8gMCA6IDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBtb250aHMgPSBbXG4gICAgICAgICAgICAn2KzYp9mG2YHZiicsXG4gICAgICAgICAgICAn2YHZitmB2LHZiicsXG4gICAgICAgICAgICAn2YXYp9ix2LMnLFxuICAgICAgICAgICAgJ9ij2YHYsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KfZiicsXG4gICAgICAgICAgICAn2KzZiNin2YYnLFxuICAgICAgICAgICAgJ9is2YjZitmE2YrYqScsXG4gICAgICAgICAgICAn2KPZiNiqJyxcbiAgICAgICAgICAgICfYs9io2KrZhdio2LEnLFxuICAgICAgICAgICAgJ9ij2YPYqtmI2KjYsScsXG4gICAgICAgICAgICAn2YbZiNmB2YXYqNixJyxcbiAgICAgICAgICAgICfYr9mK2LPZhdio2LEnLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGFyRHogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1keicsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QvXFx1MjAwRk0vXFx1MjAwRllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/Zi9inINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9io2LnYryAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgc3M6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBtbTogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGhoOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgZGQ6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICBNTTogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICB5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgICAgIHl5OiBwbHVyYWxpemUoJ3knKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJEejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKEt1d2FpdCkgW2FyLWt3XVxuLy8hIGF1dGhvciA6IE51c3JldCBQYXJsYWs6IGh0dHBzOi8vZ2l0aHViLmNvbS9udXNyZXRwYXJsYWtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBhckt3ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXIta3cnLCB7XG4gICAgICAgIG1vbnRoczogJ9mK2YbYp9mK2LFf2YHYqNix2KfZitixX9mF2KfYsdizX9ij2KjYsdmK2YRf2YXYp9mKX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiNiyX9i62LTYql/YtNiq2YbYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YbYqNixX9iv2KzZhtio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdiq2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYp9it2K9f2KfYqtmG2YrZhl/Yq9mE2KfYq9in2KFf2KfYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/YpyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogJ9ir2YjYp9mGJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgaDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkOiAn2YrZiNmFJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTTogJ9i02YfYsScsXG4gICAgICAgICAgICBNTTogJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgIHk6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXk6ICclZCDYs9mG2YjYp9iqJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogMTIsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJLdztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBcmFiaWMgKEx5YmlhKSBbYXItbHldXG4vLyEgYXV0aG9yIDogQWxpIEhtZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9raWtvYW5pc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJzEnLFxuICAgICAgICAgICAgJzInOiAnMicsXG4gICAgICAgICAgICAnMyc6ICczJyxcbiAgICAgICAgICAgICc0JzogJzQnLFxuICAgICAgICAgICAgJzUnOiAnNScsXG4gICAgICAgICAgICAnNic6ICc2JyxcbiAgICAgICAgICAgICc3JzogJzcnLFxuICAgICAgICAgICAgJzgnOiAnOCcsXG4gICAgICAgICAgICAnOSc6ICc5JyxcbiAgICAgICAgICAgICcwJzogJzAnLFxuICAgICAgICB9LFxuICAgICAgICBwbHVyYWxGb3JtID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBuID09PSAwXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiBuID09PSAxXG4gICAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgICAgOiBuID09PSAyXG4gICAgICAgICAgICAgICAgPyAyXG4gICAgICAgICAgICAgICAgOiBuICUgMTAwID49IDMgJiYgbiAlIDEwMCA8PSAxMFxuICAgICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICAgIDogbiAlIDEwMCA+PSAxMVxuICAgICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICAgIDogNTtcbiAgICAgICAgfSxcbiAgICAgICAgcGx1cmFscyA9IHtcbiAgICAgICAgICAgIHM6IFtcbiAgICAgICAgICAgICAgICAn2KPZgtmEINmF2YYg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICAgICAgJ9ir2KfZhtmK2Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYq9in2YbZitiq2KfZhicsICfYq9in2YbZitiq2YrZhiddLFxuICAgICAgICAgICAgICAgICclZCDYq9mI2KfZhicsXG4gICAgICAgICAgICAgICAgJyVkINir2KfZhtmK2KknLFxuICAgICAgICAgICAgICAgICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBtOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICfYr9mC2YrZgtipINmI2KfYrdiv2KknLFxuICAgICAgICAgICAgICAgIFsn2K/ZgtmK2YLYqtin2YYnLCAn2K/ZgtmK2YLYqtmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICAgICAgJyVkINiv2YLZitmC2KknLFxuICAgICAgICAgICAgICAgICclZCDYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBoOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINiz2KfYudipJyxcbiAgICAgICAgICAgICAgICAn2LPYp9i52Kkg2YjYp9it2K/YqScsXG4gICAgICAgICAgICAgICAgWyfYs9in2LnYqtin2YYnLCAn2LPYp9i52KrZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgICAgICclZCDYs9in2LnYqScsXG4gICAgICAgICAgICAgICAgJyVkINiz2KfYudipJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBkOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINmK2YjZhScsXG4gICAgICAgICAgICAgICAgJ9mK2YjZhSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfZitmI2YXYp9mGJywgJ9mK2YjZhdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgICAgICclZCDZitmI2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2YrZiNmFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBNOiBbXG4gICAgICAgICAgICAgICAgJ9ij2YLZhCDZhdmGINi02YfYsScsXG4gICAgICAgICAgICAgICAgJ9i02YfYsSDZiNin2K3YrycsXG4gICAgICAgICAgICAgICAgWyfYtNmH2LHYp9mGJywgJ9i02YfYsdmK2YYnXSxcbiAgICAgICAgICAgICAgICAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgICAgICclZCDYtNmH2LHYpycsXG4gICAgICAgICAgICAgICAgJyVkINi02YfYsScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgeTogW1xuICAgICAgICAgICAgICAgICfYo9mC2YQg2YXZhiDYudin2YUnLFxuICAgICAgICAgICAgICAgICfYudin2YUg2YjYp9it2K8nLFxuICAgICAgICAgICAgICAgIFsn2LnYp9mF2KfZhicsICfYudin2YXZitmGJ10sXG4gICAgICAgICAgICAgICAgJyVkINij2LnZiNin2YUnLFxuICAgICAgICAgICAgICAgICclZCDYudin2YXZi9inJyxcbiAgICAgICAgICAgICAgICAnJWQg2LnYp9mFJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsdXJhbGl6ZSA9IGZ1bmN0aW9uICh1KSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgIHZhciBmID0gcGx1cmFsRm9ybShudW1iZXIpLFxuICAgICAgICAgICAgICAgICAgICBzdHIgPSBwbHVyYWxzW3VdW3BsdXJhbEZvcm0obnVtYmVyKV07XG4gICAgICAgICAgICAgICAgaWYgKGYgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyID0gc3RyW3dpdGhvdXRTdWZmaXggPyAwIDogMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfZitmG2KfZitixJyxcbiAgICAgICAgICAgICfZgdio2LHYp9mK2LEnLFxuICAgICAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgICAgICfYo9io2LHZitmEJyxcbiAgICAgICAgICAgICfZhdin2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmG2YrZiCcsXG4gICAgICAgICAgICAn2YrZiNmE2YrZiCcsXG4gICAgICAgICAgICAn2KPYutiz2LfYsycsXG4gICAgICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgICAgICfYo9mD2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICAgICAn2K/Zitiz2YXYqNixJyxcbiAgICAgICAgXTtcblxuICAgIHZhciBhckx5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItbHknLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdEL1xcdTIwMEZNL1xcdTIwMEZZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9i1JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZhSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2YvYpyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfYqNi52K8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIHNzOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIG06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgbW06IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBoaDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIGRkOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIE06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgTU06IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgeTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgICAgICB5eTogcGx1cmFsaXplKCd5JyksXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyTHk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChNb3JvY2NvKSBbYXItbWFdXG4vLyEgYXV0aG9yIDogRWxGYWRpbGkgWWFzc2luZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9FbEZhZGlsaVlcbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkIDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGFyTWEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1tYScsIHtcbiAgICAgICAgbW9udGhzOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZil/ZitmI2YbZitmIX9mK2YjZhNmK2YjYsl/Yuti02Kpf2LTYqtmG2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmG2KjYsV/Yr9is2YbYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9in2K3Yr1/Yp9ir2YbZitmGX9ir2YTYp9ir2KfYoV/Yp9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9mF2YbYsCAlcycsXG4gICAgICAgICAgICBzOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3M6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyTWE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXJhYmljIChTYXVkaSBBcmFiaWEpIFthci1zYV1cbi8vISBhdXRob3IgOiBTdWhhaWwgQWxrb3dhaWxlZXQgOiBodHRwczovL2dpdGh1Yi5jb20veHNvaFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ9mhJyxcbiAgICAgICAgICAgICcyJzogJ9miJyxcbiAgICAgICAgICAgICczJzogJ9mjJyxcbiAgICAgICAgICAgICc0JzogJ9mkJyxcbiAgICAgICAgICAgICc1JzogJ9mlJyxcbiAgICAgICAgICAgICc2JzogJ9mmJyxcbiAgICAgICAgICAgICc3JzogJ9mnJyxcbiAgICAgICAgICAgICc4JzogJ9moJyxcbiAgICAgICAgICAgICc5JzogJ9mpJyxcbiAgICAgICAgICAgICcwJzogJ9mgJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAgICAgJ9mgJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGFyU2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci1zYScsIHtcbiAgICAgICAgbW9udGhzOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2YrZiF/ZitmI2YbZitmIX9mK2YjZhNmK2Yhf2KPYutiz2LfYs1/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2YrZiF/ZitmI2YbZitmIX9mK2YjZhNmK2Yhf2KPYutiz2LfYs1/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2KPYrdivX9il2KvZhtmK2YZf2KvZhNin2KvYp9ihX9ij2LHYqNi52KfYoV/YrtmF2YrYs1/YrNmF2LnYqV/Ys9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfZhScgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/YpyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogJ9ir2YjYp9mGJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgaDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkOiAn2YrZiNmFJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTTogJ9i02YfYsScsXG4gICAgICAgICAgICBNTTogJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgIHk6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXk6ICclZCDYs9mG2YjYp9iqJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW9mh2aLZo9mk2aXZptmn2ajZqdmgXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhclNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSAgOiAgQXJhYmljIChUdW5pc2lhKSBbYXItdG5dXG4vLyEgYXV0aG9yIDogTmFkZXIgVG91a2FicmkgOiBodHRwczovL2dpdGh1Yi5jb20vbmFkZXJpb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGFyVG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhci10bicsIHtcbiAgICAgICAgbW9udGhzOiAn2KzYp9mG2YHZil/ZgdmK2YHYsdmKX9mF2KfYsdizX9ij2YHYsdmK2YRf2YXYp9mKX9is2YjYp9mGX9is2YjZitmE2YrYqV/Yo9mI2Kpf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9is2KfZhtmB2Ypf2YHZitmB2LHZil/Zhdin2LHYs1/Yo9mB2LHZitmEX9mF2KfZil/YrNmI2KfZhl/YrNmI2YrZhNmK2Klf2KPZiNiqX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfYp9mE2KPYrdivX9in2YTYpdir2YbZitmGX9in2YTYq9mE2KfYq9in2KFf2KfZhNij2LHYqNi52KfYoV/Yp9mE2K7ZhdmK2LNf2KfZhNis2YXYudipX9in2YTYs9io2KonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/YpyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgczogJ9ir2YjYp9mGJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbTogJyVkINiv2YLYp9im2YInLFxuICAgICAgICAgICAgaDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkOiAn2YrZiNmFJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTTogJ9i02YfYsScsXG4gICAgICAgICAgICBNTTogJyVkINij2LTZh9ixJyxcbiAgICAgICAgICAgIHk6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXk6ICclZCDYs9mG2YjYp9iqJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyVG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQXplcmJhaWphbmkgW2F6XVxuLy8hIGF1dGhvciA6IHRvcGNoaXlldiA6IGh0dHBzOi8vZ2l0aHViLmNvbS90b3BjaGl5ZXZcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMTogJy1pbmNpJyxcbiAgICAgICAgNTogJy1pbmNpJyxcbiAgICAgICAgODogJy1pbmNpJyxcbiAgICAgICAgNzA6ICctaW5jaScsXG4gICAgICAgIDgwOiAnLWluY2knLFxuICAgICAgICAyOiAnLW5jaScsXG4gICAgICAgIDc6ICctbmNpJyxcbiAgICAgICAgMjA6ICctbmNpJyxcbiAgICAgICAgNTA6ICctbmNpJyxcbiAgICAgICAgMzogJy3DvG5jw7wnLFxuICAgICAgICA0OiAnLcO8bmPDvCcsXG4gICAgICAgIDEwMDogJy3DvG5jw7wnLFxuICAgICAgICA2OiAnLW5jxLEnLFxuICAgICAgICA5OiAnLXVuY3UnLFxuICAgICAgICAxMDogJy11bmN1JyxcbiAgICAgICAgMzA6ICctdW5jdScsXG4gICAgICAgIDYwOiAnLcSxbmPEsScsXG4gICAgICAgIDkwOiAnLcSxbmPEsScsXG4gICAgfTtcblxuICAgIHZhciBheiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2F6Jywge1xuICAgICAgICBtb250aHM6ICd5YW52YXJfZmV2cmFsX21hcnRfYXByZWxfbWF5X2l5dW5faXl1bF9hdnF1c3Rfc2VudHlhYnJfb2t0eWFicl9ub3lhYnJfZGVrYWJyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ3lhbl9mZXZfbWFyX2Fwcl9tYXlfaXluX2l5bF9hdnFfc2VuX29rdF9ub3lfZGVrJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0JhemFyX0JhemFyIGVydMmZc2lfw4fJmXLFn8mZbmLJmSBheMWfYW3EsV/Dh8mZcsWfyZluYsmZX0PDvG3JmSBheMWfYW3EsV9Dw7xtyZlfxZ7JmW5iyZknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdCYXpfQnpFX8OHQXhfw4fJmXJfQ0F4X0PDvG1fxZ7JmW4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQnpfQkVfw4dBX8OHyZlfQ0FfQ8O8X8WeyZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tidWfDvG4gc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzYWJhaCBzYWF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tnyZlsyZluIGjJmWZ0yZldIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZMO8bsmZbl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdba2XDp8mZbiBoyZlmdMmZXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHNvbnJhJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDJmXZ2yZlsJyxcbiAgICAgICAgICAgIHM6ICdiaXJuZcOnyZkgc2FuaXnJmScsXG4gICAgICAgICAgICBzczogJyVkIHNhbml5yZknLFxuICAgICAgICAgICAgbTogJ2JpciBkyZlxaXHJmScsXG4gICAgICAgICAgICBtbTogJyVkIGTJmXFpccmZJyxcbiAgICAgICAgICAgIGg6ICdiaXIgc2FhdCcsXG4gICAgICAgICAgICBoaDogJyVkIHNhYXQnLFxuICAgICAgICAgICAgZDogJ2JpciBnw7xuJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZ8O8bicsXG4gICAgICAgICAgICBNOiAnYmlyIGF5JyxcbiAgICAgICAgICAgIE1NOiAnJWQgYXknLFxuICAgICAgICAgICAgeTogJ2JpciBpbCcsXG4gICAgICAgICAgICB5eTogJyVkIGlsJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2dlY8mZfHPJmWjJmXJ8Z8O8bmTDvHp8YXjFn2FtLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14oZ8O8bmTDvHp8YXjFn2FtKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdnZWPJmSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc8mZaMmZcic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZ8O8bmTDvHonO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2F4xZ9hbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0oxLFuY8SxfGluY2l8bmNpfMO8bmPDvHxuY8SxfHVuY3UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgemVyb1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLcSxbmPEsSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSAobnVtYmVyICUgMTAwKSAtIGEsXG4gICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSB8fCBzdWZmaXhlc1tjXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCZWxhcnVzaWFuIFtiZV1cbi8vISBhdXRob3IgOiBEbWl0cnkgRGVtaWRvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9kZW1pZG92OTFcbi8vISBhdXRob3I6IFByYWxlc2thOiBodHRwOi8vcHJhbGVza2EucHJvL1xuLy8hIEF1dGhvciA6IE1lbmVsaW9uIEVsZW5zw7psZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTFcbiAgICAgICAgICAgID8gZm9ybXNbMF1cbiAgICAgICAgICAgIDogbnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApXG4gICAgICAgICAgICA/IGZvcm1zWzFdXG4gICAgICAgICAgICA6IGZvcm1zWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzczogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBtbTogd2l0aG91dFN1ZmZpeCA/ICfRhdCy0ZbQu9GW0L3QsF/RhdCy0ZbQu9GW0L3Ri1/RhdCy0ZbQu9GW0L0nIDogJ9GF0LLRltC70ZbQvdGDX9GF0LLRltC70ZbQvdGLX9GF0LLRltC70ZbQvScsXG4gICAgICAgICAgICBoaDogd2l0aG91dFN1ZmZpeCA/ICfQs9Cw0LTQt9GW0L3QsF/Qs9Cw0LTQt9GW0L3Ri1/Qs9Cw0LTQt9GW0L0nIDogJ9Cz0LDQtNC30ZbQvdGDX9Cz0LDQtNC30ZbQvdGLX9Cz0LDQtNC30ZbQvScsXG4gICAgICAgICAgICBkZDogJ9C00LfQtdC90Yxf0LTQvdGWX9C00LfRkdC9JyxcbiAgICAgICAgICAgIE1NOiAn0LzQtdGB0Y/Rhl/QvNC10YHRj9GG0Ytf0LzQtdGB0Y/RhtCw0Z4nLFxuICAgICAgICAgICAgeXk6ICfQs9C+0LRf0LPQsNC00Ytf0LPQsNC00L7RnicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXQstGW0LvRltC90LAnIDogJ9GF0LLRltC70ZbQvdGDJztcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdoJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LPQsNC00LfRltC90LAnIDogJ9Cz0LDQtNC30ZbQvdGDJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYmUnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0YHRgtGD0LTQt9C10L3Rj1/Qu9GO0YLQsNCz0LBf0YHQsNC60LDQstGW0LrQsF/QutGA0LDRgdCw0LLRltC60LBf0YLRgNCw0Z7QvdGPX9GH0Y3RgNCy0LXQvdGPX9C70ZbQv9C10L3Rj1/QttC90ZbRntC90Y9f0LLQtdGA0LDRgdC90Y9f0LrQsNGB0YLRgNGL0YfQvdGW0LrQsF/Qu9GW0YHRgtCw0L/QsNC00LBf0YHQvdC10LbQvdGPJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0YHRgtGD0LTQt9C10L3RjF/Qu9GO0YLRi1/RgdCw0LrQsNCy0ZbQul/QutGA0LDRgdCw0LLRltC6X9GC0YDQsNCy0LXQvdGMX9GH0Y3RgNCy0LXQvdGMX9C70ZbQv9C10L3RjF/QttC90ZbQstC10L3RjF/QstC10YDQsNGB0LXQvdGMX9C60LDRgdGC0YDRi9GH0L3RltC6X9C70ZbRgdGC0LDQv9Cw0LRf0YHQvdC10LbQsNC90YwnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRgdGC0YPQtF/Qu9GO0YJf0YHQsNC6X9C60YDQsNGBX9GC0YDQsNCyX9GH0Y3RgNCyX9C70ZbQv1/QttC90ZbQsl/QstC10YBf0LrQsNGB0YJf0LvRltGB0YJf0YHQvdC10LYnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfQvdGP0LTQt9C10LvRjl/Qv9Cw0L3Rj9C00LfQtdC70LDQul/QsNGe0YLQvtGA0LDQul/RgdC10YDQsNC00YNf0YfQsNGG0LLQtdGAX9C/0Y/RgtC90ZbRhtGDX9GB0YPQsdC+0YLRgycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9C90Y/QtNC30LXQu9GPX9C/0LDQvdGP0LTQt9C10LvQsNC6X9Cw0Z7RgtC+0YDQsNC6X9GB0LXRgNCw0LTQsF/Rh9Cw0YbQstC10YBf0L/Rj9GC0L3RltGG0LBf0YHRg9Cx0L7RgtCwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL1xcWyA/W9Cj0YPRnl0gPyg/OtC80ZbQvdGD0LvRg9GOfNC90LDRgdGC0YPQv9C90YPRjik/ID9cXF0gP2RkZGQvLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0L3QtF/Qv9C9X9Cw0YJf0YHRgF/Rh9GGX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC0X9C/0L1f0LDRgl/RgdGAX9GH0YZf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINCzLicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDQsy4sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSDQsy4sIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0KHRkdC90L3RjyDRnl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQl9Cw0Z7RgtGA0LAg0Z5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0KPRh9C+0YDQsCDRnl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1vQo10gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQoyDQvNGW0L3Rg9C70YPRjl0gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CjINC80ZbQvdGD0LvRi10gZGRkZCBb0Z5dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQv9GA0LDQtyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0YLQsNC80YMnLFxuICAgICAgICAgICAgczogJ9C90LXQutCw0LvRjNC60ZYg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICfQtNC30LXQvdGMJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ9C80LXRgdGP0YYnLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5OiAn0LPQvtC0JyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0L3QvtGH0Yt80YDQsNC90ZbRhtGLfNC00L3Rj3zQstC10YfQsNGA0LAvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijQtNC90Y980LLQtdGH0LDRgNCwKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfRiyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDQsNC90ZbRhtGLJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQtNC90Y8nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cy0LXRh9Cw0YDQsCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0ZZ80Yt80LPQsCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChudW1iZXIgJSAxMCA9PT0gMiB8fCBudW1iZXIgJSAxMCA9PT0gMykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCAhPT0gMTIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciAlIDEwMCAhPT0gMTNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbnVtYmVyICsgJy3RlidcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbnVtYmVyICsgJy3Riyc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0LAnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBiZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBCdWxnYXJpYW4gW2JnXVxuLy8hIGF1dGhvciA6IEtyYXNlbiBCb3Jpc292IDogaHR0cHM6Ly9naXRodWIuY29tL2tyYXpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBiZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JnJywge1xuICAgICAgICBtb250aHM6ICfRj9C90YPQsNGA0Lhf0YTQtdCy0YDRg9Cw0YDQuF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDQuV/RjtC90Lhf0Y7Qu9C4X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQstGA0Lhf0L7QutGC0L7QvNCy0YDQuF/QvdC+0LXQvNCy0YDQuF/QtNC10LrQtdC80LLRgNC4Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GP0L3Rg1/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Llf0Y7QvdC4X9GO0LvQuF/QsNCy0LNf0YHQtdC/X9C+0LrRgl/QvdC+0LVf0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10LvRj1/Qv9C+0L3QtdC00LXQu9C90LjQul/QstGC0L7RgNC90LjQul/RgdGA0Y/QtNCwX9GH0LXRgtCy0YrRgNGC0YrQul/Qv9C10YLRitC6X9GB0YrQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LXQtF/Qv9C+0L1f0LLRgtC+X9GB0YDRj1/Rh9C10YJf0L/QtdGCX9GB0YrQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQvdC0X9C/0L1f0LLRgl/RgdGAX9GH0YJf0L/Rgl/RgdCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0QuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQlNC90LXRgSDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQo9GC0YDQtSDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQktGH0LXRgNCwINCyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JzQuNC90LDQu9Cw0YLQsF0gZGRkZCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JzQuNC90LDQu9C40Y9dIGRkZGQgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0YHQu9C10LQgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9C/0YDQtdC00LggJXMnLFxuICAgICAgICAgICAgczogJ9C90Y/QutC+0LvQutC+INGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgbTogJ9C80LjQvdGD0YLQsCcsXG4gICAgICAgICAgICBtbTogJyVkINC80LjQvdGD0YLQuCcsXG4gICAgICAgICAgICBoOiAn0YfQsNGBJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YfQsNGB0LAnLFxuICAgICAgICAgICAgZDogJ9C00LXQvScsXG4gICAgICAgICAgICBkZDogJyVkINC00LXQvdCwJyxcbiAgICAgICAgICAgIE06ICfQvNC10YHQtdGGJyxcbiAgICAgICAgICAgIE1NOiAnJWQg0LzQtdGB0LXRhtCwJyxcbiAgICAgICAgICAgIHk6ICfQs9C+0LTQuNC90LAnLFxuICAgICAgICAgICAgeXk6ICclZCDQs9C+0LTQuNC90LgnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC10LJ80LXQvXzRgtC4fNCy0Lh80YDQuHzQvNC4KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBsYXN0RGlnaXQgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBsYXN0MkRpZ2l0cyA9IG51bWJlciAlIDEwMDtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdCyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QtdC9JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdDJEaWdpdHMgPiAxMCAmJiBsYXN0MkRpZ2l0cyA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0YLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCy0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgNC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSA3IHx8IGxhc3REaWdpdCA9PT0gOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC80LgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJnO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJhbWJhcmEgW2JtXVxuLy8hIGF1dGhvciA6IEVzdGVsbGUgQ29tbWVudCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9lc3RlbGxlY29tbWVudFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGJtID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm0nLCB7XG4gICAgICAgIG1vbnRoczogJ1phbnd1eWVrYWxvX0Zld3VydXlla2Fsb19NYXJpc2lrYWxvX0F3aXJpbGlrYWxvX03Jm2thbG9fWnV3yZtua2Fsb19adWx1eWVrYWxvX1V0aWthbG9fU8mbdGFuYnVydWthbG9fyZRrdXTJlGJ1cnVrYWxvX05vd2FuYnVydWthbG9fRGVzYW5idXJ1a2Fsbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdaYW5fRmV3X01hcl9Bd2lfTcmbX1p1d19adWxfVXRpX1PJm3RfyZRrdV9Ob3dfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0thcmlfTnTJm27Jm25fVGFyYXRhX0FyYWJhX0FsYW1pc2FfSnVtYV9TaWJpcmknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdLYXJfTnTJm19UYXJfQXJhX0FsYV9KdW1fU2liJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0thX050X1RhX0FyX0FsX0p1X1NpJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2zJm3LJm10gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsyZtyyZtdIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQmkgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1NpbmkgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2RvbiBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS3VudSBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbdMmbbcmbbmVuIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBryZRuyZQnLFxuICAgICAgICAgICAgcGFzdDogJ2EgYsmbICVzIGLJlCcsXG4gICAgICAgICAgICBzOiAnc2FuZ2EgZGFtYSBkYW1hJyxcbiAgICAgICAgICAgIHNzOiAnc2Vrb25kaSAlZCcsXG4gICAgICAgICAgICBtOiAnbWluaXRpIGtlbGVuJyxcbiAgICAgICAgICAgIG1tOiAnbWluaXRpICVkJyxcbiAgICAgICAgICAgIGg6ICdsyZtyyZsga2VsZW4nLFxuICAgICAgICAgICAgaGg6ICdsyZtyyZsgJWQnLFxuICAgICAgICAgICAgZDogJ3RpbGUga2VsZW4nLFxuICAgICAgICAgICAgZGQ6ICd0aWxlICVkJyxcbiAgICAgICAgICAgIE06ICdrYWxvIGtlbGVuJyxcbiAgICAgICAgICAgIE1NOiAna2FsbyAlZCcsXG4gICAgICAgICAgICB5OiAnc2FuIGtlbGVuJyxcbiAgICAgICAgICAgIHl5OiAnc2FuICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJtO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJlbmdhbGkgW2JuXVxuLy8hIGF1dGhvciA6IEthdXNoaWsgR2FuZGhpIDogaHR0cHM6Ly9naXRodWIuY29tL2thdXNoaWtnYW5kaGlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgp6cnLFxuICAgICAgICAgICAgJzInOiAn4KeoJyxcbiAgICAgICAgICAgICczJzogJ+CnqScsXG4gICAgICAgICAgICAnNCc6ICfgp6onLFxuICAgICAgICAgICAgJzUnOiAn4KerJyxcbiAgICAgICAgICAgICc2JzogJ+CnrCcsXG4gICAgICAgICAgICAnNyc6ICfgp60nLFxuICAgICAgICAgICAgJzgnOiAn4KeuJyxcbiAgICAgICAgICAgICc5JzogJ+CnrycsXG4gICAgICAgICAgICAnMCc6ICfgp6YnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KenJzogJzEnLFxuICAgICAgICAgICAgJ+CnqCc6ICcyJyxcbiAgICAgICAgICAgICfgp6knOiAnMycsXG4gICAgICAgICAgICAn4KeqJzogJzQnLFxuICAgICAgICAgICAgJ+Cnqyc6ICc1JyxcbiAgICAgICAgICAgICfgp6wnOiAnNicsXG4gICAgICAgICAgICAn4KetJzogJzcnLFxuICAgICAgICAgICAgJ+Cnric6ICc4JyxcbiAgICAgICAgICAgICfgp68nOiAnOScsXG4gICAgICAgICAgICAn4KemJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGJuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm4nLCB7XG4gICAgICAgIG1vbnRoczogJ+CmnOCmvuCmqOCngeCnn+CmvuCmsOCmv1/gpqvgp4fgpqzgp43gprDgp4Hgp5/gpr7gprDgpr9f4Kau4Ka+4Kaw4KeN4KaaX+Cmj+CmquCnjeCmsOCmv+Cmsl/gpq7gp4df4Kac4KeB4KaoX+CmnOCngeCmsuCmvuCmh1/gpobgppfgprjgp43gpp9f4Ka44KeH4Kaq4KeN4Kaf4KeH4Kau4KeN4Kas4KawX+CmheCmleCnjeCmn+Cni+CmrOCmsF/gpqjgpq3gp4fgpq7gp43gpqzgprBf4Kah4Ka/4Ka44KeH4Kau4KeN4Kas4KawJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CmnOCmvuCmqOCngV/gpqvgp4fgpqzgp43gprDgp4Ff4Kau4Ka+4Kaw4KeN4KaaX+Cmj+CmquCnjeCmsOCmv+Cmsl/gpq7gp4df4Kac4KeB4KaoX+CmnOCngeCmsuCmvuCmh1/gpobgppfgprjgp43gpp9f4Ka44KeH4Kaq4KeN4KafX+CmheCmleCnjeCmn+Cni1/gpqjgpq3gp4df4Kah4Ka/4Ka44KeHJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+CmsOCmrOCmv+CmrOCmvuCmsF/gprjgp4vgpq7gpqzgpr7gprBf4Kau4KaZ4KeN4KaX4Kay4Kas4Ka+4KawX+CmrOCngeCmp+CmrOCmvuCmsF/gpqzgp4Pgprngprjgp43gpqrgpqTgpr/gpqzgpr7gprBf4Ka24KeB4KaV4KeN4Kaw4Kas4Ka+4KawX+CmtuCmqOCmv+CmrOCmvuCmsCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CmsOCmrOCmv1/gprjgp4vgpq5f4Kau4KaZ4KeN4KaX4KayX+CmrOCngeCmp1/gpqzgp4Pgprngprjgp43gpqrgpqTgpr9f4Ka24KeB4KaV4KeN4KawX+CmtuCmqOCmvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgprDgpqzgpr9f4Ka44KeL4KauX+CmruCmmeCnjeCml+Cmsl/gpqzgp4Hgpqdf4Kas4KeD4Ka5X+CmtuCngeCmleCnjeCmsF/gprbgpqjgpr8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgprjgpq7gp58nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCmuOCmruCnnycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCmuOCmruCnnycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CmhuCmnF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpobgppfgpr7gpq7gp4DgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgppfgpqTgppXgpr7gprJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Cml+CmpF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgpqrgprDgp4cnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCmhuCml+CnhycsXG4gICAgICAgICAgICBzOiAn4KaV4Kef4KeH4KaVIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBzczogJyVkIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBtOiAn4KaP4KaVIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBtbTogJyVkIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBoOiAn4KaP4KaVIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBoaDogJyVkIOCmmOCmqOCnjeCmn+CmvicsXG4gICAgICAgICAgICBkOiAn4KaP4KaVIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBNOiAn4KaP4KaVIOCmruCmvuCmuCcsXG4gICAgICAgICAgICBNTTogJyVkIOCmruCmvuCmuCcsXG4gICAgICAgICAgICB5OiAn4KaP4KaVIOCmrOCmm+CmsCcsXG4gICAgICAgICAgICB5eTogJyVkIOCmrOCmm+CmsCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgp6fgp6jgp6ngp6rgp6vgp6zgp63gp67gp6/gp6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gprDgpr7gpqR84Ka44KaV4Ka+4KayfOCmpuCngeCmquCngeCmsHzgpqzgpr/gppXgpr7gprJ84Kaw4Ka+4KakLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+CmsOCmvuCmpCcgJiYgaG91ciA+PSA0KSB8fFxuICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+CmpuCngeCmquCngeCmsCcgJiYgaG91ciA8IDUpIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgpqzgpr/gppXgpr7gprInXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kaw4Ka+4KakJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprjgppXgpr7gprInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmpuCngeCmquCngeCmsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kas4Ka/4KaV4Ka+4KayJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprDgpr7gpqQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGliZXRhbiBbYm9dXG4vLyEgYXV0aG9yIDogVGh1cHRlbiBOLiBDaGFrcmlzaGFyIDogaHR0cHM6Ly9naXRodWIuY29tL3ZhanJhZG9nXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4LyhJyxcbiAgICAgICAgICAgICcyJzogJ+C8oicsXG4gICAgICAgICAgICAnMyc6ICfgvKMnLFxuICAgICAgICAgICAgJzQnOiAn4LykJyxcbiAgICAgICAgICAgICc1JzogJ+C8pScsXG4gICAgICAgICAgICAnNic6ICfgvKYnLFxuICAgICAgICAgICAgJzcnOiAn4LynJyxcbiAgICAgICAgICAgICc4JzogJ+C8qCcsXG4gICAgICAgICAgICAnOSc6ICfgvKknLFxuICAgICAgICAgICAgJzAnOiAn4LygJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+C8oSc6ICcxJyxcbiAgICAgICAgICAgICfgvKInOiAnMicsXG4gICAgICAgICAgICAn4LyjJzogJzMnLFxuICAgICAgICAgICAgJ+C8pCc6ICc0JyxcbiAgICAgICAgICAgICfgvKUnOiAnNScsXG4gICAgICAgICAgICAn4LymJzogJzYnLFxuICAgICAgICAgICAgJ+C8pyc6ICc3JyxcbiAgICAgICAgICAgICfgvKgnOiAnOCcsXG4gICAgICAgICAgICAn4LypJzogJzknLFxuICAgICAgICAgICAgJ+C8oCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBibyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JvJywge1xuICAgICAgICBtb250aHM6ICfgvZ/gvrPgvIvgvZbgvIvgvZHgvYTgvIvgvZTgvbxf4L2f4L6z4LyL4L2W4LyL4L2C4L2J4L2y4L2m4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9guC9puC9tOC9mOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvZ7gvbLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2j4L6U4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9keC+suC9tOC9guC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvZHgvbTgvZPgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2i4L6S4L6x4L2R4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9keC9guC9tOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2C4L2F4L2y4L2C4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9guC9ieC9suC9puC8i+C9lCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgvZ/gvrPgvIsxX+C9n+C+s+C8izJf4L2f4L6z4LyLM1/gvZ/gvrPgvIs0X+C9n+C+s+C8izVf4L2f4L6z4LyLNl/gvZ/gvrPgvIs3X+C9n+C+s+C8izhf4L2f4L6z4LyLOV/gvZ/gvrPgvIsxMF/gvZ/gvrPgvIsxMV/gvZ/gvrPgvIsxMicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogL14o4L2f4L6z4LyLXFxkezEsMn0pLyxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgvYLgvZ/gvaDgvIvgvYngvbLgvIvgvZjgvItf4L2C4L2f4L2g4LyL4L2f4L6z4LyL4L2W4LyLX+C9guC9n+C9oOC8i+C9mOC9suC9guC8i+C9keC9mOC9ouC8i1/gvYLgvZ/gvaDgvIvgvaPgvrfgvYLgvIvgvZTgvItf4L2C4L2f4L2g4LyL4L2V4L204L2i4LyL4L2W4L20X+C9guC9n+C9oOC8i+C9lOC8i+C9puC9hOC9puC8i1/gvYLgvZ/gvaDgvIvgvabgvqTgvbrgvZPgvIvgvZTgvIsnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgvYngvbLgvIvgvZjgvItf4L2f4L6z4LyL4L2W4LyLX+C9mOC9suC9guC8i+C9keC9mOC9ouC8i1/gvaPgvrfgvYLgvIvgvZTgvItf4L2V4L204L2i4LyL4L2W4L20X+C9lOC8i+C9puC9hOC9puC8i1/gvabgvqTgvbrgvZPgvIvgvZTgvIsnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4L2J4L2yX+C9n+C+s1/gvZjgvbLgvYJf4L2j4L634L2CX+C9leC9tOC9ol/gvabgvYTgvaZf4L2m4L6k4L264L2TJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+C9keC9suC8i+C9ouC9suC9hF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgvabgvYTgvIvgvYngvbLgvZNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+C9luC9keC9tOC9k+C8i+C9leC+suC9guC8i+C9ouC+l+C9uuC9puC8i+C9mF0sIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4L2B4LyL4L2m4L2EXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgvZbgvZHgvbTgvZPgvIvgvZXgvrLgvYLgvIvgvZjgvZDgvaDgvIvgvZhdIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4L2j4LyLJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgvabgvpTgvZPgvIvgvaMnLFxuICAgICAgICAgICAgczogJ+C9o+C9mOC8i+C9puC9hCcsXG4gICAgICAgICAgICBzczogJyVkIOC9puC+kOC9ouC8i+C9huC8jScsXG4gICAgICAgICAgICBtOiAn4L2m4L6Q4L2i4LyL4L2Y4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4L2m4L6Q4L2i4LyL4L2YJyxcbiAgICAgICAgICAgIGg6ICfgvYbgvbTgvIvgvZrgvbzgvZHgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgaGg6ICclZCDgvYbgvbTgvIvgvZrgvbzgvZEnLFxuICAgICAgICAgICAgZDogJ+C9ieC9suC9k+C8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBkZDogJyVkIOC9ieC9suC9k+C8iycsXG4gICAgICAgICAgICBNOiAn4L2f4L6z4LyL4L2W4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4L2f4L6z4LyL4L2WJyxcbiAgICAgICAgICAgIHk6ICfgvaPgvbzgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgeXk6ICclZCDgvaPgvbwnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Lyh4Lyi4Lyj4Lyk4Lyl4Lym4Lyn4Lyo4Lyp4LygXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4L2Y4L2a4L2T4LyL4L2Y4L28fOC9nuC9vOC9guC9puC8i+C9gOC9pnzgvYngvbLgvZPgvIvgvYLgvbTgvYR84L2R4L2C4L284L2E4LyL4L2R4L2CfOC9mOC9muC9k+C8i+C9mOC9vC8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgvZjgvZrgvZPgvIvgvZjgvbwnICYmIGhvdXIgPj0gNCkgfHxcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgvYngvbLgvZPgvIvgvYLgvbTgvYQnICYmIGhvdXIgPCA1KSB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4L2R4L2C4L284L2E4LyL4L2R4L2CJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9mOC9muC9k+C8i+C9mOC9vCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2e4L284L2C4L2m4LyL4L2A4L2mJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvYngvbLgvZPgvIvgvYLgvbTgvYQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9keC9guC9vOC9hOC8i+C9keC9gic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2Y4L2a4L2T4LyL4L2Y4L28JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJyZXRvbiBbYnJdXG4vLyEgYXV0aG9yIDogSmVhbi1CYXB0aXN0ZSBMZSBEdWlnb3UgOiBodHRwczovL2dpdGh1Yi5jb20vamJsZWR1aWdvdVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aE11dGF0aW9uKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtbTogJ211bnV0ZW5uJyxcbiAgICAgICAgICAgIE1NOiAnbWl6JyxcbiAgICAgICAgICAgIGRkOiAnZGV2ZXpoJyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIG11dGF0aW9uKGZvcm1hdFtrZXldLCBudW1iZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGVjaWFsTXV0YXRpb25Gb3JZZWFycyhudW1iZXIpIHtcbiAgICAgICAgc3dpdGNoIChsYXN0TnVtYmVyKG51bWJlcikpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyBibG9heic7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnIHZsb2F6JztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsYXN0TnVtYmVyKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyID4gOSkge1xuICAgICAgICAgICAgcmV0dXJuIGxhc3ROdW1iZXIobnVtYmVyICUgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG11dGF0aW9uKHRleHQsIG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4gc29mdE11dGF0aW9uKHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzb2Z0TXV0YXRpb24odGV4dCkge1xuICAgICAgICB2YXIgbXV0YXRpb25UYWJsZSA9IHtcbiAgICAgICAgICAgIG06ICd2JyxcbiAgICAgICAgICAgIGI6ICd2JyxcbiAgICAgICAgICAgIGQ6ICd6JyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKG11dGF0aW9uVGFibGVbdGV4dC5jaGFyQXQoMCldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtdXRhdGlvblRhYmxlW3RleHQuY2hhckF0KDApXSArIHRleHQuc3Vic3RyaW5nKDEpO1xuICAgIH1cblxuICAgIHZhciBtb250aHNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eZ2VuL2ksXG4gICAgICAgICAgICAvXmNbyrxcXCddaHdlL2ksXG4gICAgICAgICAgICAvXm1ldS9pLFxuICAgICAgICAgICAgL15lYnIvaSxcbiAgICAgICAgICAgIC9ebWFlL2ksXG4gICAgICAgICAgICAvXihtZXp8ZXZlKS9pLFxuICAgICAgICAgICAgL15nb3UvaSxcbiAgICAgICAgICAgIC9eZW9zL2ksXG4gICAgICAgICAgICAvXmd3ZS9pLFxuICAgICAgICAgICAgL15oZXIvaSxcbiAgICAgICAgICAgIC9eZHUvaSxcbiAgICAgICAgICAgIC9ea2VyL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oZ2VudmVyfGNbyrxcXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenV8Z2VufGNbyrxcXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8a2VyKS9pLFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleCA9IC9eKGdlbnZlcnxjW8q8XFwnXWh3ZXZyZXJ8bWV1cnpofGVicmVsfG1hZXxtZXpoZXZlbnxnb3VlcmV8ZW9zdHxnd2VuZ29sb3xoZXJlfGR1fGtlcnp1KS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gL14oZ2VufGNbyrxcXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8a2VyKS9pLFxuICAgICAgICBmdWxsV2Vla2RheXNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9ec3VsL2ksXG4gICAgICAgICAgICAvXmx1bi9pLFxuICAgICAgICAgICAgL15tZXVyemgvaSxcbiAgICAgICAgICAgIC9ebWVyY1vKvFxcJ11oZXIvaSxcbiAgICAgICAgICAgIC9eeWFvdS9pLFxuICAgICAgICAgICAgL15nd2VuZXIvaSxcbiAgICAgICAgICAgIC9ec2Fkb3JuL2ksXG4gICAgICAgIF0sXG4gICAgICAgIHNob3J0V2Vla2RheXNQYXJzZSA9IFtcbiAgICAgICAgICAgIC9eU3VsL2ksXG4gICAgICAgICAgICAvXkx1bi9pLFxuICAgICAgICAgICAgL15NZXUvaSxcbiAgICAgICAgICAgIC9eTWVyL2ksXG4gICAgICAgICAgICAvXllhby9pLFxuICAgICAgICAgICAgL15Hd2UvaSxcbiAgICAgICAgICAgIC9eU2FkL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1pbldlZWtkYXlzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXlN1L2ksXG4gICAgICAgICAgICAvXkx1L2ksXG4gICAgICAgICAgICAvXk1lKFtecl18JCkvaSxcbiAgICAgICAgICAgIC9eTWVyL2ksXG4gICAgICAgICAgICAvXllhL2ksXG4gICAgICAgICAgICAvXkd3L2ksXG4gICAgICAgICAgICAvXlNhL2ksXG4gICAgICAgIF07XG5cbiAgICB2YXIgYnIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdicicsIHtcbiAgICAgICAgbW9udGhzOiAnR2VudmVyX0PKvGh3ZXZyZXJfTWV1cnpoX0VicmVsX01hZV9NZXpoZXZlbl9Hb3VlcmVfRW9zdF9Hd2VuZ29sb19IZXJlX0R1X0tlcnp1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0dlbl9Dyrxod2VfTWV1X0Vicl9NYWVfRXZlX0dvdV9Fb3NfR3dlX0hlcl9EdV9LZXInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VsX0x1bl9NZXVyemhfTWVyY8q8aGVyX1lhb3VfR3dlbmVyX1NhZG9ybicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bF9MdW5fTWV1X01lcl9ZYW9fR3dlX1NhZCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9MdV9NZV9NZXJfWWFfR3dfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2U6IG1pbldlZWtkYXlzUGFyc2UsXG4gICAgICAgIGZ1bGxXZWVrZGF5c1BhcnNlOiBmdWxsV2Vla2RheXNQYXJzZSxcbiAgICAgICAgc2hvcnRXZWVrZGF5c1BhcnNlOiBzaG9ydFdlZWtkYXlzUGFyc2UsXG4gICAgICAgIG1pbldlZWtkYXlzUGFyc2U6IG1pbldlZWtkYXlzUGFyc2UsXG5cbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IG1vbnRoc1N0cmljdFJlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiBtb250aHNTaG9ydFN0cmljdFJlZ2V4LFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbYSB2aXpdIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGl6aXYgZGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbV2FyY8q8aG9hemggZGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZGFdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbRGVjyrxoIGRhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3Bhc2V0IGRhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2EtYmVubiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgyrx6bycsXG4gICAgICAgICAgICBzOiAndW4gbmViZXVkIHNlZ29uZGVubm/DuScsXG4gICAgICAgICAgICBzczogJyVkIGVpbGVubicsXG4gICAgICAgICAgICBtOiAndXIgdnVudXRlbm4nLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIGg6ICd1biBldXInLFxuICAgICAgICAgICAgaGg6ICclZCBldXInLFxuICAgICAgICAgICAgZDogJ3VuIGRldmV6aCcsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aE11dGF0aW9uLFxuICAgICAgICAgICAgTTogJ3VyIG1peicsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aE11dGF0aW9uLFxuICAgICAgICAgICAgeTogJ3VyIGJsb2F6JyxcbiAgICAgICAgICAgIHl5OiBzcGVjaWFsTXV0YXRpb25Gb3JZZWFycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGHDsXx2ZXQpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IG51bWJlciA9PT0gMSA/ICdhw7EnIDogJ3ZldCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9hLm0ufGcubS4vLCAvLyBnb3VkZSBtZXJlbm4gfCBhLXJhb2sgbWVyZW5uXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuID09PSAnZy5tLic7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91ciA8IDEyID8gJ2EubS4nIDogJ2cubS4nO1xuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEJvc25pYW4gW2JzXVxuLy8hIGF1dGhvciA6IE5lZGltIENob2xpY2ggOiBodHRwczovL2dpdGh1Yi5jb20vZnJvbnR5YXJkXG4vLyEgYmFzZWQgb24gKGhyKSB0cmFuc2xhdGlvbiBieSBCb2phbiBNYXJrb3ZpxIdcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZG5hIG1pbnV0YScgOiAnamVkbmUgbWludXRlJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRhbiBzYXQnIDogJ2plZG5vZyBzYXRhJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0JztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2RhbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWMnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBicyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JzJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX8SNZXR2cnRha19wZXRha19zdWJvdGEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICduZWQuX3Bvbi5fdXRvLl9zcmkuX8SNZXQuX3BldC5fc3ViLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2p1xI1lciB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbHVdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsaV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzOiAncGFyIHNla3VuZGknLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ2RhbicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ21qZXNlYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ2dvZGludScsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENhdGFsYW4gW2NhXVxuLy8hIGF1dGhvciA6IEp1YW4gRy4gSHVydGFkbyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qdWFuZ2h1cnRhZG9cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBjYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2NhJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdnZW5lcl9mZWJyZXJfbWFyw6dfYWJyaWxfbWFpZ19qdW55X2p1bGlvbF9hZ29zdF9zZXRlbWJyZV9vY3R1YnJlX25vdmVtYnJlX2Rlc2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6IFwiZGUgZ2VuZXJfZGUgZmVicmVyX2RlIG1hcsOnX2QnYWJyaWxfZGUgbWFpZ19kZSBqdW55X2RlIGp1bGlvbF9kJ2Fnb3N0X2RlIHNldGVtYnJlX2Qnb2N0dWJyZV9kZSBub3ZlbWJyZV9kZSBkZXNlbWJyZVwiLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvRFtvRF0/KFxccykrTU1NTS8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnZ2VuLl9mZWJyLl9tYXLDp19hYnIuX21haWdfanVueV9qdWwuX2FnLl9zZXQuX29jdC5fbm92Ll9kZXMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpdW1lbmdlX2RpbGx1bnNfZGltYXJ0c19kaW1lY3Jlc19kaWpvdXNfZGl2ZW5kcmVzX2Rpc3NhYnRlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGcuX2RsLl9kdC5fZGMuX2RqLl9kdi5fZHMuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RnX2RsX2R0X2RjX2RqX2R2X2RzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgbGw6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBbZGVdIFlZWVkgW2EgbGVzXSBIOm1tJyxcbiAgICAgICAgICAgIGxsbDogJ0QgTU1NIFlZWVksIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCBEIE1NTSBZWVlZLCBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1thdnVpIGEgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tkZW3DoCBhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2FoaXIgYSAnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAnW2VsXSBkZGRkIFtwYXNzYXQgYSAnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdsZXMnIDogJ2xhJykgK1xuICAgICAgICAgICAgICAgICAgICAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBcImQnYXF1w60gJXNcIixcbiAgICAgICAgICAgIHBhc3Q6ICdmYSAlcycsXG4gICAgICAgICAgICBzOiAndW5zIHNlZ29ucycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ29ucycsXG4gICAgICAgICAgICBtOiAndW4gbWludXQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHMnLFxuICAgICAgICAgICAgaDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yZXMnLFxuICAgICAgICAgICAgZDogJ3VuIGRpYScsXG4gICAgICAgICAgICBkZDogJyVkIGRpZXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc29zJyxcbiAgICAgICAgICAgIHk6ICd1biBhbnknLFxuICAgICAgICAgICAgeXk6ICclZCBhbnlzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHJ8bnx0fMOofGEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICBudW1iZXIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgPyAnbidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgPyAncidcbiAgICAgICAgICAgICAgICAgICAgOiBudW1iZXIgPT09IDRcbiAgICAgICAgICAgICAgICAgICAgPyAndCdcbiAgICAgICAgICAgICAgICAgICAgOiAnw6gnO1xuICAgICAgICAgICAgaWYgKHBlcmlvZCA9PT0gJ3cnIHx8IHBlcmlvZCA9PT0gJ1cnKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2EnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEN6ZWNoIFtjc11cbi8vISBhdXRob3IgOiBwZXRyYmVsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRyYmVsYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9ICdsZWRlbl/Dum5vcl9ixZllemVuX2R1YmVuX2t2xJt0ZW5fxI1lcnZlbl/EjWVydmVuZWNfc3JwZW5fesOhxZnDrV/FmcOtamVuX2xpc3RvcGFkX3Byb3NpbmVjJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdsZWRfw7pub19ixZllX2R1Yl9rdsSbX8SNdm5fxI12Y19zcnBfesOhxZlfxZnDrWpfbGlzX3Bybycuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmxlZC9pLFxuICAgICAgICAgICAgL17Dum5vL2ksXG4gICAgICAgICAgICAvXmLFmWUvaSxcbiAgICAgICAgICAgIC9eZHViL2ksXG4gICAgICAgICAgICAvXmt2xJsvaSxcbiAgICAgICAgICAgIC9eKMSNdm58xI1lcnZlbiR8xI1lcnZuYSkvaSxcbiAgICAgICAgICAgIC9eKMSNdmN8xI1lcnZlbmVjfMSNZXJ2ZW5jZSkvaSxcbiAgICAgICAgICAgIC9ec3JwL2ksXG4gICAgICAgICAgICAvXnrDocWZL2ksXG4gICAgICAgICAgICAvXsWZw61qL2ksXG4gICAgICAgICAgICAvXmxpcy9pLFxuICAgICAgICAgICAgL15wcm8vaSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gTk9URTogJ8SNZXJ2ZW4nIGlzIHN1YnN0cmluZyBvZiAnxI1lcnZlbmVjJzsgdGhlcmVmb3JlICfEjWVydmVuZWMnIG11c3QgcHJlY2VkZSAnxI1lcnZlbicgaW4gdGhlIHJlZ2V4IHRvIGJlIGZ1bGx5IG1hdGNoZWQuXG4gICAgICAgIC8vIE90aGVyd2lzZSBwYXJzZXIgbWF0Y2hlcyAnMS4gxI1lcnZlbmVjJyBhcyAnMS4gxI1lcnZlbicgKyAnZWMnLlxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGxlZGVufMO6bm9yfGLFmWV6ZW58ZHViZW58a3bEm3RlbnzEjWVydmVuZWN8xI1lcnZlbmNlfMSNZXJ2ZW58xI1lcnZuYXxzcnBlbnx6w6HFmcOtfMWZw61qZW58bGlzdG9wYWR8cHJvc2luZWN8bGVkfMO6bm98YsWZZXxkdWJ8a3bEm3zEjXZufMSNdmN8c3JwfHrDocWZfMWZw61qfGxpc3xwcm8pL2k7XG5cbiAgICBmdW5jdGlvbiBwbHVyYWwobikge1xuICAgICAgICByZXR1cm4gbiA+IDEgJiYgbiA8IDUgJiYgfn4obiAvIDEwKSAhPT0gMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6IC8vIGEgZmV3IHNlY29uZHMgLyBpbiBhIGZldyBzZWNvbmRzIC8gYSBmZXcgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdww6FyIHNla3VuZCcgOiAncMOhciBzZWt1bmRhbWknO1xuICAgICAgICAgICAgY2FzZSAnc3MnOiAvLyA5IHNlY29uZHMgLyBpbiA5IHNlY29uZHMgLyA5IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdzZWt1bmR5JyA6ICdzZWt1bmQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Nla3VuZGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbSc6IC8vIGEgbWludXRlIC8gaW4gYSBtaW51dGUgLyBhIG1pbnV0ZSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW51dGEnIDogaXNGdXR1cmUgPyAnbWludXR1JyA6ICdtaW51dG91JztcbiAgICAgICAgICAgIGNhc2UgJ21tJzogLy8gOSBtaW51dGVzIC8gaW4gOSBtaW51dGVzIC8gOSBtaW51dGVzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWludXR5JyA6ICdtaW51dCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbWludXRhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2gnOiAvLyBhbiBob3VyIC8gaW4gYW4gaG91ciAvIGFuIGhvdXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnaG9kaW5hJyA6IGlzRnV0dXJlID8gJ2hvZGludScgOiAnaG9kaW5vdSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6IC8vIDkgaG91cnMgLyBpbiA5IGhvdXJzIC8gOSBob3VycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2hvZGlueScgOiAnaG9kaW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2hvZGluYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdkJzogLy8gYSBkYXkgLyBpbiBhIGRheSAvIGEgZGF5IGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RlbicgOiAnZG5lbSc7XG4gICAgICAgICAgICBjYXNlICdkZCc6IC8vIDkgZGF5cyAvIGluIDkgZGF5cyAvIDkgZGF5cyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2RueScgOiAnZG7DrScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnZG55JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdNJzogLy8gYSBtb250aCAvIGluIGEgbW9udGggLyBhIG1vbnRoIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ23Em3PDrWMnIDogJ23Em3PDrWNlbSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6IC8vIDkgbW9udGhzIC8gaW4gOSBtb250aHMgLyA5IG1vbnRocyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ23Em3PDrWNlJyA6ICdtxJtzw61jxa8nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23Em3PDrWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICd5JzogLy8gYSB5ZWFyIC8gaW4gYSB5ZWFyIC8gYSB5ZWFyIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3JvaycgOiAncm9rZW0nO1xuICAgICAgICAgICAgY2FzZSAneXknOiAvLyA5IHllYXJzIC8gaW4gOSB5ZWFycyAvIDkgeWVhcnMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdyb2t5JyA6ICdsZXQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2xldHknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2NzJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICAvLyBOT1RFOiAnxI1lcnZlbicgaXMgc3Vic3RyaW5nIG9mICfEjWVydmVuZWMnOyB0aGVyZWZvcmUgJ8SNZXJ2ZW5lYycgbXVzdCBwcmVjZWRlICfEjWVydmVuJyBpbiB0aGUgcmVnZXggdG8gYmUgZnVsbHkgbWF0Y2hlZC5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHBhcnNlciBtYXRjaGVzICcxLiDEjWVydmVuZWMnIGFzICcxLiDEjWVydmVuJyArICdlYycuXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihsZWRlbnxsZWRuYXzDum5vcmF8w7pub3J8YsWZZXplbnxixZllem5hfGR1YmVufGR1Ym5hfGt2xJt0ZW58a3bEm3RuYXzEjWVydmVuZWN8xI1lcnZlbmNlfMSNZXJ2ZW58xI1lcnZuYXxzcnBlbnxzcnBuYXx6w6HFmcOtfMWZw61qZW58xZnDrWpuYXxsaXN0b3BhZHV8bGlzdG9wYWR8cHJvc2luZWN8cHJvc2luY2UpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGxlZHzDum5vfGLFmWV8ZHVifGt2xJt8xI12bnzEjXZjfHNycHx6w6HFmXzFmcOtanxsaXN8cHJvKS9pLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZMSbbGVfcG9uZMSbbMOtX8O6dGVyw71fc3TFmWVkYV/EjXR2cnRla19ww6F0ZWtfc29ib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVfcG9fw7p0X3N0X8SNdF9ww6Ffc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fw7p0X3N0X8SNdF9ww6Ffc28nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBsOiAnRC4gTS4gWVlZWScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RuZXMgdl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1t6w610cmEgdl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBuZWTEm2xpIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZlIHN0xZllZHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2ZSDEjXR2cnRlayB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgcMOhdGVrIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzb2JvdHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3bEjWVyYSB2XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bG91IG5lZMSbbGkgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw6ldIGRkZGQgW3ZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWxvdSBzdMWZZWR1IHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO9XSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsb3Ugc29ib3R1IHZdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncMWZZWQgJXMnLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENodXZhc2ggW2N2XVxuLy8hIGF1dGhvciA6IEFuYXRvbHkgTWlyb25vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taXJvbnRvbGlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBjdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2N2Jywge1xuICAgICAgICBtb250aHM6ICfQutOR0YDQu9Cw0Ydf0L3QsNGA05HRgV/Qv9GD0Yhf0LDQutCwX9C80LDQuV/Sq9OX0YDRgtC80LVf0YPRgtORX9Kr0YPRgNC70LBf0LDQstOR0L1f0Y7Qv9CwX9GH07PQul/RgNCw0YjRgtCw0LInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0LrTkdGAX9C90LDRgF/Qv9GD0Yhf0LDQutCwX9C80LDQuV/Sq9OX0YBf0YPRgtORX9Kr0YPRgF/QsNCy0L1f0Y7Qv9CwX9GH07PQul/RgNCw0YgnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAn0LLRi9GA0YHQsNGA0L3QuNC60YPQvV/RgtGD0L3RgtC40LrRg9C9X9GL0YLQu9Cw0YDQuNC60YPQvV/RjtC90LrRg9C9X9C605fSq9C90LXRgNC90LjQutGD0L1f0Y3RgNC90LXQutGD0L1f0YjTkdC80LDRgtC60YPQvScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Cy0YvRgF/RgtGD0L1f0YvRgtC7X9GO0L1f0LrTl9KrX9GN0YDQvV/RiNOR0LwnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0LLRgF/RgtC9X9GL0YJf0Y7QvV/QutKrX9GN0YBf0YjQvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdZWVlZIFvSq9GD0LvRhdC4XSBNTU1NIFvRg9C505HRhdOX0L1dIERbLdC805fRiNOXXScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZIFvSq9GD0LvRhdC4XSBNTU1NIFvRg9C505HRhdOX0L1dIERbLdC805fRiNOXXSwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFlZWVkgW9Kr0YPQu9GF0LhdIE1NTU0gW9GD0LnTkdGF05fQvV0gRFst0LzTl9GI05ddLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Cf0LDRj9C9XSBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0KvRgNCw0L1dIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vTltC90LXRgF0gTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vSqtC40YLQtdGBXSBkZGRkIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb0JjRgNGC0L3Tl10gZGRkZCBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiBmdW5jdGlvbiAob3V0cHV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIGFmZml4ID0gL9GB0LXRhdC10YIkL2kuZXhlYyhvdXRwdXQpXG4gICAgICAgICAgICAgICAgICAgID8gJ9GA0LXQvSdcbiAgICAgICAgICAgICAgICAgICAgOiAv0qvRg9C7JC9pLmV4ZWMob3V0cHV0KVxuICAgICAgICAgICAgICAgICAgICA/ICfRgtCw0L0nXG4gICAgICAgICAgICAgICAgICAgIDogJ9GA0LDQvSc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dCArIGFmZml4O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDQutCw0Y/Qu9C70LAnLFxuICAgICAgICAgICAgczogJ9C/05fRgC3QuNC6INKr0LXQutC60YPQvdGCJyxcbiAgICAgICAgICAgIHNzOiAnJWQg0qvQtdC60LrRg9C90YInLFxuICAgICAgICAgICAgbTogJ9C/05fRgCDQvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoOiAn0L/Tl9GAINGB0LXRhdC10YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdC10YXQtdGCJyxcbiAgICAgICAgICAgIGQ6ICfQv9OX0YAg0LrRg9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrRg9C9JyxcbiAgICAgICAgICAgIE06ICfQv9OX0YAg0YPQudOR0YUnLFxuICAgICAgICAgICAgTU06ICclZCDRg9C505HRhScsXG4gICAgICAgICAgICB5OiAn0L/Tl9GAINKr0YPQuycsXG4gICAgICAgICAgICB5eTogJyVkINKr0YPQuycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS3QvNOX0YgvLFxuICAgICAgICBvcmRpbmFsOiAnJWQt0LzTl9GIJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGN2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFdlbHNoIFtjeV1cbi8vISBhdXRob3IgOiBSb2JlcnQgQWxsZW4gOiBodHRwczovL2dpdGh1Yi5jb20vcm9iZ2FsbGVuXG4vLyEgYXV0aG9yIDogaHR0cHM6Ly9naXRodWIuY29tL3J5YW5ncmVhdmVzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgY3kgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdjeScsIHtcbiAgICAgICAgbW9udGhzOiAnSW9uYXdyX0Nod2Vmcm9yX01hd3J0aF9FYnJpbGxfTWFpX01laGVmaW5fR29yZmZlbm5hZl9Bd3N0X01lZGlfSHlkcmVmX1RhY2h3ZWRkX1JoYWdmeXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSW9uX0Nod2VfTWF3X0Vicl9NYWlfTWVoX0dvcl9Bd3NfTWVkX0h5ZF9UYWNoX1JoYWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAnRHlkZCBTdWxfRHlkZCBMbHVuX0R5ZGQgTWF3cnRoX0R5ZGQgTWVyY2hlcl9EeWRkIElhdV9EeWRkIEd3ZW5lcl9EeWRkIFNhZHdybicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bF9MbHVuX01hd19NZXJfSWF1X0d3ZV9TYWQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTGxfTWFfTWVfSWFfR3dfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgLy8gdGltZSBmb3JtYXRzIGFyZSB0aGUgc2FtZSBhcyBlbi1nYlxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hlZGRpdyBhbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tZZm9yeSBhbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tEZG9lIGFtXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Rpd2V0aGFmIGFtXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ21ld24gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHluIMO0bCcsXG4gICAgICAgICAgICBzOiAneWNoeWRpZyBlaWxpYWRhdScsXG4gICAgICAgICAgICBzczogJyVkIGVpbGlhZCcsXG4gICAgICAgICAgICBtOiAnbXVudWQnLFxuICAgICAgICAgICAgbW06ICclZCBtdW51ZCcsXG4gICAgICAgICAgICBoOiAnYXdyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgYXdyJyxcbiAgICAgICAgICAgIGQ6ICdkaXdybm9kJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGl3cm5vZCcsXG4gICAgICAgICAgICBNOiAnbWlzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWlzJyxcbiAgICAgICAgICAgIHk6ICdibHd5ZGR5bicsXG4gICAgICAgICAgICB5eTogJyVkIGZseW5lZGQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZmVkfGFpbnxhZnxpbHx5ZGR8ZWR8ZWcpLyxcbiAgICAgICAgLy8gdHJhZGl0aW9uYWwgb3JkaW5hbCBudW1iZXJzIGFib3ZlIDMxIGFyZSBub3QgY29tbW9ubHkgdXNlZCBpbiBjb2xsb3F1aWFsIFdlbHNoXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgICAgIGxvb2t1cCA9IFtcbiAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICdhZicsXG4gICAgICAgICAgICAgICAgICAgICdpbCcsXG4gICAgICAgICAgICAgICAgICAgICd5ZGQnLFxuICAgICAgICAgICAgICAgICAgICAneWRkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJywgLy8gMWFmIHRvIDEwZmVkXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZWcnLFxuICAgICAgICAgICAgICAgICAgICAnZmVkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2VnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZlZCcsXG4gICAgICAgICAgICAgICAgICAgICdlZycsXG4gICAgICAgICAgICAgICAgICAgICdmZWQnLCAvLyAxMWVnIHRvIDIwZmVkXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGlmIChiID4gMjApIHtcbiAgICAgICAgICAgICAgICBpZiAoYiA9PT0gNDAgfHwgYiA9PT0gNTAgfHwgYiA9PT0gNjAgfHwgYiA9PT0gODAgfHwgYiA9PT0gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICdmZWQnOyAvLyBub3QgMzBhaW4sIDcwYWluIG9yIDkwYWluXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2Fpbic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChiID4gMCkge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9IGxvb2t1cFtiXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBjeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBEYW5pc2ggW2RhXVxuLy8hIGF1dGhvciA6IFVscmlrIE5pZWxzZW4gOiBodHRwczovL2dpdGh1Yi5jb20vbXJiYXNlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZGEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkYScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFydHNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJfYXByX21hal9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnc8O4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbMO4cmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3PDuG5fbWFuX3Rpcl9vbnNfdG9yX2ZyZV9sw7hyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3PDuF9tYV90aV9vbl90b19mcl9sw7gnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBbZC5dIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2kgZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tpIG1vcmdlbiBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAncMOlIGRkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpIGfDpXIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tpXSBkZGRkW3Mga2wuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzaWRlbicsXG4gICAgICAgICAgICBzOiAnZsOlIHNla3VuZGVyJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZXInLFxuICAgICAgICAgICAgbTogJ2V0IG1pbnV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR0ZXInLFxuICAgICAgICAgICAgaDogJ2VuIHRpbWUnLFxuICAgICAgICAgICAgaGg6ICclZCB0aW1lcicsXG4gICAgICAgICAgICBkOiAnZW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnZScsXG4gICAgICAgICAgICBNOiAnZW4gbcOlbmVkJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOlbmVkZXInLFxuICAgICAgICAgICAgeTogJ2V0IMOlcicsXG4gICAgICAgICAgICB5eTogJyVkIMOlcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogR2VybWFuIFtkZV1cbi8vISBhdXRob3IgOiBsbHVjaHMgOiBodHRwczovL2dpdGh1Yi5jb20vbGx1Y2hzXG4vLyEgYXV0aG9yOiBNZW5lbGlvbiBFbGVuc8O6bGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG4vLyEgYXV0aG9yIDogTWlrb2xhaiBEYWRlbGEgOiBodHRwczovL2dpdGh1Yi5jb20vbWlrMDFhalxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIG06IFsnZWluZSBNaW51dGUnLCAnZWluZXIgTWludXRlJ10sXG4gICAgICAgICAgICBoOiBbJ2VpbmUgU3R1bmRlJywgJ2VpbmVyIFN0dW5kZSddLFxuICAgICAgICAgICAgZDogWydlaW4gVGFnJywgJ2VpbmVtIFRhZyddLFxuICAgICAgICAgICAgZGQ6IFtudW1iZXIgKyAnIFRhZ2UnLCBudW1iZXIgKyAnIFRhZ2VuJ10sXG4gICAgICAgICAgICB3OiBbJ2VpbmUgV29jaGUnLCAnZWluZXIgV29jaGUnXSxcbiAgICAgICAgICAgIE06IFsnZWluIE1vbmF0JywgJ2VpbmVtIE1vbmF0J10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcgTW9uYXRlJywgbnVtYmVyICsgJyBNb25hdGVuJ10sXG4gICAgICAgICAgICB5OiBbJ2VpbiBKYWhyJywgJ2VpbmVtIEphaHInXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBKYWhyZScsIG51bWJlciArICcgSmFocmVuJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZGUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkZScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuLl9GZWIuX03DpHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWt1bmRlbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgdzogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHd3OiAnJWQgV29jaGVuJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHZXJtYW4gKEF1c3RyaWEpIFtkZS1hdF1cbi8vISBhdXRob3IgOiBsbHVjaHMgOiBodHRwczovL2dpdGh1Yi5jb20vbGx1Y2hzXG4vLyEgYXV0aG9yOiBNZW5lbGlvbiBFbGVuc8O6bGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9PaXJlXG4vLyEgYXV0aG9yIDogTWFydGluIEdyb2xsZXIgOiBodHRwczovL2dpdGh1Yi5jb20vTWFkTUdcbi8vISBhdXRob3IgOiBNaWtvbGFqIERhZGVsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWswMWFqXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgbTogWydlaW5lIE1pbnV0ZScsICdlaW5lciBNaW51dGUnXSxcbiAgICAgICAgICAgIGg6IFsnZWluZSBTdHVuZGUnLCAnZWluZXIgU3R1bmRlJ10sXG4gICAgICAgICAgICBkOiBbJ2VpbiBUYWcnLCAnZWluZW0gVGFnJ10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcgVGFnZScsIG51bWJlciArICcgVGFnZW4nXSxcbiAgICAgICAgICAgIHc6IFsnZWluZSBXb2NoZScsICdlaW5lciBXb2NoZSddLFxuICAgICAgICAgICAgTTogWydlaW4gTW9uYXQnLCAnZWluZW0gTW9uYXQnXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBNb25hdGUnLCBudW1iZXIgKyAnIE1vbmF0ZW4nXSxcbiAgICAgICAgICAgIHk6IFsnZWluIEphaHInLCAnZWluZW0gSmFociddLFxuICAgICAgICAgICAgeXk6IFtudW1iZXIgKyAnIEphaHJlJywgbnVtYmVyICsgJyBKYWhyZW4nXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBkZUF0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUtYXQnLCB7XG4gICAgICAgIG1vbnRoczogJ0rDpG5uZXJfRmVicnVhcl9Nw6Ryel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKw6RuLl9GZWIuX03DpHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBTZWt1bmRlbicsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgdzogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHd3OiAnJWQgV29jaGVuJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkZUF0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdlcm1hbiAoU3dpdHplcmxhbmQpIFtkZS1jaF1cbi8vISBhdXRob3IgOiBzc2NodWVsbGVyIDogaHR0cHM6Ly9naXRodWIuY29tL3NzY2h1ZWxsZXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgaDogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgIGQ6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgdzogWydlaW5lIFdvY2hlJywgJ2VpbmVyIFdvY2hlJ10sXG4gICAgICAgICAgICBNOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgeTogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlQ2ggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkZS1jaCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuLl9GZWIuX03DpHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTb19Nb19EaV9NaV9Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nb19EaV9NaV9Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2hldXRlIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2VzdGVybiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAndm9yICVzJyxcbiAgICAgICAgICAgIHM6ICdlaW4gcGFhciBTZWt1bmRlbicsXG4gICAgICAgICAgICBzczogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogJyVkIE1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3R1bmRlbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB3OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgd3c6ICclZCBXb2NoZW4nLFxuICAgICAgICAgICAgTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHl5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlQ2g7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsZGl2aWFuIFtkdl1cbi8vISBhdXRob3IgOiBKYXdpc2ggSGFtZWVkIDogaHR0cHM6Ly9naXRodWIuY29tL2phd2lzaFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfelt6s3oLeqt6H3qbeg96pJyxcbiAgICAgICAgICAgICfeit6s3oTesN6D3qreh96m3oPeqScsXG4gICAgICAgICAgICAn3onep96D3qjel96qJyxcbiAgICAgICAgICAgICfeh96t3pXesN6D3qnejd6qJyxcbiAgICAgICAgICAgICfeid6tJyxcbiAgICAgICAgICAgICfelt6r3oLesCcsXG4gICAgICAgICAgICAn3pbeqt6N3qbeh96oJyxcbiAgICAgICAgICAgICfeh96v3o7ept6Q3rDek96qJyxcbiAgICAgICAgICAgICfekN6s3pXesN6T3qzeid6w3oTept6D3qonLFxuICAgICAgICAgICAgJ96H3q7eht6w3pPer96E3qbeg96qJyxcbiAgICAgICAgICAgICfegt6u3ojerN6J3rDehN6m3oPeqicsXG4gICAgICAgICAgICAn3pHeqN6Q3qzeid6w3oTept6D3qonLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5cyA9IFtcbiAgICAgICAgICAgICfeh96n3oveqN6H3rDejN6mJyxcbiAgICAgICAgICAgICfegN6v3onepicsXG4gICAgICAgICAgICAn3ofept6C3rDejt6n3oPepicsXG4gICAgICAgICAgICAn3oTeqt6L3qYnLFxuICAgICAgICAgICAgJ96E3qreg96n3pDesN6K3qbejN6oJyxcbiAgICAgICAgICAgICfegN6q3obeqt6D3qonLFxuICAgICAgICAgICAgJ96A3q7egt6o3oDeqN6D3qonLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGR2ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZHYnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ96H3qfei96oX96A3q/eid6mX96H3qbegt6wX96E3qrei96mX96E3qreg96nX96A3qreht6qX96A3q7egt6oJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnRC9NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/eid6GfN6J3oovLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn3oneiicgPT09IGlucHV0O1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn3onehic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn3oneiic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW96J3qjeh96m3oveql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1veid6n3ovept6J3qddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW96H3qjeh96w3pTerF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb3orep96H3qjejN6q3ojeqF0gZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ96M3qzeg96t3o7ept6H3qggJXMnLFxuICAgICAgICAgICAgcGFzdDogJ96G3qreg96o3oLesCAlcycsXG4gICAgICAgICAgICBzOiAn3pDeqN6G3qregt6w3ozeqt6G3q7ehd6s3ofesCcsXG4gICAgICAgICAgICBzczogJ2QlIN6Q3qjeht6q3oLesN6M3qonLFxuICAgICAgICAgICAgbTogJ96J3qjegt6o3pPerN6H3rAnLFxuICAgICAgICAgICAgbW06ICfeid6o3oLeqN6T3qogJWQnLFxuICAgICAgICAgICAgaDogJ96O3qbekd6o3ofeqN6D3qzeh96wJyxcbiAgICAgICAgICAgIGhoOiAn3o7ept6R3qjeh96o3oPeqiAlZCcsXG4gICAgICAgICAgICBkOiAn3oveqt6I3qbegN6s3ofesCcsXG4gICAgICAgICAgICBkZDogJ96L3qreiN6m3pDesCAlZCcsXG4gICAgICAgICAgICBNOiAn3onept6A3qzeh96wJyxcbiAgICAgICAgICAgIE1NOiAn3onept6Q3rAgJWQnLFxuICAgICAgICAgICAgeTogJ96H3qbegN6m3oPerN6H3rAnLFxuICAgICAgICAgICAgeXk6ICfeh96m3oDept6D3qogJWQnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogNywgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGR2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEdyZWVrIFtlbF1cbi8vISBhdXRob3IgOiBBZ2dlbG9zIEthcmFsaWFzIDogaHR0cHM6Ly9naXRodWIuY29tL21laGllbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gaXNGdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHR5cGVvZiBGdW5jdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgaW5wdXQgaW5zdGFuY2VvZiBGdW5jdGlvbikgfHxcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgZWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbCcsIHtcbiAgICAgICAgbW9udGhzTm9taW5hdGl2ZUVsOiAnzpnOsc69zr/Phc6sz4HOuc6/z4JfzqbOtc6yz4HOv8+FzqzPgc65zr/Pgl/OnM6sz4HPhM65zr/Pgl/Okc+Az4HOr867zrnOv8+CX86czqzOuc6/z4JfzpnOv8+Nzr3Ouc6/z4JfzpnOv8+NzrvOuc6/z4JfzpHPjc6zzr/Phc+Dz4TOv8+CX86jzrXPgM+Ezq3OvM6yz4HOuc6/z4Jfzp/Ous+Ez47Oss+BzrnOv8+CX86dzr/Orc68zrLPgc65zr/Pgl/OlM61zrrOrc68zrLPgc65zr/Pgicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzR2VuaXRpdmVFbDogJ86ZzrHOvc6/z4XOsc+Bzq/Ov8+FX86mzrXOss+Bzr/Phc6xz4HOr86/z4VfzpzOsc+Bz4TOr86/z4VfzpHPgM+BzrnOu86vzr/PhV/OnM6xzpDOv8+FX86Zzr/Phc69zq/Ov8+FX86Zzr/Phc67zq/Ov8+FX86Rz4XOs86/z43Pg8+Ezr/PhV/Oo861z4DPhM61zrzOss+Bzq/Ov8+FX86fzrrPhM+JzrLPgc6vzr/PhV/Onc6/zrXOvM6yz4HOr86/z4VfzpTOtc66zrXOvM6yz4HOr86/z4UnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoczogZnVuY3Rpb24gKG1vbWVudFRvRm9ybWF0LCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbW9tZW50VG9Gb3JtYXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzTm9taW5hdGl2ZUVsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB0eXBlb2YgZm9ybWF0ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgICAgIC9ELy50ZXN0KGZvcm1hdC5zdWJzdHJpbmcoMCwgZm9ybWF0LmluZGV4T2YoJ01NTU0nKSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGRheSBudW1iZXIgYmVmb3JlICdNTU1NJ1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNHZW5pdGl2ZUVsW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzTm9taW5hdGl2ZUVsW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ86ZzrHOvV/Ops61zrJfzpzOsc+BX86Rz4DPgV/OnM6xz4pfzpnOv8+Fzr1fzpnOv8+FzrtfzpHPhc6zX86jzrXPgF/On866z4Rfzp3Ov861X86UzrXOuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfOms+Fz4HOuc6xzrrOrl/OlM61z4XPhM6tz4HOsV/OpM+Bzq/PhM63X86kzrXPhM6sz4HPhM63X86gzq3OvM+Az4TOt1/OoM6xz4HOsc+DzrrOtc+Fzq5fzqPOrM6yzrLOsc+Ezr8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfOms+Fz4FfzpTOtc+FX86kz4HOuV/OpM61z4RfzqDOtc68X86gzrHPgV/Oo86xzrInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnzprPhV/OlM61X86kz4FfzqTOtV/OoM61X86gzrFfzqPOsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfOvM68JyA6ICfOnM6cJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnz4DOvCcgOiAnzqDOnCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpWzBdID09PSAnzrwnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvW86gzpxdXFwuP86cP1xcLj8vaSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXJFbDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vOo86uzrzOtc+BzrEge31dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbzpHPjc+BzrnOvyB7fV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt7fV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vOp864zrXPgiB7fV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbz4TOvyDPgM+Bzr/Ot86zzr/Pjc68zrXOvc6/XSBkZGRkIFt7fV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbz4TOt869IM+Az4HOv863zrPOv8+NzrzOtc69zrddIGRkZGQgW3t9XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiBmdW5jdGlvbiAoa2V5LCBtb20pIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhckVsW2tleV0sXG4gICAgICAgICAgICAgICAgaG91cnMgPSBtb20gJiYgbW9tLmhvdXJzKCk7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmFwcGx5KG1vbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0LnJlcGxhY2UoJ3t9JywgaG91cnMgJSAxMiA9PT0gMSA/ICfPg8+EzrcnIDogJ8+Dz4TOuc+CJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnz4POtSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgz4DPgc65zr0nLFxuICAgICAgICAgICAgczogJ867zq/Os86xIM60zrXPhc+EzrXPgc+MzrvOtc+Az4TOsScsXG4gICAgICAgICAgICBzczogJyVkIM60zrXPhc+EzrXPgc+MzrvOtc+Az4TOsScsXG4gICAgICAgICAgICBtOiAnzq3Ovc6xIM67zrXPgM+Ez4wnLFxuICAgICAgICAgICAgbW06ICclZCDOu861z4DPhM6sJyxcbiAgICAgICAgICAgIGg6ICfOvM6vzrEgz47Pgc6xJyxcbiAgICAgICAgICAgIGhoOiAnJWQgz47Pgc61z4InLFxuICAgICAgICAgICAgZDogJ868zq/OsSDOvM6tz4HOsScsXG4gICAgICAgICAgICBkZDogJyVkIM68zq3Pgc61z4InLFxuICAgICAgICAgICAgTTogJ86tzr3Osc+CIM68zq7Ovc6xz4InLFxuICAgICAgICAgICAgTU06ICclZCDOvM6uzr3Otc+CJyxcbiAgICAgICAgICAgIHk6ICfOrc69zrHPgiDPh8+Bz4zOvc6/z4InLFxuICAgICAgICAgICAgeXk6ICclZCDPh8+Bz4zOvc65zrEnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Oty8sXG4gICAgICAgIG9yZGluYWw6ICclZM63JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHN0IGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKEF1c3RyYWxpYSkgW2VuLWF1XVxuLy8hIGF1dGhvciA6IEphcmVkIE1vcnNlIDogaHR0cHM6Ly9naXRodWIuY29tL2phcmNvYWxcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkF1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tYXUnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuQXU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoQ2FuYWRhKSBbZW4tY2FdXG4vLyEgYXV0aG9yIDogSm9uYXRoYW4gQWJvdXJiaWggOiBodHRwczovL2dpdGh1Yi5jb20vam9uYmNhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5DYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWNhJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ01NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5DYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChVbml0ZWQgS2luZ2RvbSkgW2VuLWdiXVxuLy8hIGF1dGhvciA6IENocmlzIEdlZHJpbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2dlZHJpbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuR2IgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1nYicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkdiO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKElyZWxhbmQpIFtlbi1pZV1cbi8vISBhdXRob3IgOiBDaHJpcyBDYXJ0bGlkZ2UgOiBodHRwczovL2dpdGh1Yi5jb20vY2hyaXNjYXJ0bGlkZ2VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbkllID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4taWUnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkllO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKElzcmFlbCkgW2VuLWlsXVxuLy8hIGF1dGhvciA6IENocmlzIEdlZHJpbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2dlZHJpbVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVuSWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pbCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFbmdsaXNoIChJbmRpYSkgW2VuLWluXVxuLy8hIGF1dGhvciA6IEphdGluIEFncmF3YWwgOiBodHRwczovL2dpdGh1Yi5jb20vamF0aW5hZzIyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZW5JbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWluJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZ28nLFxuICAgICAgICAgICAgczogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG06ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGg6ICclZCBob3VycycsXG4gICAgICAgICAgICBkOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQ6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE06ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHk6ICdhIHllYXInLFxuICAgICAgICAgICAgeXk6ICclZCB5ZWFycycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9XG4gICAgICAgICAgICAgICAgICAgIH5+KChudW1iZXIgJSAxMDApIC8gMTApID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICd0aCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnc3QnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ25kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDFzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbkluO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEVuZ2xpc2ggKE5ldyBaZWFsYW5kKSBbZW4tbnpdXG4vLyEgYXV0aG9yIDogTHVrZSBNY0dyZWdvciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sdWtlbWNncmVnb3JcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlbk56ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tbnonLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFM6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGFnbycsXG4gICAgICAgICAgICBzOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbTogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQ6ICdhIGRheScsXG4gICAgICAgICAgICBkZDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTTogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU06ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeTogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eTogJyVkIHllYXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVuTno7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRW5nbGlzaCAoU2luZ2Fwb3JlKSBbZW4tc2ddXG4vLyEgYXV0aG9yIDogTWF0dGhldyBDYXN0cmlsbG9uLU1hZHJpZ2FsIDogaHR0cHM6Ly9naXRodWIuY29tL3RlY2hkaW1lbnNpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBlblNnID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW4tc2cnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHM6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5OiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWVhcnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5TZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBFc3BlcmFudG8gW2VvXVxuLy8hIGF1dGhvciA6IENvbGluIERlYW4gOiBodHRwczovL2dpdGh1Yi5jb20vY29saW5kZWFuXG4vLyEgYXV0aG9yIDogTWlhIE5vcmRlbnRvZnQgSW1wZXJhdG9yaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWVzdGFzbWlhXG4vLyEgY29tbWVudCA6IG1pZXN0YXNtaWEgY29ycmVjdGVkIHRoZSB0cmFuc2xhdGlvbiBieSBjb2xpbmRlYW5cbi8vISBjb21tZW50IDogVml2YWt2byBjb3JyZWN0ZWQgdGhlIHRyYW5zbGF0aW9uIGJ5IGNvbGluZGVhbiBhbmQgbWllc3Rhc21pYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGVvID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZW8nLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxvX21ham9fanVuaW9fanVsaW9fYcWtZ3VzdG9fc2VwdGVtYnJvX29rdG9icm9fbm92ZW1icm9fZGVjZW1icm8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJ0X2Fwcl9tYWpfanVuX2p1bF9hxa1nX3NlcHRfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnZGltYW7EiW9fbHVuZG9fbWFyZG9fbWVya3JlZG9fxLVhxa1kb192ZW5kcmVkb19zYWJhdG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkaW1fbHVuX21hcmRfbWVya1/EtWHFrV92ZW5fc2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RpX2x1X21hX21lX8S1YV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ1tsYV0gRFstYW4gZGVdIE1NTU0sIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGRbbl0sIFtsYV0gRFstYW4gZGVdIE1NTU0sIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgW2xhXSBEWy1hbiBkZV0gTU1NLCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1thcF1cXC50XFwubS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSA9PT0gJ3AnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3AudC5tLicgOiAnUC5ULk0uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnYS50Lm0uJyA6ICdBLlQuTS4nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIb2RpYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW01vcmdhxa0gamVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZFtuIGplXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hpZXJhxa0gamVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3Bhc2ludGFuXSBkZGRkW24gamVdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAncG9zdCAlcycsXG4gICAgICAgICAgICBwYXN0OiAnYW50YcWtICVzJyxcbiAgICAgICAgICAgIHM6ICdrZWxrYWogc2VrdW5kb2onLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRvaicsXG4gICAgICAgICAgICBtOiAndW51IG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b2onLFxuICAgICAgICAgICAgaDogJ3VudSBob3JvJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaG9yb2onLFxuICAgICAgICAgICAgZDogJ3VudSB0YWdvJywgLy9uZSAnZGl1cm5vJywgxIlhciBlc3RhcyB1eml0YSBwb3IgcHJva3NpbXVtb1xuICAgICAgICAgICAgZGQ6ICclZCB0YWdvaicsXG4gICAgICAgICAgICBNOiAndW51IG1vbmF0bycsXG4gICAgICAgICAgICBNTTogJyVkIG1vbmF0b2onLFxuICAgICAgICAgICAgeTogJ3VudSBqYXJvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgamFyb2onLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1hLyxcbiAgICAgICAgb3JkaW5hbDogJyVkYScsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTcGFuaXNoIFtlc11cbi8vISBhdXRob3IgOiBKdWxpbyBOYXB1csOtIDogaHR0cHM6Ly9naXRodWIuY29tL2p1bGlvbmNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydERvdCA9ICdlbmUuX2ZlYi5fbWFyLl9hYnIuX21heS5fanVuLl9qdWwuX2Fnby5fc2VwLl9vY3QuX25vdi5fZGljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15lbmUvaSxcbiAgICAgICAgICAgIC9eZmViL2ksXG4gICAgICAgICAgICAvXm1hci9pLFxuICAgICAgICAgICAgL15hYnIvaSxcbiAgICAgICAgICAgIC9ebWF5L2ksXG4gICAgICAgICAgICAvXmp1bi9pLFxuICAgICAgICAgICAgL15qdWwvaSxcbiAgICAgICAgICAgIC9eYWdvL2ksXG4gICAgICAgICAgICAvXnNlcC9pLFxuICAgICAgICAgICAgL15vY3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmRpYy9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2k7XG5cbiAgICB2YXIgZXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlcycsIHtcbiAgICAgICAgbW9udGhzOiAnZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90W20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbWlfanVfdmlfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7FhbmEgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F5ZXIgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tlbF0gZGRkZCBbcGFzYWRvIGEgbGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaGFjZSAlcycsXG4gICAgICAgICAgICBzOiAndW5vcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYcOxb3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkRGF0ZTogJ0ZlY2hhIGludmFsaWRhJyxcbiAgICB9KTtcblxuICAgIHJldHVybiBlcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTcGFuaXNoIChEb21pbmljYW4gUmVwdWJsaWMpIFtlcy1kb11cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydERvdCA9ICdlbmUuX2ZlYi5fbWFyLl9hYnIuX21heS5fanVuLl9qdWwuX2Fnby5fc2VwLl9vY3QuX25vdi5fZGljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15lbmUvaSxcbiAgICAgICAgICAgIC9eZmViL2ksXG4gICAgICAgICAgICAvXm1hci9pLFxuICAgICAgICAgICAgL15hYnIvaSxcbiAgICAgICAgICAgIC9ebWF5L2ksXG4gICAgICAgICAgICAvXmp1bi9pLFxuICAgICAgICAgICAgL15qdWwvaSxcbiAgICAgICAgICAgIC9eYWdvL2ksXG4gICAgICAgICAgICAvXnNlcC9pLFxuICAgICAgICAgICAgL15vY3QvaSxcbiAgICAgICAgICAgIC9ebm92L2ksXG4gICAgICAgICAgICAvXmRpYy9pLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNSZWdleCA9IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2k7XG5cbiAgICB2YXIgZXNEbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzLWRvJywge1xuICAgICAgICBtb250aHM6ICdlbmVyb19mZWJyZXJvX21hcnpvX2FicmlsX21heW9fanVuaW9fanVsaW9fYWdvc3RvX3NlcHRpZW1icmVfb2N0dWJyZV9ub3ZpZW1icmVfZGljaWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3RbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5czogJ2RvbWluZ29fbHVuZXNfbWFydGVzX21pw6lyY29sZXNfanVldmVzX3ZpZXJuZXNfc8OhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbS5fbHVuLl9tYXIuX21pw6kuX2p1ZS5fdmllLl9zw6FiLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9taV9qdV92aV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3kgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxYW5hIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1theWVyIGEgbGEnICsgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhJyArXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgICAnXSBMVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZW4gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2hhY2UgJXMnLFxuICAgICAgICAgICAgczogJ3Vub3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYcOxbycsXG4gICAgICAgICAgICB5eTogJyVkIGHDsW9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBlc0RvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNwYW5pc2ggKFVuaXRlZCBTdGF0ZXMpIFtlcy11c11cbi8vISBhdXRob3IgOiBidXN0dGEgOiBodHRwczovL2dpdGh1Yi5jb20vYnVzdHRhXG4vLyEgYXV0aG9yIDogY2hyaXNyb2R6IDogaHR0cHM6Ly9naXRodWIuY29tL2Nocmlzcm9kelxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0RG90ID0gJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdlbmVfZmViX21hcl9hYnJfbWF5X2p1bl9qdWxfYWdvX3NlcF9vY3Rfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmVuZS9pLFxuICAgICAgICAgICAgL15mZWIvaSxcbiAgICAgICAgICAgIC9ebWFyL2ksXG4gICAgICAgICAgICAvXmFici9pLFxuICAgICAgICAgICAgL15tYXkvaSxcbiAgICAgICAgICAgIC9eanVuL2ksXG4gICAgICAgICAgICAvXmp1bC9pLFxuICAgICAgICAgICAgL15hZ28vaSxcbiAgICAgICAgICAgIC9ec2VwL2ksXG4gICAgICAgICAgICAvXm9jdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZGljL2ksXG4gICAgICAgIF0sXG4gICAgICAgIG1vbnRoc1JlZ2V4ID0gL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlc1VzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZXMtdXMnLCB7XG4gICAgICAgIG1vbnRoczogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5lc19tYXJ0ZXNfbWnDqXJjb2xlc19qdWV2ZXNfdmllcm5lc19zw6FiYWRvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RvX2x1X21hX21pX2p1X3ZpX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEw6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEnLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveSBhIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7FhbmEgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthIGxhJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F5ZXIgYSBsYScgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tlbF0gZGRkZCBbcGFzYWRvIGEgbGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSAhPT0gMSA/ICdzJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAgICddIExUJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaGFjZSAlcycsXG4gICAgICAgICAgICBzOiAndW5vcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYcOxb3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzVXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRXN0b25pYW4gW2V0XVxuLy8hIGF1dGhvciA6IEhlbnJ5IEtlaGxtYW5uIDogaHR0cHM6Ly9naXRodWIuY29tL21hZGhlbnJ5XG4vLyEgaW1wcm92ZW1lbnRzIDogSWxsaW1hciBUYW1iZWsgOiBodHRwczovL2dpdGh1Yi5jb20vcmFndWxrYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHM6IFsnbcO1bmUgc2VrdW5kaScsICdtw7VuaSBzZWt1bmQnLCAncGFhciBzZWt1bmRpdCddLFxuICAgICAgICAgICAgc3M6IFtudW1iZXIgKyAnc2VrdW5kaScsIG51bWJlciArICdzZWt1bmRpdCddLFxuICAgICAgICAgICAgbTogWyfDvGhlIG1pbnV0aScsICfDvGtzIG1pbnV0J10sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcgbWludXRpJywgbnVtYmVyICsgJyBtaW51dGl0J10sXG4gICAgICAgICAgICBoOiBbJ8O8aGUgdHVubmknLCAndHVuZCBhZWdhJywgJ8O8a3MgdHVuZCddLFxuICAgICAgICAgICAgaGg6IFtudW1iZXIgKyAnIHR1bm5pJywgbnVtYmVyICsgJyB0dW5kaSddLFxuICAgICAgICAgICAgZDogWyfDvGhlIHDDpGV2YScsICfDvGtzIHDDpGV2J10sXG4gICAgICAgICAgICBNOiBbJ2t1dSBhamEnLCAna3V1IGFlZ2EnLCAnw7xrcyBrdXUnXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBrdXUnLCBudW1iZXIgKyAnIGt1dWQnXSxcbiAgICAgICAgICAgIHk6IFsnw7xoZSBhYXN0YScsICdhYXN0YScsICfDvGtzIGFhc3RhJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgYWFzdGEnLCBudW1iZXIgKyAnIGFhc3RhdCddLFxuICAgICAgICB9O1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFtrZXldWzJdID8gZm9ybWF0W2tleV1bMl0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBldCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2V0Jywge1xuICAgICAgICBtb250aHM6ICdqYWFudWFyX3ZlZWJydWFyX23DpHJ0c19hcHJpbGxfbWFpX2p1dW5pX2p1dWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b29iZXJfbm92ZW1iZXJfZGV0c2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phYW5fdmVlYnJfbcOkcnRzX2Fwcl9tYWlfanV1bmlfanV1bGlfYXVnX3NlcHRfb2t0X25vdl9kZXRzJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ3DDvGhhcMOkZXZfZXNtYXNww6Rldl90ZWlzaXDDpGV2X2tvbG1hcMOkZXZfbmVsamFww6Rldl9yZWVkZV9sYXVww6Rldicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1BfRV9UX0tfTl9SX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnUF9FX1RfS19OX1JfTCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW1TDpG5hLF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tIb21tZSxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW0rDpHJnbWluZV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0VpbGUsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tFZWxtaW5lXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgcMOkcmFzdCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMgdGFnYXNpJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogJyVkIHDDpGV2YScsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQmFzcXVlIFtldV1cbi8vISBhdXRob3IgOiBFbmVrbyBJbGxhcnJhbWVuZGkgOiBodHRwczovL2dpdGh1Yi5jb20vZWlsbGFycmFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBldSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2V1Jywge1xuICAgICAgICBtb250aHM6ICd1cnRhcnJpbGFfb3RzYWlsYV9tYXJ0eG9hX2FwaXJpbGFfbWFpYXR6YV9la2FpbmFfdXp0YWlsYV9hYnV6dHVhX2lyYWlsYV91cnJpYV9hemFyb2FfYWJlbmR1YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICd1cnQuX290cy5fbWFyLl9hcGkuX21haS5fZWthLl91enQuX2FidS5faXJhLl91cnIuX2F6YS5fYWJlLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdpZ2FuZGVhX2FzdGVsZWhlbmFfYXN0ZWFydGVhX2FzdGVhemtlbmFfb3N0ZWd1bmFfb3N0aXJhbGFfbGFydW5iYXRhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnaWcuX2FsLl9hci5fYXouX29nLl9vbC5fbHIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2lnX2FsX2FyX2F6X29nX29sX2xyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMOiAnWVlZWVtrb10gTU1NTVtyZW5dIERbYV0nLFxuICAgICAgICAgICAgTExMOiAnWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFlZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZLU0tRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVlba29dIE1NTSBEW2FdJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVlba29dIE1NTSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIFlZWVlba29dIE1NTSBEW2FdIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZ2F1cl0gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tiaWhhcl0gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUW2V0YW5dJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbYXR6b10gTFRbZXRhbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbYXVycmVrb10gZGRkZCBMVFtldGFuXScsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIGJhcnJ1JyxcbiAgICAgICAgICAgIHBhc3Q6ICdkdWVsYSAlcycsXG4gICAgICAgICAgICBzOiAnc2VndW5kbyBiYXR6dWsnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG06ICdtaW51dHUgYmF0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXR1JyxcbiAgICAgICAgICAgIGg6ICdvcmR1IGJhdCcsXG4gICAgICAgICAgICBoaDogJyVkIG9yZHUnLFxuICAgICAgICAgICAgZDogJ2VndW4gYmF0JyxcbiAgICAgICAgICAgIGRkOiAnJWQgZWd1bicsXG4gICAgICAgICAgICBNOiAnaGlsYWJldGUgYmF0JyxcbiAgICAgICAgICAgIE1NOiAnJWQgaGlsYWJldGUnLFxuICAgICAgICAgICAgeTogJ3VydGUgYmF0JyxcbiAgICAgICAgICAgIHl5OiAnJWQgdXJ0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUGVyc2lhbiBbZmFdXG4vLyEgYXV0aG9yIDogRWJyYWhpbSBCeWFnb3dpIDogaHR0cHM6Ly9naXRodWIuY29tL2VicmFtaW5pb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ9uxJyxcbiAgICAgICAgICAgICcyJzogJ9uyJyxcbiAgICAgICAgICAgICczJzogJ9uzJyxcbiAgICAgICAgICAgICc0JzogJ9u0JyxcbiAgICAgICAgICAgICc1JzogJ9u1JyxcbiAgICAgICAgICAgICc2JzogJ9u2JyxcbiAgICAgICAgICAgICc3JzogJ9u3JyxcbiAgICAgICAgICAgICc4JzogJ9u4JyxcbiAgICAgICAgICAgICc5JzogJ9u5JyxcbiAgICAgICAgICAgICcwJzogJ9uwJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ9uxJzogJzEnLFxuICAgICAgICAgICAgJ9uyJzogJzInLFxuICAgICAgICAgICAgJ9uzJzogJzMnLFxuICAgICAgICAgICAgJ9u0JzogJzQnLFxuICAgICAgICAgICAgJ9u1JzogJzUnLFxuICAgICAgICAgICAgJ9u2JzogJzYnLFxuICAgICAgICAgICAgJ9u3JzogJzcnLFxuICAgICAgICAgICAgJ9u4JzogJzgnLFxuICAgICAgICAgICAgJ9u5JzogJzknLFxuICAgICAgICAgICAgJ9uwJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIGZhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZmEnLCB7XG4gICAgICAgIG1vbnRoczogJ9qY2KfZhtmI24zZh1/ZgdmI2LHbjNmHX9mF2KfYsdizX9ii2YjYsduM2YRf2YXZh1/amNmI2KbZhl/amNmI2KbbjNmHX9in2YjYql/Ys9m+2KrYp9mF2KjYsV/Yp9qp2KrYqNixX9mG2YjYp9mF2KjYsV/Yr9iz2KfZhdio2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2pjYp9mG2YjbjNmHX9mB2YjYsduM2Ydf2YXYp9ix2LNf2KLZiNix24zZhF/ZhdmHX9qY2YjYptmGX9qY2YjYptuM2Ydf2KfZiNiqX9iz2b7Yqtin2YXYqNixX9in2qnYqtio2LFf2YbZiNin2YXYqNixX9iv2LPYp9mF2KjYsScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfbjNqpXFx1MjAwY9i02YbYqNmHX9iv2YjYtNmG2KjZh1/Ys9mHXFx1MjAwY9i02YbYqNmHX9qG2YfYp9ix2LTZhtio2Ydf2b7ZhtisXFx1MjAwY9i02YbYqNmHX9is2YXYudmHX9i02YbYqNmHJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn24zaqVxcdTIwMGPYtNmG2KjZh1/Yr9mI2LTZhtio2Ydf2LPZh1xcdTIwMGPYtNmG2KjZh1/ahtmH2KfYsdi02YbYqNmHX9m+2YbYrFxcdTIwMGPYtNmG2KjZh1/YrNmF2LnZh1/YtNmG2KjZhycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfbjF/Yr1/Ys1/ahl/Zvl/YrF/YtCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Zgtio2YQg2KfYsiDYuNmH2LF82KjYudivINin2LIg2LjZh9ixLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL9io2LnYryDYp9iyINi42YfYsS8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZgtio2YQg2KfYsiDYuNmH2LEnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9io2LnYryDYp9iyINi42YfYsSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YXYsdmI2LIg2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2YHYsdiv2Kcg2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2K/bjNix2YjYsiDYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvZvtuM2LRdIFvYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfYr9ixICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDZvtuM2LQnLFxuICAgICAgICAgICAgczogJ9qG2YbYryDYq9in2YbbjNmHJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2KvYp9mG24zZhycsXG4gICAgICAgICAgICBtOiAn24zaqSDYr9mC24zZgtmHJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/ZgtuM2YLZhycsXG4gICAgICAgICAgICBoOiAn24zaqSDYs9in2LnYqicsXG4gICAgICAgICAgICBoaDogJyVkINiz2KfYudiqJyxcbiAgICAgICAgICAgIGQ6ICfbjNqpINix2YjYsicsXG4gICAgICAgICAgICBkZDogJyVkINix2YjYsicsXG4gICAgICAgICAgICBNOiAn24zaqSDZhdin2YcnLFxuICAgICAgICAgICAgTU06ICclZCDZhdin2YcnLFxuICAgICAgICAgICAgeTogJ9uM2qkg2LPYp9mEJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPYp9mEJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW9uwLdu5XS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1xuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfdmFLyxcbiAgICAgICAgb3JkaW5hbDogJyVk2YUnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZpbm5pc2ggW2ZpXVxuLy8hIGF1dGhvciA6IFRhcm1vIEFpZGFudGF1c3RhIDogaHR0cHM6Ly9naXRodWIuY29tL2JsZWFkb2ZcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBudW1iZXJzUGFzdCA9ICdub2xsYSB5a3NpIGtha3NpIGtvbG1lIG5lbGrDpCB2aWlzaSBrdXVzaSBzZWl0c2Vtw6RuIGthaGRla3NhbiB5aGRla3PDpG4nLnNwbGl0KFxuICAgICAgICAgICAgJyAnXG4gICAgICAgICksXG4gICAgICAgIG51bWJlcnNGdXR1cmUgPSBbXG4gICAgICAgICAgICAnbm9sbGEnLFxuICAgICAgICAgICAgJ3loZGVuJyxcbiAgICAgICAgICAgICdrYWhkZW4nLFxuICAgICAgICAgICAgJ2tvbG1lbicsXG4gICAgICAgICAgICAnbmVsasOkbicsXG4gICAgICAgICAgICAndmlpZGVuJyxcbiAgICAgICAgICAgICdrdXVkZW4nLFxuICAgICAgICAgICAgbnVtYmVyc1Bhc3RbN10sXG4gICAgICAgICAgICBudW1iZXJzUGFzdFs4XSxcbiAgICAgICAgICAgIG51bWJlcnNQYXN0WzldLFxuICAgICAgICBdO1xuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ211dXRhbWFuIHNla3VubmluJyA6ICdtdXV0YW1hIHNla3VudGknO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3Nla3VubmluJyA6ICdzZWt1bnRpYSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAnbWludXV0aW4nIDogJ21pbnV1dHRpJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICdtaW51dXRpbicgOiAnbWludXV0dGlhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICd0dW5uaW4nIDogJ3R1bnRpJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICd0dW5uaW4nIDogJ3R1bnRpYSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAncMOkaXbDpG4nIDogJ3DDpGl2w6QnO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3DDpGl2w6RuJyA6ICdww6RpdsOkw6QnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ2t1dWthdWRlbicgOiAna3V1a2F1c2knO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ2t1dWthdWRlbicgOiAna3V1a2F1dHRhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICd2dW9kZW4nIDogJ3Z1b3NpJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpc0Z1dHVyZSA/ICd2dW9kZW4nIDogJ3Z1b3R0YSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ID0gdmVyYmFsTnVtYmVyKG51bWJlciwgaXNGdXR1cmUpICsgJyAnICsgcmVzdWx0O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiB2ZXJiYWxOdW1iZXIobnVtYmVyLCBpc0Z1dHVyZSkge1xuICAgICAgICByZXR1cm4gbnVtYmVyIDwgMTBcbiAgICAgICAgICAgID8gaXNGdXR1cmVcbiAgICAgICAgICAgICAgICA/IG51bWJlcnNGdXR1cmVbbnVtYmVyXVxuICAgICAgICAgICAgICAgIDogbnVtYmVyc1Bhc3RbbnVtYmVyXVxuICAgICAgICAgICAgOiBudW1iZXI7XG4gICAgfVxuXG4gICAgdmFyIGZpID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZmknLCB7XG4gICAgICAgIG1vbnRoczogJ3RhbW1pa3V1X2hlbG1pa3V1X21hYWxpc2t1dV9odWh0aWt1dV90b3Vrb2t1dV9rZXPDpGt1dV9oZWluw6RrdXVfZWxva3V1X3N5eXNrdXVfbG9rYWt1dV9tYXJyYXNrdXVfam91bHVrdXUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAndGFtbWlfaGVsbWlfbWFhbGlzX2h1aHRpX3RvdWtvX2tlc8OkX2hlaW7DpF9lbG9fc3l5c19sb2thX21hcnJhc19qb3VsdScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICdzdW5udW50YWlfbWFhbmFudGFpX3RpaXN0YWlfa2Vza2l2aWlra29fdG9yc3RhaV9wZXJqYW50YWlfbGF1YW50YWknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzdV9tYV90aV9rZV90b19wZV9sYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzdV9tYV90aV9rZV90b19wZV9sYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEbyBNTU1NW3RhXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0RvIE1NTU1bdGFdIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEbyBNTU1NW3RhXSBZWVlZLCBba2xvXSBISC5tbScsXG4gICAgICAgICAgICBsOiAnRC5NLllZWVknLFxuICAgICAgICAgICAgbGw6ICdEbyBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGw6ICdEbyBNTU0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdMOkbsOkw6RuXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2h1b21lbm5hXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsb10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tlaWxlbl0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbdmlpbWVdIGRkZGRbbmFdIFtrbG9dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgcMOkw6RzdMOkJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzaXR0ZW4nLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZpbGlwaW5vIFtmaWxdXG4vLyEgYXV0aG9yIDogRGFuIEhhZ21hbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYWdtYW5kYW5cbi8vISBhdXRob3IgOiBNYXR0aGV3IENvIDogaHR0cHM6Ly9naXRodWIuY29tL21hdHRoZXdkZWVjb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGZpbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZpbCcsIHtcbiAgICAgICAgbW9udGhzOiAnRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0VuZV9QZWJfTWFyX0Ficl9NYXlfSHVuX0h1bF9BZ29fU2V0X09rdF9Ob2JfRGlzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0xpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFkbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0xpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdMaV9MdV9NYV9NaV9IdV9CaV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdNTS9EL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdMVCBbbmdheW9uZyBhcmF3XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0J1a2FzIG5nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ0xUIFtzYSBzdXN1bm9kIG5hXSBkZGRkJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdMVCBba2FoYXBvbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnc2EgbG9vYiBuZyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgYW5nIG5ha2FsaXBhcycsXG4gICAgICAgICAgICBzOiAnaWxhbmcgc2VndW5kbycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG8nLFxuICAgICAgICAgICAgbTogJ2lzYW5nIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0bycsXG4gICAgICAgICAgICBoOiAnaXNhbmcgb3JhcycsXG4gICAgICAgICAgICBoaDogJyVkIG9yYXMnLFxuICAgICAgICAgICAgZDogJ2lzYW5nIGFyYXcnLFxuICAgICAgICAgICAgZGQ6ICclZCBhcmF3JyxcbiAgICAgICAgICAgIE06ICdpc2FuZyBidXdhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1d2FuJyxcbiAgICAgICAgICAgIHk6ICdpc2FuZyB0YW9uJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFvbicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmaWw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRmFyb2VzZSBbZm9dXG4vLyEgYXV0aG9yIDogUmFnbmFyIEpvaGFubmVzZW4gOiBodHRwczovL2dpdGh1Yi5jb20vcmFnbmFyMTIzXG4vLyEgYXV0aG9yIDogS3Jpc3RpYW4gU2FrYXJpc3NvbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYWthcmlzc29uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZm8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmbycsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFyc19hcHLDrWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJfYXByX21haV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnc3VubnVkYWd1cl9tw6FuYWRhZ3VyX3TDvXNkYWd1cl9taWt1ZGFndXJfaMOzc2RhZ3VyX2Zyw61nZ2phZGFndXJfbGV5Z2FyZGFndXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzdW5fbcOhbl90w71zX21pa19ow7NzX2Zyw61fbGV5Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3N1X23DoV90w71fbWlfaMOzX2ZyX2xlJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0sIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vDjSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW8ONIG1vcmdpbiBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW8ONIGdqw6FyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbc8Otw7BzdHVdIGRkZGQgW2tsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3VtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBzw63DsGFuaScsXG4gICAgICAgICAgICBzOiAnZsOhIHNla3VuZCcsXG4gICAgICAgICAgICBzczogJyVkIHNla3VuZGlyJyxcbiAgICAgICAgICAgIG06ICdlaW4gbWludXR0dXInLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHRpcicsXG4gICAgICAgICAgICBoOiAnZWluIHTDrW1pJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdMOtbWFyJyxcbiAgICAgICAgICAgIGQ6ICdlaW4gZGFndXInLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdhcicsXG4gICAgICAgICAgICBNOiAnZWluIG3DoW5hw7B1cicsXG4gICAgICAgICAgICBNTTogJyVkIG3DoW5hw7BpcicsXG4gICAgICAgICAgICB5OiAnZWl0dCDDoXInLFxuICAgICAgICAgICAgeXk6ICclZCDDoXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZyZW5jaCBbZnJdXG4vLyEgYXV0aG9yIDogSm9obiBGaXNjaGVyIDogaHR0cHM6Ly9naXRodWIuY29tL2pmcm9mZmljZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc1N0cmljdFJlZ2V4ID0gL14oamFudmllcnxmw6l2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxsZXR8YW/Du3R8c2VwdGVtYnJlfG9jdG9icmV8bm92ZW1icmV8ZMOpY2VtYnJlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gLyhqYW52XFwuP3xmw6l2clxcLj98bWFyc3xhdnJcXC4/fG1haXxqdWlufGp1aWxcXC4/fGFvw7t0fHNlcHRcXC4/fG9jdFxcLj98bm92XFwuP3xkw6ljXFwuPykvaSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvKGphbnZcXC4/fGbDqXZyXFwuP3xtYXJzfGF2clxcLj98bWFpfGp1aW58anVpbFxcLj98YW/Du3R8c2VwdFxcLj98b2N0XFwuP3xub3ZcXC4/fGTDqWNcXC4/fGphbnZpZXJ8ZsOpdnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVpbnxqdWlsbGV0fGFvw7t0fHNlcHRlbWJyZXxvY3RvYnJlfG5vdmVtYnJlfGTDqWNlbWJyZSkvaSxcbiAgICAgICAgbW9udGhzUGFyc2UgPSBbXG4gICAgICAgICAgICAvXmphbnYvaSxcbiAgICAgICAgICAgIC9eZsOpdnIvaSxcbiAgICAgICAgICAgIC9ebWFycy9pLFxuICAgICAgICAgICAgL15hdnIvaSxcbiAgICAgICAgICAgIC9ebWFpL2ksXG4gICAgICAgICAgICAvXmp1aW4vaSxcbiAgICAgICAgICAgIC9eanVpbC9pLFxuICAgICAgICAgICAgL15hb8O7dC9pLFxuICAgICAgICAgICAgL15zZXB0L2ksXG4gICAgICAgICAgICAvXm9jdC9pLFxuICAgICAgICAgICAgL15ub3YvaSxcbiAgICAgICAgICAgIC9eZMOpYy9pLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGZyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnInLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnZpZXJfZsOpdnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2Fvw7t0X3NlcHRlbWJyZV9vY3RvYnJlX25vdmVtYnJlX2TDqWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW52Ll9mw6l2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2Fvw7t0X3NlcHQuX29jdC5fbm92Ll9kw6ljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IG1vbnRoc1N0cmljdFJlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiBtb250aHNTaG9ydFN0cmljdFJlZ2V4LFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5czogJ2RpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZGlfbHVfbWFfbWVfamVfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0F1am91cmTigJlodWkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRGVtYWluIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0hpZXIgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGVybmllciDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYW5zICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdpbCB5IGEgJXMnLFxuICAgICAgICAgICAgczogJ3F1ZWxxdWVzIHNlY29uZGVzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZXMnLFxuICAgICAgICAgICAgbTogJ3VuZSBtaW51dGUnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGg6ICd1bmUgaGV1cmUnLFxuICAgICAgICAgICAgaGg6ICclZCBoZXVyZXMnLFxuICAgICAgICAgICAgZDogJ3VuIGpvdXInLFxuICAgICAgICAgICAgZGQ6ICclZCBqb3VycycsXG4gICAgICAgICAgICBNOiAndW4gbW9pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1vaXMnLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyfCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogUmV0dXJuICdlJyB3aGVuIGRheSBvZiBtb250aCA+IDEuIE1vdmUgdGhpcyBjYXNlIGluc2lkZVxuICAgICAgICAgICAgICAgIC8vIGJsb2NrIGZvciBtYXNjdWxpbmUgd29yZHMgYmVsb3cuXG4gICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8zMzc1XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICcnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggbWFzY3VsaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogbW9pcywgdHJpbWVzdHJlLCBqb3VyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBmZW1pbmluZSBncmFtbWF0aWNhbCBnZW5kZXI6IHNlbWFpbmVcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAncmUnIDogJ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZyZW5jaCAoQ2FuYWRhKSBbZnItY2FdXG4vLyEgYXV0aG9yIDogSm9uYXRoYW4gQWJvdXJiaWggOiBodHRwczovL2dpdGh1Yi5jb20vam9uYmNhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgZnJDYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyLWNhJywge1xuICAgICAgICBtb250aHM6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFudi5fZsOpdnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb8O7dF9zZXB0Ll9vY3QuX25vdi5fZMOpYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkaV9sdV9tYV9tZV9qZV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQXVqb3VyZOKAmWh1aSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEZW1haW4gw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSGllciDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtkZXJuaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbnMgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ2lsIHkgYSAlcycsXG4gICAgICAgICAgICBzOiAncXVlbHF1ZXMgc2Vjb25kZXMnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlcycsXG4gICAgICAgICAgICBtOiAndW5lIG1pbnV0ZScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaDogJ3VuZSBoZXVyZScsXG4gICAgICAgICAgICBoaDogJyVkIGhldXJlcycsXG4gICAgICAgICAgICBkOiAndW4gam91cicsXG4gICAgICAgICAgICBkZDogJyVkIGpvdXJzJyxcbiAgICAgICAgICAgIE06ICd1biBtb2lzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9pcycsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6ICclZCBhbnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXJ8ZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBtYXNjdWxpbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBtb2lzLCB0cmltZXN0cmUsIGpvdXJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICdlJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIGZlbWluaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogc2VtYWluZVxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdyZScgOiAnZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZyQ2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRnJlbmNoIChTd2l0emVybGFuZCkgW2ZyLWNoXVxuLy8hIGF1dGhvciA6IEdhc3BhcmQgQnVjaGVyIDogaHR0cHM6Ly9naXRodWIuY29tL2dhc3BhcmRcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBmckNoID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnItY2gnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnZpZXJfZsOpdnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2Fvw7t0X3NlcHRlbWJyZV9vY3RvYnJlX25vdmVtYnJlX2TDqWNlbWJyZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW52Ll9mw6l2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2Fvw7t0X3NlcHQuX29jdC5fbm92Ll9kw6ljLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ2RpX2x1X21hX21lX2plX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBdWpvdXJk4oCZaHVpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0RlbWFpbiDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2Rlcm5pZXIgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFucyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaWwgeSBhICVzJyxcbiAgICAgICAgICAgIHM6ICdxdWVscXVlcyBzZWNvbmRlcycsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGVzJyxcbiAgICAgICAgICAgIG06ICd1bmUgbWludXRlJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoOiAndW5lIGhldXJlJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaGV1cmVzJyxcbiAgICAgICAgICAgIGQ6ICd1biBqb3VyJyxcbiAgICAgICAgICAgIGRkOiAnJWQgam91cnMnLFxuICAgICAgICAgICAgTTogJ3VuIG1vaXMnLFxuICAgICAgICAgICAgTU06ICclZCBtb2lzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbicsXG4gICAgICAgICAgICB5eTogJyVkIGFucycsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcnxlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIG1hc2N1bGluZSBncmFtbWF0aWNhbCBnZW5kZXI6IG1vaXMsIHRyaW1lc3RyZSwgam91clxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJ2UnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggZmVtaW5pbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBzZW1haW5lXG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ3JlJyA6ICdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmckNoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEZyaXNpYW4gW2Z5XVxuLy8hIGF1dGhvciA6IFJvYmluIHZhbiBkZXIgVmxpZXQgOiBodHRwczovL2dpdGh1Yi5jb20vcm9iaW4wdmFuMGRlcjB2XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzU2hvcnRXaXRoRG90cyA9ICdqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21haV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydFdpdGhvdXREb3RzID0gJ2phbl9mZWJfbXJ0X2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApO1xuXG4gICAgdmFyIGZ5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnknLCB7XG4gICAgICAgIG1vbnRoczogJ2phbm5ld2FyaXNfZmVicmV3YXJpc19tYWFydF9hcHJpbF9tYWFpZV9qdW55X2p1bHlfYXVndXN0dXNfc2VwdGltYmVyX29rdG9iZXJfbm92aW1iZXJfZGVzaW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ3NuZWluX21vYW5kZWlfdGlpc2RlaV93b2Fuc2RlaV90b25nZXJzZGVpX2ZyZWVkX3NuZW9uJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc2kuX21vLl90aS5fd28uX3RvLl9mci5fc28uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NpX01vX1RpX1dvX1RvX0ZyX1NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toam9lZCBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb2FybiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdXN0ZXIgb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW8O0ZnLDu25lXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvZXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGx5bicsXG4gICAgICAgICAgICBzOiAnaW4gcGVhciBzZWtvbmRlbicsXG4gICAgICAgICAgICBzczogJyVkIHNla29uZGVuJyxcbiAgICAgICAgICAgIG06ICdpZW4gbWluw7p0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoOiAnaWVuIG9lcmUnLFxuICAgICAgICAgICAgaGg6ICclZCBvZXJlbicsXG4gICAgICAgICAgICBkOiAnaWVuIGRlaScsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE06ICdpZW4gbW9hbm5lJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbW9hbm5lbicsXG4gICAgICAgICAgICB5OiAnaWVuIGppZXInLFxuICAgICAgICAgICAgeXk6ICclZCBqaWVycmVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIG51bWJlciArXG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwID8gJ3N0ZScgOiAnZGUnKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IElyaXNoIG9yIElyaXNoIEdhZWxpYyBbZ2FdXG4vLyEgYXV0aG9yIDogQW5kcsOpIFNpbHZhIDogaHR0cHM6Ly9naXRodWIuY29tL2Fza3B0XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAgICAgJ0VhbsOhaXInLFxuICAgICAgICAgICAgJ0ZlYWJocmEnLFxuICAgICAgICAgICAgJ03DoXJ0YScsXG4gICAgICAgICAgICAnQWlicmXDoW4nLFxuICAgICAgICAgICAgJ0JlYWx0YWluZScsXG4gICAgICAgICAgICAnTWVpdGhlYW1oJyxcbiAgICAgICAgICAgICdJw7ppbCcsXG4gICAgICAgICAgICAnTMO6bmFzYScsXG4gICAgICAgICAgICAnTWXDoW4gRsOzbWhhaXInLFxuICAgICAgICAgICAgJ0RlaXJlYWRoIEbDs21oYWlyJyxcbiAgICAgICAgICAgICdTYW1oYWluJyxcbiAgICAgICAgICAgICdOb2xsYWlnJyxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSBbXG4gICAgICAgICAgICAnRWFuJyxcbiAgICAgICAgICAgICdGZWFiaCcsXG4gICAgICAgICAgICAnTcOhcnQnLFxuICAgICAgICAgICAgJ0FpYicsXG4gICAgICAgICAgICAnQmVhbCcsXG4gICAgICAgICAgICAnTWVpdGgnLFxuICAgICAgICAgICAgJ0nDumlsJyxcbiAgICAgICAgICAgICdMw7puJyxcbiAgICAgICAgICAgICdNLkYuJyxcbiAgICAgICAgICAgICdELkYuJyxcbiAgICAgICAgICAgICdTYW1oJyxcbiAgICAgICAgICAgICdOb2xsJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXMgPSBbXG4gICAgICAgICAgICAnRMOpIERvbWhuYWlnaCcsXG4gICAgICAgICAgICAnRMOpIEx1YWluJyxcbiAgICAgICAgICAgICdEw6kgTcOhaXJ0JyxcbiAgICAgICAgICAgICdEw6kgQ8OpYWRhb2luJyxcbiAgICAgICAgICAgICdEw6lhcmRhb2luJyxcbiAgICAgICAgICAgICdEw6kgaEFvaW5lJyxcbiAgICAgICAgICAgICdEw6kgU2F0aGFpcm4nLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0ID0gWydEb21oJywgJ0x1YW4nLCAnTcOhaXJ0JywgJ0PDqWFkJywgJ0TDqWFyJywgJ0FvaW5lJywgJ1NhdGgnXSxcbiAgICAgICAgd2Vla2RheXNNaW4gPSBbJ0RvJywgJ0x1JywgJ03DoScsICdDw6knLCAnRMOpJywgJ0EnLCAnU2EnXTtcblxuICAgIHZhciBnYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dhJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IHdlZWtkYXlzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzTWluOiB3ZWVrZGF5c01pbixcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJbm5pdSBhZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbcOhcmFjaCBhZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthZ10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJbm7DqSBhZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW8gY2FpdGVdIFthZ10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDsyBzaGluJyxcbiAgICAgICAgICAgIHM6ICdjw7pwbGEgc29pY2luZCcsXG4gICAgICAgICAgICBzczogJyVkIHNvaWNpbmQnLFxuICAgICAgICAgICAgbTogJ27Ds2ltw6lhZCcsXG4gICAgICAgICAgICBtbTogJyVkIG7Ds2ltw6lhZCcsXG4gICAgICAgICAgICBoOiAndWFpciBhbiBjaGxvaWcnLFxuICAgICAgICAgICAgaGg6ICclZCB1YWlyIGFuIGNobG9pZycsXG4gICAgICAgICAgICBkOiAnbMOhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgbMOhJyxcbiAgICAgICAgICAgIE06ICdtw60nLFxuICAgICAgICAgICAgTU06ICclZCBtw61vbm5hJyxcbiAgICAgICAgICAgIHk6ICdibGlhaW4nLFxuICAgICAgICAgICAgeXk6ICclZCBibGlhaW4nLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2QnIDogbnVtYmVyICUgMTAgPT09IDIgPyAnbmEnIDogJ21oJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnYTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTY290dGlzaCBHYWVsaWMgW2dkXVxuLy8hIGF1dGhvciA6IEpvbiBBc2hkb3duIDogaHR0cHM6Ly9naXRodWIuY29tL2pvbmFzaGRvd25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAnQW0gRmFvaWxsZWFjaCcsXG4gICAgICAgICAgICAnQW4gR2VhcnJhbicsXG4gICAgICAgICAgICAnQW0gTcOgcnQnLFxuICAgICAgICAgICAgJ0FuIEdpYmxlYW4nLFxuICAgICAgICAgICAgJ0FuIEPDqGl0ZWFuJyxcbiAgICAgICAgICAgICdBbiB0LcOSZ21oaW9zJyxcbiAgICAgICAgICAgICdBbiB0LUl1Y2hhcicsXG4gICAgICAgICAgICAnQW4gTMO5bmFzdGFsJyxcbiAgICAgICAgICAgICdBbiB0LVN1bHRhaW4nLFxuICAgICAgICAgICAgJ0FuIETDoG1oYWlyJyxcbiAgICAgICAgICAgICdBbiB0LVNhbWhhaW4nLFxuICAgICAgICAgICAgJ0FuIETDuWJobGFjaGQnLFxuICAgICAgICBdLFxuICAgICAgICBtb250aHNTaG9ydCA9IFtcbiAgICAgICAgICAgICdGYW9pJyxcbiAgICAgICAgICAgICdHZWFyJyxcbiAgICAgICAgICAgICdNw6BydCcsXG4gICAgICAgICAgICAnR2libCcsXG4gICAgICAgICAgICAnQ8OoaXQnLFxuICAgICAgICAgICAgJ8OSZ21oJyxcbiAgICAgICAgICAgICdJdWNoJyxcbiAgICAgICAgICAgICdMw7luJyxcbiAgICAgICAgICAgICdTdWx0JyxcbiAgICAgICAgICAgICdEw6BtaCcsXG4gICAgICAgICAgICAnU2FtaCcsXG4gICAgICAgICAgICAnRMO5YmgnLFxuICAgICAgICBdLFxuICAgICAgICB3ZWVrZGF5cyA9IFtcbiAgICAgICAgICAgICdEaWTDsm1obmFpY2gnLFxuICAgICAgICAgICAgJ0RpbHVhaW4nLFxuICAgICAgICAgICAgJ0RpbcOgaXJ0JyxcbiAgICAgICAgICAgICdEaWNpYWRhaW4nLFxuICAgICAgICAgICAgJ0RpYXJkYW9pbicsXG4gICAgICAgICAgICAnRGloYW9pbmUnLFxuICAgICAgICAgICAgJ0Rpc2F0aGFpcm5lJyxcbiAgICAgICAgXSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA9IFsnRGlkJywgJ0RpbCcsICdEaW0nLCAnRGljJywgJ0RpYScsICdEaWgnLCAnRGlzJ10sXG4gICAgICAgIHdlZWtkYXlzTWluID0gWydEw7InLCAnTHUnLCAnTcOgJywgJ0NpJywgJ0FyJywgJ0hhJywgJ1NhJ107XG5cbiAgICB2YXIgZ2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnZCcsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHNTaG9ydCxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiB3ZWVrZGF5c1Nob3J0LFxuICAgICAgICB3ZWVrZGF5c01pbjogd2Vla2RheXNNaW4sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbQW4tZGl1Z2ggYWlnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0EtbcOgaXJlYWNoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthaWddIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbQW4tZMOoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW8gY2hhaWRoXSBbYWlnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2FubiBhbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAnYmhvIGNoaW9ubiAlcycsXG4gICAgICAgICAgICBzOiAnYmVhZ2FuIGRpb2dhbicsXG4gICAgICAgICAgICBzczogJyVkIGRpb2dhbicsXG4gICAgICAgICAgICBtOiAnbWlvbmFpZCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pb25haWRlYW4nLFxuICAgICAgICAgICAgaDogJ3VhaXInLFxuICAgICAgICAgICAgaGg6ICclZCB1YWlyZWFuJyxcbiAgICAgICAgICAgIGQ6ICdsYXRoYScsXG4gICAgICAgICAgICBkZDogJyVkIGxhdGhhJyxcbiAgICAgICAgICAgIE06ICdtw6xvcycsXG4gICAgICAgICAgICBNTTogJyVkIG3DrG9zYW4nLFxuICAgICAgICAgICAgeTogJ2JsaWFkaG5hJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYmxpYWRobmEnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2QnIDogbnVtYmVyICUgMTAgPT09IDIgPyAnbmEnIDogJ21oJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHYWxpY2lhbiBbZ2xdXG4vLyEgYXV0aG9yIDogSnVhbiBHLiBIdXJ0YWRvIDogaHR0cHM6Ly9naXRodWIuY29tL2p1YW5naHVydGFkb1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGdsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ2wnLCB7XG4gICAgICAgIG1vbnRoczogJ3hhbmVpcm9fZmVicmVpcm9fbWFyem9fYWJyaWxfbWFpb194dcOxb194dWxsb19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZWNlbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICd4YW4uX2ZlYi5fbWFyLl9hYnIuX21haS5feHXDsS5feHVsLl9hZ28uX3NldC5fb3V0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZG9taW5nb19sdW5zX21hcnRlc19tw6lyY29yZXNfeG92ZXNfdmVucmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdkb20uX2x1bi5fbWFyLl9tw6lyLl94b3YuX3Zlbi5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fbHVfbWFfbcOpX3hvX3ZlX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3hlICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnw6EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDscOhICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnw6EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6FzJyA6ICdhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW29udGUgJyArICh0aGlzLmhvdXJzKCkgIT09IDEgPyAnw6EnIDogJ2EnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICdbb10gZGRkZCBbcGFzYWRvICcgKyAodGhpcy5ob3VycygpICE9PSAxID8gJ8OhcycgOiAnYScpICsgJ10gTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogZnVuY3Rpb24gKHN0cikge1xuICAgICAgICAgICAgICAgIGlmIChzdHIuaW5kZXhPZigndW4nKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ24nICsgc3RyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VuICcgKyBzdHI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdDogJ2hhaSAlcycsXG4gICAgICAgICAgICBzOiAndW5zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaDogJ3VuaGEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTTogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1biBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLb25rYW5pIERldmFuYWdhcmkgc2NyaXB0IFtnb20tZGV2YV1cbi8vISBhdXRob3IgOiBUaGUgRGlzY292ZXJlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9XaWtpRGlzY292ZXJlclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHM6IFsn4KSl4KWL4KSh4KSv4KS+IOCkuOClheCkleCkguCkoeCkvuCkguCkqOClgCcsICfgpKXgpYvgpKHgpYcg4KS44KWF4KSV4KSC4KShJ10sXG4gICAgICAgICAgICBzczogW251bWJlciArICcg4KS44KWF4KSV4KSC4KSh4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLjgpYXgpJXgpILgpKEnXSxcbiAgICAgICAgICAgIG06IFsn4KSP4KSV4KS+IOCkruCkv+Cko+Ckn+CkvuCkqCcsICfgpI/gpJUg4KSu4KS/4KSo4KWC4KSfJ10sXG4gICAgICAgICAgICBtbTogW251bWJlciArICcg4KSu4KS/4KSj4KSf4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpK7gpL/gpKPgpJ/gpL7gpIInXSxcbiAgICAgICAgICAgIGg6IFsn4KSP4KSV4KS+IOCkteCksOCkvuCkqCcsICfgpI/gpJUg4KS14KSwJ10sXG4gICAgICAgICAgICBoaDogW251bWJlciArICcg4KS14KSw4KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLXgpLDgpL7gpIInXSxcbiAgICAgICAgICAgIGQ6IFsn4KSP4KSV4KS+IOCkpuCkv+CkuOCkvuCkqCcsICfgpI/gpJUg4KSm4KWA4KS4J10sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcg4KSm4KS/4KS44KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpKbgpYDgpLgnXSxcbiAgICAgICAgICAgIE06IFsn4KSP4KSV4KS+IOCkruCljeCkueCkr+CkqOCljeCkr+CkvuCkqCcsICfgpI/gpJUg4KSu4KWN4KS54KSv4KSo4KWLJ10sXG4gICAgICAgICAgICBNTTogW251bWJlciArICcg4KSu4KWN4KS54KSv4KSo4KWN4KSv4KS+4KSo4KWAJywgbnVtYmVyICsgJyDgpK7gpY3gpLngpK/gpKjgpYcnXSxcbiAgICAgICAgICAgIHk6IFsn4KSP4KSV4KS+IOCkteCksOCljeCkuOCkvuCkqCcsICfgpI/gpJUg4KS14KSw4KWN4KS4J10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcg4KS14KSw4KWN4KS44KS+4KSC4KSo4KWAJywgbnVtYmVyICsgJyDgpLXgpLDgpY3gpLjgpL7gpIInXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZ29tRGV2YSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dvbS1kZXZhJywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfgpJzgpL7gpKjgpYfgpLXgpL7gpLDgpYBf4KSr4KWH4KSs4KWN4KSw4KWB4KS14KS+4KSw4KWAX+CkruCkvuCksOCljeCkml/gpI/gpKrgpY3gpLDgpYDgpLJf4KSu4KWHX+CknOClguCkqF/gpJzgpYHgpLLgpK9f4KSR4KSX4KS44KWN4KSfX+CkuOCkquCljeCkn+Clh+CkguCkrOCksF/gpJHgpJXgpY3gpJ/gpYvgpKzgpLBf4KSo4KWL4KS14KWN4KS54KWH4KSC4KSs4KSwX+CkoeCkv+CkuOClh+CkguCkrOCksCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZm9ybWF0OiAn4KSc4KS+4KSo4KWH4KS14KS+4KSw4KWA4KSa4KWN4KSv4KS+X+Ckq+Clh+CkrOCljeCksOClgeCkteCkvuCksOClgOCkmuCljeCkr+Ckvl/gpK7gpL7gpLDgpY3gpJrgpL7gpJrgpY3gpK/gpL5f4KSP4KSq4KWN4KSw4KWA4KSy4KS+4KSa4KWN4KSv4KS+X+CkruClh+Ckr+CkvuCkmuCljeCkr+Ckvl/gpJzgpYLgpKjgpL7gpJrgpY3gpK/gpL5f4KSc4KWB4KSy4KSv4KS+4KSa4KWN4KSv4KS+X+CkkeCkl+CkuOCljeCkn+CkvuCkmuCljeCkr+Ckvl/gpLjgpKrgpY3gpJ/gpYfgpILgpKzgpLDgpL7gpJrgpY3gpK/gpL5f4KSR4KSV4KWN4KSf4KWL4KSs4KSw4KS+4KSa4KWN4KSv4KS+X+CkqOCli+CkteCljeCkueClh+CkguCkrOCksOCkvuCkmuCljeCkr+Ckvl/gpKHgpL/gpLjgpYfgpILgpKzgpLDgpL7gpJrgpY3gpK/gpL4nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvTU1NTShcXHMpK0Rbb0RdPy8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4KSc4KS+4KSo4KWHLl/gpKvgpYfgpKzgpY3gpLDgpYEuX+CkruCkvuCksOCljeCkml/gpI/gpKrgpY3gpLDgpYAuX+CkruClh1/gpJzgpYLgpKhf4KSc4KWB4KSyLl/gpJHgpJcuX+CkuOCkquCljeCkn+Clh+Ckgi5f4KSR4KSV4KWN4KSf4KWLLl/gpKjgpYvgpLXgpY3gpLngpYfgpIIuX+CkoeCkv+CkuOClh+Ckgi4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4KSG4KSv4KSk4KS+4KSwX+CkuOCli+CkruCkvuCksF/gpK7gpILgpJfgpLPgpL7gpLBf4KSs4KWB4KSn4KS14KS+4KSwX+CkrOCkv+CksOClh+CkuOCljeCkpOCkvuCksF/gpLjgpYHgpJXgpY3gpLDgpL7gpLBf4KS24KWH4KSo4KS14KS+4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KSG4KSv4KSkLl/gpLjgpYvgpK4uX+CkruCkguCkl+Cksy5f4KSs4KWB4KSnLl/gpKzgpY3gpLDgpYfgpLjgpY3gpKQuX+CkuOClgeCkleCljeCksC5f4KS24KWH4KSoLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgpIZf4KS44KWLX+CkruCkgl/gpKzgpYFf4KSs4KWN4KSw4KWHX+CkuOClgV/gpLbgpYcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIFvgpLXgpL7gpJzgpKTgpL7gpIJdJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcyBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBMOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEEgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBEbywgWVlZWSwgQSBoOm1tIFvgpLXgpL7gpJzgpKTgpL7gpIJdJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQsIEQgTU1NIFlZWVksIEEgaDptbSBb4KS14KS+4KSc4KSk4KS+4KSCXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CkhuCkr+CknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgpKvgpL7gpLLgpY3gpK/gpL7gpIJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+Ckq+ClgeCkoeCksuCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CkleCkvuCksl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KSr4KS+4KSf4KSy4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCkhuCkpuClgOCkgicsXG4gICAgICAgICAgICBzOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3M6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjgpLXgpYfgpLApLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIHRoZSBvcmRpbmFsICfgpLXgpYfgpLAnIG9ubHkgYXBwbGllcyB0byBkYXkgb2YgdGhlIG1vbnRoXG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn4KS14KWH4KSwJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpOClgHzgpLjgpJXgpL7gpLPgpYDgpIJ84KSm4KSo4KSq4KS+4KSw4KS+4KSCfOCkuOCkvuCkguCknOClhy8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOClgCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkleCkvuCks+ClgOCkgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpKjgpKrgpL7gpLDgpL7gpIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPiAxMiA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS44KS+4KSC4KSc4KWHJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOClgCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KSV4KS+4KSz4KWA4KSCJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKbgpKjgpKrgpL7gpLDgpL7gpIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkvuCkguCknOClhyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KWAJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnb21EZXZhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEtvbmthbmkgTGF0aW4gc2NyaXB0IFtnb20tbGF0bl1cbi8vISBhdXRob3IgOiBUaGUgRGlzY292ZXJlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9XaWtpRGlzY292ZXJlclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHM6IFsndGhvZGRlYSBzZWtvbmRhbW5pJywgJ3Rob2RkZSBzZWtvbmQnXSxcbiAgICAgICAgICAgIHNzOiBbbnVtYmVyICsgJyBzZWtvbmRhbW5pJywgbnVtYmVyICsgJyBzZWtvbmQnXSxcbiAgICAgICAgICAgIG06IFsnZWthIG1pbnRhbicsICdlayBtaW51dCddLFxuICAgICAgICAgICAgbW06IFtudW1iZXIgKyAnIG1pbnRhbW5pJywgbnVtYmVyICsgJyBtaW50YW0nXSxcbiAgICAgICAgICAgIGg6IFsnZWthIHZvcmFuJywgJ2VrIHZvciddLFxuICAgICAgICAgICAgaGg6IFtudW1iZXIgKyAnIHZvcmFtbmknLCBudW1iZXIgKyAnIHZvcmFtJ10sXG4gICAgICAgICAgICBkOiBbJ2VrYSBkaXNhbicsICdlayBkaXMnXSxcbiAgICAgICAgICAgIGRkOiBbbnVtYmVyICsgJyBkaXNhbW5pJywgbnVtYmVyICsgJyBkaXMnXSxcbiAgICAgICAgICAgIE06IFsnZWthIG1ob2luZWFuJywgJ2VrIG1ob2lubyddLFxuICAgICAgICAgICAgTU06IFtudW1iZXIgKyAnIG1ob2luZWFtbmknLCBudW1iZXIgKyAnIG1ob2luZSddLFxuICAgICAgICAgICAgeTogWydla2Egdm9yc2FuJywgJ2VrIHZvcm9zJ10sXG4gICAgICAgICAgICB5eTogW251bWJlciArICcgdm9yc2FtbmknLCBudW1iZXIgKyAnIHZvcnNhbSddLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBnb21MYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ29tLWxhdG4nLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ0phbmVyX0ZlYnJlcl9NYXJzX0FicmlsX01haV9KdW5fSnVsYWlfQWdvc3RfU2V0ZW1icl9PdHVicl9Ob3ZlbWJyX0RlemVtYnInLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ0phbmVyYWNoZWFfRmVicmVyYWNoZWFfTWFyc2FjaGVhX0FicmlsYWNoZWFfTWFpYWNoZWFfSnVuYWNoZWFfSnVsYWlhY2hlYV9BZ29zdGFjaGVhX1NldGVtYnJhY2hlYV9PdHVicmFjaGVhX05vdmVtYnJhY2hlYV9EZXplbWJyYWNoZWEnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvTU1NTShcXHMpK0Rbb0RdPy8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuLl9GZWIuX01hcnNfQWJyLl9NYWlfSnVuX0p1bC5fQWdvLl9TZXQuX090dS5fTm92Ll9EZXouJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogXCJBaXRhcl9Tb21hcl9Nb25nbGxhcl9CdWRodmFyX0JpcmVzdGFyX1N1a3Jhcl9Tb24ndmFyXCIuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0FpdC5fU29tLl9Nb24uX0J1ZC5fQnJlLl9TdWsuX1Nvbi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQWlfU21fTW9fQnVfQnJfU3VfU24nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIFt2YXp0YV0nLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBBIGg6bW0gW3ZhenRhXScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgTU1NTSBEbywgWVlZWSwgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRCBNTU0gWVlZWSwgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBaXpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRmFsZWFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tGdWRkbG9dIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLYWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0ZhdHRsb10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhZGltJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGUgb3JkaW5hbCAnZXInIG9ubHkgYXBwbGllcyB0byBkYXkgb2YgdGhlIG1vbnRoXG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnZXInO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcmF0aXxzb2thbGxpbXxkb25wYXJhbXxzYW5qZS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3JhdGknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzb2thbGxpbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdkb25wYXJhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+IDEyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzYW5qZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYXRpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb2thbGxpbSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZG9ucGFyYW0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NhbmplJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYXRpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBnb21MYXRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEd1amFyYXRpIFtndV1cbi8vISBhdXRob3IgOiBLYXVzaGlrIFRoYW5raSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9LYXVzaGlrMTk4N1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CrpycsXG4gICAgICAgICAgICAnMic6ICfgq6gnLFxuICAgICAgICAgICAgJzMnOiAn4KupJyxcbiAgICAgICAgICAgICc0JzogJ+CrqicsXG4gICAgICAgICAgICAnNSc6ICfgq6snLFxuICAgICAgICAgICAgJzYnOiAn4KusJyxcbiAgICAgICAgICAgICc3JzogJ+CrrScsXG4gICAgICAgICAgICAnOCc6ICfgq64nLFxuICAgICAgICAgICAgJzknOiAn4KuvJyxcbiAgICAgICAgICAgICcwJzogJ+CrpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgq6cnOiAnMScsXG4gICAgICAgICAgICAn4KuoJzogJzInLFxuICAgICAgICAgICAgJ+CrqSc6ICczJyxcbiAgICAgICAgICAgICfgq6onOiAnNCcsXG4gICAgICAgICAgICAn4KurJzogJzUnLFxuICAgICAgICAgICAgJ+CrrCc6ICc2JyxcbiAgICAgICAgICAgICfgq60nOiAnNycsXG4gICAgICAgICAgICAn4KuuJzogJzgnLFxuICAgICAgICAgICAgJ+Crryc6ICc5JyxcbiAgICAgICAgICAgICfgq6YnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgZ3UgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdndScsIHtcbiAgICAgICAgbW9udGhzOiAn4Kqc4Kq+4Kqo4KuN4Kqv4KuB4KqG4Kqw4KuAX+Cqq+Crh+CqrOCrjeCqsOCrgeCqhuCqsOCrgF/gqq7gqr7gqrDgq43gqppf4KqP4Kqq4KuN4Kqw4Kq/4KqyX+CqruCrh1/gqpzgq4Lgqqhf4Kqc4KuB4Kqy4Kq+4KqIX+CqkeCql+CquOCrjeCqn1/gqrjgqqrgq43gqp/gq4fgqq7gq43gqqzgqrBf4KqR4KqV4KuN4Kqf4KuN4Kqs4KqwX+CqqOCqteCrh+CqruCrjeCqrOCqsF/gqqHgqr/gqrjgq4fgqq7gq43gqqzgqrAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Kqc4Kq+4Kqo4KuN4Kqv4KuBLl/gqqvgq4fgqqzgq43gqrDgq4EuX+CqruCqvuCqsOCrjeCqml/gqo/gqqrgq43gqrDgqr8uX+CqruCrh1/gqpzgq4Lgqqhf4Kqc4KuB4Kqy4Kq+Ll/gqpHgqpcuX+CquOCqquCrjeCqn+Crhy5f4KqR4KqV4KuN4Kqf4KuNLl/gqqjgqrXgq4cuX+CqoeCqv+CquOCrhy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4Kqw4Kq14Kq/4Kq14Kq+4KqwX+CquOCri+CqruCqteCqvuCqsF/gqq7gqoLgqpfgqrPgqrXgqr7gqrBf4Kqs4KuB4Kqn4KuN4Kq14Kq+4KqwX+Cql+CrgeCqsOCrgeCqteCqvuCqsF/gqrbgq4HgqpXgq43gqrDgqrXgqr7gqrBf4Kq24Kqo4Kq/4Kq14Kq+4KqwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4Kqw4Kq14Kq/X+CquOCri+Cqrl/gqq7gqoLgqpfgqrNf4Kqs4KuB4Kqn4KuNX+Cql+CrgeCqsOCrgV/gqrbgq4HgqpXgq43gqrBf4Kq24Kqo4Kq/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CqsF/gqrjgq4tf4Kqu4KqCX+CqrOCrgV/gqpfgq4Ff4Kq24KuBX+Cqticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KqG4KqcXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+Cql+Cqh+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Kqq4Kq+4Kqb4Kqy4Kq+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCqruCqvicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4Kqq4Kq54KuH4Kqy4Kq+JyxcbiAgICAgICAgICAgIHM6ICfgqoXgqq7gq4HgqpUg4Kqq4Kqz4KuLJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4Kq44KuH4KqV4KqC4KqhJyxcbiAgICAgICAgICAgIG06ICfgqo/gqpUg4Kqu4Kq/4Kqo4Kq/4KqfJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4Kqu4Kq/4Kqo4Kq/4KqfJyxcbiAgICAgICAgICAgIGg6ICfgqo/gqpUg4KqV4Kqy4Kq+4KqVJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KqV4Kqy4Kq+4KqVJyxcbiAgICAgICAgICAgIGQ6ICfgqo/gqpUg4Kqm4Kq/4Kq14Kq4JyxcbiAgICAgICAgICAgIGRkOiAnJWQg4Kqm4Kq/4Kq14Kq4JyxcbiAgICAgICAgICAgIE06ICfgqo/gqpUg4Kqu4Kq54Kq/4Kqo4KuLJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4Kqu4Kq54Kq/4Kqo4KuLJyxcbiAgICAgICAgICAgIHk6ICfgqo/gqpUg4Kq14Kqw4KuN4Kq3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Kq14Kqw4KuN4Kq3JyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Crp+CrqOCrqeCrquCrq+CrrOCrreCrruCrr+Crpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR3VqYXJhdGkgbm90YXRpb24gZm9yIG1lcmlkaWVtcyBhcmUgcXVpdGUgZnV6enkgaW4gcHJhY3RpY2UuIFdoaWxlIHRoZXJlIGV4aXN0c1xuICAgICAgICAvLyBhIHJpZ2lkIG5vdGlvbiBvZiBhICdQYWhhcicgaXQgaXMgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gR3VqYXJhdGkuXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gqrDgqr7gqqR84Kqs4Kqq4KuL4KqwfOCquOCqteCqvuCqsHzgqrjgqr7gqoLgqpwvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgqrDgqr7gqqQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqrjgqrXgqr7gqrAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kqs4Kqq4KuL4KqwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqrjgqr7gqoLgqpwnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kqw4Kq+4KqkJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrjgqrXgqr7gqrAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CqrOCqquCri+CqsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kq44Kq+4KqC4KqcJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqrDgqr7gqqQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ3U7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSGVicmV3IFtoZV1cbi8vISBhdXRob3IgOiBUb21lciBDb2hlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS90b21lclxuLy8hIGF1dGhvciA6IE1vc2hlIFNpbWFudG92IDogaHR0cHM6Ly9naXRodWIuY29tL0RldmVsb3BtZW50SUxcbi8vISBhdXRob3IgOiBUYWwgQXRlciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9UYWxBdGVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaGUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdoZScsIHtcbiAgICAgICAgbW9udGhzOiAn15nXoNeV15DXqF/XpNeR16jXldeQ16hf157XqNelX9eQ16TXqNeZ15xf157XkNeZX9eZ15XXoNeZX9eZ15XXnNeZX9eQ15XXkteV16HXmF/Xodek15jXnteR16hf15DXlden15jXldeR16hf16DXldeR157XkdeoX9eT16bXnteR16gnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn15nXoNeV17Nf16TXkdeo17Nf157XqNelX9eQ16TXqNezX9ee15DXmV/XmdeV16DXmV/XmdeV15zXmV/XkNeV15LXs1/Xodek15jXs1/XkNeV16fXs1/XoNeV15HXs1/Xk9em157Xsycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfXqNeQ16nXldefX9ep16DXmV/Xqdec15nXqdeZX9eo15HXmdei15lf15fXnteZ16nXmV/XqdeZ16nXmV/XqdeR16onLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfXkNezX9eR17Nf15LXs1/Xk9ezX9eU17Nf15XXs1/XqdezJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9eQX9eRX9eSX9eTX9eUX9eVX9epJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgW9eRXU1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIFvXkV1NTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgW9eRXU1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsOiAnRC9NL1lZWVknLFxuICAgICAgICAgICAgbGw6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIGxsbDogJ0QgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9eU15nXldedINeR1r5dTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vXnteX16gg15HWvl1MVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9eR16nXoteUXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9eQ16rXnteV15wg15HWvl1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vXkdeZ15XXnV0gZGRkZCBb15TXkNeX16jXldefINeR16nXoteUXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9eR16LXldeTICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfXnNek16DXmSAlcycsXG4gICAgICAgICAgICBzOiAn157Xodek16gg16nXoNeZ15XXqicsXG4gICAgICAgICAgICBzczogJyVkINep16DXmdeV16onLFxuICAgICAgICAgICAgbTogJ9eT16fXlCcsXG4gICAgICAgICAgICBtbTogJyVkINeT16fXldeqJyxcbiAgICAgICAgICAgIGg6ICfXqdei15QnLFxuICAgICAgICAgICAgaGg6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn16nXoteq15nXmdedJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoteV16onO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGQ6ICfXmdeV150nLFxuICAgICAgICAgICAgZGQ6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn15nXldee15nXmdedJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg15nXnteZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE06ICfXl9eV15PXqScsXG4gICAgICAgICAgICBNTTogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfXl9eV15PXqdeZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINeX15XXk9ep15nXnSc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeTogJ9ep16DXlCcsXG4gICAgICAgICAgICB5eTogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfXqdeg16rXmdeZ150nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyICUgMTAgPT09IDAgJiYgbnVtYmVyICE9PSAxMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXqdeg15QnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDXqdeg15nXnSc7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv15DXl9eUXCLXpnzXnNek16DXlFwi16Z815DXl9eo15kg15TXpteU16jXmdeZ151815zXpNeg15kg15TXpteU16jXmdeZ151815zXpNeg15XXqiDXkdeV16fXqHzXkdeR15XXp9eofNeR16LXqNeRL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNeQ15fXlFwi16Z815DXl9eo15kg15TXpteU16jXmdeZ151815HXoteo15EpJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9ec16TXoNeV16og15HXlden16gnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9eR15HXlden16gnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfXnNek16DXlFwi16YnIDogJ9ec16TXoNeZINeU16bXlNeo15nXmdedJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn15DXl9eUXCLXpicgOiAn15DXl9eo15kg15TXpteU16jXmdeZ150nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9eR16LXqNeRJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBoZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBIaW5kaSBbaGldXG4vLyEgYXV0aG9yIDogTWF5YW5rIFNpbmdoYWwgOiBodHRwczovL2dpdGh1Yi5jb20vbWF5YW5rc2luZ2hhbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+ClpycsXG4gICAgICAgICAgICAnMic6ICfgpagnLFxuICAgICAgICAgICAgJzMnOiAn4KWpJyxcbiAgICAgICAgICAgICc0JzogJ+ClqicsXG4gICAgICAgICAgICAnNSc6ICfgpasnLFxuICAgICAgICAgICAgJzYnOiAn4KWsJyxcbiAgICAgICAgICAgICc3JzogJ+ClrScsXG4gICAgICAgICAgICAnOCc6ICfgpa4nLFxuICAgICAgICAgICAgJzknOiAn4KWvJyxcbiAgICAgICAgICAgICcwJzogJ+ClpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgpacnOiAnMScsXG4gICAgICAgICAgICAn4KWoJzogJzInLFxuICAgICAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgICAgICfgpaonOiAnNCcsXG4gICAgICAgICAgICAn4KWrJzogJzUnLFxuICAgICAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgICAgICfgpa0nOiAnNycsXG4gICAgICAgICAgICAn4KWuJzogJzgnLFxuICAgICAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgICAgICfgpaYnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgaGkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdoaScsIHtcbiAgICAgICAgbW9udGhzOiAn4KSc4KSo4KS14KSw4KWAX+Ckq+CkvOCksOCkteCksOClgF/gpK7gpL7gpLDgpY3gpJpf4KSF4KSq4KWN4KSw4KWI4KSyX+CkruCkiF/gpJzgpYLgpKhf4KSc4KWB4KSy4KS+4KSIX+CkheCkl+CkuOCljeCkpF/gpLjgpL/gpKTgpK7gpY3gpKzgpLBf4KSF4KSV4KWN4KSf4KWC4KSs4KSwX+CkqOCkteCkruCljeCkrOCksF/gpKbgpL/gpLjgpK7gpY3gpKzgpLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4KSc4KSoLl/gpKvgpLzgpLAuX+CkruCkvuCksOCljeCkml/gpIXgpKrgpY3gpLDgpYguX+CkruCkiF/gpJzgpYLgpKhf4KSc4KWB4KSyLl/gpIXgpJcuX+CkuOCkv+CkpC5f4KSF4KSV4KWN4KSf4KWCLl/gpKjgpLUuX+CkpuCkv+CkuC4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4KSw4KS14KS/4KS14KS+4KSwX+CkuOCli+CkruCkteCkvuCksF/gpK7gpILgpJfgpLLgpLXgpL7gpLBf4KSs4KWB4KSn4KS14KS+4KSwX+Ckl+ClgeCksOClguCkteCkvuCksF/gpLbgpYHgpJXgpY3gpLDgpLXgpL7gpLBf4KS24KSo4KS/4KS14KS+4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KSw4KS14KS/X+CkuOCli+Ckrl/gpK7gpILgpJfgpLJf4KSs4KWB4KSnX+Ckl+ClgeCksOClgl/gpLbgpYHgpJXgpY3gpLBf4KS24KSo4KS/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CksF/gpLjgpYtf4KSu4KSCX+CkrOClgV/gpJfgpYFf4KS24KWBX+Ckticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KSG4KScXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CkleCksl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CkleCksl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KSq4KS/4KSb4KSy4KWHXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOCkruClh+CkgicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4KSq4KS54KSy4KWHJyxcbiAgICAgICAgICAgIHM6ICfgpJXgpYHgpJsg4KS54KWAIOCkleCljeCkt+CkoycsXG4gICAgICAgICAgICBzczogJyVkIOCkuOClh+CkleCkguCkoScsXG4gICAgICAgICAgICBtOiAn4KSP4KSVIOCkruCkv+CkqOCknycsXG4gICAgICAgICAgICBtbTogJyVkIOCkruCkv+CkqOCknycsXG4gICAgICAgICAgICBoOiAn4KSP4KSVIOCkmOCkguCkn+CkvicsXG4gICAgICAgICAgICBoaDogJyVkIOCkmOCkguCkn+ClhycsXG4gICAgICAgICAgICBkOiAn4KSP4KSVIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBNOiAn4KSP4KSVIOCkruCkueClgOCkqOClhycsXG4gICAgICAgICAgICBNTTogJyVkIOCkruCkueClgOCkqOClhycsXG4gICAgICAgICAgICB5OiAn4KSP4KSVIOCkteCksOCljeCktycsXG4gICAgICAgICAgICB5eTogJyVkIOCkteCksOCljeCktycsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgpafgpajgpangpargpavgpazgpa3gpa7gpa/gpaZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEhpbmRpIG5vdGF0aW9uIGZvciBtZXJpZGllbXMgYXJlIHF1aXRlIGZ1enp5IGluIHByYWN0aWNlLiBXaGlsZSB0aGVyZSBleGlzdHNcbiAgICAgICAgLy8gYSByaWdpZCBub3Rpb24gb2YgYSAnUGFoYXInIGl0IGlzIG5vdCB1c2VkIGFzIHJpZ2lkbHkgaW4gbW9kZXJuIEhpbmRpLlxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSkfOCkuOClgeCkrOCkuXzgpKbgpYvgpKrgpLngpLB84KS24KS+4KSuLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4KSw4KS+4KSkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS44KWB4KSs4KS5Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkpuCli+CkquCkueCksCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS24KS+4KSuJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KWB4KSs4KS5JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKbgpYvgpKrgpLngpLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CktuCkvuCkric7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhpO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IENyb2F0aWFuIFtocl1cbi8vISBhdXRob3IgOiBCb2phbiBNYXJrb3ZpxIcgOiBodHRwczovL2dpdGh1Yi5jb20vYm1hcmtvdmljXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRuYSBtaW51dGEnIDogJ2plZG5lIG1pbnV0ZSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkYW4gc2F0JyA6ICdqZWRub2cgc2F0YSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2Rhbic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5lJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaHIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdocicsIHtcbiAgICAgICAgbW9udGhzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdzaWplxI1uamFfdmVsamHEjWVfb8W+dWprYV90cmF2bmphX3N2aWJuamFfbGlwbmphX3NycG5qYV9rb2xvdm96YV9ydWpuYV9saXN0b3BhZGFfc3R1ZGVub2dhX3Byb3NpbmNhJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnc2lqZcSNYW5qX3ZlbGphxI1hX2/FvnVqYWtfdHJhdmFual9zdmliYW5qX2xpcGFual9zcnBhbmpfa29sb3Zvel9ydWphbl9saXN0b3BhZF9zdHVkZW5pX3Byb3NpbmFjJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnc2lqLl92ZWxqLl9vxb51Ll90cmEuX3N2aS5fbGlwLl9zcnAuX2tvbC5fcnVqLl9saXMuX3N0dS5fcHJvLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3V0by5fc3JpLl/EjWV0Ll9wZXQuX3N1Yi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3JfxI1lX3BlX3N1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0RvIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEbyBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRG8gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3N1dHJhIHVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZXIgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbcHJvxaFsaV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzOiAncGFyIHNla3VuZGknLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ2RhbicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ21qZXNlYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ2dvZGludScsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGhyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEh1bmdhcmlhbiBbaHVdXG4vLyEgYXV0aG9yIDogQWRhbSBCcnVubmVyIDogaHR0cHM6Ly9naXRodWIuY29tL2FkYW1icnVubmVyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgd2Vla0VuZGluZ3MgPSAndmFzw6FybmFwIGjDqXRmxZFuIGtlZGRlbiBzemVyZMOhbiBjc8O8dMO2cnTDtmvDtm4gcMOpbnRla2VuIHN6b21iYXRvbicuc3BsaXQoXG4gICAgICAgICcgJ1xuICAgICk7XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgbnVtID0gbnVtYmVyO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlIHx8IHdpdGhvdXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgPyAnbsOpaMOhbnkgbcOhc29kcGVyYydcbiAgICAgICAgICAgICAgICAgICAgOiAnbsOpaMOhbnkgbcOhc29kcGVyY2UnO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeClcbiAgICAgICAgICAgICAgICAgICAgPyAnIG3DoXNvZHBlcmMnXG4gICAgICAgICAgICAgICAgICAgIDogJyBtw6Fzb2RwZXJjZSc7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgcGVyYycgOiAnIHBlcmNlJyk7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBwZXJjJyA6ICcgcGVyY2UnKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDs3JhJyA6ICcgw7Nyw6FqYScpO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw7NyYScgOiAnIMOzcsOhamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBuYXAnIDogJyBuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgbmFwJyA6ICcgbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBow7NuYXAnIDogJyBow7NuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgaMOzbmFwJyA6ICcgaMOzbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDqXYnIDogJyDDqXZlJyk7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDqXYnIDogJyDDqXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWVrKGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoaXNGdXR1cmUgPyAnJyA6ICdbbcO6bHRdICcpICtcbiAgICAgICAgICAgICdbJyArXG4gICAgICAgICAgICB3ZWVrRW5kaW5nc1t0aGlzLmRheSgpXSArXG4gICAgICAgICAgICAnXSBMVFsta29yXSdcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgaHUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdodScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudcOhcl9mZWJydcOhcl9tw6FyY2l1c1/DoXByaWxpc19tw6FqdXNfasO6bml1c19qw7psaXVzX2F1Z3VzenR1c19zemVwdGVtYmVyX29rdMOzYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbl9mZWJfbcOhcmNfw6Fwcl9tw6FqX2rDum5fasO6bF9hdWdfc3plcHRfb2t0X25vdl9kZWMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAndmFzw6FybmFwX2jDqXRmxZFfa2VkZF9zemVyZGFfY3PDvHTDtnJ0w7ZrX3DDqW50ZWtfc3pvbWJhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3Zhc19ow6l0X2tlZGRfc3plX2Nzw7x0X3DDqW5fc3pvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3ZfaF9rX3N6ZV9jc19wX3N6bycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZLk1NLkRELicsXG4gICAgICAgICAgICBMTDogJ1lZWVkuIE1NTU0gRC4nLFxuICAgICAgICAgICAgTExMOiAnWVlZWS4gTU1NTSBELiBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdZWVlZLiBNTU1NIEQuLCBkZGRkIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZGV8ZHUvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDEpLnRvTG93ZXJDYXNlKCkgPT09ICd1JztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA9PT0gdHJ1ZSA/ICdkZScgOiAnREUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA9PT0gdHJ1ZSA/ICdkdScgOiAnRFUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1ttYV0gTFRbLWtvcl0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tob2xuYXBdIExUWy1rb3JdJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdlZWsuY2FsbCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3RlZ25hcF0gTFRbLWtvcl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Vlay5jYWxsKHRoaXMsIGZhbHNlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIG3Dumx2YScsXG4gICAgICAgICAgICBwYXN0OiAnJXMnLFxuICAgICAgICAgICAgczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGh1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEFybWVuaWFuIFtoeS1hbV1cbi8vISBhdXRob3IgOiBBcm1lbmRhcmFieWFuIDogaHR0cHM6Ly9naXRodWIuY29tL2FybWVuZGFyYWJ5YW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBoeUFtID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHktYW0nLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn1bDVuNaC1bbVvtWh1oDVq1/Wg9Wl1b/WgNW+1aHWgNWrX9W01aHWgNW/1atf1aHVutaA1avVrNWrX9W01aHVtdWr1b3Vq1/VsNW41oLVttWr1b3Vq1/VsNW41oLVrNWr1b3Vq1/WhdWj1bjVvdW/1bjVvdWrX9W91aXVutW/1aXVtNWi1aXWgNWrX9Ww1bjVr9W/1aXVtNWi1aXWgNWrX9W21bjVtdWl1bTVotWl1oDVq1/VpNWl1a/Vv9Wl1bTVotWl1oDVqycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9Ww1bjWgtW21b7VodaAX9aD1aXVv9aA1b7VodaAX9W01aHWgNW/X9Wh1brWgNWr1axf1bTVodW11avVvV/VsNW41oLVttWr1b1f1bDVuNaC1azVq9W9X9aF1aPVuNW91b/VuNW9X9W91aXVutW/1aXVtNWi1aXWgF/VsNW41a/Vv9Wl1bTVotWl1oBf1bbVuNW11aXVtNWi1aXWgF/VpNWl1a/Vv9Wl1bTVotWl1oAnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfVsNW21b5f1oPVv9aAX9W01oDVv1/VodW61oBf1bTVtdW9X9Ww1bbVvV/VsNWs1b1f1oXVo9W9X9W91brVv1/VsNWv1b9f1bbVtNWiX9Wk1a/Vvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfVr9Wr1oDVodWv1atf1aXWgNWv1bjWgtW31aHVotWp1atf1aXWgNWl1oTVt9Wh1aLVqdWrX9W51bjWgNWl1oTVt9Wh1aLVqdWrX9Ww1avVttWj1bfVodWi1anVq1/VuNaC1oDVotWh1alf1bfVodWi1aHVqScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Wv1oDVr1/VpdaA1a9f1aXWgNaEX9W51oDWhF/VsNW21aNf1bjWgtaA1aJf1bfVotWpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Wv1oDVr1/VpdaA1a9f1aXWgNaEX9W51oDWhF/VsNW21aNf1bjWgtaA1aJf1bfVotWpJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZINWpLicsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSDVqS4sIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSDVqS4sIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb1aHVtdW91oXWgF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vVvtWh1bLVqF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vVpdaA1aXVr10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW9aF1oDVqCDVqtWh1bTVqF0gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdb1aHVttaB1aHVrl0gZGRkZCBb1oXWgNWoINWq1aHVtNWoXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDVsNWl1b/VuCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMg1aHVvNWh1bsnLFxuICAgICAgICAgICAgczogJ9W01asg1oTVodW21asg1b7VodW11oDVr9W11aHVticsXG4gICAgICAgICAgICBzczogJyVkINW+1aHVtdaA1a/VtdWh1bYnLFxuICAgICAgICAgICAgbTogJ9aA1bjVutWlJyxcbiAgICAgICAgICAgIG1tOiAnJWQg1oDVuNW61aUnLFxuICAgICAgICAgICAgaDogJ9Wq1aHVtCcsXG4gICAgICAgICAgICBoaDogJyVkINWq1aHVtCcsXG4gICAgICAgICAgICBkOiAn1oXWgCcsXG4gICAgICAgICAgICBkZDogJyVkINaF1oAnLFxuICAgICAgICAgICAgTTogJ9Wh1bTVq9W9JyxcbiAgICAgICAgICAgIE1NOiAnJWQg1aHVtNWr1b0nLFxuICAgICAgICAgICAgeTogJ9W/1aHWgNWrJyxcbiAgICAgICAgICAgIHl5OiAnJWQg1b/VodaA1asnLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv1aPVq9W31aXWgNW+1aF81aHVvNWh1b7VuNW/1b7VoXzWgdWl1oDVpdWv1b7VoXzVpdaA1aXVr9W41bXVodW2LyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o1oHVpdaA1aXVr9W+1aF81aXWgNWl1a/VuNW11aHVtikkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Wj1avVt9Wl1oDVvtWhJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfVodW81aHVvtW41b/VvtWhJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfWgdWl1oDVpdWv1b7VoSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1aXWgNWl1a/VuNW11aHVtic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfXxcXGR7MSwyfS0o1avVtnzWgNWkKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERG8nOlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Vq9W2JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3WgNWkJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHlBbTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBJbmRvbmVzaWFuIFtpZF1cbi8vISBhdXRob3IgOiBNb2hhbW1hZCBTYXRyaW8gVXRvbW8gOiBodHRwczovL2dpdGh1Yi5jb20vdHlva1xuLy8hIHJlZmVyZW5jZTogaHR0cDovL2lkLndpa2lzb3VyY2Uub3JnL3dpa2kvUGVkb21hbl9VbXVtX0VqYWFuX0JhaGFzYV9JbmRvbmVzaWFfeWFuZ19EaXNlbXB1cm5ha2FuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaWQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpZCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVuaV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01laV9KdW5fSnVsX0FndF9TZXBfT2t0X05vdl9EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnTWluZ2d1X1NlbmluX1NlbGFzYV9SYWJ1X0thbWlzX0p1bWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTWluX1Nlbl9TZWxfUmFiX0thbV9KdW1fU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ01nX1NuX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXxzaWFuZ3xzb3JlfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncGFnaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzaWFuZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc29yZScgfHwgbWVyaWRpZW0gPT09ICdtYWxhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NpYW5nJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc29yZSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXJpIGluaSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tCZXNvayBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLZW1hcmluIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xhbHUgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnZGFsYW0gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHlhbmcgbGFsdScsXG4gICAgICAgICAgICBzOiAnYmViZXJhcGEgZGV0aWsnLFxuICAgICAgICAgICAgc3M6ICclZCBkZXRpaycsXG4gICAgICAgICAgICBtOiAnc2VtZW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1lbml0JyxcbiAgICAgICAgICAgIGg6ICdzZWphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgaGFyaScsXG4gICAgICAgICAgICBNOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhaHVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFodW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaWQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSWNlbGFuZGljIFtpc11cbi8vISBhdXRob3IgOiBIaW5yaWsgw5ZybiBTaWd1csOwc3NvbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oaW5yaWtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIGlmIChuICUgMTAwID09PSAxMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAobiAlIDEwID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlXG4gICAgICAgICAgICAgICAgICAgID8gJ25va2tyYXIgc2Vrw7puZHVyJ1xuICAgICAgICAgICAgICAgICAgICA6ICdub2trcnVtIHNla8O6bmR1bSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnc2Vrw7puZHVyJyA6ICdzZWvDum5kdW0nKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Nla8O6bmRhJztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ23DrW7DunRhJyA6ICdtw61uw7p0dSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtw61uw7p0dXInIDogJ23DrW7DunR1bScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOtbsO6dGEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DrW7DunR1JztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArXG4gICAgICAgICAgICAgICAgICAgICAgICAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2tsdWtrdXN0dW5kaXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAna2x1a2t1c3R1bmR1bScpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAna2x1a2t1c3R1bmQnO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkYWd1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdkYWcnIDogJ2RlZ2knO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkYWdhcic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdkYWdhJyA6ICdkw7ZndW0nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkYWd1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaXNGdXR1cmUgPyAnZGFnJyA6ICdkZWdpJyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ23DoW51w7B1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtw6FudcOwJyA6ICdtw6FudcOwaSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DoW51w7Bpcic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdtw6FudcOwaScgOiAnbcOhbnXDsHVtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOhbnXDsHVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdtw6FudcOwJyA6ICdtw6FudcOwaScpO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJpJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ8OhcicgOiAnw6FydW0nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ8OhcicgOiAnw6FyaScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaXMnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbsO6YXJfZmVicsO6YXJfbWFyc19hcHLDrWxfbWHDrV9qw7puw61fasO6bMOtX8OhZ8O6c3Rfc2VwdGVtYmVyX29rdMOzYmVyX27Ds3ZlbWJlcl9kZXNlbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcl9hcHJfbWHDrV9qw7puX2rDumxfw6Fnw7pfc2VwX29rdF9uw7N2X2Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdzdW5udWRhZ3VyX23DoW51ZGFndXJfw75yacOwanVkYWd1cl9tacOwdmlrdWRhZ3VyX2ZpbW10dWRhZ3VyX2bDtnN0dWRhZ3VyX2xhdWdhcmRhZ3VyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnc3VuX23DoW5fw75yaV9tacOwX2ZpbV9mw7ZzX2xhdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTdV9Nw6Ffw55yX01pX0ZpX0bDtl9MYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW8OtIGRhZyBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbw6EgbW9yZ3VuIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbw60gZ8OmciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW3PDrcOwYXN0YV0gZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2VmdGlyICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdmeXJpciAlcyBzw63DsGFuJyxcbiAgICAgICAgICAgIHM6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogJ2tsdWtrdXN0dW5kJyxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSXRhbGlhbiBbaXRdXG4vLyEgYXV0aG9yIDogTG9yZW56byA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGllbVxuLy8hIGF1dGhvcjogTWF0dGlhIExhcmVudGlzOiBodHRwczovL2dpdGh1Yi5jb20vbm9zdGFsZ2lhelxuLy8hIGF1dGhvcjogTWFyY28gOiBodHRwczovL2dpdGh1Yi5jb20vTWFuZnJlOThcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBpdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2l0Jywge1xuICAgICAgICBtb250aHM6ICdnZW5uYWlvX2ZlYmJyYWlvX21hcnpvX2FwcmlsZV9tYWdnaW9fZ2l1Z25vX2x1Z2xpb19hZ29zdG9fc2V0dGVtYnJlX290dG9icmVfbm92ZW1icmVfZGljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnZG9tZW5pY2FfbHVuZWTDrF9tYXJ0ZWTDrF9tZXJjb2xlZMOsX2dpb3ZlZMOsX3ZlbmVyZMOsX3NhYmF0bycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbV9sdW5fbWFyX21lcl9naW9fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9tZV9naV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tPZ2dpIGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tEb21hbmkgYScgK1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5ob3VycygpID4gMSA/ICdsbGUgJyA6IHRoaXMuaG91cnMoKSA9PT0gMCA/ICcgJyA6IFwibGwnXCIpICtcbiAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ2RkZGQgW2EnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgJ1tJZXJpIGEnICtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDEgPyAnbGxlICcgOiB0aGlzLmhvdXJzKCkgPT09IDAgPyAnICcgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICddTFQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbTGEgc2NvcnNhXSBkZGRkIFthJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGxlICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmhvdXJzKCkgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbTG8gc2NvcnNvXSBkZGRkIFthJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaG91cnMoKSA+IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbGxlICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmhvdXJzKCkgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcImxsJ1wiKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ11MVCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAndHJhICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBmYScsXG4gICAgICAgICAgICBzOiAnYWxjdW5pIHNlY29uZGknLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRpJyxcbiAgICAgICAgICAgIG06ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGknLFxuICAgICAgICAgICAgaDogXCJ1bidvcmFcIixcbiAgICAgICAgICAgIGhoOiAnJWQgb3JlJyxcbiAgICAgICAgICAgIGQ6ICd1biBnaW9ybm8nLFxuICAgICAgICAgICAgZGQ6ICclZCBnaW9ybmknLFxuICAgICAgICAgICAgTTogJ3VuIG1lc2UnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNpJyxcbiAgICAgICAgICAgIHk6ICd1biBhbm5vJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYW5uaScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogSXRhbGlhbiAoU3dpdHplcmxhbmQpIFtpdC1jaF1cbi8vISBhdXRob3IgOiB4ZmggOiBodHRwczovL2dpdGh1Yi5jb20veGZoXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgaXRDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2l0LWNoJywge1xuICAgICAgICBtb250aHM6ICdnZW5uYWlvX2ZlYmJyYWlvX21hcnpvX2FwcmlsZV9tYWdnaW9fZ2l1Z25vX2x1Z2xpb19hZ29zdG9fc2V0dGVtYnJlX290dG9icmVfbm92ZW1icmVfZGljZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnZG9tZW5pY2FfbHVuZWTDrF9tYXJ0ZWTDrF9tZXJjb2xlZMOsX2dpb3ZlZMOsX3ZlbmVyZMOsX3NhYmF0bycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbV9sdW5fbWFyX21lcl9naW9fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkb19sdV9tYV9tZV9naV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW09nZ2kgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEb21hbmkgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthbGxlXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0llcmkgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbGEgc2NvcnNhXSBkZGRkIFthbGxlXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tsbyBzY29yc29dIGRkZGQgW2FsbGVdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgvXlswLTldLiskLy50ZXN0KHMpID8gJ3RyYScgOiAnaW4nKSArICcgJyArIHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdDogJyVzIGZhJyxcbiAgICAgICAgICAgIHM6ICdhbGN1bmkgc2Vjb25kaScsXG4gICAgICAgICAgICBzczogJyVkIHNlY29uZGknLFxuICAgICAgICAgICAgbTogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0aScsXG4gICAgICAgICAgICBoOiBcInVuJ29yYVwiLFxuICAgICAgICAgICAgaGg6ICclZCBvcmUnLFxuICAgICAgICAgICAgZDogJ3VuIGdpb3JubycsXG4gICAgICAgICAgICBkZDogJyVkIGdpb3JuaScsXG4gICAgICAgICAgICBNOiAndW4gbWVzZScsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2knLFxuICAgICAgICAgICAgeTogJ3VuIGFubm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm5pJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBpdENoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEphcGFuZXNlIFtqYV1cbi8vISBhdXRob3IgOiBMSSBMb25nIDogaHR0cHM6Ly9naXRodWIuY29tL2JhcnlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIGphID0gbW9tZW50LmRlZmluZUxvY2FsZSgnamEnLCB7XG4gICAgICAgIGVyYXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzaW5jZTogJzIwMTktMDUtMDEnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn5Luk5ZKMJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICfji78nLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdSJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcxOTg5LTAxLTA4JyxcbiAgICAgICAgICAgICAgICB1bnRpbDogJzIwMTktMDQtMzAnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn5bmz5oiQJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICfjjbsnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdIJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcxOTI2LTEyLTI1JyxcbiAgICAgICAgICAgICAgICB1bnRpbDogJzE5ODktMDEtMDcnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn5pit5ZKMJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICfjjbwnLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdTJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcxOTEyLTA3LTMwJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogJzE5MjYtMTItMjQnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn5aSn5q2jJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICfjjb0nLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdUJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcxODczLTAxLTAxJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogJzE5MTItMDctMjknLFxuICAgICAgICAgICAgICAgIG9mZnNldDogNixcbiAgICAgICAgICAgICAgICBuYW1lOiAn5piO5rK7JyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICfjjb4nLFxuICAgICAgICAgICAgICAgIGFiYnI6ICdNJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcwMDAxLTAxLTAxJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogJzE4NzMtMTItMzEnLFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn6KW/5pqmJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICdBRCcsXG4gICAgICAgICAgICAgICAgYWJicjogJ0FEJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc2luY2U6ICcwMDAwLTEyLTMxJyxcbiAgICAgICAgICAgICAgICB1bnRpbDogLUluZmluaXR5LFxuICAgICAgICAgICAgICAgIG9mZnNldDogMSxcbiAgICAgICAgICAgICAgICBuYW1lOiAn57SA5YWD5YmNJyxcbiAgICAgICAgICAgICAgICBuYXJyb3c6ICdCQycsXG4gICAgICAgICAgICAgICAgYWJicjogJ0JDJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVyYVllYXJPcmRpbmFsUmVnZXg6IC8o5YWDfFxcZCsp5bm0LyxcbiAgICAgICAgZXJhWWVhck9yZGluYWxQYXJzZTogZnVuY3Rpb24gKGlucHV0LCBtYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoWzFdID09PSAn5YWDJyA/IDEgOiBwYXJzZUludChtYXRjaFsxXSB8fCBpbnB1dCwgMTApO1xuICAgICAgICB9LFxuICAgICAgICBtb250aHM6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfml6Xmm5zml6Vf5pyI5puc5pelX+eBq+abnOaXpV/msLTmm5zml6Vf5pyo5puc5pelX+mHkeabnOaXpV/lnJ/mm5zml6UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfml6Vf5pyIX+eBq1/msLRf5pyoX+mHkV/lnJ8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn5pelX+aciF/ngatf5rC0X+acqF/ph5Ff5ZyfJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpSBkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeW5tE3mnIhE5pelKGRkZCkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5Y2I5YmNfOWNiOW+jC9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+WNiOW+jCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfljYjliY0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WNiOW+jCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+S7iuaXpV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7ml6VdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgIT09IHRoaXMud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+adpemAsV1kZGRkIExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+aYqOaXpV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53ZWVrKCkgIT09IG5vdy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5YWI6YCxXWRkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfeaXpS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd5JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciA9PT0gMSA/ICflhYPlubQnIDogbnVtYmVyICsgJ+W5tCc7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfml6UnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPlvownLFxuICAgICAgICAgICAgcGFzdDogJyVz5YmNJyxcbiAgICAgICAgICAgIHM6ICfmlbDnp5InLFxuICAgICAgICAgICAgc3M6ICclZOenkicsXG4gICAgICAgICAgICBtOiAnMeWIhicsXG4gICAgICAgICAgICBtbTogJyVk5YiGJyxcbiAgICAgICAgICAgIGg6ICcx5pmC6ZaTJyxcbiAgICAgICAgICAgIGhoOiAnJWTmmYLplpMnLFxuICAgICAgICAgICAgZDogJzHml6UnLFxuICAgICAgICAgICAgZGQ6ICclZOaXpScsXG4gICAgICAgICAgICBNOiAnMeODtuaciCcsXG4gICAgICAgICAgICBNTTogJyVk44O25pyIJyxcbiAgICAgICAgICAgIHk6ICcx5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWTlubQnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGphO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEphdmFuZXNlIFtqdl1cbi8vISBhdXRob3IgOiBSb255IExhbnRpcCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW50aXBcbi8vISByZWZlcmVuY2U6IGh0dHA6Ly9qdi53aWtpcGVkaWEub3JnL3dpa2kvQmFzYV9KYXdhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIganYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdqdicsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVuaV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm9wZW1iZXJfRGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYXJfQXByX01laV9KdW5fSnVsX0Fnc19TZXBfT2t0X05vcF9EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnTWluZ2d1X1NlbmVuX1NlbG9zb19SZWJ1X0tlbWlzX0plbXV3YWhfU2VwdHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdNaW5fU2VuX1NlbF9SZWJfS2VtX0plbV9TZXAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTWdfU25fU2xfUmJfS21fSm1fU3AnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9lbmppbmd8c2l5YW5nfHNvbnRlbnxuZGFsdS8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ2VuamluZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzaXlhbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NvbnRlbicgfHwgbWVyaWRpZW0gPT09ICduZGFsdScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZW5qaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2l5YW5nJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc29udGVuJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICduZGFsdSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0RpbnRlbiBwdW5pa28gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTWJlbmphbmcgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2FsYSB3aW5naSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtrZXBlbmdrZXIgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnd29udGVuIGluZyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaW5na2FuZyBrZXBlbmdrZXInLFxuICAgICAgICAgICAgczogJ3Nhd2V0YXdpcyBkZXRpaycsXG4gICAgICAgICAgICBzczogJyVkIGRldGlrJyxcbiAgICAgICAgICAgIG06ICdzZXR1bmdnYWwgbWVuaXQnLFxuICAgICAgICAgICAgbW06ICclZCBtZW5pdCcsXG4gICAgICAgICAgICBoOiAnc2V0dW5nZ2FsIGphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VkaW50ZW4nLFxuICAgICAgICAgICAgZGQ6ICclZCBkaW50ZW4nLFxuICAgICAgICAgICAgTTogJ3Nld3VsYW4nLFxuICAgICAgICAgICAgTU06ICclZCB3dWxhbicsXG4gICAgICAgICAgICB5OiAnc2V0YXVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGF1bicsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBqdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBHZW9yZ2lhbiBba2FdXG4vLyEgYXV0aG9yIDogSXJha2xpIEphbmlhc2h2aWxpIDogaHR0cHM6Ly9naXRodWIuY29tL0lyYWtsaUphbmlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBrYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2thJywge1xuICAgICAgICBtb250aHM6ICfhg5jhg5Dhg5zhg5Xhg5Dhg6Dhg5hf4YOX4YOU4YOR4YOU4YOg4YOV4YOQ4YOa4YOYX+GDm+GDkOGDoOGDouGDmF/hg5Dhg57hg6Dhg5jhg5rhg5hf4YOb4YOQ4YOY4YOh4YOYX+GDmOGDleGDnOGDmOGDoeGDmF/hg5jhg5Xhg5rhg5jhg6Hhg5hf4YOQ4YOS4YOV4YOY4YOh4YOi4YOdX+GDoeGDlOGDpeGDouGDlOGDm+GDkeGDlOGDoOGDmF/hg53hg6Xhg6Lhg53hg5vhg5Hhg5Thg6Dhg5hf4YOc4YOd4YOU4YOb4YOR4YOU4YOg4YOYX+GDk+GDlOGDmeGDlOGDm+GDkeGDlOGDoOGDmCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfhg5jhg5Dhg5xf4YOX4YOU4YORX+GDm+GDkOGDoF/hg5Dhg57hg6Bf4YOb4YOQ4YOYX+GDmOGDleGDnF/hg5jhg5Xhg5pf4YOQ4YOS4YOVX+GDoeGDlOGDpV/hg53hg6Xhg6Jf4YOc4YOd4YOUX+GDk+GDlOGDmScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfhg5nhg5Xhg5jhg6Dhg5Bf4YOd4YOg4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDoeGDkOGDm+GDqOGDkOGDkeGDkOGDl+GDmF/hg53hg5fhg67hg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOu4YOj4YOX4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDnuGDkOGDoOGDkOGDoeGDmeGDlOGDleGDmF/hg6jhg5Dhg5Hhg5Dhg5fhg5gnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ+GDmeGDleGDmOGDoOGDkOGDoV/hg53hg6Dhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOh4YOQ4YOb4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDneGDl+GDruGDqOGDkOGDkeGDkOGDl+GDoV/hg67hg6Phg5fhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOe4YOQ4YOg4YOQ4YOh4YOZ4YOU4YOV4YOhX+GDqOGDkOGDkeGDkOGDl+GDoScuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC8o4YOs4YOY4YOc4YOQfOGDqOGDlOGDm+GDk+GDlOGDkikvLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4YOZ4YOV4YOYX+GDneGDoOGDqF/hg6Hhg5Dhg5tf4YOd4YOX4YOuX+GDruGDo+GDl1/hg57hg5Dhg6Bf4YOo4YOQ4YORJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+GDmeGDlV/hg53hg6Bf4YOh4YOQX+GDneGDl1/hg67hg6Nf4YOe4YOQX+GDqOGDkCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vhg5Phg6bhg5Thg6FdIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4YOu4YOV4YOQ4YOaXSBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+GDkuGDo+GDqOGDmOGDnF0gTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4YOo4YOU4YOb4YOT4YOU4YOSXSBkZGRkIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+GDrOGDmOGDnOGDkF0gZGRkZCBMVC3hg5bhg5QnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHMucmVwbGFjZSgvKOGDrOGDkOGDm3zhg6zhg6Phg5d84YOh4YOQ4YOQ4YOXfOGDrOGDlOGDmnzhg5Phg6Z84YOX4YOVKSjhg5h84YOUKS8sIGZ1bmN0aW9uIChcbiAgICAgICAgICAgICAgICAgICAgJDAsXG4gICAgICAgICAgICAgICAgICAgICQxLFxuICAgICAgICAgICAgICAgICAgICAkMlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJDIgPT09ICfhg5gnID8gJDEgKyAn4YOo4YOYJyA6ICQxICsgJDIgKyAn4YOo4YOYJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0OiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgIGlmICgvKOGDrOGDkOGDm+GDmHzhg6zhg6Phg5fhg5h84YOh4YOQ4YOQ4YOX4YOYfOGDk+GDpuGDlHzhg5fhg5Xhg5QpLy50ZXN0KHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzLnJlcGxhY2UoLyjhg5h84YOUKSQvLCAn4YOY4YOhIOGDrOGDmOGDnCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoL+GDrOGDlOGDmuGDmC8udGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC/hg6zhg5Thg5rhg5gkLywgJ+GDrOGDmuGDmOGDoSDhg6zhg5jhg5wnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgczogJ+GDoOGDkOGDm+GDk+GDlOGDnOGDmOGDm+GDlCDhg6zhg5Dhg5vhg5gnLFxuICAgICAgICAgICAgc3M6ICclZCDhg6zhg5Dhg5vhg5gnLFxuICAgICAgICAgICAgbTogJ+GDrOGDo+GDl+GDmCcsXG4gICAgICAgICAgICBtbTogJyVkIOGDrOGDo+GDl+GDmCcsXG4gICAgICAgICAgICBoOiAn4YOh4YOQ4YOQ4YOX4YOYJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4YOh4YOQ4YOQ4YOX4YOYJyxcbiAgICAgICAgICAgIGQ6ICfhg5Phg6bhg5QnLFxuICAgICAgICAgICAgZGQ6ICclZCDhg5Phg6bhg5QnLFxuICAgICAgICAgICAgTTogJ+GDl+GDleGDlCcsXG4gICAgICAgICAgICBNTTogJyVkIOGDl+GDleGDlCcsXG4gICAgICAgICAgICB5OiAn4YOs4YOU4YOa4YOYJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4YOs4YOU4YOa4YOYJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogLzB8MS3hg5rhg5h84YOb4YOULVxcZHsxLDJ9fFxcZHsxLDJ9LeGDlC8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLeGDmuGDmCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyIDwgMjAgfHxcbiAgICAgICAgICAgICAgICAobnVtYmVyIDw9IDEwMCAmJiBudW1iZXIgJSAyMCA9PT0gMCkgfHxcbiAgICAgICAgICAgICAgICBudW1iZXIgJSAxMDAgPT09IDBcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4YOb4YOULScgKyBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3hg5QnO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsXG4gICAgICAgICAgICBkb3k6IDcsXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga2E7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS2F6YWtoIFtra11cbi8vISBhdXRob3JzIDogTnVybGFuIFJha2hpbXpoYW5vdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9udXJsYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMDogJy3RiNGWJyxcbiAgICAgICAgMTogJy3RiNGWJyxcbiAgICAgICAgMjogJy3RiNGWJyxcbiAgICAgICAgMzogJy3RiNGWJyxcbiAgICAgICAgNDogJy3RiNGWJyxcbiAgICAgICAgNTogJy3RiNGWJyxcbiAgICAgICAgNjogJy3RiNGLJyxcbiAgICAgICAgNzogJy3RiNGWJyxcbiAgICAgICAgODogJy3RiNGWJyxcbiAgICAgICAgOTogJy3RiNGLJyxcbiAgICAgICAgMTA6ICct0YjRiycsXG4gICAgICAgIDIwOiAnLdGI0YsnLFxuICAgICAgICAzMDogJy3RiNGLJyxcbiAgICAgICAgNDA6ICct0YjRiycsXG4gICAgICAgIDUwOiAnLdGI0ZYnLFxuICAgICAgICA2MDogJy3RiNGLJyxcbiAgICAgICAgNzA6ICct0YjRlicsXG4gICAgICAgIDgwOiAnLdGI0ZYnLFxuICAgICAgICA5MDogJy3RiNGLJyxcbiAgICAgICAgMTAwOiAnLdGI0ZYnLFxuICAgIH07XG5cbiAgICB2YXIga2sgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdraycsIHtcbiAgICAgICAgbW9udGhzOiAn0pvQsNKj0YLQsNGAX9Cw0pvQv9Cw0L1f0L3QsNGD0YDRi9C3X9GB05nRg9GW0YBf0LzQsNC80YvRgF/QvNCw0YPRgdGL0Lxf0YjRltC70LTQtV/RgtCw0LzRi9C3X9Kb0YvRgNC60q/QudC10Lpf0pvQsNC30LDQvV/Sm9Cw0YDQsNGI0LBf0LbQtdC70YLQvtKb0YHQsNC9Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9Kb0LDSo1/QsNKb0L9f0L3QsNGDX9GB05nRg1/QvNCw0Lxf0LzQsNGDX9GI0ZbQu1/RgtCw0Lxf0pvRi9GAX9Kb0LDQt1/Sm9Cw0YBf0LbQtdC7Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9C20LXQutGB0LXQvdCx0ZZf0LTSr9C50YHQtdC90LHRll/RgdC10LnRgdC10L3QsdGWX9GB05nRgNGB0LXQvdCx0ZZf0LHQtdC50YHQtdC90LHRll/QttKx0LzQsF/RgdC10L3QsdGWJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0LbQtdC6X9C00q/QuV/RgdC10Llf0YHTmdGAX9Cx0LXQuV/QttKx0Lxf0YHQtdC9Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C20Lpf0LTQuV/RgdC5X9GB0YBf0LHQuV/QttC8X9GB0L0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JHSr9Cz0ZbQvSDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9CV0YDRgtC10qMg0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Ca0LXRiNC1INGB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9Oo0YLQutC10L0g0LDQv9GC0LDQvdGL0qNdIGRkZGQgW9GB0LDSk9Cw0YJdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg0ZbRiNGW0L3QtNC1JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDQsdKx0YDRi9C9JyxcbiAgICAgICAgICAgIHM6ICfQsdGW0YDQvdC10YjQtSDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3M6ICclZCDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbTogJ9Cx0ZbRgCDQvNC40L3Rg9GCJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoOiAn0LHRltGAINGB0LDSk9Cw0YInLFxuICAgICAgICAgICAgaGg6ICclZCDRgdCw0pPQsNGCJyxcbiAgICAgICAgICAgIGQ6ICfQsdGW0YAg0LrSr9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrSr9C9JyxcbiAgICAgICAgICAgIE06ICfQsdGW0YAg0LDQuScsXG4gICAgICAgICAgICBNTTogJyVkINCw0LknLFxuICAgICAgICAgICAgeTogJ9Cx0ZbRgCDQttGL0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDQttGL0LsnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGI0ZZ80YjRiykvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGIgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbbnVtYmVyXSB8fCBzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBraztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBDYW1ib2RpYW4gW2ttXVxuLy8hIGF1dGhvciA6IEtydXkgVmFubmEgOiBodHRwczovL2dpdGh1Yi5jb20va3J1eXZhbm5hXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4Z+hJyxcbiAgICAgICAgICAgICcyJzogJ+GfoicsXG4gICAgICAgICAgICAnMyc6ICfhn6MnLFxuICAgICAgICAgICAgJzQnOiAn4Z+kJyxcbiAgICAgICAgICAgICc1JzogJ+GfpScsXG4gICAgICAgICAgICAnNic6ICfhn6YnLFxuICAgICAgICAgICAgJzcnOiAn4Z+nJyxcbiAgICAgICAgICAgICc4JzogJ+GfqCcsXG4gICAgICAgICAgICAnOSc6ICfhn6knLFxuICAgICAgICAgICAgJzAnOiAn4Z+gJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+GfoSc6ICcxJyxcbiAgICAgICAgICAgICfhn6InOiAnMicsXG4gICAgICAgICAgICAn4Z+jJzogJzMnLFxuICAgICAgICAgICAgJ+GfpCc6ICc0JyxcbiAgICAgICAgICAgICfhn6UnOiAnNScsXG4gICAgICAgICAgICAn4Z+mJzogJzYnLFxuICAgICAgICAgICAgJ+Gfpyc6ICc3JyxcbiAgICAgICAgICAgICfhn6gnOiAnOCcsXG4gICAgICAgICAgICAn4Z+pJzogJzknLFxuICAgICAgICAgICAgJ+GfoCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBrbSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ttJywge1xuICAgICAgICBtb250aHM6ICfhnpjhnoDhnprhnrZf4Z6A4Z674Z6Y4Z+S4Z6X4Z+IX+GemOGeuOGek+Getl/hnpjhn4Hhnp/hnrZf4Z6n4Z6f4Z6X4Z62X+GemOGet+GekOGeu+Gek+Getl/hnoDhnoDhn5LhnoDhnorhnrZf4Z6f4Z644Z6g4Z62X+GegOGeieGfkuGeieGetl/hno/hnrvhnpvhnrZf4Z6c4Z634Z6F4Z+S4Z6G4Z634Z6A4Z62X+GekuGfkuGek+GevCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfhnpjhnoDhnprhnrZf4Z6A4Z674Z6Y4Z+S4Z6X4Z+IX+GemOGeuOGek+Getl/hnpjhn4Hhnp/hnrZf4Z6n4Z6f4Z6X4Z62X+GemOGet+GekOGeu+Gek+Getl/hnoDhnoDhn5LhnoDhnorhnrZf4Z6f4Z644Z6g4Z62X+GegOGeieGfkuGeieGetl/hno/hnrvhnpvhnrZf4Z6c4Z634Z6F4Z+S4Z6G4Z634Z6A4Z62X+GekuGfkuGek+GevCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfhnqLhnrbhnpHhnrfhno/hn5Lhnplf4Z6F4Z+Q4Z6T4Z+S4Z6RX+GeouGehOGfkuGeguGetuGeml/hnpbhnrvhnpJf4Z6W4Z+S4Z6a4Z6g4Z6f4Z+S4Z6U4Z6P4Z634Z+NX+Gen+Geu+GegOGfkuGeml/hnp/hn4Xhnprhn40nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfhnqLhnrZf4Z6FX+Geol/hnpZf4Z6W4Z+S4Z6aX+Gen+Geu1/hnp8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4Z6i4Z62X+GehV/hnqJf4Z6WX+GeluGfkuGeml/hnp/hnrtf4Z6fJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+GeluGfkuGemuGeueGegHzhnpvhn5LhnoThnrbhnoUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+Gem+GfkuGehOGetuGehSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhnpbhn5LhnprhnrnhnoAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+Gem+GfkuGehOGetuGehSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GekOGfkuGehOGfg+Gek+GfgeGfhyDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4Z6f4Z+S4Z6i4Z+C4Z6AIOGemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4Z6Y4Z+S4Z6f4Z634Z6b4Z6Y4Z634Z6JIOGemOGfieGfhOGehF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvhnp/hnpThn5Lhno/hnrbhnqDhn43hnpjhnrvhnpNdIFvhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPhnpHhn4Dhno8nLFxuICAgICAgICAgICAgcGFzdDogJyVz4Z6Y4Z674Z6TJyxcbiAgICAgICAgICAgIHM6ICfhnpThn4nhnrvhnpPhn5LhnpjhnrbhnpPhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgc3M6ICclZCDhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgbTogJ+GemOGeveGemeGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBtbTogJyVkIOGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBoOiAn4Z6Y4Z694Z6Z4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGQ6ICfhnpjhnr3hnpnhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgZGQ6ICclZCDhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgTTogJ+GemOGeveGemeGegeGfgicsXG4gICAgICAgICAgICBNTTogJyVkIOGegeGfgicsXG4gICAgICAgICAgICB5OiAn4Z6Y4Z694Z6Z4Z6G4Z+S4Z6T4Z624Z+GJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Z6G4Z+S4Z6T4Z624Z+GJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL+GekeGeuFxcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogJ+GekeGeuCVkJyxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+GfoeGfouGfo+GfpOGfpeGfpuGfp+GfqOGfqeGfoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGttO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEthbm5hZGEgW2tuXVxuLy8hIGF1dGhvciA6IFJhamVldiBOYWlrIDogaHR0cHM6Ly9naXRodWIuY29tL3JhamVldm5haWt0ZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CzpycsXG4gICAgICAgICAgICAnMic6ICfgs6gnLFxuICAgICAgICAgICAgJzMnOiAn4LOpJyxcbiAgICAgICAgICAgICc0JzogJ+CzqicsXG4gICAgICAgICAgICAnNSc6ICfgs6snLFxuICAgICAgICAgICAgJzYnOiAn4LOsJyxcbiAgICAgICAgICAgICc3JzogJ+CzrScsXG4gICAgICAgICAgICAnOCc6ICfgs64nLFxuICAgICAgICAgICAgJzknOiAn4LOvJyxcbiAgICAgICAgICAgICcwJzogJ+CzpicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgs6cnOiAnMScsXG4gICAgICAgICAgICAn4LOoJzogJzInLFxuICAgICAgICAgICAgJ+CzqSc6ICczJyxcbiAgICAgICAgICAgICfgs6onOiAnNCcsXG4gICAgICAgICAgICAn4LOrJzogJzUnLFxuICAgICAgICAgICAgJ+CzrCc6ICc2JyxcbiAgICAgICAgICAgICfgs60nOiAnNycsXG4gICAgICAgICAgICAn4LOuJzogJzgnLFxuICAgICAgICAgICAgJ+Czryc6ICc5JyxcbiAgICAgICAgICAgICfgs6YnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIga24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrbicsIHtcbiAgICAgICAgbW9udGhzOiAn4LKc4LKo4LK14LKw4LK/X+Cyq+CzhuCyrOCzjeCysOCyteCysOCyv1/gsq7gsr7gsrDgs43gsprgs41f4LKP4LKq4LON4LKw4LK/4LKy4LONX+CyruCzhuCzlV/gspzgs4Lgsqjgs41f4LKc4LOB4LKy4LOG4LOWX+CyhuCyl+CyuOCzjeCyn+CzjV/gsrjgs4bgsqrgs43gsp/gs4bgsoLgsqzgsrDgs41f4LKF4LKV4LON4LKf4LOG4LOC4LOV4LKs4LKw4LONX+CyqOCyteCzhuCyguCyrOCysOCzjV/gsqHgsr/gsrjgs4bgsoLgsqzgsrDgs40nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4LKc4LKoX+Cyq+CzhuCyrOCzjeCysF/gsq7gsr7gsrDgs43gsprgs41f4LKP4LKq4LON4LKw4LK/4LKy4LONX+CyruCzhuCzlV/gspzgs4Lgsqjgs41f4LKc4LOB4LKy4LOG4LOWX+CyhuCyl+CyuOCzjeCyn+CzjV/gsrjgs4bgsqrgs43gsp/gs4bgsoJf4LKF4LKV4LON4LKf4LOG4LOC4LOVX+CyqOCyteCzhuCygl/gsqHgsr/gsrjgs4bgsoInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4LKt4LK+4LKo4LOB4LK14LK+4LKwX+CyuOCzhuCzguCzleCyruCyteCyvuCysF/gsq7gsoLgspfgsrPgsrXgsr7gsrBf4LKs4LOB4LKn4LK14LK+4LKwX+Cyl+CzgeCysOCzgeCyteCyvuCysF/gsrbgs4HgspXgs43gsrDgsrXgsr7gsrBf4LK24LKo4LK/4LK14LK+4LKwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4LKt4LK+4LKo4LOBX+CyuOCzhuCzguCzleCyrl/gsq7gsoLgspfgsrNf4LKs4LOB4LKnX+Cyl+CzgeCysOCzgV/gsrbgs4HgspXgs43gsrBf4LK24LKo4LK/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CyreCyvl/gsrjgs4bgs4Lgs5Vf4LKu4LKCX+CyrOCzgV/gspfgs4Ff4LK24LOBX+Cyticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vgsofgsoLgsqbgs4FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4LKo4LK+4LKz4LOGXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LKo4LK/4LKo4LON4LKo4LOGXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgspXgs4bgs4Lgsqjgs4bgsq9dIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4LKo4LKC4LKk4LKwJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgsrngsr/gsoLgsqbgs4YnLFxuICAgICAgICAgICAgczogJ+CyleCzhuCysuCyteCzgSDgspXgs43gsrfgsqPgspfgsrPgs4EnLFxuICAgICAgICAgICAgc3M6ICclZCDgsrjgs4bgspXgs4bgsoLgsqHgs4HgspfgsrPgs4EnLFxuICAgICAgICAgICAgbTogJ+CykuCyguCypuCzgSDgsqjgsr/gsq7gsr/gsrcnLFxuICAgICAgICAgICAgbW06ICclZCDgsqjgsr/gsq7gsr/gsrcnLFxuICAgICAgICAgICAgaDogJ+CykuCyguCypuCzgSDgspfgsoLgsp/gs4YnLFxuICAgICAgICAgICAgaGg6ICclZCDgspfgsoLgsp/gs4YnLFxuICAgICAgICAgICAgZDogJ+CykuCyguCypuCzgSDgsqbgsr/gsqgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgsqbgsr/gsqgnLFxuICAgICAgICAgICAgTTogJ+CykuCyguCypuCzgSDgsqTgsr/gsoLgspfgsrPgs4EnLFxuICAgICAgICAgICAgTU06ICclZCDgsqTgsr/gsoLgspfgsrPgs4EnLFxuICAgICAgICAgICAgeTogJ+CykuCyguCypuCzgSDgsrXgsrDgs43gsrcnLFxuICAgICAgICAgICAgeXk6ICclZCDgsrXgsrDgs43gsrcnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4LOn4LOo4LOp4LOq4LOr4LOs4LOt4LOu4LOv4LOmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LKw4LK+4LKk4LON4LKw4LK/fOCyrOCzhuCys+Cyv+Cyl+CzjeCyl+Czhnzgsq7gsqfgs43gsq/gsr7gsrngs43gsqh84LK44LKC4LKc4LOGLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4LKw4LK+4LKk4LON4LKw4LK/Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LKs4LOG4LKz4LK/4LKX4LON4LKX4LOGJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CyruCyp+CzjeCyr+CyvuCyueCzjeCyqCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LK44LKC4LKc4LOGJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CysOCyvuCypOCzjeCysOCyvyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKs4LOG4LKz4LK/4LKX4LON4LKX4LOGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsq7gsqfgs43gsq/gsr7gsrngs43gsqgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CyuOCyguCynOCzhic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKw4LK+4LKk4LON4LKw4LK/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOCyqOCzhuCzlSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+CyqOCzhuCzlSc7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBrbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBLb3JlYW4gW2tvXVxuLy8hIGF1dGhvciA6IEt5dW5nd29vaywgUGFyayA6IGh0dHBzOi8vZ2l0aHViLmNvbS9reXVuZ3cwMGtcbi8vISBhdXRob3IgOiBKZWVleXVsIExlZSA8amVlZXl1bEBnbWFpbC5jb20+XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIga28gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrbycsIHtcbiAgICAgICAgbW9udGhzOiAnMeyblF8y7JuUXzPsm5RfNOyblF817JuUXzbsm5RfN+yblF847JuUXznsm5RfMTDsm5RfMTHsm5RfMTLsm5QnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMeyblF8y7JuUXzPsm5RfNOyblF817JuUXzbsm5RfN+yblF847JuUXznsm5RfMTDsm5RfMTHsm5RfMTLsm5QnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn7J287JqU7J28X+yblOyalOydvF/tmZTsmpTsnbxf7IiY7JqU7J28X+uqqeyalOydvF/quIjsmpTsnbxf7Yag7JqU7J28Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn7J28X+yblF/tmZRf7IiYX+uqqV/quIhf7YagJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+ydvF/sm5Rf7ZmUX+yImF/rqqlf6riIX+2GoCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgTEw6ICdZWVlZ64WEIE1NTU0gROydvCcsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ64WEIE1NTU0gROydvCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnrhYQgTU1NTSBE7J28IGRkZGQgQSBoOm1tJyxcbiAgICAgICAgICAgIGw6ICdZWVlZLk1NLkRELicsXG4gICAgICAgICAgICBsbDogJ1lZWVnrhYQgTU1NTSBE7J28JyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnrhYQgTU1NTSBE7J28IEEgaDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeuFhCBNTU1NIETsnbwgZGRkZCBBIGg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ+yYpOuKmCBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAn64K07J28IExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAn7Ja07KCcIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAn7KeA64Kc7KO8IGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDtm4QnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOyghCcsXG4gICAgICAgICAgICBzOiAn66qHIOy0iCcsXG4gICAgICAgICAgICBzczogJyVk7LSIJyxcbiAgICAgICAgICAgIG06ICcx67aEJyxcbiAgICAgICAgICAgIG1tOiAnJWTrtoQnLFxuICAgICAgICAgICAgaDogJ+2VnCDsi5zqsIQnLFxuICAgICAgICAgICAgaGg6ICclZOyLnOqwhCcsXG4gICAgICAgICAgICBkOiAn7ZWY66OoJyxcbiAgICAgICAgICAgIGRkOiAnJWTsnbwnLFxuICAgICAgICAgICAgTTogJ+2VnCDri6wnLFxuICAgICAgICAgICAgTU06ICclZOuLrCcsXG4gICAgICAgICAgICB5OiAn7J28IOuFhCcsXG4gICAgICAgICAgICB5eTogJyVk64WEJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOydvHzsm5R87KO8KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+ydvCc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn7JuUJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfso7wnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/smKTsoIR87Jik7ZuELyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW4gPT09ICfsmKTtm4QnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNVcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAxMiA/ICfsmKTsoIQnIDogJ+yYpO2bhCc7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga287XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS3VyZGlzaCBba3VdXG4vLyEgYXV0aG9yIDogU2hhaHJhbSBNZWJhc2hhciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9TaGFocmFtTWViYXNoYXJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfZoScsXG4gICAgICAgICAgICAnMic6ICfZoicsXG4gICAgICAgICAgICAnMyc6ICfZoycsXG4gICAgICAgICAgICAnNCc6ICfZpCcsXG4gICAgICAgICAgICAnNSc6ICfZpScsXG4gICAgICAgICAgICAnNic6ICfZpicsXG4gICAgICAgICAgICAnNyc6ICfZpycsXG4gICAgICAgICAgICAnOCc6ICfZqCcsXG4gICAgICAgICAgICAnOSc6ICfZqScsXG4gICAgICAgICAgICAnMCc6ICfZoCcsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfZoSc6ICcxJyxcbiAgICAgICAgICAgICfZoic6ICcyJyxcbiAgICAgICAgICAgICfZoyc6ICczJyxcbiAgICAgICAgICAgICfZpCc6ICc0JyxcbiAgICAgICAgICAgICfZpSc6ICc1JyxcbiAgICAgICAgICAgICfZpic6ICc2JyxcbiAgICAgICAgICAgICfZpyc6ICc3JyxcbiAgICAgICAgICAgICfZqCc6ICc4JyxcbiAgICAgICAgICAgICfZqSc6ICc5JyxcbiAgICAgICAgICAgICfZoCc6ICcwJyxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzID0gW1xuICAgICAgICAgICAgJ9qp2KfZhtmI2YbbjCDYr9mI2YjbldmFJyxcbiAgICAgICAgICAgICfYtNmI2KjYp9iqJyxcbiAgICAgICAgICAgICfYptin2LLYp9ixJyxcbiAgICAgICAgICAgICfZhtuM2LPYp9mGJyxcbiAgICAgICAgICAgICfYptin24zYp9ixJyxcbiAgICAgICAgICAgICfYrdmI2LLblduM2LHYp9mGJyxcbiAgICAgICAgICAgICfYqtuV2YXZhdmI2LInLFxuICAgICAgICAgICAgJ9im2KfYqCcsXG4gICAgICAgICAgICAn2KbblduM2YTZiNmI2YQnLFxuICAgICAgICAgICAgJ9iq2LTYsduM2YbbjCDbjNuV2YPbldmFJyxcbiAgICAgICAgICAgICfYqti02LHbjNmG24wg2K/ZiNmI25XZhScsXG4gICAgICAgICAgICAn2YPYp9mG2YjZhtuMINuM25XaqduV2YUnLFxuICAgICAgICBdO1xuXG4gICAgdmFyIGt1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgna3UnLCB7XG4gICAgICAgIG1vbnRoczogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5czogJ9uM2YfigIzZg9i02YfigIzZhdmF2YfigIxf2K/ZiNmI2LTZh+KAjNmF2YXZh+KAjF/Ys9uO2LTZh+KAjNmF2YXZh+KAjF/ahtmI2KfYsdi02YfigIzZhdmF2YfigIxf2b7bjtmG2KzYtNmH4oCM2YXZhdmH4oCMX9mH2YfigIzbjNmG24xf2LTZh+KAjNmF2YXZh+KAjCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9uM2YfigIzZg9i02YfigIzZhV/Yr9mI2YjYtNmH4oCM2YVf2LPbjti02YfigIzZhV/ahtmI2KfYsdi02YfigIzZhV/ZvtuO2YbYrNi02YfigIzZhV/Zh9mH4oCM24zZhtuMX9i02YfigIzZhdmF2YfigIwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn24xf2K9f2LNf2oZf2b5f2Ydf2LQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2KbbjtmI2KfYsdmH4oCMfNio2YfigIzbjNin2YbbjC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC/YptuO2YjYp9ix2YfigIwvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2KjZh+KAjNuM2KfZhtuMJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYptuO2YjYp9ix2YfigIwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYptmH4oCM2YXYsduGINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9io2YfigIzbjNin2YbbjCDZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYr9mI247ZhtuOINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9mD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9mE2YfigIwgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzJyxcbiAgICAgICAgICAgIHM6ICfahtmH4oCM2YbYryDahtix2YPZh+KAjNuM2YfigIzZgycsXG4gICAgICAgICAgICBzczogJ9qG2LHZg9mH4oCMICVkJyxcbiAgICAgICAgICAgIG06ICfbjNmH4oCM2YMg2K7ZiNmE2YfigIzZgycsXG4gICAgICAgICAgICBtbTogJyVkINiu2YjZhNmH4oCM2YMnLFxuICAgICAgICAgICAgaDogJ9uM2YfigIzZgyDZg9in2KramNmF247YsScsXG4gICAgICAgICAgICBoaDogJyVkINmD2KfYqtqY2YXbjtixJyxcbiAgICAgICAgICAgIGQ6ICfbjNmH4oCM2YMg2pXbhtqYJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2pXbhtqYJyxcbiAgICAgICAgICAgIE06ICfbjNmH4oCM2YMg2YXYp9mG2q8nLFxuICAgICAgICAgICAgTU06ICclZCDZhdin2YbarycsXG4gICAgICAgICAgICB5OiAn24zZh+KAjNmDINiz2KfatScsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfatScsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDEyLCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxMnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGt1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IEt5cmd5eiBba3ldXG4vLyEgYXV0aG9yIDogQ2h5bmd5eiBBcnlzdGFuIHV1bHUgOiBodHRwczovL2dpdGh1Yi5jb20vY2h5bmd5elxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAwOiAnLdGH0q8nLFxuICAgICAgICAxOiAnLdGH0LgnLFxuICAgICAgICAyOiAnLdGH0LgnLFxuICAgICAgICAzOiAnLdGH0q8nLFxuICAgICAgICA0OiAnLdGH0q8nLFxuICAgICAgICA1OiAnLdGH0LgnLFxuICAgICAgICA2OiAnLdGH0YsnLFxuICAgICAgICA3OiAnLdGH0LgnLFxuICAgICAgICA4OiAnLdGH0LgnLFxuICAgICAgICA5OiAnLdGH0YMnLFxuICAgICAgICAxMDogJy3Rh9GDJyxcbiAgICAgICAgMjA6ICct0YfRiycsXG4gICAgICAgIDMwOiAnLdGH0YMnLFxuICAgICAgICA0MDogJy3Rh9GLJyxcbiAgICAgICAgNTA6ICct0YfSrycsXG4gICAgICAgIDYwOiAnLdGH0YsnLFxuICAgICAgICA3MDogJy3Rh9C4JyxcbiAgICAgICAgODA6ICct0YfQuCcsXG4gICAgICAgIDkwOiAnLdGH0YMnLFxuICAgICAgICAxMDA6ICct0YfSrycsXG4gICAgfTtcblxuICAgIHZhciBreSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2t5Jywge1xuICAgICAgICBtb250aHM6ICfRj9C90LLQsNGA0Yxf0YTQtdCy0YDQsNC70Yxf0LzQsNGA0YJf0LDQv9GA0LXQu9GMX9C80LDQuV/QuNGO0L3RjF/QuNGO0LvRjF/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YDRjF/QvtC60YLRj9Cx0YDRjF/QvdC+0Y/QsdGA0Yxf0LTQtdC60LDQsdGA0YwnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YDRgl/QsNC/0YBf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn0JbQtdC60YjQtdC80LHQuF/QlNKv0LnRiNOp0LzQsdKvX9Co0LXQudGI0LXQvNCx0Lhf0KjQsNGA0YjQtdC80LHQuF/QkdC10LnRiNC10LzQsdC4X9CW0YPQvNCwX9CY0YjQtdC80LHQuCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9CW0LXQul/QlNKv0Llf0KjQtdC5X9Co0LDRgF/QkdC10Llf0JbRg9C8X9CY0YjQtScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfQltC6X9CU0Llf0KjQuV/QqNGAX9CR0Llf0JbQvF/QmNGIJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CR0q/Qs9Kv0L0g0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0K3RgNGC0LXSoyDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQmtC10YfRjdGNINGB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vTqNGC0LrTqdC9INCw0L/RgtCw0L3Ri9C9XSBkZGRkIFvQutKv0L3Sr10gW9GB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINC40YfQuNC90LTQtScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg0LzRg9GA0YPQvScsXG4gICAgICAgICAgICBzOiAn0LHQuNGA0L3QtdGH0LUg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiAnJWQg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG06ICfQsdC40YAg0LzSr9C906nRgicsXG4gICAgICAgICAgICBtbTogJyVkINC80q/QvdOp0YInLFxuICAgICAgICAgICAgaDogJ9Cx0LjRgCDRgdCw0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0LDQsNGCJyxcbiAgICAgICAgICAgIGQ6ICfQsdC40YAg0LrSr9C9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LrSr9C9JyxcbiAgICAgICAgICAgIE06ICfQsdC40YAg0LDQuScsXG4gICAgICAgICAgICBNTTogJyVkINCw0LknLFxuICAgICAgICAgICAgeTogJ9Cx0LjRgCDQttGL0LsnLFxuICAgICAgICAgICAgeXk6ICclZCDQttGL0LsnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGH0Lh80YfRi3zRh9KvfNGH0YMpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ga3k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTHV4ZW1ib3VyZ2lzaCBbbGJdXG4vLyEgYXV0aG9yIDogbXdlaW1lcnNraXJjaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9td2VpbWVyc2tpcmNoXG4vLyEgYXV0aG9yIDogRGF2aWQgUmFpc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2t3aXNhdHpcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBtOiBbJ2VuZyBNaW51dHQnLCAnZW5nZXIgTWludXR0J10sXG4gICAgICAgICAgICBoOiBbJ2VuZyBTdG9ubicsICdlbmdlciBTdG9ubiddLFxuICAgICAgICAgICAgZDogWydlZW4gRGFnJywgJ2VuZ2VtIERhZyddLFxuICAgICAgICAgICAgTTogWydlZSBNb3VudCcsICdlbmdlbSBNb3VudCddLFxuICAgICAgICAgICAgeTogWydlZSBKb2VyJywgJ2VuZ2VtIEpvZXInXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzRnV0dXJlVGltZShzdHJpbmcpIHtcbiAgICAgICAgdmFyIG51bWJlciA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YoJyAnKSk7XG4gICAgICAgIGlmIChlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuICdhICcgKyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdhbiAnICsgc3RyaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUGFzdFRpbWUoc3RyaW5nKSB7XG4gICAgICAgIHZhciBudW1iZXIgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKCcgJykpO1xuICAgICAgICBpZiAoZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiAndmlydSAnICsgc3RyaW5nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAndmlydW4gJyArIHN0cmluZztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSB3b3JkIGJlZm9yZSB0aGUgZ2l2ZW4gbnVtYmVyIGxvc2VzIHRoZSAnLW4nIGVuZGluZy5cbiAgICAgKiBlLmcuICdhbiAxMCBEZWVnJyBidXQgJ2EgNSBEZWVnJ1xuICAgICAqXG4gICAgICogQHBhcmFtIG51bWJlciB7aW50ZWdlcn1cbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSB7XG4gICAgICAgIG51bWJlciA9IHBhcnNlSW50KG51bWJlciwgMTApO1xuICAgICAgICBpZiAoaXNOYU4obnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICAvLyBOZWdhdGl2ZSBOdW1iZXIgLS0+IGFsd2F5cyB0cnVlXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCAxMCkge1xuICAgICAgICAgICAgLy8gT25seSAxIGRpZ2l0XG4gICAgICAgICAgICBpZiAoNCA8PSBudW1iZXIgJiYgbnVtYmVyIDw9IDcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCAxMDApIHtcbiAgICAgICAgICAgIC8vIDIgZGlnaXRzXG4gICAgICAgICAgICB2YXIgbGFzdERpZ2l0ID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgZmlyc3REaWdpdCA9IG51bWJlciAvIDEwO1xuICAgICAgICAgICAgaWYgKGxhc3REaWdpdCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIoZmlyc3REaWdpdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKGxhc3REaWdpdCk7XG4gICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMTAwMDApIHtcbiAgICAgICAgICAgIC8vIDMgb3IgNCBkaWdpdHMgLS0+IHJlY3Vyc2l2ZWx5IGNoZWNrIGZpcnN0IGRpZ2l0XG4gICAgICAgICAgICB3aGlsZSAobnVtYmVyID49IDEwKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBbnl0aGluZyBsYXJnZXIgdGhhbiA0IGRpZ2l0czogcmVjdXJzaXZlbHkgY2hlY2sgZmlyc3Qgbi0zIGRpZ2l0c1xuICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTAwMDtcbiAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xiJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmVicnVhcl9Nw6RlcnpfQWJyw6tsbF9NZWVfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW4uX0ZlYnIuX01yei5fQWJyLl9NZWVfSnVuLl9KdWwuX0F1Zy5fU2VwdC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnU29ubmRlZ19Nw6lpbmRlZ19Ew6tuc2NoZGVnX03Dq3R0d29jaF9Eb25uZXNjaGRlZ19GcmVpZGVnX1NhbXNjaGRlZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1NvLl9Nw6kuX0TDqy5fTcOrLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTb19Nw6lfRMOrX03Dq19Eb19Gcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tIFtBdWVyXScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzIFtBdWVyXScsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hhdXQgdW1dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW011ZXIgdW1dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdW1dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbR8Orc2NodGVyIHVtXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIC8vIERpZmZlcmVudCBkYXRlIHN0cmluZyBmb3IgJ0TDq25zY2hkZWcnIChUdWVzZGF5KSBhbmQgJ0Rvbm5lc2NoZGVnJyAoVGh1cnNkYXkpIGR1ZSB0byBwaG9ub2xvZ2ljYWwgcnVsZVxuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW0xlc2NodGVuXSBkZGRkIFt1bV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbTGVzY2h0ZV0gZGRkZCBbdW1dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogcHJvY2Vzc0Z1dHVyZVRpbWUsXG4gICAgICAgICAgICBwYXN0OiBwcm9jZXNzUGFzdFRpbWUsXG4gICAgICAgICAgICBzOiAnZSBwdWVyIFNla29ubmVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgU2Vrb25uZW4nLFxuICAgICAgICAgICAgbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tOiAnJWQgTWludXR0ZW4nLFxuICAgICAgICAgICAgaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoOiAnJWQgU3Rvbm5lbicsXG4gICAgICAgICAgICBkOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQ6ICclZCBEZWVnJyxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogJyVkIE3DqWludCcsXG4gICAgICAgICAgICB5OiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXk6ICclZCBKb2VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBsYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBMYW8gW2xvXVxuLy8hIGF1dGhvciA6IFJ5YW4gSGFydCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yeWFuaGFydDJcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBsbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xvJywge1xuICAgICAgICBtb250aHM6ICfguqHgurHguofguoHguq3guplf4LqB4Lq44Lqh4Lqe4LqyX+C6oeC6teC6meC6sl/gu4DguqHguqrgurJf4Lqe4Lq24LqU4Lqq4Lqw4Lqe4LqyX+C6oeC6tOC6luC6uOC6meC6sl/guoHgu43guqXgurDguoHgurvgupRf4Lqq4Lq04LqH4Lqr4LqyX+C6geC6seC6meC6jeC6sl/gupXgurjguqXgurJf4Lqe4Lqw4LqI4Lq04LqBX+C6l+C6seC6meC6p+C6sicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfguqHgurHguofguoHguq3guplf4LqB4Lq44Lqh4Lqe4LqyX+C6oeC6teC6meC6sl/gu4DguqHguqrgurJf4Lqe4Lq24LqU4Lqq4Lqw4Lqe4LqyX+C6oeC6tOC6luC6uOC6meC6sl/guoHgu43guqXgurDguoHgurvgupRf4Lqq4Lq04LqH4Lqr4LqyX+C6geC6seC6meC6jeC6sl/gupXgurjguqXgurJf4Lqe4Lqw4LqI4Lq04LqBX+C6l+C6seC6meC6p+C6sicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfguq3gurLgupfgurTgupRf4LqI4Lqx4LqZX+C6reC6seC6h+C6hOC6suC6mV/gup7gurjgupRf4Lqe4Lqw4Lqr4Lqx4LqUX+C6quC6uOC6gV/gu4DguqrgurvgurInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgupfgurTgupRf4LqI4Lqx4LqZX+C6reC6seC6h+C6hOC6suC6mV/gup7gurjgupRf4Lqe4Lqw4Lqr4Lqx4LqUX+C6quC6uOC6gV/gu4DguqrgurvgurInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LqXX+C6iF/guq3guoRf4LqeX+C6nuC6q1/guqrguoFf4LqqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ+C6p+C6seC6mWRkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LqV4Lqt4LqZ4LuA4LqK4Lq74LuJ4LqyfOC6leC6reC6meC7geC6peC6hy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4LqV4Lqt4LqZ4LuB4Lql4LqHJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C6leC6reC6meC7gOC6iuC6u+C7ieC6sic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LqV4Lqt4LqZ4LuB4Lql4LqHJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4Lqh4Lq34LuJ4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C6oeC6t+C7ieC6reC6t+C7iOC6meC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4Lqn4Lqx4LqZXWRkZGRb4Luc4LuJ4Lqy4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C6oeC6t+C7ieC6p+C6suC6meC6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Lqn4Lqx4LqZXWRkZGRb4LuB4Lql4LuJ4Lqn4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+C6reC6teC6gSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXPgupzgu4jgurLgupnguqHgurInLFxuICAgICAgICAgICAgczogJ+C6muC7jeC7iOC7gOC6l+C6u+C7iOC6suC7g+C6lOC6p+C6tOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBzczogJyVkIOC6p+C6tOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBtOiAnMSDgupngurLgupfgurUnLFxuICAgICAgICAgICAgbW06ICclZCDgupngurLgupfgurUnLFxuICAgICAgICAgICAgaDogJzEg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LqK4Lq74LuI4Lqn4LuC4Lqh4LqHJyxcbiAgICAgICAgICAgIGQ6ICcxIOC6oeC6t+C7iScsXG4gICAgICAgICAgICBkZDogJyVkIOC6oeC6t+C7iScsXG4gICAgICAgICAgICBNOiAnMSDgu4DgupTgurfguq3gupknLFxuICAgICAgICAgICAgTU06ICclZCDgu4DgupTgurfguq3gupknLFxuICAgICAgICAgICAgeTogJzEg4Lqb4Lq1JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Lqb4Lq1JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogLyjgupfgurXgu4gpXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gJ+C6l+C6teC7iCcgKyBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTGl0aHVhbmlhbiBbbHRdXG4vLyEgYXV0aG9yIDogTWluZGF1Z2FzIE1vesWrcmFzIDogaHR0cHM6Ly9naXRodWIuY29tL21tb3p1cmFzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdW5pdHMgPSB7XG4gICAgICAgIHNzOiAnc2VrdW5kxJdfc2VrdW5kxb5pxbNfc2VrdW5kZXMnLFxuICAgICAgICBtOiAnbWludXTEl19taW51dMSXc19taW51dMSZJyxcbiAgICAgICAgbW06ICdtaW51dMSXc19taW51xI1pxbNfbWludXRlcycsXG4gICAgICAgIGg6ICd2YWxhbmRhX3ZhbGFuZG9zX3ZhbGFuZMSFJyxcbiAgICAgICAgaGg6ICd2YWxhbmRvc192YWxhbmTFs192YWxhbmRhcycsXG4gICAgICAgIGQ6ICdkaWVuYV9kaWVub3NfZGllbsSFJyxcbiAgICAgICAgZGQ6ICdkaWVub3NfZGllbsWzX2RpZW5hcycsXG4gICAgICAgIE06ICdtxJdudW9fbcSXbmVzaW9fbcSXbmVzxK8nLFxuICAgICAgICBNTTogJ23El25lc2lhaV9txJduZXNpxbNfbcSXbmVzaXVzJyxcbiAgICAgICAgeTogJ21ldGFpX21ldMWzX21ldHVzJyxcbiAgICAgICAgeXk6ICdtZXRhaV9tZXTFs19tZXR1cycsXG4gICAgfTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVTZWNvbmRzKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuICdrZWxpb3Mgc2VrdW5kxJdzJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdrZWxpxbMgc2VrdW5kxb5pxbMnIDogJ2tlbGlhcyBzZWt1bmRlcyc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4XG4gICAgICAgICAgICA/IGZvcm1zKGtleSlbMF1cbiAgICAgICAgICAgIDogaXNGdXR1cmVcbiAgICAgICAgICAgID8gZm9ybXMoa2V5KVsxXVxuICAgICAgICAgICAgOiBmb3JtcyhrZXkpWzJdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGVjaWFsKG51bWJlcikge1xuICAgICAgICByZXR1cm4gbnVtYmVyICUgMTAgPT09IDAgfHwgKG51bWJlciA+IDEwICYmIG51bWJlciA8IDIwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZm9ybXMoa2V5KSB7XG4gICAgICAgIHJldHVybiB1bml0c1trZXldLnNwbGl0KCdfJyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICByZXN1bHQgKyB0cmFuc2xhdGVTaW5ndWxhcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleVswXSwgaXNGdXR1cmUpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvcm1zKGtleSlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBsdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2x0Jywge1xuICAgICAgICBtb250aHM6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ3NhdXNpb192YXNhcmlvX2tvdm9fYmFsYW5kxb5pb19nZWd1xb7El3NfYmlyxb5lbGlvX2xpZXBvc19ydWdwasWrxI1pb19ydWdzxJdqb19zcGFsaW9fbGFwa3JpxI1pb19ncnVvZMW+aW8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdzYXVzaXNfdmFzYXJpc19rb3Zhc19iYWxhbmRpc19nZWd1xb7El19iaXLFvmVsaXNfbGllcGFfcnVncGrFq3Rpc19ydWdzxJdqaXNfc3BhbGlzX2xhcGtyaXRpc19ncnVvZGlzJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT98TU1NTT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK0Rbb0RdPy8sXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnc2F1X3Zhc19rb3ZfYmFsX2dlZ19iaXJfbGllX3JncF9yZ3Nfc3BhX2xhcF9ncmQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdzZWttYWRpZW7Er19waXJtYWRpZW7Er19hbnRyYWRpZW7Er190cmXEjWlhZGllbsSvX2tldHZpcnRhZGllbsSvX3Blbmt0YWRpZW7Er1/FoWXFoXRhZGllbsSvJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnc2VrbWFkaWVuaXNfcGlybWFkaWVuaXNfYW50cmFkaWVuaXNfdHJlxI1pYWRpZW5pc19rZXR2aXJ0YWRpZW5pc19wZW5rdGFkaWVuaXNfxaFlxaF0YWRpZW5pcycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9kZGRkIEhIOm1tLyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1Nla19QaXJfQW50X1RyZV9LZXRfUGVuX8WgZcWhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1NfUF9BX1RfS19Qbl/FoCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIEhIOm1tIFt2YWwuXScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGRkLCBISDptbSBbdmFsLl0nLFxuICAgICAgICAgICAgbDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgbGw6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0nLFxuICAgICAgICAgICAgbGxsOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgZGRkLCBISDptbSBbdmFsLl0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vFoGlhbmRpZW5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbUnl0b2pdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1Zha2FyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tQcmHEl2p1c8SvXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAncG8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByaWXFoSAlcycsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGVTZWNvbmRzLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG06IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE06IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgeXk6IHRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LW9qaS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLW9qaSc7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBsdDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBMYXR2aWFuIFtsdl1cbi8vISBhdXRob3IgOiBLcmlzdGFwcyBLYXJsc29ucyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9za2Frcmlcbi8vISBhdXRob3IgOiBKxIFuaXMgRWxtZXJpcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9KYW5pc0VcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB1bml0cyA9IHtcbiAgICAgICAgc3M6ICdzZWt1bmRlc19zZWt1bmTEk21fc2VrdW5kZV9zZWt1bmRlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgbTogJ21pbsWrdGVzX21pbsWrdMSTbV9taW7Fq3RlX21pbsWrdGVzJy5zcGxpdCgnXycpLFxuICAgICAgICBtbTogJ21pbsWrdGVzX21pbsWrdMSTbV9taW7Fq3RlX21pbsWrdGVzJy5zcGxpdCgnXycpLFxuICAgICAgICBoOiAnc3R1bmRhc19zdHVuZMSBbV9zdHVuZGFfc3R1bmRhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgaGg6ICdzdHVuZGFzX3N0dW5kxIFtX3N0dW5kYV9zdHVuZGFzJy5zcGxpdCgnXycpLFxuICAgICAgICBkOiAnZGllbmFzX2RpZW7EgW1fZGllbmFfZGllbmFzJy5zcGxpdCgnXycpLFxuICAgICAgICBkZDogJ2RpZW5hc19kaWVuxIFtX2RpZW5hX2RpZW5hcycuc3BsaXQoJ18nKSxcbiAgICAgICAgTTogJ23Ek25lxaFhX23Ek25lxaFpZW1fbcSTbmVzaXNfbcSTbmXFoWknLnNwbGl0KCdfJyksXG4gICAgICAgIE1NOiAnbcSTbmXFoWFfbcSTbmXFoWllbV9txJNuZXNpc19txJNuZcWhaScuc3BsaXQoJ18nKSxcbiAgICAgICAgeTogJ2dhZGFfZ2FkaWVtX2dhZHNfZ2FkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgeXk6ICdnYWRhX2dhZGllbV9nYWRzX2dhZGknLnNwbGl0KCdfJyksXG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gd2l0aG91dFN1ZmZpeCBib29sZWFuIHRydWUgPSBhIGxlbmd0aCBvZiB0aW1lOyBmYWxzZSA9IGJlZm9yZS9hZnRlciBhIHBlcmlvZCBvZiB0aW1lLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZvcm1hdChmb3JtcywgbnVtYmVyLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAvLyBFLmcuIFwiMjEgbWluxat0ZVwiLCBcIjMgbWluxat0ZXNcIi5cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgJSAxMCA9PT0gMSAmJiBudW1iZXIgJSAxMDAgIT09IDExID8gZm9ybXNbMl0gOiBmb3Jtc1szXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEUuZy4gXCIyMSBtaW7Fq3Rlc1wiIGFzIGluIFwicMSTYyAyMSBtaW7Fq3Rlc1wiLlxuICAgICAgICAgICAgLy8gRS5nLiBcIjMgbWluxat0xJNtXCIgYXMgaW4gXCJwxJNjIDMgbWluxat0xJNtXCIuXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICUgMTAgPT09IDEgJiYgbnVtYmVyICUgMTAwICE9PSAxMSA/IGZvcm1zWzBdIDogZm9ybXNbMV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgZm9ybWF0KHVuaXRzW2tleV0sIG51bWJlciwgd2l0aG91dFN1ZmZpeCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICByZXR1cm4gZm9ybWF0KHVuaXRzW2tleV0sIG51bWJlciwgd2l0aG91dFN1ZmZpeCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlU2Vjb25kcyhudW1iZXIsIHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnZGHFvmFzIHNla3VuZGVzJyA6ICdkYcW+xIFtIHNla3VuZMSTbSc7XG4gICAgfVxuXG4gICAgdmFyIGx2ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbHYnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnbEgXJpc19mZWJydcSBcmlzX21hcnRzX2FwcsSrbGlzX21haWpzX2rFq25panNfasWrbGlqc19hdWd1c3RzX3NlcHRlbWJyaXNfb2t0b2JyaXNfbm92ZW1icmlzX2RlY2VtYnJpcycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmViX21hcl9hcHJfbWFpX2rFq25fasWrbF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ3N2xJN0ZGllbmFfcGlybWRpZW5hX290cmRpZW5hX3RyZcWhZGllbmFfY2V0dXJ0ZGllbmFfcGlla3RkaWVuYV9zZXN0ZGllbmEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdl9QX09fVF9DX1BrX1MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU3ZfUF9PX1RfQ19Qa19TJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZLicsXG4gICAgICAgICAgICBMTDogJ1lZWVkuIFtnYWRhXSBELiBNTU1NJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkuIFtnYWRhXSBELiBNTU1NLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWS4gW2dhZGFdIEQuIE1NTU0sIGRkZGQsIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbxaBvZGllbiBwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tSxKt0IHB1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1Zha2FyIHB1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tQYWfEgWp1xaHEgV0gZGRkZCBbcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAncMSTYyAlcycsXG4gICAgICAgICAgICBwYXN0OiAncGlybXMgJXMnLFxuICAgICAgICAgICAgczogcmVsYXRpdmVTZWNvbmRzLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIHk6IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGx2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE1vbnRlbmVncmluIFttZV1cbi8vISBhdXRob3IgOiBNaW9kcmFnIE5pa2HEjSA8bWlvZHJhZ0ByZXN0YXJ0aXQubWU+IDogaHR0cHM6Ly9naXRodWIuY29tL21pb2RyYWduaWthY1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRyYW5zbGF0b3IgPSB7XG4gICAgICAgIHdvcmRzOiB7XG4gICAgICAgICAgICAvL0RpZmZlcmVudCBncmFtbWF0aWNhbCBjYXNlc1xuICAgICAgICAgICAgc3M6IFsnc2VrdW5kJywgJ3Nla3VuZGEnLCAnc2VrdW5kaSddLFxuICAgICAgICAgICAgbTogWydqZWRhbiBtaW51dCcsICdqZWRub2cgbWludXRhJ10sXG4gICAgICAgICAgICBtbTogWydtaW51dCcsICdtaW51dGEnLCAnbWludXRhJ10sXG4gICAgICAgICAgICBoOiBbJ2plZGFuIHNhdCcsICdqZWRub2cgc2F0YSddLFxuICAgICAgICAgICAgaGg6IFsnc2F0JywgJ3NhdGEnLCAnc2F0aSddLFxuICAgICAgICAgICAgZGQ6IFsnZGFuJywgJ2RhbmEnLCAnZGFuYSddLFxuICAgICAgICAgICAgTU06IFsnbWplc2VjJywgJ21qZXNlY2EnLCAnbWplc2VjaSddLFxuICAgICAgICAgICAgeXk6IFsnZ29kaW5hJywgJ2dvZGluZScsICdnb2RpbmEnXSxcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTogZnVuY3Rpb24gKG51bWJlciwgd29yZEtleSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgID8gd29yZEtleVswXVxuICAgICAgICAgICAgICAgIDogbnVtYmVyID49IDIgJiYgbnVtYmVyIDw9IDRcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMV1cbiAgICAgICAgICAgICAgICA6IHdvcmRLZXlbMl07XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgICAgICB2YXIgd29yZEtleSA9IHRyYW5zbGF0b3Iud29yZHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRvci5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKG51bWJlciwgd29yZEtleSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICB2YXIgbWUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtZScsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hci5fYXByLl9tYWpfanVuX2p1bF9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZGFuYXMgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tzanV0cmEgdV0gTFQnLFxuXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbbmVkamVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmlqZWR1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3Vib3R1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbanXEjWUgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFdlZWtEYXlzID0gW1xuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtuZWRqZWxqZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BvbmVkamVsamthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbdXRvcmthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzcmlqZWRlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbxI1ldHZydGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcGV0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJpamUgJXMnLFxuICAgICAgICAgICAgczogJ25la29saWtvIHNla3VuZGknLFxuICAgICAgICAgICAgc3M6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQ6ICdkYW4nLFxuICAgICAgICAgICAgZGQ6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ21qZXNlYycsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYW9yaSBbbWldXG4vLyEgYXV0aG9yIDogSm9obiBDb3JyaWdhbiA8cm9iYmllY2xvc2V0QGdtYWlsLmNvbT4gOiBodHRwczovL2dpdGh1Yi5jb20vam9obmlkZWFsXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbWkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtaScsIHtcbiAgICAgICAgbW9udGhzOiAnS29oaS10xIF0ZV9IdWktdGFuZ3VydV9Qb3V0xastdGUtcmFuZ2lfUGFlbmdhLXdoxIF3aMSBX0hhcmF0dWFfUGlwaXJpX0jFjW5nb2luZ29pX0hlcmUtdHVyaS1rxY1rxIFfTWFodXJ1X1doaXJpbmdhLcSBLW51a3VfV2hpcmluZ2EtxIEtcmFuZ2lfSGFraWhlYScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdLb2hpX0h1aV9Qb3VfUGFlX0hhcmFfUGlwaV9IxY1uZ29pX0hlcmVfTWFodV9XaGktbnVfV2hpLXJhX0hha2knLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1JlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsM30vaSxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsM30vaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDJ9L2ksXG4gICAgICAgIHdlZWtkYXlzOiAnUsSBdGFwdV9NYW5lX1TFq3JlaV9XZW5lcmVpX1TEgWl0ZV9QYXJhaXJlX0jEgXRhcmVpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnVGFfTWFfVMWrX1dlX1TEgWlfUGFfSMSBJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1RhX01hX1TFq19XZV9UxIFpX1BhX0jEgScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBbaV0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtpXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2kgdGVpZSBtYWhhbmEsIGldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbYXBvcG8gaV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtpXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2luYW5haGkgaV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFt3aGFrYW11dHVuZ2EgaV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpIHJvdG8gaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaSBtdWEnLFxuICAgICAgICAgICAgczogJ3RlIGjEk2tvbmEgcnVhcnVhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgaMSTa29uYScsXG4gICAgICAgICAgICBtOiAnaGUgbWVuZXRpJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuZXRpJyxcbiAgICAgICAgICAgIGg6ICd0ZSBoYW9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhhb3JhJyxcbiAgICAgICAgICAgIGQ6ICdoZSByYScsXG4gICAgICAgICAgICBkZDogJyVkIHJhJyxcbiAgICAgICAgICAgIE06ICdoZSBtYXJhbWEnLFxuICAgICAgICAgICAgTU06ICclZCBtYXJhbWEnLFxuICAgICAgICAgICAgeTogJ2hlIHRhdScsXG4gICAgICAgICAgICB5eTogJyVkIHRhdScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFjZWRvbmlhbiBbbWtdXG4vLyEgYXV0aG9yIDogQm9yaXNsYXYgTWlja292IDogaHR0cHM6Ly9naXRodWIuY29tL0IwazBcbi8vISBhdXRob3IgOiBTYXNoa28gVG9kb3JvdiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9ia3ljZWhcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21rJywge1xuICAgICAgICBtb250aHM6ICfRmNCw0L3Rg9Cw0YDQuF/RhNC10LLRgNGD0LDRgNC4X9C80LDRgNGCX9Cw0L/RgNC40Ltf0LzQsNGYX9GY0YPQvdC4X9GY0YPQu9C4X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQstGA0Lhf0L7QutGC0L7QvNCy0YDQuF/QvdC+0LXQvNCy0YDQuF/QtNC10LrQtdC80LLRgNC4Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GY0LDQvV/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Zhf0ZjRg9C9X9GY0YPQu1/QsNCy0LNf0YHQtdC/X9C+0LrRgl/QvdC+0LVf0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10LvQsF/Qv9C+0L3QtdC00LXQu9C90LjQul/QstGC0L7RgNC90LjQul/RgdGA0LXQtNCwX9GH0LXRgtCy0YDRgtC+0Lpf0L/QtdGC0L7Qul/RgdCw0LHQvtGC0LAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC10LRf0L/QvtC9X9Cy0YLQvl/RgdGA0LVf0YfQtdGCX9C/0LXRgl/RgdCw0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L1lX9C/b1/QstGCX9GB0YBf0YfQtV/Qv9C1X9GBYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JTQtdC90LXRgSDQstC+XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9Cj0YLRgNC1INCy0L5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9CS0L5dIGRkZGQgW9Cy0L5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JLRh9C10YDQsCDQstC+XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQsNGC0LBdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQuNC+0YJdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICfQv9GA0LXQtCAlcycsXG4gICAgICAgICAgICBzOiAn0L3QtdC60L7Qu9C60YMg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3M6ICclZCDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBtOiAn0LXQtNC90LAg0LzQuNC90YPRgtCwJyxcbiAgICAgICAgICAgIG1tOiAnJWQg0LzQuNC90YPRgtC4JyxcbiAgICAgICAgICAgIGg6ICfQtdC00LXQvSDRh9Cw0YEnLFxuICAgICAgICAgICAgaGg6ICclZCDRh9Cw0YHQsCcsXG4gICAgICAgICAgICBkOiAn0LXQtNC10L0g0LTQtdC9JyxcbiAgICAgICAgICAgIGRkOiAnJWQg0LTQtdC90LAnLFxuICAgICAgICAgICAgTTogJ9C10LTQtdC9INC80LXRgdC10YYnLFxuICAgICAgICAgICAgTU06ICclZCDQvNC10YHQtdGG0LgnLFxuICAgICAgICAgICAgeTogJ9C10LTQvdCwINCz0L7QtNC40L3QsCcsXG4gICAgICAgICAgICB5eTogJyVkINCz0L7QtNC40L3QuCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0LXQsnzQtdC9fNGC0Lh80LLQuHzRgNC4fNC80LgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGxhc3QyRGlnaXRzID0gbnVtYmVyICUgMTAwO1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10LInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10L0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA+IDEwICYmIGxhc3QyRGlnaXRzIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGA0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDcgfHwgbGFzdERpZ2l0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LzQuCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsYXlhbGFtIFttbF1cbi8vISBhdXRob3IgOiBGbG95ZCBQaW5rIDogaHR0cHM6Ly9naXRodWIuY29tL2Zsb3lkcGlua1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1sID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWwnLCB7XG4gICAgICAgIG1vbnRoczogJ+C0nOC0qOC1geC0teC0sOC0v1/gtKvgtYbgtKzgtY3gtLDgtYHgtLXgtLDgtL9f4LSu4LS+4LW84LSa4LWN4LSa4LWNX+C0j+C0quC1jeC0sOC0v+C1vV/gtK7gtYfgtK/gtY1f4LSc4LWC4LW6X+C0nOC1guC0suC1iF/gtJPgtJfgtLjgtY3gtLHgtY3gtLHgtY1f4LS44LWG4LSq4LWN4LSx4LWN4LSx4LSC4LSs4LW8X+C0kuC0leC1jeC0n+C1i+C0rOC1vF/gtKjgtLXgtILgtKzgtbxf4LSh4LS/4LS44LSC4LSs4LW8Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+C0nOC0qOC1gS5f4LSr4LWG4LSs4LWN4LSw4LWBLl/gtK7gtL7gtbwuX+C0j+C0quC1jeC0sOC0vy5f4LSu4LWH4LSv4LWNX+C0nOC1guC1ul/gtJzgtYLgtLLgtYguX+C0k+C0ly5f4LS44LWG4LSq4LWN4LSx4LWN4LSxLl/gtJLgtJXgtY3gtJ/gtYsuX+C0qOC0teC0gi5f4LSh4LS/4LS44LSCLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgtJ7gtL7gtK/gtLHgtL7gtLTgtY3gtJpf4LSk4LS/4LSZ4LWN4LSV4LSz4LS+4LS04LWN4LSaX+C0muC1iuC0teC1jeC0teC0vuC0tOC1jeC0ml/gtKzgtYHgtKfgtKjgtL7gtLTgtY3gtJpf4LS14LWN4LSv4LS+4LS04LS+4LS04LWN4LSaX+C0teC1huC0s+C1jeC0s+C0v+C0r+C0vuC0tOC1jeC0ml/gtLbgtKjgtL/gtK/gtL7gtLTgtY3gtJonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgtJ7gtL7gtK/gtbxf4LSk4LS/4LSZ4LWN4LSV4LW+X+C0muC1iuC0teC1jeC0tV/gtKzgtYHgtKfgtbtf4LS14LWN4LSv4LS+4LS04LSCX+C0teC1huC0s+C1jeC0s+C0v1/gtLbgtKjgtL8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LSe4LS+X+C0pOC0v1/gtJrgtYpf4LSs4LWBX+C0teC1jeC0r+C0vl/gtLXgtYZf4LS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3MgLeC0qOC1gScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSAt4LSo4LWBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LSH4LSo4LWN4LSo4LWNXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+C0qOC0vuC0s+C1hl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+C0h+C0qOC1jeC0qOC0suC1hl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4LSV4LS04LS/4LSe4LWN4LSeXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIOC0leC0tOC0v+C0nuC1jeC0nuC1jScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4LSu4LWB4LW74LSq4LWNJyxcbiAgICAgICAgICAgIHM6ICfgtIXgtb3gtKog4LSo4LS/4LSu4LS/4LS34LSZ4LWN4LSZ4LW+JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4LS44LWG4LSV4LWN4LSV4LW74LSh4LWNJyxcbiAgICAgICAgICAgIG06ICfgtJLgtLDgtYEg4LSu4LS/4LSo4LS/4LSx4LWN4LSx4LWNJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4LSu4LS/4LSo4LS/4LSx4LWN4LSx4LWNJyxcbiAgICAgICAgICAgIGg6ICfgtJLgtLDgtYEg4LSu4LSj4LS/4LSV4LWN4LSV4LWC4LW8JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LSu4LSj4LS/4LSV4LWN4LSV4LWC4LW8JyxcbiAgICAgICAgICAgIGQ6ICfgtJLgtLDgtYEg4LSm4LS/4LS14LS44LSCJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4LSm4LS/4LS14LS44LSCJyxcbiAgICAgICAgICAgIE06ICfgtJLgtLDgtYEg4LSu4LS+4LS44LSCJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4LSu4LS+4LS44LSCJyxcbiAgICAgICAgICAgIHk6ICfgtJLgtLDgtYEg4LS14LW84LS34LSCJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4LS14LW84LS34LSCJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C0sOC0vuC0pOC1jeC0sOC0v3zgtLDgtL7gtLXgtL/gtLLgtYZ84LSJ4LSa4LWN4LSaIOC0leC0tOC0v+C0nuC1jeC0nuC1jXzgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIJ84LSw4LS+4LSk4LWN4LSw4LS/L2ksXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgtLDgtL7gtKTgtY3gtLDgtL8nICYmIGhvdXIgPj0gNCkgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C0ieC0muC1jeC0miDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY0nIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIInXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LSk4LWN4LSw4LS/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLDgtL7gtLXgtL/gtLLgtYYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0ieC0muC1jeC0miDgtJXgtLTgtL/gtJ7gtY3gtJ7gtY0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LSk4LWN4LSw4LS/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNb25nb2xpYW4gW21uXVxuLy8hIGF1dGhvciA6IEphdmtobGFudHVncyBOeWFtZG9yaiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXZraGFhbmo3XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdGN0LTRhdGN0L0g0YHQtdC60YPQvdC0JyA6ICfRhdGN0LTRhdGN0L0g0YHQtdC60YPQvdC00YvQvSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDRgdC10LrRg9C90LQnIDogJyDRgdC10LrRg9C90LTRi9C9Jyk7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINC80LjQvdGD0YInIDogJyDQvNC40L3Rg9GC0YvQvScpO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDRhtCw0LMnIDogJyDRhtCw0LPQuNC50L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg06nQtNOp0YAnIDogJyDTqdC00YDQuNC50L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YHQsNGAJyA6ICcg0YHQsNGA0YvQvScpO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDQttC40LsnIDogJyDQttC40LvQuNC50L0nKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBtbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21uJywge1xuICAgICAgICBtb250aHM6ICfQndGN0LPQtNKv0LPRjdGN0YAg0YHQsNGAX9Cl0L7RkdGA0LTRg9Cz0LDQsNGAINGB0LDRgF/Qk9GD0YDQsNCy0LTRg9Cz0LDQsNGAINGB0LDRgF/QlNOp0YDTqdCy0LTSr9Cz0Y3RjdGAINGB0LDRgF/QotCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CX0YPRgNCz0LDQtNGD0LPQsNCw0YAg0YHQsNGAX9CU0L7Qu9C00YPQs9Cw0LDRgCDRgdCw0YBf0J3QsNC50LzQtNGD0LPQsNCw0YAg0YHQsNGAX9CV0YHQtNKv0LPRjdGN0YAg0YHQsNGAX9CQ0YDQsNCy0LTRg9Cz0LDQsNGAINGB0LDRgF/QkNGA0LLQsNC9INC90Y3Qs9C00q/Qs9GN0Y3RgCDRgdCw0YBf0JDRgNCy0LDQvSDRhdC+0ZHRgNC00YPQs9Cw0LDRgCDRgdCw0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnMSDRgdCw0YBfMiDRgdCw0YBfMyDRgdCw0YBfNCDRgdCw0YBfNSDRgdCw0YBfNiDRgdCw0YBfNyDRgdCw0YBfOCDRgdCw0YBfOSDRgdCw0YBfMTAg0YHQsNGAXzExINGB0LDRgF8xMiDRgdCw0YAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn0J3Rj9C8X9CU0LDQstCw0LBf0JzRj9Cz0LzQsNGAX9Cb0YXQsNCz0LLQsF/Qn9Kv0YDRjdCyX9CR0LDQsNGB0LDQvV/QkdGP0LzQsdCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0J3Rj9C8X9CU0LDQsl/QnNGP0LNf0JvRhdCwX9Cf0q/RgF/QkdCw0LBf0JHRj9C8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cd0Y9f0JTQsF/QnNGPX9Cb0YVf0J/Sr1/QkdCwX9CR0Y8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdZWVlZINC+0L3RiyBNTU1N0YvQvSBEJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVkg0L7QvdGLIE1NTU3Ri9C9IEQgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIFlZWVkg0L7QvdGLIE1NTU3Ri9C9IEQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0q7TqHzSrtClL2ksXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn0q7QpSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfSrtOoJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfSrtClJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb06jQvdOp06nQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JzQsNGA0LPQsNCw0YhdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW9CY0YDRjdGFXSBkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb06jRh9C40LPQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9Oo0L3Qs9Op0YDRgdOp0L1dIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDQtNCw0YDQsNCwJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDTqdC80L3TqScsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSDTqdC006nRgC8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDTqdC006nRgCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYXJhdGhpIFttcl1cbi8vISBhdXRob3IgOiBIYXJzaGFkIEthbGUgOiBodHRwczovL2dpdGh1Yi5jb20va2FsZWh2XG4vLyEgYXV0aG9yIDogVml2ZWsgQXRoYWx5ZSA6IGh0dHBzOi8vZ2l0aHViLmNvbS92bmF0aGFseWVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgpacnLFxuICAgICAgICAgICAgJzInOiAn4KWoJyxcbiAgICAgICAgICAgICczJzogJ+ClqScsXG4gICAgICAgICAgICAnNCc6ICfgpaonLFxuICAgICAgICAgICAgJzUnOiAn4KWrJyxcbiAgICAgICAgICAgICc2JzogJ+ClrCcsXG4gICAgICAgICAgICAnNyc6ICfgpa0nLFxuICAgICAgICAgICAgJzgnOiAn4KWuJyxcbiAgICAgICAgICAgICc5JzogJ+ClrycsXG4gICAgICAgICAgICAnMCc6ICfgpaYnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KWnJzogJzEnLFxuICAgICAgICAgICAgJ+ClqCc6ICcyJyxcbiAgICAgICAgICAgICfgpaknOiAnMycsXG4gICAgICAgICAgICAn4KWqJzogJzQnLFxuICAgICAgICAgICAgJ+Clqyc6ICc1JyxcbiAgICAgICAgICAgICfgpawnOiAnNicsXG4gICAgICAgICAgICAn4KWtJzogJzcnLFxuICAgICAgICAgICAgJ+Clric6ICc4JyxcbiAgICAgICAgICAgICfgpa8nOiAnOScsXG4gICAgICAgICAgICAn4KWmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lTXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBvdXRwdXQgPSAnJztcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpJXgpL7gpLngpYAg4KS44KWH4KSV4KSC4KSmJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KS44KWH4KSV4KSC4KSmJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJUg4KSu4KS/4KSo4KS/4KSfJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSu4KS/4KSo4KS/4KSf4KWHJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJUg4KSk4KS+4KS4JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSk4KS+4KS4JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJUg4KSm4KS/4KS14KS4JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSm4KS/4KS14KS4JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJUg4KSu4KS54KS/4KSo4KS+JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KSu4KS54KS/4KSo4KWHJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCA9ICfgpI/gpJUg4KS14KSw4KWN4KS3JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnJWQg4KS14KSw4KWN4KS34KWHJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSV4KS+4KS54KWAIOCkuOClh+CkleCkguCkpuCkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkuOClh+CkleCkguCkpuCkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkruCkv+CkqOCkv+Ckn+Ckvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkv+CkqOCkv+Ckn+CkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkpOCkvuCkuOCkvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpOCkvuCkuOCkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkpuCkv+CkteCkuOCkvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkpuCkv+CkteCkuOCkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkruCkueCkv+CkqOCljeCkr+Ckvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkruCkueCkv+CkqOCljeCkr+CkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkteCksOCljeCkt+Ckvic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJyVkIOCkteCksOCljeCkt+CkvuCkgic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB2YXIgbXIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtcicsIHtcbiAgICAgICAgbW9udGhzOiAn4KSc4KS+4KSo4KWH4KS14KS+4KSw4KWAX+Ckq+Clh+CkrOCljeCksOClgeCkteCkvuCksOClgF/gpK7gpL7gpLDgpY3gpJpf4KSP4KSq4KWN4KSw4KS/4KSyX+CkruClh1/gpJzgpYLgpKhf4KSc4KWB4KSy4KWIX+CkkeCkl+CkuOCljeCkn1/gpLjgpKrgpY3gpJ/gpYfgpILgpKzgpLBf4KSR4KSV4KWN4KSf4KWL4KSs4KSwX+CkqOCli+CkteCljeCkueClh+CkguCkrOCksF/gpKHgpL/gpLjgpYfgpILgpKzgpLAnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4KSc4KS+4KSo4KWHLl/gpKvgpYfgpKzgpY3gpLDgpYEuX+CkruCkvuCksOCljeCkmi5f4KSP4KSq4KWN4KSw4KS/Ll/gpK7gpYcuX+CknOClguCkqC5f4KSc4KWB4KSy4KWILl/gpJHgpJcuX+CkuOCkquCljeCkn+Clh+Ckgi5f4KSR4KSV4KWN4KSf4KWLLl/gpKjgpYvgpLXgpY3gpLngpYfgpIIuX+CkoeCkv+CkuOClh+Ckgi4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4KSw4KS14KS/4KS14KS+4KSwX+CkuOCli+CkruCkteCkvuCksF/gpK7gpILgpJfgpLPgpLXgpL7gpLBf4KSs4KWB4KSn4KS14KS+4KSwX+Ckl+ClgeCksOClguCkteCkvuCksF/gpLbgpYHgpJXgpY3gpLDgpLXgpL7gpLBf4KS24KSo4KS/4KS14KS+4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4KSw4KS14KS/X+CkuOCli+Ckrl/gpK7gpILgpJfgpLNf4KSs4KWB4KSnX+Ckl+ClgeCksOClgl/gpLbgpYHgpJXgpY3gpLBf4KS24KSo4KS/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+CksF/gpLjgpYtf4KSu4KSCX+CkrOClgV/gpJfgpYFf4KS24KWBX+Ckticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnQSBoOm1tIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgICAgICBMVFM6ICdBIGg6bW06c3Mg4KS14KS+4KSc4KSk4KS+JyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4KS14KS+4KSc4KSk4KS+JyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KSG4KScXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CkieCkpuCljeCkr+Ckvl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CkleCkvuCksl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4KSu4KS+4KSX4KWA4KSyXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz4KSu4KSn4KWN4KSv4KWHJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+CkquClguCksOCljeCkteClgCcsXG4gICAgICAgICAgICBzOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIG06IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgaDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBkOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIE06IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgTU06IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgeTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgpafgpajgpangpargpavgpazgpa3gpa7gpa/gpaZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gpKrgpLngpL7gpJ/gpYd84KS44KSV4KS+4KSz4KWAfOCkpuClgeCkquCkvuCksOClgHzgpLjgpL7gpK/gpILgpJXgpL7gpLPgpYB84KSw4KS+4KSk4KWN4KSw4KWALyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4KSq4KS54KS+4KSf4KWHJyB8fCBtZXJpZGllbSA9PT0gJ+CkuOCkleCkvuCks+ClgCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgpKbgpYHgpKrgpL7gpLDgpYAnIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgpLjgpL7gpK/gpILgpJXgpL7gpLPgpYAnIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgpLDgpL7gpKTgpY3gpLDgpYAnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMiA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA+PSAwICYmIGhvdXIgPCA2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKrgpLngpL7gpJ/gpYcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkleCkvuCks+ClgCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KWB4KSq4KS+4KSw4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpL7gpK/gpILgpJXgpL7gpLPgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOCljeCksOClgCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBtcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWxheSBbbXNdXG4vLyEgYXV0aG9yIDogV2VsZGFuIEphbWlsaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWxkYW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FoX0lzX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncGFnaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICd0ZW5nYWhhcmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3BldGFuZycgfHwgbWVyaWRpZW0gPT09ICdtYWxhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXJpIGluaSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbG1hcmluIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBzYWF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBtOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbml0JyxcbiAgICAgICAgICAgIGg6ICdzZWphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgaGFyaScsXG4gICAgICAgICAgICBNOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhaHVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFodW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTWFsYXkgW21zLW15XVxuLy8hIG5vdGUgOiBERVBSRUNBVEVELCB0aGUgY29ycmVjdCBvbmUgaXMgW21zXVxuLy8hIGF1dGhvciA6IFdlbGRhbiBKYW1pbGkgOiBodHRwczovL2dpdGh1Yi5jb20vd2VsZGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbXNNeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zLW15Jywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJpX0ZlYnJ1YXJpX01hY19BcHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0FoX0lzX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISC5tbScsXG4gICAgICAgICAgICBMVFM6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAncGFnaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICd0ZW5nYWhhcmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3BldGFuZycgfHwgbWVyaWRpZW0gPT09ICdtYWxhbScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXJpIGluaSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3B1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0tlbG1hcmluIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHM6ICdiZWJlcmFwYSBzYWF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBtOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbml0JyxcbiAgICAgICAgICAgIGg6ICdzZWphbScsXG4gICAgICAgICAgICBoaDogJyVkIGphbScsXG4gICAgICAgICAgICBkOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgaGFyaScsXG4gICAgICAgICAgICBNOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTTogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHk6ICdzZXRhaHVuJyxcbiAgICAgICAgICAgIHl5OiAnJWQgdGFodW4nLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXNNeTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBNYWx0ZXNlIChNYWx0YSkgW210XVxuLy8hIGF1dGhvciA6IEFsZXNzYW5kcm8gTWFydWNjaWEgOiBodHRwczovL2dpdGh1Yi5jb20vYWxlc21hXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtdCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFubmFyX0ZyYXJfTWFyenVfQXByaWxfTWVqanVfxKB1bmp1X0x1bGp1X0F3d2lzc3VfU2V0dGVtYnJ1X090dHVicnVfTm92ZW1icnVfRGnEi2VtYnJ1Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GcmFfTWFyX0Fwcl9NZWpfxKB1bl9MdWxfQXd3X1NldF9PdHRfTm92X0RpxIsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnSWwtxKZhZGRfSXQtVG5lam5fSXQtVGxpZXRhX0wtRXJiZ8SnYV9JbC3EpmFtaXNfSWwtxKBpbWfEp2FfSXMtU2lidCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ8SmYWRfVG5lX1RsaV9FcmJfxKZhbV/EoGltX1NpYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfEpmFfVG5fVGxfRXJfxKZhX8SgaV9TaScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJbGx1bSBmaWwtXUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbR8SnYWRhIGZpbC1dTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtmaWwtXUxUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWwtYmllcmHEpyBmaWwtXUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbbGkgZ8SnYWRkYV0gW2ZpbC1dTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdm4oCZICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBpbHUnLFxuICAgICAgICAgICAgczogJ2Z0aXQgc2Vrb25kaScsXG4gICAgICAgICAgICBzczogJyVkIHNla29uZGknLFxuICAgICAgICAgICAgbTogJ21pbnV0YScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0aScsXG4gICAgICAgICAgICBoOiAnc2llZ8SnYScsXG4gICAgICAgICAgICBoaDogJyVkIHNpZWfEp2F0JyxcbiAgICAgICAgICAgIGQ6ICfEoXVybmF0YScsXG4gICAgICAgICAgICBkZDogJyVkIMShcmFuZXQnLFxuICAgICAgICAgICAgTTogJ3hhaGFyJyxcbiAgICAgICAgICAgIE1NOiAnJWQgeGh1cicsXG4gICAgICAgICAgICB5OiAnc2VuYScsXG4gICAgICAgICAgICB5eTogJyVkIHNuaScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQnVybWVzZSBbbXldXG4vLyEgYXV0aG9yIDogU3F1YXIgdGVhbSwgbXlzcXVhci5jb21cbi8vISBhdXRob3IgOiBEYXZpZCBSb3NzZWxsYXQgOiBodHRwczovL2dpdGh1Yi5jb20vZ2hvbGFkclxuLy8hIGF1dGhvciA6IFRpbiBBdW5nIExpbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS90aGFueWF3emlubWluXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4YGBJyxcbiAgICAgICAgICAgICcyJzogJ+GBgicsXG4gICAgICAgICAgICAnMyc6ICfhgYMnLFxuICAgICAgICAgICAgJzQnOiAn4YGEJyxcbiAgICAgICAgICAgICc1JzogJ+GBhScsXG4gICAgICAgICAgICAnNic6ICfhgYYnLFxuICAgICAgICAgICAgJzcnOiAn4YGHJyxcbiAgICAgICAgICAgICc4JzogJ+GBiCcsXG4gICAgICAgICAgICAnOSc6ICfhgYknLFxuICAgICAgICAgICAgJzAnOiAn4YGAJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+GBgSc6ICcxJyxcbiAgICAgICAgICAgICfhgYInOiAnMicsXG4gICAgICAgICAgICAn4YGDJzogJzMnLFxuICAgICAgICAgICAgJ+GBhCc6ICc0JyxcbiAgICAgICAgICAgICfhgYUnOiAnNScsXG4gICAgICAgICAgICAn4YGGJzogJzYnLFxuICAgICAgICAgICAgJ+GBhyc6ICc3JyxcbiAgICAgICAgICAgICfhgYgnOiAnOCcsXG4gICAgICAgICAgICAn4YGJJzogJzknLFxuICAgICAgICAgICAgJ+GBgCc6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciBteSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ215Jywge1xuICAgICAgICBtb250aHM6ICfhgIfhgJThgLrhgJThgJ3hgKvhgJvhgK5f4YCW4YCx4YCW4YCx4YCs4YC64YCd4YCr4YCb4YCuX+GAmeGAkOGAul/hgKfhgJXhgLzhgK5f4YCZ4YCxX+GAh+GAveGAlOGAul/hgIfhgLDhgJzhgK3hgK/hgIThgLpf4YCe4YC84YCC4YCv4YCQ4YC6X+GAheGAgOGAuuGAkOGAhOGAuuGAmOGArF/hgKHhgLHhgKzhgIDhgLrhgJDhgK3hgK/hgJjhgKxf4YCU4YCt4YCv4YCd4YCE4YC64YCY4YCsX+GAkuGAruGAh+GAhOGAuuGAmOGArCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfhgIfhgJThgLpf4YCW4YCxX+GAmeGAkOGAul/hgJXhgLzhgK5f4YCZ4YCxX+GAh+GAveGAlOGAul/hgJzhgK3hgK/hgIThgLpf4YCe4YC8X+GAheGAgOGAul/hgKHhgLHhgKzhgIDhgLpf4YCU4YCt4YCvX+GAkuGAricuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfhgJDhgJThgIThgLrhgLnhgILhgJThgL3hgLFf4YCQ4YCU4YCE4YC64YC54YCc4YCsX+GAoeGAhOGAuuGAueGAguGAq1/hgJfhgK/hgJLhgLnhgJPhgJ/hgLDhgLhf4YCA4YC84YCs4YCe4YCV4YCQ4YCx4YC4X+GAnuGAseGArOGAgOGAvOGArF/hgIXhgJThgLEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfhgJThgL3hgLFf4YCc4YCsX+GAguGAq1/hgJ/hgLDhgLhf4YCA4YC84YCsX+GAnuGAseGArF/hgJThgLEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4YCU4YC94YCxX+GAnOGArF/hgILhgKtf4YCf4YCw4YC4X+GAgOGAvOGArF/hgJ7hgLHhgKxf4YCU4YCxJy5zcGxpdCgnXycpLFxuXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vhgJrhgJThgLEuXSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+GAmeGAlOGAgOGAuuGAluGAvOGAlOGAul0gTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4YCZ4YCU4YCxLuGAgF0gTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4YCV4YC84YCu4YC44YCB4YCy4YC34YCe4YCx4YCsXSBkZGRkIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn4YCc4YCs4YCZ4YCK4YC64YC3ICVzIOGAmeGAvuGArCcsXG4gICAgICAgICAgICBwYXN0OiAn4YCc4YC94YCU4YC64YCB4YCy4YC34YCe4YCx4YCsICVzIOGAgCcsXG4gICAgICAgICAgICBzOiAn4YCF4YCA4YC54YCA4YCU4YC6LuGAoeGAlOGAiuGAuuGAuOGAhOGAmuGAuicsXG4gICAgICAgICAgICBzczogJyVkIOGAheGAgOGAueGAgOGAlOGAt+GAuicsXG4gICAgICAgICAgICBtOiAn4YCQ4YCF4YC64YCZ4YCt4YCU4YCF4YC6JyxcbiAgICAgICAgICAgIG1tOiAnJWQg4YCZ4YCt4YCU4YCF4YC6JyxcbiAgICAgICAgICAgIGg6ICfhgJDhgIXhgLrhgJThgKzhgJvhgK4nLFxuICAgICAgICAgICAgaGg6ICclZCDhgJThgKzhgJvhgK4nLFxuICAgICAgICAgICAgZDogJ+GAkOGAheGAuuGAm+GAgOGAuicsXG4gICAgICAgICAgICBkZDogJyVkIOGAm+GAgOGAuicsXG4gICAgICAgICAgICBNOiAn4YCQ4YCF4YC64YCcJyxcbiAgICAgICAgICAgIE1NOiAnJWQg4YCcJyxcbiAgICAgICAgICAgIHk6ICfhgJDhgIXhgLrhgJThgL7hgIXhgLonLFxuICAgICAgICAgICAgeXk6ICclZCDhgJThgL7hgIXhgLonLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4YGB4YGC4YGD4YGE4YGF4YGG4YGH4YGI4YGJ4YGAXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbXk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTm9yd2VnaWFuIEJva23DpWwgW25iXVxuLy8hIGF1dGhvcnMgOiBFc3BlbiBIb3ZsYW5kc2RhbCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZXh4YXJzXG4vLyEgICAgICAgICAgIFNpZ3VyZCBHYXJ0bWFubiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zaWd1cmRnYVxuLy8hICAgICAgICAgICBTdGVwaGVuIFJhbXRodW4gOiBodHRwczovL2dpdGh1Yi5jb20vc3RlcGhlbnJhbXRodW5cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBuYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25iJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnc8O4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbMO4cmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3PDuC5fbWEuX3RpLl9vbi5fdG8uX2ZyLl9sw7guJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3PDuF9tYV90aV9vbl90b19mcl9sw7gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2kgZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tpIG1vcmdlbiBrbC5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2kgZ8OlciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2ZvcnJpZ2VdIGRkZGQgW2tsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgc2lkZW4nLFxuICAgICAgICAgICAgczogJ25vZW4gc2VrdW5kZXInLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtOiAnZXR0IG1pbnV0dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0dGVyJyxcbiAgICAgICAgICAgIGg6ICdlbiB0aW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltZXInLFxuICAgICAgICAgICAgZDogJ2VuIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2VyJyxcbiAgICAgICAgICAgIE06ICdlbiBtw6VuZWQnLFxuICAgICAgICAgICAgTU06ICclZCBtw6VuZWRlcicsXG4gICAgICAgICAgICB5OiAnZXR0IMOlcicsXG4gICAgICAgICAgICB5eTogJyVkIMOlcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogTmVwYWxlc2UgW25lXVxuLy8hIGF1dGhvciA6IHN1dmFzaCA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdXZhc2hcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICAgICAnMSc6ICfgpacnLFxuICAgICAgICAgICAgJzInOiAn4KWoJyxcbiAgICAgICAgICAgICczJzogJ+ClqScsXG4gICAgICAgICAgICAnNCc6ICfgpaonLFxuICAgICAgICAgICAgJzUnOiAn4KWrJyxcbiAgICAgICAgICAgICc2JzogJ+ClrCcsXG4gICAgICAgICAgICAnNyc6ICfgpa0nLFxuICAgICAgICAgICAgJzgnOiAn4KWuJyxcbiAgICAgICAgICAgICc5JzogJ+ClrycsXG4gICAgICAgICAgICAnMCc6ICfgpaYnLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICAgICAn4KWnJzogJzEnLFxuICAgICAgICAgICAgJ+ClqCc6ICcyJyxcbiAgICAgICAgICAgICfgpaknOiAnMycsXG4gICAgICAgICAgICAn4KWqJzogJzQnLFxuICAgICAgICAgICAgJ+Clqyc6ICc1JyxcbiAgICAgICAgICAgICfgpawnOiAnNicsXG4gICAgICAgICAgICAn4KWtJzogJzcnLFxuICAgICAgICAgICAgJ+Clric6ICc4JyxcbiAgICAgICAgICAgICfgpa8nOiAnOScsXG4gICAgICAgICAgICAn4KWmJzogJzAnLFxuICAgICAgICB9O1xuXG4gICAgdmFyIG5lID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmUnLCB7XG4gICAgICAgIG1vbnRoczogJ+CknOCkqOCkteCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCkv+Cksl/gpK7gpIhf4KSc4KWB4KSoX+CknOClgeCksuCkvuCkiF/gpIXgpJfgpLfgpY3gpJ9f4KS44KWH4KSq4KWN4KSf4KWH4KSu4KWN4KSs4KSwX+CkheCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpK3gpYfgpK7gpY3gpKzgpLBf4KSh4KS/4KS44KWH4KSu4KWN4KSs4KSwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CknOCkqC5f4KSr4KWH4KSs4KWN4KSw4KWBLl/gpK7gpL7gpLDgpY3gpJpf4KSF4KSq4KWN4KSw4KS/Ll/gpK7gpIhf4KSc4KWB4KSoX+CknOClgeCksuCkvuCkiC5f4KSF4KSXLl/gpLjgpYfgpKrgpY3gpJ8uX+CkheCkleCljeCkn+Cliy5f4KSo4KWL4KSt4KWHLl/gpKHgpL/gpLjgpYcuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CkhuCkh+CkpOCkrOCkvuCksF/gpLjgpYvgpK7gpKzgpL7gpLBf4KSu4KSZ4KWN4KSX4KSy4KSs4KS+4KSwX+CkrOClgeCkp+CkrOCkvuCksF/gpKzgpL/gpLngpL/gpKzgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KSs4KS+4KSwX+CktuCkqOCkv+CkrOCkvuCksCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CkhuCkh+CkpC5f4KS44KWL4KSuLl/gpK7gpJngpY3gpJfgpLIuX+CkrOClgeCkpy5f4KSs4KS/4KS54KS/Ll/gpLbgpYHgpJXgpY3gpLAuX+CktuCkqOCkvy4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4KSGLl/gpLjgpYsuX+CkruCkgi5f4KSs4KWBLl/gpKzgpL8uX+CktuClgS5f4KS2Licuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdB4KSV4KWLIGg6bW0g4KSs4KSc4KWHJyxcbiAgICAgICAgICAgIExUUzogJ0HgpJXgpYsgaDptbTpzcyDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSwgQeCkleCliyBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEHgpJXgpYsgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSk4KS/fOCkrOCkv+CkueCkvuCkqHzgpKbgpL/gpIngpIHgpLjgpYt84KS44KS+4KSB4KSdLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4KSw4KS+4KSk4KS/Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KSs4KS/4KS54KS+4KSoJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkpuCkv+CkieCkgeCkuOCliycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KS44KS+4KSB4KSdJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOCkvyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSs4KS/4KS54KS+4KSoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKbgpL/gpIngpIHgpLjgpYsnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkvuCkgeCknSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KS/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KSG4KScXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CkreCli+CksuCkv10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb4KSG4KSJ4KSB4KSm4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4KS54KS/4KSc4KWLXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vgpJfgpI/gpJXgpYtdIGRkZGRbLF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+CkruCkvicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg4KSF4KSX4KS+4KSh4KS/JyxcbiAgICAgICAgICAgIHM6ICfgpJXgpYfgpLngpYAg4KSV4KWN4KS34KSjJyxcbiAgICAgICAgICAgIHNzOiAnJWQg4KS44KWH4KSV4KWH4KSj4KWN4KShJyxcbiAgICAgICAgICAgIG06ICfgpI/gpJUg4KSu4KS/4KSo4KWH4KSfJyxcbiAgICAgICAgICAgIG1tOiAnJWQg4KSu4KS/4KSo4KWH4KSfJyxcbiAgICAgICAgICAgIGg6ICfgpI/gpJUg4KSY4KSj4KWN4KSf4KS+JyxcbiAgICAgICAgICAgIGhoOiAnJWQg4KSY4KSj4KWN4KSf4KS+JyxcbiAgICAgICAgICAgIGQ6ICfgpI/gpJUg4KSm4KS/4KSoJyxcbiAgICAgICAgICAgIGRkOiAnJWQg4KSm4KS/4KSoJyxcbiAgICAgICAgICAgIE06ICfgpI/gpJUg4KSu4KS54KS/4KSo4KS+JyxcbiAgICAgICAgICAgIE1NOiAnJWQg4KSu4KS54KS/4KSo4KS+JyxcbiAgICAgICAgICAgIHk6ICfgpI/gpJUg4KSs4KSw4KWN4KS3JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4KSs4KSw4KWN4KS3JyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5lO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IER1dGNoIFtubF1cbi8vISBhdXRob3IgOiBKb3JpcyBSw7ZsaW5nIDogaHR0cHM6Ly9naXRodWIuY29tL2pvcmlzcm9saW5nXG4vLyEgYXV0aG9yIDogSmFjb2IgTWlkZGFnIDogaHR0cHM6Ly9naXRodWIuY29tL21pZGRhZ2pcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydFdpdGhEb3RzID0gJ2phbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPSAnamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15qYW4vaSxcbiAgICAgICAgICAgIC9eZmViL2ksXG4gICAgICAgICAgICAvXm1hYXJ0fG1ydC4/JC9pLFxuICAgICAgICAgICAgL15hcHIvaSxcbiAgICAgICAgICAgIC9ebWVpJC9pLFxuICAgICAgICAgICAgL15qdW5baS5dPyQvaSxcbiAgICAgICAgICAgIC9eanVsW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmF1Zy9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2t0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kZWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2k7XG5cbiAgICB2YXIgbmwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdubCcsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyaV9mZWJydWFyaV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aG91dERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oamFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xtZWl8anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2ksXG5cbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICB3ZWVrZGF5czogJ3pvbmRhZ19tYWFuZGFnX2RpbnNkYWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWcnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICd6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnem9fbWFfZGlfd29fZG9fdnJfemEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3ZhbmRhYWcgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dpc3RlcmVuIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1thZmdlbG9wZW5dIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ292ZXIgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGdlbGVkZW4nLFxuICAgICAgICAgICAgczogJ2VlbiBwYWFyIHNlY29uZGVuJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vjb25kZW4nLFxuICAgICAgICAgICAgbTogJ8Opw6luIG1pbnV1dCcsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnV0ZW4nLFxuICAgICAgICAgICAgaDogJ8Opw6luIHV1cicsXG4gICAgICAgICAgICBoaDogJyVkIHV1cicsXG4gICAgICAgICAgICBkOiAnw6nDqW4gZGFnJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGFnZW4nLFxuICAgICAgICAgICAgTTogJ8Opw6luIG1hYW5kJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWFhbmRlbicsXG4gICAgICAgICAgICB5OiAnw6nDqW4gamFhcicsXG4gICAgICAgICAgICB5eTogJyVkIGphYXInLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjAgPyAnc3RlJyA6ICdkZScpXG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogRHV0Y2ggKEJlbGdpdW0pIFtubC1iZV1cbi8vISBhdXRob3IgOiBKb3JpcyBSw7ZsaW5nIDogaHR0cHM6Ly9naXRodWIuY29tL2pvcmlzcm9saW5nXG4vLyEgYXV0aG9yIDogSmFjb2IgTWlkZGFnIDogaHR0cHM6Ly9naXRodWIuY29tL21pZGRhZ2pcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHNTaG9ydFdpdGhEb3RzID0gJ2phbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0V2l0aG91dERvdHMgPSAnamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAgICAgL15qYW4vaSxcbiAgICAgICAgICAgIC9eZmViL2ksXG4gICAgICAgICAgICAvXm1hYXJ0fG1ydC4/JC9pLFxuICAgICAgICAgICAgL15hcHIvaSxcbiAgICAgICAgICAgIC9ebWVpJC9pLFxuICAgICAgICAgICAgL15qdW5baS5dPyQvaSxcbiAgICAgICAgICAgIC9eanVsW2kuXT8kL2ksXG4gICAgICAgICAgICAvXmF1Zy9pLFxuICAgICAgICAgICAgL15zZXAvaSxcbiAgICAgICAgICAgIC9eb2t0L2ksXG4gICAgICAgICAgICAvXm5vdi9pLFxuICAgICAgICAgICAgL15kZWMvaSxcbiAgICAgICAgXSxcbiAgICAgICAgbW9udGhzUmVnZXggPSAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2k7XG5cbiAgICB2YXIgbmxCZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25sLWJlJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIG1vbnRoc1JlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4OiAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXihqYW5cXC4/fGZlYlxcLj98bXJ0XFwuP3xhcHJcXC4/fG1laXxqdVtubF1cXC4/fGF1Z1xcLj98c2VwXFwuP3xva3RcXC4/fG5vdlxcLj98ZGVjXFwuPykvaSxcblxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuXG4gICAgICAgIHdlZWtkYXlzOiAnem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3pvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICd6b19tYV9kaV93b19kb192cl96YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdmFuZGFhZyBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2lzdGVyZW4gb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb3ZlciAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgZ2VsZWRlbicsXG4gICAgICAgICAgICBzOiAnZWVuIHBhYXIgc2Vjb25kZW4nLFxuICAgICAgICAgICAgc3M6ICclZCBzZWNvbmRlbicsXG4gICAgICAgICAgICBtOiAnw6nDqW4gbWludXV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoOiAnw6nDqW4gdXVyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdXVyJyxcbiAgICAgICAgICAgIGQ6ICfDqcOpbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdlbicsXG4gICAgICAgICAgICBNOiAnw6nDqW4gbWFhbmQnLFxuICAgICAgICAgICAgTU06ICclZCBtYWFuZGVuJyxcbiAgICAgICAgICAgIHk6ICfDqcOpbiBqYWFyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgamFhcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdGV8ZGUpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgIChudW1iZXIgPT09IDEgfHwgbnVtYmVyID09PSA4IHx8IG51bWJlciA+PSAyMCA/ICdzdGUnIDogJ2RlJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBubEJlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE55bm9yc2sgW25uXVxuLy8hIGF1dGhvcnMgOiBodHRwczovL2dpdGh1Yi5jb20vbWVjaHV3aW5kXG4vLyEgICAgICAgICAgIFN0ZXBoZW4gUmFtdGh1biA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGVucmFtdGh1blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG5uID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbm4nLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hcnNfYXByLl9tYWlfanVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICdzdW5kYWdfbcOlbmRhZ190eXNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xhdXJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzdS5fbcOlLl90eS5fb24uX3RvLl9mci5fbGF1Licuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzdV9tw6VfdHlfb25fdG9fZnJfbGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSSBkYWcga2xva2thXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0kgbW9yZ29uIGtsb2trYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSSBnw6VyIGtsb2trYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbRsO4cmVnw6VhbmRlXSBkZGRkIFtrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHNpZGFuJyxcbiAgICAgICAgICAgIHM6ICdub2tyZSBzZWt1bmQnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmQnLFxuICAgICAgICAgICAgbTogJ2VpdCBtaW51dHQnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dHQnLFxuICAgICAgICAgICAgaDogJ2VpbiB0aW1lJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGltYXInLFxuICAgICAgICAgICAgZDogJ2VpbiBkYWcnLFxuICAgICAgICAgICAgZGQ6ICclZCBkYWdhcicsXG4gICAgICAgICAgICBNOiAnZWluIG3DpW5hZCcsXG4gICAgICAgICAgICBNTTogJyVkIG3DpW5hZGVyJyxcbiAgICAgICAgICAgIHk6ICdlaXQgw6VyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw6VyJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBubjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBPY2NpdGFuLCBsZW5nYWRvY2lhbiBkaWFsZWN0ZSBbb2MtbG5jXVxuLy8hIGF1dGhvciA6IFF1ZW50aW4gUEFHw4hTIDogaHR0cHM6Ly9naXRodWIuY29tL1F1ZW50eTMxXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgb2NMbmMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdvYy1sbmMnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ2dlbmnDqHJfZmVicmnDqHJfbWFyw6dfYWJyaWxfbWFpX2p1bmhfanVsaGV0X2Fnb3N0X3NldGVtYnJlX29jdMOyYnJlX25vdmVtYnJlX2RlY2VtYnJlJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6IFwiZGUgZ2VuacOocl9kZSBmZWJyacOocl9kZSBtYXLDp19kJ2FicmlsX2RlIG1haV9kZSBqdW5oX2RlIGp1bGhldF9kJ2Fnb3N0X2RlIHNldGVtYnJlX2Qnb2N0w7JicmVfZGUgbm92ZW1icmVfZGUgZGVjZW1icmVcIi5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL0Rbb0RdPyhcXHMpK01NTU0vLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ2dlbi5fZmVici5fbWFyw6dfYWJyLl9tYWlfanVuaF9qdWxoLl9hZ28uX3NldC5fb2N0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnZGltZW5nZV9kaWx1bnNfZGltYXJzX2RpbcOoY3Jlc19kaWrDsnVzX2RpdmVuZHJlc19kaXNzYWJ0ZScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RnLl9kbC5fZG0uX2RjLl9kai5fZHYuX2RzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdkZ19kbF9kbV9kY19kal9kdl9kcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnRCBNTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gW2RlXSBZWVlZIFthXSBIOm1tJyxcbiAgICAgICAgICAgIGxsbDogJ0QgTU1NIFlZWVksIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFtkZV0gWVlZWSBbYV0gSDptbScsXG4gICAgICAgICAgICBsbGxsOiAnZGRkIEQgTU1NIFlZWVksIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1t1w6hpIGFdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbZGVtYW4gYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2nDqHIgYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtwYXNzYXQgYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IFwiZCdhcXXDrSAlc1wiLFxuICAgICAgICAgICAgcGFzdDogJ2ZhICVzJyxcbiAgICAgICAgICAgIHM6ICd1bmFzIHNlZ29uZGFzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2Vnb25kYXMnLFxuICAgICAgICAgICAgbTogJ3VuYSBtaW51dGEnLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGFzJyxcbiAgICAgICAgICAgIGg6ICd1bmEgb3JhJyxcbiAgICAgICAgICAgIGhoOiAnJWQgb3JhcycsXG4gICAgICAgICAgICBkOiAndW4gam9ybicsXG4gICAgICAgICAgICBkZDogJyVkIGpvcm5zJyxcbiAgICAgICAgICAgIE06ICd1biBtZXMnLFxuICAgICAgICAgICAgTU06ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5OiAndW4gYW4nLFxuICAgICAgICAgICAgeXk6ICclZCBhbnMnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0ocnxufHR8w6h8YSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPVxuICAgICAgICAgICAgICAgIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gMlxuICAgICAgICAgICAgICAgICAgICA/ICduJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gM1xuICAgICAgICAgICAgICAgICAgICA/ICdyJ1xuICAgICAgICAgICAgICAgICAgICA6IG51bWJlciA9PT0gNFxuICAgICAgICAgICAgICAgICAgICA/ICd0J1xuICAgICAgICAgICAgICAgICAgICA6ICfDqCc7XG4gICAgICAgICAgICBpZiAocGVyaW9kID09PSAndycgfHwgcGVyaW9kID09PSAnVycpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAnYSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9jTG5jO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFB1bmphYmkgKEluZGlhKSBbcGEtaW5dXG4vLyEgYXV0aG9yIDogSGFycHJlZXQgU2luZ2ggOiBodHRwczovL2dpdGh1Yi5jb20vaGFycHJlZXRraGFsc2FndGJpdFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CppycsXG4gICAgICAgICAgICAnMic6ICfgqagnLFxuICAgICAgICAgICAgJzMnOiAn4KmpJyxcbiAgICAgICAgICAgICc0JzogJ+CpqicsXG4gICAgICAgICAgICAnNSc6ICfgqasnLFxuICAgICAgICAgICAgJzYnOiAn4KmsJyxcbiAgICAgICAgICAgICc3JzogJ+CprScsXG4gICAgICAgICAgICAnOCc6ICfgqa4nLFxuICAgICAgICAgICAgJzknOiAn4KmvJyxcbiAgICAgICAgICAgICcwJzogJ+CppicsXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgICAgICfgqacnOiAnMScsXG4gICAgICAgICAgICAn4KmoJzogJzInLFxuICAgICAgICAgICAgJ+CpqSc6ICczJyxcbiAgICAgICAgICAgICfgqaonOiAnNCcsXG4gICAgICAgICAgICAn4KmrJzogJzUnLFxuICAgICAgICAgICAgJ+CprCc6ICc2JyxcbiAgICAgICAgICAgICfgqa0nOiAnNycsXG4gICAgICAgICAgICAn4KmuJzogJzgnLFxuICAgICAgICAgICAgJ+Cpryc6ICc5JyxcbiAgICAgICAgICAgICfgqaYnOiAnMCcsXG4gICAgICAgIH07XG5cbiAgICB2YXIgcGFJbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3BhLWluJywge1xuICAgICAgICAvLyBUaGVyZSBhcmUgbW9udGhzIG5hbWUgYXMgcGVyIE5hbmFrc2hhaGkgQ2FsZW5kYXIgYnV0IHRoZXkgYXJlIG5vdCB1c2VkIGFzIHJpZ2lkbHkgaW4gbW9kZXJuIFB1bmphYmkuXG4gICAgICAgIG1vbnRoczogJ+ConOCoqOCoteCosOCpgF/gqKvgqLzgqLDgqLXgqLDgqYBf4Kiu4Ki+4Kiw4KiaX+CoheCoquCpjeCosOCpiOCosl/gqK7gqIhf4Kic4KmC4KioX+ConOCpgeCosuCovuCoiF/gqIXgqJfgqLjgqKRf4Ki44Kik4Kmw4Kis4KiwX+CoheColeCopOCpguCorOCosF/gqKjgqLXgqbDgqKzgqLBf4Kim4Ki44Kmw4Kis4KiwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+ConOCoqOCoteCosOCpgF/gqKvgqLzgqLDgqLXgqLDgqYBf4Kiu4Ki+4Kiw4KiaX+CoheCoquCpjeCosOCpiOCosl/gqK7gqIhf4Kic4KmC4KioX+ConOCpgeCosuCovuCoiF/gqIXgqJfgqLjgqKRf4Ki44Kik4Kmw4Kis4KiwX+CoheColeCopOCpguCorOCosF/gqKjgqLXgqbDgqKzgqLBf4Kim4Ki44Kmw4Kis4KiwJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+CokOCopOCoteCovuCosF/gqLjgqYvgqK7gqLXgqL7gqLBf4Kiu4Kmw4KiX4Kiy4Ki14Ki+4KiwX+CorOCpgeCop+CoteCovuCosF/gqLXgqYDgqLDgqLXgqL7gqLBf4Ki44Ki84KmB4Kmx4KiV4Kiw4Ki14Ki+4KiwX+CouOCovOCoqOCpgOComuCosOCoteCovuCosCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CokOCopF/gqLjgqYvgqK5f4Kiu4Kmw4KiX4KiyX+CorOCpgeCop1/gqLXgqYDgqLBf4Ki44Ki84KmB4KiV4KiwX+CouOCovOCoqOCpgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgqJDgqKRf4Ki44KmL4KiuX+CoruCpsOCol+Cosl/gqKzgqYHgqKdf4Ki14KmA4KiwX+CouOCovOCpgeColeCosF/gqLjgqLzgqKjgqYAnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCoteConOCphycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Ki14Kic4KmHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCoteConOCphycsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CoheConF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgqJXgqLJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW+CoheCol+CosuCovl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgqJXgqLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CoquCov+Com+CosuCph10gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgqLXgqL/gqbHgqJonLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCoquCov+Com+CosuCphycsXG4gICAgICAgICAgICBzOiAn4KiV4KmB4KidIOCouOColeCov+CpsOConycsXG4gICAgICAgICAgICBzczogJyVkIOCouOColeCov+CpsOConycsXG4gICAgICAgICAgICBtOiAn4KiH4KiVIOCoruCov+CpsOConycsXG4gICAgICAgICAgICBtbTogJyVkIOCoruCov+CpsOConycsXG4gICAgICAgICAgICBoOiAn4KiH4Kmx4KiVIOComOCpsOCon+CovicsXG4gICAgICAgICAgICBoaDogJyVkIOComOCpsOCon+CphycsXG4gICAgICAgICAgICBkOiAn4KiH4Kmx4KiVIOCopuCov+CoqCcsXG4gICAgICAgICAgICBkZDogJyVkIOCopuCov+CoqCcsXG4gICAgICAgICAgICBNOiAn4KiH4Kmx4KiVIOCoruCoueCpgOCoqOCovicsXG4gICAgICAgICAgICBNTTogJyVkIOCoruCoueCpgOCoqOCphycsXG4gICAgICAgICAgICB5OiAn4KiH4Kmx4KiVIOCouOCovuCosicsXG4gICAgICAgICAgICB5eTogJyVkIOCouOCovuCosicsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgqafgqajgqangqargqavgqazgqa3gqa7gqa/gqaZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIFB1bmphYmkgbm90YXRpb24gZm9yIG1lcmlkaWVtcyBhcmUgcXVpdGUgZnV6enkgaW4gcHJhY3RpY2UuIFdoaWxlIHRoZXJlIGV4aXN0c1xuICAgICAgICAvLyBhIHJpZ2lkIG5vdGlvbiBvZiBhICdQYWhhcicgaXQgaXMgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gUHVuamFiaS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CosOCovuCopHzgqLjgqLXgqYfgqLB84Kim4KmB4Kiq4Ki54Ki/4KiwfOCouOCovOCovuCori8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CosOCovuCopCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CouOCoteCph+CosCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqKbgqYHgqKrgqLngqL/gqLAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CouOCovOCovuCoricpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqLDgqL7gqKQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CouOCoteCph+CosCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kim4KmB4Kiq4Ki54Ki/4KiwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqLjgqLzgqL7gqK4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CosOCovuCopCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDYsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBwYUluO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBvbGlzaCBbcGxdXG4vLyEgYXV0aG9yIDogUmFmYWwgSGlyc3ogOiBodHRwczovL2dpdGh1Yi5jb20vZXZvTFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRoc05vbWluYXRpdmUgPSAnc3R5Y3plxYRfbHV0eV9tYXJ6ZWNfa3dpZWNpZcWEX21hal9jemVyd2llY19saXBpZWNfc2llcnBpZcWEX3dyemVzaWXFhF9wYcW6ZHppZXJuaWtfbGlzdG9wYWRfZ3J1ZHppZcWEJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTdWJqZWN0aXZlID0gJ3N0eWN6bmlhX2x1dGVnb19tYXJjYV9rd2lldG5pYV9tYWphX2N6ZXJ3Y2FfbGlwY2Ffc2llcnBuaWFfd3J6ZcWbbmlhX3Bhxbpkemllcm5pa2FfbGlzdG9wYWRhX2dydWRuaWEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICk7XG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgcmV0dXJuIG4gJSAxMCA8IDUgJiYgbiAlIDEwID4gMSAmJiB+fihuIC8gMTApICUgMTAgIT09IDE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnc2VrdW5keScgOiAnc2VrdW5kJyk7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW51dGEnIDogJ21pbnV0xJknO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWludXR5JyA6ICdtaW51dCcpO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnZ29kemluYScgOiAnZ29kemluxJknO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZ29kemlueScgOiAnZ29kemluJyk7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaWVzacSFY2UnIDogJ21pZXNpxJljeScpO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbGF0YScgOiAnbGF0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcGwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwbCcsIHtcbiAgICAgICAgbW9udGhzOiBmdW5jdGlvbiAobW9tZW50VG9Gb3JtYXQsIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtb21lbnRUb0Zvcm1hdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNOb21pbmF0aXZlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgLy8gSGFjazogaWYgZm9ybWF0IGVtcHR5IHdlIGtub3cgdGhpcyBpcyB1c2VkIHRvIGdlbmVyYXRlXG4gICAgICAgICAgICAgICAgLy8gUmVnRXhwIGJ5IG1vbWVudC4gR2l2ZSB0aGVuIGJhY2sgYm90aCB2YWxpZCBmb3JtcyBvZiBtb250aHNcbiAgICAgICAgICAgICAgICAvLyBpbiBSZWdFeHAgcmVhZHkgZm9ybWF0LlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICcoJyArXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoc1N1YmplY3RpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV0gK1xuICAgICAgICAgICAgICAgICAgICAnfCcgK1xuICAgICAgICAgICAgICAgICAgICBtb250aHNOb21pbmF0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldICtcbiAgICAgICAgICAgICAgICAgICAgJyknXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoL0QgTU1NTS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1N1YmplY3RpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNOb21pbmF0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDogJ3N0eV9sdXRfbWFyX2t3aV9tYWpfY3plX2xpcF9zaWVfd3J6X3BhxbpfbGlzX2dydScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICduaWVkemllbGFfcG9uaWVkemlhxYJla193dG9yZWtfxZtyb2RhX2N6d2FydGVrX3BpxIV0ZWtfc29ib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmR6X3Bvbl93dF/Fm3JfY3p3X3B0X3NvYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdOZF9Qbl9XdF/FmnJfQ3pfUHRfU28nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbRHppxZsgb10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tKdXRybyBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIG5pZWR6aWVsxJkgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1dlIHd0b3JlayBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyDFm3JvZMSZIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHNvYm90xJkgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXXSBkZGRkIFtvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbV2N6b3JhaiBvXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHplc3rFgsSFIG5pZWR6aWVsxJkgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHplc3rFgsSFIMWbcm9kxJkgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXIHplc3rFgsSFIHNvYm90xJkgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYJ5XSBkZGRkIFtvXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIHRlbXUnLFxuICAgICAgICAgICAgczogJ2tpbGthIHNla3VuZCcsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiAnMSBkemllxYQnLFxuICAgICAgICAgICAgZGQ6ICclZCBkbmknLFxuICAgICAgICAgICAgTTogJ21pZXNpxIVjJyxcbiAgICAgICAgICAgIE1NOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAncm9rJyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUG9ydHVndWVzZSBbcHRdXG4vLyEgYXV0aG9yIDogSmVmZmVyc29uIDogaHR0cHM6Ly9naXRodWIuY29tL2phbGV4NzlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBwdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3B0Jywge1xuICAgICAgICBtb250aHM6ICdqYW5laXJvX2ZldmVyZWlyb19tYXLDp29fYWJyaWxfbWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdEb21pbmdvX1NlZ3VuZGEtZmVpcmFfVGVyw6dhLWZlaXJhX1F1YXJ0YS1mZWlyYV9RdWludGEtZmVpcmFfU2V4dGEtZmVpcmFfU8OhYmFkbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0RvbV9TZWdfVGVyX1F1YV9RdWlfU2V4X1PDoWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnRG9fMsKqXzPCql80wqpfNcKqXzbCql9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIb2plIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbWFuaMOjIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbT250ZW0gw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDZcbiAgICAgICAgICAgICAgICAgICAgPyAnW8OabHRpbW9dIGRkZGQgW8Ogc10gTFQnIC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgIDogJ1vDmmx0aW1hXSBkZGRkIFvDoHNdIExUJzsgLy8gTW9uZGF5IC0gRnJpZGF5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaMOhICVzJyxcbiAgICAgICAgICAgIHM6ICdzZWd1bmRvcycsXG4gICAgICAgICAgICBzczogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG06ICd1bSBtaW51dG8nLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGg6ICd1bWEgaG9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQ6ICd1bSBkaWEnLFxuICAgICAgICAgICAgZGQ6ICclZCBkaWFzJyxcbiAgICAgICAgICAgIE06ICd1bSBtw6pzJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeTogJ3VtIGFubycsXG4gICAgICAgICAgICB5eTogJyVkIGFub3MnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHB0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFBvcnR1Z3Vlc2UgKEJyYXppbCkgW3B0LWJyXVxuLy8hIGF1dGhvciA6IENhaW8gUmliZWlybyBQZXJlaXJhIDogaHR0cHM6Ly9naXRodWIuY29tL2NhaW8tcmliZWlyby1wZXJlaXJhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgcHRCciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3B0LWJyJywge1xuICAgICAgICBtb250aHM6ICdqYW5laXJvX2ZldmVyZWlyb19tYXLDp29fYWJyaWxfbWFpb19qdW5ob19qdWxob19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZXplbWJybycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdkb21pbmdvX3NlZ3VuZGEtZmVpcmFfdGVyw6dhLWZlaXJhX3F1YXJ0YS1mZWlyYV9xdWludGEtZmVpcmFfc2V4dGEtZmVpcmFfc8OhYmFkbycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2RvbV9zZWdfdGVyX3F1YV9xdWlfc2V4X3PDoWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnZG9fMsKqXzPCql80wqpfNcKqXzbCql9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFvDoHNdIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgW8Ogc10gSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIb2plIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tBbWFuaMOjIMOgc10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbT250ZW0gw6BzXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDZcbiAgICAgICAgICAgICAgICAgICAgPyAnW8OabHRpbW9dIGRkZGQgW8Ogc10gTFQnIC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgIDogJ1vDmmx0aW1hXSBkZGRkIFvDoHNdIExUJzsgLy8gTW9uZGF5IC0gRnJpZGF5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdlbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnaMOhICVzJyxcbiAgICAgICAgICAgIHM6ICdwb3Vjb3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtOiAndW0gbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoOiAndW1hIGhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkOiAndW0gZGlhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZGlhcycsXG4gICAgICAgICAgICBNOiAndW0gbcOqcycsXG4gICAgICAgICAgICBNTTogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHk6ICd1bSBhbm8nLFxuICAgICAgICAgICAgeXk6ICclZCBhbm9zJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHRCcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBSb21hbmlhbiBbcm9dXG4vLyEgYXV0aG9yIDogVmxhZCBHdXJkaWdhIDogaHR0cHM6Ly9naXRodWIuY29tL2d1cmRpZ2Fcbi8vISBhdXRob3IgOiBWYWxlbnRpbiBBZ2FjaGkgOiBodHRwczovL2dpdGh1Yi5jb20vYXZhbHlcbi8vISBhdXRob3IgOiBFbWFudWVsIENlcG9pIDogaHR0cHM6Ly9naXRodWIuY29tL2NlcGVtXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAgICAgc3M6ICdzZWN1bmRlJyxcbiAgICAgICAgICAgICAgICBtbTogJ21pbnV0ZScsXG4gICAgICAgICAgICAgICAgaGg6ICdvcmUnLFxuICAgICAgICAgICAgICAgIGRkOiAnemlsZScsXG4gICAgICAgICAgICAgICAgTU06ICdsdW5pJyxcbiAgICAgICAgICAgICAgICB5eTogJ2FuaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VwYXJhdG9yID0gJyAnO1xuICAgICAgICBpZiAobnVtYmVyICUgMTAwID49IDIwIHx8IChudW1iZXIgPj0gMTAwICYmIG51bWJlciAlIDEwMCA9PT0gMCkpIHtcbiAgICAgICAgICAgIHNlcGFyYXRvciA9ICcgZGUgJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVtYmVyICsgc2VwYXJhdG9yICsgZm9ybWF0W2tleV07XG4gICAgfVxuXG4gICAgdmFyIHJvID0gbW9tZW50LmRlZmluZUxvY2FsZSgncm8nLCB7XG4gICAgICAgIG1vbnRoczogJ2lhbnVhcmllX2ZlYnJ1YXJpZV9tYXJ0aWVfYXByaWxpZV9tYWlfaXVuaWVfaXVsaWVfYXVndXN0X3NlcHRlbWJyaWVfb2N0b21icmllX25vaWVtYnJpZV9kZWNlbWJyaWUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnaWFuLl9mZWIuX21hcnQuX2Fwci5fbWFpX2l1bi5faXVsLl9hdWcuX3NlcHQuX29jdC5fbm92Ll9kZWMuJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2R1bWluaWPEg19sdW5pX21hcsibaV9taWVyY3VyaV9qb2lfdmluZXJpX3PDom1ixIN0xIMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdEdW1fTHVuX01hcl9NaWVfSm9pX1Zpbl9Tw6JtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0R1X0x1X01hX01pX0pvX1ZpX1PDoicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2F6aSBsYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttw6JpbmUgbGFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbbGFdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaWVyaSBsYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZm9zdGFdIGRkZGQgW2xhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ3Blc3RlICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDrm4gdXJtxIMnLFxuICAgICAgICAgICAgczogJ2PDonRldmEgc2VjdW5kZScsXG4gICAgICAgICAgICBzczogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG06ICd1biBtaW51dCcsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGg6ICdvIG9yxIMnLFxuICAgICAgICAgICAgaGg6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkOiAnbyB6aScsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICdvIGx1bsSDJyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcm87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogUnVzc2lhbiBbcnVdXG4vLyEgYXV0aG9yIDogVmlrdG9ybWluYXRvciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9WaWt0b3JtaW5hdG9yXG4vLyEgYXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcbi8vISBhdXRob3IgOiDQmtC+0YDQtdC90LHQtdGA0LMg0JzQsNGA0LogOiBodHRwczovL2dpdGh1Yi5jb20vc29ja2V0cGFpclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKHdvcmQsIG51bSkge1xuICAgICAgICB2YXIgZm9ybXMgPSB3b3JkLnNwbGl0KCdfJyk7XG4gICAgICAgIHJldHVybiBudW0gJSAxMCA9PT0gMSAmJiBudW0gJSAxMDAgIT09IDExXG4gICAgICAgICAgICA/IGZvcm1zWzBdXG4gICAgICAgICAgICA6IG51bSAlIDEwID49IDIgJiYgbnVtICUgMTAgPD0gNCAmJiAobnVtICUgMTAwIDwgMTAgfHwgbnVtICUgMTAwID49IDIwKVxuICAgICAgICAgICAgPyBmb3Jtc1sxXVxuICAgICAgICAgICAgOiBmb3Jtc1syXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgc3M6IHdpdGhvdXRTdWZmaXggPyAn0YHQtdC60YPQvdC00LBf0YHQtdC60YPQvdC00Ytf0YHQtdC60YPQvdC0JyA6ICfRgdC10LrRg9C90LTRg1/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbW06IHdpdGhvdXRTdWZmaXggPyAn0LzQuNC90YPRgtCwX9C80LjQvdGD0YLRi1/QvNC40L3Rg9GCJyA6ICfQvNC40L3Rg9GC0YNf0LzQuNC90YPRgtGLX9C80LjQvdGD0YInLFxuICAgICAgICAgICAgaGg6ICfRh9Cw0YFf0YfQsNGB0LBf0YfQsNGB0L7QsicsXG4gICAgICAgICAgICBkZDogJ9C00LXQvdGMX9C00L3Rj1/QtNC90LXQuScsXG4gICAgICAgICAgICBNTTogJ9C80LXRgdGP0YZf0LzQtdGB0Y/RhtCwX9C80LXRgdGP0YbQtdCyJyxcbiAgICAgICAgICAgIHl5OiAn0LPQvtC0X9Cz0L7QtNCwX9C70LXRgicsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LzQuNC90YPRgtCwJyA6ICfQvNC40L3Rg9GC0YMnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIHBsdXJhbChmb3JtYXRba2V5XSwgK251bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIG1vbnRoc1BhcnNlID0gW1xuICAgICAgICAvXtGP0L3Qsi9pLFxuICAgICAgICAvXtGE0LXQsi9pLFxuICAgICAgICAvXtC80LDRgC9pLFxuICAgICAgICAvXtCw0L/RgC9pLFxuICAgICAgICAvXtC80LBb0LnRj10vaSxcbiAgICAgICAgL17QuNGO0L0vaSxcbiAgICAgICAgL17QuNGO0LsvaSxcbiAgICAgICAgL17QsNCy0LMvaSxcbiAgICAgICAgL17RgdC10L0vaSxcbiAgICAgICAgL17QvtC60YIvaSxcbiAgICAgICAgL17QvdC+0Y8vaSxcbiAgICAgICAgL17QtNC10LovaSxcbiAgICBdO1xuXG4gICAgLy8gaHR0cDovL25ldy5ncmFtb3RhLnJ1L3NwcmF2a2EvcnVsZXMvMTM5LXByb3AgOiDCpyAxMDNcbiAgICAvLyDQodC+0LrRgNCw0YnQtdC90LjRjyDQvNC10YHRj9GG0LXQsjogaHR0cDovL25ldy5ncmFtb3RhLnJ1L3NwcmF2a2EvYnVyby9zZWFyY2gtYW5zd2VyP3M9MjQyNjM3XG4gICAgLy8gQ0xEUiBkYXRhOiAgICAgICAgICBodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NsZHIvY2hhcnRzLzI4L3N1bW1hcnkvcnUuaHRtbCMxNzUzXG4gICAgdmFyIHJ1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgncnUnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0Y/QvdCy0LDRgNGPX9GE0LXQstGA0LDQu9GPX9C80LDRgNGC0LBf0LDQv9GA0LXQu9GPX9C80LDRj1/QuNGO0L3Rj1/QuNGO0LvRj1/QsNCy0LPRg9GB0YLQsF/RgdC10L3RgtGP0LHRgNGPX9C+0LrRgtGP0LHRgNGPX9C90L7Rj9Cx0YDRj1/QtNC10LrQsNCx0YDRjycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9GP0L3QstCw0YDRjF/RhNC10LLRgNCw0LvRjF/QvNCw0YDRgl/QsNC/0YDQtdC70Yxf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgNGMX9C+0LrRgtGP0LHRgNGMX9C90L7Rj9Cx0YDRjF/QtNC10LrQsNCx0YDRjCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydDoge1xuICAgICAgICAgICAgLy8g0L/QviBDTERSINC40LzQtdC90L3QviBcItC40Y7Quy5cIiDQuCBcItC40Y7QvS5cIiwg0L3QviDQutCw0LrQvtC5INGB0LzRi9GB0Lsg0LzQtdC90Y/RgtGMINCx0YPQutCy0YMg0L3QsCDRgtC+0YfQutGDP1xuICAgICAgICAgICAgZm9ybWF0OiAn0Y/QvdCyLl/RhNC10LLRgC5f0LzQsNGALl/QsNC/0YAuX9C80LDRj1/QuNGO0L3Rj1/QuNGO0LvRj1/QsNCy0LMuX9GB0LXQvdGCLl/QvtC60YIuX9C90L7Rj9CxLl/QtNC10LouJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0Y/QvdCyLl/RhNC10LLRgC5f0LzQsNGA0YJf0LDQv9GALl/QvNCw0Llf0LjRjtC90Yxf0LjRjtC70Yxf0LDQstCzLl/RgdC10L3Rgi5f0L7QutGCLl/QvdC+0Y/QsS5f0LTQtdC6Licuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5czoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9Cy0L7RgdC60YDQtdGB0LXQvdGM0LVf0L/QvtC90LXQtNC10LvRjNC90LjQul/QstGC0L7RgNC90LjQul/RgdGA0LXQtNCwX9GH0LXRgtCy0LXRgNCzX9C/0Y/RgtC90LjRhtCwX9GB0YPQsdCx0L7RgtCwJy5zcGxpdChcbiAgICAgICAgICAgICAgICAnXydcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBmb3JtYXQ6ICfQstC+0YHQutGA0LXRgdC10L3RjNC1X9C/0L7QvdC10LTQtdC70YzQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNC10LTRg1/Rh9C10YLQstC10YDQs1/Qv9GP0YLQvdC40YbRg1/RgdGD0LHQsdC+0YLRgycuc3BsaXQoXG4gICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9cXFsgP1vQktCyXSA/KD860L/RgNC+0YjQu9GD0Y580YHQu9C10LTRg9GO0YnRg9GOfNGN0YLRgyk/ID9dID9kZGRkLyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9Cy0YFf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0LLRgV/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcblxuICAgICAgICAvLyDQv9C+0LvQvdGL0LUg0L3QsNC30LLQsNC90LjRjyDRgSDQv9Cw0LTQtdC20LDQvNC4LCDQv9C+INGC0YDQuCDQsdGD0LrQstGLLCDQtNC70Y8g0L3QtdC60L7RgtC+0YDRi9GFLCDQv9C+IDQg0LHRg9C60LLRiywg0YHQvtC60YDQsNGJ0LXQvdC40Y8g0YEg0YLQvtGH0LrQvtC5INC4INCx0LXQtyDRgtC+0YfQutC4XG4gICAgICAgIG1vbnRoc1JlZ2V4OiAvXijRj9C90LLQsNGAW9GM0Y9dfNGP0L3QslxcLj980YTQtdCy0YDQsNC7W9GM0Y9dfNGE0LXQstGAP1xcLj980LzQsNGA0YLQsD980LzQsNGAXFwuP3zQsNC/0YDQtdC7W9GM0Y9dfNCw0L/RgFxcLj980LzQsFvQudGPXXzQuNGO0L1b0YzRj1180LjRjtC9XFwuP3zQuNGO0Ltb0YzRj1180LjRjtC7XFwuP3zQsNCy0LPRg9GB0YLQsD980LDQstCzXFwuP3zRgdC10L3RgtGP0LHRgFvRjNGPXXzRgdC10L3Rgj9cXC4/fNC+0LrRgtGP0LHRgFvRjNGPXXzQvtC60YJcXC4/fNC90L7Rj9Cx0YBb0YzRj1180L3QvtGP0LE/XFwuP3zQtNC10LrQsNCx0YBb0YzRj1180LTQtdC6XFwuPykvaSxcblxuICAgICAgICAvLyDQutC+0L/QuNGPINC/0YDQtdC00YvQtNGD0YnQtdCz0L5cbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogL14o0Y/QvdCy0LDRgFvRjNGPXXzRj9C90LJcXC4/fNGE0LXQstGA0LDQu1vRjNGPXXzRhNC10LLRgD9cXC4/fNC80LDRgNGC0LA/fNC80LDRgFxcLj980LDQv9GA0LXQu1vRjNGPXXzQsNC/0YBcXC4/fNC80LBb0LnRj1180LjRjtC9W9GM0Y9dfNC40Y7QvVxcLj980LjRjtC7W9GM0Y9dfNC40Y7Qu1xcLj980LDQstCz0YPRgdGC0LA/fNCw0LLQs1xcLj980YHQtdC90YLRj9Cx0YBb0YzRj1180YHQtdC90YI/XFwuP3zQvtC60YLRj9Cx0YBb0YzRj1180L7QutGCXFwuP3zQvdC+0Y/QsdGAW9GM0Y9dfNC90L7Rj9CxP1xcLj980LTQtdC60LDQsdGAW9GM0Y9dfNC00LXQulxcLj8pL2ksXG5cbiAgICAgICAgLy8g0L/QvtC70L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8g0YEg0L/QsNC00LXQttCw0LzQuFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14o0Y/QvdCy0LDRgFvRj9GMXXzRhNC10LLRgNCw0Ltb0Y/RjF180LzQsNGA0YLQsD980LDQv9GA0LXQu1vRj9GMXXzQvNCwW9GP0LldfNC40Y7QvVvRj9GMXXzQuNGO0Ltb0Y/RjF180LDQstCz0YPRgdGC0LA/fNGB0LXQvdGC0Y/QsdGAW9GP0YxdfNC+0LrRgtGP0LHRgFvRj9GMXXzQvdC+0Y/QsdGAW9GP0YxdfNC00LXQutCw0LHRgFvRj9GMXSkvaSxcblxuICAgICAgICAvLyDQktGL0YDQsNC20LXQvdC40LUsINC60L7RgtC+0YDQvtC1INGB0L7QvtGC0LLQtdGC0YHRgtCy0YPQtdGCINGC0L7Qu9GM0LrQviDRgdC+0LrRgNCw0YnRkdC90L3Ri9C8INGE0L7RgNC80LDQvFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvXijRj9C90LJcXC580YTQtdCy0YA/XFwufNC80LDRgFvRgi5dfNCw0L/RgFxcLnzQvNCwW9GP0LldfNC40Y7QvVvRjNGPLl180LjRjtC7W9GM0Y8uXXzQsNCy0LNcXC580YHQtdC90YI/XFwufNC+0LrRglxcLnzQvdC+0Y/QsT9cXC580LTQtdC6XFwuKS9pLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWSDQsy4nLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkg0LMuLCBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSDQsy4sIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQodC10LPQvtC00L3Rjywg0LJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0JfQsNCy0YLRgNCwLCDQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQktGH0LXRgNCwLCDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobm93LndlZWsoKSAhPT0gdGhpcy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0YHQu9C10LTRg9GO0YnQtdC1XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDRgdC70LXQtNGD0Y7RidC40LldIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINGB0LvQtdC00YPRjtGJ0YPRjl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXkoKSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JLQvl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAobm93LndlZWsoKSAhPT0gdGhpcy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0L/RgNC+0YjQu9C+0LVdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINC/0YDQvtGI0LvRi9C5XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQv9GA0L7RiNC70YPRjl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXkoKSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JLQvl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkl0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfRh9C10YDQtdC3ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDQvdCw0LfQsNC0JyxcbiAgICAgICAgICAgIHM6ICfQvdC10YHQutC+0LvRjNC60L4g0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG1tOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaDogJ9GH0LDRgScsXG4gICAgICAgICAgICBoaDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQ6ICfQtNC10L3RjCcsXG4gICAgICAgICAgICBkZDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE06ICfQvNC10YHRj9GGJyxcbiAgICAgICAgICAgIE1NOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeTogJ9Cz0L7QtCcsXG4gICAgICAgICAgICB5eTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9C4fNGD0YLRgNCwfNC00L3Rj3zQstC10YfQtdGA0LAvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o0LTQvdGPfNCy0LXRh9C10YDQsCkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GD0YLRgNCwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQtNC90Y8nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cy0LXRh9C10YDQsCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0Ll80LPQvnzRjykvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LknO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Qs9C+JztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0Y8nO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBydTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTaW5kaGkgW3NkXVxuLy8hIGF1dGhvciA6IE5hcmFpbiBTYWdhciA6IGh0dHBzOi8vZ2l0aHViLmNvbS9uYXJhaW5zYWdhclxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIG1vbnRocyA9IFtcbiAgICAgICAgICAgICfYrNmG2YjYsdmKJyxcbiAgICAgICAgICAgICfZgdmK2KjYsdmI2LHZiicsXG4gICAgICAgICAgICAn2YXYp9ix2oYnLFxuICAgICAgICAgICAgJ9in2b7YsdmK2YQnLFxuICAgICAgICAgICAgJ9mF2KbZiicsXG4gICAgICAgICAgICAn2KzZiNmGJyxcbiAgICAgICAgICAgICfYrNmI2YTYp9ih2ZAnLFxuICAgICAgICAgICAgJ9ii2q/Ys9m9JyxcbiAgICAgICAgICAgICfYs9mK2b7ZvdmF2KjYsScsXG4gICAgICAgICAgICAn2KLaqtm92YjYqNixJyxcbiAgICAgICAgICAgICfZhtmI2YXYqNixJyxcbiAgICAgICAgICAgICfaitiz2YXYqNixJyxcbiAgICAgICAgXSxcbiAgICAgICAgZGF5cyA9IFsn2KLahtixJywgJ9iz2YjZhdixJywgJ9in2rHYp9ix2YgnLCAn2KfYsdio2LknLCAn2K7ZhdmK2LMnLCAn2KzZhdi5JywgJ9qH2Ybah9ixJ107XG5cbiAgICB2YXIgc2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzZCcsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGF5cyxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZNiMIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i12KjYrXzYtNin2YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtdio2K0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnO1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9qEXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9iz2oDYp9q72YpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2Kfas9mK2YYg2YfZgdiq2Yog2KrZil0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vaqtin2YTZh9mHXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1var9iy2LHZitmEINmH2YHYqtmKXSBkZGRkIFvYqtmKXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINm+2YjYoScsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2KfasycsXG4gICAgICAgICAgICBzOiAn2obZhtivINiz2YraqtmG2oonLFxuICAgICAgICAgICAgc3M6ICclZCDYs9mK2qrZhtqKJyxcbiAgICAgICAgICAgIG06ICfZh9qqINmF2YbZvScsXG4gICAgICAgICAgICBtbTogJyVkINmF2YbZvScsXG4gICAgICAgICAgICBoOiAn2YfaqiDaqtmE2KfaqicsXG4gICAgICAgICAgICBoaDogJyVkINqq2YTYp9qqJyxcbiAgICAgICAgICAgIGQ6ICfZh9qqINqP2YrZhtmH2YYnLFxuICAgICAgICAgICAgZGQ6ICclZCDaj9mK2YbZh9mGJyxcbiAgICAgICAgICAgIE06ICfZh9qqINmF2YfZitmG2YgnLFxuICAgICAgICAgICAgTU06ICclZCDZhdmH2YrZhtinJyxcbiAgICAgICAgICAgIHk6ICfZh9qqINiz2KfZhCcsXG4gICAgICAgICAgICB5eTogJyVkINiz2KfZhCcsXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNkO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IE5vcnRoZXJuIFNhbWkgW3NlXVxuLy8hIGF1dGhvcnMgOiBCw6VyZCBSb2xzdGFkIEhlbnJpa3NlbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJhbWVsbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHNlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2UnLCB7XG4gICAgICAgIG1vbnRoczogJ2/EkcSRYWphZ2Vtw6FubnVfZ3VvdnZhbcOhbm51X25qdWvEjWFtw6FubnVfY3VvxYtvbcOhbm51X21pZXNzZW3DoW5udV9nZWFzc2Vtw6FubnVfc3VvaWRuZW3DoW5udV9ib3JnZW3DoW5udV/EjWFrxI1hbcOhbm51X2dvbGdnb3Rtw6FubnVfc2vDoWJtYW3DoW5udV9qdW92bGFtw6FubnUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnb8SRxJFqX2d1b3Zfbmp1a19jdW9fbWllc19nZWFzX3N1b2lfYm9yZ1/EjWFrxI1fZ29sZ19za8OhYl9qdW92Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ3NvdG5hYmVhaXZpX3Z1b3Nzw6FyZ2FfbWHFi8WLZWLDoXJnYV9nYXNrYXZhaGtrdV9kdW9yYXN0YXRfYmVhcmphZGF0X2zDoXZ2YXJkYXQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdzb3RuX3Z1b3NfbWHFi19nYXNrX2R1b3JfYmVhcl9sw6F2Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ3Nfdl9tX2dfZF9iX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnTU1NTSBELiBbYi5dIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbb3RuZSB0aV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tpaHR0aW4gdGldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdGldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaWt0ZSB0aV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbb3ZkZGl0XSBkZGRkIFt0aV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyBnZWHFvmVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdtYcWLaXQgJXMnLFxuICAgICAgICAgICAgczogJ21vYWRkZSBzZWt1bmRkYXQnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWt1bmRkYXQnLFxuICAgICAgICAgICAgbTogJ29rdGEgbWludWh0YScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnVodGF0JyxcbiAgICAgICAgICAgIGg6ICdva3RhIGRpaW1tdScsXG4gICAgICAgICAgICBoaDogJyVkIGRpaW1tdXQnLFxuICAgICAgICAgICAgZDogJ29rdGEgYmVhaXZpJyxcbiAgICAgICAgICAgIGRkOiAnJWQgYmVhaXZ2aXQnLFxuICAgICAgICAgICAgTTogJ29rdGEgbcOhbm51JyxcbiAgICAgICAgICAgIE1NOiAnJWQgbcOhbnV0JyxcbiAgICAgICAgICAgIHk6ICdva3RhIGphaGtpJyxcbiAgICAgICAgICAgIHl5OiAnJWQgamFnaXQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNlO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFNpbmhhbGVzZSBbc2ldXG4vLyEgYXV0aG9yIDogU2FtcGF0aCBTaXRpbmFtYWx1d2EgOiBodHRwczovL2dpdGh1Yi5jb20vc2FtcGF0aHNyaXNcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIC8qanNoaW50IC1XMTAwKi9cbiAgICB2YXIgc2kgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzaScsIHtcbiAgICAgICAgbW9udGhzOiAn4Lai4Lax4LeA4LeP4La74LeSX+C2tOC3meC2tuC2u+C3gOC3j+C2u+C3kl/gtrjgt4/gtrvgt4rgtq3gt5Rf4LaF4La04LeK4oCN4La74Lea4La94LeKX+C2uOC3kOC2uuC3kl/gtqLgt5bgtrHgt5Jf4Lai4LeW4La94LeSX+C2heC2nOC3neC3g+C3iuC2reC3lF/gt4Pgt5DgtrTgt4rgtq3gt5Dgtrjgt4rgtrbgtrvgt4pf4LaU4Laa4LeK4Lat4Led4La24La74LeKX+C2seC3nOC3gOC3kOC2uOC3iuC2tuC2u+C3il/gtq/gt5ngt4Pgt5Dgtrjgt4rgtrbgtrvgt4onLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4Lai4LaxX+C2tOC3meC2tl/gtrjgt4/gtrvgt4pf4LaF4La04LeKX+C2uOC3kOC2uuC3kl/gtqLgt5bgtrHgt5Jf4Lai4LeW4La94LeSX+C2heC2nOC3nV/gt4Pgt5DgtrTgt4pf4LaU4Laa4LeKX+C2seC3nOC3gOC3kF/gtq/gt5ngt4Pgt5AnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4LaJ4La74LeS4Lav4LePX+C3g+C2s+C3lOC2r+C3j1/gtoXgtp/gt4Tgtrvgt5Tgt4Dgt4/gtq/gt49f4La24Lav4LeP4Lav4LePX+C2tuC3iuKAjeC2u+C3hOC3g+C3iuC2tOC2reC3kuC2seC3iuC2r+C3j1/gt4Pgt5Lgtprgt5Tgtrvgt4/gtq/gt49f4LeD4LeZ4Lax4LeD4LeU4La74LeP4Lav4LePJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4LaJ4La74LeSX+C3g+C2s+C3lF/gtoXgtp9f4La24Lav4LePX+C2tuC3iuKAjeC2u+C3hF/gt4Pgt5Lgtprgt5Rf4LeD4LeZ4LaxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C2iV/gt4Nf4LaFX+C2tl/gtrbgt4rigI3gtrtf4LeD4LeSX+C3g+C3mScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdhIGg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnYSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWSBNTU1NIEQnLFxuICAgICAgICAgICAgTExMOiAnWVlZWSBNTU1NIEQsIGEgaDptbScsXG4gICAgICAgICAgICBMTExMOiAnWVlZWSBNTU1NIEQgW+C3gOC3kOC2seC3kl0gZGRkZCwgYSBoOm1tOnNzJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4LaF4LavXSBMVFvgtqddJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4LeE4LeZ4LanXSBMVFvgtqddJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBMVFvgtqddJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4LaK4La64LeaXSBMVFvgtqddJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+C2tOC3g+C3lOC2nOC3kuC2ul0gZGRkZCBMVFvgtqddJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPgtprgt5LgtrHgt4onLFxuICAgICAgICAgICAgcGFzdDogJyVz4Laa4LanIOC2tOC3meC2uycsXG4gICAgICAgICAgICBzOiAn4Lat4Lat4LeK4La04La7IOC2muC3kuC3hOC3kuC2tOC2uicsXG4gICAgICAgICAgICBzczogJ+C2reC2reC3iuC2tOC2uyAlZCcsXG4gICAgICAgICAgICBtOiAn4La44LeS4Lax4LeS4Lat4LeK4Lat4LeU4LeAJyxcbiAgICAgICAgICAgIG1tOiAn4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUICVkJyxcbiAgICAgICAgICAgIGg6ICfgtrTgt5DgtronLFxuICAgICAgICAgICAgaGg6ICfgtrTgt5DgtrogJWQnLFxuICAgICAgICAgICAgZDogJ+C2r+C3kuC2seC2uicsXG4gICAgICAgICAgICBkZDogJ+C2r+C3kuC2sSAlZCcsXG4gICAgICAgICAgICBNOiAn4La44LeP4LeD4La6JyxcbiAgICAgICAgICAgIE1NOiAn4La44LeP4LeDICVkJyxcbiAgICAgICAgICAgIHk6ICfgt4Dgt4PgtrsnLFxuICAgICAgICAgICAgeXk6ICfgt4Dgt4PgtrsgJWQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0g4LeA4LeQ4Lax4LeSLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg4LeA4LeQ4Lax4LeSJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C2tOC3meC2uyDgt4Dgtrvgt5R84La04LeD4LeKIOC3gOC2u+C3lHzgtrTgt5ku4LeAfOC2tC7gt4AuLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfgtrQu4LeALicgfHwgaW5wdXQgPT09ICfgtrTgt4Pgt4og4LeA4La74LeUJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfgtrQu4LeALicgOiAn4La04LeD4LeKIOC3gOC2u+C3lCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ+C2tOC3mS7gt4AuJyA6ICfgtrTgt5ngtrsg4LeA4La74LeUJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTbG92YWsgW3NrXVxuLy8hIGF1dGhvciA6IE1hcnRpbiBNaW5rYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rMnNcbi8vISBiYXNlZCBvbiB3b3JrIG9mIHBldHJiZWxhIDogaHR0cHM6Ly9naXRodWIuY29tL3BldHJiZWxhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbW9udGhzID0gJ2phbnXDoXJfZmVicnXDoXJfbWFyZWNfYXByw61sX23DoWpfasO6bl9qw7psX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0w7NiZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2phbl9mZWJfbWFyX2Fwcl9tw6FqX2rDum5fasO6bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiBuID4gMSAmJiBuIDwgNTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6IC8vIGEgZmV3IHNlY29uZHMgLyBpbiBhIGZldyBzZWNvbmRzIC8gYSBmZXcgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdww6FyIHNla8O6bmQnIDogJ3DDoXIgc2VrdW5kYW1pJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzogLy8gOSBzZWNvbmRzIC8gaW4gOSBzZWNvbmRzIC8gOSBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnc2VrdW5keScgOiAnc2Vrw7puZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2VrdW5kYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdtJzogLy8gYSBtaW51dGUgLyBpbiBhIG1pbnV0ZSAvIGEgbWludXRlIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ21pbsO6dGEnIDogaXNGdXR1cmUgPyAnbWluw7p0dScgOiAnbWluw7p0b3UnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOiAvLyA5IG1pbnV0ZXMgLyBpbiA5IG1pbnV0ZXMgLyA5IG1pbnV0ZXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW7DunR5JyA6ICdtaW7DunQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ21pbsO6dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnaCc6IC8vIGFuIGhvdXIgLyBpbiBhbiBob3VyIC8gYW4gaG91ciBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdob2RpbmEnIDogaXNGdXR1cmUgPyAnaG9kaW51JyA6ICdob2Rpbm91JztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzogLy8gOSBob3VycyAvIGluIDkgaG91cnMgLyA5IGhvdXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnaG9kaW55JyA6ICdob2TDrW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2hvZGluYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdkJzogLy8gYSBkYXkgLyBpbiBhIGRheSAvIGEgZGF5IGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RlxYgnIDogJ2TFiG9tJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzogLy8gOSBkYXlzIC8gaW4gOSBkYXlzIC8gOSBkYXlzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZG5pJyA6ICdkbsOtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkxYhhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ00nOiAvLyBhIG1vbnRoIC8gaW4gYSBtb250aCAvIGEgbW9udGggYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzaWFjJyA6ICdtZXNpYWNvbSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6IC8vIDkgbW9udGhzIC8gaW4gOSBtb250aHMgLyA5IG1vbnRocyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21lc2lhY2UnIDogJ21lc2lhY292Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtZXNpYWNtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAneSc6IC8vIGEgeWVhciAvIGluIGEgeWVhciAvIGEgeWVhciBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdyb2snIDogJ3Jva29tJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzogLy8gOSB5ZWFycyAvIGluIDkgeWVhcnMgLyA5IHllYXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAncm9reScgOiAncm9rb3YnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Jva21pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc2sgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzaycsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHNTaG9ydCxcbiAgICAgICAgd2Vla2RheXM6ICduZWRlxL5hX3BvbmRlbG9rX3V0b3Jva19zdHJlZGFfxaF0dnJ0b2tfcGlhdG9rX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lX3BvX3V0X3N0X8WhdF9waV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICduZV9wb191dF9zdF/FoXRfcGlfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RuZXMgb10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1t6YWp0cmEgb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBuZWRlxL51IG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBkZGRkIFtvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Ygc3RyZWR1IG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdm8gxaF0dnJ0b2sgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IHBpYXRvayBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Ygc29ib3R1IG9dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1t2xI1lcmEgb10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDuiBuZWRlxL51IG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO9XSBkZGRkIFtvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw7ogc3RyZWR1IG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO9XSBkZGRkIFtvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw7ogc29ib3R1IG9dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0OiAncHJlZCAlcycsXG4gICAgICAgICAgICBzOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHk6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2s7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2xvdmVuaWFuIFtzbF1cbi8vISBhdXRob3IgOiBSb2JlcnQgU2Vkb3bFoWVrIDogaHR0cHM6Ly9naXRodWIuY29tL3NlZG92c2VrXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmVcbiAgICAgICAgICAgICAgICAgICAgPyAnbmVrYWogc2VrdW5kJ1xuICAgICAgICAgICAgICAgICAgICA6ICduZWthaiBzZWt1bmRhbWknO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggPyAnc2VrdW5kbycgOiAnc2VrdW5kaSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnc2VrdW5kaScgOiAnc2VrdW5kYWgnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWt1bmRlJyA6ICdzZWt1bmRhaCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnZW5hIG1pbnV0YScgOiAnZW5vIG1pbnV0byc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCA/ICdtaW51dGEnIDogJ21pbnV0byc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWludXRpJyA6ICdtaW51dGFtYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21pbnV0ZScgOiAnbWludXRhbWknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21pbnV0JyA6ICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdlbmEgdXJhJyA6ICdlbm8gdXJvJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4ID8gJ3VyYScgOiAndXJvJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICd1cmknIDogJ3VyYW1hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAndXJlJyA6ICd1cmFtaSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAndXInIDogJ3VyYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2VuIGRhbicgOiAnZW5pbSBkbmVtJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RhbicgOiAnZG5lbSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZG5pJyA6ICdkbmV2b21hJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkbmknIDogJ2RuZXZpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2VuIG1lc2VjJyA6ICdlbmltIG1lc2VjZW0nO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWMnIDogJ21lc2VjZW0nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjYScgOiAnbWVzZWNlbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlY2UnIDogJ21lc2VjaSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWNldicgOiAnbWVzZWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2VubyBsZXRvJyA6ICdlbmltIGxldG9tJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldG8nIDogJ2xldG9tJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdsZXRpJyA6ICdsZXRvbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdsZXRhJyA6ICdsZXRpJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdsZXQnIDogJ2xldGknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc2wnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcmVjX2FwcmlsX21hal9qdW5pal9qdWxpal9hdmd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkZWxqYV9wb25lZGVsamVrX3RvcmVrX3NyZWRhX8SNZXRydGVrX3BldGVrX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl90b3IuX3NyZS5fxI1ldC5fcGV0Ll9zb2IuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3RvX3NyX8SNZV9wZV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELiBNTS4gWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5lcyBvYl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tqdXRyaSBvYl0gTFQnLFxuXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbbmVkZWxqb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIFtzcmVkb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIFtzb2JvdG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBkZGRkIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3bEjWVyYWogb2JdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qb10gW25lZGVsam9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtzcmVkb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qb10gW3NvYm90b10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qaV0gZGRkZCBbb2JdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfEjWV6ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdwcmVkICVzJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBBbGJhbmlhbiBbc3FdXG4vLyEgYXV0aG9yIDogRmxha8OrcmltIElzbWFuaSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9mbGFrZXJpbWlcbi8vISBhdXRob3IgOiBNZW5lbGlvbiBFbGVuc8O6bGUgOiBodHRwczovL2dpdGh1Yi5jb20vT2lyZVxuLy8hIGF1dGhvciA6IE9lcmQgQ3VrYWxsYSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9vZXJkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzcScsIHtcbiAgICAgICAgbW9udGhzOiAnSmFuYXJfU2hrdXJ0X01hcnNfUHJpbGxfTWFqX1FlcnNob3JfS29ycmlrX0d1c2h0X1NodGF0b3JfVGV0b3JfTsOrbnRvcl9EaGpldG9yJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9TaGtfTWFyX1ByaV9NYWpfUWVyX0tvcl9HdXNfU2h0X1RldF9Ow6tuX0Roaicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdFIERpZWxfRSBIw6tuw6tfRSBNYXJ0w6tfRSBNw6tya3Vyw6tfRSBFbmp0ZV9FIFByZW10ZV9FIFNodHVuw6snLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdEaWVfSMOrbl9NYXJfTcOrcl9FbmpfUHJlX1NodCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdEX0hfTWFfTcOrX0VfUF9TaCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvUER8TUQvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5jaGFyQXQoMCkgPT09ICdNJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXJzIDwgMTIgPyAnUEQnIDogJ01EJztcbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tTb3QgbsOrXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW05lc8OrciBuw6tdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbbsOrXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0RqZSBuw6tdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZSBrYWx1YXIgbsOrXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ27DqyAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgbcOrIHBhcsOrJyxcbiAgICAgICAgICAgIHM6ICdkaXNhIHNla29uZGEnLFxuICAgICAgICAgICAgc3M6ICclZCBzZWtvbmRhJyxcbiAgICAgICAgICAgIG06ICduasOrIG1pbnV0w6snLFxuICAgICAgICAgICAgbW06ICclZCBtaW51dGEnLFxuICAgICAgICAgICAgaDogJ25qw6sgb3LDqycsXG4gICAgICAgICAgICBoaDogJyVkIG9yw6snLFxuICAgICAgICAgICAgZDogJ25qw6sgZGl0w6snLFxuICAgICAgICAgICAgZGQ6ICclZCBkaXTDqycsXG4gICAgICAgICAgICBNOiAnbmrDqyBtdWFqJyxcbiAgICAgICAgICAgIE1NOiAnJWQgbXVhaicsXG4gICAgICAgICAgICB5OiAnbmrDqyB2aXQnLFxuICAgICAgICAgICAgeXk6ICclZCB2aXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzcTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTZXJiaWFuIFtzcl1cbi8vISBhdXRob3IgOiBNaWxhbiBKYW5hxI1rb3ZpxIc8bWlsYW5qYW5hY2tvdmljQGdtYWlsLmNvbT4gOiBodHRwczovL2dpdGh1Yi5jb20vbWlsYW4talxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRyYW5zbGF0b3IgPSB7XG4gICAgICAgIHdvcmRzOiB7XG4gICAgICAgICAgICAvL0RpZmZlcmVudCBncmFtbWF0aWNhbCBjYXNlc1xuICAgICAgICAgICAgc3M6IFsnc2VrdW5kYScsICdzZWt1bmRlJywgJ3Nla3VuZGknXSxcbiAgICAgICAgICAgIG06IFsnamVkYW4gbWludXQnLCAnamVkbmUgbWludXRlJ10sXG4gICAgICAgICAgICBtbTogWydtaW51dCcsICdtaW51dGUnLCAnbWludXRhJ10sXG4gICAgICAgICAgICBoOiBbJ2plZGFuIHNhdCcsICdqZWRub2cgc2F0YSddLFxuICAgICAgICAgICAgaGg6IFsnc2F0JywgJ3NhdGEnLCAnc2F0aSddLFxuICAgICAgICAgICAgZGQ6IFsnZGFuJywgJ2RhbmEnLCAnZGFuYSddLFxuICAgICAgICAgICAgTU06IFsnbWVzZWMnLCAnbWVzZWNhJywgJ21lc2VjaSddLFxuICAgICAgICAgICAgeXk6IFsnZ29kaW5hJywgJ2dvZGluZScsICdnb2RpbmEnXSxcbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTogZnVuY3Rpb24gKG51bWJlciwgd29yZEtleSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciA9PT0gMVxuICAgICAgICAgICAgICAgID8gd29yZEtleVswXVxuICAgICAgICAgICAgICAgIDogbnVtYmVyID49IDIgJiYgbnVtYmVyIDw9IDRcbiAgICAgICAgICAgICAgICA/IHdvcmRLZXlbMV1cbiAgICAgICAgICAgICAgICA6IHdvcmRLZXlbMl07XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgICAgICB2YXIgd29yZEtleSA9IHRyYW5zbGF0b3Iud29yZHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyICtcbiAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRvci5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKG51bWJlciwgd29yZEtleSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICB2YXIgc3IgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzcicsIHtcbiAgICAgICAgbW9udGhzOiAnamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuLl9mZWIuX21hci5fYXByLl9tYWpfanVuX2p1bF9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkZWxqYV9wb25lZGVsamFrX3V0b3Jha19zcmVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnbmVkLl9wb24uX3V0by5fc3JlLl/EjWV0Ll9wZXQuX3N1Yi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnbmVfcG9fdXRfc3JfxI1lX3BlX3N1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3N1dHJhIHVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRlbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JlZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdcSNZSB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBsYXN0V2Vla0RheXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW25lZGVsamVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwb25lZGVsamthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbdXRvcmthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzcmVkZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW8SNZXR2cnRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BldGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdFdlZWtEYXlzW3RoaXMuZGF5KCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ3ByZSAlcycsXG4gICAgICAgICAgICBzOiAnbmVrb2xpa28gc2VrdW5kaScsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ2RhbicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAnbWVzZWMnLFxuICAgICAgICAgICAgTU06IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ2dvZGludScsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWw6ICclZC4nLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3I7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU2VyYmlhbiBDeXJpbGxpYyBbc3ItY3lybF1cbi8vISBhdXRob3IgOiBNaWxhbiBKYW5hxI1rb3ZpxIc8bWlsYW5qYW5hY2tvdmljQGdtYWlsLmNvbT4gOiBodHRwczovL2dpdGh1Yi5jb20vbWlsYW4talxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRyYW5zbGF0b3IgPSB7XG4gICAgICAgIHdvcmRzOiB7XG4gICAgICAgICAgICAvL0RpZmZlcmVudCBncmFtbWF0aWNhbCBjYXNlc1xuICAgICAgICAgICAgc3M6IFsn0YHQtdC60YPQvdC00LAnLCAn0YHQtdC60YPQvdC00LUnLCAn0YHQtdC60YPQvdC00LgnXSxcbiAgICAgICAgICAgIG06IFsn0ZjQtdC00LDQvSDQvNC40L3Rg9GCJywgJ9GY0LXQtNC90LUg0LzQuNC90YPRgtC1J10sXG4gICAgICAgICAgICBtbTogWyfQvNC40L3Rg9GCJywgJ9C80LjQvdGD0YLQtScsICfQvNC40L3Rg9GC0LAnXSxcbiAgICAgICAgICAgIGg6IFsn0ZjQtdC00LDQvSDRgdCw0YInLCAn0ZjQtdC00L3QvtCzINGB0LDRgtCwJ10sXG4gICAgICAgICAgICBoaDogWyfRgdCw0YInLCAn0YHQsNGC0LAnLCAn0YHQsNGC0LgnXSxcbiAgICAgICAgICAgIGRkOiBbJ9C00LDQvScsICfQtNCw0L3QsCcsICfQtNCw0L3QsCddLFxuICAgICAgICAgICAgTU06IFsn0LzQtdGB0LXRhicsICfQvNC10YHQtdGG0LAnLCAn0LzQtdGB0LXRhtC4J10sXG4gICAgICAgICAgICB5eTogWyfQs9C+0LTQuNC90LAnLCAn0LPQvtC00LjQvdC1JywgJ9Cz0L7QtNC40L3QsCddLFxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxXG4gICAgICAgICAgICAgICAgPyB3b3JkS2V5WzBdXG4gICAgICAgICAgICAgICAgOiBudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNFxuICAgICAgICAgICAgICAgID8gd29yZEtleVsxXVxuICAgICAgICAgICAgICAgIDogd29yZEtleVsyXTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICBudW1iZXIgK1xuICAgICAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdG9yLmNvcnJlY3RHcmFtbWF0aWNhbENhc2UobnVtYmVyLCB3b3JkS2V5KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHZhciBzckN5cmwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzci1jeXJsJywge1xuICAgICAgICBtb250aHM6ICfRmNCw0L3Rg9Cw0YBf0YTQtdCx0YDRg9Cw0YBf0LzQsNGA0YJf0LDQv9GA0LjQu1/QvNCw0Zhf0ZjRg9C9X9GY0YPQu1/QsNCy0LPRg9GB0YJf0YHQtdC/0YLQtdC80LHQsNGAX9C+0LrRgtC+0LHQsNGAX9C90L7QstC10LzQsdCw0YBf0LTQtdGG0LXQvNCx0LDRgCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRmNCw0L0uX9GE0LXQsS5f0LzQsNGALl/QsNC/0YAuX9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQsy5f0YHQtdC/Ll/QvtC60YIuX9C90L7Qsi5f0LTQtdGGLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfQvdC10LTQtdGZ0LBf0L/QvtC90LXQtNC10ZnQsNC6X9GD0YLQvtGA0LDQul/RgdGA0LXQtNCwX9GH0LXRgtCy0YDRgtCw0Lpf0L/QtdGC0LDQul/RgdGD0LHQvtGC0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfQvdC10LQuX9C/0L7QvS5f0YPRgtC+Ll/RgdGA0LUuX9GH0LXRgi5f0L/QtdGCLl/RgdGD0LEuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9C90LVf0L/Qvl/Rg9GCX9GB0YBf0YfQtV/Qv9C1X9GB0YMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9C00LDQvdCw0YEg0YNdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0YHRg9GC0YDQsCDRg10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvQvdC10LTQtdGZ0YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gW9GB0YDQtdC00YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gW9GB0YPQsdC+0YLRg10gW9GDXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBkZGRkIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9GY0YPRh9C1INGDXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBsYXN0V2Vla0RheXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C1XSBb0L3QtdC00LXRmdC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9C/0L7QvdC10LTQtdGZ0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvRg9GC0L7RgNC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQtV0gW9GB0YDQtdC00LVdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0YfQtdGC0LLRgNGC0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvQv9C10YLQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70LVdIFvRgdGD0LHQvtGC0LVdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RXZWVrRGF5c1t0aGlzLmRheSgpXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ9C30LAgJXMnLFxuICAgICAgICAgICAgcGFzdDogJ9C/0YDQtSAlcycsXG4gICAgICAgICAgICBzOiAn0L3QtdC60L7Qu9C40LrQviDRgdC10LrRg9C90LTQuCcsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaGg6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ9C00LDQvScsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNOiAn0LzQtdGB0LXRhicsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5OiAn0LPQvtC00LjQvdGDJyxcbiAgICAgICAgICAgIHl5OiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzckN5cmw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogc2lTd2F0aSBbc3NdXG4vLyEgYXV0aG9yIDogTmljb2xhaSBEYXZpZXM8bWFpbEBuaWNvbGFpLmlvPiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNvbGFpZGF2aWVzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3MgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzcycsIHtcbiAgICAgICAgbW9udGhzOiBcIkJoaW1iaWR2d2FuZV9JbmRsb3ZhbmFfSW5kbG92J2xlbmtodWx1X01hYmFzYV9Jbmtod2VraHdldGlfSW5obGFiYV9LaG9sd2FuZV9JbmdjaV9JbnlvbmlfSW1waGFsYV9Md2V0aV9JbmdvbmdvbmlcIi5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0JoaV9JbmFfSW51X01hYl9JbmtfSW5oX0tob19JZ2NfSW55X0ltcF9Md2VfSWdvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0xpc29udGZvX1Vtc29tYnVsdWtvX0xlc2liaWxpX0xlc2l0c2F0ZnVfTGVzaW5lX0xlc2lobGFudV9VbWdjaWJlbG8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdMaXNfVW1iX0xzYl9MZXNfTHNpX0xzaF9VbWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnTGlfVXNfTGJfTHRfTHNfTGhfVWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbTmFtdWhsYSBuZ2FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbS3VzYXNhIG5nYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtuZ2FdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSXRvbG8gbmdhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW2xlbGlwaGVsaWxlXSBbbmdhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ25nYSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnd2VudGVrYSBuZ2EgJXMnLFxuICAgICAgICAgICAgczogJ2VtaXp1endhbmEgbG9tY2FuZScsXG4gICAgICAgICAgICBzczogJyVkIG16dXp3YW5hJyxcbiAgICAgICAgICAgIG06ICd1bXp1enUnLFxuICAgICAgICAgICAgbW06ICclZCBlbWl6dXp1JyxcbiAgICAgICAgICAgIGg6ICdsaWhvcmEnLFxuICAgICAgICAgICAgaGg6ICclZCBlbWFob3JhJyxcbiAgICAgICAgICAgIGQ6ICdsaWxhbmdhJyxcbiAgICAgICAgICAgIGRkOiAnJWQgZW1hbGFuZ2EnLFxuICAgICAgICAgICAgTTogJ2lueWFuZ2EnLFxuICAgICAgICAgICAgTU06ICclZCB0aW55YW5nYScsXG4gICAgICAgICAgICB5OiAndW1ueWFrYScsXG4gICAgICAgICAgICB5eTogJyVkIGltaW55YWthJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2VrdXNlbml8ZW1pbml8ZW50c2FtYmFtYXxlYnVzdWt1LyxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VrdXNlbmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE1KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbWluaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VudHNhbWJhbWEnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VidXN1a3UnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdla3VzZW5pJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2VtaW5pJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdlbnRzYW1iYW1hJyB8fCBtZXJpZGllbSA9PT0gJ2VidXN1a3UnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhvdXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6ICclZCcsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBTd2VkaXNoIFtzdl1cbi8vISBhdXRob3IgOiBKZW5zIEFsbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS91bG11c1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN2ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3YnLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcmlfZmVicnVhcmlfbWFyc19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdGlfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnamFuX2ZlYl9tYXJfYXByX21hal9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnc8O2bmRhZ19tw6VuZGFnX3Rpc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbMO2cmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ3PDtm5fbcOlbl90aXNfb25zX3Rvcl9mcmVfbMO2cicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdzw7ZfbcOlX3RpX29uX3RvX2ZyX2zDticuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgICAgICBsbGw6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGw6ICdkZGQgRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0lkYWddIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSW1vcmdvbl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJZ8Olcl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbUMOlXSBkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW0ldIGRkZGRbc10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnZsO2ciAlcyBzZWRhbicsXG4gICAgICAgICAgICBzOiAnbsOlZ3JhIHNla3VuZGVyJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZXInLFxuICAgICAgICAgICAgbTogJ2VuIG1pbnV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRlcicsXG4gICAgICAgICAgICBoOiAnZW4gdGltbWUnLFxuICAgICAgICAgICAgaGg6ICclZCB0aW1tYXInLFxuICAgICAgICAgICAgZDogJ2VuIGRhZycsXG4gICAgICAgICAgICBkZDogJyVkIGRhZ2FyJyxcbiAgICAgICAgICAgIE06ICdlbiBtw6VuYWQnLFxuICAgICAgICAgICAgTU06ICclZCBtw6VuYWRlcicsXG4gICAgICAgICAgICB5OiAnZXR0IMOlcicsXG4gICAgICAgICAgICB5eTogJyVkIMOlcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShcXDplfFxcOmEpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnOmUnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJzphJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICc6YSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAnOmUnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICc6ZSc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Y7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogU3dhaGlsaSBbc3ddXG4vLyEgYXV0aG9yIDogRmFoYWQgS2Fzc2ltIDogaHR0cHM6Ly9naXRodWIuY29tL2ZhZHNlbFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN3ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3cnLCB7XG4gICAgICAgIG1vbnRoczogJ0phbnVhcmlfRmVicnVhcmlfTWFjaGlfQXByaWxpX01laV9KdW5pX0p1bGFpX0Fnb3N0aV9TZXB0ZW1iYV9Pa3RvYmFfTm92ZW1iYV9EZXNlbWJhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9BZ29fU2VwX09rdF9Ob3ZfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0p1bWFwaWxpX0p1bWF0YXR1X0p1bWFubmVfSnVtYXRhbm9fQWxoYW1pc2lfSWp1bWFhX0p1bWFtb3NpJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnSnBsX0p0YXRfSm5uZV9KdGFuX0FsaF9Jam1fSm1vcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdKMl9KM19KNF9KNV9BbF9Jal9KMScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdoaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbbGVvIHNhYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1trZXNobyBzYWFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW3dpa2kgaWpheW9dIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbamFuYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbd2lraSBpbGl5b3BpdGFdIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgYmFhZGF5ZScsXG4gICAgICAgICAgICBwYXN0OiAndG9rZWEgJXMnLFxuICAgICAgICAgICAgczogJ2hpdmkgcHVuZGUnLFxuICAgICAgICAgICAgc3M6ICdzZWt1bmRlICVkJyxcbiAgICAgICAgICAgIG06ICdkYWtpa2EgbW9qYScsXG4gICAgICAgICAgICBtbTogJ2Rha2lrYSAlZCcsXG4gICAgICAgICAgICBoOiAnc2FhIGxpbW9qYScsXG4gICAgICAgICAgICBoaDogJ21hc2FhICVkJyxcbiAgICAgICAgICAgIGQ6ICdzaWt1IG1vamEnLFxuICAgICAgICAgICAgZGQ6ICdzaWt1ICVkJyxcbiAgICAgICAgICAgIE06ICdtd2V6aSBtbW9qYScsXG4gICAgICAgICAgICBNTTogJ21pZXppICVkJyxcbiAgICAgICAgICAgIHk6ICdtd2FrYSBtbW9qYScsXG4gICAgICAgICAgICB5eTogJ21pYWthICVkJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN3O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRhbWlsIFt0YV1cbi8vISBhdXRob3IgOiBBcmp1bmt1bWFyIEtyaXNobmFtb29ydGh5IDogaHR0cHM6Ly9naXRodWIuY29tL3RrMTIwNDA0XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAgICAgJzEnOiAn4K+nJyxcbiAgICAgICAgICAgICcyJzogJ+CvqCcsXG4gICAgICAgICAgICAnMyc6ICfgr6knLFxuICAgICAgICAgICAgJzQnOiAn4K+qJyxcbiAgICAgICAgICAgICc1JzogJ+CvqycsXG4gICAgICAgICAgICAnNic6ICfgr6wnLFxuICAgICAgICAgICAgJzcnOiAn4K+tJyxcbiAgICAgICAgICAgICc4JzogJ+CvricsXG4gICAgICAgICAgICAnOSc6ICfgr68nLFxuICAgICAgICAgICAgJzAnOiAn4K+mJyxcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Cvpyc6ICcxJyxcbiAgICAgICAgICAgICfgr6gnOiAnMicsXG4gICAgICAgICAgICAn4K+pJzogJzMnLFxuICAgICAgICAgICAgJ+Cvqic6ICc0JyxcbiAgICAgICAgICAgICfgr6snOiAnNScsXG4gICAgICAgICAgICAn4K+sJzogJzYnLFxuICAgICAgICAgICAgJ+CvrSc6ICc3JyxcbiAgICAgICAgICAgICfgr64nOiAnOCcsXG4gICAgICAgICAgICAn4K+vJzogJzknLFxuICAgICAgICAgICAgJ+Cvpic6ICcwJyxcbiAgICAgICAgfTtcblxuICAgIHZhciB0YSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RhJywge1xuICAgICAgICBtb250aHM6ICfgrpzgrqngrrXgrrDgrr9f4K6q4K6/4K6q4K+N4K6w4K614K6w4K6/X+CuruCuvuCusOCvjeCumuCvjV/gro/grqrgr43grrDgrrLgr41f4K6u4K+HX+CunOCvguCuqeCvjV/grpzgr4LgrrLgr4hf4K6G4K6V4K644K+N4K6f4K+NX+CumuCvhuCuquCvjeCun+CvhuCuruCvjeCuquCusOCvjV/groXgrpXgr43grp/gr4fgrr7grqrgrrDgr41f4K6o4K614K6u4K+N4K6q4K6w4K+NX+Cun+Cuv+CumuCuruCvjeCuquCusOCvjScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfgrpzgrqngrrXgrrDgrr9f4K6q4K6/4K6q4K+N4K6w4K614K6w4K6/X+CuruCuvuCusOCvjeCumuCvjV/gro/grqrgr43grrDgrrLgr41f4K6u4K+HX+CunOCvguCuqeCvjV/grpzgr4LgrrLgr4hf4K6G4K6V4K644K+N4K6f4K+NX+CumuCvhuCuquCvjeCun+CvhuCuruCvjeCuquCusOCvjV/groXgrpXgr43grp/gr4fgrr7grqrgrrDgr41f4K6o4K614K6u4K+N4K6q4K6w4K+NX+Cun+Cuv+CumuCuruCvjeCuquCusOCvjScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfgrp7grr7grq/grr/grrHgr43grrHgr4HgrpXgr43grpXgrr/grrTgrq7gr4hf4K6k4K6/4K6Z4K+N4K6V4K6f4K+N4K6V4K6/4K604K6u4K+IX+CumuCvhuCuteCvjeCuteCuvuCur+CvjeCuleCuv+CutOCuruCviF/grqrgr4HgrqTgrqngr43grpXgrr/grrTgrq7gr4hf4K614K6/4K6v4K6+4K604K6V4K+N4K6V4K6/4K604K6u4K+IX+CuteCvhuCus+CvjeCus+Cuv+CuleCvjeCuleCuv+CutOCuruCviF/grprgrqngrr/grpXgr43grpXgrr/grrTgrq7gr4gnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgrp7grr7grq/grr/grrHgr4Ff4K6k4K6/4K6Z4K+N4K6V4K6z4K+NX+CumuCvhuCuteCvjeCuteCuvuCur+CvjV/grqrgr4HgrqTgrqngr41f4K614K6/4K6v4K6+4K604K6p4K+NX+CuteCvhuCus+CvjeCus+Cuv1/grprgrqngrr8nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4K6e4K6+X+CupOCuv1/grprgr4Zf4K6q4K+BX+CuteCuv1/grrXgr4Zf4K6aJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4K6H4K6p4K+N4K6x4K+BXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CuqOCuvuCus+CviF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+CuqOCvh+CuseCvjeCuseCvgV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4K6V4K6f4K6o4K+N4K6kIOCuteCuvuCusOCuruCvjV0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgrofgrrLgr40nLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCuruCvgeCuqeCvjScsXG4gICAgICAgICAgICBzOiAn4K6S4K6w4K+BIOCumuCuv+CusiDgrrXgrr/grqjgrr7grp/grr/grpXgrrPgr40nLFxuICAgICAgICAgICAgc3M6ICclZCDgrrXgrr/grqjgrr7grp/grr/grpXgrrPgr40nLFxuICAgICAgICAgICAgbTogJ+CukuCusOCvgSDgrqjgrr/grq7grr/grp/grq7gr40nLFxuICAgICAgICAgICAgbW06ICclZCDgrqjgrr/grq7grr/grp/grpngr43grpXgrrPgr40nLFxuICAgICAgICAgICAgaDogJ+CukuCusOCvgSDgrq7grqPgrr8g4K6o4K+H4K6w4K6u4K+NJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4K6u4K6j4K6/IOCuqOCvh+CusOCuruCvjScsXG4gICAgICAgICAgICBkOiAn4K6S4K6w4K+BIOCuqOCuvuCus+CvjScsXG4gICAgICAgICAgICBkZDogJyVkIOCuqOCuvuCun+CvjeCuleCus+CvjScsXG4gICAgICAgICAgICBNOiAn4K6S4K6w4K+BIOCuruCuvuCupOCuruCvjScsXG4gICAgICAgICAgICBNTTogJyVkIOCuruCuvuCupOCumeCvjeCuleCus+CvjScsXG4gICAgICAgICAgICB5OiAn4K6S4K6w4K+BIOCuteCusOCvgeCun+CuruCvjScsXG4gICAgICAgICAgICB5eTogJyVkIOCuhuCuo+CvjeCun+CvgeCuleCus+CvjScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfeCuteCupOCvgS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn4K614K6k4K+BJztcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Cvp+CvqOCvqeCvquCvq+CvrOCvreCvruCvr+Cvpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gcmVmZXIgaHR0cDovL3RhLndpa2lwZWRpYS5vcmcvcy8xZXIxXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/grq/grr7grq7grq7gr4184K614K+I4K6V4K6x4K+IfOCuleCuvuCusuCviHzgrqjgrqPgr43grqrgrpXgrrLgr4184K6O4K6x4K+N4K6q4K6+4K6f4K+BfOCuruCuvuCusuCviC8sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrq/grr7grq7grq7gr40nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuteCviOCuleCuseCviCc7IC8vIOCuteCviOCuleCuseCviFxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrpXgrr7grrLgr4gnOyAvLyDgrpXgrr7grrLgr4hcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6o4K6j4K+N4K6q4K6V4K6y4K+NJzsgLy8g4K6o4K6j4K+N4K6q4K6V4K6y4K+NXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCujuCuseCvjeCuquCuvuCun+CvgSc7IC8vIOCujuCuseCvjeCuquCuvuCun+CvgVxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrq7grr7grrLgr4gnOyAvLyDgrq7grr7grrLgr4hcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6v4K6+4K6u4K6u4K+NJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4K6v4K6+4K6u4K6u4K+NJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgMiA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4K614K+I4K6V4K6x4K+IJyB8fCBtZXJpZGllbSA9PT0gJ+CuleCuvuCusuCviCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgrqjgrqPgr43grqrgrpXgrrLgr40nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGVsdWd1IFt0ZV1cbi8vISBhdXRob3IgOiBLcmlzaG5hIENoYWl0YW55YSBUaG90YSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9rY3Rob3RhXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdGUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0ZScsIHtcbiAgICAgICAgbW9udGhzOiAn4LCc4LCo4LC14LCw4LC/X+Cwq+Cwv+CwrOCxjeCwsOCwteCwsOCwv1/gsK7gsL7gsLDgsY3gsJrgsL9f4LCP4LCq4LGN4LCw4LC/4LCy4LGNX+CwruCxh1/gsJzgsYLgsKjgsY1f4LCc4LGB4LCy4LGIX+CwhuCwl+CwuOCxjeCwn+CxgV/gsLjgsYbgsKrgsY3gsJ/gsYbgsILgsKzgsLDgsY1f4LCF4LCV4LGN4LCf4LGL4LCs4LCw4LGNX+CwqOCwteCwguCwrOCwsOCxjV/gsKHgsL/gsLjgsYbgsILgsKzgsLDgsY0nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4LCc4LCoLl/gsKvgsL/gsKzgsY3gsLAuX+CwruCwvuCwsOCxjeCwmuCwv1/gsI/gsKrgsY3gsLDgsL8uX+CwruCxh1/gsJzgsYLgsKjgsY1f4LCc4LGB4LCy4LGIX+CwhuCwly5f4LC44LGG4LCq4LGNLl/gsIXgsJXgsY3gsJ/gsYsuX+CwqOCwtS5f4LCh4LC/4LC44LGGLicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXM6ICfgsIbgsKbgsL/gsLXgsL7gsLDgsIJf4LC44LGL4LCu4LC14LC+4LCw4LCCX+CwruCwguCwl+Cws+CwteCwvuCwsOCwgl/gsKzgsYHgsKfgsLXgsL7gsLDgsIJf4LCX4LGB4LCw4LGB4LC14LC+4LCw4LCCX+CwtuCxgeCwleCxjeCwsOCwteCwvuCwsOCwgl/gsLbgsKjgsL/gsLXgsL7gsLDgsIInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfgsIbgsKbgsL9f4LC44LGL4LCuX+CwruCwguCwl+Cws1/gsKzgsYHgsKdf4LCX4LGB4LCw4LGBX+CwtuCxgeCwleCxjeCwsF/gsLbgsKjgsL8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4LCGX+CwuOCxi1/gsK7gsIJf4LCs4LGBX+Cwl+CxgV/gsLbgsYFf4LC2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdBIGg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+CwqOCxh+CwoeCxgV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vgsLDgsYfgsKrgsYFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vgsKjgsL/gsKjgsY3gsKhdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+Cwl+CwpF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyDgsLLgsYsnLFxuICAgICAgICAgICAgcGFzdDogJyVzIOCwleCxjeCwsOCwv+CwpOCwgicsXG4gICAgICAgICAgICBzOiAn4LCV4LGK4LCo4LGN4LCo4LC/IOCwleCxjeCwt+Cwo+CwvuCwsuCxgScsXG4gICAgICAgICAgICBzczogJyVkIOCwuOCxhuCwleCwqOCxjeCwsuCxgScsXG4gICAgICAgICAgICBtOiAn4LCS4LCVIOCwqOCwv+CwruCwv+Cwt+CwgicsXG4gICAgICAgICAgICBtbTogJyVkIOCwqOCwv+CwruCwv+Cwt+CwvuCwsuCxgScsXG4gICAgICAgICAgICBoOiAn4LCS4LCVIOCwl+CwguCwnycsXG4gICAgICAgICAgICBoaDogJyVkIOCwl+CwguCwn+CwsuCxgScsXG4gICAgICAgICAgICBkOiAn4LCS4LCVIOCwsOCxi+CwnOCxgScsXG4gICAgICAgICAgICBkZDogJyVkIOCwsOCxi+CwnOCxgeCwsuCxgScsXG4gICAgICAgICAgICBNOiAn4LCS4LCVIOCwqOCxhuCwsicsXG4gICAgICAgICAgICBNTTogJyVkIOCwqOCxhuCwsuCwsuCxgScsXG4gICAgICAgICAgICB5OiAn4LCS4LCVIOCwuOCwguCwteCwpOCxjeCwuOCwsOCwgicsXG4gICAgICAgICAgICB5eTogJyVkIOCwuOCwguCwteCwpOCxjeCwuOCwsOCwvuCwsuCxgScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfeCwtS8sXG4gICAgICAgIG9yZGluYWw6ICclZOCwtScsXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/gsLDgsL7gsKTgsY3gsLDgsL984LCJ4LCm4LCv4LCCfOCwruCwp+CxjeCwr+CwvuCwueCxjeCwqOCwgnzgsLjgsL7gsK/gsILgsKTgsY3gsLDgsIIvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgsLDgsL7gsKTgsY3gsLDgsL8nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsIngsKbgsK/gsIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LCu4LCn4LGN4LCv4LC+4LC54LGN4LCo4LCCJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsLjgsL7gsK/gsILgsKTgsY3gsLDgsIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCw4LC+4LCk4LGN4LCw4LC/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsIngsKbgsK/gsIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwruCwp+CxjeCwr+CwvuCwueCxjeCwqOCwgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LC44LC+4LCv4LCC4LCk4LGN4LCw4LCCJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLDgsL7gsKTgsY3gsLDgsL8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA2LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGV0dW4gRGlsaSAoRWFzdCBUaW1vcikgW3RldF1cbi8vISBhdXRob3IgOiBKb3NodWEgQnJvb2tzIDogaHR0cHM6Ly9naXRodWIuY29tL2pvc2hicm9va3Ncbi8vISBhdXRob3IgOiBPbm9yaW8gRGUgSi4gQWZvbnNvIDogaHR0cHM6Ly9naXRodWIuY29tL21hcm9ib1xuLy8hIGF1dGhvciA6IFNvbmlhIFNpbW9lcyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb25pYXNpbW9lc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHRldCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RldCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFuZWlydV9GZXZlcmVpcnVfTWFyc3VfQWJyaWxfTWFpdV9KdcOxdV9KdWxsdV9BZ3VzdHVfU2V0ZW1icnVfT3V0dWJydV9Ob3ZlbWJydV9EZXplbWJydScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW5fRmV2X01hcl9BYnJfTWFpX0p1bl9KdWxfQWdvX1NldF9PdXRfTm92X0Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdEb21pbmd1X1NlZ3VuZGFfVGVyc2FfS3VhcnRhX0tpbnRhX1Nlc3RhX1NhYmFkdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0RvbV9TZWdfVGVyc19LdWFfS2ludF9TZXN0X1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdEb19TZWdfVGVfS3VfS2lfU2VzX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW09oaW4gaWhhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FiYW4gaWhhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2loYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIb3Jpc2VpayBpaGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbc2VtYW5hIGtvdHVrXSBbaWhhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2loYSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgbGl1YmEnLFxuICAgICAgICAgICAgczogJ3NlZ3VuZHUgYmFsdW4nLFxuICAgICAgICAgICAgc3M6ICdzZWd1bmR1ICVkJyxcbiAgICAgICAgICAgIG06ICdtaW51dHUgaWRhJyxcbiAgICAgICAgICAgIG1tOiAnbWludXR1ICVkJyxcbiAgICAgICAgICAgIGg6ICdvcmFzIGlkYScsXG4gICAgICAgICAgICBoaDogJ29yYXMgJWQnLFxuICAgICAgICAgICAgZDogJ2xvcm9uIGlkYScsXG4gICAgICAgICAgICBkZDogJ2xvcm9uICVkJyxcbiAgICAgICAgICAgIE06ICdmdWxhbiBpZGEnLFxuICAgICAgICAgICAgTU06ICdmdWxhbiAlZCcsXG4gICAgICAgICAgICB5OiAndGluYW4gaWRhJyxcbiAgICAgICAgICAgIHl5OiAndGluYW4gJWQnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPVxuICAgICAgICAgICAgICAgICAgICB+figobnVtYmVyICUgMTAwKSAvIDEwKSA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAndGgnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3N0J1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICduZCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gM1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGV0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRhamlrIFt0Z11cbi8vISBhdXRob3IgOiBPcmlmIE4uIEpyLiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcmlmLWpyXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YPQvCcsXG4gICAgICAgIDE6ICct0YPQvCcsXG4gICAgICAgIDI6ICct0Y7QvCcsXG4gICAgICAgIDM6ICct0Y7QvCcsXG4gICAgICAgIDQ6ICct0YPQvCcsXG4gICAgICAgIDU6ICct0YPQvCcsXG4gICAgICAgIDY6ICct0YPQvCcsXG4gICAgICAgIDc6ICct0YPQvCcsXG4gICAgICAgIDg6ICct0YPQvCcsXG4gICAgICAgIDk6ICct0YPQvCcsXG4gICAgICAgIDEwOiAnLdGD0LwnLFxuICAgICAgICAxMjogJy3Rg9C8JyxcbiAgICAgICAgMTM6ICct0YPQvCcsXG4gICAgICAgIDIwOiAnLdGD0LwnLFxuICAgICAgICAzMDogJy3RjtC8JyxcbiAgICAgICAgNDA6ICct0YPQvCcsXG4gICAgICAgIDUwOiAnLdGD0LwnLFxuICAgICAgICA2MDogJy3Rg9C8JyxcbiAgICAgICAgNzA6ICct0YPQvCcsXG4gICAgICAgIDgwOiAnLdGD0LwnLFxuICAgICAgICA5MDogJy3Rg9C8JyxcbiAgICAgICAgMTAwOiAnLdGD0LwnLFxuICAgIH07XG5cbiAgICB2YXIgdGcgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0ZycsIHtcbiAgICAgICAgbW9udGhzOiAn0Y/QvdCy0LDRgF/RhNC10LLRgNCw0Ltf0LzQsNGA0YJf0LDQv9GA0LXQu1/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YBf0L7QutGC0Y/QsdGAX9C90L7Rj9Cx0YBf0LTQtdC60LDQsdGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GP0L3Qsl/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LNf0YHQtdC9X9C+0LrRgl/QvdC+0Y9f0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9GP0LrRiNCw0L3QsdC1X9C00YPRiNCw0L3QsdC1X9GB0LXRiNCw0L3QsdC1X9GH0L7RgNGI0LDQvdCx0LVf0L/QsNC90rfRiNCw0L3QsdC1X9K30YPQvNGK0LBf0YjQsNC90LHQtScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9GP0YjQsV/QtNGI0LFf0YHRiNCxX9GH0YjQsV/Qv9GI0LFf0rfRg9C8X9GI0L3QsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfRj9GIX9C00Yhf0YHRiF/Rh9GIX9C/0Yhf0rfQvF/RiNCxJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9CY0LzRgNOv0Lcg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQn9Cw0LPQvtKzINGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JTQuNGA06/QtyDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGRb0LhdIFvSs9Cw0YTRgtCw0Lgg0L7Rj9C90LTQsCDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGRb0LhdIFvSs9Cw0YTRgtCw0Lgg0LPRg9C30LDRiNGC0LAg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQsdCw0YrQtNC4ICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDQv9C10YgnLFxuICAgICAgICAgICAgczogJ9GP0LrRh9Cw0L3QtCDRgdC+0L3QuNGPJyxcbiAgICAgICAgICAgIG06ICfRj9C6INC00LDSm9C40pvQsCcsXG4gICAgICAgICAgICBtbTogJyVkINC00LDSm9C40pvQsCcsXG4gICAgICAgICAgICBoOiAn0Y/QuiDRgdC+0LDRgicsXG4gICAgICAgICAgICBoaDogJyVkINGB0L7QsNGCJyxcbiAgICAgICAgICAgIGQ6ICfRj9C6INGA06/QtycsXG4gICAgICAgICAgICBkZDogJyVkINGA06/QtycsXG4gICAgICAgICAgICBNOiAn0Y/QuiDQvNC+0rMnLFxuICAgICAgICAgICAgTU06ICclZCDQvNC+0rMnLFxuICAgICAgICAgICAgeTogJ9GP0Log0YHQvtC7JyxcbiAgICAgICAgICAgIHl5OiAnJWQg0YHQvtC7JyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9GI0LDQsXzRgdGD0LHSs3zRgNOv0Ld80LHQtdCz0L7Ssy8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ9GI0LDQsScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9GB0YPQsdKzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9GA06/QtycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn0LHQtdCz0L7SsycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRiNCw0LEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GB0YPQsdKzJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfRgNOv0LcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Cx0LXQs9C+0rMnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GI0LDQsSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0YPQvHzRjtC8KS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1tudW1iZXJdIHx8IHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMXRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRnO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFRoYWkgW3RoXVxuLy8hIGF1dGhvciA6IEtyaWRzYWRhIFRoYW5hYnVscG9uZyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zaXJuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0aCcsIHtcbiAgICAgICAgbW9udGhzOiAn4Lih4LiB4Lij4Liy4LiE4LihX+C4geC4uOC4oeC4oOC4suC4nuC4seC4meC4mOC5jF/guKHguLXguJnguLLguITguKFf4LmA4Lih4Lip4Liy4Lii4LiZX+C4nuC4pOC4qeC4oOC4suC4hOC4oV/guKHguLTguJbguLjguJnguLLguKLguJlf4LiB4Lij4LiB4LiO4Liy4LiE4LihX+C4quC4tOC4h+C4q+C4suC4hOC4oV/guIHguLHguJnguKLguLLguKLguJlf4LiV4Li44Lil4Liy4LiE4LihX+C4nuC4pOC4qOC4iOC4tOC4geC4suC4ouC4mV/guJjguLHguJnguKfguLLguITguKEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4LihLuC4hC5f4LiBLuC4ni5f4Lih4Li1LuC4hC5f4LmA4LihLuC4oi5f4LieLuC4hC5f4Lih4Li0LuC4oi5f4LiBLuC4hC5f4LiqLuC4hC5f4LiBLuC4oi5f4LiVLuC4hC5f4LieLuC4oi5f4LiYLuC4hC4nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAn4Lit4Liy4LiX4Li04LiV4Lii4LmMX+C4iOC4seC4meC4l+C4o+C5jF/guK3guLHguIfguITguLLguKNf4Lie4Li44LiYX+C4nuC4pOC4q+C4seC4quC4muC4lOC4tV/guKjguLjguIHguKPguYxf4LmA4Liq4Liy4Lij4LmMJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4Lit4Liy4LiX4Li04LiV4Lii4LmMX+C4iOC4seC4meC4l+C4o+C5jF/guK3guLHguIfguITguLLguKNf4Lie4Li44LiYX+C4nuC4pOC4q+C4seC4ql/guKjguLjguIHguKPguYxf4LmA4Liq4Liy4Lij4LmMJy5zcGxpdCgnXycpLCAvLyB5ZXMsIHRocmVlIGNoYXJhY3RlcnMgZGlmZmVyZW5jZVxuICAgICAgICB3ZWVrZGF5c01pbjogJ+C4reC4si5f4LiILl/guK0uX+C4ni5f4Lie4LikLl/guKguX+C4qi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFM6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkg4LmA4Lin4Lil4LiyIEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ+C4p+C4seC4mWRkZGTguJfguLXguYggRCBNTU1NIFlZWVkg4LmA4Lin4Lil4LiyIEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LiB4LmI4Lit4LiZ4LmA4LiX4Li14LmI4Lii4LiHfOC4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4Lir4Lil4Lix4LiH4LmA4LiX4Li14LmI4Lii4LiHJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C4geC5iOC4reC4meC5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Lir4Lil4Lix4LiH4LmA4LiX4Li14LmI4Lii4LiHJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4Lin4Lix4LiZ4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vguJ7guKPguLjguYjguIfguJnguLXguYkg4LmA4Lin4Lil4LiyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGRb4Lir4LiZ4LmJ4LiyIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vguYDguKHguLfguYjguK3guKfguLLguJnguJnguLXguYkg4LmA4Lin4Lil4LiyXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vguKfguLHguJldZGRkZFvguJfguLXguYjguYHguKXguYnguKcg4LmA4Lin4Lil4LiyXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+C4reC4teC4gSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXPguJfguLXguYjguYHguKXguYnguKcnLFxuICAgICAgICAgICAgczogJ+C5hOC4oeC5iOC4geC4teC5iOC4p+C4tOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBzczogJyVkIOC4p+C4tOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBtOiAnMSDguJnguLLguJfguLUnLFxuICAgICAgICAgICAgbW06ICclZCDguJnguLLguJfguLUnLFxuICAgICAgICAgICAgaDogJzEg4LiK4Lix4LmI4Lin4LmC4Lih4LiHJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4LiK4Lix4LmI4Lin4LmC4Lih4LiHJyxcbiAgICAgICAgICAgIGQ6ICcxIOC4p+C4seC4mScsXG4gICAgICAgICAgICBkZDogJyVkIOC4p+C4seC4mScsXG4gICAgICAgICAgICBNOiAnMSDguYDguJTguLfguK3guJknLFxuICAgICAgICAgICAgTU06ICclZCDguYDguJTguLfguK3guJknLFxuICAgICAgICAgICAgeTogJzEg4Lib4Li1JyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Lib4Li1JyxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUdXJrbWVuIFt0cmtdXG4vLyEgYXV0aG9yIDogQXRhbXlyYXQgQWJkeXJhaG1hbm92IDogaHR0cHM6Ly9naXRodWIuY29tL2F0YW15cmF0YWJkeVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAxOiBcIidpbmppXCIsXG4gICAgICAgIDU6IFwiJ2luamlcIixcbiAgICAgICAgODogXCInaW5qaVwiLFxuICAgICAgICA3MDogXCInaW5qaVwiLFxuICAgICAgICA4MDogXCInaW5qaVwiLFxuICAgICAgICAyOiBcIiduamlcIixcbiAgICAgICAgNzogXCInbmppXCIsXG4gICAgICAgIDIwOiBcIiduamlcIixcbiAgICAgICAgNTA6IFwiJ25qaVwiLFxuICAgICAgICAzOiBcIifDvG5qaVwiLFxuICAgICAgICA0OiBcIifDvG5qaVwiLFxuICAgICAgICAxMDA6IFwiJ8O8bmppXCIsXG4gICAgICAgIDY6IFwiJ25qeVwiLFxuICAgICAgICA5OiBcIid1bmp5XCIsXG4gICAgICAgIDEwOiBcIid1bmp5XCIsXG4gICAgICAgIDMwOiBcIid1bmp5XCIsXG4gICAgICAgIDYwOiBcIid5bmp5XCIsXG4gICAgICAgIDkwOiBcIid5bmp5XCIsXG4gICAgfTtcblxuICAgIHZhciB0ayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RrJywge1xuICAgICAgICBtb250aHM6ICfDnWFud2FyX0Zld3JhbF9NYXJ0X0FwcmVsX01hw71fScO9dW5fScO9dWxfQXdndXN0X1NlbnTDvWFicl9Pa3TDvWFicl9Ob8O9YWJyX0Rla2Ficicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfDnWFuX0Zld19NYXJfQXByX01hw71fScO9bl9Jw71sX0F3Z19TZW5fT2t0X05vw71fRGVrJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ8OdZWvFn2VuYmVfRHXFn2VuYmVfU2nFn2VuYmVfw4dhcsWfZW5iZV9QZW7Fn2VuYmVfQW5uYV/FnmVuYmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfDnWVrX0R1xZ9fU2nFn1/Dh2FyX1Blbl9Bbm5fxZ5lbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfDnWtfRMWfX1PFn1/Dh3JfUG5fQW5fxZ5uJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2J1Z8O8biBzYWdhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tlcnRpciBzYWdhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdbaW5kaWtpXSBkZGRkIFtzYWdhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tkw7zDvW5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2dlw6dlbl0gZGRkZCBbc2FnYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMgc2/FiCcsXG4gICAgICAgICAgICBwYXN0OiAnJXMgw7bFiCcsXG4gICAgICAgICAgICBzOiAnYmlybsOkw6dlIHNla3VudCcsXG4gICAgICAgICAgICBtOiAnYmlyIG1pbnV0JyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXQnLFxuICAgICAgICAgICAgaDogJ2JpciBzYWdhdCcsXG4gICAgICAgICAgICBoaDogJyVkIHNhZ2F0JyxcbiAgICAgICAgICAgIGQ6ICdiaXIgZ8O8bicsXG4gICAgICAgICAgICBkZDogJyVkIGfDvG4nLFxuICAgICAgICAgICAgTTogJ2JpciBhw70nLFxuICAgICAgICAgICAgTU06ICclZCBhw70nLFxuICAgICAgICAgICAgeTogJ2JpciDDvXlsJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw715bCcsXG4gICAgICAgIH0sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEbyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZSBmb3IgemVyb1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIFwiJ3VuanlcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYiA9IChudW1iZXIgJSAxMDApIC0gYSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBudW1iZXIgPj0gMTAwID8gMTAwIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSB8fCBzdWZmaXhlc1tjXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUYWdhbG9nIChQaGlsaXBwaW5lcykgW3RsLXBoXVxuLy8hIGF1dGhvciA6IERhbiBIYWdtYW4gOiBodHRwczovL2dpdGh1Yi5jb20vaGFnbWFuZGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdGxQaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RsLXBoJywge1xuICAgICAgICBtb250aHM6ICdFbmVyb19QZWJyZXJvX01hcnNvX0FicmlsX01heW9fSHVueW9fSHVseW9fQWdvc3RvX1NldHllbWJyZV9Pa3R1YnJlX05vYnllbWJyZV9EaXN5ZW1icmUnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAnRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnTGluZ2dvX0x1bmVzX01hcnRlc19NaXllcmt1bGVzX0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnTGluX0x1bl9NYXJfTWl5X0h1d19CaXlfU2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0xpX0x1X01hX01pX0h1X0JpX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ01NL0QvWVlZWScsXG4gICAgICAgICAgICBMTDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdNTU1NIEQsIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ0xUIFtuZ2F5b25nIGFyYXddJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbQnVrYXMgbmddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnTFQgW3NhIHN1c3Vub2QgbmFdIGRkZGQnLFxuICAgICAgICAgICAgbGFzdERheTogJ0xUIFtrYWhhcG9uXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ0xUIFtub29uZyBuYWthcmFhbmddIGRkZGQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdzYSBsb29iIG5nICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyBhbmcgbmFrYWxpcGFzJyxcbiAgICAgICAgICAgIHM6ICdpbGFuZyBzZWd1bmRvJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VndW5kbycsXG4gICAgICAgICAgICBtOiAnaXNhbmcgbWludXRvJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWludXRvJyxcbiAgICAgICAgICAgIGg6ICdpc2FuZyBvcmFzJyxcbiAgICAgICAgICAgIGhoOiAnJWQgb3JhcycsXG4gICAgICAgICAgICBkOiAnaXNhbmcgYXJhdycsXG4gICAgICAgICAgICBkZDogJyVkIGFyYXcnLFxuICAgICAgICAgICAgTTogJ2lzYW5nIGJ1d2FuJyxcbiAgICAgICAgICAgIE1NOiAnJWQgYnV3YW4nLFxuICAgICAgICAgICAgeTogJ2lzYW5nIHRhb24nLFxuICAgICAgICAgICAgeXk6ICclZCB0YW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRsUGg7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogS2xpbmdvbiBbdGxoXVxuLy8hIGF1dGhvciA6IERvbWluaWthIEtydWsgOiBodHRwczovL2dpdGh1Yi5jb20vYW1hcmFudGhyb3NlXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgbnVtYmVyc05vdW5zID0gJ3BhZ2hfd2HigJlfY2hh4oCZX3dlal9sb1NfdmFnaF9qYXZfU29jaF9jaG9yZ2hfSHV0Jy5zcGxpdCgnXycpO1xuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlRnV0dXJlKG91dHB1dCkge1xuICAgICAgICB2YXIgdGltZSA9IG91dHB1dDtcbiAgICAgICAgdGltZSA9XG4gICAgICAgICAgICBvdXRwdXQuaW5kZXhPZignamFqJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICdsZVMnXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignamFyJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICd3YVEnXG4gICAgICAgICAgICAgICAgOiBvdXRwdXQuaW5kZXhPZignRElTJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICduZW0nXG4gICAgICAgICAgICAgICAgOiB0aW1lICsgJyBwSXEnO1xuICAgICAgICByZXR1cm4gdGltZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVQYXN0KG91dHB1dCkge1xuICAgICAgICB2YXIgdGltZSA9IG91dHB1dDtcbiAgICAgICAgdGltZSA9XG4gICAgICAgICAgICBvdXRwdXQuaW5kZXhPZignamFqJykgIT09IC0xXG4gICAgICAgICAgICAgICAgPyB0aW1lLnNsaWNlKDAsIC0zKSArICdIdeKAmSdcbiAgICAgICAgICAgICAgICA6IG91dHB1dC5pbmRleE9mKCdqYXInKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ3dlbidcbiAgICAgICAgICAgICAgICA6IG91dHB1dC5pbmRleE9mKCdESVMnKSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IHRpbWUuc2xpY2UoMCwgLTMpICsgJ2JlbidcbiAgICAgICAgICAgICAgICA6IHRpbWUgKyAnIHJldCc7XG4gICAgICAgIHJldHVybiB0aW1lO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG51bWJlck5vdW4gPSBudW1iZXJBc05vdW4obnVtYmVyKTtcbiAgICAgICAgc3dpdGNoIChzdHJpbmcpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgbHVwJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgdHVwJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgcmVwJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgamFqJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgamFyJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTm91biArICcgRElTJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG51bWJlckFzTm91bihudW1iZXIpIHtcbiAgICAgICAgdmFyIGh1bmRyZWQgPSBNYXRoLmZsb29yKChudW1iZXIgJSAxMDAwKSAvIDEwMCksXG4gICAgICAgICAgICB0ZW4gPSBNYXRoLmZsb29yKChudW1iZXIgJSAxMDApIC8gMTApLFxuICAgICAgICAgICAgb25lID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICB3b3JkID0gJyc7XG4gICAgICAgIGlmIChodW5kcmVkID4gMCkge1xuICAgICAgICAgICAgd29yZCArPSBudW1iZXJzTm91bnNbaHVuZHJlZF0gKyAndmF0bGgnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0ZW4gPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9ICh3b3JkICE9PSAnJyA/ICcgJyA6ICcnKSArIG51bWJlcnNOb3Vuc1t0ZW5dICsgJ21hSCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uZSA+IDApIHtcbiAgICAgICAgICAgIHdvcmQgKz0gKHdvcmQgIT09ICcnID8gJyAnIDogJycpICsgbnVtYmVyc05vdW5zW29uZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdvcmQgPT09ICcnID8gJ3BhZ2gnIDogd29yZDtcbiAgICB9XG5cbiAgICB2YXIgdGxoID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGxoJywge1xuICAgICAgICBtb250aHM6ICd0ZXJh4oCZIGphciB3YeKAmV90ZXJh4oCZIGphciBjaGHigJlfdGVyYeKAmSBqYXIgd2VqX3RlcmHigJkgamFyIGxvU190ZXJh4oCZIGphciB2YWdoX3RlcmHigJkgamFyIGphdl90ZXJh4oCZIGphciBTb2NoX3RlcmHigJkgamFyIGNob3JnaF90ZXJh4oCZIGphciBIdXRfdGVyYeKAmSBqYXIgd2HigJltYUhfdGVyYeKAmSBqYXIgd2HigJltYUggd2HigJlfdGVyYeKAmSBqYXIgd2HigJltYUggY2hh4oCZJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phciB3YeKAmV9qYXIgY2hh4oCZX2phciB3ZWpfamFyIGxvU19qYXIgdmFnaF9qYXIgamF2X2phciBTb2NoX2phciBjaG9yZ2hfamFyIEh1dF9qYXIgd2HigJltYUhfamFyIHdh4oCZbWFIIHdh4oCZX2phciB3YeKAmW1hSCBjaGHigJknLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWonLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEYUhqYWpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbd2HigJlsZVNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnTExMJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbd2HigJlIdeKAmV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMTEwnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6IHRyYW5zbGF0ZUZ1dHVyZSxcbiAgICAgICAgICAgIHBhc3Q6IHRyYW5zbGF0ZVBhc3QsXG4gICAgICAgICAgICBzOiAncHVTIGx1cCcsXG4gICAgICAgICAgICBzczogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbTogJ3dh4oCZIHR1cCcsXG4gICAgICAgICAgICBtbTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaDogJ3dh4oCZIHJlcCcsXG4gICAgICAgICAgICBoaDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZDogJ3dh4oCZIGphaicsXG4gICAgICAgICAgICBkZDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTTogJ3dh4oCZIGphcicsXG4gICAgICAgICAgICBNTTogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeTogJ3dh4oCZIERJUycsXG4gICAgICAgICAgICB5eTogdHJhbnNsYXRlLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRsaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBUdXJraXNoIFt0cl1cbi8vISBhdXRob3JzIDogRXJoYW4gR3VuZG9nYW4gOiBodHRwczovL2dpdGh1Yi5jb20vZXJoYW5ndW5kb2dhbixcbi8vISAgICAgICAgICAgQnVyYWsgWWnEn2l0IEtheWE6IGh0dHBzOi8vZ2l0aHViLmNvbS9CWUtcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBzdWZmaXhlcyA9IHtcbiAgICAgICAgMTogXCInaW5jaVwiLFxuICAgICAgICA1OiBcIidpbmNpXCIsXG4gICAgICAgIDg6IFwiJ2luY2lcIixcbiAgICAgICAgNzA6IFwiJ2luY2lcIixcbiAgICAgICAgODA6IFwiJ2luY2lcIixcbiAgICAgICAgMjogXCInbmNpXCIsXG4gICAgICAgIDc6IFwiJ25jaVwiLFxuICAgICAgICAyMDogXCInbmNpXCIsXG4gICAgICAgIDUwOiBcIiduY2lcIixcbiAgICAgICAgMzogXCInw7xuY8O8XCIsXG4gICAgICAgIDQ6IFwiJ8O8bmPDvFwiLFxuICAgICAgICAxMDA6IFwiJ8O8bmPDvFwiLFxuICAgICAgICA2OiBcIiduY8SxXCIsXG4gICAgICAgIDk6IFwiJ3VuY3VcIixcbiAgICAgICAgMTA6IFwiJ3VuY3VcIixcbiAgICAgICAgMzA6IFwiJ3VuY3VcIixcbiAgICAgICAgNjA6IFwiJ8SxbmPEsVwiLFxuICAgICAgICA5MDogXCInxLFuY8SxXCIsXG4gICAgfTtcblxuICAgIHZhciB0ciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RyJywge1xuICAgICAgICBtb250aHM6ICdPY2FrX8WedWJhdF9NYXJ0X05pc2FuX01hecSxc19IYXppcmFuX1RlbW11el9BxJ91c3Rvc19FeWzDvGxfRWtpbV9LYXPEsW1fQXJhbMSxaycuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdPY2FfxZ51Yl9NYXJfTmlzX01heV9IYXpfVGVtX0HEn3VfRXlsX0VraV9LYXNfQXJhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ1BhemFyX1BhemFydGVzaV9TYWzEsV/Dh2FyxZ9hbWJhX1BlcsWfZW1iZV9DdW1hX0N1bWFydGVzaScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1Bhel9QdHNfU2FsX8OHYXJfUGVyX0N1bV9DdHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnUHpfUHRfU2Ffw4dhX1BlX0N1X0N0Jy5zcGxpdCgnXycpLFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8O2w7YnIDogJ8OWw5YnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfDtnMnIDogJ8OWUyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/DtsO2fMOWw5Z8w7ZzfMOWUy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAnw7ZzJyB8fCBpbnB1dCA9PT0gJ8OWUyc7XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYnVnw7xuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbeWFyxLFuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW2dlbGVjZWtdIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZMO8bl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZ2XDp2VuXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzIHNvbnJhJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDDtm5jZScsXG4gICAgICAgICAgICBzOiAnYmlya2HDpyBzYW5peWUnLFxuICAgICAgICAgICAgc3M6ICclZCBzYW5peWUnLFxuICAgICAgICAgICAgbTogJ2JpciBkYWtpa2EnLFxuICAgICAgICAgICAgbW06ICclZCBkYWtpa2EnLFxuICAgICAgICAgICAgaDogJ2JpciBzYWF0JyxcbiAgICAgICAgICAgIGhoOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBkOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQ6ICclZCBnw7xuJyxcbiAgICAgICAgICAgIE06ICdiaXIgYXknLFxuICAgICAgICAgICAgTU06ICclZCBheScsXG4gICAgICAgICAgICB5OiAnYmlyIHnEsWwnLFxuICAgICAgICAgICAgeXk6ICclZCB5xLFsJyxcbiAgICAgICAgfSxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RvJzpcbiAgICAgICAgICAgICAgICBjYXNlICdERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIGZvciB6ZXJvXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgXCInxLFuY8SxXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAobnVtYmVyICUgMTAwKSAtIGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0gfHwgc3VmZml4ZXNbY10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVGFsb3NzYW4gW3R6bF1cbi8vISBhdXRob3IgOiBSb2JpbiB2YW4gZGVyIFZsaWV0IDogaHR0cHM6Ly9naXRodWIuY29tL3JvYmluMHZhbjBkZXIwdlxuLy8hIGF1dGhvciA6IEl1c3TDrCBDYW51blxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgLy8gQWZ0ZXIgdGhlIHllYXIgdGhlcmUgc2hvdWxkIGJlIGEgc2xhc2ggYW5kIHRoZSBhbW91bnQgb2YgeWVhcnMgc2luY2UgRGVjZW1iZXIgMjYsIDE5NzkgaW4gUm9tYW4gbnVtZXJhbHMuXG4gICAgLy8gVGhpcyBpcyBjdXJyZW50bHkgdG9vIGRpZmZpY3VsdCAobWF5YmUgZXZlbiBpbXBvc3NpYmxlKSB0byBhZGQuXG4gICAgdmFyIHR6bCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3R6bCcsIHtcbiAgICAgICAgbW9udGhzOiAnSmFudWFyX0ZldnJhZ2xoX01hcsOnX0F2csOvdV9NYWlfR8O8bl9KdWxpYV9HdXNjaHRfU2V0ZW12YXJfTGlzdG9ww6R0c19Ob2VtdmFyX1plY2VtdmFyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ0phbl9GZXZfTWFyX0F2cl9NYWlfR8O8bl9KdWxfR3VzX1NldF9MaXNfTm9lX1plYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdTw7psYWRpX0zDum5lw6dpX01haXR6aV9Nw6FyY3VyaV9YaMO6YWRpX1Zpw6luZXLDp2lfU8OhdHVyaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ1PDumxfTMO6bl9NYWlfTcOhcl9YaMO6X1Zpw6lfU8OhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTw7pfTMO6X01hX03DoV9YaF9WaV9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBbZGFsbGFzXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gW2RhbGxhc10gWVlZWSBISC5tbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgW2xpXSBELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZFxcJ298ZFxcJ2EvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gXCJkJ29cIiA9PT0gaW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/IFwiZCdvXCIgOiBcIkQnT1wiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/IFwiZCdhXCIgOiBcIkQnQVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tveGhpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2RlbcOgIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2llaXJpIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tzw7xyIGVsXSBkZGRkIFtsYXN0ZXUgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnb3NwcmVpICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICdqYSVzJyxcbiAgICAgICAgICAgIHM6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzczogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGg6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGQ6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE06IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHk6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eTogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbDogJyVkLicsXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICBzOiBbJ3ZpZW5zYXMgc2VjdW5kcycsIFwiJ2llbnNhcyBzZWN1bmRzXCJdLFxuICAgICAgICAgICAgc3M6IFtudW1iZXIgKyAnIHNlY3VuZHMnLCAnJyArIG51bWJlciArICcgc2VjdW5kcyddLFxuICAgICAgICAgICAgbTogW1wiJ24gbcOtdXRcIiwgXCInaWVucyBtw611dFwiXSxcbiAgICAgICAgICAgIG1tOiBbbnVtYmVyICsgJyBtw611dHMnLCAnJyArIG51bWJlciArICcgbcOtdXRzJ10sXG4gICAgICAgICAgICBoOiBbXCInbiDDvm9yYVwiLCBcIidpZW5zYSDDvm9yYVwiXSxcbiAgICAgICAgICAgIGhoOiBbbnVtYmVyICsgJyDDvm9yYXMnLCAnJyArIG51bWJlciArICcgw75vcmFzJ10sXG4gICAgICAgICAgICBkOiBbXCInbiB6aXVhXCIsIFwiJ2llbnNhIHppdWFcIl0sXG4gICAgICAgICAgICBkZDogW251bWJlciArICcgeml1YXMnLCAnJyArIG51bWJlciArICcgeml1YXMnXSxcbiAgICAgICAgICAgIE06IFtcIiduIG1lc1wiLCBcIidpZW5zIG1lc1wiXSxcbiAgICAgICAgICAgIE1NOiBbbnVtYmVyICsgJyBtZXNlbicsICcnICsgbnVtYmVyICsgJyBtZXNlbiddLFxuICAgICAgICAgICAgeTogW1wiJ24gYXJcIiwgXCInaWVucyBhclwiXSxcbiAgICAgICAgICAgIHl5OiBbbnVtYmVyICsgJyBhcnMnLCAnJyArIG51bWJlciArICcgYXJzJ10sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBpc0Z1dHVyZVxuICAgICAgICAgICAgPyBmb3JtYXRba2V5XVswXVxuICAgICAgICAgICAgOiB3aXRob3V0U3VmZml4XG4gICAgICAgICAgICA/IGZvcm1hdFtrZXldWzBdXG4gICAgICAgICAgICA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHJldHVybiB0emw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2VudHJhbCBBdGxhcyBUYW1hemlnaHQgW3R6bV1cbi8vISBhdXRob3IgOiBBYmRlbCBTYWlkIDogaHR0cHM6Ly9naXRodWIuY29tL2FiZGVsc2FpZFxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHR6bSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3R6bScsIHtcbiAgICAgICAgbW9udGhzOiAn4rWJ4rWP4rWP4rSw4rWi4rWUX+K0seK1leK0sOK1ouK1lV/itY7itLDitZXitZpf4rWJ4rSx4rWU4rWJ4rWUX+K1juK0sOK1ouK1ouK1k1/itaLitZPitY/itaLitZNf4rWi4rWT4rWN4rWi4rWT4rWjX+K1luK1k+K1m+K1nF/itZvitZPitZzitLDitY/itLHitYnitZRf4rS94rWf4rWT4rSx4rWVX+K1j+K1k+K1oeK0sOK1j+K0seK1ieK1lF/itLfitZPitYritY/itLHitYnitZQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn4rWJ4rWP4rWP4rSw4rWi4rWUX+K0seK1leK0sOK1ouK1lV/itY7itLDitZXitZpf4rWJ4rSx4rWU4rWJ4rWUX+K1juK0sOK1ouK1ouK1k1/itaLitZPitY/itaLitZNf4rWi4rWT4rWN4rWi4rWT4rWjX+K1luK1k+K1m+K1nF/itZvitZPitZzitLDitY/itLHitYnitZRf4rS94rWf4rWT4rSx4rWVX+K1j+K1k+K1oeK0sOK1j+K0seK1ieK1lF/itLfitZPitYritY/itLHitYnitZQnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn4rSw4rWZ4rSw4rWO4rSw4rWZX+K0sOK1ouK1j+K0sOK1mV/itLDitZnitYnitY/itLDitZlf4rSw4rS94rWU4rSw4rWZX+K0sOK0veK1oeK0sOK1mV/itLDitZnitYnitY7itaHitLDitZlf4rSw4rWZ4rWJ4rS54rWi4rSw4rWZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn4rSw4rWZ4rSw4rWO4rSw4rWZX+K0sOK1ouK1j+K0sOK1mV/itLDitZnitYnitY/itLDitZlf4rSw4rS94rWU4rSw4rWZX+K0sOK0veK1oeK0sOK1mV/itLDitZnitYnitY7itaHitLDitZlf4rSw4rWZ4rWJ4rS54rWi4rSw4rWZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ+K0sOK1meK0sOK1juK0sOK1mV/itLDitaLitY/itLDitZlf4rSw4rWZ4rWJ4rWP4rSw4rWZX+K0sOK0veK1lOK0sOK1mV/itLDitL3itaHitLDitZlf4rSw4rWZ4rWJ4rWO4rWh4rSw4rWZX+K0sOK1meK1ieK0ueK1ouK0sOK1mScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+K0sOK1meK0t+K1hSDitLRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4rSw4rWZ4rS94rSwIOK0tF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvitLRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4rSw4rWa4rSw4rWP4rWcIOK0tF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvitLRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn4rS34rSw4rS34rWFIOK1mSDitaLitLDitY8gJXMnLFxuICAgICAgICAgICAgcGFzdDogJ+K1ouK0sOK1jyAlcycsXG4gICAgICAgICAgICBzOiAn4rWJ4rWO4rWJ4rS9JyxcbiAgICAgICAgICAgIHNzOiAnJWQg4rWJ4rWO4rWJ4rS9JyxcbiAgICAgICAgICAgIG06ICfitY7itYnitY/itZPitLonLFxuICAgICAgICAgICAgbW06ICclZCDitY7itYnitY/itZPitLonLFxuICAgICAgICAgICAgaDogJ+K1meK0sOK1hOK0sCcsXG4gICAgICAgICAgICBoaDogJyVkIOK1nOK0sOK1meK1meK0sOK1hOK1ieK1jycsXG4gICAgICAgICAgICBkOiAn4rSw4rWZ4rWZJyxcbiAgICAgICAgICAgIGRkOiAnJWQgb+K1meK1meK0sOK1jycsXG4gICAgICAgICAgICBNOiAn4rSw4rWib+K1k+K1lCcsXG4gICAgICAgICAgICBNTTogJyVkIOK1ieK1ouK1ouK1ieK1lOK1jycsXG4gICAgICAgICAgICB5OiAn4rSw4rWZ4rSz4rSw4rWZJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4rWJ4rWZ4rSz4rSw4rWZ4rWPJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0em07XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2VudHJhbCBBdGxhcyBUYW1hemlnaHQgTGF0aW4gW3R6bS1sYXRuXVxuLy8hIGF1dGhvciA6IEFiZGVsIFNhaWQgOiBodHRwczovL2dpdGh1Yi5jb20vYWJkZWxzYWlkXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdHptTGF0biA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3R6bS1sYXRuJywge1xuICAgICAgICBtb250aHM6ICdpbm5heXJfYnLLpGF5csukX21hcsukc8ukX2licmlyX21heXl3X3l3bnl3X3l3bHl3el/Jo3fFoXRfxaF3dGFuYmlyX2t0y6R3YnLLpF9ud3dhbmJpcl9kd2puYmlyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ2lubmF5cl9icsukYXlyy6RfbWFyy6Rzy6RfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X8mjd8WhdF/FoXd0YW5iaXJfa3TLpHdicsukX253d2FuYmlyX2R3am5iaXInLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAnYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaeG4jXlhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaeG4jXlhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2FzZGtoIGddIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbYXNrYSBnXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2ddIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbYXNzYW50IGddIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZ10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdkYWRraCBzIHlhbiAlcycsXG4gICAgICAgICAgICBwYXN0OiAneWFuICVzJyxcbiAgICAgICAgICAgIHM6ICdpbWlrJyxcbiAgICAgICAgICAgIHNzOiAnJWQgaW1paycsXG4gICAgICAgICAgICBtOiAnbWludeG4jScsXG4gICAgICAgICAgICBtbTogJyVkIG1pbnXhuI0nLFxuICAgICAgICAgICAgaDogJ3NhyZthJyxcbiAgICAgICAgICAgIGhoOiAnJWQgdGFzc2HJm2luJyxcbiAgICAgICAgICAgIGQ6ICdhc3MnLFxuICAgICAgICAgICAgZGQ6ICclZCBvc3NhbicsXG4gICAgICAgICAgICBNOiAnYXlvd3InLFxuICAgICAgICAgICAgTU06ICclZCBpeXlpcm4nLFxuICAgICAgICAgICAgeTogJ2FzZ2FzJyxcbiAgICAgICAgICAgIHl5OiAnJWQgaXNnYXNuJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiAxMiwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0em1MYXRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsYW5ndWFnZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVXlnaHVyIChDaGluYSkgW3VnLWNuXVxuLy8hIGF1dGhvcjogYm95YXEgOiBodHRwczovL2dpdGh1Yi5jb20vYm95YXFcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbGFuZ3VhZ2UgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHVnQ24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1Zy1jbicsIHtcbiAgICAgICAgbW9udGhzOiAn2YrYp9mG24vYp9ixX9mB25Dbi9ix2KfZhF/Zhdin2LHYql/Yptin2b7YsduQ2YRf2YXYp9mKX9im2YnZituH2YZf2KbZidmK24fZhF/Yptin24vYutuH2LPYql/Ys9uQ2YbYqtuV2KjZidixX9im24bZg9iq25XYqNmJ2LFf2YbZiNmK2KfYqNmJ2LFf2K/bkNmD2KfYqNmJ2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2YrYp9mG24vYp9ixX9mB25Dbi9ix2KfZhF/Zhdin2LHYql/Yptin2b7YsduQ2YRf2YXYp9mKX9im2YnZituH2YZf2KbZidmK24fZhF/Yptin24vYutuH2LPYql/Ys9uQ2YbYqtuV2KjZidixX9im24bZg9iq25XYqNmJ2LFf2YbZiNmK2KfYqNmJ2LFf2K/bkNmD2KfYqNmJ2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2YrbldmD2LTbldmG2KjblV/Yr9uI2LTbldmG2KjblV/Ys9uV2YrYtNuV2YbYqNuVX9qG2KfYsdi025XZhtio25Vf2b7bldmK2LTbldmG2KjblV/YrNuI2YXblV/YtNuV2YbYqNuVJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2YrblV/Yr9uIX9iz25Vf2obYp1/ZvtuVX9is24hf2LTblScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfZituVX9iv24hf2LPblV/ahtinX9m+25Vf2KzbiF/YtNuVJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkt2YrZidmE2YlNLdim2KfZitmG2YnarUQt2YPbiNmG2YknLFxuICAgICAgICAgICAgTExMOiAnWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRk2IwgWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9mK25DYsdmJ2YUg2YPbkNqG25V82LPbldq+25XYsXzahtuI2LTYqtmJ2YYg2Kjbh9ix24fZhnzahtuI2LR82obbiNi02KrZidmGINmD25DZitmJ2YZ82YPbldqGLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn2YrbkNix2YnZhSDZg9uQ2obblScgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ9iz25XavtuV2LEnIHx8XG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfahtuI2LTYqtmJ2YYg2Kjbh9ix24fZhidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ9qG24jYtNiq2YnZhiDZg9uQ2YrZidmGJyB8fCBtZXJpZGllbSA9PT0gJ9mD25XahicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZituQ2LHZidmFINmD25DahtuVJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9iz25XavtuV2LEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtNiq2YnZhiDYqNuH2LHbh9mGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfahtuI2LQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtNiq2YnZhiDZg9uQ2YrZidmGJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZg9uV2oYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYqNuI2q/biNmGINiz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2Kbbldiq25Ug2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb2YPbkNmE25XYsdmD2YldIGRkZGQgW9iz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KrbhtmG24jar9uI2YZdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9im2KfZhNiv2YnZhtmC2YldIGRkZGQgW9iz2KfYptuV2KpdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg2YPbkNmK2YnZhicsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2Kjbh9ix24fZhicsXG4gICAgICAgICAgICBzOiAn2YbbldqG2obblSDYs9uQ2YPZiNmG2KonLFxuICAgICAgICAgICAgc3M6ICclZCDYs9uQ2YPZiNmG2KonLFxuICAgICAgICAgICAgbTogJ9io2YnYsSDZhdmJ2Ybbh9iqJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2YXZidmG24fYqicsXG4gICAgICAgICAgICBoOiAn2KjZidixINiz2KfYptuV2KonLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2KbbldiqJyxcbiAgICAgICAgICAgIGQ6ICfYqNmJ2LEg2YPbiNmGJyxcbiAgICAgICAgICAgIGRkOiAnJWQg2YPbiNmGJyxcbiAgICAgICAgICAgIE06ICfYqNmJ2LEg2KbYp9mKJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KbYp9mKJyxcbiAgICAgICAgICAgIHk6ICfYqNmJ2LEg2YrZidmEJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2YrZidmEJyxcbiAgICAgICAgfSxcblxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oLdmD24jZhtmJfC3Yptin2Yp8Ldq+25XZvtiq25UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdmD24jZhtmJJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct2r7bldm+2KrblSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICAvLyBHQi9UIDc0MDgtMTk5NOOAiuaVsOaNruWFg+WSjOS6pOaNouagvOW8j8K35L+h5oGv5Lqk5o2iwrfml6XmnJ/lkozml7bpl7TooajnpLrms5XjgIvkuI5JU08gODYwMToxOTg4562J5pWIXG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxc3QgaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdWdDbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVa3JhaW5pYW4gW3VrXVxuLy8hIGF1dGhvciA6IHplbWxhbmluIDogaHR0cHM6Ly9naXRodWIuY29tL3plbWxhbmluXG4vLyEgQXV0aG9yIDogTWVuZWxpb24gRWxlbnPDumxlIDogaHR0cHM6Ly9naXRodWIuY29tL09pcmVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIGZ1bmN0aW9uIHBsdXJhbCh3b3JkLCBudW0pIHtcbiAgICAgICAgdmFyIGZvcm1zID0gd29yZC5zcGxpdCgnXycpO1xuICAgICAgICByZXR1cm4gbnVtICUgMTAgPT09IDEgJiYgbnVtICUgMTAwICE9PSAxMVxuICAgICAgICAgICAgPyBmb3Jtc1swXVxuICAgICAgICAgICAgOiBudW0gJSAxMCA+PSAyICYmIG51bSAlIDEwIDw9IDQgJiYgKG51bSAlIDEwMCA8IDEwIHx8IG51bSAlIDEwMCA+PSAyMClcbiAgICAgICAgICAgID8gZm9ybXNbMV1cbiAgICAgICAgICAgIDogZm9ybXNbMl07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgIHNzOiB3aXRob3V0U3VmZml4ID8gJ9GB0LXQutGD0L3QtNCwX9GB0LXQutGD0L3QtNC4X9GB0LXQutGD0L3QtCcgOiAn0YHQtdC60YPQvdC00YNf0YHQtdC60YPQvdC00Lhf0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG1tOiB3aXRob3V0U3VmZml4ID8gJ9GF0LLQuNC70LjQvdCwX9GF0LLQuNC70LjQvdC4X9GF0LLQuNC70LjQvScgOiAn0YXQstC40LvQuNC90YNf0YXQstC40LvQuNC90Lhf0YXQstC40LvQuNC9JyxcbiAgICAgICAgICAgIGhoOiB3aXRob3V0U3VmZml4ID8gJ9Cz0L7QtNC40L3QsF/Qs9C+0LTQuNC90Lhf0LPQvtC00LjQvScgOiAn0LPQvtC00LjQvdGDX9Cz0L7QtNC40L3QuF/Qs9C+0LTQuNC9JyxcbiAgICAgICAgICAgIGRkOiAn0LTQtdC90Yxf0LTQvdGWX9C00L3RltCyJyxcbiAgICAgICAgICAgIE1NOiAn0LzRltGB0Y/RhtGMX9C80ZbRgdGP0YbRll/QvNGW0YHRj9GG0ZbQsicsXG4gICAgICAgICAgICB5eTogJ9GA0ZbQul/RgNC+0LrQuF/RgNC+0LrRltCyJyxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ20nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdCy0LjQu9C40L3QsCcgOiAn0YXQstC40LvQuNC90YMnO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2gnKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfQs9C+0LTQuNC90LAnIDogJ9Cz0L7QtNC40L3Rgyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgcGx1cmFsKGZvcm1hdFtrZXldLCArbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c0Nhc2VSZXBsYWNlKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSB7XG4gICAgICAgICAgICAgICAgbm9taW5hdGl2ZTogJ9C90LXQtNGW0LvRj1/Qv9C+0L3QtdC00ZbQu9C+0Lpf0LLRltCy0YLQvtGA0L7Qul/RgdC10YDQtdC00LBf0YfQtdGC0LLQtdGAX9C/4oCZ0Y/RgtC90LjRhtGPX9GB0YPQsdC+0YLQsCcuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgYWNjdXNhdGl2ZTogJ9C90LXQtNGW0LvRjl/Qv9C+0L3QtdC00ZbQu9C+0Lpf0LLRltCy0YLQvtGA0L7Qul/RgdC10YDQtdC00YNf0YfQtdGC0LLQtdGAX9C/4oCZ0Y/RgtC90LjRhtGOX9GB0YPQsdC+0YLRgycuc3BsaXQoXG4gICAgICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZ2VuaXRpdmU6ICfQvdC10LTRltC70ZZf0L/QvtC90LXQtNGW0LvQutCwX9Cy0ZbQstGC0L7RgNC60LBf0YHQtdGA0LXQtNC4X9GH0LXRgtCy0LXRgNCz0LBf0L/igJnRj9GC0L3QuNGG0ZZf0YHRg9Cx0L7RgtC4Jy5zcGxpdChcbiAgICAgICAgICAgICAgICAgICAgJ18nXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBub3VuQ2FzZTtcblxuICAgICAgICBpZiAobSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXlzWydub21pbmF0aXZlJ11cbiAgICAgICAgICAgICAgICAuc2xpY2UoMSwgNylcbiAgICAgICAgICAgICAgICAuY29uY2F0KHdlZWtkYXlzWydub21pbmF0aXZlJ10uc2xpY2UoMCwgMSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIHdlZWtkYXlzWydub21pbmF0aXZlJ107XG4gICAgICAgIH1cblxuICAgICAgICBub3VuQ2FzZSA9IC8oXFxbW9CS0LLQo9GDXVxcXSkgP2RkZGQvLnRlc3QoZm9ybWF0KVxuICAgICAgICAgICAgPyAnYWNjdXNhdGl2ZSdcbiAgICAgICAgICAgIDogL1xcWz8oPzrQvNC40L3Rg9C70L7Rl3zQvdCw0YHRgtGD0L/QvdC+0ZcpPyA/XFxdID9kZGRkLy50ZXN0KGZvcm1hdClcbiAgICAgICAgICAgID8gJ2dlbml0aXZlJ1xuICAgICAgICAgICAgOiAnbm9taW5hdGl2ZSc7XG4gICAgICAgIHJldHVybiB3ZWVrZGF5c1tub3VuQ2FzZV1bbS5kYXkoKV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKHN0cikge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ciArICfQvicgKyAodGhpcy5ob3VycygpID09PSAxMSA/ICfQsScgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIHVrID0gbW9tZW50LmRlZmluZUxvY2FsZSgndWsnLCB7XG4gICAgICAgIG1vbnRoczoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0YHRltGH0L3Rj1/Qu9GO0YLQvtCz0L5f0LHQtdGA0LXQt9C90Y9f0LrQstGW0YLQvdGPX9GC0YDQsNCy0L3Rj1/Rh9C10YDQstC90Y9f0LvQuNC/0L3Rj1/RgdC10YDQv9C90Y9f0LLQtdGA0LXRgdC90Y9f0LbQvtCy0YLQvdGPX9C70LjRgdGC0L7Qv9Cw0LTQsF/Qs9GA0YPQtNC90Y8nLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfRgdGW0YfQtdC90Yxf0LvRjtGC0LjQuV/QsdC10YDQtdC30LXQvdGMX9C60LLRltGC0LXQvdGMX9GC0YDQsNCy0LXQvdGMX9GH0LXRgNCy0LXQvdGMX9C70LjQv9C10L3RjF/RgdC10YDQv9C10L3RjF/QstC10YDQtdGB0LXQvdGMX9C20L7QstGC0LXQvdGMX9C70LjRgdGC0L7Qv9Cw0LRf0LPRgNGD0LTQtdC90YwnLnNwbGl0KFxuICAgICAgICAgICAgICAgICdfJ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfRgdGW0Ydf0LvRjtGCX9Cx0LXRgF/QutCy0ZbRgl/RgtGA0LDQsl/Rh9C10YDQsl/Qu9C40L9f0YHQtdGA0L9f0LLQtdGAX9C20L7QstGCX9C70LjRgdGCX9Cz0YDRg9C0Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXNDYXNlUmVwbGFjZSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LRf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L3QtF/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWSDRgC4nLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkg0YAuLCBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkg0YAuLCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9Ch0YzQvtCz0L7QtNC90ZYgJyksXG4gICAgICAgICAgICBuZXh0RGF5OiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9CX0LDQstGC0YDQsCAnKSxcbiAgICAgICAgICAgIGxhc3REYXk6IHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0JLRh9C+0YDQsCAnKSxcbiAgICAgICAgICAgIG5leHRXZWVrOiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9CjXSBkZGRkIFsnKSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9Cc0LjQvdGD0LvQvtGXXSBkZGRkIFsnKS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NIb3Vyc0Z1bmN0aW9uKCdb0JzQuNC90YPQu9C+0LPQvl0gZGRkZCBbJykuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDRgtC+0LzRgycsXG4gICAgICAgICAgICBzOiAn0LTQtdC60ZbQu9GM0LrQsCDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbW06IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoOiAn0LPQvtC00LjQvdGDJyxcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZDogJ9C00LXQvdGMJyxcbiAgICAgICAgICAgIGRkOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgTTogJ9C80ZbRgdGP0YbRjCcsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIHk6ICfRgNGW0LonLFxuICAgICAgICAgICAgeXk6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIE0uIEUuOiB0aG9zZSB0d28gYXJlIHZpcnR1YWxseSB1bnVzZWQgYnV0IGEgdXNlciBtaWdodCB3YW50IHRvIGltcGxlbWVudCB0aGVtIGZvciBoaXMvaGVyIHdlYnNpdGUgZm9yIHNvbWUgcmVhc29uXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/QvdC+0YfRlnzRgNCw0L3QutGDfNC00L3Rj3zQstC10YfQvtGA0LAvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijQtNC90Y980LLQtdGH0L7RgNCwKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfRlic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDQsNC90LrRgyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LTQvdGPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQstC10YfQvtGA0LAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC5fNCz0L4pLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC5JztcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LPQvic7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVrO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuLy8hIGxvY2FsZSA6IFVyZHUgW3VyXVxuLy8hIGF1dGhvciA6IFNhd29vZCBBbGFtIDogaHR0cHM6Ly9naXRodWIuY29tL2libmVzYXllZWRcbi8vISBhdXRob3IgOiBaYWNrIDogaHR0cHM6Ly9naXRodWIuY29tL1phY2tWaXNpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICAgICAn2KzZhtmI2LHbjCcsXG4gICAgICAgICAgICAn2YHYsdmI2LHbjCcsXG4gICAgICAgICAgICAn2YXYp9ix2oYnLFxuICAgICAgICAgICAgJ9in2b7YsduM2YQnLFxuICAgICAgICAgICAgJ9mF2KbbjCcsXG4gICAgICAgICAgICAn2KzZiNmGJyxcbiAgICAgICAgICAgICfYrNmI2YTYp9im24wnLFxuICAgICAgICAgICAgJ9in2q/Ys9iqJyxcbiAgICAgICAgICAgICfYs9iq2YXYqNixJyxcbiAgICAgICAgICAgICfYp9qp2KrZiNio2LEnLFxuICAgICAgICAgICAgJ9mG2YjZhdio2LEnLFxuICAgICAgICAgICAgJ9iv2LPZhdio2LEnLFxuICAgICAgICBdLFxuICAgICAgICBkYXlzID0gWyfYp9iq2YjYp9ixJywgJ9m+24zYsScsICfZhdmG2q/ZhCcsICfYqNiv2r4nLCAn2KzZhdi52LHYp9iqJywgJ9is2YXYuduBJywgJ9uB2YHYqtuBJ107XG5cbiAgICB2YXIgdXIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1cicsIHtcbiAgICAgICAgbW9udGhzOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzOiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGF5cyxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZNiMIEQgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9i12KjYrXzYtNin2YUvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtdio2K0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnO1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYotisINio2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9qp2YQg2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2q/YsNi02KrbgSDYsdmI2LIg2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW9qv2LDYtNiq24FdIGRkZGQgW9io2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINio2LnYrycsXG4gICAgICAgICAgICBwYXN0OiAnJXMg2YLYqNmEJyxcbiAgICAgICAgICAgIHM6ICfahtmG2K8g2LPbjNqp2YbaiCcsXG4gICAgICAgICAgICBzczogJyVkINiz24zaqdmG2ognLFxuICAgICAgICAgICAgbTogJ9in24zaqSDZhdmG2bknLFxuICAgICAgICAgICAgbW06ICclZCDZhdmG2bknLFxuICAgICAgICAgICAgaDogJ9in24zaqSDar9q+2YbZuduBJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2q/avtmG2bnbkicsXG4gICAgICAgICAgICBkOiAn2KfbjNqpINiv2YYnLFxuICAgICAgICAgICAgZGQ6ICclZCDYr9mGJyxcbiAgICAgICAgICAgIE06ICfYp9uM2qkg2YXYp9uBJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2YXYp9uBJyxcbiAgICAgICAgICAgIHk6ICfYp9uM2qkg2LPYp9mEJyxcbiAgICAgICAgICAgIHl5OiAnJWQg2LPYp9mEJyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogVXpiZWsgW3V6XVxuLy8hIGF1dGhvciA6IFNhcmRvciBNdW1pbm92IDogaHR0cHM6Ly9naXRodWIuY29tL211bWlub2ZmXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgdXogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1eicsIHtcbiAgICAgICAgbW9udGhzOiAn0Y/QvdCy0LDRgF/RhNC10LLRgNCw0Ltf0LzQsNGA0YJf0LDQv9GA0LXQu1/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YBf0L7QutGC0Y/QsdGAX9C90L7Rj9Cx0YBf0LTQtdC60LDQsdGAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GP0L3Qsl/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LNf0YHQtdC9X9C+0LrRgl/QvdC+0Y9f0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9Cv0LrRiNCw0L3QsdCwX9CU0YPRiNCw0L3QsdCwX9Ch0LXRiNCw0L3QsdCwX9Cn0L7RgNGI0LDQvdCx0LBf0J/QsNC50YjQsNC90LHQsF/QltGD0LzQsF/QqNCw0L3QsdCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn0K/QutGIX9CU0YPRiF/QodC10Yhf0KfQvtGAX9Cf0LDQuV/QltGD0Lxf0KjQsNC9Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9Cv0Lpf0JTRg1/QodC1X9Cn0L5f0J/QsF/QltGDX9Co0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ0QgTU1NTSBZWVlZLCBkZGRkIEhIOm1tJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb0JHRg9Cz0YPQvSDRgdC+0LDRgl0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0K3RgNGC0LDQs9CwXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvQutGD0L3QuCDRgdC+0LDRgl0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb0JrQtdGH0LAg0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vQo9GC0LPQsNC9XSBkZGRkIFvQutGD0L3QuCDRgdC+0LDRgl0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn0K/QutC40L0gJXMg0LjRh9C40LTQsCcsXG4gICAgICAgICAgICBwYXN0OiAn0JHQuNGAINC90LXRh9CwICVzINC+0LvQtNC40L0nLFxuICAgICAgICAgICAgczogJ9GE0YPRgNGB0LDRgicsXG4gICAgICAgICAgICBzczogJyVkINGE0YPRgNGB0LDRgicsXG4gICAgICAgICAgICBtOiAn0LHQuNGAINC00LDQutC40LrQsCcsXG4gICAgICAgICAgICBtbTogJyVkINC00LDQutC40LrQsCcsXG4gICAgICAgICAgICBoOiAn0LHQuNGAINGB0L7QsNGCJyxcbiAgICAgICAgICAgIGhoOiAnJWQg0YHQvtCw0YInLFxuICAgICAgICAgICAgZDogJ9Cx0LjRgCDQutGD0L0nLFxuICAgICAgICAgICAgZGQ6ICclZCDQutGD0L0nLFxuICAgICAgICAgICAgTTogJ9Cx0LjRgCDQvtC5JyxcbiAgICAgICAgICAgIE1NOiAnJWQg0L7QuScsXG4gICAgICAgICAgICB5OiAn0LHQuNGAINC50LjQuycsXG4gICAgICAgICAgICB5eTogJyVkINC50LjQuycsXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDcsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB1ejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBVemJlayBMYXRpbiBbdXotbGF0bl1cbi8vISBhdXRob3IgOiBSYXN1bGJlayBNaXJ6YXlldiA6IGdpdGh1Yi5jb20vUmFzdWxiZWVla1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHV6TGF0biA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3V6LWxhdG4nLCB7XG4gICAgICAgIG1vbnRoczogJ1lhbnZhcl9GZXZyYWxfTWFydF9BcHJlbF9NYXlfSXl1bl9JeXVsX0F2Z3VzdF9TZW50YWJyX09rdGFicl9Ob3lhYnJfRGVrYWJyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ1lhbl9GZXZfTWFyX0Fwcl9NYXlfSXl1bl9JeXVsX0F2Z19TZW5fT2t0X05veV9EZWsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzOiAnWWFrc2hhbmJhX0R1c2hhbmJhX1Nlc2hhbmJhX0Nob3JzaGFuYmFfUGF5c2hhbmJhX0p1bWFfU2hhbmJhJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAnWWFrX0R1c2hfU2VzaF9DaG9yX1BheV9KdW1fU2hhbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdZYV9EdV9TZV9DaG9fUGFfSnVfU2hhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdEIE1NTU0gWVlZWSwgZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0J1Z3VuIHNvYXRdIExUIFtkYV0nLFxuICAgICAgICAgICAgbmV4dERheTogJ1tFcnRhZ2FdIExUIFtkYV0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrdW5pIHNvYXRdIExUIFtkYV0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tLZWNoYSBzb2F0XSBMVCBbZGFdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBcIltPJ3RnYW5dIGRkZGQgW2t1bmkgc29hdF0gTFQgW2RhXVwiLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdZYXFpbiAlcyBpY2hpZGEnLFxuICAgICAgICAgICAgcGFzdDogJ0JpciBuZWNoYSAlcyBvbGRpbicsXG4gICAgICAgICAgICBzOiAnc29uaXlhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc29uaXlhJyxcbiAgICAgICAgICAgIG06ICdiaXIgZGFxaXFhJyxcbiAgICAgICAgICAgIG1tOiAnJWQgZGFxaXFhJyxcbiAgICAgICAgICAgIGg6ICdiaXIgc29hdCcsXG4gICAgICAgICAgICBoaDogJyVkIHNvYXQnLFxuICAgICAgICAgICAgZDogJ2JpciBrdW4nLFxuICAgICAgICAgICAgZGQ6ICclZCBrdW4nLFxuICAgICAgICAgICAgTTogJ2JpciBveScsXG4gICAgICAgICAgICBNTTogJyVkIG95JyxcbiAgICAgICAgICAgIHk6ICdiaXIgeWlsJyxcbiAgICAgICAgICAgIHl5OiAnJWQgeWlsJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNywgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHV6TGF0bjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBWaWV0bmFtZXNlIFt2aV1cbi8vISBhdXRob3IgOiBCYW5nIE5ndXllbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5nbmtcbi8vISBhdXRob3IgOiBDaGllbiBLaXJhIDogaHR0cHM6Ly9naXRodWIuY29tL2NoaWVua2lyYVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHZpID0gbW9tZW50LmRlZmluZUxvY2FsZSgndmknLCB7XG4gICAgICAgIG1vbnRoczogJ3Row6FuZyAxX3Row6FuZyAyX3Row6FuZyAzX3Row6FuZyA0X3Row6FuZyA1X3Row6FuZyA2X3Row6FuZyA3X3Row6FuZyA4X3Row6FuZyA5X3Row6FuZyAxMF90aMOhbmcgMTFfdGjDoW5nIDEyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ1RoZyAwMV9UaGcgMDJfVGhnIDAzX1RoZyAwNF9UaGcgMDVfVGhnIDA2X1RoZyAwN19UaGcgMDhfVGhnIDA5X1RoZyAxMF9UaGcgMTFfVGhnIDEyJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ2No4bunIG5o4bqtdF90aOG7qSBoYWlfdGjhu6kgYmFfdGjhu6kgdMawX3Ro4bupIG7Eg21fdGjhu6kgc8OhdV90aOG7qSBi4bqjeScuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ0NOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ0NOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9zYXxjaC9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXmNoJC9pLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3NhJyA6ICdTQSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2NoJyA6ICdDSCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFtuxINtXSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBbbsSDbV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFtuxINtXSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGw6ICdERC9NL1lZWVknLFxuICAgICAgICAgICAgbGw6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIGxsbDogJ0QgTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRCBNTU0gWVlZWSBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0jDtG0gbmF5IGzDumNdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbTmfDoHkgbWFpIGzDumNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbdHXhuqduIHThu5tpIGzDumNdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSMO0bSBxdWEgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFt0deG6p24gdHLGsOG7m2MgbMO6Y10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclcyB04bubaScsXG4gICAgICAgICAgICBwYXN0OiAnJXMgdHLGsOG7m2MnLFxuICAgICAgICAgICAgczogJ3bDoGkgZ2nDonknLFxuICAgICAgICAgICAgc3M6ICclZCBnacOieScsXG4gICAgICAgICAgICBtOiAnbeG7mXQgcGjDunQnLFxuICAgICAgICAgICAgbW06ICclZCBwaMO6dCcsXG4gICAgICAgICAgICBoOiAnbeG7mXQgZ2nhu50nLFxuICAgICAgICAgICAgaGg6ICclZCBnaeG7nScsXG4gICAgICAgICAgICBkOiAnbeG7mXQgbmfDoHknLFxuICAgICAgICAgICAgZGQ6ICclZCBuZ8OgeScsXG4gICAgICAgICAgICBNOiAnbeG7mXQgdGjDoW5nJyxcbiAgICAgICAgICAgIE1NOiAnJWQgdGjDoW5nJyxcbiAgICAgICAgICAgIHk6ICdt4buZdCBuxINtJyxcbiAgICAgICAgICAgIHl5OiAnJWQgbsSDbScsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQsIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB2aTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cbi8vISBsb2NhbGUgOiBQc2V1ZG8gW3gtcHNldWRvXVxuLy8hIGF1dGhvciA6IEFuZHJldyBIb29kIDogaHR0cHM6Ly9naXRodWIuY29tL2FuZHJld2hvb2QxMjVcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB4UHNldWRvID0gbW9tZW50LmRlZmluZUxvY2FsZSgneC1wc2V1ZG8nLCB7XG4gICAgICAgIG1vbnRoczogJ0p+w6HDscO6w6F+csO9X0Z+w6licsO6fsOhcsO9X35Nw6FyY35oX8OBcH5yw61sX35Nw6HDvV9+SsO6w7HDqX5fSsO6bH7DvV/DgcO6fmfDunN0fl9Tw6lwfnTDqW1ifsOpcl/Dk35jdMOzYn7DqXJfw5F+w7N2w6ltfmLDqXJffkTDqWPDqX5tYsOpcicuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKfsOhw7FffkbDqWJffk3DoXJffsOBcHJffk3DocO9X35Kw7rDsV9+SsO6bF9+w4HDumdfflPDqXBffsOTY3RffsORw7N2X35Ew6ljJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1N+w7rDsWTDoX7DvV9Nw7N+w7Fkw6HDvX5fVMO6w6l+c2TDocO9fl9Xw6lkfsOxw6lzZH7DocO9X1R+aMO6cnN+ZMOhw71ffkZyw61kfsOhw71fU37DoXTDunJ+ZMOhw70nLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTfsO6w7Fffk3Ds8OxX35Uw7rDqV9+V8OpZF9+VGjDul9+RnLDrV9+U8OhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICdTfsO6X03Ds35fVMO6X35Xw6lfVH5oX0Zyfl9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tUfsOzZMOhfsO9IMOhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tUfsOzbcOzfnJyw7N+dyDDoXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbw6F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW8OdfsOpc3R+w6lyZMOhfsO9IMOhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbTH7DoXN0XSBkZGRkIFvDoXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnw61+w7EgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMOhfmfDsycsXG4gICAgICAgICAgICBzOiAnw6EgfmbDqXcgfnPDqWPDs37DsWRzJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc37DqWPDs8OxfmRzJyxcbiAgICAgICAgICAgIG06ICfDoSB+bcOtw7F+w7p0w6knLFxuICAgICAgICAgICAgbW06ICclZCBtfsOtw7HDun50w6lzJyxcbiAgICAgICAgICAgIGg6ICfDoX7DsSBow7N+w7pyJyxcbiAgICAgICAgICAgIGhoOiAnJWQgaH7Ds8O6cnMnLFxuICAgICAgICAgICAgZDogJ8OhIH5kw6HDvScsXG4gICAgICAgICAgICBkZDogJyVkIGR+w6HDvXMnLFxuICAgICAgICAgICAgTTogJ8OhIH5tw7PDsX50aCcsXG4gICAgICAgICAgICBNTTogJyVkIG1+w7PDsXR+aHMnLFxuICAgICAgICAgICAgeTogJ8OhIH7DvcOpw6FyJyxcbiAgICAgICAgICAgIHl5OiAnJWQgw71+w6nDoXJzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID1cbiAgICAgICAgICAgICAgICAgICAgfn4oKG51bWJlciAlIDEwMCkgLyAxMCkgPT09IDFcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RoJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBiID09PSAxXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdzdCdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYiA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGIgPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3JkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHhQc2V1ZG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogWW9ydWJhIE5pZ2VyaWEgW3lvXVxuLy8hIGF1dGhvciA6IEF0b2xhZ2JlIEFiaXNveWUgOiBodHRwczovL2dpdGh1Yi5jb20vYW5kZWxhLWJhdG9sYWdiZVxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG4gICAgdmFyIHlvID0gbW9tZW50LmRlZmluZUxvY2FsZSgneW8nLCB7XG4gICAgICAgIG1vbnRoczogJ1PhurnMgXLhurnMgV9FzIByZcyAbGXMgF/hurhy4bq5zIBuYcyAX0nMgGdiZcyBX0XMgGJpYmlfT8yAa3XMgGR1X0Fn4bq5bW9fT8yAZ3XMgW5fT3dld2Vf4buMzIB3YcyAcmHMgF9CZcyBbHXMgV/hu4zMgHDhurnMgMyAJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ1PhurnMgXJfRcyAcmxf4bq4cm5fScyAZ2JfRcyAYmlfT8yAa3XMgF9BZ+G6uV9PzIBndcyBX093ZV/hu4zMgHdhzIBfQmXMgWxf4buMzIBw4bq5zIDMgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICdBzIBpzIBrdcyBX0FqZcyBX0nMgHPhurnMgWd1bl/hu4xq4buNzIFydcyBX+G7jGrhu43MgWLhu41f4bq4dGnMgF9BzIBiYcyBbeG6ucyBdGEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdBzIBpzIBrX0FqZcyBX0nMgHPhurnMgV/hu4xqcl/hu4xqYl/hurh0acyAX0HMgGJhzIEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnQcyAacyAX0FqX0nMgHNf4buMcl/hu4xiX+G6uHRfQcyAYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUzogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbT8yAbmnMgCBuaV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vhu4zMgGxhIG5pXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogXCJkZGRkIFvhu4xz4bq5zIAgdG/MgW4nYuG7jV0gW25pXSBMVFwiLFxuICAgICAgICAgICAgbGFzdERheTogJ1tBzIBuYSBuaV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvhu4xz4bq5zIAgdG/MgWzhu43MgV0gW25pXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ25pzIEgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIGvhu41qYcyBJyxcbiAgICAgICAgICAgIHM6ICdpzIBz4bq5anXMgSBhYXlhzIEgZGllJyxcbiAgICAgICAgICAgIHNzOiAnYWF5YcyBICVkJyxcbiAgICAgICAgICAgIG06ICdpzIBz4bq5anXMgSBrYW4nLFxuICAgICAgICAgICAgbW06ICdpzIBz4bq5anXMgSAlZCcsXG4gICAgICAgICAgICBoOiAnd2HMgWthdGkga2FuJyxcbiAgICAgICAgICAgIGhoOiAnd2HMgWthdGkgJWQnLFxuICAgICAgICAgICAgZDogJ+G7jWrhu43MgSBrYW4nLFxuICAgICAgICAgICAgZGQ6ICfhu41q4buNzIEgJWQnLFxuICAgICAgICAgICAgTTogJ29zdcyAIGthbicsXG4gICAgICAgICAgICBNTTogJ29zdcyAICVkJyxcbiAgICAgICAgICAgIHk6ICfhu41kdcyBbiBrYW4nLFxuICAgICAgICAgICAgeXk6ICfhu41kdcyBbiAlZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC/hu41q4buNzIFcXHNcXGR7MSwyfS8sXG4gICAgICAgIG9yZGluYWw6ICfhu41q4buNzIEgJWQnLFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA0LCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4geW87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2hpbmVzZSAoQ2hpbmEpIFt6aC1jbl1cbi8vISBhdXRob3IgOiBzdXVwaWMgOiBodHRwczovL2dpdGh1Yi5jb20vc3V1cGljXG4vLyEgYXV0aG9yIDogWmVubyBaZW5nIDogaHR0cHM6Ly9naXRodWIuY29tL3plbm96ZW5nXG4vLyEgYXV0aG9yIDogdXUxMDkgOiBodHRwczovL2dpdGh1Yi5jb20vdXUxMDlcblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIC8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuICAgIHZhciB6aENuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtY24nLCB7XG4gICAgICAgIG1vbnRoczogJ+S4gOaciF/kuozmnIhf5LiJ5pyIX+Wbm+aciF/kupTmnIhf5YWt5pyIX+S4g+aciF/lhavmnIhf5Lmd5pyIX+WNgeaciF/ljYHkuIDmnIhf5Y2B5LqM5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+WRqOaXpV/lkajkuIBf5ZGo5LqMX+WRqOS4iV/lkajlm5tf5ZGo5LqUX+WRqOWFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIExMTDogJ1lZWVnlubRN5pyIROaXpUFo54K5bW3liIYnLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpWRkZGRBaOeCuW1t5YiGJyxcbiAgICAgICAgICAgIGw6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgbGxsbDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5YeM5pmofOaXqeS4inzkuIrljYh85Lit5Y2IfOS4i+WNiHzmmZrkuIovLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuIvljYgnIHx8IG1lcmlkaWVtID09PSAn5pma5LiKJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vICfkuK3ljYgnXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5YeM5pmoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aXqeS4iic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiK5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb5piO5aSpXUxUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgIT09IHRoaXMud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+S4i11kZGRMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5pysXWRkZExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53ZWVrKCkgIT09IG5vdy53ZWVrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb5LiKXWRkZExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vmnKxdZGRkTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzlkagpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+WRqCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICclc+WQjicsXG4gICAgICAgICAgICBwYXN0OiAnJXPliY0nLFxuICAgICAgICAgICAgczogJ+WHoOenkicsXG4gICAgICAgICAgICBzczogJyVkIOenkicsXG4gICAgICAgICAgICBtOiAnMSDliIbpkp8nLFxuICAgICAgICAgICAgbW06ICclZCDliIbpkp8nLFxuICAgICAgICAgICAgaDogJzEg5bCP5pe2JyxcbiAgICAgICAgICAgIGhoOiAnJWQg5bCP5pe2JyxcbiAgICAgICAgICAgIGQ6ICcxIOWkqScsXG4gICAgICAgICAgICBkZDogJyVkIOWkqScsXG4gICAgICAgICAgICBNOiAnMSDkuKrmnIgnLFxuICAgICAgICAgICAgTU06ICclZCDkuKrmnIgnLFxuICAgICAgICAgICAgeTogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5OiAnJWQg5bm0JyxcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgLy8gR0IvVCA3NDA4LTE5OTTjgIrmlbDmja7lhYPlkozkuqTmjaLmoLzlvI/Ct+S/oeaBr+S6pOaNosK35pel5pyf5ZKM5pe26Ze06KGo56S65rOV44CL5LiOSVNPIDg2MDE6MTk4OOetieaViFxuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCwgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHpoQ247XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2hpbmVzZSAoSG9uZyBLb25nKSBbemgtaGtdXG4vLyEgYXV0aG9yIDogQmVuIDogaHR0cHM6Ly9naXRodWIuY29tL2Jlbi1saW5cbi8vISBhdXRob3IgOiBDaHJpcyBMYW0gOiBodHRwczovL2dpdGh1Yi5jb20vaGVoYWNocmlzXG4vLyEgYXV0aG9yIDogS29uc3RhbnRpbiA6IGh0dHBzOi8vZ2l0aHViLmNvbS9za2ZkXG4vLyEgYXV0aG9yIDogQW50aG9ueSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnRob255bGF1XG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgemhIayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLWhrJywge1xuICAgICAgICBtb250aHM6ICfkuIDmnIhf5LqM5pyIX+S4ieaciF/lm5vmnIhf5LqU5pyIX+WFreaciF/kuIPmnIhf5YWr5pyIX+S5neaciF/ljYHmnIhf5Y2B5LiA5pyIX+WNgeS6jOaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfpgLHml6Vf6YCx5LiAX+mAseS6jF/pgLHkuIlf6YCx5ZubX+mAseS6lF/pgLHlha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn5pelX+S4gF/kuoxf5LiJX+Wbm1/kupRf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVkvTS9EJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/lh4zmmah85pep5LiKfOS4iuWNiHzkuK3ljYh85LiL5Y2IfOaZmuS4ii8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+WHjOaZqCcgfHwgbWVyaWRpZW0gPT09ICfml6nkuIonIHx8IG1lcmlkaWVtID09PSAn5LiK5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4reWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5YeM5pmoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aXqeS4iic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiK5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPT09IDEyMDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vku4rlpKldTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vmmI7lpKldTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb5LiLXWRkZGRMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+aYqOWkqV1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vkuIpdZGRkZExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOmAsSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfml6UnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aciCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn6YCxJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz5b6MJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+WJjScsXG4gICAgICAgICAgICBzOiAn5bm+56eSJyxcbiAgICAgICAgICAgIHNzOiAnJWQg56eSJyxcbiAgICAgICAgICAgIG06ICcxIOWIhumQmCcsXG4gICAgICAgICAgICBtbTogJyVkIOWIhumQmCcsXG4gICAgICAgICAgICBoOiAnMSDlsI/mmYInLFxuICAgICAgICAgICAgaGg6ICclZCDlsI/mmYInLFxuICAgICAgICAgICAgZDogJzEg5aSpJyxcbiAgICAgICAgICAgIGRkOiAnJWQg5aSpJyxcbiAgICAgICAgICAgIE06ICcxIOWAi+aciCcsXG4gICAgICAgICAgICBNTTogJyVkIOWAi+aciCcsXG4gICAgICAgICAgICB5OiAnMSDlubQnLFxuICAgICAgICAgICAgeXk6ICclZCDlubQnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHpoSGs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2hpbmVzZSAoTWFjYXUpIFt6aC1tb11cbi8vISBhdXRob3IgOiBCZW4gOiBodHRwczovL2dpdGh1Yi5jb20vYmVuLWxpblxuLy8hIGF1dGhvciA6IENocmlzIExhbSA6IGh0dHBzOi8vZ2l0aHViLmNvbS9oZWhhY2hyaXNcbi8vISBhdXRob3IgOiBUYW4gWXVhbmhvbmcgOiBodHRwczovL2dpdGh1Yi5jb20vbGUwdGFuXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgemhNbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLW1vJywge1xuICAgICAgICBtb250aHM6ICfkuIDmnIhf5LqM5pyIX+S4ieaciF/lm5vmnIhf5LqU5pyIX+WFreaciF/kuIPmnIhf5YWr5pyIX+S5neaciF/ljYHmnIhf5Y2B5LiA5pyIX+WNgeS6jOaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfpgLHml6Vf6YCx5LiAX+mAseS6jF/pgLHkuIlf6YCx5ZubX+mAseS6lF/pgLHlha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn5pelX+S4gF/kuoxf5LiJX+Wbm1/kupRf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/lh4zmmah85pep5LiKfOS4iuWNiHzkuK3ljYh85LiL5Y2IfOaZmuS4ii8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+WHjOaZqCcgfHwgbWVyaWRpZW0gPT09ICfml6nkuIonIHx8IG1lcmlkaWVtID09PSAn5LiK5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4reWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5YeM5pmoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aXqeS4iic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiK5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb5LiLXWRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+S4il1kZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOmAsSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfml6UnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aciCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn6YCxJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz5YWnJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+WJjScsXG4gICAgICAgICAgICBzOiAn5bm+56eSJyxcbiAgICAgICAgICAgIHNzOiAnJWQg56eSJyxcbiAgICAgICAgICAgIG06ICcxIOWIhumQmCcsXG4gICAgICAgICAgICBtbTogJyVkIOWIhumQmCcsXG4gICAgICAgICAgICBoOiAnMSDlsI/mmYInLFxuICAgICAgICAgICAgaGg6ICclZCDlsI/mmYInLFxuICAgICAgICAgICAgZDogJzEg5aSpJyxcbiAgICAgICAgICAgIGRkOiAnJWQg5aSpJyxcbiAgICAgICAgICAgIE06ICcxIOWAi+aciCcsXG4gICAgICAgICAgICBNTTogJyVkIOWAi+aciCcsXG4gICAgICAgICAgICB5OiAnMSDlubQnLFxuICAgICAgICAgICAgeXk6ICclZCDlubQnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHpoTW87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG4vLyEgbG9jYWxlIDogQ2hpbmVzZSAoVGFpd2FuKSBbemgtdHddXG4vLyEgYXV0aG9yIDogQmVuIDogaHR0cHM6Ly9naXRodWIuY29tL2Jlbi1saW5cbi8vISBhdXRob3IgOiBDaHJpcyBMYW0gOiBodHRwczovL2dpdGh1Yi5jb20vaGVoYWNocmlzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICAvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbiAgICB2YXIgemhUdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLXR3Jywge1xuICAgICAgICBtb250aHM6ICfkuIDmnIhf5LqM5pyIX+S4ieaciF/lm5vmnIhf5LqU5pyIX+WFreaciF/kuIPmnIhf5YWr5pyIX+S5neaciF/ljYHmnIhf5Y2B5LiA5pyIX+WNgeS6jOaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICcx5pyIXzLmnIhfM+aciF805pyIXzXmnIhfNuaciF835pyIXzjmnIhfOeaciF8xMOaciF8xMeaciF8xMuaciCcuc3BsaXQoXG4gICAgICAgICAgICAnXydcbiAgICAgICAgKSxcbiAgICAgICAgd2Vla2RheXM6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfpgLHml6Vf6YCx5LiAX+mAseS6jF/pgLHkuIlf6YCx5ZubX+mAseS6lF/pgLHlha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn5pelX+S4gF/kuoxf5LiJX+Wbm1/kupRf5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEw6ICdZWVlZ5bm0TeaciETml6UgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbDogJ1lZWVkvTS9EJyxcbiAgICAgICAgICAgIGxsOiAnWVlZWeW5tE3mnIhE5pelJyxcbiAgICAgICAgICAgIGxsbDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/lh4zmmah85pep5LiKfOS4iuWNiHzkuK3ljYh85LiL5Y2IfOaZmuS4ii8sXG4gICAgICAgIG1lcmlkaWVtSG91cjogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+WHjOaZqCcgfHwgbWVyaWRpZW0gPT09ICfml6nkuIonIHx8IG1lcmlkaWVtID09PSAn5LiK5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4reWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgdmFyIGhtID0gaG91ciAqIDEwMCArIG1pbnV0ZTtcbiAgICAgICAgICAgIGlmIChobSA8IDYwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5YeM5pmoJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCA5MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aXqeS4iic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiK5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMjMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuK3ljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDE4MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4i+WNiCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pma5LiKJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb5LuK5aSpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+aYjuWkqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdb5LiLXWRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vmmKjlpKldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+S4il1kZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOmAsSkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfml6UnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aciCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn6YCxJztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVz5b6MJyxcbiAgICAgICAgICAgIHBhc3Q6ICclc+WJjScsXG4gICAgICAgICAgICBzOiAn5bm+56eSJyxcbiAgICAgICAgICAgIHNzOiAnJWQg56eSJyxcbiAgICAgICAgICAgIG06ICcxIOWIhumQmCcsXG4gICAgICAgICAgICBtbTogJyVkIOWIhumQmCcsXG4gICAgICAgICAgICBoOiAnMSDlsI/mmYInLFxuICAgICAgICAgICAgaGg6ICclZCDlsI/mmYInLFxuICAgICAgICAgICAgZDogJzEg5aSpJyxcbiAgICAgICAgICAgIGRkOiAnJWQg5aSpJyxcbiAgICAgICAgICAgIE06ICcxIOWAi+aciCcsXG4gICAgICAgICAgICBNTTogJyVkIOWAi+aciCcsXG4gICAgICAgICAgICB5OiAnMSDlubQnLFxuICAgICAgICAgICAgeXk6ICclZCDlubQnLFxuICAgICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHpoVHc7XG5cbn0pKSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gd3JhcHBlclJhZjtcblxudmFyIF9yYWYgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYWZcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIGlkID0gMDtcbnZhciBpZHMgPSB7fTsgLy8gU3VwcG9ydCBjYWxsIHJhZiB3aXRoIGRlbGF5IHNwZWNpZmllZCBmcmFtZVxuXG5mdW5jdGlvbiB3cmFwcGVyUmFmKGNhbGxiYWNrKSB7XG4gIHZhciBkZWxheUZyYW1lcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMTtcbiAgdmFyIG15SWQgPSBpZCsrO1xuICB2YXIgcmVzdEZyYW1lcyA9IGRlbGF5RnJhbWVzO1xuXG4gIGZ1bmN0aW9uIGludGVybmFsQ2FsbGJhY2soKSB7XG4gICAgcmVzdEZyYW1lcyAtPSAxO1xuXG4gICAgaWYgKHJlc3RGcmFtZXMgPD0gMCkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICAgIGRlbGV0ZSBpZHNbbXlJZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkc1tteUlkXSA9ICgwLCBfcmFmW1wiZGVmYXVsdFwiXSkoaW50ZXJuYWxDYWxsYmFjayk7XG4gICAgfVxuICB9XG5cbiAgaWRzW215SWRdID0gKDAsIF9yYWZbXCJkZWZhdWx0XCJdKShpbnRlcm5hbENhbGxiYWNrKTtcbiAgcmV0dXJuIG15SWQ7XG59XG5cbndyYXBwZXJSYWYuY2FuY2VsID0gZnVuY3Rpb24gY2FuY2VsKHBpZCkge1xuICBpZiAocGlkID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwoaWRzW3BpZF0pO1xuXG4gIGRlbGV0ZSBpZHNbcGlkXTtcbn07XG5cbndyYXBwZXJSYWYuaWRzID0gaWRzOyAvLyBleHBvcnQgdGhpcyBmb3IgdGVzdCB1c2FnZSIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oYXJyLCBvYmope1xuICBpZiAoYXJyLmluZGV4T2YpIHJldHVybiBhcnIuaW5kZXhPZihvYmopO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkge1xuICAgIGlmIChhcnJbaV0gPT09IG9iaikgcmV0dXJuIGk7XG4gIH1cbiAgcmV0dXJuIC0xO1xufTsiLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnN0b3JlU2hhcGUgPSB1bmRlZmluZWQ7XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG52YXIgc3RvcmVTaGFwZSA9IGV4cG9ydHMuc3RvcmVTaGFwZSA9IF9wcm9wVHlwZXMyLmRlZmF1bHQuc2hhcGUoe1xuICBzdWJzY3JpYmU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuYy5pc1JlcXVpcmVkLFxuICBzZXRTdGF0ZTogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldFN0YXRlOiBfcHJvcFR5cGVzMi5kZWZhdWx0LmZ1bmMuaXNSZXF1aXJlZFxufSk7IiwiZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9hcnJheVdpdGhIb2xlcztcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfYXJyYXlMaWtlVG9BcnJheShhcnIsIGxlbikge1xuICBpZiAobGVuID09IG51bGwgfHwgbGVuID4gYXJyLmxlbmd0aCkgbGVuID0gYXJyLmxlbmd0aDtcblxuICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcnIyW2ldID0gYXJyW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycjI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2FycmF5TGlrZVRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfbm9uSXRlcmFibGVSZXN0O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaXRlcmFibGVUb0FycmF5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZ2V0U2Nyb2xsQmFyU2l6ZTtcbnZhciBjYWNoZWQ7XG5cbmZ1bmN0aW9uIGdldFNjcm9sbEJhclNpemUoZnJlc2gpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChmcmVzaCB8fCBjYWNoZWQgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGlubmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIGlubmVyLnN0eWxlLmhlaWdodCA9ICcyMDBweCc7XG4gICAgdmFyIG91dGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdmFyIG91dGVyU3R5bGUgPSBvdXRlci5zdHlsZTtcbiAgICBvdXRlclN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBvdXRlclN0eWxlLnRvcCA9IDA7XG4gICAgb3V0ZXJTdHlsZS5sZWZ0ID0gMDtcbiAgICBvdXRlclN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgb3V0ZXJTdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgb3V0ZXJTdHlsZS53aWR0aCA9ICcyMDBweCc7XG4gICAgb3V0ZXJTdHlsZS5oZWlnaHQgPSAnMTUwcHgnO1xuICAgIG91dGVyU3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBvdXRlci5hcHBlbmRDaGlsZChpbm5lcik7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcik7XG4gICAgdmFyIHdpZHRoQ29udGFpbmVkID0gaW5uZXIub2Zmc2V0V2lkdGg7XG4gICAgb3V0ZXIuc3R5bGUub3ZlcmZsb3cgPSAnc2Nyb2xsJztcbiAgICB2YXIgd2lkdGhTY3JvbGwgPSBpbm5lci5vZmZzZXRXaWR0aDtcblxuICAgIGlmICh3aWR0aENvbnRhaW5lZCA9PT0gd2lkdGhTY3JvbGwpIHtcbiAgICAgIHdpZHRoU2Nyb2xsID0gb3V0ZXIuY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChvdXRlcik7XG4gICAgY2FjaGVkID0gd2lkdGhDb250YWluZWQgLSB3aWR0aFNjcm9sbDtcbiAgfVxuXG4gIHJldHVybiBjYWNoZWQ7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX0hlYWRlclJvdyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vSGVhZGVyUm93XCIpKTtcblxudmFyIF9UYWJsZUNvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9jb250ZXh0L1RhYmxlQ29udGV4dFwiKSk7XG5cbmZ1bmN0aW9uIHBhcnNlSGVhZGVyUm93cyhyb290Q29sdW1ucykge1xuICB2YXIgcm93cyA9IFtdO1xuXG4gIGZ1bmN0aW9uIGZpbGxSb3dDZWxscyhjb2x1bW5zLCBjb2xJbmRleCkge1xuICAgIHZhciByb3dJbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogMDtcbiAgICAvLyBJbml0IHJvd3NcbiAgICByb3dzW3Jvd0luZGV4XSA9IHJvd3Nbcm93SW5kZXhdIHx8IFtdO1xuICAgIHZhciBjdXJyZW50Q29sSW5kZXggPSBjb2xJbmRleDtcbiAgICB2YXIgY29sU3BhbnMgPSBjb2x1bW5zLmZpbHRlcihCb29sZWFuKS5tYXAoZnVuY3Rpb24gKGNvbHVtbikge1xuICAgICAgdmFyIGNlbGwgPSB7XG4gICAgICAgIGtleTogY29sdW1uLmtleSxcbiAgICAgICAgY2xhc3NOYW1lOiBjb2x1bW4uY2xhc3NOYW1lIHx8ICcnLFxuICAgICAgICBjaGlsZHJlbjogY29sdW1uLnRpdGxlLFxuICAgICAgICBjb2x1bW46IGNvbHVtbixcbiAgICAgICAgY29sU3RhcnQ6IGN1cnJlbnRDb2xJbmRleFxuICAgICAgfTtcbiAgICAgIHZhciBjb2xTcGFuID0gMTtcbiAgICAgIHZhciBzdWJDb2x1bW5zID0gY29sdW1uLmNoaWxkcmVuO1xuXG4gICAgICBpZiAoc3ViQ29sdW1ucyAmJiBzdWJDb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29sU3BhbiA9IGZpbGxSb3dDZWxscyhzdWJDb2x1bW5zLCBjdXJyZW50Q29sSW5kZXgsIHJvd0luZGV4ICsgMSkucmVkdWNlKGZ1bmN0aW9uICh0b3RhbCwgY291bnQpIHtcbiAgICAgICAgICByZXR1cm4gdG90YWwgKyBjb3VudDtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIGNlbGwuaGFzU3ViQ29sdW1ucyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICgnY29sU3BhbicgaW4gY29sdW1uKSB7XG4gICAgICAgIGNvbFNwYW4gPSBjb2x1bW4uY29sU3BhbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCdyb3dTcGFuJyBpbiBjb2x1bW4pIHtcbiAgICAgICAgY2VsbC5yb3dTcGFuID0gY29sdW1uLnJvd1NwYW47XG4gICAgICB9XG5cbiAgICAgIGNlbGwuY29sU3BhbiA9IGNvbFNwYW47XG4gICAgICBjZWxsLmNvbEVuZCA9IGNlbGwuY29sU3RhcnQgKyBjb2xTcGFuIC0gMTtcbiAgICAgIHJvd3Nbcm93SW5kZXhdLnB1c2goY2VsbCk7XG4gICAgICBjdXJyZW50Q29sSW5kZXggKz0gY29sU3BhbjtcbiAgICAgIHJldHVybiBjb2xTcGFuO1xuICAgIH0pO1xuICAgIHJldHVybiBjb2xTcGFucztcbiAgfSAvLyBHZW5lcmF0ZSBgcm93c2AgY2VsbCBkYXRhXG5cblxuICBmaWxsUm93Q2VsbHMocm9vdENvbHVtbnMsIDApOyAvLyBIYW5kbGUgYHJvd1NwYW5gXG5cbiAgdmFyIHJvd0NvdW50ID0gcm93cy5sZW5ndGg7XG5cbiAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3Aocm93SW5kZXgpIHtcbiAgICByb3dzW3Jvd0luZGV4XS5mb3JFYWNoKGZ1bmN0aW9uIChjZWxsKSB7XG4gICAgICBpZiAoISgncm93U3BhbicgaW4gY2VsbCkgJiYgIWNlbGwuaGFzU3ViQ29sdW1ucykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgY2VsbC5yb3dTcGFuID0gcm93Q291bnQgLSByb3dJbmRleDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBmb3IgKHZhciByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4ICs9IDEpIHtcbiAgICBfbG9vcChyb3dJbmRleCk7XG4gIH1cblxuICByZXR1cm4gcm93cztcbn1cblxuZnVuY3Rpb24gSGVhZGVyKF9yZWYpIHtcbiAgdmFyIHN0aWNreU9mZnNldHMgPSBfcmVmLnN0aWNreU9mZnNldHMsXG4gICAgICBjb2x1bW5zID0gX3JlZi5jb2x1bW5zLFxuICAgICAgZmxhdHRlbkNvbHVtbnMgPSBfcmVmLmZsYXR0ZW5Db2x1bW5zLFxuICAgICAgb25IZWFkZXJSb3cgPSBfcmVmLm9uSGVhZGVyUm93O1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoX1RhYmxlQ29udGV4dC5kZWZhdWx0KSxcbiAgICAgIHByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxcbiAgICAgIGdldENvbXBvbmVudCA9IF9SZWFjdCR1c2VDb250ZXh0LmdldENvbXBvbmVudDtcblxuICB2YXIgcm93cyA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBwYXJzZUhlYWRlclJvd3MoY29sdW1ucyk7XG4gIH0sIFtjb2x1bW5zXSk7XG4gIHZhciBXcmFwcGVyQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnaGVhZGVyJywgJ3dyYXBwZXInXSwgJ3RoZWFkJyk7XG4gIHZhciB0ckNvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ2hlYWRlcicsICdyb3cnXSwgJ3RyJyk7XG4gIHZhciB0aENvbXBvbmVudCA9IGdldENvbXBvbmVudChbJ2hlYWRlcicsICdjZWxsJ10sICd0aCcpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoV3JhcHBlckNvbXBvbmVudCwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10aGVhZFwiKVxuICB9LCByb3dzLm1hcChmdW5jdGlvbiAocm93LCByb3dJbmRleCkge1xuICAgIHZhciByb3dOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0hlYWRlclJvdy5kZWZhdWx0LCB7XG4gICAgICBrZXk6IHJvd0luZGV4LFxuICAgICAgZmxhdHRlbkNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zLFxuICAgICAgY2VsbHM6IHJvdyxcbiAgICAgIHN0aWNreU9mZnNldHM6IHN0aWNreU9mZnNldHMsXG4gICAgICByb3dDb21wb25lbnQ6IHRyQ29tcG9uZW50LFxuICAgICAgY2VsbENvbXBvbmVudDogdGhDb21wb25lbnQsXG4gICAgICBvbkhlYWRlclJvdzogb25IZWFkZXJSb3csXG4gICAgICBpbmRleDogcm93SW5kZXhcbiAgICB9KTtcbiAgICByZXR1cm4gcm93Tm9kZTtcbiAgfSkpO1xufVxuXG52YXIgX2RlZmF1bHQgPSBIZWFkZXI7XG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZ2V0Q2VsbEZpeGVkSW5mbyA9IGdldENlbGxGaXhlZEluZm87XG5cbmZ1bmN0aW9uIGdldENlbGxGaXhlZEluZm8oY29sU3RhcnQsIGNvbEVuZCwgY29sdW1ucywgc3RpY2t5T2Zmc2V0cywgZGlyZWN0aW9uKSB7XG4gIHZhciBzdGFydENvbHVtbiA9IGNvbHVtbnNbY29sU3RhcnRdIHx8IHt9O1xuICB2YXIgZW5kQ29sdW1uID0gY29sdW1uc1tjb2xFbmRdIHx8IHt9O1xuICB2YXIgZml4TGVmdDtcbiAgdmFyIGZpeFJpZ2h0O1xuXG4gIGlmIChzdGFydENvbHVtbi5maXhlZCA9PT0gJ2xlZnQnKSB7XG4gICAgZml4TGVmdCA9IHN0aWNreU9mZnNldHMubGVmdFtjb2xTdGFydF07XG4gIH0gZWxzZSBpZiAoZW5kQ29sdW1uLmZpeGVkID09PSAncmlnaHQnKSB7XG4gICAgZml4UmlnaHQgPSBzdGlja3lPZmZzZXRzLnJpZ2h0W2NvbEVuZF07XG4gIH1cblxuICB2YXIgbGFzdEZpeExlZnQgPSBmYWxzZTtcbiAgdmFyIGZpcnN0Rml4UmlnaHQgPSBmYWxzZTtcbiAgdmFyIGxhc3RGaXhSaWdodCA9IGZhbHNlO1xuICB2YXIgZmlyc3RGaXhMZWZ0ID0gZmFsc2U7XG4gIHZhciBuZXh0Q29sdW1uID0gY29sdW1uc1tjb2xFbmQgKyAxXTtcbiAgdmFyIHByZXZDb2x1bW4gPSBjb2x1bW5zW2NvbFN0YXJ0IC0gMV07XG5cbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICBpZiAoZml4TGVmdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcHJldkZpeExlZnQgPSBwcmV2Q29sdW1uICYmIHByZXZDb2x1bW4uZml4ZWQgPT09ICdsZWZ0JztcbiAgICAgIGZpcnN0Rml4TGVmdCA9ICFwcmV2Rml4TGVmdDtcbiAgICB9IGVsc2UgaWYgKGZpeFJpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBuZXh0Rml4UmlnaHQgPSBuZXh0Q29sdW1uICYmIG5leHRDb2x1bW4uZml4ZWQgPT09ICdyaWdodCc7XG4gICAgICBsYXN0Rml4UmlnaHQgPSAhbmV4dEZpeFJpZ2h0O1xuICAgIH1cbiAgfSBlbHNlIGlmIChmaXhMZWZ0ICE9PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgbmV4dEZpeExlZnQgPSBuZXh0Q29sdW1uICYmIG5leHRDb2x1bW4uZml4ZWQgPT09ICdsZWZ0JztcbiAgICBsYXN0Rml4TGVmdCA9ICFuZXh0Rml4TGVmdDtcbiAgfSBlbHNlIGlmIChmaXhSaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIHByZXZGaXhSaWdodCA9IHByZXZDb2x1bW4gJiYgcHJldkNvbHVtbi5maXhlZCA9PT0gJ3JpZ2h0JztcbiAgICBmaXJzdEZpeFJpZ2h0ID0gIXByZXZGaXhSaWdodDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZml4TGVmdDogZml4TGVmdCxcbiAgICBmaXhSaWdodDogZml4UmlnaHQsXG4gICAgbGFzdEZpeExlZnQ6IGxhc3RGaXhMZWZ0LFxuICAgIGZpcnN0Rml4UmlnaHQ6IGZpcnN0Rml4UmlnaHQsXG4gICAgbGFzdEZpeFJpZ2h0OiBsYXN0Rml4UmlnaHQsXG4gICAgZmlyc3RGaXhMZWZ0OiBmaXJzdEZpeExlZnQsXG4gICAgaXNTdGlja3k6IHN0aWNreU9mZnNldHMuaXNTdGlja3lcbiAgfTtcbn0iLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKTtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2xlZ2FjeVV0aWwgPSByZXF1aXJlKFwiLi91dGlscy9sZWdhY3lVdGlsXCIpO1xuXG5mdW5jdGlvbiBDb2xHcm91cChfcmVmKSB7XG4gIHZhciBjb2xXaWR0aHMgPSBfcmVmLmNvbFdpZHRocyxcbiAgICAgIGNvbHVtbnMgPSBfcmVmLmNvbHVtbnMsXG4gICAgICBjb2x1bUNvdW50ID0gX3JlZi5jb2x1bUNvdW50O1xuICB2YXIgY29scyA9IFtdO1xuICB2YXIgbGVuID0gY29sdW1Db3VudCB8fCBjb2x1bW5zLmxlbmd0aDsgLy8gT25seSBpbnNlcnQgY29sIHdpdGggd2lkdGggJiBhZGRpdGlvbmFsIHByb3BzXG4gIC8vIFNraXAgaWYgcmVzdCBjb2wgZG8gbm90IGhhdmUgYW55IHVzZWZ1bCBpbmZvXG5cbiAgdmFyIG11c3RJbnNlcnQgPSBmYWxzZTtcblxuICBmb3IgKHZhciBpID0gbGVuIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICB2YXIgd2lkdGggPSBjb2xXaWR0aHNbaV07XG4gICAgdmFyIGNvbHVtbiA9IGNvbHVtbnMgJiYgY29sdW1uc1tpXTtcbiAgICB2YXIgYWRkaXRpb25hbFByb3BzID0gY29sdW1uICYmIGNvbHVtbltfbGVnYWN5VXRpbC5JTlRFUk5BTF9DT0xfREVGSU5FXTtcblxuICAgIGlmICh3aWR0aCB8fCBhZGRpdGlvbmFsUHJvcHMgfHwgbXVzdEluc2VydCkge1xuICAgICAgY29scy51bnNoaWZ0KCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImNvbFwiLCAoMCwgX2V4dGVuZHMyLmRlZmF1bHQpKHtcbiAgICAgICAga2V5OiBpLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICBtaW5XaWR0aDogd2lkdGhcbiAgICAgICAgfVxuICAgICAgfSwgYWRkaXRpb25hbFByb3BzKSkpO1xuICAgICAgbXVzdEluc2VydCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiY29sZ3JvdXBcIiwgbnVsbCwgY29scyk7XG59XG5cbnZhciBfZGVmYXVsdCA9IENvbEdyb3VwO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX0NlbGwgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9DZWxsXCIpKTtcblxudmFyIF9UYWJsZUNvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9jb250ZXh0L1RhYmxlQ29udGV4dFwiKSk7XG5cbmZ1bmN0aW9uIEV4cGFuZGVkUm93KF9yZWYpIHtcbiAgdmFyIHByZWZpeENscyA9IF9yZWYucHJlZml4Q2xzLFxuICAgICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgQ29tcG9uZW50ID0gX3JlZi5jb21wb25lbnQsXG4gICAgICBjZWxsQ29tcG9uZW50ID0gX3JlZi5jZWxsQ29tcG9uZW50LFxuICAgICAgZml4SGVhZGVyID0gX3JlZi5maXhIZWFkZXIsXG4gICAgICBmaXhDb2x1bW4gPSBfcmVmLmZpeENvbHVtbixcbiAgICAgIGhvcml6b25TY3JvbGwgPSBfcmVmLmhvcml6b25TY3JvbGwsXG4gICAgICBjbGFzc05hbWUgPSBfcmVmLmNsYXNzTmFtZSxcbiAgICAgIGV4cGFuZGVkID0gX3JlZi5leHBhbmRlZCxcbiAgICAgIGNvbXBvbmVudFdpZHRoID0gX3JlZi5jb21wb25lbnRXaWR0aCxcbiAgICAgIGNvbFNwYW4gPSBfcmVmLmNvbFNwYW47XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChfVGFibGVDb250ZXh0LmRlZmF1bHQpLFxuICAgICAgc2Nyb2xsYmFyU2l6ZSA9IF9SZWFjdCR1c2VDb250ZXh0LnNjcm9sbGJhclNpemU7IC8vIENhY2hlIHJlbmRlciBub2RlXG5cblxuICByZXR1cm4gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNvbnRlbnROb2RlID0gY2hpbGRyZW47XG5cbiAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICBjb250ZW50Tm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICB3aWR0aDogY29tcG9uZW50V2lkdGggLSAoZml4SGVhZGVyID8gc2Nyb2xsYmFyU2l6ZSA6IDApLFxuICAgICAgICAgIHBvc2l0aW9uOiAnc3RpY2t5JyxcbiAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJ1xuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZXhwYW5kZWQtcm93LWZpeGVkXCIpXG4gICAgICB9LCBjb250ZW50Tm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENvbXBvbmVudCwge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICBzdHlsZToge1xuICAgICAgICBkaXNwbGF5OiBleHBhbmRlZCA/IG51bGwgOiAnbm9uZSdcbiAgICAgIH1cbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfQ2VsbC5kZWZhdWx0LCB7XG4gICAgICBjb21wb25lbnQ6IGNlbGxDb21wb25lbnQsXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIGNvbFNwYW46IGNvbFNwYW5cbiAgICB9LCBjb250ZW50Tm9kZSkpO1xuICB9LCBbY2hpbGRyZW4sIENvbXBvbmVudCwgZml4SGVhZGVyLCBob3Jpem9uU2Nyb2xsLCBjbGFzc05hbWUsIGV4cGFuZGVkLCBjb21wb25lbnRXaWR0aCwgY29sU3Bhbiwgc2Nyb2xsYmFyU2l6ZV0pO1xufVxuXG52YXIgX2RlZmF1bHQgPSBFeHBhbmRlZFJvdztcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUmVzaXplQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xudmFyIF9kZWZhdWx0ID0gUmVzaXplQ29udGV4dDtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkXCIpO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuY29udmVydENoaWxkcmVuVG9Db2x1bW5zID0gY29udmVydENoaWxkcmVuVG9Db2x1bW5zO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX3RvQ29uc3VtYWJsZUFycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXlcIikpO1xuXG52YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZDJcIikpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi93YXJuaW5nXCIpKTtcblxudmFyIF90b0FycmF5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvQ2hpbGRyZW4vdG9BcnJheVwiKSk7XG5cbnZhciBfbGVnYWN5VXRpbCA9IHJlcXVpcmUoXCIuLi91dGlscy9sZWdhY3lVdGlsXCIpO1xuXG5mdW5jdGlvbiBjb252ZXJ0Q2hpbGRyZW5Ub0NvbHVtbnMoY2hpbGRyZW4pIHtcbiAgcmV0dXJuICgwLCBfdG9BcnJheS5kZWZhdWx0KShjaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChub2RlKTtcbiAgfSkubWFwKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGtleSA9IF9yZWYua2V5LFxuICAgICAgICBwcm9wcyA9IF9yZWYucHJvcHM7XG4gICAgdmFyIG5vZGVDaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMi5kZWZhdWx0KShwcm9wcywgW1wiY2hpbGRyZW5cIl0pO1xuICAgIHZhciBjb2x1bW4gPSAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe1xuICAgICAga2V5OiBrZXlcbiAgICB9LCByZXN0UHJvcHMpO1xuXG4gICAgaWYgKG5vZGVDaGlsZHJlbikge1xuICAgICAgY29sdW1uLmNoaWxkcmVuID0gY29udmVydENoaWxkcmVuVG9Db2x1bW5zKG5vZGVDaGlsZHJlbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbjtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGZsYXRDb2x1bW5zKGNvbHVtbnMpIHtcbiAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKGZ1bmN0aW9uIChsaXN0LCBjb2x1bW4pIHtcbiAgICB2YXIgZml4ZWQgPSBjb2x1bW4uZml4ZWQ7IC8vIENvbnZlcnQgYGZpeGVkPSd0cnVlJ2AgdG8gYGZpeGVkPSdsZWZ0J2AgaW5zdGVhZFxuXG4gICAgdmFyIHBhcnNlZEZpeGVkID0gZml4ZWQgPT09IHRydWUgPyAnbGVmdCcgOiBmaXhlZDtcbiAgICB2YXIgc3ViQ29sdW1ucyA9IGNvbHVtbi5jaGlsZHJlbjtcblxuICAgIGlmIChzdWJDb2x1bW5zICYmIHN1YkNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIFtdLmNvbmNhdCgoMCwgX3RvQ29uc3VtYWJsZUFycmF5Mi5kZWZhdWx0KShsaXN0KSwgKDAsIF90b0NvbnN1bWFibGVBcnJheTIuZGVmYXVsdCkoZmxhdENvbHVtbnMoc3ViQ29sdW1ucykubWFwKGZ1bmN0aW9uIChzdWJDb2x1bSkge1xuICAgICAgICByZXR1cm4gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHtcbiAgICAgICAgICBmaXhlZDogcGFyc2VkRml4ZWRcbiAgICAgICAgfSwgc3ViQ29sdW0pO1xuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW10uY29uY2F0KCgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKGxpc3QpLCBbKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKCgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgY29sdW1uKSwge30sIHtcbiAgICAgIGZpeGVkOiBwYXJzZWRGaXhlZFxuICAgIH0pXSk7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gd2FybmluZ0ZpeGVkKGZsYXR0ZW5Db2x1bW5zKSB7XG4gIHZhciBhbGxGaXhMZWZ0ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgdmFyIGNvbCA9IGZsYXR0ZW5Db2x1bW5zW2ldO1xuXG4gICAgaWYgKGFsbEZpeExlZnQgJiYgY29sLmZpeGVkICE9PSAnbGVmdCcpIHtcbiAgICAgIGFsbEZpeExlZnQgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKCFhbGxGaXhMZWZ0ICYmIGNvbC5maXhlZCA9PT0gJ2xlZnQnKSB7XG4gICAgICAoMCwgX3dhcm5pbmcuZGVmYXVsdCkoZmFsc2UsIFwiSW5kZXggXCIuY29uY2F0KGkgLSAxLCBcIiBvZiBgY29sdW1uc2AgbWlzc2luZyBgZml4ZWQ9J2xlZnQnYCBwcm9wLlwiKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2YXIgYWxsRml4UmlnaHQgPSB0cnVlO1xuXG4gIGZvciAodmFyIF9pID0gZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMTsgX2kgPj0gMDsgX2kgLT0gMSkge1xuICAgIHZhciBfY29sID0gZmxhdHRlbkNvbHVtbnNbX2ldO1xuXG4gICAgaWYgKGFsbEZpeFJpZ2h0ICYmIF9jb2wuZml4ZWQgIT09ICdyaWdodCcpIHtcbiAgICAgIGFsbEZpeFJpZ2h0ID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghYWxsRml4UmlnaHQgJiYgX2NvbC5maXhlZCA9PT0gJ3JpZ2h0Jykge1xuICAgICAgKDAsIF93YXJuaW5nLmRlZmF1bHQpKGZhbHNlLCBcIkluZGV4IFwiLmNvbmNhdChfaSArIDEsIFwiIG9mIGBjb2x1bW5zYCBtaXNzaW5nIGBmaXhlZD0ncmlnaHQnYCBwcm9wLlwiKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmV2ZXJ0Rm9yUnRsKGNvbHVtbnMpIHtcbiAgcmV0dXJuIGNvbHVtbnMubWFwKGZ1bmN0aW9uIChjb2x1bW4pIHtcbiAgICB2YXIgZml4ZWQgPSBjb2x1bW4uZml4ZWQsXG4gICAgICAgIHJlc3RQcm9wcyA9ICgwLCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyLmRlZmF1bHQpKGNvbHVtbiwgW1wiZml4ZWRcIl0pOyAvLyBDb252ZXJ0IGBmaXhlZD0nbGVmdCdgIHRvIGBmaXhlZD0ncmlnaHQnYCBpbnN0ZWFkXG5cbiAgICB2YXIgcGFyc2VkRml4ZWQgPSBmaXhlZDtcblxuICAgIGlmIChmaXhlZCA9PT0gJ2xlZnQnKSB7XG4gICAgICBwYXJzZWRGaXhlZCA9ICdyaWdodCc7XG4gICAgfSBlbHNlIGlmIChmaXhlZCA9PT0gJ3JpZ2h0Jykge1xuICAgICAgcGFyc2VkRml4ZWQgPSAnbGVmdCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7XG4gICAgICBmaXhlZDogcGFyc2VkRml4ZWRcbiAgICB9LCByZXN0UHJvcHMpO1xuICB9KTtcbn1cbi8qKlxuICogUGFyc2UgYGNvbHVtbnNgICYgYGNoaWxkcmVuYCBpbnRvIGBjb2x1bW5zYC5cbiAqL1xuXG5cbmZ1bmN0aW9uIHVzZUNvbHVtbnMoX3JlZjIsIHRyYW5zZm9ybUNvbHVtbnMpIHtcbiAgdmFyIHByZWZpeENscyA9IF9yZWYyLnByZWZpeENscyxcbiAgICAgIGNvbHVtbnMgPSBfcmVmMi5jb2x1bW5zLFxuICAgICAgY2hpbGRyZW4gPSBfcmVmMi5jaGlsZHJlbixcbiAgICAgIGV4cGFuZGFibGUgPSBfcmVmMi5leHBhbmRhYmxlLFxuICAgICAgZXhwYW5kZWRLZXlzID0gX3JlZjIuZXhwYW5kZWRLZXlzLFxuICAgICAgZ2V0Um93S2V5ID0gX3JlZjIuZ2V0Um93S2V5LFxuICAgICAgb25UcmlnZ2VyRXhwYW5kID0gX3JlZjIub25UcmlnZ2VyRXhwYW5kLFxuICAgICAgZXhwYW5kSWNvbiA9IF9yZWYyLmV4cGFuZEljb24sXG4gICAgICByb3dFeHBhbmRhYmxlID0gX3JlZjIucm93RXhwYW5kYWJsZSxcbiAgICAgIGV4cGFuZEljb25Db2x1bW5JbmRleCA9IF9yZWYyLmV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgIGRpcmVjdGlvbiA9IF9yZWYyLmRpcmVjdGlvbixcbiAgICAgIGV4cGFuZFJvd0J5Q2xpY2sgPSBfcmVmMi5leHBhbmRSb3dCeUNsaWNrLFxuICAgICAgY29sdW1uV2lkdGggPSBfcmVmMi5jb2x1bW5XaWR0aDtcbiAgdmFyIGJhc2VDb2x1bW5zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMgfHwgY29udmVydENoaWxkcmVuVG9Db2x1bW5zKGNoaWxkcmVuKTtcbiAgfSwgW2NvbHVtbnMsIGNoaWxkcmVuXSk7IC8vIEFkZCBleHBhbmQgY29sdW1uXG5cbiAgdmFyIHdpdGhFeHBhbmRDb2x1bW5zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGV4cGFuZGFibGUpIHtcbiAgICAgIHZhciBfZXhwYW5kQ29sdW1uO1xuXG4gICAgICB2YXIgZXhwYW5kQ29sSW5kZXggPSBleHBhbmRJY29uQ29sdW1uSW5kZXggfHwgMDtcbiAgICAgIHZhciBwcmV2Q29sdW1uID0gYmFzZUNvbHVtbnNbZXhwYW5kQ29sSW5kZXhdO1xuICAgICAgdmFyIGV4cGFuZENvbHVtbiA9IChfZXhwYW5kQ29sdW1uID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9leHBhbmRDb2x1bW4sIF9sZWdhY3lVdGlsLklOVEVSTkFMX0NPTF9ERUZJTkUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4cGFuZC1pY29uLWNvbFwiKVxuICAgICAgfSksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9leHBhbmRDb2x1bW4sIFwidGl0bGVcIiwgJycpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfZXhwYW5kQ29sdW1uLCBcImZpeGVkXCIsIHByZXZDb2x1bW4gPyBwcmV2Q29sdW1uLmZpeGVkIDogbnVsbCksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9leHBhbmRDb2x1bW4sIFwiY2xhc3NOYW1lXCIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcm93LWV4cGFuZC1pY29uLWNlbGxcIikpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfZXhwYW5kQ29sdW1uLCBcIndpZHRoXCIsIGNvbHVtbldpZHRoKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2V4cGFuZENvbHVtbiwgXCJyZW5kZXJcIiwgZnVuY3Rpb24gcmVuZGVyKF8sIHJlY29yZCwgaW5kZXgpIHtcbiAgICAgICAgdmFyIHJvd0tleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgdmFyIGV4cGFuZGVkID0gZXhwYW5kZWRLZXlzLmhhcyhyb3dLZXkpO1xuICAgICAgICB2YXIgcmVjb3JkRXhwYW5kYWJsZSA9IHJvd0V4cGFuZGFibGUgPyByb3dFeHBhbmRhYmxlKHJlY29yZCkgOiB0cnVlO1xuICAgICAgICB2YXIgaWNvbiA9IGV4cGFuZEljb24oe1xuICAgICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICAgIGV4cGFuZGVkOiBleHBhbmRlZCxcbiAgICAgICAgICBleHBhbmRhYmxlOiByZWNvcmRFeHBhbmRhYmxlLFxuICAgICAgICAgIHJlY29yZDogcmVjb3JkLFxuICAgICAgICAgIG9uRXhwYW5kOiBvblRyaWdnZXJFeHBhbmRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGV4cGFuZFJvd0J5Q2xpY2spIHtcbiAgICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgICByZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBpY29uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpY29uO1xuICAgICAgfSksIF9leHBhbmRDb2x1bW4pOyAvLyBJbnNlcnQgZXhwYW5kIGNvbHVtbiBpbiB0aGUgdGFyZ2V0IHBvc2l0aW9uXG5cbiAgICAgIHZhciBjbG9uZUNvbHVtbnMgPSBiYXNlQ29sdW1ucy5zbGljZSgpO1xuXG4gICAgICBpZiAoZXhwYW5kQ29sSW5kZXggPj0gMCkge1xuICAgICAgICBjbG9uZUNvbHVtbnMuc3BsaWNlKGV4cGFuZENvbEluZGV4LCAwLCBleHBhbmRDb2x1bW4pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2xvbmVDb2x1bW5zO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlQ29sdW1ucztcbiAgfSwgW2V4cGFuZGFibGUsIGJhc2VDb2x1bW5zLCBnZXRSb3dLZXksIGV4cGFuZGVkS2V5cywgZXhwYW5kSWNvbiwgZGlyZWN0aW9uXSk7XG4gIHZhciBtZXJnZWRDb2x1bW5zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGZpbmFsQ29sdW1ucyA9IHdpdGhFeHBhbmRDb2x1bW5zO1xuXG4gICAgaWYgKHRyYW5zZm9ybUNvbHVtbnMpIHtcbiAgICAgIGZpbmFsQ29sdW1ucyA9IHRyYW5zZm9ybUNvbHVtbnMoZmluYWxDb2x1bW5zKTtcbiAgICB9IC8vIEFsd2F5cyBwcm92aWRlcyBhdCBsZWFzdCBvbmUgY29sdW1uIGZvciB0YWJsZSBkaXNwbGF5XG5cblxuICAgIGlmICghZmluYWxDb2x1bW5zLmxlbmd0aCkge1xuICAgICAgZmluYWxDb2x1bW5zID0gW3tcbiAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1dO1xuICAgIH1cblxuICAgIHJldHVybiBmaW5hbENvbHVtbnM7XG4gIH0sIFt0cmFuc2Zvcm1Db2x1bW5zLCB3aXRoRXhwYW5kQ29sdW1ucywgZGlyZWN0aW9uXSk7XG4gIHZhciBmbGF0dGVuQ29sdW1ucyA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgICByZXR1cm4gcmV2ZXJ0Rm9yUnRsKGZsYXRDb2x1bW5zKG1lcmdlZENvbHVtbnMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmxhdENvbHVtbnMobWVyZ2VkQ29sdW1ucyk7XG4gIH0sIFttZXJnZWRDb2x1bW5zLCBkaXJlY3Rpb25dKTsgLy8gT25seSBjaGVjayBvdXQgb2YgcHJvZHVjdGlvbiBzaW5jZSBpdCdzIHdhc3RlIGZvciBlYWNoIHJlbmRlclxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybmluZ0ZpeGVkKGZsYXR0ZW5Db2x1bW5zKTtcbiAgfVxuXG4gIHJldHVybiBbbWVyZ2VkQ29sdW1ucywgZmxhdHRlbkNvbHVtbnNdO1xufVxuXG52YXIgX2RlZmF1bHQgPSB1c2VDb2x1bW5zO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy51c2VMYXlvdXRTdGF0ZSA9IHVzZUxheW91dFN0YXRlO1xuZXhwb3J0cy51c2VUaW1lb3V0TG9jayA9IHVzZVRpbWVvdXRMb2NrO1xuXG52YXIgX3NsaWNlZFRvQXJyYXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5XCIpKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxuLyoqXG4gKiBFeGVjdXRlIGNvZGUgYmVmb3JlIG5leHQgZnJhbWUgYnV0IGFzeW5jXG4gKi9cbmZ1bmN0aW9uIHVzZUxheW91dFN0YXRlKGRlZmF1bHRTdGF0ZSkge1xuICB2YXIgc3RhdGVSZWYgPSAoMCwgX3JlYWN0LnVzZVJlZikoZGVmYXVsdFN0YXRlKTtcblxuICB2YXIgX3VzZVN0YXRlID0gKDAsIF9yZWFjdC51c2VTdGF0ZSkoe30pLFxuICAgICAgX3VzZVN0YXRlMiA9ICgwLCBfc2xpY2VkVG9BcnJheTIuZGVmYXVsdCkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIGZvcmNlVXBkYXRlID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgbGFzdFByb21pc2VSZWYgPSAoMCwgX3JlYWN0LnVzZVJlZikobnVsbCk7XG4gIHZhciB1cGRhdGVCYXRjaFJlZiA9ICgwLCBfcmVhY3QudXNlUmVmKShbXSk7XG5cbiAgZnVuY3Rpb24gc2V0RnJhbWVTdGF0ZSh1cGRhdGVyKSB7XG4gICAgdXBkYXRlQmF0Y2hSZWYuY3VycmVudC5wdXNoKHVwZGF0ZXIpO1xuICAgIHZhciBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgbGFzdFByb21pc2VSZWYuY3VycmVudCA9IHByb21pc2U7XG4gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChsYXN0UHJvbWlzZVJlZi5jdXJyZW50ID09PSBwcm9taXNlKSB7XG4gICAgICAgIHZhciBwcmV2QmF0Y2ggPSB1cGRhdGVCYXRjaFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgcHJldlN0YXRlID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgICAgdXBkYXRlQmF0Y2hSZWYuY3VycmVudCA9IFtdO1xuICAgICAgICBwcmV2QmF0Y2guZm9yRWFjaChmdW5jdGlvbiAoYmF0Y2hVcGRhdGVyKSB7XG4gICAgICAgICAgc3RhdGVSZWYuY3VycmVudCA9IGJhdGNoVXBkYXRlcihzdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxhc3RQcm9taXNlUmVmLmN1cnJlbnQgPSBudWxsO1xuXG4gICAgICAgIGlmIChwcmV2U3RhdGUgIT09IHN0YXRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSh7fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gICgwLCBfcmVhY3QudXNlRWZmZWN0KShmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxhc3RQcm9taXNlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIFtzdGF0ZVJlZi5jdXJyZW50LCBzZXRGcmFtZVN0YXRlXTtcbn1cbi8qKiBMb2NrIGZyYW1lLCB3aGVuIGZyYW1lIHBhc3MgcmVzZXQgdGhlIGxvY2suICovXG5cblxuZnVuY3Rpb24gdXNlVGltZW91dExvY2soZGVmYXVsdFN0YXRlKSB7XG4gIHZhciBmcmFtZVJlZiA9ICgwLCBfcmVhY3QudXNlUmVmKShkZWZhdWx0U3RhdGUgfHwgbnVsbCk7XG4gIHZhciB0aW1lb3V0UmVmID0gKDAsIF9yZWFjdC51c2VSZWYpKCk7XG5cbiAgZnVuY3Rpb24gY2xlYW5VcCgpIHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRSZWYuY3VycmVudCk7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIGZyYW1lUmVmLmN1cnJlbnQgPSBuZXdTdGF0ZTtcbiAgICBjbGVhblVwKCk7XG4gICAgdGltZW91dFJlZi5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgZnJhbWVSZWYuY3VycmVudCA9IG51bGw7XG4gICAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBmcmFtZVJlZi5jdXJyZW50O1xuICB9XG5cbiAgKDAsIF9yZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2xlYW5VcDtcbiAgfSwgW10pO1xuICByZXR1cm4gW3NldFN0YXRlLCBnZXRTdGF0ZV07XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBjYW5Vc2VEb207XG5cbmZ1bmN0aW9uIGNhblVzZURvbSgpIHtcbiAgcmV0dXJuICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG59IiwiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxubW9kdWxlLmV4cG9ydHMgPSBmcmVlR2xvYmFsO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG52YXIgX2RlZmF1bHQgPSB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdlJyxcbiAganVtcF90bzogJ0dvIHRvJyxcbiAganVtcF90b19jb25maXJtOiAnY29uZmlybScsXG4gIHBhZ2U6ICcnLFxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQcmV2aW91cyBQYWdlJyxcbiAgbmV4dF9wYWdlOiAnTmV4dCBQYWdlJyxcbiAgcHJldl81OiAnUHJldmlvdXMgNSBQYWdlcycsXG4gIG5leHRfNTogJ05leHQgNSBQYWdlcycsXG4gIHByZXZfMzogJ1ByZXZpb3VzIDMgUGFnZXMnLFxuICBuZXh0XzM6ICdOZXh0IDMgUGFnZXMnXG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2VuX1VTID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtcGlja2VyL2xpYi9sb2NhbGUvZW5fVVNcIikpO1xuXG52YXIgX2VuX1VTMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uLy4uL3RpbWUtcGlja2VyL2xvY2FsZS9lbl9VU1wiKSk7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG52YXIgbG9jYWxlID0ge1xuICBsYW5nOiAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe1xuICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGRhdGUnLFxuICAgIHllYXJQbGFjZWhvbGRlcjogJ1NlbGVjdCB5ZWFyJyxcbiAgICBxdWFydGVyUGxhY2Vob2xkZXI6ICdTZWxlY3QgcXVhcnRlcicsXG4gICAgbW9udGhQbGFjZWhvbGRlcjogJ1NlbGVjdCBtb250aCcsXG4gICAgd2Vla1BsYWNlaG9sZGVyOiAnU2VsZWN0IHdlZWsnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnU3RhcnQgZGF0ZScsICdFbmQgZGF0ZSddLFxuICAgIHJhbmdlWWVhclBsYWNlaG9sZGVyOiBbJ1N0YXJ0IHllYXInLCAnRW5kIHllYXInXSxcbiAgICByYW5nZU1vbnRoUGxhY2Vob2xkZXI6IFsnU3RhcnQgbW9udGgnLCAnRW5kIG1vbnRoJ10sXG4gICAgcmFuZ2VXZWVrUGxhY2Vob2xkZXI6IFsnU3RhcnQgd2VlaycsICdFbmQgd2VlayddXG4gIH0sIF9lbl9VU1tcImRlZmF1bHRcIl0pLFxuICB0aW1lUGlja2VyTG9jYWxlOiAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIF9lbl9VUzJbXCJkZWZhdWx0XCJdKVxufTsgLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxudmFyIF9kZWZhdWx0ID0gbG9jYWxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xudmFyIGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgdGltZScsXG4gIHJhbmdlUGxhY2Vob2xkZXI6IFsnU3RhcnQgdGltZScsICdFbmQgdGltZSddXG59O1xudmFyIF9kZWZhdWx0ID0gbG9jYWxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuXG52YXIgTG9jYWxlQ29udGV4dCA9IC8qI19fUFVSRV9fKi8oMCwgX3JlYWN0LmNyZWF0ZUNvbnRleHQpKHVuZGVmaW5lZCk7XG52YXIgX2RlZmF1bHQgPSBMb2NhbGVDb250ZXh0O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbnZhciBfdHlwZW9mID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfTG9jYWxlUmVjZWl2ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXJcIikpO1xuXG52YXIgX2VtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9lbXB0eVwiKSk7XG5cbnZhciBfc2ltcGxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zaW1wbGVcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgZGVmYXVsdEVtcHR5SW1nID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2VtcHR5W1wiZGVmYXVsdFwiXSwgbnVsbCk7XG52YXIgc2ltcGxlRW1wdHlJbWcgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfc2ltcGxlW1wiZGVmYXVsdFwiXSwgbnVsbCk7XG5cbnZhciBFbXB0eSA9IGZ1bmN0aW9uIEVtcHR5KF9hKSB7XG4gIHZhciBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICBfYSRpbWFnZSA9IF9hLmltYWdlLFxuICAgICAgaW1hZ2UgPSBfYSRpbWFnZSA9PT0gdm9pZCAwID8gZGVmYXVsdEVtcHR5SW1nIDogX2EkaW1hZ2UsXG4gICAgICBkZXNjcmlwdGlvbiA9IF9hLmRlc2NyaXB0aW9uLFxuICAgICAgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbixcbiAgICAgIGltYWdlU3R5bGUgPSBfYS5pbWFnZVN0eWxlLFxuICAgICAgcmVzdFByb3BzID0gX19yZXN0KF9hLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJpbWFnZVwiLCBcImRlc2NyaXB0aW9uXCIsIFwiY2hpbGRyZW5cIiwgXCJpbWFnZVN0eWxlXCJdKTtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KF9jb25maWdQcm92aWRlci5Db25maWdDb250ZXh0KSxcbiAgICAgIGdldFByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0xvY2FsZVJlY2VpdmVyW1wiZGVmYXVsdFwiXSwge1xuICAgIGNvbXBvbmVudE5hbWU6IFwiRW1wdHlcIlxuICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgdmFyIF9jbGFzc05hbWVzO1xuXG4gICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnZW1wdHknLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgIHZhciBkZXMgPSB0eXBlb2YgZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnID8gZGVzY3JpcHRpb24gOiBsb2NhbGUuZGVzY3JpcHRpb247XG4gICAgdmFyIGFsdCA9IHR5cGVvZiBkZXMgPT09ICdzdHJpbmcnID8gZGVzIDogJ2VtcHR5JztcbiAgICB2YXIgaW1hZ2VOb2RlID0gbnVsbDtcblxuICAgIGlmICh0eXBlb2YgaW1hZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpbWFnZU5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7XG4gICAgICAgIGFsdDogYWx0LFxuICAgICAgICBzcmM6IGltYWdlXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW1hZ2VOb2RlID0gaW1hZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7XG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbm9ybWFsXCIpLCBpbWFnZSA9PT0gc2ltcGxlRW1wdHlJbWcpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJyksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKVxuICAgIH0sIHJlc3RQcm9wcyksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbWFnZVwiKSxcbiAgICAgIHN0eWxlOiBpbWFnZVN0eWxlXG4gICAgfSwgaW1hZ2VOb2RlKSwgZGVzICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kZXNjcmlwdGlvblwiKVxuICAgIH0sIGRlcyksIGNoaWxkcmVuICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1mb290ZXJcIilcbiAgICB9LCBjaGlsZHJlbikpO1xuICB9KTtcbn07XG5cbkVtcHR5LlBSRVNFTlRFRF9JTUFHRV9ERUZBVUxUID0gZGVmYXVsdEVtcHR5SW1nO1xuRW1wdHkuUFJFU0VOVEVEX0lNQUdFX1NJTVBMRSA9IHNpbXBsZUVtcHR5SW1nO1xudmFyIF9kZWZhdWx0ID0gRW1wdHk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldEtleVRoZW5JbmNyZWFzZUtleSA9IGdldEtleVRoZW5JbmNyZWFzZUtleTtcbmV4cG9ydHMuYXR0YWNoVHlwZUFwaSA9IGF0dGFjaFR5cGVBcGk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuZ2V0SW5zdGFuY2UgPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9yY05vdGlmaWNhdGlvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLW5vdGlmaWNhdGlvblwiKSk7XG5cbnZhciBfTG9hZGluZ091dGxpbmVkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vaWNvbnMvTG9hZGluZ091dGxpbmVkXCIpKTtcblxudmFyIF9FeGNsYW1hdGlvbkNpcmNsZUZpbGxlZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zL0V4Y2xhbWF0aW9uQ2lyY2xlRmlsbGVkXCIpKTtcblxudmFyIF9DbG9zZUNpcmNsZUZpbGxlZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zL0Nsb3NlQ2lyY2xlRmlsbGVkXCIpKTtcblxudmFyIF9DaGVja0NpcmNsZUZpbGxlZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2ljb25zL0NoZWNrQ2lyY2xlRmlsbGVkXCIpKTtcblxudmFyIF9JbmZvQ2lyY2xlRmlsbGVkID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGFudC1kZXNpZ24vaWNvbnMvSW5mb0NpcmNsZUZpbGxlZFwiKSk7XG5cbnZhciBfdXNlTWVzc2FnZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vaG9va3MvdXNlTWVzc2FnZVwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBtZXNzYWdlSW5zdGFuY2U7XG52YXIgZGVmYXVsdER1cmF0aW9uID0gMztcbnZhciBkZWZhdWx0VG9wO1xudmFyIGtleSA9IDE7XG52YXIgbG9jYWxQcmVmaXhDbHMgPSAnJztcbnZhciB0cmFuc2l0aW9uTmFtZSA9ICdtb3ZlLXVwJztcbnZhciBoYXNUcmFuc2l0aW9uTmFtZSA9IGZhbHNlO1xudmFyIGdldENvbnRhaW5lcjtcbnZhciBtYXhDb3VudDtcbnZhciBydGwgPSBmYWxzZTtcblxuZnVuY3Rpb24gZ2V0S2V5VGhlbkluY3JlYXNlS2V5KCkge1xuICByZXR1cm4ga2V5Kys7XG59XG5cbmZ1bmN0aW9uIHNldE1lc3NhZ2VDb25maWcob3B0aW9ucykge1xuICBpZiAob3B0aW9ucy50b3AgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlZmF1bHRUb3AgPSBvcHRpb25zLnRvcDtcbiAgICBtZXNzYWdlSW5zdGFuY2UgPSBudWxsOyAvLyBkZWxldGUgbWVzc2FnZUluc3RhbmNlIGZvciBuZXcgZGVmYXVsdFRvcFxuICB9XG5cbiAgaWYgKG9wdGlvbnMuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGRlZmF1bHREdXJhdGlvbiA9IG9wdGlvbnMuZHVyYXRpb247XG4gIH1cblxuICBpZiAob3B0aW9ucy5wcmVmaXhDbHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGxvY2FsUHJlZml4Q2xzID0gb3B0aW9ucy5wcmVmaXhDbHM7XG4gIH1cblxuICBpZiAob3B0aW9ucy5nZXRDb250YWluZXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGdldENvbnRhaW5lciA9IG9wdGlvbnMuZ2V0Q29udGFpbmVyO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMudHJhbnNpdGlvbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHRyYW5zaXRpb25OYW1lID0gb3B0aW9ucy50cmFuc2l0aW9uTmFtZTtcbiAgICBtZXNzYWdlSW5zdGFuY2UgPSBudWxsOyAvLyBkZWxldGUgbWVzc2FnZUluc3RhbmNlIGZvciBuZXcgdHJhbnNpdGlvbk5hbWVcblxuICAgIGhhc1RyYW5zaXRpb25OYW1lID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLm1heENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBtYXhDb3VudCA9IG9wdGlvbnMubWF4Q291bnQ7XG4gICAgbWVzc2FnZUluc3RhbmNlID0gbnVsbDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnJ0bCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcnRsID0gb3B0aW9ucy5ydGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UkNOb3RpZmljYXRpb25JbnN0YW5jZShhcmdzLCBjYWxsYmFjaykge1xuICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gYXJncy5wcmVmaXhDbHM7XG5cbiAgdmFyIF9nbG9iYWxDb25maWcgPSAoMCwgX2NvbmZpZ1Byb3ZpZGVyLmdsb2JhbENvbmZpZykoKSxcbiAgICAgIGdldFByZWZpeENscyA9IF9nbG9iYWxDb25maWcuZ2V0UHJlZml4Q2xzLFxuICAgICAgZ2V0Um9vdFByZWZpeENscyA9IF9nbG9iYWxDb25maWcuZ2V0Um9vdFByZWZpeENscztcblxuICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdtZXNzYWdlJywgY3VzdG9taXplUHJlZml4Q2xzIHx8IGxvY2FsUHJlZml4Q2xzKTtcbiAgdmFyIHJvb3RQcmVmaXhDbHMgPSBnZXRSb290UHJlZml4Q2xzKGFyZ3Mucm9vdFByZWZpeENscywgcHJlZml4Q2xzKTtcblxuICBpZiAobWVzc2FnZUluc3RhbmNlKSB7XG4gICAgY2FsbGJhY2soe1xuICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICByb290UHJlZml4Q2xzOiByb290UHJlZml4Q2xzLFxuICAgICAgaW5zdGFuY2U6IG1lc3NhZ2VJbnN0YW5jZVxuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBpbnN0YW5jZUNvbmZpZyA9IHtcbiAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICB0cmFuc2l0aW9uTmFtZTogaGFzVHJhbnNpdGlvbk5hbWUgPyB0cmFuc2l0aW9uTmFtZSA6IFwiXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHJhbnNpdGlvbk5hbWUpLFxuICAgIHN0eWxlOiB7XG4gICAgICB0b3A6IGRlZmF1bHRUb3BcbiAgICB9LFxuICAgIGdldENvbnRhaW5lcjogZ2V0Q29udGFpbmVyLFxuICAgIG1heENvdW50OiBtYXhDb3VudFxuICB9O1xuXG4gIF9yY05vdGlmaWNhdGlvbltcImRlZmF1bHRcIl0ubmV3SW5zdGFuY2UoaW5zdGFuY2VDb25maWcsIGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICAgIGlmIChtZXNzYWdlSW5zdGFuY2UpIHtcbiAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIHJvb3RQcmVmaXhDbHM6IHJvb3RQcmVmaXhDbHMsXG4gICAgICAgIGluc3RhbmNlOiBtZXNzYWdlSW5zdGFuY2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lc3NhZ2VJbnN0YW5jZSA9IGluc3RhbmNlO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcpIHtcbiAgICAgIG1lc3NhZ2VJbnN0YW5jZS5jb25maWcgPSBpbnN0YW5jZUNvbmZpZztcbiAgICB9XG5cbiAgICBjYWxsYmFjayh7XG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIHJvb3RQcmVmaXhDbHM6IHJvb3RQcmVmaXhDbHMsXG4gICAgICBpbnN0YW5jZTogaW5zdGFuY2VcbiAgICB9KTtcbiAgfSk7XG59XG5cbnZhciB0eXBlVG9JY29uID0ge1xuICBpbmZvOiBfSW5mb0NpcmNsZUZpbGxlZFtcImRlZmF1bHRcIl0sXG4gIHN1Y2Nlc3M6IF9DaGVja0NpcmNsZUZpbGxlZFtcImRlZmF1bHRcIl0sXG4gIGVycm9yOiBfQ2xvc2VDaXJjbGVGaWxsZWRbXCJkZWZhdWx0XCJdLFxuICB3YXJuaW5nOiBfRXhjbGFtYXRpb25DaXJjbGVGaWxsZWRbXCJkZWZhdWx0XCJdLFxuICBsb2FkaW5nOiBfTG9hZGluZ091dGxpbmVkW1wiZGVmYXVsdFwiXVxufTtcblxuZnVuY3Rpb24gZ2V0UkNOb3RpY2VQcm9wcyhhcmdzLCBwcmVmaXhDbHMpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBkdXJhdGlvbiA9IGFyZ3MuZHVyYXRpb24gIT09IHVuZGVmaW5lZCA/IGFyZ3MuZHVyYXRpb24gOiBkZWZhdWx0RHVyYXRpb247XG4gIHZhciBJY29uQ29tcG9uZW50ID0gdHlwZVRvSWNvblthcmdzLnR5cGVdO1xuICB2YXIgbWVzc2FnZUNsYXNzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jdXN0b20tY29udGVudFwiKSwgKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChhcmdzLnR5cGUpLCBhcmdzLnR5cGUpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgcnRsID09PSB0cnVlKSwgX2NsYXNzTmFtZXMpKTtcbiAgcmV0dXJuIHtcbiAgICBrZXk6IGFyZ3Mua2V5LFxuICAgIGR1cmF0aW9uOiBkdXJhdGlvbixcbiAgICBzdHlsZTogYXJncy5zdHlsZSB8fCB7fSxcbiAgICBjbGFzc05hbWU6IGFyZ3MuY2xhc3NOYW1lLFxuICAgIGNvbnRlbnQ6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogbWVzc2FnZUNsYXNzXG4gICAgfSwgYXJncy5pY29uIHx8IEljb25Db21wb25lbnQgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSWNvbkNvbXBvbmVudCwgbnVsbCksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBhcmdzLmNvbnRlbnQpKSxcbiAgICBvbkNsb3NlOiBhcmdzLm9uQ2xvc2UsXG4gICAgb25DbGljazogYXJncy5vbkNsaWNrXG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vdGljZShhcmdzKSB7XG4gIHZhciB0YXJnZXQgPSBhcmdzLmtleSB8fCBrZXkrKztcbiAgdmFyIGNsb3NlUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24gY2FsbGJhY2soKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3Mub25DbG9zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBhcmdzLm9uQ2xvc2UoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUodHJ1ZSk7XG4gICAgfTtcblxuICAgIGdldFJDTm90aWZpY2F0aW9uSW5zdGFuY2UoYXJncywgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBfcmVmLnByZWZpeENscyxcbiAgICAgICAgICBpbnN0YW5jZSA9IF9yZWYuaW5zdGFuY2U7XG4gICAgICBpbnN0YW5jZS5ub3RpY2UoZ2V0UkNOb3RpY2VQcm9wcygoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCBhcmdzKSwge1xuICAgICAgICBrZXk6IHRhcmdldCxcbiAgICAgICAgb25DbG9zZTogY2FsbGJhY2tcbiAgICAgIH0pLCBwcmVmaXhDbHMpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmFyIHJlc3VsdCA9IGZ1bmN0aW9uIHJlc3VsdCgpIHtcbiAgICBpZiAobWVzc2FnZUluc3RhbmNlKSB7XG4gICAgICBtZXNzYWdlSW5zdGFuY2UucmVtb3ZlTm90aWNlKHRhcmdldCk7XG4gICAgfVxuICB9O1xuXG4gIHJlc3VsdC50aGVuID0gZnVuY3Rpb24gKGZpbGxlZCwgcmVqZWN0ZWQpIHtcbiAgICByZXR1cm4gY2xvc2VQcm9taXNlLnRoZW4oZmlsbGVkLCByZWplY3RlZCk7XG4gIH07XG5cbiAgcmVzdWx0LnByb21pc2UgPSBjbG9zZVByb21pc2U7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzQXJnc1Byb3BzKGNvbnRlbnQpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChjb250ZW50KSA9PT0gJ1tvYmplY3QgT2JqZWN0XScgJiYgISFjb250ZW50LmNvbnRlbnQ7XG59XG5cbnZhciBhcGkgPSB7XG4gIG9wZW46IG5vdGljZSxcbiAgY29uZmlnOiBzZXRNZXNzYWdlQ29uZmlnLFxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KG1lc3NhZ2VLZXkpIHtcbiAgICBpZiAobWVzc2FnZUluc3RhbmNlKSB7XG4gICAgICBpZiAobWVzc2FnZUtleSkge1xuICAgICAgICB2YXIgX21lc3NhZ2VJbnN0YW5jZSA9IG1lc3NhZ2VJbnN0YW5jZSxcbiAgICAgICAgICAgIHJlbW92ZU5vdGljZSA9IF9tZXNzYWdlSW5zdGFuY2UucmVtb3ZlTm90aWNlO1xuICAgICAgICByZW1vdmVOb3RpY2UobWVzc2FnZUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX21lc3NhZ2VJbnN0YW5jZTIgPSBtZXNzYWdlSW5zdGFuY2UsXG4gICAgICAgICAgICBkZXN0cm95ID0gX21lc3NhZ2VJbnN0YW5jZTIuZGVzdHJveTtcbiAgICAgICAgZGVzdHJveSgpO1xuICAgICAgICBtZXNzYWdlSW5zdGFuY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gYXR0YWNoVHlwZUFwaShvcmlnaW5hbEFwaSwgdHlwZSkge1xuICBvcmlnaW5hbEFwaVt0eXBlXSA9IGZ1bmN0aW9uIChjb250ZW50LCBkdXJhdGlvbiwgb25DbG9zZSkge1xuICAgIGlmIChpc0FyZ3NQcm9wcyhjb250ZW50KSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsQXBpLm9wZW4oKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKCgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgY29udGVudCksIHtcbiAgICAgICAgdHlwZTogdHlwZVxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZHVyYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG9uQ2xvc2UgPSBkdXJhdGlvbjtcbiAgICAgIGR1cmF0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBvcmlnaW5hbEFwaS5vcGVuKHtcbiAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICB0eXBlOiB0eXBlLFxuICAgICAgb25DbG9zZTogb25DbG9zZVxuICAgIH0pO1xuICB9O1xufVxuXG5bJ3N1Y2Nlc3MnLCAnaW5mbycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ2xvYWRpbmcnXS5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gIHJldHVybiBhdHRhY2hUeXBlQXBpKGFwaSwgdHlwZSk7XG59KTtcbmFwaS53YXJuID0gYXBpLndhcm5pbmc7XG5hcGkudXNlTWVzc2FnZSA9ICgwLCBfdXNlTWVzc2FnZVtcImRlZmF1bHRcIl0pKGdldFJDTm90aWZpY2F0aW9uSW5zdGFuY2UsIGdldFJDTm90aWNlUHJvcHMpO1xuLyoqIEBwcml2YXRlIHRlc3QgT25seSBmdW5jdGlvbi4gTm90IHdvcmsgb24gcHJvZHVjdGlvbiAqL1xuXG52YXIgZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpIHtcbiAgcmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcgPyBtZXNzYWdlSW5zdGFuY2UgOiBudWxsO1xufTtcblxuZXhwb3J0cy5nZXRJbnN0YW5jZSA9IGdldEluc3RhbmNlO1xudmFyIF9kZWZhdWx0ID0gYXBpO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKSk7XG5cbnZhciBfb2JqZWN0U3ByZWFkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkMlwiKSk7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5cbnZhciB0d29Ub25lQ29sb3JQYWxldHRlID0ge1xuICBwcmltYXJ5Q29sb3I6ICcjMzMzJyxcbiAgc2Vjb25kYXJ5Q29sb3I6ICcjRTZFNkU2JyxcbiAgY2FsY3VsYXRlZDogZmFsc2Vcbn07XG5cbmZ1bmN0aW9uIHNldFR3b1RvbmVDb2xvcnMoX3JlZikge1xuICB2YXIgcHJpbWFyeUNvbG9yID0gX3JlZi5wcmltYXJ5Q29sb3IsXG4gICAgICBzZWNvbmRhcnlDb2xvciA9IF9yZWYuc2Vjb25kYXJ5Q29sb3I7XG4gIHR3b1RvbmVDb2xvclBhbGV0dGUucHJpbWFyeUNvbG9yID0gcHJpbWFyeUNvbG9yO1xuICB0d29Ub25lQ29sb3JQYWxldHRlLnNlY29uZGFyeUNvbG9yID0gc2Vjb25kYXJ5Q29sb3IgfHwgKDAsIF91dGlscy5nZXRTZWNvbmRhcnlDb2xvcikocHJpbWFyeUNvbG9yKTtcbiAgdHdvVG9uZUNvbG9yUGFsZXR0ZS5jYWxjdWxhdGVkID0gISFzZWNvbmRhcnlDb2xvcjtcbn1cblxuZnVuY3Rpb24gZ2V0VHdvVG9uZUNvbG9ycygpIHtcbiAgcmV0dXJuICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgdHdvVG9uZUNvbG9yUGFsZXR0ZSk7XG59XG5cbnZhciBJY29uQmFzZSA9IGZ1bmN0aW9uIEljb25CYXNlKHByb3BzKSB7XG4gIHZhciBpY29uID0gcHJvcHMuaWNvbixcbiAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIG9uQ2xpY2sgPSBwcm9wcy5vbkNsaWNrLFxuICAgICAgc3R5bGUgPSBwcm9wcy5zdHlsZSxcbiAgICAgIHByaW1hcnlDb2xvciA9IHByb3BzLnByaW1hcnlDb2xvcixcbiAgICAgIHNlY29uZGFyeUNvbG9yID0gcHJvcHMuc2Vjb25kYXJ5Q29sb3IsXG4gICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMi5kZWZhdWx0KShwcm9wcywgW1wiaWNvblwiLCBcImNsYXNzTmFtZVwiLCBcIm9uQ2xpY2tcIiwgXCJzdHlsZVwiLCBcInByaW1hcnlDb2xvclwiLCBcInNlY29uZGFyeUNvbG9yXCJdKTtcbiAgdmFyIGNvbG9ycyA9IHR3b1RvbmVDb2xvclBhbGV0dGU7XG5cbiAgaWYgKHByaW1hcnlDb2xvcikge1xuICAgIGNvbG9ycyA9IHtcbiAgICAgIHByaW1hcnlDb2xvcjogcHJpbWFyeUNvbG9yLFxuICAgICAgc2Vjb25kYXJ5Q29sb3I6IHNlY29uZGFyeUNvbG9yIHx8ICgwLCBfdXRpbHMuZ2V0U2Vjb25kYXJ5Q29sb3IpKHByaW1hcnlDb2xvcilcbiAgICB9O1xuICB9XG5cbiAgKDAsIF91dGlscy51c2VJbnNlcnRTdHlsZXMpKCk7XG4gICgwLCBfdXRpbHMud2FybmluZykoKDAsIF91dGlscy5pc0ljb25EZWZpbml0aW9uKShpY29uKSwgXCJpY29uIHNob3VsZCBiZSBpY29uIGRlZmluaXRvbiwgYnV0IGdvdCBcIi5jb25jYXQoaWNvbikpO1xuXG4gIGlmICghKDAsIF91dGlscy5pc0ljb25EZWZpbml0aW9uKShpY29uKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIHRhcmdldCA9IGljb247XG5cbiAgaWYgKHRhcmdldCAmJiB0eXBlb2YgdGFyZ2V0Lmljb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICB0YXJnZXQgPSAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHt9LCB0YXJnZXQpLCB7fSwge1xuICAgICAgaWNvbjogdGFyZ2V0Lmljb24oY29sb3JzLnByaW1hcnlDb2xvciwgY29sb3JzLnNlY29uZGFyeUNvbG9yKVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuICgwLCBfdXRpbHMuZ2VuZXJhdGUpKHRhcmdldC5pY29uLCBcInN2Zy1cIi5jb25jYXQodGFyZ2V0Lm5hbWUpLCAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe1xuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgc3R5bGU6IHN0eWxlLFxuICAgICdkYXRhLWljb24nOiB0YXJnZXQubmFtZSxcbiAgICB3aWR0aDogJzFlbScsXG4gICAgaGVpZ2h0OiAnMWVtJyxcbiAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAnYXJpYS1oaWRkZW4nOiAndHJ1ZSdcbiAgfSwgcmVzdFByb3BzKSk7XG59O1xuXG5JY29uQmFzZS5kaXNwbGF5TmFtZSA9ICdJY29uUmVhY3QnO1xuSWNvbkJhc2UuZ2V0VHdvVG9uZUNvbG9ycyA9IGdldFR3b1RvbmVDb2xvcnM7XG5JY29uQmFzZS5zZXRUd29Ub25lQ29sb3JzID0gc2V0VHdvVG9uZUNvbG9ycztcbnZhciBfZGVmYXVsdCA9IEljb25CYXNlO1xuZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5pbmplY3RDU1MgPSBpbmplY3RDU1M7XG5leHBvcnRzLnVwZGF0ZUNTUyA9IHVwZGF0ZUNTUztcblxudmFyIF9jYW5Vc2VEb20gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NhblVzZURvbVwiKSk7XG5cbnZhciBNQVJLX0tFWSA9IFwicmMtdXRpbC1rZXlcIjtcblxuZnVuY3Rpb24gZ2V0Q29udGFpbmVyKG9wdGlvbikge1xuICBpZiAob3B0aW9uLmF0dGFjaFRvKSB7XG4gICAgcmV0dXJuIG9wdGlvbi5hdHRhY2hUbztcbiAgfVxuXG4gIHZhciBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpO1xuICByZXR1cm4gaGVhZCB8fCBkb2N1bWVudC5ib2R5O1xufVxuXG5mdW5jdGlvbiBpbmplY3RDU1MoY3NzKSB7XG4gIHZhciBfb3B0aW9uJGNzcDtcblxuICB2YXIgb3B0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcblxuICBpZiAoISgwLCBfY2FuVXNlRG9tLmRlZmF1bHQpKCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gIGlmICgoX29wdGlvbiRjc3AgPSBvcHRpb24uY3NwKSA9PT0gbnVsbCB8fCBfb3B0aW9uJGNzcCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbiRjc3Aubm9uY2UpIHtcbiAgICB2YXIgX29wdGlvbiRjc3AyO1xuXG4gICAgc3R5bGVOb2RlLm5vbmNlID0gKF9vcHRpb24kY3NwMiA9IG9wdGlvbi5jc3ApID09PSBudWxsIHx8IF9vcHRpb24kY3NwMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbiRjc3AyLm5vbmNlO1xuICB9XG5cbiAgc3R5bGVOb2RlLmlubmVySFRNTCA9IGNzcztcbiAgdmFyIGNvbnRhaW5lciA9IGdldENvbnRhaW5lcihvcHRpb24pO1xuICB2YXIgZmlyc3RDaGlsZCA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuXG4gIGlmIChvcHRpb24ucHJlcGVuZCAmJiBjb250YWluZXIucHJlcGVuZCkge1xuICAgIC8vIFVzZSBgcHJlcGVuZGAgZmlyc3RcbiAgICBjb250YWluZXIucHJlcGVuZChzdHlsZU5vZGUpO1xuICB9IGVsc2UgaWYgKG9wdGlvbi5wcmVwZW5kICYmIGZpcnN0Q2hpbGQpIHtcbiAgICAvLyBGYWxsYmFjayB0byBgaW5zZXJ0QmVmb3JlYCBsaWtlIElFIG5vdCBzdXBwb3J0IGBwcmVwZW5kYFxuICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoc3R5bGVOb2RlLCBmaXJzdENoaWxkKTtcbiAgfSBlbHNlIHtcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoc3R5bGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdHlsZU5vZGU7XG59XG5cbnZhciBjb250YWluZXJDYWNoZSA9IG5ldyBNYXAoKTtcblxuZnVuY3Rpb24gdXBkYXRlQ1NTKGNzcywga2V5KSB7XG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICB2YXIgY29udGFpbmVyID0gZ2V0Q29udGFpbmVyKG9wdGlvbik7IC8vIEdldCByZWFsIHBhcmVudFxuXG4gIGlmICghY29udGFpbmVyQ2FjaGUuaGFzKGNvbnRhaW5lcikpIHtcbiAgICB2YXIgcGxhY2Vob2xkZXJTdHlsZSA9IGluamVjdENTUygnJywgb3B0aW9uKTtcbiAgICB2YXIgcGFyZW50Tm9kZSA9IHBsYWNlaG9sZGVyU3R5bGUucGFyZW50Tm9kZTtcbiAgICBjb250YWluZXJDYWNoZS5zZXQoY29udGFpbmVyLCBwYXJlbnROb2RlKTtcbiAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKHBsYWNlaG9sZGVyU3R5bGUpO1xuICB9XG5cbiAgdmFyIGV4aXN0Tm9kZSA9IEFycmF5LmZyb20oY29udGFpbmVyQ2FjaGUuZ2V0KGNvbnRhaW5lcikuY2hpbGRyZW4pLmZpbmQoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS50YWdOYW1lID09PSAnU1RZTEUnICYmIG5vZGVbTUFSS19LRVldID09PSBrZXk7XG4gIH0pO1xuXG4gIGlmIChleGlzdE5vZGUpIHtcbiAgICB2YXIgX29wdGlvbiRjc3AzLCBfb3B0aW9uJGNzcDQ7XG5cbiAgICBpZiAoKChfb3B0aW9uJGNzcDMgPSBvcHRpb24uY3NwKSA9PT0gbnVsbCB8fCBfb3B0aW9uJGNzcDMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9vcHRpb24kY3NwMy5ub25jZSkgJiYgZXhpc3ROb2RlLm5vbmNlICE9PSAoKF9vcHRpb24kY3NwNCA9IG9wdGlvbi5jc3ApID09PSBudWxsIHx8IF9vcHRpb24kY3NwNCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbiRjc3A0Lm5vbmNlKSkge1xuICAgICAgdmFyIF9vcHRpb24kY3NwNTtcblxuICAgICAgZXhpc3ROb2RlLm5vbmNlID0gKF9vcHRpb24kY3NwNSA9IG9wdGlvbi5jc3ApID09PSBudWxsIHx8IF9vcHRpb24kY3NwNSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbiRjc3A1Lm5vbmNlO1xuICAgIH1cblxuICAgIGlmIChleGlzdE5vZGUuaW5uZXJIVE1MICE9PSBjc3MpIHtcbiAgICAgIGV4aXN0Tm9kZS5pbm5lckhUTUwgPSBjc3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4aXN0Tm9kZTtcbiAgfVxuXG4gIHZhciBuZXdOb2RlID0gaW5qZWN0Q1NTKGNzcywgb3B0aW9uKTtcbiAgbmV3Tm9kZVtNQVJLX0tFWV0gPSBrZXk7XG4gIHJldHVybiBuZXdOb2RlO1xufSIsIid1c2Ugc3RyaWN0JztcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbiAgfSk7XG4gIGV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbiAgXG4gIHZhciBfQ2xvc2VDaXJjbGVGaWxsZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoJy4vbGliL2ljb25zL0Nsb3NlQ2lyY2xlRmlsbGVkJykpO1xuICBcbiAgZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuICBcbiAgdmFyIF9kZWZhdWx0ID0gX0Nsb3NlQ2lyY2xlRmlsbGVkO1xuICBleHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDtcbiAgbW9kdWxlLmV4cG9ydHMgPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVXaWxkY2FyZFwiKTtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB1c2VOb3RpZmljYXRpb247XG5cbnZhciBfdG9Db25zdW1hYmxlQXJyYXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheVwiKSk7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX3NsaWNlZFRvQXJyYXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5XCIpKTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9Ob3RpY2UgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL05vdGljZVwiKSk7XG5cbmZ1bmN0aW9uIHVzZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JbnN0YW5jZSkge1xuICB2YXIgY3JlYXRlZFJlZiA9IFJlYWN0LnVzZVJlZih7fSk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKFtdKSxcbiAgICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgICBlbGVtZW50cyA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRFbGVtZW50cyA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgZnVuY3Rpb24gbm90aWZ5KG5vdGljZVByb3BzKSB7XG4gICAgdmFyIGZpcnN0TW91bnQgPSB0cnVlO1xuICAgIG5vdGlmaWNhdGlvbkluc3RhbmNlLmFkZChub3RpY2VQcm9wcywgZnVuY3Rpb24gKGRpdiwgcHJvcHMpIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wcy5rZXk7XG5cbiAgICAgIGlmIChkaXYgJiYgKCFjcmVhdGVkUmVmLmN1cnJlbnRba2V5XSB8fCBmaXJzdE1vdW50KSkge1xuICAgICAgICB2YXIgbm90aWNlRWxlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX05vdGljZS5kZWZhdWx0LCAoMCwgX2V4dGVuZHMyLmRlZmF1bHQpKHt9LCBwcm9wcywge1xuICAgICAgICAgIGhvbGRlcjogZGl2XG4gICAgICAgIH0pKTtcbiAgICAgICAgY3JlYXRlZFJlZi5jdXJyZW50W2tleV0gPSBub3RpY2VFbGU7XG4gICAgICAgIHNldEVsZW1lbnRzKGZ1bmN0aW9uIChvcmlnaW5FbGVtZW50cykge1xuICAgICAgICAgIHZhciBpbmRleCA9IG9yaWdpbkVsZW1lbnRzLmZpbmRJbmRleChmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlLmtleSA9PT0gcHJvcHMua2V5O1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdCgoMCwgX3RvQ29uc3VtYWJsZUFycmF5Mi5kZWZhdWx0KShvcmlnaW5FbGVtZW50cyksIFtub3RpY2VFbGVdKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgY2xvbmVMaXN0ID0gKDAsIF90b0NvbnN1bWFibGVBcnJheTIuZGVmYXVsdCkob3JpZ2luRWxlbWVudHMpO1xuICAgICAgICAgIGNsb25lTGlzdFtpbmRleF0gPSBub3RpY2VFbGU7XG4gICAgICAgICAgcmV0dXJuIGNsb25lTGlzdDtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZpcnN0TW91bnQgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBbbm90aWZ5LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgZWxlbWVudHMpXTtcbn0iLCIndXNlIHN0cmljdCc7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG4gIH0pO1xuICBleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG4gIFxuICB2YXIgX0Nsb3NlT3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoJy4vbGliL2ljb25zL0Nsb3NlT3V0bGluZWQnKSk7XG4gIFxuICBmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG4gIFxuICB2YXIgX2RlZmF1bHQgPSBfQ2xvc2VPdXRsaW5lZDtcbiAgZXhwb3J0cy5kZWZhdWx0ID0gX2RlZmF1bHQ7XG4gIG1vZHVsZS5leHBvcnRzID0gX2RlZmF1bHQ7IiwiJ3VzZSBzdHJpY3QnO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxuICB9KTtcbiAgZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuICBcbiAgdmFyIF9MZWZ0T3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoJy4vbGliL2ljb25zL0xlZnRPdXRsaW5lZCcpKTtcbiAgXG4gIGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cbiAgXG4gIHZhciBfZGVmYXVsdCA9IF9MZWZ0T3V0bGluZWQ7XG4gIGV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuICBtb2R1bGUuZXhwb3J0cyA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9leHRlbmRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiKSk7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfb21pdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL29taXRcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9yY1NlbGVjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyYy1zZWxlY3RcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxudmFyIF9pY29uVXRpbCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vdXRpbHMvaWNvblV0aWxcIikpO1xuXG52YXIgX1NpemVDb250ZXh0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyL1NpemVDb250ZXh0XCIpKTtcblxudmFyIF9tb3Rpb24gPSByZXF1aXJlKFwiLi4vX3V0aWwvbW90aW9uXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbi8vIFRPRE86IDQuMCAtIGNvZGVtb2Qgc2hvdWxkIGhlbHAgdG8gY2hhbmdlIGBmaWx0ZXJPcHRpb25gIHRvIHN1cHBvcnQgbm9kZSBwcm9wcy5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSA9ICdTRUNSRVRfQ09NQk9CT1hfTU9ERV9ET19OT1RfVVNFJztcblxudmFyIEludGVybmFsU2VsZWN0ID0gZnVuY3Rpb24gSW50ZXJuYWxTZWxlY3QoX2EsIHJlZikge1xuICB2YXIgX2NsYXNzTmFtZXMyO1xuXG4gIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBfYS5wcmVmaXhDbHMsXG4gICAgICBfYSRib3JkZXJlZCA9IF9hLmJvcmRlcmVkLFxuICAgICAgYm9yZGVyZWQgPSBfYSRib3JkZXJlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9hJGJvcmRlcmVkLFxuICAgICAgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBfYS5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgIGRyb3Bkb3duQ2xhc3NOYW1lID0gX2EuZHJvcGRvd25DbGFzc05hbWUsXG4gICAgICBfYSRsaXN0SGVpZ2h0ID0gX2EubGlzdEhlaWdodCxcbiAgICAgIGxpc3RIZWlnaHQgPSBfYSRsaXN0SGVpZ2h0ID09PSB2b2lkIDAgPyAyNTYgOiBfYSRsaXN0SGVpZ2h0LFxuICAgICAgX2EkbGlzdEl0ZW1IZWlnaHQgPSBfYS5saXN0SXRlbUhlaWdodCxcbiAgICAgIGxpc3RJdGVtSGVpZ2h0ID0gX2EkbGlzdEl0ZW1IZWlnaHQgPT09IHZvaWQgMCA/IDI0IDogX2EkbGlzdEl0ZW1IZWlnaHQsXG4gICAgICBjdXN0b21pemVTaXplID0gX2Euc2l6ZSxcbiAgICAgIG5vdEZvdW5kQ29udGVudCA9IF9hLm5vdEZvdW5kQ29udGVudCxcbiAgICAgIHByb3BzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJib3JkZXJlZFwiLCBcImNsYXNzTmFtZVwiLCBcImdldFBvcHVwQ29udGFpbmVyXCIsIFwiZHJvcGRvd25DbGFzc05hbWVcIiwgXCJsaXN0SGVpZ2h0XCIsIFwibGlzdEl0ZW1IZWlnaHRcIiwgXCJzaXplXCIsIFwibm90Rm91bmRDb250ZW50XCJdKTtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KF9jb25maWdQcm92aWRlci5Db25maWdDb250ZXh0KSxcbiAgICAgIGdldENvbnRleHRQb3B1cENvbnRhaW5lciA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgZ2V0UHJlZml4Q2xzID0gX1JlYWN0JHVzZUNvbnRleHQuZ2V0UHJlZml4Q2xzLFxuICAgICAgcmVuZGVyRW1wdHkgPSBfUmVhY3QkdXNlQ29udGV4dC5yZW5kZXJFbXB0eSxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbixcbiAgICAgIHZpcnR1YWwgPSBfUmVhY3QkdXNlQ29udGV4dC52aXJ0dWFsLFxuICAgICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoID0gX1JlYWN0JHVzZUNvbnRleHQuZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoO1xuXG4gIHZhciBzaXplID0gUmVhY3QudXNlQ29udGV4dChfU2l6ZUNvbnRleHRbXCJkZWZhdWx0XCJdKTtcbiAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnc2VsZWN0JywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgdmFyIHJvb3RQcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoKTtcbiAgdmFyIG1vZGUgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbSA9IHByb3BzLm1vZGU7XG5cbiAgICBpZiAobSA9PT0gJ2NvbWJvYm94Jykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAobSA9PT0gU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSkge1xuICAgICAgcmV0dXJuICdjb21ib2JveCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG07XG4gIH0sIFtwcm9wcy5tb2RlXSk7XG4gIHZhciBpc011bHRpcGxlID0gbW9kZSA9PT0gJ211bHRpcGxlJyB8fCBtb2RlID09PSAndGFncyc7IC8vID09PT09PT09PT09PT09PT09PT09PSBFbXB0eSA9PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgbWVyZ2VkTm90Rm91bmQ7XG5cbiAgaWYgKG5vdEZvdW5kQ29udGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbWVyZ2VkTm90Rm91bmQgPSBub3RGb3VuZENvbnRlbnQ7XG4gIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2NvbWJvYm94Jykge1xuICAgIG1lcmdlZE5vdEZvdW5kID0gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBtZXJnZWROb3RGb3VuZCA9IHJlbmRlckVtcHR5KCdTZWxlY3QnKTtcbiAgfSAvLyA9PT09PT09PT09PT09PT09PT09PT0gSWNvbnMgPT09PT09PT09PT09PT09PT09PT09XG5cblxuICB2YXIgX2dldEljb25zID0gKDAsIF9pY29uVXRpbFtcImRlZmF1bHRcIl0pKCgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSgoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIHByb3BzKSwge1xuICAgIG11bHRpcGxlOiBpc011bHRpcGxlLFxuICAgIHByZWZpeENsczogcHJlZml4Q2xzXG4gIH0pKSxcbiAgICAgIHN1ZmZpeEljb24gPSBfZ2V0SWNvbnMuc3VmZml4SWNvbixcbiAgICAgIGl0ZW1JY29uID0gX2dldEljb25zLml0ZW1JY29uLFxuICAgICAgcmVtb3ZlSWNvbiA9IF9nZXRJY29ucy5yZW1vdmVJY29uLFxuICAgICAgY2xlYXJJY29uID0gX2dldEljb25zLmNsZWFySWNvbjtcblxuICB2YXIgc2VsZWN0UHJvcHMgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShwcm9wcywgWydzdWZmaXhJY29uJywgJ2l0ZW1JY29uJ10pO1xuICB2YXIgcmNTZWxlY3RSdGxEcm9wRG93bkNsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGRyb3Bkb3duQ2xhc3NOYW1lLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRyb3Bkb3duLVwiKS5jb25jYXQoZGlyZWN0aW9uKSwgZGlyZWN0aW9uID09PSAncnRsJykpO1xuICB2YXIgbWVyZ2VkU2l6ZSA9IGN1c3RvbWl6ZVNpemUgfHwgc2l6ZTtcbiAgdmFyIG1lcmdlZENsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKChfY2xhc3NOYW1lczIgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShfY2xhc3NOYW1lczIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbGdcIiksIG1lcmdlZFNpemUgPT09ICdsYXJnZScpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzMiwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbVwiKSwgbWVyZ2VkU2l6ZSA9PT0gJ3NtYWxsJyksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJyksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJvcmRlcmxlc3NcIiksICFib3JkZXJlZCksIF9jbGFzc05hbWVzMiksIGNsYXNzTmFtZSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNTZWxlY3RbXCJkZWZhdWx0XCJdLCAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe1xuICAgIHJlZjogcmVmLFxuICAgIHZpcnR1YWw6IHZpcnR1YWwsXG4gICAgZHJvcGRvd25NYXRjaFNlbGVjdFdpZHRoOiBkcm9wZG93bk1hdGNoU2VsZWN0V2lkdGhcbiAgfSwgc2VsZWN0UHJvcHMsIHtcbiAgICB0cmFuc2l0aW9uTmFtZTogKDAsIF9tb3Rpb24uZ2V0VHJhbnNpdGlvbk5hbWUpKHJvb3RQcmVmaXhDbHMsICdzbGlkZS11cCcsIHByb3BzLnRyYW5zaXRpb25OYW1lKSxcbiAgICBsaXN0SGVpZ2h0OiBsaXN0SGVpZ2h0LFxuICAgIGxpc3RJdGVtSGVpZ2h0OiBsaXN0SXRlbUhlaWdodCxcbiAgICBtb2RlOiBtb2RlLFxuICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLFxuICAgIGlucHV0SWNvbjogc3VmZml4SWNvbixcbiAgICBtZW51SXRlbVNlbGVjdGVkSWNvbjogaXRlbUljb24sXG4gICAgcmVtb3ZlSWNvbjogcmVtb3ZlSWNvbixcbiAgICBjbGVhckljb246IGNsZWFySWNvbixcbiAgICBub3RGb3VuZENvbnRlbnQ6IG1lcmdlZE5vdEZvdW5kLFxuICAgIGNsYXNzTmFtZTogbWVyZ2VkQ2xhc3NOYW1lLFxuICAgIGdldFBvcHVwQ29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lciB8fCBnZXRDb250ZXh0UG9wdXBDb250YWluZXIsXG4gICAgZHJvcGRvd25DbGFzc05hbWU6IHJjU2VsZWN0UnRsRHJvcERvd25DbGFzc05hbWVcbiAgfSkpO1xufTtcblxudmFyIFNlbGVjdFJlZiA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKEludGVybmFsU2VsZWN0KTtcbnZhciBTZWxlY3QgPSBTZWxlY3RSZWY7XG5TZWxlY3QuU0VDUkVUX0NPTUJPQk9YX01PREVfRE9fTk9UX1VTRSA9IFNFQ1JFVF9DT01CT0JPWF9NT0RFX0RPX05PVF9VU0U7XG5TZWxlY3QuT3B0aW9uID0gX3JjU2VsZWN0Lk9wdGlvbjtcblNlbGVjdC5PcHRHcm91cCA9IF9yY1NlbGVjdC5PcHRHcm91cDtcbnZhciBfZGVmYXVsdCA9IFNlbGVjdDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiJ3VzZSBzdHJpY3QnO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxuICB9KTtcbiAgZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuICBcbiAgdmFyIF9Eb3duT3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoJy4vbGliL2ljb25zL0Rvd25PdXRsaW5lZCcpKTtcbiAgXG4gIGZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cbiAgXG4gIHZhciBfZGVmYXVsdCA9IF9Eb3duT3V0bGluZWQ7XG4gIGV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0O1xuICBtb2R1bGUuZXhwb3J0cyA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX3NsaWNlZFRvQXJyYXkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zbGljZWRUb0FycmF5XCIpKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKTtcblxudmFyIF9yZXNwb25zaXZlT2JzZXJ2ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uLy4uL191dGlsL3Jlc3BvbnNpdmVPYnNlcnZlXCIpKTtcblxuZnVuY3Rpb24gdXNlQnJlYWtwb2ludCgpIHtcbiAgdmFyIF91c2VTdGF0ZSA9ICgwLCBfcmVhY3QudXNlU3RhdGUpKHt9KSxcbiAgICAgIF91c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyW1wiZGVmYXVsdFwiXSkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIHNjcmVlbnMgPSBfdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0U2NyZWVucyA9IF91c2VTdGF0ZTJbMV07XG5cbiAgKDAsIF9yZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdG9rZW4gPSBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnN1YnNjcmliZShmdW5jdGlvbiAoc3VwcG9ydFNjcmVlbnMpIHtcbiAgICAgIHNldFNjcmVlbnMoc3VwcG9ydFNjcmVlbnMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfcmVzcG9uc2l2ZU9ic2VydmVbXCJkZWZhdWx0XCJdLnVuc3Vic2NyaWJlKHRva2VuKTtcbiAgICB9O1xuICB9LCBbXSk7XG4gIHJldHVybiBzY3JlZW5zO1xufVxuXG52YXIgX2RlZmF1bHQgPSB1c2VCcmVha3BvaW50O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldEtleSA9IGdldEtleTtcbmV4cG9ydHMud2FybmluZ1dpdGhvdXRLZXkgPSB3YXJuaW5nV2l0aG91dEtleTtcbmV4cG9ydHMuY29udmVydFRyZWVUb0RhdGEgPSBjb252ZXJ0VHJlZVRvRGF0YTtcbmV4cG9ydHMuZmxhdHRlblRyZWVEYXRhID0gZmxhdHRlblRyZWVEYXRhO1xuZXhwb3J0cy50cmF2ZXJzZURhdGFOb2RlcyA9IHRyYXZlcnNlRGF0YU5vZGVzO1xuZXhwb3J0cy5jb252ZXJ0RGF0YVRvRW50aXRpZXMgPSBjb252ZXJ0RGF0YVRvRW50aXRpZXM7XG5leHBvcnRzLmdldFRyZWVOb2RlUHJvcHMgPSBnZXRUcmVlTm9kZVByb3BzO1xuZXhwb3J0cy5jb252ZXJ0Tm9kZVByb3BzVG9FdmVudERhdGEgPSBjb252ZXJ0Tm9kZVByb3BzVG9FdmVudERhdGE7XG5cbnZhciBfdHlwZW9mMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpKTtcblxudmFyIF90b0NvbnN1bWFibGVBcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5XCIpKTtcblxudmFyIF9vYmplY3RTcHJlYWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyXCIpKTtcblxudmFyIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzXCIpKTtcblxudmFyIF90b0FycmF5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvQ2hpbGRyZW4vdG9BcnJheVwiKSk7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL3dhcm5pbmdcIikpO1xuXG52YXIgX3V0aWwgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcblxuZnVuY3Rpb24gZ2V0S2V5KGtleSwgcG9zKSB7XG4gIGlmIChrZXkgIT09IG51bGwgJiYga2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgcmV0dXJuIHBvcztcbn1cbi8qKlxuICogV2FybmluZyBpZiBUcmVlTm9kZSBkbyBub3QgcHJvdmlkZXMga2V5XG4gKi9cblxuXG5mdW5jdGlvbiB3YXJuaW5nV2l0aG91dEtleSgpIHtcbiAgdmFyIHRyZWVEYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBbXTtcbiAgdmFyIGtleXMgPSBuZXcgTWFwKCk7XG5cbiAgZnVuY3Rpb24gZGlnKGxpc3QpIHtcbiAgICB2YXIgcGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7XG4gICAgKGxpc3QgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKHRyZWVOb2RlKSB7XG4gICAgICB2YXIga2V5ID0gdHJlZU5vZGUua2V5LFxuICAgICAgICAgIGNoaWxkcmVuID0gdHJlZU5vZGUuY2hpbGRyZW47XG4gICAgICAoMCwgX3dhcm5pbmcuZGVmYXVsdCkoa2V5ICE9PSBudWxsICYmIGtleSAhPT0gdW5kZWZpbmVkLCBcIlRyZWUgbm9kZSBtdXN0IGhhdmUgYSBjZXJ0YWluIGtleTogW1wiLmNvbmNhdChwYXRoKS5jb25jYXQoa2V5LCBcIl1cIikpO1xuICAgICAgdmFyIHJlY29yZEtleSA9IFN0cmluZyhrZXkpO1xuICAgICAgKDAsIF93YXJuaW5nLmRlZmF1bHQpKCFrZXlzLmhhcyhyZWNvcmRLZXkpIHx8IGtleSA9PT0gbnVsbCB8fCBrZXkgPT09IHVuZGVmaW5lZCwgXCJTYW1lICdrZXknIGV4aXN0IGluIHRoZSBUcmVlOiBcIi5jb25jYXQocmVjb3JkS2V5KSk7XG4gICAgICBrZXlzLnNldChyZWNvcmRLZXksIHRydWUpO1xuICAgICAgZGlnKGNoaWxkcmVuLCBcIlwiLmNvbmNhdChwYXRoKS5jb25jYXQocmVjb3JkS2V5LCBcIiA+IFwiKSk7XG4gICAgfSk7XG4gIH1cblxuICBkaWcodHJlZURhdGEpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGBjaGlsZHJlbmAgb2YgVHJlZSBpbnRvIGB0cmVlRGF0YWAgc3RydWN0dXJlLlxuICovXG5cblxuZnVuY3Rpb24gY29udmVydFRyZWVUb0RhdGEocm9vdE5vZGVzKSB7XG4gIGZ1bmN0aW9uIGRpZyhub2RlKSB7XG4gICAgdmFyIHRyZWVOb2RlcyA9ICgwLCBfdG9BcnJheS5kZWZhdWx0KShub2RlKTtcbiAgICByZXR1cm4gdHJlZU5vZGVzLm1hcChmdW5jdGlvbiAodHJlZU5vZGUpIHtcbiAgICAgIC8vIEZpbHRlciBpbnZhbGlkYXRlIG5vZGVcbiAgICAgIGlmICghKDAsIF91dGlsLmlzVHJlZU5vZGUpKHRyZWVOb2RlKSkge1xuICAgICAgICAoMCwgX3dhcm5pbmcuZGVmYXVsdCkoIXRyZWVOb2RlLCAnVHJlZS9UcmVlTm9kZSBjYW4gb25seSBhY2NlcHQgVHJlZU5vZGUgYXMgY2hpbGRyZW4uJyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICB2YXIga2V5ID0gdHJlZU5vZGUua2V5O1xuICAgICAgdmFyIF90cmVlTm9kZSRwcm9wcyA9IHRyZWVOb2RlLnByb3BzLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RyZWVOb2RlJHByb3BzLmNoaWxkcmVuLFxuICAgICAgICAgIHJlc3QgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMi5kZWZhdWx0KShfdHJlZU5vZGUkcHJvcHMsIFtcImNoaWxkcmVuXCJdKTtcbiAgICAgIHZhciBkYXRhTm9kZSA9ICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7XG4gICAgICAgIGtleToga2V5XG4gICAgICB9LCByZXN0KTtcbiAgICAgIHZhciBwYXJzZWRDaGlsZHJlbiA9IGRpZyhjaGlsZHJlbik7XG5cbiAgICAgIGlmIChwYXJzZWRDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgZGF0YU5vZGUuY2hpbGRyZW4gPSBwYXJzZWRDaGlsZHJlbjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhdGFOb2RlO1xuICAgIH0pLmZpbHRlcihmdW5jdGlvbiAoZGF0YU5vZGUpIHtcbiAgICAgIHJldHVybiBkYXRhTm9kZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkaWcocm9vdE5vZGVzKTtcbn1cbi8qKlxuICogRmxhdCBuZXN0IHRyZWUgZGF0YSBpbnRvIGZsYXR0ZW4gbGlzdC4gVGhpcyBpcyB1c2VkIGZvciB2aXJ0dWFsIGxpc3QgcmVuZGVyLlxuICogQHBhcmFtIHRyZWVOb2RlTGlzdCBPcmlnaW4gZGF0YSBub2RlIGxpc3RcbiAqIEBwYXJhbSBleHBhbmRlZEtleXNcbiAqIG5lZWQgZXhwYW5kZWQga2V5cywgcHJvdmlkZXMgYHRydWVgIG1lYW5zIGFsbCBleHBhbmRlZCAodXNlZCBpbiBgcmMtdHJlZS1zZWxlY3RgKS5cbiAqL1xuXG5cbmZ1bmN0aW9uIGZsYXR0ZW5UcmVlRGF0YSgpIHtcbiAgdmFyIHRyZWVOb2RlTGlzdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107XG4gIHZhciBleHBhbmRlZEtleXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFtdO1xuICB2YXIgZXhwYW5kZWRLZXlTZXQgPSBuZXcgU2V0KGV4cGFuZGVkS2V5cyA9PT0gdHJ1ZSA/IFtdIDogZXhwYW5kZWRLZXlzKTtcbiAgdmFyIGZsYXR0ZW5MaXN0ID0gW107XG5cbiAgZnVuY3Rpb24gZGlnKGxpc3QpIHtcbiAgICB2YXIgcGFyZW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsO1xuICAgIHJldHVybiBsaXN0Lm1hcChmdW5jdGlvbiAodHJlZU5vZGUsIGluZGV4KSB7XG4gICAgICB2YXIgcG9zID0gKDAsIF91dGlsLmdldFBvc2l0aW9uKShwYXJlbnQgPyBwYXJlbnQucG9zIDogJzAnLCBpbmRleCk7XG4gICAgICB2YXIgbWVyZ2VkS2V5ID0gZ2V0S2V5KHRyZWVOb2RlLmtleSwgcG9zKTsgLy8gQWRkIEZsYXR0ZW5EYXRhTm9kZSBpbnRvIGxpc3RcblxuICAgICAgdmFyIGZsYXR0ZW5Ob2RlID0gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKCgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgdHJlZU5vZGUpLCB7fSwge1xuICAgICAgICBwYXJlbnQ6IHBhcmVudCxcbiAgICAgICAgcG9zOiBwb3MsXG4gICAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgICBkYXRhOiB0cmVlTm9kZSxcbiAgICAgICAgaXNTdGFydDogW10uY29uY2F0KCgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKHBhcmVudCA/IHBhcmVudC5pc1N0YXJ0IDogW10pLCBbaW5kZXggPT09IDBdKSxcbiAgICAgICAgaXNFbmQ6IFtdLmNvbmNhdCgoMCwgX3RvQ29uc3VtYWJsZUFycmF5Mi5kZWZhdWx0KShwYXJlbnQgPyBwYXJlbnQuaXNFbmQgOiBbXSksIFtpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxXSlcbiAgICAgIH0pO1xuICAgICAgZmxhdHRlbkxpc3QucHVzaChmbGF0dGVuTm9kZSk7IC8vIExvb3AgdHJlZU5vZGUgY2hpbGRyZW5cblxuICAgICAgaWYgKGV4cGFuZGVkS2V5cyA9PT0gdHJ1ZSB8fCBleHBhbmRlZEtleVNldC5oYXMobWVyZ2VkS2V5KSkge1xuICAgICAgICBmbGF0dGVuTm9kZS5jaGlsZHJlbiA9IGRpZyh0cmVlTm9kZS5jaGlsZHJlbiB8fCBbXSwgZmxhdHRlbk5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmxhdHRlbk5vZGUuY2hpbGRyZW4gPSBbXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZsYXR0ZW5Ob2RlO1xuICAgIH0pO1xuICB9XG5cbiAgZGlnKHRyZWVOb2RlTGlzdCk7XG4gIHJldHVybiBmbGF0dGVuTGlzdDtcbn1cbi8qKlxuICogVHJhdmVyc2UgYWxsIHRoZSBkYXRhIGJ5IGB0cmVlRGF0YWAuXG4gKiBQbGVhc2Ugbm90IHVzZSBpdCBvdXQgb2YgdGhlIGByYy10cmVlYCBzaW5jZSB3ZSBtYXkgcmVmYWN0b3IgdGhpcyBjb2RlLlxuICovXG5cblxuZnVuY3Rpb24gdHJhdmVyc2VEYXRhTm9kZXMoZGF0YU5vZGVzLCBjYWxsYmFjaywgLy8gVG8gYXZvaWQgdG9vIG1hbnkgcGFyYW1zLCBsZXQgdXNlIGNvbmZpZyBpbnN0ZWFkIG9mIG9yaWdpbiBwYXJhbVxuY29uZmlnKSB7XG4gIC8vIEluaXQgY29uZmlnXG4gIHZhciBleHRlcm5hbEdldEtleSA9IG51bGw7XG4gIHZhciBjaGlsZHJlblByb3BOYW1lO1xuICB2YXIgY29uZmlnVHlwZSA9ICgwLCBfdHlwZW9mMi5kZWZhdWx0KShjb25maWcpO1xuXG4gIGlmIChjb25maWdUeXBlID09PSAnZnVuY3Rpb24nIHx8IGNvbmZpZ1R5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gTGVnYWN5IGdldEtleSBwYXJhbVxuICAgIGV4dGVybmFsR2V0S2V5ID0gY29uZmlnO1xuICB9IGVsc2UgaWYgKGNvbmZpZyAmJiBjb25maWdUeXBlID09PSAnb2JqZWN0Jykge1xuICAgIGNoaWxkcmVuUHJvcE5hbWUgPSBjb25maWcuY2hpbGRyZW5Qcm9wTmFtZTtcbiAgICBleHRlcm5hbEdldEtleSA9IGNvbmZpZy5leHRlcm5hbEdldEtleTtcbiAgfVxuXG4gIGNoaWxkcmVuUHJvcE5hbWUgPSBjaGlsZHJlblByb3BOYW1lIHx8ICdjaGlsZHJlbic7IC8vIEdldCBrZXlzXG5cbiAgdmFyIHN5bnRoZXRpY0dldEtleTtcblxuICBpZiAoZXh0ZXJuYWxHZXRLZXkpIHtcbiAgICBpZiAodHlwZW9mIGV4dGVybmFsR2V0S2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgc3ludGhldGljR2V0S2V5ID0gZnVuY3Rpb24gc3ludGhldGljR2V0S2V5KG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIG5vZGVbZXh0ZXJuYWxHZXRLZXldO1xuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHRlcm5hbEdldEtleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgc3ludGhldGljR2V0S2V5ID0gZnVuY3Rpb24gc3ludGhldGljR2V0S2V5KG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIGV4dGVybmFsR2V0S2V5KG5vZGUpO1xuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3ludGhldGljR2V0S2V5ID0gZnVuY3Rpb24gc3ludGhldGljR2V0S2V5KG5vZGUsIHBvcykge1xuICAgICAgcmV0dXJuIGdldEtleShub2RlLmtleSwgcG9zKTtcbiAgICB9O1xuICB9IC8vIFByb2Nlc3NcblxuXG4gIGZ1bmN0aW9uIHByb2Nlc3NOb2RlKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBub2RlID8gbm9kZVtjaGlsZHJlblByb3BOYW1lXSA6IGRhdGFOb2RlcztcbiAgICB2YXIgcG9zID0gbm9kZSA/ICgwLCBfdXRpbC5nZXRQb3NpdGlvbikocGFyZW50LnBvcywgaW5kZXgpIDogJzAnOyAvLyBQcm9jZXNzIG5vZGUgaWYgaXMgbm90IHJvb3RcblxuICAgIGlmIChub2RlKSB7XG4gICAgICB2YXIga2V5ID0gc3ludGhldGljR2V0S2V5KG5vZGUsIHBvcyk7XG4gICAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICBwb3M6IHBvcyxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIHBhcmVudFBvczogcGFyZW50Lm5vZGUgPyBwYXJlbnQucG9zIDogbnVsbCxcbiAgICAgICAgbGV2ZWw6IHBhcmVudC5sZXZlbCArIDFcbiAgICAgIH07XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9IC8vIFByb2Nlc3MgY2hpbGRyZW4gbm9kZVxuXG5cbiAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKHN1Yk5vZGUsIHN1YkluZGV4KSB7XG4gICAgICAgIHByb2Nlc3NOb2RlKHN1Yk5vZGUsIHN1YkluZGV4LCB7XG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBwb3M6IHBvcyxcbiAgICAgICAgICBsZXZlbDogcGFyZW50ID8gcGFyZW50LmxldmVsICsgMSA6IC0xXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvY2Vzc05vZGUobnVsbCk7XG59XG4vKipcbiAqIENvbnZlcnQgYHRyZWVEYXRhYCBpbnRvIGVudGl0eSByZWNvcmRzLlxuICovXG5cblxuZnVuY3Rpb24gY29udmVydERhdGFUb0VudGl0aWVzKGRhdGFOb2Rlcykge1xuICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge30sXG4gICAgICBpbml0V3JhcHBlciA9IF9yZWYuaW5pdFdyYXBwZXIsXG4gICAgICBwcm9jZXNzRW50aXR5ID0gX3JlZi5wcm9jZXNzRW50aXR5LFxuICAgICAgb25Qcm9jZXNzRmluaXNoZWQgPSBfcmVmLm9uUHJvY2Vzc0ZpbmlzaGVkLFxuICAgICAgZXh0ZXJuYWxHZXRLZXkgPSBfcmVmLmV4dGVybmFsR2V0S2V5LFxuICAgICAgY2hpbGRyZW5Qcm9wTmFtZSA9IF9yZWYuY2hpbGRyZW5Qcm9wTmFtZTtcblxuICB2YXJcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgY29uZmlnLmV4dGVybmFsR2V0S2V5YCBpbnN0ZWFkICovXG4gIGxlZ2FjeUV4dGVybmFsR2V0S2V5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIC8vIEluaXQgY29uZmlnXG4gIHZhciBtZXJnZWRFeHRlcm5hbEdldEtleSA9IGV4dGVybmFsR2V0S2V5IHx8IGxlZ2FjeUV4dGVybmFsR2V0S2V5O1xuICB2YXIgcG9zRW50aXRpZXMgPSB7fTtcbiAgdmFyIGtleUVudGl0aWVzID0ge307XG4gIHZhciB3cmFwcGVyID0ge1xuICAgIHBvc0VudGl0aWVzOiBwb3NFbnRpdGllcyxcbiAgICBrZXlFbnRpdGllczoga2V5RW50aXRpZXNcbiAgfTtcblxuICBpZiAoaW5pdFdyYXBwZXIpIHtcbiAgICB3cmFwcGVyID0gaW5pdFdyYXBwZXIod3JhcHBlcikgfHwgd3JhcHBlcjtcbiAgfVxuXG4gIHRyYXZlcnNlRGF0YU5vZGVzKGRhdGFOb2RlcywgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICB2YXIgbm9kZSA9IGl0ZW0ubm9kZSxcbiAgICAgICAgaW5kZXggPSBpdGVtLmluZGV4LFxuICAgICAgICBwb3MgPSBpdGVtLnBvcyxcbiAgICAgICAga2V5ID0gaXRlbS5rZXksXG4gICAgICAgIHBhcmVudFBvcyA9IGl0ZW0ucGFyZW50UG9zLFxuICAgICAgICBsZXZlbCA9IGl0ZW0ubGV2ZWw7XG4gICAgdmFyIGVudGl0eSA9IHtcbiAgICAgIG5vZGU6IG5vZGUsXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHBvczogcG9zLFxuICAgICAgbGV2ZWw6IGxldmVsXG4gICAgfTtcbiAgICB2YXIgbWVyZ2VkS2V5ID0gZ2V0S2V5KGtleSwgcG9zKTtcbiAgICBwb3NFbnRpdGllc1twb3NdID0gZW50aXR5O1xuICAgIGtleUVudGl0aWVzW21lcmdlZEtleV0gPSBlbnRpdHk7IC8vIEZpbGwgY2hpbGRyZW5cblxuICAgIGVudGl0eS5wYXJlbnQgPSBwb3NFbnRpdGllc1twYXJlbnRQb3NdO1xuXG4gICAgaWYgKGVudGl0eS5wYXJlbnQpIHtcbiAgICAgIGVudGl0eS5wYXJlbnQuY2hpbGRyZW4gPSBlbnRpdHkucGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgZW50aXR5LnBhcmVudC5jaGlsZHJlbi5wdXNoKGVudGl0eSk7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3NFbnRpdHkpIHtcbiAgICAgIHByb2Nlc3NFbnRpdHkoZW50aXR5LCB3cmFwcGVyKTtcbiAgICB9XG4gIH0sIHtcbiAgICBleHRlcm5hbEdldEtleTogbWVyZ2VkRXh0ZXJuYWxHZXRLZXksXG4gICAgY2hpbGRyZW5Qcm9wTmFtZTogY2hpbGRyZW5Qcm9wTmFtZVxuICB9KTtcblxuICBpZiAob25Qcm9jZXNzRmluaXNoZWQpIHtcbiAgICBvblByb2Nlc3NGaW5pc2hlZCh3cmFwcGVyKTtcbiAgfVxuXG4gIHJldHVybiB3cmFwcGVyO1xufVxuLyoqXG4gKiBHZXQgVHJlZU5vZGUgcHJvcHMgd2l0aCBUcmVlIHByb3BzLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0VHJlZU5vZGVQcm9wcyhrZXksIF9yZWYyKSB7XG4gIHZhciBleHBhbmRlZEtleXMgPSBfcmVmMi5leHBhbmRlZEtleXMsXG4gICAgICBzZWxlY3RlZEtleXMgPSBfcmVmMi5zZWxlY3RlZEtleXMsXG4gICAgICBsb2FkZWRLZXlzID0gX3JlZjIubG9hZGVkS2V5cyxcbiAgICAgIGxvYWRpbmdLZXlzID0gX3JlZjIubG9hZGluZ0tleXMsXG4gICAgICBjaGVja2VkS2V5cyA9IF9yZWYyLmNoZWNrZWRLZXlzLFxuICAgICAgaGFsZkNoZWNrZWRLZXlzID0gX3JlZjIuaGFsZkNoZWNrZWRLZXlzLFxuICAgICAgZHJhZ092ZXJOb2RlS2V5ID0gX3JlZjIuZHJhZ092ZXJOb2RlS2V5LFxuICAgICAgZHJvcFBvc2l0aW9uID0gX3JlZjIuZHJvcFBvc2l0aW9uLFxuICAgICAga2V5RW50aXRpZXMgPSBfcmVmMi5rZXlFbnRpdGllcztcbiAgdmFyIGVudGl0eSA9IGtleUVudGl0aWVzW2tleV07XG4gIHZhciB0cmVlTm9kZVByb3BzID0ge1xuICAgIGV2ZW50S2V5OiBrZXksXG4gICAgZXhwYW5kZWQ6IGV4cGFuZGVkS2V5cy5pbmRleE9mKGtleSkgIT09IC0xLFxuICAgIHNlbGVjdGVkOiBzZWxlY3RlZEtleXMuaW5kZXhPZihrZXkpICE9PSAtMSxcbiAgICBsb2FkZWQ6IGxvYWRlZEtleXMuaW5kZXhPZihrZXkpICE9PSAtMSxcbiAgICBsb2FkaW5nOiBsb2FkaW5nS2V5cy5pbmRleE9mKGtleSkgIT09IC0xLFxuICAgIGNoZWNrZWQ6IGNoZWNrZWRLZXlzLmluZGV4T2Yoa2V5KSAhPT0gLTEsXG4gICAgaGFsZkNoZWNrZWQ6IGhhbGZDaGVja2VkS2V5cy5pbmRleE9mKGtleSkgIT09IC0xLFxuICAgIHBvczogU3RyaW5nKGVudGl0eSA/IGVudGl0eS5wb3MgOiAnJyksXG4gICAgLy8gW0xlZ2FjeV0gRHJhZyBwcm9wc1xuICAgIC8vIFNpbmNlIHRoZSBpbnRlcmFjdGlvbiBvZiBkcmFnIGlzIGNoYW5nZWQsIHRoZSBzZW1hbnRpYyBvZiB0aGUgcHJvcHMgYXJlXG4gICAgLy8gbm90IGFjY3VyYWN5LCBJIHRoaW5rIGl0IHNob3VsZCBiZSBmaW5hbGx5IHJlbW92ZWRcbiAgICBkcmFnT3ZlcjogZHJhZ092ZXJOb2RlS2V5ID09PSBrZXkgJiYgZHJvcFBvc2l0aW9uID09PSAwLFxuICAgIGRyYWdPdmVyR2FwVG9wOiBkcmFnT3Zlck5vZGVLZXkgPT09IGtleSAmJiBkcm9wUG9zaXRpb24gPT09IC0xLFxuICAgIGRyYWdPdmVyR2FwQm90dG9tOiBkcmFnT3Zlck5vZGVLZXkgPT09IGtleSAmJiBkcm9wUG9zaXRpb24gPT09IDFcbiAgfTtcbiAgcmV0dXJuIHRyZWVOb2RlUHJvcHM7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnROb2RlUHJvcHNUb0V2ZW50RGF0YShwcm9wcykge1xuICB2YXIgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICBleHBhbmRlZCA9IHByb3BzLmV4cGFuZGVkLFxuICAgICAgc2VsZWN0ZWQgPSBwcm9wcy5zZWxlY3RlZCxcbiAgICAgIGNoZWNrZWQgPSBwcm9wcy5jaGVja2VkLFxuICAgICAgbG9hZGVkID0gcHJvcHMubG9hZGVkLFxuICAgICAgbG9hZGluZyA9IHByb3BzLmxvYWRpbmcsXG4gICAgICBoYWxmQ2hlY2tlZCA9IHByb3BzLmhhbGZDaGVja2VkLFxuICAgICAgZHJhZ092ZXIgPSBwcm9wcy5kcmFnT3ZlcixcbiAgICAgIGRyYWdPdmVyR2FwVG9wID0gcHJvcHMuZHJhZ092ZXJHYXBUb3AsXG4gICAgICBkcmFnT3ZlckdhcEJvdHRvbSA9IHByb3BzLmRyYWdPdmVyR2FwQm90dG9tLFxuICAgICAgcG9zID0gcHJvcHMucG9zLFxuICAgICAgYWN0aXZlID0gcHJvcHMuYWN0aXZlO1xuICB2YXIgZXZlbnREYXRhID0gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKCgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgZGF0YSksIHt9LCB7XG4gICAgZXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICBjaGVja2VkOiBjaGVja2VkLFxuICAgIGxvYWRlZDogbG9hZGVkLFxuICAgIGxvYWRpbmc6IGxvYWRpbmcsXG4gICAgaGFsZkNoZWNrZWQ6IGhhbGZDaGVja2VkLFxuICAgIGRyYWdPdmVyOiBkcmFnT3ZlcixcbiAgICBkcmFnT3ZlckdhcFRvcDogZHJhZ092ZXJHYXBUb3AsXG4gICAgZHJhZ092ZXJHYXBCb3R0b206IGRyYWdPdmVyR2FwQm90dG9tLFxuICAgIHBvczogcG9zLFxuICAgIGFjdGl2ZTogYWN0aXZlXG4gIH0pO1xuXG4gIGlmICghKCdwcm9wcycgaW4gZXZlbnREYXRhKSkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShldmVudERhdGEsICdwcm9wcycsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgICAoMCwgX3dhcm5pbmcuZGVmYXVsdCkoZmFsc2UsICdTZWNvbmQgcGFyYW0gcmV0dXJuIGZyb20gZXZlbnQgaXMgbm9kZSBkYXRhIGluc3RlYWQgb2YgVHJlZU5vZGUgaW5zdGFuY2UuIFBsZWFzZSByZWFkIHZhbHVlIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVhZGluZyBmcm9tIGBwcm9wc2AuJyk7XG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBldmVudERhdGE7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfQ2hlY2tib3ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0NoZWNrYm94XCIpKTtcblxudmFyIF9Hcm91cCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vR3JvdXBcIikpO1xuXG52YXIgQ2hlY2tib3ggPSBfQ2hlY2tib3hbXCJkZWZhdWx0XCJdO1xuQ2hlY2tib3guR3JvdXAgPSBfR3JvdXBbXCJkZWZhdWx0XCJdO1xuQ2hlY2tib3guX19BTlRfQ0hFQ0tCT1ggPSB0cnVlO1xudmFyIF9kZWZhdWx0ID0gQ2hlY2tib3g7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9leHRlbmRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiKSk7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3JjQ2hlY2tib3ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1jaGVja2JveFwiKSk7XG5cbnZhciBfR3JvdXAgPSByZXF1aXJlKFwiLi9Hcm91cFwiKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfZGV2V2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL2Rldldhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgSW50ZXJuYWxDaGVja2JveCA9IGZ1bmN0aW9uIEludGVybmFsQ2hlY2tib3goX2EsIHJlZikge1xuICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgdmFyIGN1c3RvbWl6ZVByZWZpeENscyA9IF9hLnByZWZpeENscyxcbiAgICAgIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSxcbiAgICAgIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sXG4gICAgICBfYSRpbmRldGVybWluYXRlID0gX2EuaW5kZXRlcm1pbmF0ZSxcbiAgICAgIGluZGV0ZXJtaW5hdGUgPSBfYSRpbmRldGVybWluYXRlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hJGluZGV0ZXJtaW5hdGUsXG4gICAgICBzdHlsZSA9IF9hLnN0eWxlLFxuICAgICAgb25Nb3VzZUVudGVyID0gX2Eub25Nb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZUxlYXZlID0gX2Eub25Nb3VzZUxlYXZlLFxuICAgICAgX2Ekc2tpcEdyb3VwID0gX2Euc2tpcEdyb3VwLFxuICAgICAgc2tpcEdyb3VwID0gX2Ekc2tpcEdyb3VwID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hJHNraXBHcm91cCxcbiAgICAgIHJlc3RQcm9wcyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwiY2hpbGRyZW5cIiwgXCJpbmRldGVybWluYXRlXCIsIFwic3R5bGVcIiwgXCJvbk1vdXNlRW50ZXJcIiwgXCJvbk1vdXNlTGVhdmVcIiwgXCJza2lwR3JvdXBcIl0pO1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnRleHQpLFxuICAgICAgZ2V0UHJlZml4Q2xzID0gX1JlYWN0JHVzZUNvbnRleHQuZ2V0UHJlZml4Q2xzLFxuICAgICAgZGlyZWN0aW9uID0gX1JlYWN0JHVzZUNvbnRleHQuZGlyZWN0aW9uO1xuXG4gIHZhciBjaGVja2JveEdyb3VwID0gUmVhY3QudXNlQ29udGV4dChfR3JvdXAuR3JvdXBDb250ZXh0KTtcbiAgdmFyIHByZXZWYWx1ZSA9IFJlYWN0LnVzZVJlZihyZXN0UHJvcHMudmFsdWUpO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGNoZWNrYm94R3JvdXAgPT09IG51bGwgfHwgY2hlY2tib3hHcm91cCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hlY2tib3hHcm91cC5yZWdpc3RlclZhbHVlKHJlc3RQcm9wcy52YWx1ZSk7XG4gICAgKDAsIF9kZXZXYXJuaW5nW1wiZGVmYXVsdFwiXSkoJ2NoZWNrZWQnIGluIHJlc3RQcm9wcyB8fCAhIWNoZWNrYm94R3JvdXAgfHwgISgndmFsdWUnIGluIHJlc3RQcm9wcyksICdDaGVja2JveCcsICdgdmFsdWVgIGlzIG5vdCBhIHZhbGlkIHByb3AsIGRvIHlvdSBtZWFuIGBjaGVja2VkYD8nKTtcbiAgfSwgW10pO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChza2lwR3JvdXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocmVzdFByb3BzLnZhbHVlICE9PSBwcmV2VmFsdWUuY3VycmVudCkge1xuICAgICAgY2hlY2tib3hHcm91cCA9PT0gbnVsbCB8fCBjaGVja2JveEdyb3VwID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGVja2JveEdyb3VwLmNhbmNlbFZhbHVlKHByZXZWYWx1ZS5jdXJyZW50KTtcbiAgICAgIGNoZWNrYm94R3JvdXAgPT09IG51bGwgfHwgY2hlY2tib3hHcm91cCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hlY2tib3hHcm91cC5yZWdpc3RlclZhbHVlKHJlc3RQcm9wcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjaGVja2JveEdyb3VwID09PSBudWxsIHx8IGNoZWNrYm94R3JvdXAgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoZWNrYm94R3JvdXAuY2FuY2VsVmFsdWUocmVzdFByb3BzLnZhbHVlKTtcbiAgICB9O1xuICB9LCBbcmVzdFByb3BzLnZhbHVlXSk7XG4gIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2NoZWNrYm94JywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgdmFyIGNoZWNrYm94UHJvcHMgPSAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIHJlc3RQcm9wcyk7XG5cbiAgaWYgKGNoZWNrYm94R3JvdXAgJiYgIXNraXBHcm91cCkge1xuICAgIGNoZWNrYm94UHJvcHMub25DaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAocmVzdFByb3BzLm9uQ2hhbmdlKSB7XG4gICAgICAgIHJlc3RQcm9wcy5vbkNoYW5nZS5hcHBseShyZXN0UHJvcHMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGVja2JveEdyb3VwLnRvZ2dsZU9wdGlvbikge1xuICAgICAgICBjaGVja2JveEdyb3VwLnRvZ2dsZU9wdGlvbih7XG4gICAgICAgICAgbGFiZWw6IGNoaWxkcmVuLFxuICAgICAgICAgIHZhbHVlOiByZXN0UHJvcHMudmFsdWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNoZWNrYm94UHJvcHMubmFtZSA9IGNoZWNrYm94R3JvdXAubmFtZTtcbiAgICBjaGVja2JveFByb3BzLmNoZWNrZWQgPSBjaGVja2JveEdyb3VwLnZhbHVlLmluZGV4T2YocmVzdFByb3BzLnZhbHVlKSAhPT0gLTE7XG4gICAgY2hlY2tib3hQcm9wcy5kaXNhYmxlZCA9IHJlc3RQcm9wcy5kaXNhYmxlZCB8fCBjaGVja2JveEdyb3VwLmRpc2FibGVkO1xuICB9XG5cbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlclwiKSwgdHJ1ZSksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcnRsXCIpLCBkaXJlY3Rpb24gPT09ICdydGwnKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi13cmFwcGVyLWNoZWNrZWRcIiksIGNoZWNrYm94UHJvcHMuY2hlY2tlZCksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItd3JhcHBlci1kaXNhYmxlZFwiKSwgY2hlY2tib3hQcm9wcy5kaXNhYmxlZCksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKTtcbiAgdmFyIGNoZWNrYm94Q2xhc3MgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKSgoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWluZGV0ZXJtaW5hdGVcIiksIGluZGV0ZXJtaW5hdGUpKTtcbiAgcmV0dXJuIChcbiAgICAvKiNfX1BVUkVfXyovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L2xhYmVsLWhhcy1hc3NvY2lhdGVkLWNvbnRyb2xcbiAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZyxcbiAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgIG9uTW91c2VFbnRlcjogb25Nb3VzZUVudGVyLFxuICAgICAgb25Nb3VzZUxlYXZlOiBvbk1vdXNlTGVhdmVcbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNDaGVja2JveFtcImRlZmF1bHRcIl0sICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgY2hlY2tib3hQcm9wcywge1xuICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICBjbGFzc05hbWU6IGNoZWNrYm94Q2xhc3MsXG4gICAgICByZWY6IHJlZlxuICAgIH0pKSwgY2hpbGRyZW4gIT09IHVuZGVmaW5lZCAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgY2hpbGRyZW4pKVxuICApO1xufTtcblxudmFyIENoZWNrYm94ID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoSW50ZXJuYWxDaGVja2JveCk7XG5DaGVja2JveC5kaXNwbGF5TmFtZSA9ICdDaGVja2JveCc7XG52YXIgX2RlZmF1bHQgPSBDaGVja2JveDtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVja1wiO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3NcIjtcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2luaGVyaXRzXCI7XG5pbXBvcnQgX2NyZWF0ZVN1cGVyIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVTdXBlclwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG52YXIgQ2hlY2tib3ggPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKENoZWNrYm94LCBfQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKENoZWNrYm94KTtcblxuICBmdW5jdGlvbiBDaGVja2JveChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDaGVja2JveCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzLmRpc2FibGVkLFxuICAgICAgICAgIG9uQ2hhbmdlID0gX3RoaXMkcHJvcHMub25DaGFuZ2U7XG5cbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghKCdjaGVja2VkJyBpbiBfdGhpcy5wcm9wcykpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGNoZWNrZWQ6IGUudGFyZ2V0LmNoZWNrZWRcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbkNoYW5nZSkge1xuICAgICAgICBvbkNoYW5nZSh7XG4gICAgICAgICAgdGFyZ2V0OiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzLnByb3BzKSwge30sIHtcbiAgICAgICAgICAgIGNoZWNrZWQ6IGUudGFyZ2V0LmNoZWNrZWRcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uIHN0b3BQcm9wYWdhdGlvbigpIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gcHJldmVudERlZmF1bHQoKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBuYXRpdmVFdmVudDogZS5uYXRpdmVFdmVudFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuc2F2ZUlucHV0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLmlucHV0ID0gbm9kZTtcbiAgICB9O1xuXG4gICAgdmFyIGNoZWNrZWQgPSAnY2hlY2tlZCcgaW4gcHJvcHMgPyBwcm9wcy5jaGVja2VkIDogcHJvcHMuZGVmYXVsdENoZWNrZWQ7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBjaGVja2VkOiBjaGVja2VkXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQ2hlY2tib3gsIFt7XG4gICAga2V5OiBcImZvY3VzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGZvY3VzKCkge1xuICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJibHVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGJsdXIoKSB7XG4gICAgICB0aGlzLmlucHV0LmJsdXIoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMyLnByZWZpeENscyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczIuY2xhc3NOYW1lLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMyLnN0eWxlLFxuICAgICAgICAgIG5hbWUgPSBfdGhpcyRwcm9wczIubmFtZSxcbiAgICAgICAgICBpZCA9IF90aGlzJHByb3BzMi5pZCxcbiAgICAgICAgICB0eXBlID0gX3RoaXMkcHJvcHMyLnR5cGUsXG4gICAgICAgICAgZGlzYWJsZWQgPSBfdGhpcyRwcm9wczIuZGlzYWJsZWQsXG4gICAgICAgICAgcmVhZE9ubHkgPSBfdGhpcyRwcm9wczIucmVhZE9ubHksXG4gICAgICAgICAgdGFiSW5kZXggPSBfdGhpcyRwcm9wczIudGFiSW5kZXgsXG4gICAgICAgICAgb25DbGljayA9IF90aGlzJHByb3BzMi5vbkNsaWNrLFxuICAgICAgICAgIG9uRm9jdXMgPSBfdGhpcyRwcm9wczIub25Gb2N1cyxcbiAgICAgICAgICBvbkJsdXIgPSBfdGhpcyRwcm9wczIub25CbHVyLFxuICAgICAgICAgIG9uS2V5RG93biA9IF90aGlzJHByb3BzMi5vbktleURvd24sXG4gICAgICAgICAgb25LZXlQcmVzcyA9IF90aGlzJHByb3BzMi5vbktleVByZXNzLFxuICAgICAgICAgIG9uS2V5VXAgPSBfdGhpcyRwcm9wczIub25LZXlVcCxcbiAgICAgICAgICBhdXRvRm9jdXMgPSBfdGhpcyRwcm9wczIuYXV0b0ZvY3VzLFxuICAgICAgICAgIHZhbHVlID0gX3RoaXMkcHJvcHMyLnZhbHVlLFxuICAgICAgICAgIHJlcXVpcmVkID0gX3RoaXMkcHJvcHMyLnJlcXVpcmVkLFxuICAgICAgICAgIG90aGVycyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfdGhpcyRwcm9wczIsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwibmFtZVwiLCBcImlkXCIsIFwidHlwZVwiLCBcImRpc2FibGVkXCIsIFwicmVhZE9ubHlcIiwgXCJ0YWJJbmRleFwiLCBcIm9uQ2xpY2tcIiwgXCJvbkZvY3VzXCIsIFwib25CbHVyXCIsIFwib25LZXlEb3duXCIsIFwib25LZXlQcmVzc1wiLCBcIm9uS2V5VXBcIiwgXCJhdXRvRm9jdXNcIiwgXCJ2YWx1ZVwiLCBcInJlcXVpcmVkXCJdKTtcblxuICAgICAgdmFyIGdsb2JhbFByb3BzID0gT2JqZWN0LmtleXMob3RoZXJzKS5yZWR1Y2UoZnVuY3Rpb24gKHByZXYsIGtleSkge1xuICAgICAgICBpZiAoa2V5LnN1YnN0cigwLCA1KSA9PT0gJ2FyaWEtJyB8fCBrZXkuc3Vic3RyKDAsIDUpID09PSAnZGF0YS0nIHx8IGtleSA9PT0gJ3JvbGUnKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICAgICAgcHJldltrZXldID0gb3RoZXJzW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0sIHt9KTtcbiAgICAgIHZhciBjaGVja2VkID0gdGhpcy5zdGF0ZS5jaGVja2VkO1xuICAgICAgdmFyIGNsYXNzU3RyaW5nID0gY2xhc3NOYW1lcyhwcmVmaXhDbHMsIGNsYXNzTmFtZSwgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jaGVja2VkXCIpLCBjaGVja2VkKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRpc2FibGVkXCIpLCBkaXNhYmxlZCksIF9jbGFzc05hbWVzKSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc1N0cmluZyxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIF9leHRlbmRzKHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgaWQ6IGlkLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICByZXF1aXJlZDogcmVxdWlyZWQsXG4gICAgICAgIHJlYWRPbmx5OiByZWFkT25seSxcbiAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxuICAgICAgICB0YWJJbmRleDogdGFiSW5kZXgsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbnB1dFwiKSxcbiAgICAgICAgY2hlY2tlZDogISFjaGVja2VkLFxuICAgICAgICBvbkNsaWNrOiBvbkNsaWNrLFxuICAgICAgICBvbkZvY3VzOiBvbkZvY3VzLFxuICAgICAgICBvbkJsdXI6IG9uQmx1cixcbiAgICAgICAgb25LZXlVcDogb25LZXlVcCxcbiAgICAgICAgb25LZXlEb3duOiBvbktleURvd24sXG4gICAgICAgIG9uS2V5UHJlc3M6IG9uS2V5UHJlc3MsXG4gICAgICAgIG9uQ2hhbmdlOiB0aGlzLmhhbmRsZUNoYW5nZSxcbiAgICAgICAgYXV0b0ZvY3VzOiBhdXRvRm9jdXMsXG4gICAgICAgIHJlZjogdGhpcy5zYXZlSW5wdXQsXG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfSwgZ2xvYmFsUHJvcHMpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWlubmVyXCIpXG4gICAgICB9KSk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIGlmICgnY2hlY2tlZCcgaW4gcHJvcHMpIHtcbiAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3RhdGUpLCB7fSwge1xuICAgICAgICAgIGNoZWNrZWQ6IHByb3BzLmNoZWNrZWRcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDaGVja2JveDtcbn0oQ29tcG9uZW50KTtcblxuQ2hlY2tib3guZGVmYXVsdFByb3BzID0ge1xuICBwcmVmaXhDbHM6ICdyYy1jaGVja2JveCcsXG4gIGNsYXNzTmFtZTogJycsXG4gIHN0eWxlOiB7fSxcbiAgdHlwZTogJ2NoZWNrYm94JyxcbiAgZGVmYXVsdENoZWNrZWQ6IGZhbHNlLFxuICBvbkZvY3VzOiBmdW5jdGlvbiBvbkZvY3VzKCkge30sXG4gIG9uQmx1cjogZnVuY3Rpb24gb25CbHVyKCkge30sXG4gIG9uQ2hhbmdlOiBmdW5jdGlvbiBvbkNoYW5nZSgpIHt9LFxuICBvbktleURvd246IGZ1bmN0aW9uIG9uS2V5RG93bigpIHt9LFxuICBvbktleVByZXNzOiBmdW5jdGlvbiBvbktleVByZXNzKCkge30sXG4gIG9uS2V5VXA6IGZ1bmN0aW9uIG9uS2V5VXAoKSB7fVxufTtcbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuR3JvdXBDb250ZXh0ID0gdm9pZCAwO1xuXG52YXIgX2V4dGVuZHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzXCIpKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF90b0NvbnN1bWFibGVBcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5XCIpKTtcblxudmFyIF9zbGljZWRUb0FycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheVwiKSk7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi9vbWl0XCIpKTtcblxudmFyIF9DaGVja2JveCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vQ2hlY2tib3hcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7IH0pKG5vZGVJbnRlcm9wKTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7IGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIEdyb3VwQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0cy5Hcm91cENvbnRleHQgPSBHcm91cENvbnRleHQ7XG5cbnZhciBJbnRlcm5hbENoZWNrYm94R3JvdXAgPSBmdW5jdGlvbiBJbnRlcm5hbENoZWNrYm94R3JvdXAoX2EsIHJlZikge1xuICB2YXIgZGVmYXVsdFZhbHVlID0gX2EuZGVmYXVsdFZhbHVlLFxuICAgICAgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbixcbiAgICAgIF9hJG9wdGlvbnMgPSBfYS5vcHRpb25zLFxuICAgICAgb3B0aW9ucyA9IF9hJG9wdGlvbnMgPT09IHZvaWQgMCA/IFtdIDogX2Ekb3B0aW9ucyxcbiAgICAgIGN1c3RvbWl6ZVByZWZpeENscyA9IF9hLnByZWZpeENscyxcbiAgICAgIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSxcbiAgICAgIHN0eWxlID0gX2Euc3R5bGUsXG4gICAgICBvbkNoYW5nZSA9IF9hLm9uQ2hhbmdlLFxuICAgICAgcmVzdFByb3BzID0gX19yZXN0KF9hLCBbXCJkZWZhdWx0VmFsdWVcIiwgXCJjaGlsZHJlblwiLCBcIm9wdGlvbnNcIiwgXCJwcmVmaXhDbHNcIiwgXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcIm9uQ2hhbmdlXCJdKTtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KF9jb25maWdQcm92aWRlci5Db25maWdDb250ZXh0KSxcbiAgICAgIGdldFByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUocmVzdFByb3BzLnZhbHVlIHx8IGRlZmF1bHRWYWx1ZSB8fCBbXSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gKDAsIF9zbGljZWRUb0FycmF5MltcImRlZmF1bHRcIl0pKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgICB2YWx1ZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRWYWx1ZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTMgPSBSZWFjdC51c2VTdGF0ZShbXSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGU0ID0gKDAsIF9zbGljZWRUb0FycmF5MltcImRlZmF1bHRcIl0pKF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgICAgcmVnaXN0ZXJlZFZhbHVlcyA9IF9SZWFjdCR1c2VTdGF0ZTRbMF0sXG4gICAgICBzZXRSZWdpc3RlcmVkVmFsdWVzID0gX1JlYWN0JHVzZVN0YXRlNFsxXTtcblxuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmICgndmFsdWUnIGluIHJlc3RQcm9wcykge1xuICAgICAgc2V0VmFsdWUocmVzdFByb3BzLnZhbHVlIHx8IFtdKTtcbiAgICB9XG4gIH0sIFtyZXN0UHJvcHMudmFsdWVdKTtcblxuICB2YXIgZ2V0T3B0aW9ucyA9IGZ1bmN0aW9uIGdldE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhYmVsOiBvcHRpb24sXG4gICAgICAgICAgdmFsdWU6IG9wdGlvblxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciBjYW5jZWxWYWx1ZSA9IGZ1bmN0aW9uIGNhbmNlbFZhbHVlKHZhbCkge1xuICAgIHNldFJlZ2lzdGVyZWRWYWx1ZXMoZnVuY3Rpb24gKHByZXZWYWx1ZXMpIHtcbiAgICAgIHJldHVybiBwcmV2VmFsdWVzLmZpbHRlcihmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdiAhPT0gdmFsO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG5cbiAgdmFyIHJlZ2lzdGVyVmFsdWUgPSBmdW5jdGlvbiByZWdpc3RlclZhbHVlKHZhbCkge1xuICAgIHNldFJlZ2lzdGVyZWRWYWx1ZXMoZnVuY3Rpb24gKHByZXZWYWx1ZXMpIHtcbiAgICAgIHJldHVybiBbXS5jb25jYXQoKDAsIF90b0NvbnN1bWFibGVBcnJheTJbXCJkZWZhdWx0XCJdKShwcmV2VmFsdWVzKSwgW3ZhbF0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciB0b2dnbGVPcHRpb24gPSBmdW5jdGlvbiB0b2dnbGVPcHRpb24ob3B0aW9uKSB7XG4gICAgdmFyIG9wdGlvbkluZGV4ID0gdmFsdWUuaW5kZXhPZihvcHRpb24udmFsdWUpO1xuICAgIHZhciBuZXdWYWx1ZSA9ICgwLCBfdG9Db25zdW1hYmxlQXJyYXkyW1wiZGVmYXVsdFwiXSkodmFsdWUpO1xuXG4gICAgaWYgKG9wdGlvbkluZGV4ID09PSAtMSkge1xuICAgICAgbmV3VmFsdWUucHVzaChvcHRpb24udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWYWx1ZS5zcGxpY2Uob3B0aW9uSW5kZXgsIDEpO1xuICAgIH1cblxuICAgIGlmICghKCd2YWx1ZScgaW4gcmVzdFByb3BzKSkge1xuICAgICAgc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIH1cblxuICAgIHZhciBvcHRzID0gZ2V0T3B0aW9ucygpO1xuICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXdWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcmV0dXJuIHJlZ2lzdGVyZWRWYWx1ZXMuaW5kZXhPZih2YWwpICE9PSAtMTtcbiAgICB9KS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICB2YXIgaW5kZXhBID0gb3B0cy5maW5kSW5kZXgoZnVuY3Rpb24gKG9wdCkge1xuICAgICAgICByZXR1cm4gb3B0LnZhbHVlID09PSBhO1xuICAgICAgfSk7XG4gICAgICB2YXIgaW5kZXhCID0gb3B0cy5maW5kSW5kZXgoZnVuY3Rpb24gKG9wdCkge1xuICAgICAgICByZXR1cm4gb3B0LnZhbHVlID09PSBiO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gaW5kZXhBIC0gaW5kZXhCO1xuICAgIH0pKTtcbiAgfTtcblxuICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdjaGVja2JveCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gIHZhciBncm91cFByZWZpeENscyA9IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZ3JvdXBcIik7XG4gIHZhciBkb21Qcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHJlc3RQcm9wcywgWyd2YWx1ZScsICdkaXNhYmxlZCddKTtcblxuICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICBjaGlsZHJlbiA9IGdldE9wdGlvbnMoKS5tYXAoZnVuY3Rpb24gKG9wdGlvbikge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9DaGVja2JveFtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGtleTogb3B0aW9uLnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgIGRpc2FibGVkOiAnZGlzYWJsZWQnIGluIG9wdGlvbiA/IG9wdGlvbi5kaXNhYmxlZCA6IHJlc3RQcm9wcy5kaXNhYmxlZCxcbiAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgY2hlY2tlZDogdmFsdWUuaW5kZXhPZihvcHRpb24udmFsdWUpICE9PSAtMSxcbiAgICAgICAgb25DaGFuZ2U6IG9wdGlvbi5vbkNoYW5nZSxcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChncm91cFByZWZpeENscywgXCItaXRlbVwiKSxcbiAgICAgICAgc3R5bGU6IG9wdGlvbi5zdHlsZVxuICAgICAgfSwgb3B0aW9uLmxhYmVsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBjb250ZXh0ID0ge1xuICAgIHRvZ2dsZU9wdGlvbjogdG9nZ2xlT3B0aW9uLFxuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBkaXNhYmxlZDogcmVzdFByb3BzLmRpc2FibGVkLFxuICAgIG5hbWU6IHJlc3RQcm9wcy5uYW1lLFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE2Mzc2XG4gICAgcmVnaXN0ZXJWYWx1ZTogcmVnaXN0ZXJWYWx1ZSxcbiAgICBjYW5jZWxWYWx1ZTogY2FuY2VsVmFsdWVcbiAgfTtcbiAgdmFyIGNsYXNzU3RyaW5nID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoZ3JvdXBQcmVmaXhDbHMsICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoe30sIFwiXCIuY29uY2F0KGdyb3VwUHJlZml4Q2xzLCBcIi1ydGxcIiksIGRpcmVjdGlvbiA9PT0gJ3J0bCcpLCBjbGFzc05hbWUpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHtcbiAgICBjbGFzc05hbWU6IGNsYXNzU3RyaW5nLFxuICAgIHN0eWxlOiBzdHlsZVxuICB9LCBkb21Qcm9wcywge1xuICAgIHJlZjogcmVmXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChHcm91cENvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogY29udGV4dFxuICB9LCBjaGlsZHJlbikpO1xufTtcblxudmFyIENoZWNrYm94R3JvdXAgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihJbnRlcm5hbENoZWNrYm94R3JvdXApO1xuXG52YXIgX2RlZmF1bHQgPSAvKiNfX1BVUkVfXyovUmVhY3QubWVtbyhDaGVja2JveEdyb3VwKTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kcm9wZG93biA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZHJvcGRvd25cIikpO1xuXG52YXIgX2RlZmF1bHQgPSBfZHJvcGRvd25bXCJkZWZhdWx0XCJdO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbnZhciBfdHlwZW9mID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JjRHJvcGRvd24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1kcm9wZG93blwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX1JpZ2h0T3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9SaWdodE91dGxpbmVkXCIpKTtcblxudmFyIF9kcm9wZG93bkJ1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZHJvcGRvd24tYnV0dG9uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfZGV2V2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL2Rldldhcm5pbmdcIikpO1xuXG52YXIgX3R5cGUgPSByZXF1aXJlKFwiLi4vX3V0aWwvdHlwZVwiKTtcblxudmFyIF9yZWFjdE5vZGUgPSByZXF1aXJlKFwiLi4vX3V0aWwvcmVhY3ROb2RlXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBQbGFjZW1lbnRzID0gKDAsIF90eXBlLnR1cGxlKSgndG9wTGVmdCcsICd0b3BDZW50ZXInLCAndG9wUmlnaHQnLCAnYm90dG9tTGVmdCcsICdib3R0b21DZW50ZXInLCAnYm90dG9tUmlnaHQnKTtcblxudmFyIERyb3Bkb3duID0gZnVuY3Rpb24gRHJvcGRvd24ocHJvcHMpIHtcbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29udGV4dCksXG4gICAgICBnZXRDb250ZXh0UG9wdXBDb250YWluZXIgPSBfUmVhY3QkdXNlQ29udGV4dC5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgIGdldFByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICB2YXIgZ2V0VHJhbnNpdGlvbk5hbWUgPSBmdW5jdGlvbiBnZXRUcmFuc2l0aW9uTmFtZSgpIHtcbiAgICB2YXIgcm9vdFByZWZpeENscyA9IGdldFByZWZpeENscygpO1xuICAgIHZhciBfcHJvcHMkcGxhY2VtZW50ID0gcHJvcHMucGxhY2VtZW50LFxuICAgICAgICBwbGFjZW1lbnQgPSBfcHJvcHMkcGxhY2VtZW50ID09PSB2b2lkIDAgPyAnJyA6IF9wcm9wcyRwbGFjZW1lbnQsXG4gICAgICAgIHRyYW5zaXRpb25OYW1lID0gcHJvcHMudHJhbnNpdGlvbk5hbWU7XG5cbiAgICBpZiAodHJhbnNpdGlvbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRyYW5zaXRpb25OYW1lO1xuICAgIH1cblxuICAgIGlmIChwbGFjZW1lbnQuaW5kZXhPZigndG9wJykgPj0gMCkge1xuICAgICAgcmV0dXJuIFwiXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLXNsaWRlLWRvd25cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLXNsaWRlLXVwXCIpO1xuICB9O1xuXG4gIHZhciByZW5kZXJPdmVybGF5ID0gZnVuY3Rpb24gcmVuZGVyT3ZlcmxheShwcmVmaXhDbHMpIHtcbiAgICAvLyByYy1kcm9wZG93biBhbHJlYWR5IGNhbiBwcm9jZXNzIHRoZSBmdW5jdGlvbiBvZiBvdmVybGF5LCBidXQgd2UgaGF2ZSBjaGVjayBsb2dpYyBoZXJlLlxuICAgIC8vIFNvIHdlIG5lZWQgcmVuZGVyIHRoZSBlbGVtZW50IHRvIGNoZWNrIGFuZCBwYXNzIGJhY2sgdG8gcmMtZHJvcGRvd24uXG4gICAgdmFyIG92ZXJsYXkgPSBwcm9wcy5vdmVybGF5O1xuICAgIHZhciBvdmVybGF5Tm9kZTtcblxuICAgIGlmICh0eXBlb2Ygb3ZlcmxheSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb3ZlcmxheU5vZGUgPSBvdmVybGF5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG92ZXJsYXlOb2RlID0gb3ZlcmxheTtcbiAgICB9XG5cbiAgICBvdmVybGF5Tm9kZSA9IFJlYWN0LkNoaWxkcmVuLm9ubHkodHlwZW9mIG92ZXJsYXlOb2RlID09PSAnc3RyaW5nJyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBvdmVybGF5Tm9kZSkgOiBvdmVybGF5Tm9kZSk7XG4gICAgdmFyIG92ZXJsYXlQcm9wcyA9IG92ZXJsYXlOb2RlLnByb3BzOyAvLyBXYXJuaW5nIGlmIHVzZSBvdGhlciBtb2RlXG5cbiAgICAoMCwgX2Rldldhcm5pbmdbXCJkZWZhdWx0XCJdKSghb3ZlcmxheVByb3BzLm1vZGUgfHwgb3ZlcmxheVByb3BzLm1vZGUgPT09ICd2ZXJ0aWNhbCcsICdEcm9wZG93bicsIFwibW9kZT1cXFwiXCIuY29uY2F0KG92ZXJsYXlQcm9wcy5tb2RlLCBcIlxcXCIgaXMgbm90IHN1cHBvcnRlZCBmb3IgRHJvcGRvd24ncyBNZW51LlwiKSk7IC8vIG1lbnUgY2Fubm90IGJlIHNlbGVjdGFibGUgaW4gZHJvcGRvd24gZGVmYXVsdGx5XG4gICAgLy8gbWVudSBzaG91bGQgYmUgZm9jdXNhYmxlIGluIGRyb3Bkb3duIGRlZmF1bHRseVxuXG4gICAgdmFyIF9vdmVybGF5UHJvcHMkc2VsZWN0YSA9IG92ZXJsYXlQcm9wcy5zZWxlY3RhYmxlLFxuICAgICAgICBzZWxlY3RhYmxlID0gX292ZXJsYXlQcm9wcyRzZWxlY3RhID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vdmVybGF5UHJvcHMkc2VsZWN0YSxcbiAgICAgICAgX292ZXJsYXlQcm9wcyRmb2N1c2FiID0gb3ZlcmxheVByb3BzLmZvY3VzYWJsZSxcbiAgICAgICAgZm9jdXNhYmxlID0gX292ZXJsYXlQcm9wcyRmb2N1c2FiID09PSB2b2lkIDAgPyB0cnVlIDogX292ZXJsYXlQcm9wcyRmb2N1c2FiLFxuICAgICAgICBleHBhbmRJY29uID0gb3ZlcmxheVByb3BzLmV4cGFuZEljb247XG4gICAgdmFyIG92ZXJsYXlOb2RlRXhwYW5kSWNvbiA9IHR5cGVvZiBleHBhbmRJY29uICE9PSAndW5kZWZpbmVkJyAmJiAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoZXhwYW5kSWNvbikgPyBleHBhbmRJY29uIDogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tZW51LXN1Ym1lbnUtYXJyb3dcIilcbiAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfUmlnaHRPdXRsaW5lZFtcImRlZmF1bHRcIl0sIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1tZW51LXN1Ym1lbnUtYXJyb3ctaWNvblwiKVxuICAgIH0pKTtcbiAgICB2YXIgZml4ZWRNb2RlT3ZlcmxheSA9IHR5cGVvZiBvdmVybGF5Tm9kZS50eXBlID09PSAnc3RyaW5nJyA/IG92ZXJsYXlOb2RlIDogKDAsIF9yZWFjdE5vZGUuY2xvbmVFbGVtZW50KShvdmVybGF5Tm9kZSwge1xuICAgICAgbW9kZTogJ3ZlcnRpY2FsJyxcbiAgICAgIHNlbGVjdGFibGU6IHNlbGVjdGFibGUsXG4gICAgICBmb2N1c2FibGU6IGZvY3VzYWJsZSxcbiAgICAgIGV4cGFuZEljb246IG92ZXJsYXlOb2RlRXhwYW5kSWNvblxuICAgIH0pO1xuICAgIHJldHVybiBmaXhlZE1vZGVPdmVybGF5O1xuICB9O1xuXG4gIHZhciBnZXRQbGFjZW1lbnQgPSBmdW5jdGlvbiBnZXRQbGFjZW1lbnQoKSB7XG4gICAgdmFyIHBsYWNlbWVudCA9IHByb3BzLnBsYWNlbWVudDtcblxuICAgIGlmIChwbGFjZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHBsYWNlbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGlyZWN0aW9uID09PSAncnRsJyA/ICdib3R0b21SaWdodCcgOiAnYm90dG9tTGVmdCc7XG4gIH07XG5cbiAgdmFyIGFycm93ID0gcHJvcHMuYXJyb3csXG4gICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgdHJpZ2dlciA9IHByb3BzLnRyaWdnZXIsXG4gICAgICBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkLFxuICAgICAgZ2V0UG9wdXBDb250YWluZXIgPSBwcm9wcy5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlDbGFzc05hbWUgPSBwcm9wcy5vdmVybGF5Q2xhc3NOYW1lO1xuICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdkcm9wZG93bicsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gIHZhciBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pO1xuICB2YXIgZHJvcGRvd25UcmlnZ2VyID0gKDAsIF9yZWFjdE5vZGUuY2xvbmVFbGVtZW50KShjaGlsZCwge1xuICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10cmlnZ2VyXCIpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJyksIGNoaWxkLnByb3BzLmNsYXNzTmFtZSksXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gIH0pO1xuICB2YXIgb3ZlcmxheUNsYXNzTmFtZUN1c3RvbWl6ZWQgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShvdmVybGF5Q2xhc3NOYW1lLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJykpO1xuICB2YXIgdHJpZ2dlckFjdGlvbnMgPSBkaXNhYmxlZCA/IFtdIDogdHJpZ2dlcjtcbiAgdmFyIGFsaWduUG9pbnQ7XG5cbiAgaWYgKHRyaWdnZXJBY3Rpb25zICYmIHRyaWdnZXJBY3Rpb25zLmluZGV4T2YoJ2NvbnRleHRNZW51JykgIT09IC0xKSB7XG4gICAgYWxpZ25Qb2ludCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjRHJvcGRvd25bXCJkZWZhdWx0XCJdLCAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe1xuICAgIGFycm93OiBhcnJvdyxcbiAgICBhbGlnblBvaW50OiBhbGlnblBvaW50XG4gIH0sIHByb3BzLCB7XG4gICAgb3ZlcmxheUNsYXNzTmFtZTogb3ZlcmxheUNsYXNzTmFtZUN1c3RvbWl6ZWQsXG4gICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgZ2V0UG9wdXBDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyIHx8IGdldENvbnRleHRQb3B1cENvbnRhaW5lcixcbiAgICB0cmFuc2l0aW9uTmFtZTogZ2V0VHJhbnNpdGlvbk5hbWUoKSxcbiAgICB0cmlnZ2VyOiB0cmlnZ2VyQWN0aW9ucyxcbiAgICBvdmVybGF5OiBmdW5jdGlvbiBvdmVybGF5KCkge1xuICAgICAgcmV0dXJuIHJlbmRlck92ZXJsYXkocHJlZml4Q2xzKTtcbiAgICB9LFxuICAgIHBsYWNlbWVudDogZ2V0UGxhY2VtZW50KClcbiAgfSksIGRyb3Bkb3duVHJpZ2dlcik7XG59O1xuXG5Ecm9wZG93bi5CdXR0b24gPSBfZHJvcGRvd25CdXR0b25bXCJkZWZhdWx0XCJdO1xuRHJvcGRvd24uZGVmYXVsdFByb3BzID0ge1xuICBtb3VzZUVudGVyRGVsYXk6IDAuMTUsXG4gIG1vdXNlTGVhdmVEZWxheTogMC4xXG59O1xudmFyIF9kZWZhdWx0ID0gRHJvcGRvd247XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2J1dHRvbiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vYnV0dG9uXCIpKTtcblxudmFyIF9kZWZhdWx0ID0gX2J1dHRvbltcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gd3JhcHBlclJhZjtcblxudmFyIHJhZiA9IGZ1bmN0aW9uIHJhZihjYWxsYmFjaykge1xuICByZXR1cm4gK3NldFRpbWVvdXQoY2FsbGJhY2ssIDE2KTtcbn07XG5cbnZhciBjYWYgPSBmdW5jdGlvbiBjYWYobnVtKSB7XG4gIHJldHVybiBjbGVhclRpbWVvdXQobnVtKTtcbn07XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAncmVxdWVzdEFuaW1hdGlvbkZyYW1lJyBpbiB3aW5kb3cpIHtcbiAgcmFmID0gZnVuY3Rpb24gcmFmKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spO1xuICB9O1xuXG4gIGNhZiA9IGZ1bmN0aW9uIGNhZihoYW5kbGUpIHtcbiAgICByZXR1cm4gd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGhhbmRsZSk7XG4gIH07XG59XG5cbnZhciByYWZVVUlEID0gMDtcbnZhciByYWZJZHMgPSBuZXcgTWFwKCk7XG5cbmZ1bmN0aW9uIGNsZWFudXAoaWQpIHtcbiAgcmFmSWRzLmRlbGV0ZShpZCk7XG59XG5cbmZ1bmN0aW9uIHdyYXBwZXJSYWYoY2FsbGJhY2spIHtcbiAgdmFyIHRpbWVzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAxO1xuICByYWZVVUlEICs9IDE7XG4gIHZhciBpZCA9IHJhZlVVSUQ7XG5cbiAgZnVuY3Rpb24gY2FsbFJlZihsZWZ0VGltZXMpIHtcbiAgICBpZiAobGVmdFRpbWVzID09PSAwKSB7XG4gICAgICAvLyBDbGVhbiB1cFxuICAgICAgY2xlYW51cChpZCk7IC8vIFRyaWdnZXJcblxuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmV4dCByYWZcbiAgICAgIHZhciByZWFsSWQgPSByYWYoZnVuY3Rpb24gKCkge1xuICAgICAgICBjYWxsUmVmKGxlZnRUaW1lcyAtIDEpO1xuICAgICAgfSk7IC8vIEJpbmQgcmVhbCByYWYgaWRcblxuICAgICAgcmFmSWRzLnNldChpZCwgcmVhbElkKTtcbiAgICB9XG4gIH1cblxuICBjYWxsUmVmKHRpbWVzKTtcbiAgcmV0dXJuIGlkO1xufVxuXG53cmFwcGVyUmFmLmNhbmNlbCA9IGZ1bmN0aW9uIChpZCkge1xuICB2YXIgcmVhbElkID0gcmFmSWRzLmdldChpZCk7XG4gIGNsZWFudXAocmVhbElkKTtcbiAgcmV0dXJuIGNhZihyZWFsSWQpO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbnZhciBfdHlwZW9mID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdHlwZW9mXCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIikpO1xuXG52YXIgX2NyZWF0ZUNsYXNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3NcIikpO1xuXG52YXIgX2luaGVyaXRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHNcIikpO1xuXG52YXIgX2NyZWF0ZVN1cGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlU3VwZXJcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JjTWVudSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyYy1tZW51XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfU3ViTWVudSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vU3ViTWVudVwiKSk7XG5cbnZhciBfTWVudUl0ZW0gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL01lbnVJdGVtXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfZGV2V2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL2Rldldhcm5pbmdcIikpO1xuXG52YXIgX1NpZGVyID0gcmVxdWlyZShcIi4uL2xheW91dC9TaWRlclwiKTtcblxudmFyIF9tb3Rpb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC9tb3Rpb25cIikpO1xuXG52YXIgX3JlYWN0Tm9kZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC9yZWFjdE5vZGVcIik7XG5cbnZhciBfTWVudUNvbnRleHQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL01lbnVDb250ZXh0XCIpKTtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7IH0pKG5vZGVJbnRlcm9wKTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7IGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgSW50ZXJuYWxNZW51ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICgwLCBfaW5oZXJpdHMyW1wiZGVmYXVsdFwiXSkoSW50ZXJuYWxNZW51LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gKDAsIF9jcmVhdGVTdXBlcjJbXCJkZWZhdWx0XCJdKShJbnRlcm5hbE1lbnUpO1xuXG4gIGZ1bmN0aW9uIEludGVybmFsTWVudShwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syW1wiZGVmYXVsdFwiXSkodGhpcywgSW50ZXJuYWxNZW51KTtcbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLnJlbmRlck1lbnUgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGdldFBvcHVwQ29udGFpbmVyID0gX3JlZi5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscyxcbiAgICAgICAgICBkaXJlY3Rpb24gPSBfcmVmLmRpcmVjdGlvbjtcbiAgICAgIHZhciByb290UHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCk7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBfdGhpcyRwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIHRoZW1lID0gX3RoaXMkcHJvcHMudGhlbWUsXG4gICAgICAgICAgZXhwYW5kSWNvbiA9IF90aGlzJHByb3BzLmV4cGFuZEljb247XG4gICAgICB2YXIgZGVmYXVsdE1vdGlvbnMgPSB7XG4gICAgICAgIGhvcml6b250YWw6IHtcbiAgICAgICAgICBtb3Rpb25OYW1lOiBcIlwiLmNvbmNhdChyb290UHJlZml4Q2xzLCBcIi1zbGlkZS11cFwiKVxuICAgICAgICB9LFxuICAgICAgICBpbmxpbmU6IF9tb3Rpb25bXCJkZWZhdWx0XCJdLFxuICAgICAgICBvdGhlcjoge1xuICAgICAgICAgIG1vdGlvbk5hbWU6IFwiXCIuY29uY2F0KHJvb3RQcmVmaXhDbHMsIFwiLXpvb20tYmlnXCIpXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdtZW51JywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgIHZhciBtZW51Q2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHRoZW1lKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pbmxpbmUtY29sbGFwc2VkXCIpLCBfdGhpcy5nZXRJbmxpbmVDb2xsYXBzZWQoKSksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX01lbnVDb250ZXh0W1wiZGVmYXVsdFwiXS5Qcm92aWRlciwge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGlubGluZUNvbGxhcHNlZDogX3RoaXMuZ2V0SW5saW5lQ29sbGFwc2VkKCkgfHwgZmFsc2UsXG4gICAgICAgICAgYW50ZE1lbnVUaGVtZTogdGhlbWUsXG4gICAgICAgICAgZGlyZWN0aW9uOiBkaXJlY3Rpb25cbiAgICAgICAgfVxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjTWVudVtcImRlZmF1bHRcIl0sICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7XG4gICAgICAgIGdldFBvcHVwQ29udGFpbmVyOiBnZXRQb3B1cENvbnRhaW5lclxuICAgICAgfSwgX3RoaXMucHJvcHMsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBtZW51Q2xhc3NOYW1lLFxuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgZGlyZWN0aW9uOiBkaXJlY3Rpb24sXG4gICAgICAgIGRlZmF1bHRNb3Rpb25zOiBkZWZhdWx0TW90aW9ucyxcbiAgICAgICAgZXhwYW5kSWNvbjogKDAsIF9yZWFjdE5vZGUuY2xvbmVFbGVtZW50KShleHBhbmRJY29uLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXN1Ym1lbnUtZXhwYW5kLWljb25cIilcbiAgICAgICAgfSlcbiAgICAgIH0pKSk7XG4gICAgfTtcblxuICAgICgwLCBfZGV2V2FybmluZ1tcImRlZmF1bHRcIl0pKCEoJ2lubGluZUNvbGxhcHNlZCcgaW4gcHJvcHMgJiYgcHJvcHMubW9kZSAhPT0gJ2lubGluZScpLCAnTWVudScsICdgaW5saW5lQ29sbGFwc2VkYCBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gYG1vZGVgIGlzIGlubGluZS4nKTtcbiAgICAoMCwgX2Rldldhcm5pbmdbXCJkZWZhdWx0XCJdKSghKHByb3BzLnNpZGVyQ29sbGFwc2VkICE9PSB1bmRlZmluZWQgJiYgJ2lubGluZUNvbGxhcHNlZCcgaW4gcHJvcHMpLCAnTWVudScsICdgaW5saW5lQ29sbGFwc2VkYCBub3QgY29udHJvbCBNZW51IHVuZGVyIFNpZGVyLiBTaG91bGQgc2V0IGBjb2xsYXBzZWRgIG9uIFNpZGVyIGluc3RlYWQuJyk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczJbXCJkZWZhdWx0XCJdKShJbnRlcm5hbE1lbnUsIFt7XG4gICAga2V5OiBcImdldElubGluZUNvbGxhcHNlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRJbmxpbmVDb2xsYXBzZWQoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBpbmxpbmVDb2xsYXBzZWQgPSBfdGhpcyRwcm9wczIuaW5saW5lQ29sbGFwc2VkLFxuICAgICAgICAgIHNpZGVyQ29sbGFwc2VkID0gX3RoaXMkcHJvcHMyLnNpZGVyQ29sbGFwc2VkO1xuXG4gICAgICBpZiAoc2lkZXJDb2xsYXBzZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2lkZXJDb2xsYXBzZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmxpbmVDb2xsYXBzZWQ7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlck1lbnUpO1xuICAgIH1cbiAgfV0pO1xuICByZXR1cm4gSW50ZXJuYWxNZW51O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5JbnRlcm5hbE1lbnUuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICB0aGVtZTogJ2xpZ2h0JyxcbiAgZm9jdXNhYmxlOiBmYWxzZVxufTsgLy8gV2Ugc2hvdWxkIGtlZXAgdGhpcyBhcyByZWYtYWJsZVxuXG52YXIgTWVudSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudDIpIHtcbiAgKDAsIF9pbmhlcml0czJbXCJkZWZhdWx0XCJdKShNZW51LCBfUmVhY3QkQ29tcG9uZW50Mik7XG5cbiAgdmFyIF9zdXBlcjIgPSAoMCwgX2NyZWF0ZVN1cGVyMltcImRlZmF1bHRcIl0pKE1lbnUpO1xuXG4gIGZ1bmN0aW9uIE1lbnUoKSB7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazJbXCJkZWZhdWx0XCJdKSh0aGlzLCBNZW51KTtcbiAgICByZXR1cm4gX3N1cGVyMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczJbXCJkZWZhdWx0XCJdKShNZW51LCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfU2lkZXIuU2lkZXJDb250ZXh0LkNvbnN1bWVyLCBudWxsLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSW50ZXJuYWxNZW51LCAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIF90aGlzMi5wcm9wcywgY29udGV4dCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBNZW51O1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5NZW51LkRpdmlkZXIgPSBfcmNNZW51LkRpdmlkZXI7XG5NZW51Lkl0ZW0gPSBfTWVudUl0ZW1bXCJkZWZhdWx0XCJdO1xuTWVudS5TdWJNZW51ID0gX1N1Yk1lbnVbXCJkZWZhdWx0XCJdO1xuTWVudS5JdGVtR3JvdXAgPSBfcmNNZW51Lkl0ZW1Hcm91cDtcbnZhciBfZGVmYXVsdCA9IE1lbnU7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9zbGljZWRUb0FycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheVwiKSk7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JjVG9vbHRpcCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXRvb2x0aXBcIikpO1xuXG52YXIgX3VzZU1lcmdlZFN0YXRlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL2hvb2tzL3VzZU1lcmdlZFN0YXRlXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfcGxhY2VtZW50cyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcGxhY2VtZW50c1wiKSk7XG5cbnZhciBfcmVhY3ROb2RlID0gcmVxdWlyZShcIi4uL191dGlsL3JlYWN0Tm9kZVwiKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfY29sb3JzID0gcmVxdWlyZShcIi4uL191dGlsL2NvbG9yc1wiKTtcblxudmFyIF9tb3Rpb24gPSByZXF1aXJlKFwiLi4vX3V0aWwvbW90aW9uXCIpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpOyB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDsgfSkobm9kZUludGVyb3ApOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHsgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBzcGxpdE9iamVjdCA9IGZ1bmN0aW9uIHNwbGl0T2JqZWN0KG9iaiwga2V5cykge1xuICB2YXIgcGlja2VkID0ge307XG4gIHZhciBvbWl0dGVkID0gKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCBvYmopO1xuICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChvYmogJiYga2V5IGluIG9iaikge1xuICAgICAgcGlja2VkW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIGRlbGV0ZSBvbWl0dGVkW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBwaWNrZWQ6IHBpY2tlZCxcbiAgICBvbWl0dGVkOiBvbWl0dGVkXG4gIH07XG59O1xuXG52YXIgUHJlc2V0Q29sb3JSZWdleCA9IG5ldyBSZWdFeHAoXCJeKFwiLmNvbmNhdChfY29sb3JzLlByZXNldENvbG9yVHlwZXMuam9pbignfCcpLCBcIikoLWludmVyc2UpPyRcIikpOyAvLyBGaXggVG9vbHRpcCB3b24ndCBoaWRlIGF0IGRpc2FibGVkIGJ1dHRvblxuLy8gbW91c2UgZXZlbnRzIGRvbid0IHRyaWdnZXIgYXQgZGlzYWJsZWQgYnV0dG9uIGluIENocm9tZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90b29sdGlwL2lzc3Vlcy8xOFxuXG5mdW5jdGlvbiBnZXREaXNhYmxlZENvbXBhdGlibGVDaGlsZHJlbihlbGVtZW50LCBwcmVmaXhDbHMpIHtcbiAgdmFyIGVsZW1lbnRUeXBlID0gZWxlbWVudC50eXBlO1xuXG4gIGlmICgoZWxlbWVudFR5cGUuX19BTlRfQlVUVE9OID09PSB0cnVlIHx8IGVsZW1lbnRUeXBlLl9fQU5UX1NXSVRDSCA9PT0gdHJ1ZSB8fCBlbGVtZW50VHlwZS5fX0FOVF9DSEVDS0JPWCA9PT0gdHJ1ZSB8fCBlbGVtZW50LnR5cGUgPT09ICdidXR0b24nKSAmJiBlbGVtZW50LnByb3BzLmRpc2FibGVkKSB7XG4gICAgLy8gUGljayBzb21lIGxheW91dCByZWxhdGVkIHN0eWxlIHByb3BlcnRpZXMgdXAgdG8gc3BhblxuICAgIC8vIFByZXZlbnQgbGF5b3V0IGJ1Z3MgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81MjU0XG4gICAgdmFyIF9zcGxpdE9iamVjdCA9IHNwbGl0T2JqZWN0KGVsZW1lbnQucHJvcHMuc3R5bGUsIFsncG9zaXRpb24nLCAnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJywgJ2Zsb2F0JywgJ2Rpc3BsYXknLCAnekluZGV4J10pLFxuICAgICAgICBwaWNrZWQgPSBfc3BsaXRPYmplY3QucGlja2VkLFxuICAgICAgICBvbWl0dGVkID0gX3NwbGl0T2JqZWN0Lm9taXR0ZWQ7XG5cbiAgICB2YXIgc3BhblN0eWxlID0gKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKCgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ1xuICAgIH0sIHBpY2tlZCksIHtcbiAgICAgIGN1cnNvcjogJ25vdC1hbGxvd2VkJyxcbiAgICAgIHdpZHRoOiBlbGVtZW50LnByb3BzLmJsb2NrID8gJzEwMCUnIDogbnVsbFxuICAgIH0pO1xuICAgIHZhciBidXR0b25TdHlsZSA9ICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSgoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoe30sIG9taXR0ZWQpLCB7XG4gICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZSdcbiAgICB9KTtcbiAgICB2YXIgY2hpbGQgPSAoMCwgX3JlYWN0Tm9kZS5jbG9uZUVsZW1lbnQpKGVsZW1lbnQsIHtcbiAgICAgIHN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgIGNsYXNzTmFtZTogbnVsbFxuICAgIH0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgc3R5bGU6IHNwYW5TdHlsZSxcbiAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoZWxlbWVudC5wcm9wcy5jbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGlzYWJsZWQtY29tcGF0aWJsZS13cmFwcGVyXCIpKVxuICAgIH0sIGNoaWxkKTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufVxuXG52YXIgVG9vbHRpcCA9IC8qI19fUFVSRV9fKi9SZWFjdC5mb3J3YXJkUmVmKGZ1bmN0aW9uIChwcm9wcywgcmVmKSB7XG4gIHZhciBfY2xhc3NOYW1lczI7XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29udGV4dCksXG4gICAgICBnZXRDb250ZXh0UG9wdXBDb250YWluZXIgPSBfUmVhY3QkdXNlQ29udGV4dC5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgIGdldFByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LmdldFByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICB2YXIgX3VzZU1lcmdlZFN0YXRlID0gKDAsIF91c2VNZXJnZWRTdGF0ZTNbXCJkZWZhdWx0XCJdKShmYWxzZSwge1xuICAgIHZhbHVlOiBwcm9wcy52aXNpYmxlLFxuICAgIGRlZmF1bHRWYWx1ZTogcHJvcHMuZGVmYXVsdFZpc2libGVcbiAgfSksXG4gICAgICBfdXNlTWVyZ2VkU3RhdGUyID0gKDAsIF9zbGljZWRUb0FycmF5MltcImRlZmF1bHRcIl0pKF91c2VNZXJnZWRTdGF0ZSwgMiksXG4gICAgICB2aXNpYmxlID0gX3VzZU1lcmdlZFN0YXRlMlswXSxcbiAgICAgIHNldFZpc2libGUgPSBfdXNlTWVyZ2VkU3RhdGUyWzFdO1xuXG4gIHZhciBpc05vVGl0bGUgPSBmdW5jdGlvbiBpc05vVGl0bGUoKSB7XG4gICAgdmFyIHRpdGxlID0gcHJvcHMudGl0bGUsXG4gICAgICAgIG92ZXJsYXkgPSBwcm9wcy5vdmVybGF5O1xuICAgIHJldHVybiAhdGl0bGUgJiYgIW92ZXJsYXkgJiYgdGl0bGUgIT09IDA7IC8vIG92ZXJsYXkgZm9yIG9sZCB2ZXJzaW9uIGNvbXBhdGliaWxpdHlcbiAgfTtcblxuICB2YXIgb25WaXNpYmxlQ2hhbmdlID0gZnVuY3Rpb24gb25WaXNpYmxlQ2hhbmdlKHZpcykge1xuICAgIHZhciBfYTtcblxuICAgIHNldFZpc2libGUoaXNOb1RpdGxlKCkgPyBmYWxzZSA6IHZpcyk7XG5cbiAgICBpZiAoIWlzTm9UaXRsZSgpKSB7XG4gICAgICAoX2EgPSBwcm9wcy5vblZpc2libGVDaGFuZ2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHByb3BzLCB2aXMpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgZ2V0VG9vbHRpcFBsYWNlbWVudHMgPSBmdW5jdGlvbiBnZXRUb29sdGlwUGxhY2VtZW50cygpIHtcbiAgICB2YXIgYnVpbHRpblBsYWNlbWVudHMgPSBwcm9wcy5idWlsdGluUGxhY2VtZW50cyxcbiAgICAgICAgYXJyb3dQb2ludEF0Q2VudGVyID0gcHJvcHMuYXJyb3dQb2ludEF0Q2VudGVyLFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3cgPSBwcm9wcy5hdXRvQWRqdXN0T3ZlcmZsb3c7XG4gICAgcmV0dXJuIGJ1aWx0aW5QbGFjZW1lbnRzIHx8ICgwLCBfcGxhY2VtZW50c1tcImRlZmF1bHRcIl0pKHtcbiAgICAgIGFycm93UG9pbnRBdENlbnRlcjogYXJyb3dQb2ludEF0Q2VudGVyLFxuICAgICAgYXV0b0FkanVzdE92ZXJmbG93OiBhdXRvQWRqdXN0T3ZlcmZsb3dcbiAgICB9KTtcbiAgfTsgLy8g5Yqo5oCB6K6+572u5Yqo55S754K5XG5cblxuICB2YXIgb25Qb3B1cEFsaWduID0gZnVuY3Rpb24gb25Qb3B1cEFsaWduKGRvbU5vZGUsIGFsaWduKSB7XG4gICAgdmFyIHBsYWNlbWVudHMgPSBnZXRUb29sdGlwUGxhY2VtZW50cygpOyAvLyDlvZPliY3ov5Tlm57nmoTkvY3nva5cblxuICAgIHZhciBwbGFjZW1lbnQgPSBPYmplY3Qua2V5cyhwbGFjZW1lbnRzKS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIHBsYWNlbWVudHNba2V5XS5wb2ludHNbMF0gPT09IGFsaWduLnBvaW50c1swXSAmJiBwbGFjZW1lbnRzW2tleV0ucG9pbnRzWzFdID09PSBhbGlnbi5wb2ludHNbMV07XG4gICAgfSlbMF07XG5cbiAgICBpZiAoIXBsYWNlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8g5qC55o2u5b2T5YmN5Z2Q5qCH6K6+572u5Yqo55S754K5XG5cblxuICAgIHZhciByZWN0ID0gZG9tTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0ge1xuICAgICAgdG9wOiAnNTAlJyxcbiAgICAgIGxlZnQ6ICc1MCUnXG4gICAgfTtcblxuICAgIGlmIChwbGFjZW1lbnQuaW5kZXhPZigndG9wJykgPj0gMCB8fCBwbGFjZW1lbnQuaW5kZXhPZignQm90dG9tJykgPj0gMCkge1xuICAgICAgdHJhbnNmb3JtT3JpZ2luLnRvcCA9IFwiXCIuY29uY2F0KHJlY3QuaGVpZ2h0IC0gYWxpZ24ub2Zmc2V0WzFdLCBcInB4XCIpO1xuICAgIH0gZWxzZSBpZiAocGxhY2VtZW50LmluZGV4T2YoJ1RvcCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ2JvdHRvbScpID49IDApIHtcbiAgICAgIHRyYW5zZm9ybU9yaWdpbi50b3AgPSBcIlwiLmNvbmNhdCgtYWxpZ24ub2Zmc2V0WzFdLCBcInB4XCIpO1xuICAgIH1cblxuICAgIGlmIChwbGFjZW1lbnQuaW5kZXhPZignbGVmdCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ1JpZ2h0JykgPj0gMCkge1xuICAgICAgdHJhbnNmb3JtT3JpZ2luLmxlZnQgPSBcIlwiLmNvbmNhdChyZWN0LndpZHRoIC0gYWxpZ24ub2Zmc2V0WzBdLCBcInB4XCIpO1xuICAgIH0gZWxzZSBpZiAocGxhY2VtZW50LmluZGV4T2YoJ3JpZ2h0JykgPj0gMCB8fCBwbGFjZW1lbnQuaW5kZXhPZignTGVmdCcpID49IDApIHtcbiAgICAgIHRyYW5zZm9ybU9yaWdpbi5sZWZ0ID0gXCJcIi5jb25jYXQoLWFsaWduLm9mZnNldFswXSwgXCJweFwiKTtcbiAgICB9XG5cbiAgICBkb21Ob2RlLnN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IFwiXCIuY29uY2F0KHRyYW5zZm9ybU9yaWdpbi5sZWZ0LCBcIiBcIikuY29uY2F0KHRyYW5zZm9ybU9yaWdpbi50b3ApO1xuICB9O1xuXG4gIHZhciBnZXRPdmVybGF5ID0gZnVuY3Rpb24gZ2V0T3ZlcmxheSgpIHtcbiAgICB2YXIgdGl0bGUgPSBwcm9wcy50aXRsZSxcbiAgICAgICAgb3ZlcmxheSA9IHByb3BzLm92ZXJsYXk7XG5cbiAgICBpZiAodGl0bGUgPT09IDApIHtcbiAgICAgIHJldHVybiB0aXRsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3ZlcmxheSB8fCB0aXRsZSB8fCAnJztcbiAgfTtcblxuICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgb3BlbkNsYXNzTmFtZSA9IHByb3BzLm9wZW5DbGFzc05hbWUsXG4gICAgICBnZXRQb3B1cENvbnRhaW5lciA9IHByb3BzLmdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgZ2V0VG9vbHRpcENvbnRhaW5lciA9IHByb3BzLmdldFRvb2x0aXBDb250YWluZXIsXG4gICAgICBvdmVybGF5Q2xhc3NOYW1lID0gcHJvcHMub3ZlcmxheUNsYXNzTmFtZSxcbiAgICAgIGNvbG9yID0gcHJvcHMuY29sb3IsXG4gICAgICBvdmVybGF5SW5uZXJTdHlsZSA9IHByb3BzLm92ZXJsYXlJbm5lclN0eWxlLFxuICAgICAgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygndG9vbHRpcCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gIHZhciByb290UHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCk7XG4gIHZhciB0ZW1wVmlzaWJsZSA9IHZpc2libGU7IC8vIEhpZGUgdG9vbHRpcCB3aGVuIHRoZXJlIGlzIG5vIHRpdGxlXG5cbiAgaWYgKCEoJ3Zpc2libGUnIGluIHByb3BzKSAmJiBpc05vVGl0bGUoKSkge1xuICAgIHRlbXBWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICB2YXIgY2hpbGQgPSBnZXREaXNhYmxlZENvbXBhdGlibGVDaGlsZHJlbigoMCwgX3JlYWN0Tm9kZS5pc1ZhbGlkRWxlbWVudCkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgY2hpbGRyZW4pLCBwcmVmaXhDbHMpO1xuICB2YXIgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICB2YXIgY2hpbGRDbHMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShjaGlsZFByb3BzLmNsYXNzTmFtZSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKSh7fSwgb3BlbkNsYXNzTmFtZSB8fCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW9wZW5cIiksIHRydWUpKTtcbiAgdmFyIGN1c3RvbU92ZXJsYXlDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShvdmVybGF5Q2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMyID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJyksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMyLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQoY29sb3IpLCBjb2xvciAmJiBQcmVzZXRDb2xvclJlZ2V4LnRlc3QoY29sb3IpKSwgX2NsYXNzTmFtZXMyKSk7XG4gIHZhciBmb3JtYXR0ZWRPdmVybGF5SW5uZXJTdHlsZSA9IG92ZXJsYXlJbm5lclN0eWxlO1xuICB2YXIgYXJyb3dDb250ZW50U3R5bGU7XG5cbiAgaWYgKGNvbG9yICYmICFQcmVzZXRDb2xvclJlZ2V4LnRlc3QoY29sb3IpKSB7XG4gICAgZm9ybWF0dGVkT3ZlcmxheUlubmVyU3R5bGUgPSAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCBvdmVybGF5SW5uZXJTdHlsZSksIHtcbiAgICAgIGJhY2tncm91bmQ6IGNvbG9yXG4gICAgfSk7XG4gICAgYXJyb3dDb250ZW50U3R5bGUgPSB7XG4gICAgICBiYWNrZ3JvdW5kOiBjb2xvclxuICAgIH07XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjVG9vbHRpcFtcImRlZmF1bHRcIl0sICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7fSwgcHJvcHMsIHtcbiAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICBvdmVybGF5Q2xhc3NOYW1lOiBjdXN0b21PdmVybGF5Q2xhc3NOYW1lLFxuICAgIGdldFRvb2x0aXBDb250YWluZXI6IGdldFBvcHVwQ29udGFpbmVyIHx8IGdldFRvb2x0aXBDb250YWluZXIgfHwgZ2V0Q29udGV4dFBvcHVwQ29udGFpbmVyLFxuICAgIHJlZjogcmVmLFxuICAgIGJ1aWx0aW5QbGFjZW1lbnRzOiBnZXRUb29sdGlwUGxhY2VtZW50cygpLFxuICAgIG92ZXJsYXk6IGdldE92ZXJsYXkoKSxcbiAgICB2aXNpYmxlOiB0ZW1wVmlzaWJsZSxcbiAgICBvblZpc2libGVDaGFuZ2U6IG9uVmlzaWJsZUNoYW5nZSxcbiAgICBvblBvcHVwQWxpZ246IG9uUG9wdXBBbGlnbixcbiAgICBvdmVybGF5SW5uZXJTdHlsZTogZm9ybWF0dGVkT3ZlcmxheUlubmVyU3R5bGUsXG4gICAgYXJyb3dDb250ZW50OiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWFycm93LWNvbnRlbnRcIiksXG4gICAgICBzdHlsZTogYXJyb3dDb250ZW50U3R5bGVcbiAgICB9KSxcbiAgICBtb3Rpb246IHtcbiAgICAgIG1vdGlvbk5hbWU6ICgwLCBfbW90aW9uLmdldFRyYW5zaXRpb25OYW1lKShyb290UHJlZml4Q2xzLCAnem9vbS1iaWctZmFzdCcsIHByb3BzLnRyYW5zaXRpb25OYW1lKSxcbiAgICAgIG1vdGlvbkRlYWRsaW5lOiAxMDAwXG4gICAgfVxuICB9KSwgdGVtcFZpc2libGUgPyAoMCwgX3JlYWN0Tm9kZS5jbG9uZUVsZW1lbnQpKGNoaWxkLCB7XG4gICAgY2xhc3NOYW1lOiBjaGlsZENsc1xuICB9KSA6IGNoaWxkKTtcbn0pO1xuVG9vbHRpcC5kaXNwbGF5TmFtZSA9ICdUb29sdGlwJztcblRvb2x0aXAuZGVmYXVsdFByb3BzID0ge1xuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICBtb3VzZUVudGVyRGVsYXk6IDAuMSxcbiAgbW91c2VMZWF2ZURlbGF5OiAwLjEsXG4gIGFycm93UG9pbnRBdENlbnRlcjogZmFsc2UsXG4gIGF1dG9BZGp1c3RPdmVyZmxvdzogdHJ1ZVxufTtcbnZhciBfZGVmYXVsdCA9IFRvb2x0aXA7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxudmFyIF90eXBlb2YgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2ZcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuU2lkZXJDb250ZXh0ID0gdm9pZCAwO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX2V4dGVuZHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzXCIpKTtcblxudmFyIF9zbGljZWRUb0FycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheVwiKSk7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy11dGlsL2xpYi9vbWl0XCIpKTtcblxudmFyIF9CYXJzT3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9CYXJzT3V0bGluZWRcIikpO1xuXG52YXIgX1JpZ2h0T3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9SaWdodE91dGxpbmVkXCIpKTtcblxudmFyIF9MZWZ0T3V0bGluZWQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy9MZWZ0T3V0bGluZWRcIikpO1xuXG52YXIgX2xheW91dCA9IHJlcXVpcmUoXCIuL2xheW91dFwiKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfaXNOdW1lcmljID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvaXNOdW1lcmljXCIpKTtcblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTsgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkgeyByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7IH0pKG5vZGVJbnRlcm9wKTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7IGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIGRpbWVuc2lvbk1heE1hcCA9IHtcbiAgeHM6ICc0NzkuOThweCcsXG4gIHNtOiAnNTc1Ljk4cHgnLFxuICBtZDogJzc2Ny45OHB4JyxcbiAgbGc6ICc5OTEuOThweCcsXG4gIHhsOiAnMTE5OS45OHB4JyxcbiAgeHhsOiAnMTU5OS45OHB4J1xufTtcbnZhciBTaWRlckNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dCh7fSk7XG5leHBvcnRzLlNpZGVyQ29udGV4dCA9IFNpZGVyQ29udGV4dDtcblxudmFyIGdlbmVyYXRlSWQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBpID0gMDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcHJlZml4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnJztcbiAgICBpICs9IDE7XG4gICAgcmV0dXJuIFwiXCIuY29uY2F0KHByZWZpeCkuY29uY2F0KGkpO1xuICB9O1xufSgpO1xuXG52YXIgU2lkZXIgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgdHJpZ2dlciA9IF9hLnRyaWdnZXIsXG4gICAgICBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLFxuICAgICAgX2EkZGVmYXVsdENvbGxhcHNlZCA9IF9hLmRlZmF1bHRDb2xsYXBzZWQsXG4gICAgICBkZWZhdWx0Q29sbGFwc2VkID0gX2EkZGVmYXVsdENvbGxhcHNlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSRkZWZhdWx0Q29sbGFwc2VkLFxuICAgICAgX2EkdGhlbWUgPSBfYS50aGVtZSxcbiAgICAgIHRoZW1lID0gX2EkdGhlbWUgPT09IHZvaWQgMCA/ICdkYXJrJyA6IF9hJHRoZW1lLFxuICAgICAgX2Ekc3R5bGUgPSBfYS5zdHlsZSxcbiAgICAgIHN0eWxlID0gX2Ekc3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX2Ekc3R5bGUsXG4gICAgICBfYSRjb2xsYXBzaWJsZSA9IF9hLmNvbGxhcHNpYmxlLFxuICAgICAgY29sbGFwc2libGUgPSBfYSRjb2xsYXBzaWJsZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSRjb2xsYXBzaWJsZSxcbiAgICAgIF9hJHJldmVyc2VBcnJvdyA9IF9hLnJldmVyc2VBcnJvdyxcbiAgICAgIHJldmVyc2VBcnJvdyA9IF9hJHJldmVyc2VBcnJvdyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSRyZXZlcnNlQXJyb3csXG4gICAgICBfYSR3aWR0aCA9IF9hLndpZHRoLFxuICAgICAgd2lkdGggPSBfYSR3aWR0aCA9PT0gdm9pZCAwID8gMjAwIDogX2Ekd2lkdGgsXG4gICAgICBfYSRjb2xsYXBzZWRXaWR0aCA9IF9hLmNvbGxhcHNlZFdpZHRoLFxuICAgICAgY29sbGFwc2VkV2lkdGggPSBfYSRjb2xsYXBzZWRXaWR0aCA9PT0gdm9pZCAwID8gODAgOiBfYSRjb2xsYXBzZWRXaWR0aCxcbiAgICAgIHplcm9XaWR0aFRyaWdnZXJTdHlsZSA9IF9hLnplcm9XaWR0aFRyaWdnZXJTdHlsZSxcbiAgICAgIGJyZWFrcG9pbnQgPSBfYS5icmVha3BvaW50LFxuICAgICAgb25Db2xsYXBzZSA9IF9hLm9uQ29sbGFwc2UsXG4gICAgICBvbkJyZWFrcG9pbnQgPSBfYS5vbkJyZWFrcG9pbnQsXG4gICAgICBwcm9wcyA9IF9fcmVzdChfYSwgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwidHJpZ2dlclwiLCBcImNoaWxkcmVuXCIsIFwiZGVmYXVsdENvbGxhcHNlZFwiLCBcInRoZW1lXCIsIFwic3R5bGVcIiwgXCJjb2xsYXBzaWJsZVwiLCBcInJldmVyc2VBcnJvd1wiLCBcIndpZHRoXCIsIFwiY29sbGFwc2VkV2lkdGhcIiwgXCJ6ZXJvV2lkdGhUcmlnZ2VyU3R5bGVcIiwgXCJicmVha3BvaW50XCIsIFwib25Db2xsYXBzZVwiLCBcIm9uQnJlYWtwb2ludFwiXSk7XG5cbiAgdmFyIF91c2VDb250ZXh0ID0gKDAsIFJlYWN0LnVzZUNvbnRleHQpKF9sYXlvdXQuTGF5b3V0Q29udGV4dCksXG4gICAgICBzaWRlckhvb2sgPSBfdXNlQ29udGV4dC5zaWRlckhvb2s7XG5cbiAgdmFyIF91c2VTdGF0ZSA9ICgwLCBSZWFjdC51c2VTdGF0ZSkoJ2NvbGxhcHNlZCcgaW4gcHJvcHMgPyBwcm9wcy5jb2xsYXBzZWQgOiBkZWZhdWx0Q29sbGFwc2VkKSxcbiAgICAgIF91c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyW1wiZGVmYXVsdFwiXSkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIGNvbGxhcHNlZCA9IF91c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRDb2xsYXBzZWQgPSBfdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBfdXNlU3RhdGUzID0gKDAsIFJlYWN0LnVzZVN0YXRlKShmYWxzZSksXG4gICAgICBfdXNlU3RhdGU0ID0gKDAsIF9zbGljZWRUb0FycmF5MltcImRlZmF1bHRcIl0pKF91c2VTdGF0ZTMsIDIpLFxuICAgICAgYmVsb3cgPSBfdXNlU3RhdGU0WzBdLFxuICAgICAgc2V0QmVsb3cgPSBfdXNlU3RhdGU0WzFdO1xuXG4gICgwLCBSZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoJ2NvbGxhcHNlZCcgaW4gcHJvcHMpIHtcbiAgICAgIHNldENvbGxhcHNlZChwcm9wcy5jb2xsYXBzZWQpO1xuICAgIH1cbiAgfSwgW3Byb3BzLmNvbGxhcHNlZF0pO1xuXG4gIHZhciBoYW5kbGVTZXRDb2xsYXBzZWQgPSBmdW5jdGlvbiBoYW5kbGVTZXRDb2xsYXBzZWQodmFsdWUsIHR5cGUpIHtcbiAgICBpZiAoISgnY29sbGFwc2VkJyBpbiBwcm9wcykpIHtcbiAgICAgIHNldENvbGxhcHNlZCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKHZhbHVlLCB0eXBlKTtcbiAgfTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBSZXNwb25zaXZlID09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciByZXNwb25zaXZlSGFuZGxlclJlZiA9ICgwLCBSZWFjdC51c2VSZWYpKCk7XG5cbiAgcmVzcG9uc2l2ZUhhbmRsZXJSZWYuY3VycmVudCA9IGZ1bmN0aW9uIChtcWwpIHtcbiAgICBzZXRCZWxvdyhtcWwubWF0Y2hlcyk7XG4gICAgb25CcmVha3BvaW50ID09PSBudWxsIHx8IG9uQnJlYWtwb2ludCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CcmVha3BvaW50KG1xbC5tYXRjaGVzKTtcblxuICAgIGlmIChjb2xsYXBzZWQgIT09IG1xbC5tYXRjaGVzKSB7XG4gICAgICBoYW5kbGVTZXRDb2xsYXBzZWQobXFsLm1hdGNoZXMsICdyZXNwb25zaXZlJyk7XG4gICAgfVxuICB9O1xuXG4gICgwLCBSZWFjdC51c2VFZmZlY3QpKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiByZXNwb25zaXZlSGFuZGxlcihtcWwpIHtcbiAgICAgIHJldHVybiByZXNwb25zaXZlSGFuZGxlclJlZi5jdXJyZW50KG1xbCk7XG4gICAgfVxuXG4gICAgdmFyIG1xbDtcblxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIF93aW5kb3cgPSB3aW5kb3csXG4gICAgICAgICAgbWF0Y2hNZWRpYSA9IF93aW5kb3cubWF0Y2hNZWRpYTtcblxuICAgICAgaWYgKG1hdGNoTWVkaWEgJiYgYnJlYWtwb2ludCAmJiBicmVha3BvaW50IGluIGRpbWVuc2lvbk1heE1hcCkge1xuICAgICAgICBtcWwgPSBtYXRjaE1lZGlhKFwiKG1heC13aWR0aDogXCIuY29uY2F0KGRpbWVuc2lvbk1heE1hcFticmVha3BvaW50XSwgXCIpXCIpKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIG1xbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCByZXNwb25zaXZlSGFuZGxlcik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgbXFsLmFkZExpc3RlbmVyKHJlc3BvbnNpdmVIYW5kbGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3BvbnNpdmVIYW5kbGVyKG1xbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG1xbCA9PT0gbnVsbCB8fCBtcWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1xbC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCByZXNwb25zaXZlSGFuZGxlcik7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBtcWwgPT09IG51bGwgfHwgbXFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtcWwucmVtb3ZlTGlzdGVuZXIocmVzcG9uc2l2ZUhhbmRsZXIpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcbiAgKDAsIFJlYWN0LnVzZUVmZmVjdCkoZnVuY3Rpb24gKCkge1xuICAgIHZhciB1bmlxdWVJZCA9IGdlbmVyYXRlSWQoJ2FudC1zaWRlci0nKTtcbiAgICBzaWRlckhvb2suYWRkU2lkZXIodW5pcXVlSWQpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gc2lkZXJIb29rLnJlbW92ZVNpZGVyKHVuaXF1ZUlkKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdmFyIHRvZ2dsZSA9IGZ1bmN0aW9uIHRvZ2dsZSgpIHtcbiAgICBoYW5kbGVTZXRDb2xsYXBzZWQoIWNvbGxhcHNlZCwgJ2NsaWNrVHJpZ2dlcicpO1xuICB9O1xuXG4gIHZhciBfdXNlQ29udGV4dDIgPSAoMCwgUmVhY3QudXNlQ29udGV4dCkoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnRleHQpLFxuICAgICAgZ2V0UHJlZml4Q2xzID0gX3VzZUNvbnRleHQyLmdldFByZWZpeENscztcblxuICB2YXIgcmVuZGVyU2lkZXIgPSBmdW5jdGlvbiByZW5kZXJTaWRlcigpIHtcbiAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdsYXlvdXQtc2lkZXInLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgIHZhciBkaXZQcm9wcyA9ICgwLCBfb21pdFtcImRlZmF1bHRcIl0pKHByb3BzLCBbJ2NvbGxhcHNlZCddKTtcbiAgICB2YXIgcmF3V2lkdGggPSBjb2xsYXBzZWQgPyBjb2xsYXBzZWRXaWR0aCA6IHdpZHRoOyAvLyB1c2UgXCJweFwiIGFzIGZhbGxiYWNrIHVuaXQgZm9yIHdpZHRoXG5cbiAgICB2YXIgc2lkZXJXaWR0aCA9ICgwLCBfaXNOdW1lcmljW1wiZGVmYXVsdFwiXSkocmF3V2lkdGgpID8gXCJcIi5jb25jYXQocmF3V2lkdGgsIFwicHhcIikgOiBTdHJpbmcocmF3V2lkdGgpOyAvLyBzcGVjaWFsIHRyaWdnZXIgd2hlbiBjb2xsYXBzZWRXaWR0aCA9PSAwXG5cbiAgICB2YXIgemVyb1dpZHRoVHJpZ2dlciA9IHBhcnNlRmxvYXQoU3RyaW5nKGNvbGxhcHNlZFdpZHRoIHx8IDApKSA9PT0gMCA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICBvbkNsaWNrOiB0b2dnbGUsXG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItemVyby13aWR0aC10cmlnZ2VyXCIpLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXplcm8td2lkdGgtdHJpZ2dlci1cIikuY29uY2F0KHJldmVyc2VBcnJvdyA/ICdyaWdodCcgOiAnbGVmdCcpKSxcbiAgICAgIHN0eWxlOiB6ZXJvV2lkdGhUcmlnZ2VyU3R5bGVcbiAgICB9LCB0cmlnZ2VyIHx8IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9CYXJzT3V0bGluZWRbXCJkZWZhdWx0XCJdLCBudWxsKSkgOiBudWxsO1xuICAgIHZhciBpY29uT2JqID0ge1xuICAgICAgZXhwYW5kZWQ6IHJldmVyc2VBcnJvdyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9SaWdodE91dGxpbmVkW1wiZGVmYXVsdFwiXSwgbnVsbCkgOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTGVmdE91dGxpbmVkW1wiZGVmYXVsdFwiXSwgbnVsbCksXG4gICAgICBjb2xsYXBzZWQ6IHJldmVyc2VBcnJvdyA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9MZWZ0T3V0bGluZWRbXCJkZWZhdWx0XCJdLCBudWxsKSA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9SaWdodE91dGxpbmVkW1wiZGVmYXVsdFwiXSwgbnVsbClcbiAgICB9O1xuICAgIHZhciBzdGF0dXMgPSBjb2xsYXBzZWQgPyAnY29sbGFwc2VkJyA6ICdleHBhbmRlZCc7XG4gICAgdmFyIGRlZmF1bHRUcmlnZ2VyID0gaWNvbk9ialtzdGF0dXNdO1xuICAgIHZhciB0cmlnZ2VyRG9tID0gdHJpZ2dlciAhPT0gbnVsbCA/IHplcm9XaWR0aFRyaWdnZXIgfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRyaWdnZXJcIiksXG4gICAgICBvbkNsaWNrOiB0b2dnbGUsXG4gICAgICBzdHlsZToge1xuICAgICAgICB3aWR0aDogc2lkZXJXaWR0aFxuICAgICAgfVxuICAgIH0sIHRyaWdnZXIgfHwgZGVmYXVsdFRyaWdnZXIpIDogbnVsbDtcbiAgICB2YXIgZGl2U3R5bGUgPSAoMCwgX2V4dGVuZHMyW1wiZGVmYXVsdFwiXSkoKDAsIF9leHRlbmRzMltcImRlZmF1bHRcIl0pKHt9LCBzdHlsZSksIHtcbiAgICAgIGZsZXg6IFwiMCAwIFwiLmNvbmNhdChzaWRlcldpZHRoKSxcbiAgICAgIG1heFdpZHRoOiBzaWRlcldpZHRoLFxuICAgICAgbWluV2lkdGg6IHNpZGVyV2lkdGgsXG4gICAgICB3aWR0aDogc2lkZXJXaWR0aFxuICAgIH0pO1xuICAgIHZhciBzaWRlckNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHRoZW1lKSwgKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY29sbGFwc2VkXCIpLCAhIWNvbGxhcHNlZCksICgwLCBfZGVmaW5lUHJvcGVydHkyW1wiZGVmYXVsdFwiXSkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaGFzLXRyaWdnZXJcIiksIGNvbGxhcHNpYmxlICYmIHRyaWdnZXIgIT09IG51bGwgJiYgIXplcm9XaWR0aFRyaWdnZXIpLCAoMCwgX2RlZmluZVByb3BlcnR5MltcImRlZmF1bHRcIl0pKF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWJlbG93XCIpLCAhIWJlbG93KSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTJbXCJkZWZhdWx0XCJdKShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi16ZXJvLXdpZHRoXCIpLCBwYXJzZUZsb2F0KHNpZGVyV2lkdGgpID09PSAwKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImFzaWRlXCIsICgwLCBfZXh0ZW5kczJbXCJkZWZhdWx0XCJdKSh7XG4gICAgICBjbGFzc05hbWU6IHNpZGVyQ2xzXG4gICAgfSwgZGl2UHJvcHMsIHtcbiAgICAgIHN0eWxlOiBkaXZTdHlsZSxcbiAgICAgIHJlZjogcmVmXG4gICAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jaGlsZHJlblwiKVxuICAgIH0sIGNoaWxkcmVuKSwgY29sbGFwc2libGUgfHwgYmVsb3cgJiYgemVyb1dpZHRoVHJpZ2dlciA/IHRyaWdnZXJEb20gOiBudWxsKTtcbiAgfTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU2lkZXJDb250ZXh0LlByb3ZpZGVyLCB7XG4gICAgdmFsdWU6IHtcbiAgICAgIHNpZGVyQ29sbGFwc2VkOiBjb2xsYXBzZWQsXG4gICAgICBjb2xsYXBzZWRXaWR0aDogY29sbGFwc2VkV2lkdGhcbiAgICB9XG4gIH0sIHJlbmRlclNpZGVyKCkpO1xufSk7XG5TaWRlci5kaXNwbGF5TmFtZSA9ICdTaWRlcic7XG52YXIgX2RlZmF1bHQgPSBTaWRlcjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiR3JvdXBcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX2dyb3VwW1wiZGVmYXVsdFwiXTtcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJCdXR0b25cIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX3JhZGlvQnV0dG9uW1wiZGVmYXVsdFwiXTtcbiAgfVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9yYWRpbyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcmFkaW9cIikpO1xuXG52YXIgX2dyb3VwID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9ncm91cFwiKSk7XG5cbnZhciBfcmFkaW9CdXR0b24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3JhZGlvQnV0dG9uXCIpKTtcblxudmFyIFJhZGlvID0gX3JhZGlvW1wiZGVmYXVsdFwiXTtcblJhZGlvLkJ1dHRvbiA9IF9yYWRpb0J1dHRvbltcImRlZmF1bHRcIl07XG5SYWRpby5Hcm91cCA9IF9ncm91cFtcImRlZmF1bHRcIl07XG52YXIgX2RlZmF1bHQgPSBSYWRpbztcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXE7XG4iLCJ2YXIgYmFzZUdldFRhZyA9IHJlcXVpcmUoJy4vX2Jhc2VHZXRUYWcnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4vaXNPYmplY3QnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bmN0aW9uO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgZnVuY2AgdG8gaXRzIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvU291cmNlO1xuIiwidmFyIG1hcENhY2hlQ2xlYXIgPSByZXF1aXJlKCcuL19tYXBDYWNoZUNsZWFyJyksXG4gICAgbWFwQ2FjaGVEZWxldGUgPSByZXF1aXJlKCcuL19tYXBDYWNoZURlbGV0ZScpLFxuICAgIG1hcENhY2hlR2V0ID0gcmVxdWlyZSgnLi9fbWFwQ2FjaGVHZXQnKSxcbiAgICBtYXBDYWNoZUhhcyA9IHJlcXVpcmUoJy4vX21hcENhY2hlSGFzJyksXG4gICAgbWFwQ2FjaGVTZXQgPSByZXF1aXJlKCcuL19tYXBDYWNoZVNldCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBtYXAgY2FjaGUgb2JqZWN0IHRvIHN0b3JlIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0FycmF5fSBbZW50cmllc10gVGhlIGtleS12YWx1ZSBwYWlycyB0byBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gTWFwQ2FjaGUoZW50cmllcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA/IDAgOiBlbnRyaWVzLmxlbmd0aDtcblxuICB0aGlzLmNsZWFyKCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4gICAgdGhpcy5zZXQoZW50cnlbMF0sIGVudHJ5WzFdKTtcbiAgfVxufVxuXG4vLyBBZGQgbWV0aG9kcyB0byBgTWFwQ2FjaGVgLlxuTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2FjaGVDbGVhcjtcbk1hcENhY2hlLnByb3RvdHlwZVsnZGVsZXRlJ10gPSBtYXBDYWNoZURlbGV0ZTtcbk1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbk1hcENhY2hlLnByb3RvdHlwZS5oYXMgPSBtYXBDYWNoZUhhcztcbk1hcENhY2hlLnByb3RvdHlwZS5zZXQgPSBtYXBDYWNoZVNldDtcblxubW9kdWxlLmV4cG9ydHMgPSBNYXBDYWNoZTtcbiIsInZhciBTZXRDYWNoZSA9IHJlcXVpcmUoJy4vX1NldENhY2hlJyksXG4gICAgYXJyYXlTb21lID0gcmVxdWlyZSgnLi9fYXJyYXlTb21lJyksXG4gICAgY2FjaGVIYXMgPSByZXF1aXJlKCcuL19jYWNoZUhhcycpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB2YWx1ZSBjb21wYXJpc29ucy4gKi9cbnZhciBDT01QQVJFX1BBUlRJQUxfRkxBRyA9IDEsXG4gICAgQ09NUEFSRV9VTk9SREVSRURfRkxBRyA9IDI7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBhcnJheXMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7QXJyYXl9IG90aGVyIFRoZSBvdGhlciBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtudW1iZXJ9IGJpdG1hc2sgVGhlIGJpdG1hc2sgZmxhZ3MuIFNlZSBgYmFzZUlzRXF1YWxgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjdXN0b21pemVyIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gc3RhY2sgVHJhY2tzIHRyYXZlcnNlZCBgYXJyYXlgIGFuZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBlcXVhbEFycmF5cyhhcnJheSwgb3RoZXIsIGJpdG1hc2ssIGN1c3RvbWl6ZXIsIGVxdWFsRnVuYywgc3RhY2spIHtcbiAgdmFyIGlzUGFydGlhbCA9IGJpdG1hc2sgJiBDT01QQVJFX1BBUlRJQUxfRkxBRyxcbiAgICAgIGFyckxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIG90aExlbmd0aCA9IG90aGVyLmxlbmd0aDtcblxuICBpZiAoYXJyTGVuZ3RoICE9IG90aExlbmd0aCAmJiAhKGlzUGFydGlhbCAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIENoZWNrIHRoYXQgY3ljbGljIHZhbHVlcyBhcmUgZXF1YWwuXG4gIHZhciBhcnJTdGFja2VkID0gc3RhY2suZ2V0KGFycmF5KTtcbiAgdmFyIG90aFN0YWNrZWQgPSBzdGFjay5nZXQob3RoZXIpO1xuICBpZiAoYXJyU3RhY2tlZCAmJiBvdGhTdGFja2VkKSB7XG4gICAgcmV0dXJuIGFyclN0YWNrZWQgPT0gb3RoZXIgJiYgb3RoU3RhY2tlZCA9PSBhcnJheTtcbiAgfVxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IHRydWUsXG4gICAgICBzZWVuID0gKGJpdG1hc2sgJiBDT01QQVJFX1VOT1JERVJFRF9GTEFHKSA/IG5ldyBTZXRDYWNoZSA6IHVuZGVmaW5lZDtcblxuICBzdGFjay5zZXQoYXJyYXksIG90aGVyKTtcbiAgc3RhY2suc2V0KG90aGVyLCBhcnJheSk7XG5cbiAgLy8gSWdub3JlIG5vbi1pbmRleCBwcm9wZXJ0aWVzLlxuICB3aGlsZSAoKytpbmRleCA8IGFyckxlbmd0aCkge1xuICAgIHZhciBhcnJWYWx1ZSA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgb3RoVmFsdWUgPSBvdGhlcltpbmRleF07XG5cbiAgICBpZiAoY3VzdG9taXplcikge1xuICAgICAgdmFyIGNvbXBhcmVkID0gaXNQYXJ0aWFsXG4gICAgICAgID8gY3VzdG9taXplcihvdGhWYWx1ZSwgYXJyVmFsdWUsIGluZGV4LCBvdGhlciwgYXJyYXksIHN0YWNrKVxuICAgICAgICA6IGN1c3RvbWl6ZXIoYXJyVmFsdWUsIG90aFZhbHVlLCBpbmRleCwgYXJyYXksIG90aGVyLCBzdGFjayk7XG4gICAgfVxuICAgIGlmIChjb21wYXJlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoY29tcGFyZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAvLyBSZWN1cnNpdmVseSBjb21wYXJlIGFycmF5cyAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAgIGlmIChzZWVuKSB7XG4gICAgICBpZiAoIWFycmF5U29tZShvdGhlciwgZnVuY3Rpb24ob3RoVmFsdWUsIG90aEluZGV4KSB7XG4gICAgICAgICAgICBpZiAoIWNhY2hlSGFzKHNlZW4sIG90aEluZGV4KSAmJlxuICAgICAgICAgICAgICAgIChhcnJWYWx1ZSA9PT0gb3RoVmFsdWUgfHwgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spKSkge1xuICAgICAgICAgICAgICByZXR1cm4gc2Vlbi5wdXNoKG90aEluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSkge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghKFxuICAgICAgICAgIGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fFxuICAgICAgICAgICAgZXF1YWxGdW5jKGFyclZhbHVlLCBvdGhWYWx1ZSwgYml0bWFzaywgY3VzdG9taXplciwgc3RhY2spXG4gICAgICAgICkpIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHN0YWNrWydkZWxldGUnXShhcnJheSk7XG4gIHN0YWNrWydkZWxldGUnXShvdGhlcik7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXF1YWxBcnJheXM7XG4iLCJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKSxcbiAgICBzdHViRmFsc2UgPSByZXF1aXJlKCcuL3N0dWJGYWxzZScpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIEJ1ZmZlciA9IG1vZHVsZUV4cG9ydHMgPyByb290LkJ1ZmZlciA6IHVuZGVmaW5lZDtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUlzQnVmZmVyID0gQnVmZmVyID8gQnVmZmVyLmlzQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNCdWZmZXI7XG4iLCJ2YXIgYmFzZUlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4vX2Jhc2VJc1R5cGVkQXJyYXknKSxcbiAgICBiYXNlVW5hcnkgPSByZXF1aXJlKCcuL19iYXNlVW5hcnknKSxcbiAgICBub2RlVXRpbCA9IHJlcXVpcmUoJy4vX25vZGVVdGlsJyk7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVHlwZWRBcnJheTtcbiIsIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIGlzIGxvb3NlbHkgYmFzZWQgb25cbiAqIFtgVG9MZW5ndGhgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10b2xlbmd0aCkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBsZW5ndGgsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0xlbmd0aCgzKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzTGVuZ3RoKE51bWJlci5NSU5fVkFMVUUpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKEluZmluaXR5KTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aCgnMycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNMZW5ndGgodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyAmJlxuICAgIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0xlbmd0aDtcbiIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBDb250YWlucyBrZXlzIG9mIGBYTUxCdWlsZGVyT3B0aW9uc2AuXG4gKi9cbmV4cG9ydHMuWE1MQnVpbGRlck9wdGlvbktleXMgPSBuZXcgU2V0KFtcbiAgICBcInZlcnNpb25cIiwgXCJlbmNvZGluZ1wiLCBcInN0YW5kYWxvbmVcIiwgXCJrZWVwTnVsbE5vZGVzXCIsIFwia2VlcE51bGxBdHRyaWJ1dGVzXCIsXG4gICAgXCJpZ25vcmVDb252ZXJ0ZXJzXCIsIFwiY29udmVydFwiLCBcImRlZmF1bHROYW1lc3BhY2VcIiwgXCJuYW1lc3BhY2VBbGlhc1wiXG5dKTtcbi8qKlxuICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgYnVpbGRlciBvcHRpb25zLlxuICovXG5leHBvcnRzLkRlZmF1bHRCdWlsZGVyT3B0aW9ucyA9IHtcbiAgICB2ZXJzaW9uOiBcIjEuMFwiLFxuICAgIGtlZXBOdWxsTm9kZXM6IGZhbHNlLFxuICAgIGtlZXBOdWxsQXR0cmlidXRlczogZmFsc2UsXG4gICAgaWdub3JlQ29udmVydGVyczogZmFsc2UsXG4gICAgY29udmVydDoge1xuICAgICAgICBhdHQ6IFwiQFwiLFxuICAgICAgICBpbnM6IFwiP1wiLFxuICAgICAgICB0ZXh0OiBcIiNcIixcbiAgICAgICAgY2RhdGE6IFwiJFwiLFxuICAgICAgICBjb21tZW50OiBcIiFcIlxuICAgIH0sXG4gICAgZGVmYXVsdE5hbWVzcGFjZToge1xuICAgICAgICBlbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgYXR0OiB1bmRlZmluZWRcbiAgICB9LFxuICAgIG5hbWVzcGFjZUFsaWFzOiB7XG4gICAgICAgIGh0bWw6IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiLFxuICAgICAgICB4bWw6IFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXG4gICAgICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvXCIsXG4gICAgICAgIG1hdGhtbDogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCIsXG4gICAgICAgIHN2ZzogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFxuICAgICAgICB4bGluazogXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICB9XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50ZXJmYWNlcy5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuLi9kb20vaW50ZXJmYWNlc1wiKTtcbi8qKlxuICogQ29udGFpbnMgdXNlci1kZWZpbmVkIHR5cGUgZ3VhcmRzIGZvciBET00gb2JqZWN0cy5cbiAqL1xuY2xhc3MgR3VhcmQge1xuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGBOb2RlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc05vZGUoYSkge1xuICAgICAgICByZXR1cm4gKCEhYSAmJiBhLl9ub2RlVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYERvY3VtZW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0RvY3VtZW50Tm9kZShhKSB7XG4gICAgICAgIHJldHVybiAoR3VhcmQuaXNOb2RlKGEpICYmIGEuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgRG9jdW1lbnRUeXBlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0RvY3VtZW50VHlwZU5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkRvY3VtZW50VHlwZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGBEb2N1bWVudEZyYWdtZW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0RvY3VtZW50RnJhZ21lbnROb2RlKGEpIHtcbiAgICAgICAgcmV0dXJuIChHdWFyZC5pc05vZGUoYSkgJiYgYS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYEF0dHJgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAgICovXG4gICAgc3RhdGljIGlzQXR0ck5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkF0dHJpYnV0ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG5vZGUgaXMgYSBgQ2hhcmFjdGVyRGF0YWAgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0NoYXJhY3RlckRhdGFOb2RlKGEpIHtcbiAgICAgICAgaWYgKCFHdWFyZC5pc05vZGUoYSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBhLl9ub2RlVHlwZTtcbiAgICAgICAgcmV0dXJuICh0eXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuVGV4dCB8fFxuICAgICAgICAgICAgdHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbiB8fFxuICAgICAgICAgICAgdHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNvbW1lbnQgfHxcbiAgICAgICAgICAgIHR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5DRGF0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGBUZXh0YCBvciBhIGBDREFUQVNlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAgICovXG4gICAgc3RhdGljIGlzVGV4dE5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiAoYS5fbm9kZVR5cGUgPT09IGludGVyZmFjZXNfMS5Ob2RlVHlwZS5UZXh0IHx8IGEuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGEpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYFRleHRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAgICovXG4gICAgc3RhdGljIGlzRXhjbHVzaXZlVGV4dE5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgQ0RBVEFTZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0NEQVRBU2VjdGlvbk5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNEYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYENvbW1lbnRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAgICovXG4gICAgc3RhdGljIGlzQ29tbWVudE5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNvbW1lbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgUHJvY2Vzc2luZ0luc3RydWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc1Byb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGUoYSkge1xuICAgICAgICByZXR1cm4gKEd1YXJkLmlzTm9kZShhKSAmJiBhLl9ub2RlVHlwZSA9PT0gaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhbiBgRWxlbWVudGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYSAtIHRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNFbGVtZW50Tm9kZShhKSB7XG4gICAgICAgIHJldHVybiAoR3VhcmQuaXNOb2RlKGEpICYmIGEuX25vZGVUeXBlID09PSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRWxlbWVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIGN1c3RvbSBgRWxlbWVudGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYSAtIHRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNDdXN0b21FbGVtZW50Tm9kZShhKSB7XG4gICAgICAgIHJldHVybiAoR3VhcmQuaXNFbGVtZW50Tm9kZShhKSAmJiBhLl9jdXN0b21FbGVtZW50U3RhdGUgPT09IFwiY3VzdG9tXCIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgU2hhZG93Um9vdGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYSAtIHRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNTaGFkb3dSb290KGEpIHtcbiAgICAgICAgcmV0dXJuICghIWEgJiYgYS5ob3N0ICE9PSB1bmRlZmluZWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgTW91c2VFdmVudGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYSAtIHRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNNb3VzZUV2ZW50KGEpIHtcbiAgICAgICAgcmV0dXJuICghIWEgJiYgYS5zY3JlZW5YICE9PSB1bmRlZmluZWQgJiYgYS5zY3JlZW5ZICE9IHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIHNsb3RhYmxlLlxuICAgICAqXG4gICAgICogRWxlbWVudCBhbmQgVGV4dCBub2RlcyBhcmUgc2xvdGFibGVzLiBBIHNsb3RhYmxlIGhhcyBhbiBhc3NvY2lhdGVkIG5hbWVcbiAgICAgKiAoYSBzdHJpbmcpLlxuICAgICAqXG4gICAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAgICovXG4gICAgc3RhdGljIGlzU2xvdGFibGUoYSkge1xuICAgICAgICByZXR1cm4gKCEhYSAmJiBhLl9uYW1lICE9PSB1bmRlZmluZWQgJiYgYS5fYXNzaWduZWRTbG90ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIChHdWFyZC5pc1RleHROb2RlKGEpIHx8IEd1YXJkLmlzRWxlbWVudE5vZGUoYSkpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgc2xvdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc1Nsb3QoYSkge1xuICAgICAgICByZXR1cm4gKCEhYSAmJiBhLl9uYW1lICE9PSB1bmRlZmluZWQgJiYgYS5fYXNzaWduZWROb2RlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBHdWFyZC5pc0VsZW1lbnROb2RlKGEpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgYFdpbmRvd2AuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYSAtIHRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBzdGF0aWMgaXNXaW5kb3coYSkge1xuICAgICAgICByZXR1cm4gKCEhYSAmJiBhLm5hdmlnYXRvciAhPT0gdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGFuIGBFdmVudExpc3RlbmVyYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc0V2ZW50TGlzdGVuZXIoYSkge1xuICAgICAgICByZXR1cm4gKCEhYSAmJiBhLmhhbmRsZUV2ZW50ICE9PSB1bmRlZmluZWQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgUmVnaXN0ZXJlZE9ic2VydmVyYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhIC0gdGhlIG9iamVjdCB0byBjaGVja1xuICAgICAqL1xuICAgIHN0YXRpYyBpc1JlZ2lzdGVyZWRPYnNlcnZlcihhKSB7XG4gICAgICAgIHJldHVybiAoISFhICYmIGEub2JzZXJ2ZXIgIT09IHVuZGVmaW5lZCAmJiBhLm9wdGlvbnMgIT09IHVuZGVmaW5lZCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBgVHJhbnNpZW50UmVnaXN0ZXJlZE9ic2VydmVyYC5cbiAgICpcbiAgICogQHBhcmFtIGEgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXG4gICAqL1xuICAgIHN0YXRpYyBpc1RyYW5zaWVudFJlZ2lzdGVyZWRPYnNlcnZlcihhKSB7XG4gICAgICAgIHJldHVybiAoISFhICYmIGEuc291cmNlICE9PSB1bmRlZmluZWQgJiYgR3VhcmQuaXNSZWdpc3RlcmVkT2JzZXJ2ZXIoYSkpO1xuICAgIH1cbn1cbmV4cG9ydHMuR3VhcmQgPSBHdWFyZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUd1YXJkLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIkBvb3pjaXRhay9kb20vbGliL2RvbS9pbnRlcmZhY2VzXCIpO1xuY29uc3QgTG9jYWxOYW1lU2V0XzEgPSByZXF1aXJlKFwiLi9Mb2NhbE5hbWVTZXRcIik7XG5jb25zdCBOYW1lc3BhY2VQcmVmaXhNYXBfMSA9IHJlcXVpcmUoXCIuL05hbWVzcGFjZVByZWZpeE1hcFwiKTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9kb20vbGliL2RvbS9ET01FeGNlcHRpb25cIik7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9kb20vbGliL2FsZ29yaXRobVwiKTtcbi8qKlxuICogUHJlLXNlcmlhbGl6ZXMgWE1MIG5vZGVzLlxuICovXG5jbGFzcyBQcmVTZXJpYWxpemVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGVwdGggb2YgdGhlIFhNTCB0cmVlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sZXZlbCA9IDA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgc2VyaWFsaXphdGlvbiBjYWxsYmFja3MuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZnVuY3Rpb25zIC0gc2VyaWFsaXplciBmdW5jdGlvbnNcbiAgICAgKi9cbiAgICBzZXRDYWxsYmFja3MoZnVuY3Rpb25zKSB7XG4gICAgICAgIHRoaXMuX2RvY1R5cGUgPSBmdW5jdGlvbnMuZG9jVHlwZTtcbiAgICAgICAgdGhpcy5fY29tbWVudCA9IGZ1bmN0aW9ucy5jb21tZW50O1xuICAgICAgICB0aGlzLl90ZXh0ID0gZnVuY3Rpb25zLnRleHQ7XG4gICAgICAgIHRoaXMuX2luc3RydWN0aW9uID0gZnVuY3Rpb25zLmluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLl9jZGF0YSA9IGZ1bmN0aW9ucy5jZGF0YTtcbiAgICAgICAgdGhpcy5fb3BlblRhZ0JlZ2luID0gZnVuY3Rpb25zLm9wZW5UYWdCZWdpbjtcbiAgICAgICAgdGhpcy5fb3BlblRhZ0VuZCA9IGZ1bmN0aW9ucy5vcGVuVGFnRW5kO1xuICAgICAgICB0aGlzLl9jbG9zZVRhZyA9IGZ1bmN0aW9ucy5jbG9zZVRhZztcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlID0gZnVuY3Rpb25zLmF0dHJpYnV0ZTtcbiAgICAgICAgdGhpcy5fYmVnaW5FbGVtZW50ID0gZnVuY3Rpb25zLmJlZ2luRWxlbWVudDtcbiAgICAgICAgdGhpcy5fZW5kRWxlbWVudCA9IGZ1bmN0aW9ucy5lbmRFbGVtZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiB0aGUgZ2l2ZW4gbm9kZS4gVGhlIHByZS1zZXJpYWxpemVyIGluc2VydHNcbiAgICAgKiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIHdoZXJlIG5lY2Vzc2FyeSBhbmQgcHJvZHVjZXMgcXVhbGlmaWVkIG5hbWVzIGZvclxuICAgICAqIG5vZGVzIGFuZCBhdHRyaWJ1dGVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIHNlcmlhbGl6ZVxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBzZXJpYWxpemUobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgY29uc3QgaGFzTmFtZXNwYWNlcyA9IChub2RlLl9ub2RlRG9jdW1lbnQgIT09IHVuZGVmaW5lZCAmJiBub2RlLl9ub2RlRG9jdW1lbnQuX2hhc05hbWVzcGFjZXMpO1xuICAgICAgICB0aGlzLmxldmVsID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50Tm9kZSA9IG5vZGU7XG4gICAgICAgIGlmIChoYXNOYW1lc3BhY2VzKSB7XG4gICAgICAgICAgICAvKiogRnJvbTogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL0RPTS1QYXJzaW5nLyN4bWwtc2VyaWFsaXphdGlvblxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIDEuIExldCBuYW1lc3BhY2UgYmUgYSBjb250ZXh0IG5hbWVzcGFjZSB3aXRoIHZhbHVlIG51bGwuXG4gICAgICAgICAgICAgKiBUaGUgY29udGV4dCBuYW1lc3BhY2UgdHJhY2tzIHRoZSBYTUwgc2VyaWFsaXphdGlvbiBhbGdvcml0aG0ncyBjdXJyZW50XG4gICAgICAgICAgICAgKiBkZWZhdWx0IG5hbWVzcGFjZS4gVGhlIGNvbnRleHQgbmFtZXNwYWNlIGlzIGNoYW5nZWQgd2hlbiBlaXRoZXIgYW4gRWxlbWVudFxuICAgICAgICAgICAgICogTm9kZSBoYXMgYSBkZWZhdWx0IG5hbWVzcGFjZSBkZWNsYXJhdGlvbiwgb3IgdGhlIGFsZ29yaXRobSBnZW5lcmF0ZXMgYVxuICAgICAgICAgICAgICogZGVmYXVsdCBuYW1lc3BhY2UgZGVjbGFyYXRpb24gZm9yIHRoZSBFbGVtZW50IE5vZGUgdG8gbWF0Y2ggaXRzIG93blxuICAgICAgICAgICAgICogbmFtZXNwYWNlLiBUaGUgYWxnb3JpdGhtIGFzc3VtZXMgbm8gbmFtZXNwYWNlIChudWxsKSB0byBzdGFydC5cbiAgICAgICAgICAgICAqIDIuIExldCBwcmVmaXggbWFwIGJlIGEgbmV3IG5hbWVzcGFjZSBwcmVmaXggbWFwLlxuICAgICAgICAgICAgICogMy4gQWRkIHRoZSBYTUwgbmFtZXNwYWNlIHdpdGggcHJlZml4IHZhbHVlIFwieG1sXCIgdG8gcHJlZml4IG1hcC5cbiAgICAgICAgICAgICAqIDQuIExldCBwcmVmaXggaW5kZXggYmUgYSBnZW5lcmF0ZWQgbmFtZXNwYWNlIHByZWZpeCBpbmRleCB3aXRoIHZhbHVlIDEuXG4gICAgICAgICAgICAgKiBUaGUgZ2VuZXJhdGVkIG5hbWVzcGFjZSBwcmVmaXggaW5kZXggaXMgdXNlZCB0byBnZW5lcmF0ZSBhIG5ldyB1bmlxdWVcbiAgICAgICAgICAgICAqIHByZWZpeCB2YWx1ZSB3aGVuIG5vIHN1aXRhYmxlIGV4aXN0aW5nIG5hbWVzcGFjZSBwcmVmaXggaXMgYXZhaWxhYmxlIHRvXG4gICAgICAgICAgICAgKiBzZXJpYWxpemUgYSBub2RlJ3MgbmFtZXNwYWNlVVJJIChvciB0aGUgbmFtZXNwYWNlVVJJIG9mIG9uZSBvZiBub2RlJ3NcbiAgICAgICAgICAgICAqIGF0dHJpYnV0ZXMpLiBTZWUgdGhlIGdlbmVyYXRlIGEgcHJlZml4IGFsZ29yaXRobS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgbmFtZXNwYWNlID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeE1hcCA9IG5ldyBOYW1lc3BhY2VQcmVmaXhNYXBfMS5OYW1lc3BhY2VQcmVmaXhNYXAoKTtcbiAgICAgICAgICAgIHByZWZpeE1hcC5zZXQoXCJ4bWxcIiwgaW5mcmFfMS5uYW1lc3BhY2UuWE1MKTtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeEluZGV4ID0geyB2YWx1ZTogMSB9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiA1LiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBYTUwgc2VyaWFsaXphdGlvbiBhbGdvcml0aG0gb24gbm9kZVxuICAgICAgICAgICAgICogcGFzc2luZyB0aGUgY29udGV4dCBuYW1lc3BhY2UgbmFtZXNwYWNlLCBuYW1lc3BhY2UgcHJlZml4IG1hcCBwcmVmaXggbWFwLFxuICAgICAgICAgICAgICogZ2VuZXJhdGVkIG5hbWVzcGFjZSBwcmVmaXggaW5kZXggcmVmZXJlbmNlIHRvIHByZWZpeCBpbmRleCwgYW5kIHRoZVxuICAgICAgICAgICAgICogZmxhZyByZXF1aXJlIHdlbGwtZm9ybWVkLiBJZiBhbiBleGNlcHRpb24gb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uXG4gICAgICAgICAgICAgKiBvZiB0aGUgYWxnb3JpdGhtLCB0aGVuIGNhdGNoIHRoYXQgZXhjZXB0aW9uIGFuZCB0aHJvdyBhblxuICAgICAgICAgICAgICogXCJJbnZhbGlkU3RhdGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVOb2RlTlMobm9kZSwgbmFtZXNwYWNlLCBwcmVmaXhNYXAsIHByZWZpeEluZGV4LCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZFN0YXRlRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplTm9kZShub2RlLCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoX2IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZFN0YXRlRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiBhIG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gc2VyaWFsaXplXG4gICAgICogQHBhcmFtIG5hbWVzcGFjZSAtIGNvbnRleHQgbmFtZXNwYWNlXG4gICAgICogQHBhcmFtIHByZWZpeE1hcCAtIG5hbWVzcGFjZSBwcmVmaXggbWFwXG4gICAgICogQHBhcmFtIHByZWZpeEluZGV4IC0gZ2VuZXJhdGVkIG5hbWVzcGFjZSBwcmVmaXggaW5kZXhcbiAgICAgKiBAcGFyYW0gcmVxdWlyZVdlbGxGb3JtZWQgLSB3aGV0aGVyIHRvIGNoZWNrIGNvbmZvcm1hbmNlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZU5vZGVOUyhub2RlLCBuYW1lc3BhY2UsIHByZWZpeE1hcCwgcHJlZml4SW5kZXgsIHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE5vZGUgPSBub2RlO1xuICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkVsZW1lbnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplRWxlbWVudE5TKG5vZGUsIG5hbWVzcGFjZSwgcHJlZml4TWFwLCBwcmVmaXhJbmRleCwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplRG9jdW1lbnROUyhub2RlLCBuYW1lc3BhY2UsIHByZWZpeE1hcCwgcHJlZml4SW5kZXgsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNvbW1lbnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplQ29tbWVudChub2RlLCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5UZXh0OlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZVRleHQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRGcmFnbWVudDpcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVEb2N1bWVudEZyYWdtZW50TlMobm9kZSwgbmFtZXNwYWNlLCBwcmVmaXhNYXAsIHByZWZpeEluZGV4LCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGU6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplRG9jdW1lbnRUeXBlKG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbjpcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24obm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ0RhdGE6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplQ0RhdGEobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gbm9kZSB0eXBlOiAke25vZGUubm9kZVR5cGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgYSBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIHNlcmlhbGl6ZVxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplTm9kZShub2RlLCByZXF1aXJlV2VsbEZvcm1lZCkge1xuICAgICAgICB0aGlzLmN1cnJlbnROb2RlID0gbm9kZTtcbiAgICAgICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5FbGVtZW50OlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZUVsZW1lbnQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplRG9jdW1lbnQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuQ29tbWVudDpcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJpYWxpemVDb21tZW50KG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlRleHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplVGV4dChub2RlLCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudEZyYWdtZW50OlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZURvY3VtZW50RnJhZ21lbnQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuTm9kZVR5cGUuRG9jdW1lbnRUeXBlOlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZURvY3VtZW50VHlwZShub2RlLCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb246XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplUHJvY2Vzc2luZ0luc3RydWN0aW9uKG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLk5vZGVUeXBlLkNEYXRhOlxuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZUNEYXRhKG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIG5vZGUgdHlwZTogJHtub2RlLm5vZGVUeXBlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGFuIGVsZW1lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gbmFtZXNwYWNlIC0gY29udGV4dCBuYW1lc3BhY2VcbiAgICAgKiBAcGFyYW0gcHJlZml4TWFwIC0gbmFtZXNwYWNlIHByZWZpeCBtYXBcbiAgICAgKiBAcGFyYW0gcHJlZml4SW5kZXggLSBnZW5lcmF0ZWQgbmFtZXNwYWNlIHByZWZpeCBpbmRleFxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplRWxlbWVudE5TKG5vZGUsIG5hbWVzcGFjZSwgcHJlZml4TWFwLCBwcmVmaXhJbmRleCwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZyb206IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9ET00tUGFyc2luZy8jeG1sLXNlcmlhbGl6aW5nLWFuLWVsZW1lbnQtbm9kZVxuICAgICAgICAgKlxuICAgICAgICAgKiAxLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgdGhpc1xuICAgICAgICAgKiBub2RlJ3MgbG9jYWxOYW1lIGF0dHJpYnV0ZSBjb250YWlucyB0aGUgY2hhcmFjdGVyIFwiOlwiIChVKzAwM0EgQ09MT04pIG9yXG4gICAgICAgICAqIGRvZXMgbm90IG1hdGNoIHRoZSBYTUwgTmFtZSBwcm9kdWN0aW9uLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbjsgdGhlXG4gICAgICAgICAqIHNlcmlhbGl6YXRpb24gb2YgdGhpcyBub2RlIHdvdWxkIG5vdCBiZSBhIHdlbGwtZm9ybWVkIGVsZW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgKG5vZGUubG9jYWxOYW1lLmluZGV4T2YoXCI6XCIpICE9PSAtMSB8fFxuICAgICAgICAgICAgIWFsZ29yaXRobV8xLnhtbF9pc05hbWUobm9kZS5sb2NhbE5hbWUpKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm9kZSBsb2NhbCBuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycyAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMi4gTGV0IG1hcmt1cCBiZSB0aGUgc3RyaW5nIFwiPFwiIChVKzAwM0MgTEVTUy1USEFOIFNJR04pLlxuICAgICAgICAgKiAzLiBMZXQgcXVhbGlmaWVkIG5hbWUgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgICAgKiA0LiBMZXQgc2tpcCBlbmQgdGFnIGJlIGEgYm9vbGVhbiBmbGFnIHdpdGggdmFsdWUgZmFsc2UuXG4gICAgICAgICAqIDUuIExldCBpZ25vcmUgbmFtZXNwYWNlIGRlZmluaXRpb24gYXR0cmlidXRlIGJlIGEgYm9vbGVhbiBmbGFnIHdpdGggdmFsdWVcbiAgICAgICAgICogZmFsc2UuXG4gICAgICAgICAqIDYuIEdpdmVuIHByZWZpeCBtYXAsIGNvcHkgYSBuYW1lc3BhY2UgcHJlZml4IG1hcCBhbmQgbGV0IG1hcCBiZSB0aGVcbiAgICAgICAgICogcmVzdWx0LlxuICAgICAgICAgKiA3LiBMZXQgbG9jYWwgcHJlZml4ZXMgbWFwIGJlIGFuIGVtcHR5IG1hcC4gVGhlIG1hcCBoYXMgdW5pcXVlIE5vZGUgcHJlZml4XG4gICAgICAgICAqIHN0cmluZ3MgYXMgaXRzIGtleXMsIHdpdGggY29ycmVzcG9uZGluZyBuYW1lc3BhY2VVUkkgTm9kZSB2YWx1ZXMgYXMgdGhlXG4gICAgICAgICAqIG1hcCdzIGtleSB2YWx1ZXMgKGluIHRoaXMgbWFwLCB0aGUgbnVsbCBuYW1lc3BhY2UgaXMgcmVwcmVzZW50ZWQgYnkgdGhlXG4gICAgICAgICAqIGVtcHR5IHN0cmluZykuXG4gICAgICAgICAqXG4gICAgICAgICAqIF9Ob3RlOl8gVGhpcyBtYXAgaXMgbG9jYWwgdG8gZWFjaCBlbGVtZW50LiBJdCBpcyB1c2VkIHRvIGVuc3VyZSB0aGVyZVxuICAgICAgICAgKiBhcmUgbm8gY29uZmxpY3RpbmcgcHJlZml4ZXMgc2hvdWxkIGEgbmV3IG5hbWVzcGFjZSBwcmVmaXggYXR0cmlidXRlIG5lZWRcbiAgICAgICAgICogdG8gYmUgZ2VuZXJhdGVkLiBJdCBpcyBhbHNvIHVzZWQgdG8gZW5hYmxlIHNraXBwaW5nIG9mIGR1cGxpY2F0ZSBwcmVmaXhcbiAgICAgICAgICogZGVmaW5pdGlvbnMgd2hlbiB3cml0aW5nIGFuIGVsZW1lbnQncyBhdHRyaWJ1dGVzOiB0aGUgbWFwIGFsbG93cyB0aGVcbiAgICAgICAgICogYWxnb3JpdGhtIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBwcmVmaXggaW4gdGhlIG5hbWVzcGFjZSBwcmVmaXggbWFwXG4gICAgICAgICAqIHRoYXQgbWlnaHQgYmUgbG9jYWxseS1kZWZpbmVkICh0byB0aGUgY3VycmVudCBFbGVtZW50KSBhbmQgb25lIHRoYXQgaXNcbiAgICAgICAgICogbm90LlxuICAgICAgICAgKiA4LiBMZXQgbG9jYWwgZGVmYXVsdCBuYW1lc3BhY2UgYmUgdGhlIHJlc3VsdCBvZiByZWNvcmRpbmcgdGhlIG5hbWVzcGFjZVxuICAgICAgICAgKiBpbmZvcm1hdGlvbiBmb3Igbm9kZSBnaXZlbiBtYXAgYW5kIGxvY2FsIHByZWZpeGVzIG1hcC5cbiAgICAgICAgICpcbiAgICAgICAgICogX05vdGU6XyBUaGUgYWJvdmUgc3RlcCB3aWxsIHVwZGF0ZSBtYXAgd2l0aCBhbnkgZm91bmQgbmFtZXNwYWNlIHByZWZpeFxuICAgICAgICAgKiBkZWZpbml0aW9ucywgYWRkIHRoZSBmb3VuZCBwcmVmaXggZGVmaW5pdGlvbnMgdG8gdGhlIGxvY2FsIHByZWZpeGVzIG1hcFxuICAgICAgICAgKiBhbmQgcmV0dXJuIGEgbG9jYWwgZGVmYXVsdCBuYW1lc3BhY2UgdmFsdWUgZGVmaW5lZCBieSBhIGRlZmF1bHQgbmFtZXNwYWNlXG4gICAgICAgICAqIGF0dHJpYnV0ZSBpZiBvbmUgZXhpc3RzLiBPdGhlcndpc2UgaXQgcmV0dXJucyBudWxsLlxuICAgICAgICAgKiA5LiBMZXQgaW5oZXJpdGVkIG5zIGJlIGEgY29weSBvZiBuYW1lc3BhY2UuXG4gICAgICAgICAqIDEwLiBMZXQgbnMgYmUgdGhlIHZhbHVlIG9mIG5vZGUncyBuYW1lc3BhY2VVUkkgYXR0cmlidXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHF1YWxpZmllZE5hbWUgPSAnJztcbiAgICAgICAgbGV0IHNraXBFbmRUYWcgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlnbm9yZU5hbWVzcGFjZURlZmluaXRpb25BdHRyaWJ1dGUgPSBmYWxzZTtcbiAgICAgICAgbGV0IG1hcCA9IHByZWZpeE1hcC5jb3B5KCk7XG4gICAgICAgIGxldCBsb2NhbFByZWZpeGVzTWFwID0ge307XG4gICAgICAgIGxldCBsb2NhbERlZmF1bHROYW1lc3BhY2UgPSB0aGlzLl9yZWNvcmROYW1lc3BhY2VJbmZvcm1hdGlvbihub2RlLCBtYXAsIGxvY2FsUHJlZml4ZXNNYXApO1xuICAgICAgICBsZXQgaW5oZXJpdGVkTlMgPSBuYW1lc3BhY2U7XG4gICAgICAgIGxldCBucyA9IG5vZGUubmFtZXNwYWNlVVJJO1xuICAgICAgICAvKiogMTEuIElmIGluaGVyaXRlZCBucyBpcyBlcXVhbCB0byBucywgdGhlbjogKi9cbiAgICAgICAgaWYgKGluaGVyaXRlZE5TID09PSBucykge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAxMS4xLiBJZiBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSBpcyBub3QgbnVsbCwgdGhlbiBzZXQgaWdub3JlXG4gICAgICAgICAgICAgKiBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhdHRyaWJ1dGUgdG8gdHJ1ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGxvY2FsRGVmYXVsdE5hbWVzcGFjZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlnbm9yZU5hbWVzcGFjZURlZmluaXRpb25BdHRyaWJ1dGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAxMS4yLiBJZiBucyBpcyB0aGUgWE1MIG5hbWVzcGFjZSwgdGhlbiBhcHBlbmQgdG8gcXVhbGlmaWVkIG5hbWUgdGhlXG4gICAgICAgICAgICAgKiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgXCJ4bWw6XCIgYW5kIHRoZSB2YWx1ZSBvZiBub2RlJ3MgbG9jYWxOYW1lLlxuICAgICAgICAgICAgICogMTEuMy4gT3RoZXJ3aXNlLCBhcHBlbmQgdG8gcXVhbGlmaWVkIG5hbWUgdGhlIHZhbHVlIG9mIG5vZGUnc1xuICAgICAgICAgICAgICogbG9jYWxOYW1lLiBUaGUgbm9kZSdzIHByZWZpeCBpZiBpdCBleGlzdHMsIGlzIGRyb3BwZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChucyA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MKSB7XG4gICAgICAgICAgICAgICAgcXVhbGlmaWVkTmFtZSA9ICd4bWw6JyArIG5vZGUubG9jYWxOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcXVhbGlmaWVkTmFtZSA9IG5vZGUubG9jYWxOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqIDExLjQuIEFwcGVuZCB0aGUgdmFsdWUgb2YgcXVhbGlmaWVkIG5hbWUgdG8gbWFya3VwLiAqL1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9iZWdpbkVsZW1lbnQpXG4gICAgICAgICAgICAgICAgdGhpcy5fYmVnaW5FbGVtZW50KHF1YWxpZmllZE5hbWUpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuVGFnQmVnaW4pXG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlblRhZ0JlZ2luKHF1YWxpZmllZE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAxMi4gT3RoZXJ3aXNlLCBpbmhlcml0ZWQgbnMgaXMgbm90IGVxdWFsIHRvIG5zICh0aGUgbm9kZSdzIG93blxuICAgICAgICAgICAgICogbmFtZXNwYWNlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IG5hbWVzcGFjZSBvZiBpdHMgcGFyZW50KS5cbiAgICAgICAgICAgICAqIFJ1biB0aGVzZSBzdWItc3RlcHM6XG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogMTIuMS4gTGV0IHByZWZpeCBiZSB0aGUgdmFsdWUgb2Ygbm9kZSdzIHByZWZpeCBhdHRyaWJ1dGUuXG4gICAgICAgICAgICAgKiAxMi4yLiBMZXQgY2FuZGlkYXRlIHByZWZpeCBiZSB0aGUgcmVzdWx0IG9mIHJldHJpZXZpbmcgYSBwcmVmZXJyZWRcbiAgICAgICAgICAgICAqIHByZWZpeCBzdHJpbmcgcHJlZml4IGZyb20gbWFwIGdpdmVuIG5hbWVzcGFjZSBucy4gVGhlIGFib3ZlIG1heSByZXR1cm5cbiAgICAgICAgICAgICAqIG51bGwgaWYgbm8gbmFtZXNwYWNlIGtleSBucyBleGlzdHMgaW4gbWFwLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgcHJlZml4ID0gbm9kZS5wcmVmaXg7XG4gICAgICAgICAgICBsZXQgY2FuZGlkYXRlUHJlZml4ID0gbWFwLmdldChwcmVmaXgsIG5zKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMTIuMy4gSWYgdGhlIHZhbHVlIG9mIHByZWZpeCBtYXRjaGVzIFwieG1sbnNcIiwgdGhlbiBydW4gdGhlIGZvbGxvd2luZ1xuICAgICAgICAgICAgICogc3RlcHM6XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChwcmVmaXggPT09IFwieG1sbnNcIikge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEyLjMuMS4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyBzZXQsIHRoZW4gdGhyb3cgYW4gZXJyb3IuXG4gICAgICAgICAgICAgICAgICogQW4gRWxlbWVudCB3aXRoIHByZWZpeCBcInhtbG5zXCIgd2lsbCBub3QgbGVnYWxseSByb3VuZC10cmlwIGluIGFcbiAgICAgICAgICAgICAgICAgKiBjb25mb3JtaW5nIFhNTCBwYXJzZXIuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFuIGVsZW1lbnQgY2Fubm90IGhhdmUgdGhlICd4bWxucycgcHJlZml4ICh3ZWxsLWZvcm1lZCByZXF1aXJlZCkuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAxMi4zLjIuIExldCBjYW5kaWRhdGUgcHJlZml4IGJlIHRoZSB2YWx1ZSBvZiBwcmVmaXguXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY2FuZGlkYXRlUHJlZml4ID0gcHJlZml4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAxMi40LkZvdW5kIGEgc3VpdGFibGUgbmFtZXNwYWNlIHByZWZpeDogaWYgY2FuZGlkYXRlIHByZWZpeCBpcyBub3RcbiAgICAgICAgICAgICAqIG51bGwgKGEgbmFtZXNwYWNlIHByZWZpeCBpcyBkZWZpbmVkIHdoaWNoIG1hcHMgdG8gbnMpLCB0aGVuOlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoY2FuZGlkYXRlUHJlZml4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogVGhlIGZvbGxvd2luZyBtYXkgc2VyaWFsaXplIGEgZGlmZmVyZW50IHByZWZpeCB0aGFuIHRoZSBFbGVtZW50J3NcbiAgICAgICAgICAgICAgICAgKiBleGlzdGluZyBwcmVmaXggaWYgaXQgYWxyZWFkeSBoYWQgb25lLiBIb3dldmVyLCB0aGUgcmV0cmlldmluZyBhXG4gICAgICAgICAgICAgICAgICogcHJlZmVycmVkIHByZWZpeCBzdHJpbmcgYWxnb3JpdGhtIGFscmVhZHkgdHJpZWQgdG8gbWF0Y2ggdGhlXG4gICAgICAgICAgICAgICAgICogZXhpc3RpbmcgcHJlZml4IGlmIHBvc3NpYmxlLlxuICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICogMTIuNC4xLiBBcHBlbmQgdG8gcXVhbGlmaWVkIG5hbWUgdGhlIGNvbmNhdGVuYXRpb24gb2YgY2FuZGlkYXRlXG4gICAgICAgICAgICAgICAgICogcHJlZml4LCBcIjpcIiAoVSswMDNBIENPTE9OKSwgYW5kIG5vZGUncyBsb2NhbE5hbWUuIFRoZXJlIGV4aXN0cyBvblxuICAgICAgICAgICAgICAgICAqIHRoaXMgbm9kZSBvciB0aGUgbm9kZSdzIGFuY2VzdHJ5IGEgbmFtZXNwYWNlIHByZWZpeCBkZWZpbml0aW9uIHRoYXRcbiAgICAgICAgICAgICAgICAgKiBkZWZpbmVzIHRoZSBub2RlJ3MgbmFtZXNwYWNlLlxuICAgICAgICAgICAgICAgICAqIDEyLjQuMi4gSWYgdGhlIGxvY2FsIGRlZmF1bHQgbmFtZXNwYWNlIGlzIG5vdCBudWxsICh0aGVyZSBleGlzdHMgYVxuICAgICAgICAgICAgICAgICAqIGxvY2FsbHktZGVmaW5lZCBkZWZhdWx0IG5hbWVzcGFjZSBkZWNsYXJhdGlvbiBhdHRyaWJ1dGUpIGFuZCBpdHNcbiAgICAgICAgICAgICAgICAgKiB2YWx1ZSBpcyBub3QgdGhlIFhNTCBuYW1lc3BhY2UsIHRoZW4gbGV0IGluaGVyaXRlZCBucyBnZXQgdGhlIHZhbHVlXG4gICAgICAgICAgICAgICAgICogb2YgbG9jYWwgZGVmYXVsdCBuYW1lc3BhY2UgdW5sZXNzIHRoZSBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSBpcyB0aGVcbiAgICAgICAgICAgICAgICAgKiBlbXB0eSBzdHJpbmcgaW4gd2hpY2ggY2FzZSBsZXQgaXQgZ2V0IG51bGwgKHRoZSBjb250ZXh0IG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAqIGlzIGNoYW5nZWQgdG8gdGhlIGRlY2xhcmVkIGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoaXMgbm9kZSdzIG93blxuICAgICAgICAgICAgICAgICAqIG5hbWVzcGFjZSkuXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIEFueSBkZWZhdWx0IG5hbWVzcGFjZSBkZWZpbml0aW9ucyBvciBuYW1lc3BhY2UgcHJlZml4ZXMgdGhhdFxuICAgICAgICAgICAgICAgICAqIGRlZmluZSB0aGUgWE1MIG5hbWVzcGFjZSBhcmUgb21pdHRlZCB3aGVuIHNlcmlhbGl6aW5nIHRoaXMgbm9kZSdzXG4gICAgICAgICAgICAgICAgICogYXR0cmlidXRlcy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBxdWFsaWZpZWROYW1lID0gY2FuZGlkYXRlUHJlZml4ICsgJzonICsgbm9kZS5sb2NhbE5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsRGVmYXVsdE5hbWVzcGFjZSAhPT0gbnVsbCAmJiBsb2NhbERlZmF1bHROYW1lc3BhY2UgIT09IGluZnJhXzEubmFtZXNwYWNlLlhNTCkge1xuICAgICAgICAgICAgICAgICAgICBpbmhlcml0ZWROUyA9IGxvY2FsRGVmYXVsdE5hbWVzcGFjZSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAxMi40LjMuIEFwcGVuZCB0aGUgdmFsdWUgb2YgcXVhbGlmaWVkIG5hbWUgdG8gbWFya3VwLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2JlZ2luRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYmVnaW5FbGVtZW50KHF1YWxpZmllZE5hbWUpO1xuICAgICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wZW5UYWdCZWdpbilcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlblRhZ0JlZ2luKHF1YWxpZmllZE5hbWUpO1xuICAgICAgICAgICAgICAgIC8qKiAxMi41LiBPdGhlcndpc2UsIGlmIHByZWZpeCBpcyBub3QgbnVsbCwgdGhlbjogKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHByZWZpeCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gQnkgdGhpcyBzdGVwLCB0aGVyZSBpcyBubyBuYW1lc3BhY2Ugb3IgcHJlZml4IG1hcHBpbmdcbiAgICAgICAgICAgICAgICAgKiBkZWNsYXJhdGlvbiBpbiB0aGlzIG5vZGUgKG9yIGFueSBwYXJlbnQgbm9kZSB2aXNpdGVkIGJ5IHRoaXNcbiAgICAgICAgICAgICAgICAgKiBhbGdvcml0aG0pIHRoYXQgZGVmaW5lcyBwcmVmaXggb3RoZXJ3aXNlIHRoZSBzdGVwIGxhYmVsbGVkIEZvdW5kXG4gICAgICAgICAgICAgICAgICogYSBzdWl0YWJsZSBuYW1lc3BhY2UgcHJlZml4IHdvdWxkIGhhdmUgYmVlbiBmb2xsb3dlZC4gVGhlIHN1Yi1zdGVwc1xuICAgICAgICAgICAgICAgICAqIHRoYXQgZm9sbG93IHdpbGwgY3JlYXRlIGEgbmV3IG5hbWVzcGFjZSBwcmVmaXggZGVjbGFyYXRpb24gZm9yIHByZWZpeFxuICAgICAgICAgICAgICAgICAqIGFuZCBlbnN1cmUgdGhhdCBwcmVmaXggZG9lcyBub3QgY29uZmxpY3Qgd2l0aCBhbiBleGlzdGluZyBuYW1lc3BhY2VcbiAgICAgICAgICAgICAgICAgKiBwcmVmaXggZGVjbGFyYXRpb24gb2YgdGhlIHNhbWUgbG9jYWxOYW1lIGluIG5vZGUncyBhdHRyaWJ1dGUgbGlzdC5cbiAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAqIDEyLjUuMS4gSWYgdGhlIGxvY2FsIHByZWZpeGVzIG1hcCBjb250YWlucyBhIGtleSBtYXRjaGluZyBwcmVmaXgsXG4gICAgICAgICAgICAgICAgICogdGhlbiBsZXQgcHJlZml4IGJlIHRoZSByZXN1bHQgb2YgZ2VuZXJhdGluZyBhIHByZWZpeCBwcm92aWRpbmcgYXNcbiAgICAgICAgICAgICAgICAgKiBpbnB1dCBtYXAsIG5zLCBhbmQgcHJlZml4IGluZGV4LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChwcmVmaXggaW4gbG9jYWxQcmVmaXhlc01hcCkge1xuICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSB0aGlzLl9nZW5lcmF0ZVByZWZpeChucywgbWFwLCBwcmVmaXhJbmRleCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEyLjUuMi4gQWRkIHByZWZpeCB0byBtYXAgZ2l2ZW4gbmFtZXNwYWNlIG5zLlxuICAgICAgICAgICAgICAgICAqIDEyLjUuMy4gQXBwZW5kIHRvIHF1YWxpZmllZCBuYW1lIHRoZSBjb25jYXRlbmF0aW9uIG9mIHByZWZpeCwgXCI6XCJcbiAgICAgICAgICAgICAgICAgKiAoVSswMDNBIENPTE9OKSwgYW5kIG5vZGUncyBsb2NhbE5hbWUuXG4gICAgICAgICAgICAgICAgICogMTIuNS40LiBBcHBlbmQgdGhlIHZhbHVlIG9mIHF1YWxpZmllZCBuYW1lIHRvIG1hcmt1cC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBtYXAuc2V0KHByZWZpeCwgbnMpO1xuICAgICAgICAgICAgICAgIHF1YWxpZmllZE5hbWUgKz0gcHJlZml4ICsgJzonICsgbm9kZS5sb2NhbE5hbWU7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYmVnaW5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9iZWdpbkVsZW1lbnQocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3BlblRhZ0JlZ2luKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVuVGFnQmVnaW4ocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTIuNS41LiBBcHBlbmQgdGhlIGZvbGxvd2luZyB0byBtYXJrdXAsIGluIHRoZSBvcmRlciBsaXN0ZWQ6XG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIFRoZSBmb2xsb3dpbmcgc2VyaWFsaXplcyBhIG5hbWVzcGFjZSBwcmVmaXggZGVjbGFyYXRpb24gZm9yXG4gICAgICAgICAgICAgICAgICogcHJlZml4IHdoaWNoIHdhcyBqdXN0IGFkZGVkIHRvIHRoZSBtYXAuXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiAxMi41LjUuMS4gXCIgXCIgKFUrMDAyMCBTUEFDRSk7XG4gICAgICAgICAgICAgICAgICogMTIuNS41LjIuIFRoZSBzdHJpbmcgXCJ4bWxuczpcIjtcbiAgICAgICAgICAgICAgICAgKiAxMi41LjUuMy4gVGhlIHZhbHVlIG9mIHByZWZpeDtcbiAgICAgICAgICAgICAgICAgKiAxMi41LjUuNC4gXCI9XCJcIiAoVSswMDNEIEVRVUFMUyBTSUdOLCBVKzAwMjIgUVVPVEFUSU9OIE1BUkspO1xuICAgICAgICAgICAgICAgICAqIDEyLjUuNS41LiBUaGUgcmVzdWx0IG9mIHNlcmlhbGl6aW5nIGFuIGF0dHJpYnV0ZSB2YWx1ZSBnaXZlbiBucyBhbmRcbiAgICAgICAgICAgICAgICAgKiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGFzIGlucHV0O1xuICAgICAgICAgICAgICAgICAqIDEyLjUuNS42LiBcIlwiXCIgKFUrMDAyMiBRVU9UQVRJT04gTUFSSykuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGUoJ3htbG5zOicgKyBwcmVmaXgsIHRoaXMuX3NlcmlhbGl6ZUF0dHJpYnV0ZVZhbHVlKG5zLCByZXF1aXJlV2VsbEZvcm1lZCkpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEyLjUuNS43LiBJZiBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSBpcyBub3QgbnVsbCAodGhlcmUgZXhpc3RzIGFcbiAgICAgICAgICAgICAgICAgKiBsb2NhbGx5LWRlZmluZWQgZGVmYXVsdCBuYW1lc3BhY2UgZGVjbGFyYXRpb24gYXR0cmlidXRlKSwgdGhlblxuICAgICAgICAgICAgICAgICAqIGxldCBpbmhlcml0ZWQgbnMgZ2V0IHRoZSB2YWx1ZSBvZiBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSB1bmxlc3MgdGhlXG4gICAgICAgICAgICAgICAgICogbG9jYWwgZGVmYXVsdCBuYW1lc3BhY2UgaXMgdGhlIGVtcHR5IHN0cmluZyBpbiB3aGljaCBjYXNlIGxldCBpdCBnZXRcbiAgICAgICAgICAgICAgICAgKiBudWxsLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbERlZmF1bHROYW1lc3BhY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5oZXJpdGVkTlMgPSBsb2NhbERlZmF1bHROYW1lc3BhY2UgfHwgbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTIuNi4gT3RoZXJ3aXNlLCBpZiBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSBpcyBudWxsLCBvciBsb2NhbFxuICAgICAgICAgICAgICAgICAqIGRlZmF1bHQgbmFtZXNwYWNlIGlzIG5vdCBudWxsIGFuZCBpdHMgdmFsdWUgaXMgbm90IGVxdWFsIHRvIG5zLCB0aGVuOlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobG9jYWxEZWZhdWx0TmFtZXNwYWNlID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgKGxvY2FsRGVmYXVsdE5hbWVzcGFjZSAhPT0gbnVsbCAmJiBsb2NhbERlZmF1bHROYW1lc3BhY2UgIT09IG5zKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gQXQgdGhpcyBwb2ludCwgdGhlIG5hbWVzcGFjZSBmb3IgdGhpcyBub2RlIHN0aWxsIG5lZWRzIHRvIGJlXG4gICAgICAgICAgICAgICAgICogc2VyaWFsaXplZCwgYnV0IHRoZXJlJ3Mgbm8gcHJlZml4IChvciBjYW5kaWRhdGUgcHJlZml4KSBhdmFpbGJsZTsgdGhlXG4gICAgICAgICAgICAgICAgICogZm9sbG93aW5nIHVzZXMgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIGRlY2xhcmF0aW9uIHRvIGRlZmluZSB0aGVcbiAgICAgICAgICAgICAgICAgKiBuYW1lc3BhY2UtLW9wdGlvbmFsbHkgcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGRlZmF1bHQgZGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICAgKiBpZiBwcmVzZW50LlxuICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICogMTIuNi4xLiBTZXQgdGhlIGlnbm9yZSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhdHRyaWJ1dGUgZmxhZyB0byB0cnVlLlxuICAgICAgICAgICAgICAgICAqIDEyLjYuMi4gQXBwZW5kIHRvIHF1YWxpZmllZCBuYW1lIHRoZSB2YWx1ZSBvZiBub2RlJ3MgbG9jYWxOYW1lLlxuICAgICAgICAgICAgICAgICAqIDEyLjYuMy4gTGV0IHRoZSB2YWx1ZSBvZiBpbmhlcml0ZWQgbnMgYmUgbnMuXG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIFRoZSBuZXcgZGVmYXVsdCBuYW1lc3BhY2Ugd2lsbCBiZSB1c2VkIGluIHRoZSBzZXJpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgICogdG8gZGVmaW5lIHRoaXMgbm9kZSdzIG5hbWVzcGFjZSBhbmQgYWN0IGFzIHRoZSBjb250ZXh0IG5hbWVzcGFjZSBmb3JcbiAgICAgICAgICAgICAgICAgKiBpdHMgY2hpbGRyZW4uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWdub3JlTmFtZXNwYWNlRGVmaW5pdGlvbkF0dHJpYnV0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgcXVhbGlmaWVkTmFtZSArPSBub2RlLmxvY2FsTmFtZTtcbiAgICAgICAgICAgICAgICBpbmhlcml0ZWROUyA9IG5zO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEyLjYuNC4gQXBwZW5kIHRoZSB2YWx1ZSBvZiBxdWFsaWZpZWQgbmFtZSB0byBtYXJrdXAuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYmVnaW5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9iZWdpbkVsZW1lbnQocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fb3BlblRhZ0JlZ2luKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVuVGFnQmVnaW4ocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTIuNi41LiBBcHBlbmQgdGhlIGZvbGxvd2luZyB0byBtYXJrdXAsIGluIHRoZSBvcmRlciBsaXN0ZWQ6XG4gICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIFRoZSBmb2xsb3dpbmcgc2VyaWFsaXplcyB0aGUgbmV3IChvciByZXBsYWNlbWVudCkgZGVmYXVsdFxuICAgICAgICAgICAgICAgICAqIG5hbWVzcGFjZSBkZWZpbml0aW9uLlxuICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICogMTIuNi41LjEuIFwiIFwiIChVKzAwMjAgU1BBQ0UpO1xuICAgICAgICAgICAgICAgICAqIDEyLjYuNS4yLiBUaGUgc3RyaW5nIFwieG1sbnNcIjtcbiAgICAgICAgICAgICAgICAgKiAxMi42LjUuMy4gXCI9XCJcIiAoVSswMDNEIEVRVUFMUyBTSUdOLCBVKzAwMjIgUVVPVEFUSU9OIE1BUkspO1xuICAgICAgICAgICAgICAgICAqIDEyLjYuNS40LiBUaGUgcmVzdWx0IG9mIHNlcmlhbGl6aW5nIGFuIGF0dHJpYnV0ZSB2YWx1ZSBnaXZlbiBuc1xuICAgICAgICAgICAgICAgICAqIGFuZCB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGFzIGlucHV0O1xuICAgICAgICAgICAgICAgICAqIDEyLjYuNS41LiBcIlwiXCIgKFUrMDAyMiBRVU9UQVRJT04gTUFSSykuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGUoJ3htbG5zJywgdGhpcy5fc2VyaWFsaXplQXR0cmlidXRlVmFsdWUobnMsIHJlcXVpcmVXZWxsRm9ybWVkKSk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMTIuNy4gT3RoZXJ3aXNlLCB0aGUgbm9kZSBoYXMgYSBsb2NhbCBkZWZhdWx0IG5hbWVzcGFjZSB0aGF0IG1hdGNoZXNcbiAgICAgICAgICAgICAgICAgKiBucy4gQXBwZW5kIHRvIHF1YWxpZmllZCBuYW1lIHRoZSB2YWx1ZSBvZiBub2RlJ3MgbG9jYWxOYW1lLCBsZXQgdGhlXG4gICAgICAgICAgICAgICAgICogdmFsdWUgb2YgaW5oZXJpdGVkIG5zIGJlIG5zLCBhbmQgYXBwZW5kIHRoZSB2YWx1ZSBvZiBxdWFsaWZpZWQgbmFtZVxuICAgICAgICAgICAgICAgICAqIHRvIG1hcmt1cC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHF1YWxpZmllZE5hbWUgKz0gbm9kZS5sb2NhbE5hbWU7XG4gICAgICAgICAgICAgICAgaW5oZXJpdGVkTlMgPSBucztcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9iZWdpbkVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2JlZ2luRWxlbWVudChxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuVGFnQmVnaW4pXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZW5UYWdCZWdpbihxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMTMuIEFwcGVuZCB0byBtYXJrdXAgdGhlIHJlc3VsdCBvZiB0aGUgWE1MIHNlcmlhbGl6YXRpb24gb2Ygbm9kZSdzXG4gICAgICAgICAqIGF0dHJpYnV0ZXMgZ2l2ZW4gbWFwLCBwcmVmaXggaW5kZXgsIGxvY2FsIHByZWZpeGVzIG1hcCwgaWdub3JlIG5hbWVzcGFjZVxuICAgICAgICAgKiBkZWZpbml0aW9uIGF0dHJpYnV0ZSBmbGFnLCBhbmQgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc2VyaWFsaXplQXR0cmlidXRlc05TKG5vZGUsIG1hcCwgcHJlZml4SW5kZXgsIGxvY2FsUHJlZml4ZXNNYXAsIGlnbm9yZU5hbWVzcGFjZURlZmluaXRpb25BdHRyaWJ1dGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDE0LiBJZiBucyBpcyB0aGUgSFRNTCBuYW1lc3BhY2UsIGFuZCB0aGUgbm9kZSdzIGxpc3Qgb2YgY2hpbGRyZW4gaXNcbiAgICAgICAgICogZW1wdHksIGFuZCB0aGUgbm9kZSdzIGxvY2FsTmFtZSBtYXRjaGVzIGFueSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2b2lkXG4gICAgICAgICAqIGVsZW1lbnRzOiBcImFyZWFcIiwgXCJiYXNlXCIsIFwiYmFzZWZvbnRcIiwgXCJiZ3NvdW5kXCIsIFwiYnJcIiwgXCJjb2xcIiwgXCJlbWJlZFwiLFxuICAgICAgICAgKiBcImZyYW1lXCIsIFwiaHJcIiwgXCJpbWdcIiwgXCJpbnB1dFwiLCBcImtleWdlblwiLCBcImxpbmtcIiwgXCJtZW51aXRlbVwiLCBcIm1ldGFcIixcbiAgICAgICAgICogXCJwYXJhbVwiLCBcInNvdXJjZVwiLCBcInRyYWNrXCIsIFwid2JyXCI7IHRoZW4gYXBwZW5kIHRoZSBmb2xsb3dpbmcgdG8gbWFya3VwLFxuICAgICAgICAgKiBpbiB0aGUgb3JkZXIgbGlzdGVkOlxuICAgICAgICAgKiAxNC4xLiBcIiBcIiAoVSswMDIwIFNQQUNFKTtcbiAgICAgICAgICogMTQuMi4gXCIvXCIgKFUrMDAyRiBTT0xJRFVTKS5cbiAgICAgICAgICogYW5kIHNldCB0aGUgc2tpcCBlbmQgdGFnIGZsYWcgdG8gdHJ1ZS5cbiAgICAgICAgICogMTUuIElmIG5zIGlzIG5vdCB0aGUgSFRNTCBuYW1lc3BhY2UsIGFuZCB0aGUgbm9kZSdzIGxpc3Qgb2YgY2hpbGRyZW4gaXNcbiAgICAgICAgICogZW1wdHksIHRoZW4gYXBwZW5kIFwiL1wiIChVKzAwMkYgU09MSURVUykgdG8gbWFya3VwIGFuZCBzZXQgdGhlIHNraXAgZW5kXG4gICAgICAgICAqIHRhZyBmbGFnIHRvIHRydWUuXG4gICAgICAgICAqIDE2LiBBcHBlbmQgXCI+XCIgKFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTikgdG8gbWFya3VwLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaXNIVE1MID0gKG5zID09PSBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MKTtcbiAgICAgICAgaWYgKGlzSFRNTCAmJiBub2RlLmNoaWxkTm9kZXMubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgICBQcmVTZXJpYWxpemVyLl9Wb2lkRWxlbWVudE5hbWVzLmhhcyhub2RlLmxvY2FsTmFtZSkpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5fZW5kRWxlbWVudClcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRFbGVtZW50KHF1YWxpZmllZE5hbWUpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuVGFnRW5kKVxuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5UYWdFbmQocXVhbGlmaWVkTmFtZSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICBza2lwRW5kVGFnID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghaXNIVE1MICYmIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5fZW5kRWxlbWVudClcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmRFbGVtZW50KHF1YWxpZmllZE5hbWUpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuVGFnRW5kKVxuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5UYWdFbmQocXVhbGlmaWVkTmFtZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgc2tpcEVuZFRhZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX29wZW5UYWdFbmQpXG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlblRhZ0VuZChxdWFsaWZpZWROYW1lLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxNy4gSWYgdGhlIHZhbHVlIG9mIHNraXAgZW5kIHRhZyBpcyB0cnVlLCB0aGVuIHJldHVybiB0aGUgdmFsdWUgb2YgbWFya3VwXG4gICAgICAgICAqIGFuZCBza2lwIHRoZSByZW1haW5pbmcgc3RlcHMuIFRoZSBub2RlIGlzIGEgbGVhZi1ub2RlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHNraXBFbmRUYWcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxOC4gSWYgbnMgaXMgdGhlIEhUTUwgbmFtZXNwYWNlLCBhbmQgdGhlIG5vZGUncyBsb2NhbE5hbWUgbWF0Y2hlcyB0aGVcbiAgICAgICAgICogc3RyaW5nIFwidGVtcGxhdGVcIiwgdGhlbiB0aGlzIGlzIGEgdGVtcGxhdGUgZWxlbWVudC4gQXBwZW5kIHRvIG1hcmt1cCB0aGVcbiAgICAgICAgICogcmVzdWx0IG9mIFhNTCBzZXJpYWxpemluZyBhIERvY3VtZW50RnJhZ21lbnQgbm9kZSBnaXZlbiB0aGUgdGVtcGxhdGVcbiAgICAgICAgICogZWxlbWVudCdzIHRlbXBsYXRlIGNvbnRlbnRzIChhIERvY3VtZW50RnJhZ21lbnQpLCBwcm92aWRpbmcgaW5oZXJpdGVkXG4gICAgICAgICAqIG5zLCBtYXAsIHByZWZpeCBpbmRleCwgYW5kIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcuXG4gICAgICAgICAqXG4gICAgICAgICAqIF9Ob3RlOl8gVGhpcyBhbGxvd3MgdGVtcGxhdGUgY29udGVudCB0byByb3VuZC10cmlwLCBnaXZlbiB0aGUgcnVsZXMgZm9yXG4gICAgICAgICAqIHBhcnNpbmcgWEhUTUwgZG9jdW1lbnRzLlxuICAgICAgICAgKlxuICAgICAgICAgKiAxOS4gT3RoZXJ3aXNlLCBhcHBlbmQgdG8gbWFya3VwIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgWE1MXG4gICAgICAgICAqIHNlcmlhbGl6YXRpb24gYWxnb3JpdGhtIG9uIGVhY2ggb2Ygbm9kZSdzIGNoaWxkcmVuLCBpbiB0cmVlIG9yZGVyLFxuICAgICAgICAgKiBwcm92aWRpbmcgaW5oZXJpdGVkIG5zLCBtYXAsIHByZWZpeCBpbmRleCwgYW5kIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkXG4gICAgICAgICAqIGZsYWcuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaXNIVE1MICYmIG5vZGUubG9jYWxOYW1lID09PSBcInRlbXBsYXRlXCIpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IHNlcmlhbGl6ZSB0ZW1wbGF0ZSBjb250ZW50c1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5jaGlsZE5vZGVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbCsrO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZU5vZGVOUyhjaGlsZE5vZGUsIGluaGVyaXRlZE5TLCBtYXAsIHByZWZpeEluZGV4LCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sZXZlbC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyMC4gQXBwZW5kIHRoZSBmb2xsb3dpbmcgdG8gbWFya3VwLCBpbiB0aGUgb3JkZXIgbGlzdGVkOlxuICAgICAgICAgKiAyMC4xLiBcIjwvXCIgKFUrMDAzQyBMRVNTLVRIQU4gU0lHTiwgVSswMDJGIFNPTElEVVMpO1xuICAgICAgICAgKiAyMC4yLiBUaGUgdmFsdWUgb2YgcXVhbGlmaWVkIG5hbWU7XG4gICAgICAgICAqIDIwLjMuIFwiPlwiIChVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04pLlxuICAgICAgICAgKiAyMS4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBtYXJrdXAuXG4gICAgICAgICAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy5fZW5kRWxlbWVudClcbiAgICAgICAgICAgIHRoaXMuX2VuZEVsZW1lbnQocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLl9jbG9zZVRhZylcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlVGFnKHF1YWxpZmllZE5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiBhbiBlbGVtZW50IG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gc2VyaWFsaXplXG4gICAgICogQHBhcmFtIHJlcXVpcmVXZWxsRm9ybWVkIC0gd2hldGhlciB0byBjaGVjayBjb25mb3JtYW5jZVxuICAgICAqL1xuICAgIF9zZXJpYWxpemVFbGVtZW50KG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGcm9tOiBodHRwczovL3czYy5naXRodWIuaW8vRE9NLVBhcnNpbmcvI3htbC1zZXJpYWxpemluZy1hbi1lbGVtZW50LW5vZGVcbiAgICAgICAgICpcbiAgICAgICAgICogMS4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyBzZXQgKGl0cyB2YWx1ZSBpcyB0cnVlKSwgYW5kIHRoaXNcbiAgICAgICAgICogbm9kZSdzIGxvY2FsTmFtZSBhdHRyaWJ1dGUgY29udGFpbnMgdGhlIGNoYXJhY3RlciBcIjpcIiAoVSswMDNBIENPTE9OKSBvclxuICAgICAgICAgKiBkb2VzIG5vdCBtYXRjaCB0aGUgWE1MIE5hbWUgcHJvZHVjdGlvbiwgdGhlbiB0aHJvdyBhbiBleGNlcHRpb247IHRoZVxuICAgICAgICAgKiBzZXJpYWxpemF0aW9uIG9mIHRoaXMgbm9kZSB3b3VsZCBub3QgYmUgYSB3ZWxsLWZvcm1lZCBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIChub2RlLmxvY2FsTmFtZS5pbmRleE9mKFwiOlwiKSAhPT0gLTEgfHxcbiAgICAgICAgICAgICFhbGdvcml0aG1fMS54bWxfaXNOYW1lKG5vZGUubG9jYWxOYW1lKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vZGUgbG9jYWwgbmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMgKHdlbGwtZm9ybWVkIHJlcXVpcmVkKS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIExldCBtYXJrdXAgYmUgdGhlIHN0cmluZyBcIjxcIiAoVSswMDNDIExFU1MtVEhBTiBTSUdOKS5cbiAgICAgICAgICogMy4gTGV0IHF1YWxpZmllZCBuYW1lIGJlIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICogNC4gTGV0IHNraXAgZW5kIHRhZyBiZSBhIGJvb2xlYW4gZmxhZyB3aXRoIHZhbHVlIGZhbHNlLlxuICAgICAgICAgKiA1LiBMZXQgaWdub3JlIG5hbWVzcGFjZSBkZWZpbml0aW9uIGF0dHJpYnV0ZSBiZSBhIGJvb2xlYW4gZmxhZyB3aXRoIHZhbHVlXG4gICAgICAgICAqIGZhbHNlLlxuICAgICAgICAgKiA2LiBHaXZlbiBwcmVmaXggbWFwLCBjb3B5IGEgbmFtZXNwYWNlIHByZWZpeCBtYXAgYW5kIGxldCBtYXAgYmUgdGhlXG4gICAgICAgICAqIHJlc3VsdC5cbiAgICAgICAgICogNy4gTGV0IGxvY2FsIHByZWZpeGVzIG1hcCBiZSBhbiBlbXB0eSBtYXAuIFRoZSBtYXAgaGFzIHVuaXF1ZSBOb2RlIHByZWZpeFxuICAgICAgICAgKiBzdHJpbmdzIGFzIGl0cyBrZXlzLCB3aXRoIGNvcnJlc3BvbmRpbmcgbmFtZXNwYWNlVVJJIE5vZGUgdmFsdWVzIGFzIHRoZVxuICAgICAgICAgKiBtYXAncyBrZXkgdmFsdWVzIChpbiB0aGlzIG1hcCwgdGhlIG51bGwgbmFtZXNwYWNlIGlzIHJlcHJlc2VudGVkIGJ5IHRoZVxuICAgICAgICAgKiBlbXB0eSBzdHJpbmcpLlxuICAgICAgICAgKlxuICAgICAgICAgKiBfTm90ZTpfIFRoaXMgbWFwIGlzIGxvY2FsIHRvIGVhY2ggZWxlbWVudC4gSXQgaXMgdXNlZCB0byBlbnN1cmUgdGhlcmVcbiAgICAgICAgICogYXJlIG5vIGNvbmZsaWN0aW5nIHByZWZpeGVzIHNob3VsZCBhIG5ldyBuYW1lc3BhY2UgcHJlZml4IGF0dHJpYnV0ZSBuZWVkXG4gICAgICAgICAqIHRvIGJlIGdlbmVyYXRlZC4gSXQgaXMgYWxzbyB1c2VkIHRvIGVuYWJsZSBza2lwcGluZyBvZiBkdXBsaWNhdGUgcHJlZml4XG4gICAgICAgICAqIGRlZmluaXRpb25zIHdoZW4gd3JpdGluZyBhbiBlbGVtZW50J3MgYXR0cmlidXRlczogdGhlIG1hcCBhbGxvd3MgdGhlXG4gICAgICAgICAqIGFsZ29yaXRobSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcHJlZml4IGluIHRoZSBuYW1lc3BhY2UgcHJlZml4IG1hcFxuICAgICAgICAgKiB0aGF0IG1pZ2h0IGJlIGxvY2FsbHktZGVmaW5lZCAodG8gdGhlIGN1cnJlbnQgRWxlbWVudCkgYW5kIG9uZSB0aGF0IGlzXG4gICAgICAgICAqIG5vdC5cbiAgICAgICAgICogOC4gTGV0IGxvY2FsIGRlZmF1bHQgbmFtZXNwYWNlIGJlIHRoZSByZXN1bHQgb2YgcmVjb3JkaW5nIHRoZSBuYW1lc3BhY2VcbiAgICAgICAgICogaW5mb3JtYXRpb24gZm9yIG5vZGUgZ2l2ZW4gbWFwIGFuZCBsb2NhbCBwcmVmaXhlcyBtYXAuXG4gICAgICAgICAqXG4gICAgICAgICAqIF9Ob3RlOl8gVGhlIGFib3ZlIHN0ZXAgd2lsbCB1cGRhdGUgbWFwIHdpdGggYW55IGZvdW5kIG5hbWVzcGFjZSBwcmVmaXhcbiAgICAgICAgICogZGVmaW5pdGlvbnMsIGFkZCB0aGUgZm91bmQgcHJlZml4IGRlZmluaXRpb25zIHRvIHRoZSBsb2NhbCBwcmVmaXhlcyBtYXBcbiAgICAgICAgICogYW5kIHJldHVybiBhIGxvY2FsIGRlZmF1bHQgbmFtZXNwYWNlIHZhbHVlIGRlZmluZWQgYnkgYSBkZWZhdWx0IG5hbWVzcGFjZVxuICAgICAgICAgKiBhdHRyaWJ1dGUgaWYgb25lIGV4aXN0cy4gT3RoZXJ3aXNlIGl0IHJldHVybnMgbnVsbC5cbiAgICAgICAgICogOS4gTGV0IGluaGVyaXRlZCBucyBiZSBhIGNvcHkgb2YgbmFtZXNwYWNlLlxuICAgICAgICAgKiAxMC4gTGV0IG5zIGJlIHRoZSB2YWx1ZSBvZiBub2RlJ3MgbmFtZXNwYWNlVVJJIGF0dHJpYnV0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBza2lwRW5kVGFnID0gZmFsc2U7XG4gICAgICAgIC8qKiAxMS4gSWYgaW5oZXJpdGVkIG5zIGlzIGVxdWFsIHRvIG5zLCB0aGVuOiAqL1xuICAgICAgICAvKipcbiAgICAgICAgICogMTEuMS4gSWYgbG9jYWwgZGVmYXVsdCBuYW1lc3BhY2UgaXMgbm90IG51bGwsIHRoZW4gc2V0IGlnbm9yZVxuICAgICAgICAgKiBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhdHRyaWJ1dGUgdG8gdHJ1ZS5cbiAgICAgICAgICovXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxMS4yLiBJZiBucyBpcyB0aGUgWE1MIG5hbWVzcGFjZSwgdGhlbiBhcHBlbmQgdG8gcXVhbGlmaWVkIG5hbWUgdGhlXG4gICAgICAgICAqIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyBcInhtbDpcIiBhbmQgdGhlIHZhbHVlIG9mIG5vZGUncyBsb2NhbE5hbWUuXG4gICAgICAgICAqIDExLjMuIE90aGVyd2lzZSwgYXBwZW5kIHRvIHF1YWxpZmllZCBuYW1lIHRoZSB2YWx1ZSBvZiBub2RlJ3NcbiAgICAgICAgICogbG9jYWxOYW1lLiBUaGUgbm9kZSdzIHByZWZpeCBpZiBpdCBleGlzdHMsIGlzIGRyb3BwZWQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBxdWFsaWZpZWROYW1lID0gbm9kZS5sb2NhbE5hbWU7XG4gICAgICAgIC8qKiAxMS40LiBBcHBlbmQgdGhlIHZhbHVlIG9mIHF1YWxpZmllZCBuYW1lIHRvIG1hcmt1cC4gKi9cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX2JlZ2luRWxlbWVudClcbiAgICAgICAgICAgIHRoaXMuX2JlZ2luRWxlbWVudChxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX29wZW5UYWdCZWdpbilcbiAgICAgICAgICAgIHRoaXMuX29wZW5UYWdCZWdpbihxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEzLiBBcHBlbmQgdG8gbWFya3VwIHRoZSByZXN1bHQgb2YgdGhlIFhNTCBzZXJpYWxpemF0aW9uIG9mIG5vZGUnc1xuICAgICAgICAgKiBhdHRyaWJ1dGVzIGdpdmVuIG1hcCwgcHJlZml4IGluZGV4LCBsb2NhbCBwcmVmaXhlcyBtYXAsIGlnbm9yZSBuYW1lc3BhY2VcbiAgICAgICAgICogZGVmaW5pdGlvbiBhdHRyaWJ1dGUgZmxhZywgYW5kIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMTQuIElmIG5zIGlzIHRoZSBIVE1MIG5hbWVzcGFjZSwgYW5kIHRoZSBub2RlJ3MgbGlzdCBvZiBjaGlsZHJlbiBpc1xuICAgICAgICAgKiBlbXB0eSwgYW5kIHRoZSBub2RlJ3MgbG9jYWxOYW1lIG1hdGNoZXMgYW55IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZvaWRcbiAgICAgICAgICogZWxlbWVudHM6IFwiYXJlYVwiLCBcImJhc2VcIiwgXCJiYXNlZm9udFwiLCBcImJnc291bmRcIiwgXCJiclwiLCBcImNvbFwiLCBcImVtYmVkXCIsXG4gICAgICAgICAqIFwiZnJhbWVcIiwgXCJoclwiLCBcImltZ1wiLCBcImlucHV0XCIsIFwia2V5Z2VuXCIsIFwibGlua1wiLCBcIm1lbnVpdGVtXCIsIFwibWV0YVwiLFxuICAgICAgICAgKiBcInBhcmFtXCIsIFwic291cmNlXCIsIFwidHJhY2tcIiwgXCJ3YnJcIjsgdGhlbiBhcHBlbmQgdGhlIGZvbGxvd2luZyB0byBtYXJrdXAsXG4gICAgICAgICAqIGluIHRoZSBvcmRlciBsaXN0ZWQ6XG4gICAgICAgICAqIDE0LjEuIFwiIFwiIChVKzAwMjAgU1BBQ0UpO1xuICAgICAgICAgKiAxNC4yLiBcIi9cIiAoVSswMDJGIFNPTElEVVMpLlxuICAgICAgICAgKiBhbmQgc2V0IHRoZSBza2lwIGVuZCB0YWcgZmxhZyB0byB0cnVlLlxuICAgICAgICAgKiAxNS4gSWYgbnMgaXMgbm90IHRoZSBIVE1MIG5hbWVzcGFjZSwgYW5kIHRoZSBub2RlJ3MgbGlzdCBvZiBjaGlsZHJlbiBpc1xuICAgICAgICAgKiBlbXB0eSwgdGhlbiBhcHBlbmQgXCIvXCIgKFUrMDAyRiBTT0xJRFVTKSB0byBtYXJrdXAgYW5kIHNldCB0aGUgc2tpcCBlbmRcbiAgICAgICAgICogdGFnIGZsYWcgdG8gdHJ1ZS5cbiAgICAgICAgICogMTYuIEFwcGVuZCBcIj5cIiAoVSswMDNFIEdSRUFURVItVEhBTiBTSUdOKSB0byBtYXJrdXAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIW5vZGUuaGFzQ2hpbGROb2RlcygpKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX2VuZEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgdGhpcy5fZW5kRWxlbWVudChxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5fb3BlblRhZ0VuZClcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVuVGFnRW5kKHF1YWxpZmllZE5hbWUsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgIHNraXBFbmRUYWcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9vcGVuVGFnRW5kKVxuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5UYWdFbmQocXVhbGlmaWVkTmFtZSwgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMTcuIElmIHRoZSB2YWx1ZSBvZiBza2lwIGVuZCB0YWcgaXMgdHJ1ZSwgdGhlbiByZXR1cm4gdGhlIHZhbHVlIG9mIG1hcmt1cFxuICAgICAgICAgKiBhbmQgc2tpcCB0aGUgcmVtYWluaW5nIHN0ZXBzLiBUaGUgbm9kZSBpcyBhIGxlYWYtbm9kZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChza2lwRW5kVGFnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvKipcbiAgICAgICAgICogMTguIElmIG5zIGlzIHRoZSBIVE1MIG5hbWVzcGFjZSwgYW5kIHRoZSBub2RlJ3MgbG9jYWxOYW1lIG1hdGNoZXMgdGhlXG4gICAgICAgICAqIHN0cmluZyBcInRlbXBsYXRlXCIsIHRoZW4gdGhpcyBpcyBhIHRlbXBsYXRlIGVsZW1lbnQuIEFwcGVuZCB0byBtYXJrdXAgdGhlXG4gICAgICAgICAqIHJlc3VsdCBvZiBYTUwgc2VyaWFsaXppbmcgYSBEb2N1bWVudEZyYWdtZW50IG5vZGUgZ2l2ZW4gdGhlIHRlbXBsYXRlXG4gICAgICAgICAqIGVsZW1lbnQncyB0ZW1wbGF0ZSBjb250ZW50cyAoYSBEb2N1bWVudEZyYWdtZW50KSwgcHJvdmlkaW5nIGluaGVyaXRlZFxuICAgICAgICAgKiBucywgbWFwLCBwcmVmaXggaW5kZXgsIGFuZCB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnLlxuICAgICAgICAgKlxuICAgICAgICAgKiBfTm90ZTpfIFRoaXMgYWxsb3dzIHRlbXBsYXRlIGNvbnRlbnQgdG8gcm91bmQtdHJpcCwgZ2l2ZW4gdGhlIHJ1bGVzIGZvclxuICAgICAgICAgKiBwYXJzaW5nIFhIVE1MIGRvY3VtZW50cy5cbiAgICAgICAgICpcbiAgICAgICAgICogMTkuIE90aGVyd2lzZSwgYXBwZW5kIHRvIG1hcmt1cCB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIFhNTFxuICAgICAgICAgKiBzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvbiBlYWNoIG9mIG5vZGUncyBjaGlsZHJlbiwgaW4gdHJlZSBvcmRlcixcbiAgICAgICAgICogcHJvdmlkaW5nIGluaGVyaXRlZCBucywgbWFwLCBwcmVmaXggaW5kZXgsIGFuZCB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZFxuICAgICAgICAgKiBmbGFnLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZE5vZGUgb2Ygbm9kZS5fY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMubGV2ZWwrKztcbiAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZU5vZGUoY2hpbGROb2RlLCByZXF1aXJlV2VsbEZvcm1lZCk7XG4gICAgICAgICAgICB0aGlzLmxldmVsLS07XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIwLiBBcHBlbmQgdGhlIGZvbGxvd2luZyB0byBtYXJrdXAsIGluIHRoZSBvcmRlciBsaXN0ZWQ6XG4gICAgICAgICAqIDIwLjEuIFwiPC9cIiAoVSswMDNDIExFU1MtVEhBTiBTSUdOLCBVKzAwMkYgU09MSURVUyk7XG4gICAgICAgICAqIDIwLjIuIFRoZSB2YWx1ZSBvZiBxdWFsaWZpZWQgbmFtZTtcbiAgICAgICAgICogMjAuMy4gXCI+XCIgKFUrMDAzRSBHUkVBVEVSLVRIQU4gU0lHTikuXG4gICAgICAgICAqIDIxLiBSZXR1cm4gdGhlIHZhbHVlIG9mIG1hcmt1cC5cbiAgICAgICAgICovXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICh0aGlzLl9lbmRFbGVtZW50KVxuICAgICAgICAgICAgdGhpcy5fZW5kRWxlbWVudChxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX2Nsb3NlVGFnKVxuICAgICAgICAgICAgdGhpcy5fY2xvc2VUYWcocXVhbGlmaWVkTmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGEgZG9jdW1lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gbmFtZXNwYWNlIC0gY29udGV4dCBuYW1lc3BhY2VcbiAgICAgKiBAcGFyYW0gcHJlZml4TWFwIC0gbmFtZXNwYWNlIHByZWZpeCBtYXBcbiAgICAgKiBAcGFyYW0gcHJlZml4SW5kZXggLSBnZW5lcmF0ZWQgbmFtZXNwYWNlIHByZWZpeCBpbmRleFxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplRG9jdW1lbnROUyhub2RlLCBuYW1lc3BhY2UsIHByZWZpeE1hcCwgcHJlZml4SW5kZXgsIHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgdGhpcyBub2RlXG4gICAgICAgICAqIGhhcyBubyBkb2N1bWVudEVsZW1lbnQgKHRoZSBkb2N1bWVudEVsZW1lbnQgYXR0cmlidXRlJ3MgdmFsdWUgaXMgbnVsbCksXG4gICAgICAgICAqIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uOyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGlzIG5vZGUgd291bGQgbm90IGJlIGFcbiAgICAgICAgICogd2VsbC1mb3JtZWQgZG9jdW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgbm9kZS5kb2N1bWVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgZG9jdW1lbnQgZWxlbWVudCAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogT3RoZXJ3aXNlLCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczpcbiAgICAgICAgICogMS4gTGV0IHNlcmlhbGl6ZWQgZG9jdW1lbnQgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgICAgKiAyLiBGb3IgZWFjaCBjaGlsZCBjaGlsZCBvZiBub2RlLCBpbiB0cmVlIG9yZGVyLCBydW4gdGhlIFhNTFxuICAgICAgICAgKiBzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvbiB0aGUgY2hpbGQgcGFzc2luZyBhbG9uZyB0aGUgcHJvdmlkZWRcbiAgICAgICAgICogYXJndW1lbnRzLCBhbmQgYXBwZW5kIHRoZSByZXN1bHQgdG8gc2VyaWFsaXplZCBkb2N1bWVudC5cbiAgICAgICAgICpcbiAgICAgICAgICogX05vdGU6XyBUaGlzIHdpbGwgc2VyaWFsaXplIGFueSBudW1iZXIgb2YgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZFxuICAgICAgICAgKiBDb21tZW50IG5vZGVzIGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGUgRG9jdW1lbnQncyBkb2N1bWVudEVsZW1lbnQgbm9kZSxcbiAgICAgICAgICogaW5jbHVkaW5nIGF0IG1vc3Qgb25lIERvY3VtZW50VHlwZSBub2RlLiAoVGV4dCBub2RlcyBhcmUgbm90IGFsbG93ZWQgYXNcbiAgICAgICAgICogY2hpbGRyZW4gb2YgdGhlIERvY3VtZW50LilcbiAgICAgICAgICpcbiAgICAgICAgICogMy4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBzZXJpYWxpemVkIGRvY3VtZW50LlxuICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkTm9kZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZU5vZGVOUyhjaGlsZE5vZGUsIG5hbWVzcGFjZSwgcHJlZml4TWFwLCBwcmVmaXhJbmRleCwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGEgZG9jdW1lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZVdlbGxGb3JtZWQgLSB3aGV0aGVyIHRvIGNoZWNrIGNvbmZvcm1hbmNlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZURvY3VtZW50KG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgdGhpcyBub2RlXG4gICAgICAgICAqIGhhcyBubyBkb2N1bWVudEVsZW1lbnQgKHRoZSBkb2N1bWVudEVsZW1lbnQgYXR0cmlidXRlJ3MgdmFsdWUgaXMgbnVsbCksXG4gICAgICAgICAqIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uOyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGlzIG5vZGUgd291bGQgbm90IGJlIGFcbiAgICAgICAgICogd2VsbC1mb3JtZWQgZG9jdW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgbm9kZS5kb2N1bWVudEVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgZG9jdW1lbnQgZWxlbWVudCAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogT3RoZXJ3aXNlLCBydW4gdGhlIGZvbGxvd2luZyBzdGVwczpcbiAgICAgICAgICogMS4gTGV0IHNlcmlhbGl6ZWQgZG9jdW1lbnQgYmUgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgICAgKiAyLiBGb3IgZWFjaCBjaGlsZCBjaGlsZCBvZiBub2RlLCBpbiB0cmVlIG9yZGVyLCBydW4gdGhlIFhNTFxuICAgICAgICAgKiBzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvbiB0aGUgY2hpbGQgcGFzc2luZyBhbG9uZyB0aGUgcHJvdmlkZWRcbiAgICAgICAgICogYXJndW1lbnRzLCBhbmQgYXBwZW5kIHRoZSByZXN1bHQgdG8gc2VyaWFsaXplZCBkb2N1bWVudC5cbiAgICAgICAgICpcbiAgICAgICAgICogX05vdGU6XyBUaGlzIHdpbGwgc2VyaWFsaXplIGFueSBudW1iZXIgb2YgUHJvY2Vzc2luZ0luc3RydWN0aW9uIGFuZFxuICAgICAgICAgKiBDb21tZW50IG5vZGVzIGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGUgRG9jdW1lbnQncyBkb2N1bWVudEVsZW1lbnQgbm9kZSxcbiAgICAgICAgICogaW5jbHVkaW5nIGF0IG1vc3Qgb25lIERvY3VtZW50VHlwZSBub2RlLiAoVGV4dCBub2RlcyBhcmUgbm90IGFsbG93ZWQgYXNcbiAgICAgICAgICogY2hpbGRyZW4gb2YgdGhlIERvY3VtZW50LilcbiAgICAgICAgICpcbiAgICAgICAgICogMy4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBzZXJpYWxpemVkIGRvY3VtZW50LlxuICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplTm9kZShjaGlsZE5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiBhIGNvbW1lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZVdlbGxGb3JtZWQgLSB3aGV0aGVyIHRvIGNoZWNrIGNvbmZvcm1hbmNlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZUNvbW1lbnQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgaXMgc2V0IChpdHMgdmFsdWUgaXMgdHJ1ZSksIGFuZCBub2RlJ3NcbiAgICAgICAgICogZGF0YSBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBtYXRjaGVkIGJ5IHRoZSBYTUwgQ2hhciBwcm9kdWN0aW9uXG4gICAgICAgICAqIG9yIGNvbnRhaW5zIFwiLS1cIiAodHdvIGFkamFjZW50IFUrMDAyRCBIWVBIRU4tTUlOVVMgY2hhcmFjdGVycykgb3IgdGhhdFxuICAgICAgICAgKiBlbmRzIHdpdGggYSBcIi1cIiAoVSswMDJEIEhZUEhFTi1NSU5VUykgY2hhcmFjdGVyLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbjtcbiAgICAgICAgICogdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhpcyBub2RlJ3MgZGF0YSB3b3VsZCBub3QgYmUgd2VsbC1mb3JtZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgKCFhbGdvcml0aG1fMS54bWxfaXNMZWdhbENoYXIobm9kZS5kYXRhKSB8fFxuICAgICAgICAgICAgbm9kZS5kYXRhLmluZGV4T2YoXCItLVwiKSAhPT0gLTEgfHwgbm9kZS5kYXRhLmVuZHNXaXRoKFwiLVwiKSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbW1lbnQgZGF0YSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMgKHdlbGwtZm9ybWVkIHJlcXVpcmVkKS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE90aGVyd2lzZSwgcmV0dXJuIHRoZSBjb25jYXRlbmF0aW9uIG9mIFwiPCEtLVwiLCBub2RlJ3MgZGF0YSwgYW5kIFwiLS0+XCIuXG4gICAgICAgICAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy5fY29tbWVudClcbiAgICAgICAgICAgIHRoaXMuX2NvbW1lbnQobm9kZS5kYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgYSB0ZXh0IG5vZGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gc2VyaWFsaXplXG4gICAgICogQHBhcmFtIHJlcXVpcmVXZWxsRm9ybWVkIC0gd2hldGhlciB0byBjaGVjayBjb25mb3JtYW5jZVxuICAgICAqIEBwYXJhbSBsZXZlbCAtIGN1cnJlbnQgZGVwdGggb2YgdGhlIFhNTCB0cmVlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZVRleHQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgaXMgc2V0IChpdHMgdmFsdWUgaXMgdHJ1ZSksIGFuZFxuICAgICAgICAgKiBub2RlJ3MgZGF0YSBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBtYXRjaGVkIGJ5IHRoZSBYTUwgQ2hhclxuICAgICAgICAgKiBwcm9kdWN0aW9uLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbjsgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhpcyBub2RlJ3NcbiAgICAgICAgICogZGF0YSB3b3VsZCBub3QgYmUgd2VsbC1mb3JtZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgIWFsZ29yaXRobV8xLnhtbF9pc0xlZ2FsQ2hhcihub2RlLmRhdGEpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUZXh0IGRhdGEgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzICh3ZWxsLWZvcm1lZCByZXF1aXJlZCkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBMZXQgbWFya3VwIGJlIHRoZSB2YWx1ZSBvZiBub2RlJ3MgZGF0YS5cbiAgICAgICAgICogMy4gUmVwbGFjZSBhbnkgb2NjdXJyZW5jZXMgb2YgXCImXCIgaW4gbWFya3VwIGJ5IFwiJmFtcDtcIi5cbiAgICAgICAgICogNC4gUmVwbGFjZSBhbnkgb2NjdXJyZW5jZXMgb2YgXCI8XCIgaW4gbWFya3VwIGJ5IFwiJmx0O1wiLlxuICAgICAgICAgKiA1LiBSZXBsYWNlIGFueSBvY2N1cnJlbmNlcyBvZiBcIj5cIiBpbiBtYXJrdXAgYnkgXCImZ3Q7XCIuXG4gICAgICAgICAqIDYuIFJldHVybiB0aGUgdmFsdWUgb2YgbWFya3VwLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IG1hcmt1cCA9IFwiXCI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjID0gbm9kZS5kYXRhW2ldO1xuICAgICAgICAgICAgaWYgKGMgPT09IFwiJlwiKVxuICAgICAgICAgICAgICAgIG1hcmt1cCArPSBcIiZhbXA7XCI7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSBcIjxcIilcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gXCImbHQ7XCI7XG4gICAgICAgICAgICBlbHNlIGlmIChjID09PSBcIj5cIilcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gXCImZ3Q7XCI7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbWFya3VwICs9IGM7XG4gICAgICAgIH1cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX3RleHQpXG4gICAgICAgICAgICB0aGlzLl90ZXh0KG1hcmt1cCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGEgZG9jdW1lbnQgZnJhZ21lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gbmFtZXNwYWNlIC0gY29udGV4dCBuYW1lc3BhY2VcbiAgICAgKiBAcGFyYW0gcHJlZml4TWFwIC0gbmFtZXNwYWNlIHByZWZpeCBtYXBcbiAgICAgKiBAcGFyYW0gcHJlZml4SW5kZXggLSBnZW5lcmF0ZWQgbmFtZXNwYWNlIHByZWZpeCBpbmRleFxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplRG9jdW1lbnRGcmFnbWVudE5TKG5vZGUsIG5hbWVzcGFjZSwgcHJlZml4TWFwLCBwcmVmaXhJbmRleCwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBtYXJrdXAgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICogMi4gRm9yIGVhY2ggY2hpbGQgY2hpbGQgb2Ygbm9kZSwgaW4gdHJlZSBvcmRlciwgcnVuIHRoZSBYTUwgc2VyaWFsaXphdGlvblxuICAgICAgICAgKiBhbGdvcml0aG0gb24gdGhlIGNoaWxkIGdpdmVuIG5hbWVzcGFjZSwgcHJlZml4IG1hcCwgYSByZWZlcmVuY2UgdG8gcHJlZml4XG4gICAgICAgICAqIGluZGV4LCBhbmQgZmxhZyByZXF1aXJlIHdlbGwtZm9ybWVkLiBDb25jYXRlbmF0ZSB0aGUgcmVzdWx0IHRvIG1hcmt1cC5cbiAgICAgICAgICogMy4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBtYXJrdXAuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLmNoaWxkTm9kZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZU5vZGVOUyhjaGlsZE5vZGUsIG5hbWVzcGFjZSwgcHJlZml4TWFwLCBwcmVmaXhJbmRleCwgcmVxdWlyZVdlbGxGb3JtZWQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGEgZG9jdW1lbnQgZnJhZ21lbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZVdlbGxGb3JtZWQgLSB3aGV0aGVyIHRvIGNoZWNrIGNvbmZvcm1hbmNlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZURvY3VtZW50RnJhZ21lbnQobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBtYXJrdXAgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICogMi4gRm9yIGVhY2ggY2hpbGQgY2hpbGQgb2Ygbm9kZSwgaW4gdHJlZSBvcmRlciwgcnVuIHRoZSBYTUwgc2VyaWFsaXphdGlvblxuICAgICAgICAgKiBhbGdvcml0aG0gb24gdGhlIGNoaWxkIGdpdmVuIG5hbWVzcGFjZSwgcHJlZml4IG1hcCwgYSByZWZlcmVuY2UgdG8gcHJlZml4XG4gICAgICAgICAqIGluZGV4LCBhbmQgZmxhZyByZXF1aXJlIHdlbGwtZm9ybWVkLiBDb25jYXRlbmF0ZSB0aGUgcmVzdWx0IHRvIG1hcmt1cC5cbiAgICAgICAgICogMy4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBtYXJrdXAuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkTm9kZSBvZiBub2RlLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5fc2VyaWFsaXplTm9kZShjaGlsZE5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiBhIGRvY3VtZW50IHR5cGUgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gcmVxdWlyZVdlbGxGb3JtZWQgLSB3aGV0aGVyIHRvIGNoZWNrIGNvbmZvcm1hbmNlXG4gICAgICovXG4gICAgX3NlcmlhbGl6ZURvY3VtZW50VHlwZShub2RlLCByZXF1aXJlV2VsbEZvcm1lZCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyB0cnVlIGFuZCB0aGUgbm9kZSdzIHB1YmxpY0lkXG4gICAgICAgICAqIGF0dHJpYnV0ZSBjb250YWlucyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBtYXRjaGVkIGJ5IHRoZSBYTUwgUHViaWRDaGFyXG4gICAgICAgICAqICBwcm9kdWN0aW9uLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbjsgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhpcyBub2RlXG4gICAgICAgICAqIHdvdWxkIG5vdCBiZSBhIHdlbGwtZm9ybWVkIGRvY3VtZW50IHR5cGUgZGVjbGFyYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgIWFsZ29yaXRobV8xLnhtbF9pc1B1YmlkQ2hhcihub2RlLnB1YmxpY0lkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRG9jVHlwZSBwdWJsaWMgaWRlbnRpZmllciBkb2VzIG5vdCBtYXRjaCBQdWJpZENoYXIgY29uc3RydWN0ICh3ZWxsLWZvcm1lZCByZXF1aXJlZCkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHRydWUgYW5kIHRoZSBub2RlJ3Mgc3lzdGVtSWRcbiAgICAgICAgICogYXR0cmlidXRlIGNvbnRhaW5zIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IG1hdGNoZWQgYnkgdGhlIFhNTCBDaGFyXG4gICAgICAgICAqIHByb2R1Y3Rpb24gb3IgdGhhdCBjb250YWlucyBib3RoIGEgXCJcIlwiIChVKzAwMjIgUVVPVEFUSU9OIE1BUkspIGFuZCBhXG4gICAgICAgICAqIFwiJ1wiIChVKzAwMjcgQVBPU1RST1BIRSksIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uOyB0aGUgc2VyaWFsaXphdGlvblxuICAgICAgICAgKiBvZiB0aGlzIG5vZGUgd291bGQgbm90IGJlIGEgd2VsbC1mb3JtZWQgZG9jdW1lbnQgdHlwZSBkZWNsYXJhdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChyZXF1aXJlV2VsbEZvcm1lZCAmJlxuICAgICAgICAgICAgKCFhbGdvcml0aG1fMS54bWxfaXNMZWdhbENoYXIobm9kZS5zeXN0ZW1JZCkgfHxcbiAgICAgICAgICAgICAgICAobm9kZS5zeXN0ZW1JZC5pbmRleE9mKCdcIicpICE9PSAtMSAmJiBub2RlLnN5c3RlbUlkLmluZGV4T2YoXCInXCIpICE9PSAtMSkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEb2NUeXBlIHN5c3RlbSBpZGVudGlmaWVyIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycyAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMy4gTGV0IG1hcmt1cCBiZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAqIDQuIEFwcGVuZCB0aGUgc3RyaW5nIFwiPCFET0NUWVBFXCIgdG8gbWFya3VwLlxuICAgICAgICAgKiA1LiBBcHBlbmQgXCIgXCIgKFUrMDAyMCBTUEFDRSkgdG8gbWFya3VwLlxuICAgICAgICAgKiA2LiBBcHBlbmQgdGhlIHZhbHVlIG9mIHRoZSBub2RlJ3MgbmFtZSBhdHRyaWJ1dGUgdG8gbWFya3VwLiBGb3IgYSBub2RlXG4gICAgICAgICAqIGJlbG9uZ2luZyB0byBhbiBIVE1MIGRvY3VtZW50LCB0aGUgdmFsdWUgd2lsbCBiZSBhbGwgbG93ZXJjYXNlLlxuICAgICAgICAgKiA3LiBJZiB0aGUgbm9kZSdzIHB1YmxpY0lkIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nIHRoZW4gYXBwZW5kIHRoZVxuICAgICAgICAgKiBmb2xsb3dpbmcsIGluIHRoZSBvcmRlciBsaXN0ZWQsIHRvIG1hcmt1cDpcbiAgICAgICAgICogNy4xLiBcIiBcIiAoVSswMDIwIFNQQUNFKTtcbiAgICAgICAgICogNy4yLiBUaGUgc3RyaW5nIFwiUFVCTElDXCI7XG4gICAgICAgICAqIDcuMy4gXCIgXCIgKFUrMDAyMCBTUEFDRSk7XG4gICAgICAgICAqIDcuNC4gXCJcIlwiIChVKzAwMjIgUVVPVEFUSU9OIE1BUkspO1xuICAgICAgICAgKiA3LjUuIFRoZSB2YWx1ZSBvZiB0aGUgbm9kZSdzIHB1YmxpY0lkIGF0dHJpYnV0ZTtcbiAgICAgICAgICogNy42LiBcIlwiXCIgKFUrMDAyMiBRVU9UQVRJT04gTUFSSykuXG4gICAgICAgICAqIDguIElmIHRoZSBub2RlJ3Mgc3lzdGVtSWQgaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcgYW5kIHRoZSBub2RlJ3MgcHVibGljSWRcbiAgICAgICAgICogaXMgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gYXBwZW5kIHRoZSBmb2xsb3dpbmcsIGluIHRoZSBvcmRlclxuICAgICAgICAgKiBsaXN0ZWQsIHRvIG1hcmt1cDpcbiAgICAgICAgICogOC4xLiBcIiBcIiAoVSswMDIwIFNQQUNFKTtcbiAgICAgICAgICogOC4yLiBUaGUgc3RyaW5nIFwiU1lTVEVNXCIuXG4gICAgICAgICAqIDkuIElmIHRoZSBub2RlJ3Mgc3lzdGVtSWQgaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcgdGhlbiBhcHBlbmQgdGhlXG4gICAgICAgICAqIGZvbGxvd2luZywgaW4gdGhlIG9yZGVyIGxpc3RlZCwgdG8gbWFya3VwOlxuICAgICAgICAgKiA5LjIuIFwiIFwiIChVKzAwMjAgU1BBQ0UpO1xuICAgICAgICAgKiA5LjMuIFwiXCJcIiAoVSswMDIyIFFVT1RBVElPTiBNQVJLKTtcbiAgICAgICAgICogOS4zLiBUaGUgdmFsdWUgb2YgdGhlIG5vZGUncyBzeXN0ZW1JZCBhdHRyaWJ1dGU7XG4gICAgICAgICAqIDkuNC4gXCJcIlwiIChVKzAwMjIgUVVPVEFUSU9OIE1BUkspLlxuICAgICAgICAgKiAxMC4gQXBwZW5kIFwiPlwiIChVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04pIHRvIG1hcmt1cC5cbiAgICAgICAgICogMTEuIFJldHVybiB0aGUgdmFsdWUgb2YgbWFya3VwLlxuICAgICAgICAgKi9cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX2RvY1R5cGUpXG4gICAgICAgICAgICB0aGlzLl9kb2NUeXBlKG5vZGUubmFtZSwgbm9kZS5wdWJsaWNJZCwgbm9kZS5zeXN0ZW1JZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFByb2R1Y2VzIGFuIFhNTCBzZXJpYWxpemF0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIHNlcmlhbGl6ZVxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplUHJvY2Vzc2luZ0luc3RydWN0aW9uKG5vZGUsIHJlcXVpcmVXZWxsRm9ybWVkKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgbm9kZSdzXG4gICAgICAgICAqIHRhcmdldCBjb250YWlucyBhIFwiOlwiIChVKzAwM0EgQ09MT04pIGNoYXJhY3RlciBvciBpcyBhbiBBU0NJSVxuICAgICAgICAgKiBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoIGZvciB0aGUgc3RyaW5nIFwieG1sXCIsIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uO1xuICAgICAgICAgKiB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGlzIG5vZGUncyB0YXJnZXQgd291bGQgbm90IGJlIHdlbGwtZm9ybWVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIChub2RlLnRhcmdldC5pbmRleE9mKFwiOlwiKSAhPT0gLTEgfHwgKC9eeG1sJC9pKS50ZXN0KG5vZGUudGFyZ2V0KSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gdGFyZ2V0IGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycyAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyBzZXQgKGl0cyB2YWx1ZSBpcyB0cnVlKSwgYW5kIG5vZGUnc1xuICAgICAgICAgKiBkYXRhIGNvbnRhaW5zIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IG1hdGNoZWQgYnkgdGhlIFhNTCBDaGFyIHByb2R1Y3Rpb25cbiAgICAgICAgICogb3IgY29udGFpbnMgdGhlIHN0cmluZyBcIj8+XCIgKFUrMDAzRiBRVUVTVElPTiBNQVJLLFxuICAgICAgICAgKiBVKzAwM0UgR1JFQVRFUi1USEFOIFNJR04pLCB0aGVuIHRocm93IGFuIGV4Y2VwdGlvbjsgdGhlIHNlcmlhbGl6YXRpb24gb2ZcbiAgICAgICAgICogdGhpcyBub2RlJ3MgZGF0YSB3b3VsZCBub3QgYmUgd2VsbC1mb3JtZWQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgKCFhbGdvcml0aG1fMS54bWxfaXNMZWdhbENoYXIobm9kZS5kYXRhKSB8fFxuICAgICAgICAgICAgbm9kZS5kYXRhLmluZGV4T2YoXCI/PlwiKSAhPT0gLTEpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm9jZXNzaW5nIGluc3RydWN0aW9uIGRhdGEgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzICh3ZWxsLWZvcm1lZCByZXF1aXJlZCkuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBMZXQgbWFya3VwIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcsIGluIHRoZSBvcmRlciBsaXN0ZWQ6XG4gICAgICAgICAqIDMuMS4gXCI8P1wiIChVKzAwM0MgTEVTUy1USEFOIFNJR04sIFUrMDAzRiBRVUVTVElPTiBNQVJLKTtcbiAgICAgICAgICogMy4yLiBUaGUgdmFsdWUgb2Ygbm9kZSdzIHRhcmdldDtcbiAgICAgICAgICogMy4zLiBcIiBcIiAoVSswMDIwIFNQQUNFKTtcbiAgICAgICAgICogMy40LiBUaGUgdmFsdWUgb2Ygbm9kZSdzIGRhdGE7XG4gICAgICAgICAqIDMuNS4gXCI/PlwiIChVKzAwM0YgUVVFU1RJT04gTUFSSywgVSswMDNFIEdSRUFURVItVEhBTiBTSUdOKS5cbiAgICAgICAgICogNC4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBtYXJrdXAuXG4gICAgICAgICAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAodGhpcy5faW5zdHJ1Y3Rpb24pXG4gICAgICAgICAgICB0aGlzLl9pbnN0cnVjdGlvbihub2RlLnRhcmdldCwgbm9kZS5kYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgYSBDREFUQSBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5vZGUgLSBub2RlIHRvIHNlcmlhbGl6ZVxuICAgICAqIEBwYXJhbSByZXF1aXJlV2VsbEZvcm1lZCAtIHdoZXRoZXIgdG8gY2hlY2sgY29uZm9ybWFuY2VcbiAgICAgKi9cbiAgICBfc2VyaWFsaXplQ0RhdGEobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIChub2RlLmRhdGEuaW5kZXhPZihcIl1dPlwiKSAhPT0gLTEpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDREFUQSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMgKHdlbGwtZm9ybWVkIHJlcXVpcmVkKS5cIik7XG4gICAgICAgIH1cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHRoaXMuX2NkYXRhKVxuICAgICAgICAgICAgdGhpcy5fY2RhdGEobm9kZS5kYXRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgKiBQcm9kdWNlcyBhbiBYTUwgc2VyaWFsaXphdGlvbiBvZiB0aGUgYXR0cmlidXRlcyBvZiBhbiBlbGVtZW50IG5vZGUuXG4gICAgKlxuICAgICAqIEBwYXJhbSBub2RlIC0gbm9kZSB0byBzZXJpYWxpemVcbiAgICAgKiBAcGFyYW0gbWFwIC0gbmFtZXNwYWNlIHByZWZpeCBtYXBcbiAgICAgKiBAcGFyYW0gcHJlZml4SW5kZXggLSBnZW5lcmF0ZWQgbmFtZXNwYWNlIHByZWZpeCBpbmRleFxuICAgICAqIEBwYXJhbSBsb2NhbFByZWZpeGVzTWFwIC0gbG9jYWwgcHJlZml4ZXMgbWFwXG4gICAgICogQHBhcmFtIGlnbm9yZU5hbWVzcGFjZURlZmluaXRpb25BdHRyaWJ1dGUgLSB3aGV0aGVyIHRvIGlnbm9yZSBuYW1lc3BhY2VcbiAgICAgKiBhdHRyaWJ1dGVzXG4gICAgICogQHBhcmFtIHJlcXVpcmVXZWxsRm9ybWVkIC0gd2hldGhlciB0byBjaGVjayBjb25mb3JtYW5jZVxuICAgICovXG4gICAgX3NlcmlhbGl6ZUF0dHJpYnV0ZXNOUyhub2RlLCBtYXAsIHByZWZpeEluZGV4LCBsb2NhbFByZWZpeGVzTWFwLCBpZ25vcmVOYW1lc3BhY2VEZWZpbml0aW9uQXR0cmlidXRlLCByZXF1aXJlV2VsbEZvcm1lZCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IHJlc3VsdCBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgKiAyLiBMZXQgbG9jYWxuYW1lIHNldCBiZSBhIG5ldyBlbXB0eSBuYW1lc3BhY2UgbG9jYWxuYW1lIHNldC4gVGhpc1xuICAgICAgICAgKiBsb2NhbG5hbWUgc2V0IHdpbGwgY29udGFpbiB0dXBsZXMgb2YgdW5pcXVlIGF0dHJpYnV0ZSBuYW1lc3BhY2VVUkkgYW5kXG4gICAgICAgICAqIGxvY2FsTmFtZSBwYWlycywgYW5kIGlzIHBvcHVsYXRlZCBhcyBlYWNoIGF0dHIgaXMgcHJvY2Vzc2VkLiBUaGlzIHNldCBpc1xuICAgICAgICAgKiB1c2VkIHRvIFtvcHRpb25hbGx5XSBlbmZvcmNlIHRoZSB3ZWxsLWZvcm1lZCBjb25zdHJhaW50IHRoYXQgYW4gZWxlbWVudFxuICAgICAgICAgKiBjYW5ub3QgaGF2ZSB0d28gYXR0cmlidXRlcyB3aXRoIHRoZSBzYW1lIG5hbWVzcGFjZVVSSSBhbmQgbG9jYWxOYW1lLlxuICAgICAgICAgKiBUaGlzIGNhbiBvY2N1ciB3aGVuIHR3byBvdGhlcndpc2UgaWRlbnRpY2FsIGF0dHJpYnV0ZXMgb24gdGhlIHNhbWVcbiAgICAgICAgICogZWxlbWVudCBkaWZmZXIgb25seSBieSB0aGVpciBwcmVmaXggdmFsdWVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgbG9jYWxOYW1lU2V0ID0gcmVxdWlyZVdlbGxGb3JtZWQgPyBuZXcgTG9jYWxOYW1lU2V0XzEuTG9jYWxOYW1lU2V0KCkgOiB1bmRlZmluZWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBMb29wOiBGb3IgZWFjaCBhdHRyaWJ1dGUgYXR0ciBpbiBlbGVtZW50J3MgYXR0cmlidXRlcywgaW4gdGhlIG9yZGVyXG4gICAgICAgICAqIHRoZXkgYXJlIHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZSBsaXN0OlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIG5vZGUuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgLy8gT3B0aW1pemUgY29tbW9uIGNhc2VcbiAgICAgICAgICAgIGlmICghcmVxdWlyZVdlbGxGb3JtZWQgJiYgYXR0ci5uYW1lc3BhY2VVUkkgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZShhdHRyLmxvY2FsTmFtZSwgdGhpcy5fc2VyaWFsaXplQXR0cmlidXRlVmFsdWUoYXR0ci52YWx1ZSwgcmVxdWlyZVdlbGxGb3JtZWQpKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy4xLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgdGhlXG4gICAgICAgICAgICAgKiBsb2NhbG5hbWUgc2V0IGNvbnRhaW5zIGEgdHVwbGUgd2hvc2UgdmFsdWVzIG1hdGNoIHRob3NlIG9mIGEgbmV3IHR1cGxlXG4gICAgICAgICAgICAgKiBjb25zaXN0aW5nIG9mIGF0dHIncyBuYW1lc3BhY2VVUkkgYXR0cmlidXRlIGFuZCBsb2NhbE5hbWUgYXR0cmlidXRlLFxuICAgICAgICAgICAgICogdGhlbiB0aHJvdyBhbiBleGNlcHRpb247IHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoaXMgYXR0ciB3b3VsZCBmYWlsIHRvXG4gICAgICAgICAgICAgKiBwcm9kdWNlIGEgd2VsbC1mb3JtZWQgZWxlbWVudCBzZXJpYWxpemF0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgbG9jYWxOYW1lU2V0ICYmIGxvY2FsTmFtZVNldC5oYXMoYXR0ci5uYW1lc3BhY2VVUkksIGF0dHIubG9jYWxOYW1lKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVsZW1lbnQgY29udGFpbnMgZHVwbGljYXRlIGF0dHJpYnV0ZXMgKHdlbGwtZm9ybWVkIHJlcXVpcmVkKS5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDMuMi4gQ3JlYXRlIGEgbmV3IHR1cGxlIGNvbnNpc3Rpbmcgb2YgYXR0cidzIG5hbWVzcGFjZVVSSSBhdHRyaWJ1dGUgYW5kXG4gICAgICAgICAgICAgKiBsb2NhbE5hbWUgYXR0cmlidXRlLCBhbmQgYWRkIGl0IHRvIHRoZSBsb2NhbG5hbWUgc2V0LlxuICAgICAgICAgICAgICogMy4zLiBMZXQgYXR0cmlidXRlIG5hbWVzcGFjZSBiZSB0aGUgdmFsdWUgb2YgYXR0cidzIG5hbWVzcGFjZVVSSSB2YWx1ZS5cbiAgICAgICAgICAgICAqIDMuNC4gTGV0IGNhbmRpZGF0ZSBwcmVmaXggYmUgbnVsbC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIGxvY2FsTmFtZVNldClcbiAgICAgICAgICAgICAgICBsb2NhbE5hbWVTZXQuc2V0KGF0dHIubmFtZXNwYWNlVVJJLCBhdHRyLmxvY2FsTmFtZSk7XG4gICAgICAgICAgICBsZXQgYXR0cmlidXRlTmFtZXNwYWNlID0gYXR0ci5uYW1lc3BhY2VVUkk7XG4gICAgICAgICAgICBsZXQgY2FuZGlkYXRlUHJlZml4ID0gbnVsbDtcbiAgICAgICAgICAgIC8qKiAzLjUuIElmIGF0dHJpYnV0ZSBuYW1lc3BhY2UgaXMgbm90IG51bGwsIHRoZW4gcnVuIHRoZXNlIHN1Yi1zdGVwczogKi9cbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lc3BhY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAzLjUuMS4gTGV0IGNhbmRpZGF0ZSBwcmVmaXggYmUgdGhlIHJlc3VsdCBvZiByZXRyaWV2aW5nIGEgcHJlZmVycmVkXG4gICAgICAgICAgICAgICAgICogcHJlZml4IHN0cmluZyBmcm9tIG1hcCBnaXZlbiBuYW1lc3BhY2UgYXR0cmlidXRlIG5hbWVzcGFjZSB3aXRoXG4gICAgICAgICAgICAgICAgICogcHJlZmVycmVkIHByZWZpeCBiZWluZyBhdHRyJ3MgcHJlZml4IHZhbHVlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVByZWZpeCA9IG1hcC5nZXQoYXR0ci5wcmVmaXgsIGF0dHJpYnV0ZU5hbWVzcGFjZSk7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMy41LjIuIElmIHRoZSB2YWx1ZSBvZiBhdHRyaWJ1dGUgbmFtZXNwYWNlIGlzIHRoZSBYTUxOUyBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgICAgICogdGhlbiBydW4gdGhlc2Ugc3RlcHM6XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MTlMpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4yLjEuIElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlLCB0aGVuIHN0b3AgcnVubmluZyB0aGVzZVxuICAgICAgICAgICAgICAgICAgICAgKiBzdGVwcyBhbmQgZ290byBMb29wIHRvIHZpc2l0IHRoZSBuZXh0IGF0dHJpYnV0ZTpcbiAgICAgICAgICAgICAgICAgICAgICogLSB0aGUgYXR0cidzIHZhbHVlIGlzIHRoZSBYTUwgbmFtZXNwYWNlO1xuICAgICAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIFRoZSBYTUwgbmFtZXNwYWNlIGNhbm5vdCBiZSByZWRlY2xhcmVkIGFuZCBzdXJ2aXZlXG4gICAgICAgICAgICAgICAgICAgICAqIHJvdW5kLXRyaXBwaW5nICh1bmxlc3MgaXQgZGVmaW5lcyB0aGUgcHJlZml4IFwieG1sXCIpLiBUbyBhdm9pZCB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAqIHByb2JsZW0sIHRoaXMgYWxnb3JpdGhtIGFsd2F5cyBwcmVmaXhlcyBlbGVtZW50cyBpbiB0aGUgWE1MXG4gICAgICAgICAgICAgICAgICAgICAqIG5hbWVzcGFjZSB3aXRoIFwieG1sXCIgYW5kIGRyb3BzIGFueSByZWxhdGVkIGRlZmluaXRpb25zIGFzIHNlZW5cbiAgICAgICAgICAgICAgICAgICAgICogaW4gdGhlIGFib3ZlIGNvbmRpdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICogLSB0aGUgYXR0cidzIHByZWZpeCBpcyBudWxsIGFuZCB0aGUgaWdub3JlIG5hbWVzcGFjZSBkZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAqIGF0dHJpYnV0ZSBmbGFnIGlzIHRydWUgKHRoZSBFbGVtZW50J3MgZGVmYXVsdCBuYW1lc3BhY2UgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgICAgICAqIHNob3VsZCBiZSBza2lwcGVkKTtcbiAgICAgICAgICAgICAgICAgICAgICogLSB0aGUgYXR0cidzIHByZWZpeCBpcyBub3QgbnVsbCBhbmQgZWl0aGVyXG4gICAgICAgICAgICAgICAgICAgICAqICAgKiB0aGUgYXR0cidzIGxvY2FsTmFtZSBpcyBub3QgYSBrZXkgY29udGFpbmVkIGluIHRoZSBsb2NhbFxuICAgICAgICAgICAgICAgICAgICAgKiAgICAgcHJlZml4ZXMgbWFwLCBvclxuICAgICAgICAgICAgICAgICAgICAgKiAgICogdGhlIGF0dHIncyBsb2NhbE5hbWUgaXMgcHJlc2VudCBpbiB0aGUgbG9jYWwgcHJlZml4ZXMgbWFwIGJ1dFxuICAgICAgICAgICAgICAgICAgICAgKiAgICAgdGhlIHZhbHVlIG9mIHRoZSBrZXkgZG9lcyBub3QgbWF0Y2ggYXR0cidzIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAqIGFuZCBmdXJ0aGVybW9yZSB0aGF0IHRoZSBhdHRyJ3MgbG9jYWxOYW1lIChhcyB0aGUgcHJlZml4IHRvIGZpbmQpXG4gICAgICAgICAgICAgICAgICAgICAqIGlzIGZvdW5kIGluIHRoZSBuYW1lc3BhY2UgcHJlZml4IG1hcCBnaXZlbiB0aGUgbmFtZXNwYWNlIGNvbnNpc3RpbmdcbiAgICAgICAgICAgICAgICAgICAgICogb2YgdGhlIGF0dHIncyB2YWx1ZSAodGhlIGN1cnJlbnQgbmFtZXNwYWNlIHByZWZpeCBkZWZpbml0aW9uIHdhc1xuICAgICAgICAgICAgICAgICAgICAgKiBleGFjdGx5IGRlZmluZWQgcHJldmlvdXNseS0tb24gYW4gYW5jZXN0b3IgZWxlbWVudCBub3QgdGhlIGN1cnJlbnRcbiAgICAgICAgICAgICAgICAgICAgICogZWxlbWVudCB3aG9zZSBhdHRyaWJ1dGVzIGFyZSBiZWluZyBwcm9jZXNzZWQpLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHIudmFsdWUgPT09IGluZnJhXzEubmFtZXNwYWNlLlhNTCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHIucHJlZml4ID09PSBudWxsICYmIGlnbm9yZU5hbWVzcGFjZURlZmluaXRpb25BdHRyaWJ1dGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAoYXR0ci5wcmVmaXggIT09IG51bGwgJiYgKCEoYXR0ci5sb2NhbE5hbWUgaW4gbG9jYWxQcmVmaXhlc01hcCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFByZWZpeGVzTWFwW2F0dHIubG9jYWxOYW1lXSAhPT0gYXR0ci52YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuaGFzKGF0dHIubG9jYWxOYW1lLCBhdHRyLnZhbHVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4yLjIuIElmIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgaXMgc2V0IChpdHMgdmFsdWUgaXMgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgICAqIGFuZCB0aGUgdmFsdWUgb2YgYXR0cidzIHZhbHVlIGF0dHJpYnV0ZSBtYXRjaGVzIHRoZSBYTUxOU1xuICAgICAgICAgICAgICAgICAgICAgKiBuYW1lc3BhY2UsIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uOyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAqIGF0dHJpYnV0ZSB3b3VsZCBwcm9kdWNlIGludmFsaWQgWE1MIGJlY2F1c2UgdGhlIFhNTE5TIG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgKiBpcyByZXNlcnZlZCBhbmQgY2Fubm90IGJlIGFwcGxpZWQgYXMgYW4gZWxlbWVudCdzIG5hbWVzcGFjZSB2aWFcbiAgICAgICAgICAgICAgICAgICAgICogWE1MIHBhcnNpbmcuXG4gICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gRE9NIEFQSXMgZG8gYWxsb3cgY3JlYXRpb24gb2YgZWxlbWVudHMgaW4gdGhlIFhNTE5TXG4gICAgICAgICAgICAgICAgICAgICAqIG5hbWVzcGFjZSBidXQgd2l0aCBzdHJpY3QgcXVhbGlmaWNhdGlvbnMuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgYXR0ci52YWx1ZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MTlMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlhNTE5TIG5hbWVzcGFjZSBpcyByZXNlcnZlZCAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy41LjIuMy4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyBzZXQgKGl0cyB2YWx1ZSBpcyB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgICogYW5kIHRoZSB2YWx1ZSBvZiBhdHRyJ3MgdmFsdWUgYXR0cmlidXRlIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICogdGhyb3cgYW4gZXhjZXB0aW9uOyBuYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9ucyBjYW5ub3QgYmUgdXNlZFxuICAgICAgICAgICAgICAgICAgICAgKiB0byB1bmRlY2xhcmUgYSBuYW1lc3BhY2UgKHVzZSBhIGRlZmF1bHQgbmFtZXNwYWNlIGRlY2xhcmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAqIGluc3RlYWQpLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIGF0dHIudmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9ucyBjYW5ub3QgYmUgdXNlZCB0byB1bmRlY2xhcmUgYSBuYW1lc3BhY2UgKHdlbGwtZm9ybWVkIHJlcXVpcmVkKS5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4yLjQuIHRoZSBhdHRyJ3MgcHJlZml4IG1hdGNoZXMgdGhlIHN0cmluZyBcInhtbG5zXCIsIHRoZW4gbGV0XG4gICAgICAgICAgICAgICAgICAgICAqIGNhbmRpZGF0ZSBwcmVmaXggYmUgdGhlIHN0cmluZyBcInhtbG5zXCIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5wcmVmaXggPT09ICd4bWxucycpXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVQcmVmaXggPSAneG1sbnMnO1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy41LjMuIE90aGVyd2lzZSwgdGhlIGF0dHJpYnV0ZSBuYW1lc3BhY2UgaXMgbm90IHRoZSBYTUxOUyBuYW1lc3BhY2UuXG4gICAgICAgICAgICAgICAgICAgICAqIFJ1biB0aGVzZSBzdGVwczpcbiAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAgICAgICAgICogX05vdGU6XyBUaGUgKGNhbmRpZGF0ZVByZWZpeCA9PT0gbnVsbCkgY2hlY2sgaXMgbm90IGluIHRoZSBzcGVjLlxuICAgICAgICAgICAgICAgICAgICAgKiBXZSBkZXZpYXRlIGZyb20gdGhlIHNwZWMgaGVyZS4gT3RoZXJ3aXNlIGEgcHJlZml4IGlzIGdlbmVyYXRlZCBmb3JcbiAgICAgICAgICAgICAgICAgICAgICogYWxsIGF0dHJpYnV0ZXMgd2l0aCBuYW1lc3BhY2VzLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2FuZGlkYXRlUHJlZml4ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdHRyLnByZWZpeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKCFtYXAuaGFzUHJlZml4KGF0dHIucHJlZml4KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5oYXMoYXR0ci5wcmVmaXgsIGF0dHJpYnV0ZU5hbWVzcGFjZSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIENoZWNrIGlmIHdlIGNhbiB1c2UgdGhlIGF0dHJpYnV0ZSdzIG93biBwcmVmaXguXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBkZXZpYXRlIGZyb20gdGhlIHNwZWMgaGVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFRPRE86IFRoaXMgaXMgbm90IGFuIGVmZmljaWVudCB3YXkgb2Ygc2VhcmNoaW5nIGZvciBwcmVmaXhlcy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIEZvbGxvdyBkZXZlbG9wbWVudHMgdG8gdGhlIHNwZWMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVByZWZpeCA9IGF0dHIucHJlZml4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAzLjUuMy4xLiBMZXQgY2FuZGlkYXRlIHByZWZpeCBiZSB0aGUgcmVzdWx0IG9mIGdlbmVyYXRpbmcgYSBwcmVmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHByb3ZpZGluZyBtYXAsIGF0dHJpYnV0ZSBuYW1lc3BhY2UsIGFuZCBwcmVmaXggaW5kZXggYXMgaW5wdXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZVByZWZpeCA9IHRoaXMuX2dlbmVyYXRlUHJlZml4KGF0dHJpYnV0ZU5hbWVzcGFjZSwgbWFwLCBwcmVmaXhJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4zLjIuIEFwcGVuZCB0aGUgZm9sbG93aW5nIHRvIHJlc3VsdCwgaW4gdGhlIG9yZGVyIGxpc3RlZDpcbiAgICAgICAgICAgICAgICAgICAgICogMy41LjMuMi4xLiBcIiBcIiAoVSswMDIwIFNQQUNFKTtcbiAgICAgICAgICAgICAgICAgICAgICogMy41LjMuMi4yLiBUaGUgc3RyaW5nIFwieG1sbnM6XCI7XG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4zLjIuMy4gVGhlIHZhbHVlIG9mIGNhbmRpZGF0ZSBwcmVmaXg7XG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4zLjIuNC4gXCI9XCJcIiAoVSswMDNEIEVRVUFMUyBTSUdOLCBVKzAwMjIgUVVPVEFUSU9OIE1BUkspO1xuICAgICAgICAgICAgICAgICAgICAgKiAzLjUuMy4yLjUuIFRoZSByZXN1bHQgb2Ygc2VyaWFsaXppbmcgYW4gYXR0cmlidXRlIHZhbHVlIGdpdmVuXG4gICAgICAgICAgICAgICAgICAgICAqIGF0dHJpYnV0ZSBuYW1lc3BhY2UgYW5kIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgYXMgaW5wdXQ7XG4gICAgICAgICAgICAgICAgICAgICAqIDMuNS4zLjIuNi4gXCJcIlwiIChVKzAwMjIgUVVPVEFUSU9OIE1BUkspLlxuICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fYXR0cmlidXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlKCd4bWxuczonICsgY2FuZGlkYXRlUHJlZml4LCB0aGlzLl9zZXJpYWxpemVBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGVOYW1lc3BhY2UsIHJlcXVpcmVXZWxsRm9ybWVkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjYuIEFwcGVuZCBhIFwiIFwiIChVKzAwMjAgU1BBQ0UpIHRvIHJlc3VsdC5cbiAgICAgICAgICAgICAqIDMuNy4gSWYgY2FuZGlkYXRlIHByZWZpeCBpcyBub3QgbnVsbCwgdGhlbiBhcHBlbmQgdG8gcmVzdWx0IHRoZVxuICAgICAgICAgICAgICogY29uY2F0ZW5hdGlvbiBvZiBjYW5kaWRhdGUgcHJlZml4IHdpdGggXCI6XCIgKFUrMDAzQSBDT0xPTikuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBhdHRyTmFtZSA9ICcnO1xuICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZVByZWZpeCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGF0dHJOYW1lID0gY2FuZGlkYXRlUHJlZml4ICsgJzonO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjguIElmIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgaXMgc2V0IChpdHMgdmFsdWUgaXMgdHJ1ZSksIGFuZFxuICAgICAgICAgICAgICogdGhpcyBhdHRyJ3MgbG9jYWxOYW1lIGF0dHJpYnV0ZSBjb250YWlucyB0aGUgY2hhcmFjdGVyXG4gICAgICAgICAgICAgKiBcIjpcIiAoVSswMDNBIENPTE9OKSBvciBkb2VzIG5vdCBtYXRjaCB0aGUgWE1MIE5hbWUgcHJvZHVjdGlvbiBvclxuICAgICAgICAgICAgICogZXF1YWxzIFwieG1sbnNcIiBhbmQgYXR0cmlidXRlIG5hbWVzcGFjZSBpcyBudWxsLCB0aGVuIHRocm93IGFuXG4gICAgICAgICAgICAgKiBleGNlcHRpb247IHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoaXMgYXR0ciB3b3VsZCBub3QgYmUgYVxuICAgICAgICAgICAgICogd2VsbC1mb3JtZWQgYXR0cmlidXRlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgKGF0dHIubG9jYWxOYW1lLmluZGV4T2YoXCI6XCIpICE9PSAtMSB8fFxuICAgICAgICAgICAgICAgICFhbGdvcml0aG1fMS54bWxfaXNOYW1lKGF0dHIubG9jYWxOYW1lKSB8fFxuICAgICAgICAgICAgICAgIChhdHRyLmxvY2FsTmFtZSA9PT0gXCJ4bWxuc1wiICYmIGF0dHJpYnV0ZU5hbWVzcGFjZSA9PT0gbnVsbCkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXR0cmlidXRlIGxvY2FsIG5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzICh3ZWxsLWZvcm1lZCByZXF1aXJlZCkuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjkuIEFwcGVuZCB0aGUgZm9sbG93aW5nIHN0cmluZ3MgdG8gcmVzdWx0LCBpbiB0aGUgb3JkZXIgbGlzdGVkOlxuICAgICAgICAgICAgICogMy45LjEuIFRoZSB2YWx1ZSBvZiBhdHRyJ3MgbG9jYWxOYW1lO1xuICAgICAgICAgICAgICogMy45LjIuIFwiPVwiXCIgKFUrMDAzRCBFUVVBTFMgU0lHTiwgVSswMDIyIFFVT1RBVElPTiBNQVJLKTtcbiAgICAgICAgICAgICAqIDMuOS4zLiBUaGUgcmVzdWx0IG9mIHNlcmlhbGl6aW5nIGFuIGF0dHJpYnV0ZSB2YWx1ZSBnaXZlbiBhdHRyJ3MgdmFsdWVcbiAgICAgICAgICAgICAqIGF0dHJpYnV0ZSBhbmQgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBhcyBpbnB1dDtcbiAgICAgICAgICAgICAqIDMuOS40LiBcIlwiXCIgKFUrMDAyMiBRVU9UQVRJT04gTUFSSykuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGF0dHJOYW1lICs9IGF0dHIubG9jYWxOYW1lO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLl9hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlKGF0dHJOYW1lLCB0aGlzLl9zZXJpYWxpemVBdHRyaWJ1dGVWYWx1ZShhdHRyLnZhbHVlLCByZXF1aXJlV2VsbEZvcm1lZCkpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBSZXR1cm4gdGhlIHZhbHVlIG9mIHJlc3VsdC5cbiAgICAgICAgICovXG4gICAgfVxuICAgIC8qKlxuICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgdGhlIGF0dHJpYnV0ZXMgb2YgYW4gZWxlbWVudCBub2RlLlxuICAgICpcbiAgICAgKiBAcGFyYW0gbm9kZSAtIG5vZGUgdG8gc2VyaWFsaXplXG4gICAgICogQHBhcmFtIHJlcXVpcmVXZWxsRm9ybWVkIC0gd2hldGhlciB0byBjaGVjayBjb25mb3JtYW5jZVxuICAgICovXG4gICAgX3NlcmlhbGl6ZUF0dHJpYnV0ZXMobm9kZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCByZXN1bHQgYmUgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICogMi4gTGV0IGxvY2FsbmFtZSBzZXQgYmUgYSBuZXcgZW1wdHkgbmFtZXNwYWNlIGxvY2FsbmFtZSBzZXQuIFRoaXNcbiAgICAgICAgICogbG9jYWxuYW1lIHNldCB3aWxsIGNvbnRhaW4gdHVwbGVzIG9mIHVuaXF1ZSBhdHRyaWJ1dGUgbmFtZXNwYWNlVVJJIGFuZFxuICAgICAgICAgKiBsb2NhbE5hbWUgcGFpcnMsIGFuZCBpcyBwb3B1bGF0ZWQgYXMgZWFjaCBhdHRyIGlzIHByb2Nlc3NlZC4gVGhpcyBzZXQgaXNcbiAgICAgICAgICogdXNlZCB0byBbb3B0aW9uYWxseV0gZW5mb3JjZSB0aGUgd2VsbC1mb3JtZWQgY29uc3RyYWludCB0aGF0IGFuIGVsZW1lbnRcbiAgICAgICAgICogY2Fubm90IGhhdmUgdHdvIGF0dHJpYnV0ZXMgd2l0aCB0aGUgc2FtZSBuYW1lc3BhY2VVUkkgYW5kIGxvY2FsTmFtZS5cbiAgICAgICAgICogVGhpcyBjYW4gb2NjdXIgd2hlbiB0d28gb3RoZXJ3aXNlIGlkZW50aWNhbCBhdHRyaWJ1dGVzIG9uIHRoZSBzYW1lXG4gICAgICAgICAqIGVsZW1lbnQgZGlmZmVyIG9ubHkgYnkgdGhlaXIgcHJlZml4IHZhbHVlcy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGxvY2FsTmFtZVNldCA9IHJlcXVpcmVXZWxsRm9ybWVkID8ge30gOiB1bmRlZmluZWQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBMb29wOiBGb3IgZWFjaCBhdHRyaWJ1dGUgYXR0ciBpbiBlbGVtZW50J3MgYXR0cmlidXRlcywgaW4gdGhlIG9yZGVyXG4gICAgICAgICAqIHRoZXkgYXJlIHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZSBsaXN0OlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIG5vZGUuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgLy8gT3B0aW1pemUgY29tbW9uIGNhc2VcbiAgICAgICAgICAgIGlmICghcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hdHRyaWJ1dGUpXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2F0dHJpYnV0ZShhdHRyLmxvY2FsTmFtZSwgdGhpcy5fc2VyaWFsaXplQXR0cmlidXRlVmFsdWUoYXR0ci52YWx1ZSwgcmVxdWlyZVdlbGxGb3JtZWQpKTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy4xLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmQgdGhlXG4gICAgICAgICAgICAgKiBsb2NhbG5hbWUgc2V0IGNvbnRhaW5zIGEgdHVwbGUgd2hvc2UgdmFsdWVzIG1hdGNoIHRob3NlIG9mIGEgbmV3IHR1cGxlXG4gICAgICAgICAgICAgKiBjb25zaXN0aW5nIG9mIGF0dHIncyBuYW1lc3BhY2VVUkkgYXR0cmlidXRlIGFuZCBsb2NhbE5hbWUgYXR0cmlidXRlLFxuICAgICAgICAgICAgICogdGhlbiB0aHJvdyBhbiBleGNlcHRpb247IHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoaXMgYXR0ciB3b3VsZCBmYWlsIHRvXG4gICAgICAgICAgICAgKiBwcm9kdWNlIGEgd2VsbC1mb3JtZWQgZWxlbWVudCBzZXJpYWxpemF0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgbG9jYWxOYW1lU2V0ICYmIChhdHRyLmxvY2FsTmFtZSBpbiBsb2NhbE5hbWVTZXQpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRWxlbWVudCBjb250YWlucyBkdXBsaWNhdGUgYXR0cmlidXRlcyAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy4yLiBDcmVhdGUgYSBuZXcgdHVwbGUgY29uc2lzdGluZyBvZiBhdHRyJ3MgbmFtZXNwYWNlVVJJIGF0dHJpYnV0ZSBhbmRcbiAgICAgICAgICAgICAqIGxvY2FsTmFtZSBhdHRyaWJ1dGUsIGFuZCBhZGQgaXQgdG8gdGhlIGxvY2FsbmFtZSBzZXQuXG4gICAgICAgICAgICAgKiAzLjMuIExldCBhdHRyaWJ1dGUgbmFtZXNwYWNlIGJlIHRoZSB2YWx1ZSBvZiBhdHRyJ3MgbmFtZXNwYWNlVVJJIHZhbHVlLlxuICAgICAgICAgICAgICogMy40LiBMZXQgY2FuZGlkYXRlIHByZWZpeCBiZSBudWxsLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHJlcXVpcmVXZWxsRm9ybWVkICYmIGxvY2FsTmFtZVNldClcbiAgICAgICAgICAgICAgICBsb2NhbE5hbWVTZXRbYXR0ci5sb2NhbE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgICAgIC8qKiAzLjUuIElmIGF0dHJpYnV0ZSBuYW1lc3BhY2UgaXMgbm90IG51bGwsIHRoZW4gcnVuIHRoZXNlIHN1Yi1zdGVwczogKi9cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy42LiBBcHBlbmQgYSBcIiBcIiAoVSswMDIwIFNQQUNFKSB0byByZXN1bHQuXG4gICAgICAgICAgICAgKiAzLjcuIElmIGNhbmRpZGF0ZSBwcmVmaXggaXMgbm90IG51bGwsIHRoZW4gYXBwZW5kIHRvIHJlc3VsdCB0aGVcbiAgICAgICAgICAgICAqIGNvbmNhdGVuYXRpb24gb2YgY2FuZGlkYXRlIHByZWZpeCB3aXRoIFwiOlwiIChVKzAwM0EgQ09MT04pLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDMuOC4gSWYgdGhlIHJlcXVpcmUgd2VsbC1mb3JtZWQgZmxhZyBpcyBzZXQgKGl0cyB2YWx1ZSBpcyB0cnVlKSwgYW5kXG4gICAgICAgICAgICAgKiB0aGlzIGF0dHIncyBsb2NhbE5hbWUgYXR0cmlidXRlIGNvbnRhaW5zIHRoZSBjaGFyYWN0ZXJcbiAgICAgICAgICAgICAqIFwiOlwiIChVKzAwM0EgQ09MT04pIG9yIGRvZXMgbm90IG1hdGNoIHRoZSBYTUwgTmFtZSBwcm9kdWN0aW9uIG9yXG4gICAgICAgICAgICAgKiBlcXVhbHMgXCJ4bWxuc1wiIGFuZCBhdHRyaWJ1dGUgbmFtZXNwYWNlIGlzIG51bGwsIHRoZW4gdGhyb3cgYW5cbiAgICAgICAgICAgICAqIGV4Y2VwdGlvbjsgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhpcyBhdHRyIHdvdWxkIG5vdCBiZSBhXG4gICAgICAgICAgICAgKiB3ZWxsLWZvcm1lZCBhdHRyaWJ1dGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChyZXF1aXJlV2VsbEZvcm1lZCAmJiAoYXR0ci5sb2NhbE5hbWUuaW5kZXhPZihcIjpcIikgIT09IC0xIHx8XG4gICAgICAgICAgICAgICAgIWFsZ29yaXRobV8xLnhtbF9pc05hbWUoYXR0ci5sb2NhbE5hbWUpKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dHJpYnV0ZSBsb2NhbCBuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycyAod2VsbC1mb3JtZWQgcmVxdWlyZWQpLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy45LiBBcHBlbmQgdGhlIGZvbGxvd2luZyBzdHJpbmdzIHRvIHJlc3VsdCwgaW4gdGhlIG9yZGVyIGxpc3RlZDpcbiAgICAgICAgICAgICAqIDMuOS4xLiBUaGUgdmFsdWUgb2YgYXR0cidzIGxvY2FsTmFtZTtcbiAgICAgICAgICAgICAqIDMuOS4yLiBcIj1cIlwiIChVKzAwM0QgRVFVQUxTIFNJR04sIFUrMDAyMiBRVU9UQVRJT04gTUFSSyk7XG4gICAgICAgICAgICAgKiAzLjkuMy4gVGhlIHJlc3VsdCBvZiBzZXJpYWxpemluZyBhbiBhdHRyaWJ1dGUgdmFsdWUgZ2l2ZW4gYXR0cidzIHZhbHVlXG4gICAgICAgICAgICAgKiBhdHRyaWJ1dGUgYW5kIHRoZSByZXF1aXJlIHdlbGwtZm9ybWVkIGZsYWcgYXMgaW5wdXQ7XG4gICAgICAgICAgICAgKiAzLjkuNC4gXCJcIlwiIChVKzAwMjIgUVVPVEFUSU9OIE1BUkspLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuX2F0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgICB0aGlzLl9hdHRyaWJ1dGUoYXR0ci5sb2NhbE5hbWUsIHRoaXMuX3NlcmlhbGl6ZUF0dHJpYnV0ZVZhbHVlKGF0dHIudmFsdWUsIHJlcXVpcmVXZWxsRm9ybWVkKSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIFJldHVybiB0aGUgdmFsdWUgb2YgcmVzdWx0LlxuICAgICAgICAgKi9cbiAgICB9XG4gICAgLyoqXG4gICAgKiBSZWNvcmRzIG5hbWVzcGFjZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIGVsZW1lbnQgYW5kIHJldHVybnMgdGhlXG4gICAgKiBkZWZhdWx0IG5hbWVzcGFjZSBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgKlxuICAgICogQHBhcmFtIG5vZGUgLSBlbGVtZW50IG5vZGUgdG8gcHJvY2Vzc1xuICAgICogQHBhcmFtIG1hcCAtIG5hbWVzcGFjZSBwcmVmaXggbWFwXG4gICAgKiBAcGFyYW0gbG9jYWxQcmVmaXhlc01hcCAtIGxvY2FsIHByZWZpeGVzIG1hcFxuICAgICovXG4gICAgX3JlY29yZE5hbWVzcGFjZUluZm9ybWF0aW9uKG5vZGUsIG1hcCwgbG9jYWxQcmVmaXhlc01hcCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IGRlZmF1bHQgbmFtZXNwYWNlIGF0dHIgdmFsdWUgYmUgbnVsbC5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBkZWZhdWx0TmFtZXNwYWNlQXR0clZhbHVlID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIE1haW46IEZvciBlYWNoIGF0dHJpYnV0ZSBhdHRyIGluIGVsZW1lbnQncyBhdHRyaWJ1dGVzLCBpbiB0aGUgb3JkZXJcbiAgICAgICAgICogdGhleSBhcmUgc3BlY2lmaWVkIGluIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlIGxpc3Q6XG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHIgb2Ygbm9kZS5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIF9Ob3RlOl8gVGhlIGZvbGxvd2luZyBjb25kaXRpb25hbCBzdGVwcyBmaW5kIG5hbWVzcGFjZSBwcmVmaXhlcy4gT25seVxuICAgICAgICAgICAgICogYXR0cmlidXRlcyBpbiB0aGUgWE1MTlMgbmFtZXNwYWNlIGFyZSBjb25zaWRlcmVkIChlLmcuLCBhdHRyaWJ1dGVzIG1hZGVcbiAgICAgICAgICAgICAqIHRvIGxvb2sgbGlrZSBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIHZpYVxuICAgICAgICAgICAgICogc2V0QXR0cmlidXRlKFwieG1sbnM6cHJldGVuZC1wcmVmaXhcIiwgXCJwcmV0ZW5kLW5hbWVzcGFjZVwiKSBhcmUgbm90XG4gICAgICAgICAgICAgKiBpbmNsdWRlZCkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8qKiAyLjEuIExldCBhdHRyaWJ1dGUgbmFtZXNwYWNlIGJlIHRoZSB2YWx1ZSBvZiBhdHRyJ3MgbmFtZXNwYWNlVVJJIHZhbHVlLiAqL1xuICAgICAgICAgICAgbGV0IGF0dHJpYnV0ZU5hbWVzcGFjZSA9IGF0dHIubmFtZXNwYWNlVVJJO1xuICAgICAgICAgICAgLyoqIDIuMi4gTGV0IGF0dHJpYnV0ZSBwcmVmaXggYmUgdGhlIHZhbHVlIG9mIGF0dHIncyBwcmVmaXguICovXG4gICAgICAgICAgICBsZXQgYXR0cmlidXRlUHJlZml4ID0gYXR0ci5wcmVmaXg7XG4gICAgICAgICAgICAvKiogMi4zLiBJZiB0aGUgYXR0cmlidXRlIG5hbWVzcGFjZSBpcyB0aGUgWE1MTlMgbmFtZXNwYWNlLCB0aGVuOiAqL1xuICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MTlMpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjMuMS4gSWYgYXR0cmlidXRlIHByZWZpeCBpcyBudWxsLCB0aGVuIGF0dHIgaXMgYSBkZWZhdWx0IG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAqIGRlY2xhcmF0aW9uLiBTZXQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIGF0dHIgdmFsdWUgdG8gYXR0cidzIHZhbHVlIGFuZFxuICAgICAgICAgICAgICAgICAqIHN0b3AgcnVubmluZyB0aGVzZSBzdGVwcywgcmV0dXJuaW5nIHRvIE1haW4gdG8gdmlzaXQgdGhlIG5leHRcbiAgICAgICAgICAgICAgICAgKiBhdHRyaWJ1dGUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZVByZWZpeCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TmFtZXNwYWNlQXR0clZhbHVlID0gYXR0ci52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjMuMi4gT3RoZXJ3aXNlLCB0aGUgYXR0cmlidXRlIHByZWZpeCBpcyBub3QgbnVsbCBhbmQgYXR0ciBpcyBhXG4gICAgICAgICAgICAgICAgICAgICAqIG5hbWVzcGFjZSBwcmVmaXggZGVmaW5pdGlvbi4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHM6XG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqIDIuMy4yLjEuIExldCBwcmVmaXggZGVmaW5pdGlvbiBiZSB0aGUgdmFsdWUgb2YgYXR0cidzIGxvY2FsTmFtZS4gKi9cbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeERlZmluaXRpb24gPSBhdHRyLmxvY2FsTmFtZTtcbiAgICAgICAgICAgICAgICAgICAgLyoqIDIuMy4yLjIuIExldCBuYW1lc3BhY2UgZGVmaW5pdGlvbiBiZSB0aGUgdmFsdWUgb2YgYXR0cidzIHZhbHVlLiAqL1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZXNwYWNlRGVmaW5pdGlvbiA9IGF0dHIudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjMuMi4zLiBJZiBuYW1lc3BhY2UgZGVmaW5pdGlvbiBpcyB0aGUgWE1MIG5hbWVzcGFjZSwgdGhlbiBzdG9wXG4gICAgICAgICAgICAgICAgICAgICAqIHJ1bm5pbmcgdGhlc2Ugc3RlcHMsIGFuZCByZXR1cm4gdG8gTWFpbiB0byB2aXNpdCB0aGUgbmV4dFxuICAgICAgICAgICAgICAgICAgICAgKiBhdHRyaWJ1dGUuXG4gICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gWE1MIG5hbWVzcGFjZSBkZWZpbml0aW9ucyBpbiBwcmVmaXhlcyBhcmUgY29tcGxldGVseVxuICAgICAgICAgICAgICAgICAgICAgKiBpZ25vcmVkIChpbiBvcmRlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIHdoZW4gdGhlcmUgbWlnaHQgYmVcbiAgICAgICAgICAgICAgICAgICAgICogcHJlZml4IGNvbmZsaWN0cykuIFhNTCBuYW1lc3BhY2VkIGVsZW1lbnRzIGFyZSBhbHdheXMgaGFuZGxlZFxuICAgICAgICAgICAgICAgICAgICAgKiB1bmlmb3JtbHkgYnkgcHJlZml4aW5nIChhbmQgb3ZlcnJpZGluZyBpZiBuZWNlc3NhcnkpIHRoZSBlbGVtZW50J3NcbiAgICAgICAgICAgICAgICAgICAgICogbG9jYWxuYW1lIHdpdGggdGhlIHJlc2VydmVkIFwieG1sXCIgcHJlZml4LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzcGFjZURlZmluaXRpb24gPT09IGluZnJhXzEubmFtZXNwYWNlLlhNTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMy4yLjQuIElmIG5hbWVzcGFjZSBkZWZpbml0aW9uIGlzIHRoZSBlbXB0eSBzdHJpbmcgKHRoZVxuICAgICAgICAgICAgICAgICAgICAgKiBkZWNsYXJhdGl2ZSBmb3JtIG9mIGhhdmluZyBubyBuYW1lc3BhY2UpLCB0aGVuIGxldCBuYW1lc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICogZGVmaW5pdGlvbiBiZSBudWxsIGluc3RlYWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlRGVmaW5pdGlvbiA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZURlZmluaXRpb24gPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjMuMi41LiBJZiBwcmVmaXggZGVmaW5pdGlvbiBpcyBmb3VuZCBpbiBtYXAgZ2l2ZW4gdGhlIG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgKiBuYW1lc3BhY2UgZGVmaW5pdGlvbiwgdGhlbiBzdG9wIHJ1bm5pbmcgdGhlc2Ugc3RlcHMsIGFuZCByZXR1cm4gdG9cbiAgICAgICAgICAgICAgICAgICAgICogTWFpbiB0byB2aXNpdCB0aGUgbmV4dCBhdHRyaWJ1dGUuXG4gICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gVGhpcyBzdGVwIGF2b2lkcyBhZGRpbmcgZHVwbGljYXRlIHByZWZpeCBkZWZpbml0aW9ucyBmb3JcbiAgICAgICAgICAgICAgICAgICAgICogdGhlIHNhbWUgbmFtZXNwYWNlIGluIHRoZSBtYXAuIFRoaXMgaGFzIHRoZSBzaWRlLWVmZmVjdCBvZiBhdm9pZGluZ1xuICAgICAgICAgICAgICAgICAgICAgKiBsYXRlciBzZXJpYWxpemF0aW9uIG9mIGR1cGxpY2F0ZSBuYW1lc3BhY2UgcHJlZml4IGRlY2xhcmF0aW9ucyBpblxuICAgICAgICAgICAgICAgICAgICAgKiBhbnkgZGVzY2VuZGFudCBub2Rlcy5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXAuaGFzKHByZWZpeERlZmluaXRpb24sIG5hbWVzcGFjZURlZmluaXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4zLjIuNi4gQWRkIHRoZSBwcmVmaXggcHJlZml4IGRlZmluaXRpb24gdG8gbWFwIGdpdmVuIG5hbWVzcGFjZVxuICAgICAgICAgICAgICAgICAgICAgKiBuYW1lc3BhY2UgZGVmaW5pdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIG1hcC5zZXQocHJlZml4RGVmaW5pdGlvbiwgbmFtZXNwYWNlRGVmaW5pdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjMuMi43LiBBZGQgdGhlIHZhbHVlIG9mIHByZWZpeCBkZWZpbml0aW9uIGFzIGEgbmV3IGtleSB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICogbG9jYWwgcHJlZml4ZXMgbWFwLCB3aXRoIHRoZSBuYW1lc3BhY2UgZGVmaW5pdGlvbiBhcyB0aGUga2V5J3NcbiAgICAgICAgICAgICAgICAgICAgICogdmFsdWUgcmVwbGFjaW5nIHRoZSB2YWx1ZSBvZiBudWxsIHdpdGggdGhlIGVtcHR5IHN0cmluZyBpZlxuICAgICAgICAgICAgICAgICAgICAgKiBhcHBsaWNhYmxlLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxQcmVmaXhlc01hcFtwcmVmaXhEZWZpbml0aW9uXSA9IG5hbWVzcGFjZURlZmluaXRpb24gfHwgJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBSZXR1cm4gdGhlIHZhbHVlIG9mIGRlZmF1bHQgbmFtZXNwYWNlIGF0dHIgdmFsdWUuXG4gICAgICAgICAqXG4gICAgICAgICAqIF9Ob3RlOl8gVGhlIGVtcHR5IHN0cmluZyBpcyBhIGxlZ2l0aW1hdGUgcmV0dXJuIHZhbHVlIGFuZCBpcyBub3RcbiAgICAgICAgICogY29udmVydGVkIHRvIG51bGwuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gZGVmYXVsdE5hbWVzcGFjZUF0dHJWYWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgKiBHZW5lcmF0ZXMgYSBuZXcgcHJlZml4IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlLlxuICAgICpcbiAgICAqIEBwYXJhbSBuZXdOYW1lc3BhY2UgLSBhIG5hbWVzcGFjZSB0byBnZW5lcmF0ZSBwcmVmaXggZm9yXG4gICAgKiBAcGFyYW0gcHJlZml4TWFwIC0gbmFtZXNwYWNlIHByZWZpeCBtYXBcbiAgICAqIEBwYXJhbSBwcmVmaXhJbmRleCAtIGdlbmVyYXRlZCBuYW1lc3BhY2UgcHJlZml4IGluZGV4XG4gICAgKi9cbiAgICBfZ2VuZXJhdGVQcmVmaXgobmV3TmFtZXNwYWNlLCBwcmVmaXhNYXAsIHByZWZpeEluZGV4KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgZ2VuZXJhdGVkIHByZWZpeCBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nIFwibnNcIiBhbmQgdGhlXG4gICAgICAgICAqIGN1cnJlbnQgbnVtZXJpY2FsIHZhbHVlIG9mIHByZWZpeCBpbmRleC5cbiAgICAgICAgICogMi4gTGV0IHRoZSB2YWx1ZSBvZiBwcmVmaXggaW5kZXggYmUgaW5jcmVtZW50ZWQgYnkgb25lLlxuICAgICAgICAgKiAzLiBBZGQgdG8gbWFwIHRoZSBnZW5lcmF0ZWQgcHJlZml4IGdpdmVuIHRoZSBuZXcgbmFtZXNwYWNlIG5hbWVzcGFjZS5cbiAgICAgICAgICogNC4gUmV0dXJuIHRoZSB2YWx1ZSBvZiBnZW5lcmF0ZWQgcHJlZml4LlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGdlbmVyYXRlZFByZWZpeCA9IFwibnNcIiArIHByZWZpeEluZGV4LnZhbHVlO1xuICAgICAgICBwcmVmaXhJbmRleC52YWx1ZSsrO1xuICAgICAgICBwcmVmaXhNYXAuc2V0KGdlbmVyYXRlZFByZWZpeCwgbmV3TmFtZXNwYWNlKTtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlZFByZWZpeDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvZHVjZXMgYW4gWE1MIHNlcmlhbGl6YXRpb24gb2YgYW4gYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gYXR0cmlidXRlIHZhbHVlXG4gICAgICogQHBhcmFtIHJlcXVpcmVXZWxsRm9ybWVkIC0gd2hldGhlciB0byBjaGVjayBjb25mb3JtYW5jZVxuICAgICAqL1xuICAgIF9zZXJpYWxpemVBdHRyaWJ1dGVWYWx1ZSh2YWx1ZSwgcmVxdWlyZVdlbGxGb3JtZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZyb206IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9ET00tUGFyc2luZy8jZGZuLXNlcmlhbGl6aW5nLWFuLWF0dHJpYnV0ZS12YWx1ZVxuICAgICAgICAgKlxuICAgICAgICAgKiAxLiBJZiB0aGUgcmVxdWlyZSB3ZWxsLWZvcm1lZCBmbGFnIGlzIHNldCAoaXRzIHZhbHVlIGlzIHRydWUpLCBhbmRcbiAgICAgICAgICogYXR0cmlidXRlIHZhbHVlIGNvbnRhaW5zIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IG1hdGNoZWQgYnkgdGhlIFhNTCBDaGFyXG4gICAgICAgICAqIHByb2R1Y3Rpb24sIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uOyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0aGlzIGF0dHJpYnV0ZVxuICAgICAgICAgKiB2YWx1ZSB3b3VsZCBmYWlsIHRvIHByb2R1Y2UgYSB3ZWxsLWZvcm1lZCBlbGVtZW50IHNlcmlhbGl6YXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVxdWlyZVdlbGxGb3JtZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgIWFsZ29yaXRobV8xLnhtbF9pc0xlZ2FsQ2hhcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgY2hhcmFjdGVycyBpbiBhdHRyaWJ1dGUgdmFsdWUuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiBhdHRyaWJ1dGUgdmFsdWUgaXMgbnVsbCwgdGhlbiByZXR1cm4gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBhdHRyaWJ1dGUgdmFsdWUgaXMgYSBzdHJpbmcuIFJldHVybiB0aGUgdmFsdWUgb2YgYXR0cmlidXRlXG4gICAgICAgICAqIHZhbHVlLCBmaXJzdCByZXBsYWNpbmcgYW55IG9jY3VycmVuY2VzIG9mIHRoZSBmb2xsb3dpbmc6XG4gICAgICAgICAqIC0gXCImXCIgd2l0aCBcIiZhbXA7XCJcbiAgICAgICAgICogLSBcIlwiXCIgd2l0aCBcIiZxdW90O1wiXG4gICAgICAgICAqIC0gXCI8XCIgd2l0aCBcIiZsdDtcIlxuICAgICAgICAgKiAtIFwiPlwiIHdpdGggXCImZ3Q7XCJcbiAgICAgICAgICogTk9URVxuICAgICAgICAgKiBUaGlzIG1hdGNoZXMgYmVoYXZpb3IgcHJlc2VudCBpbiBicm93c2VycywgYW5kIGdvZXMgYWJvdmUgYW5kIGJleW9uZCB0aGVcbiAgICAgICAgICogZ3JhbW1hciByZXF1aXJlbWVudCBpbiB0aGUgWE1MIHNwZWNpZmljYXRpb24ncyBBdHRWYWx1ZSBwcm9kdWN0aW9uIGJ5XG4gICAgICAgICAqIGFsc28gcmVwbGFjaW5nIFwiPlwiIGNoYXJhY3RlcnMuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgcmVzdWx0ID0gXCJcIjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYyA9IHZhbHVlW2ldO1xuICAgICAgICAgICAgaWYgKGMgPT09IFwiXFxcIlwiKVxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBcIiZxdW90O1wiO1xuICAgICAgICAgICAgZWxzZSBpZiAoYyA9PT0gXCImXCIpXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJmFtcDtcIjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IFwiPFwiKVxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBcIiZsdDtcIjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IFwiPlwiKVxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBcIiZndDtcIjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gYztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbmV4cG9ydHMuUHJlU2VyaWFsaXplciA9IFByZVNlcmlhbGl6ZXI7XG5QcmVTZXJpYWxpemVyLl9Wb2lkRWxlbWVudE5hbWVzID0gbmV3IFNldChbJ2FyZWEnLCAnYmFzZScsICdiYXNlZm9udCcsXG4gICAgJ2Jnc291bmQnLCAnYnInLCAnY29sJywgJ2VtYmVkJywgJ2ZyYW1lJywgJ2hyJywgJ2ltZycsICdpbnB1dCcsICdrZXlnZW4nLFxuICAgICdsaW5rJywgJ21lbnVpdGVtJywgJ21ldGEnLCAncGFyYW0nLCAnc291cmNlJywgJ3RyYWNrJywgJ3diciddKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVByZVNlcmlhbGl6ZXIuanMubWFwIiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cblxuJ3VzZSBzdHJpY3QnXG5cbnZhciBiYXNlNjQgPSByZXF1aXJlKCdiYXNlNjQtanMnKVxudmFyIGllZWU3NTQgPSByZXF1aXJlKCdpZWVlNzU0JylcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnaXNhcnJheScpXG5cbmV4cG9ydHMuQnVmZmVyID0gQnVmZmVyXG5leHBvcnRzLlNsb3dCdWZmZXIgPSBTbG93QnVmZmVyXG5leHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTID0gNTBcblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgVXNlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogRHVlIHRvIHZhcmlvdXMgYnJvd3NlciBidWdzLCBzb21ldGltZXMgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHVzZWQgZXZlblxuICogd2hlbiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0eXBlZCBhcnJheXMuXG4gKlxuICogTm90ZTpcbiAqXG4gKiAgIC0gRmlyZWZveCA0LTI5IGxhY2tzIHN1cHBvcnQgZm9yIGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLFxuICogICAgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NDM4LlxuICpcbiAqICAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLlxuICpcbiAqICAgLSBJRTEwIGhhcyBhIGJyb2tlbiBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYXJyYXlzIG9mXG4gKiAgICAgaW5jb3JyZWN0IGxlbmd0aCBpbiBzb21lIHNpdHVhdGlvbnMuXG5cbiAqIFdlIGRldGVjdCB0aGVzZSBidWdneSBicm93c2VycyBhbmQgc2V0IGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGAgdG8gYGZhbHNlYCBzbyB0aGV5XG4gKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCBiZWhhdmVzIGNvcnJlY3RseS5cbiAqL1xuQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgPSBnbG9iYWwuVFlQRURfQVJSQVlfU1VQUE9SVCAhPT0gdW5kZWZpbmVkXG4gID8gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgOiB0eXBlZEFycmF5U3VwcG9ydCgpXG5cbi8qXG4gKiBFeHBvcnQga01heExlbmd0aCBhZnRlciB0eXBlZCBhcnJheSBzdXBwb3J0IGlzIGRldGVybWluZWQuXG4gKi9cbmV4cG9ydHMua01heExlbmd0aCA9IGtNYXhMZW5ndGgoKVxuXG5mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCAoKSB7XG4gIHRyeSB7XG4gICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KDEpXG4gICAgYXJyLl9fcHJvdG9fXyA9IHtfX3Byb3RvX186IFVpbnQ4QXJyYXkucHJvdG90eXBlLCBmb286IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDQyIH19XG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgICAgICAgdHlwZW9mIGFyci5zdWJhcnJheSA9PT0gJ2Z1bmN0aW9uJyAmJiAvLyBjaHJvbWUgOS0xMCBsYWNrIGBzdWJhcnJheWBcbiAgICAgICAgYXJyLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmZ1bmN0aW9uIGtNYXhMZW5ndGggKCkge1xuICByZXR1cm4gQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgICA/IDB4N2ZmZmZmZmZcbiAgICA6IDB4M2ZmZmZmZmZcbn1cblxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyICh0aGF0LCBsZW5ndGgpIHtcbiAgaWYgKGtNYXhMZW5ndGgoKSA8IGxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHR5cGVkIGFycmF5IGxlbmd0aCcpXG4gIH1cbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aClcbiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgaWYgKHRoYXQgPT09IG51bGwpIHtcbiAgICAgIHRoYXQgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgICB9XG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogVGhlIEJ1ZmZlciBjb25zdHJ1Y3RvciByZXR1cm5zIGluc3RhbmNlcyBvZiBgVWludDhBcnJheWAgdGhhdCBoYXZlIHRoZWlyXG4gKiBwcm90b3R5cGUgY2hhbmdlZCB0byBgQnVmZmVyLnByb3RvdHlwZWAuIEZ1cnRoZXJtb3JlLCBgQnVmZmVyYCBpcyBhIHN1YmNsYXNzIG9mXG4gKiBgVWludDhBcnJheWAsIHNvIHRoZSByZXR1cm5lZCBpbnN0YW5jZXMgd2lsbCBoYXZlIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBtZXRob2RzXG4gKiBhbmQgdGhlIGBVaW50OEFycmF5YCBtZXRob2RzLiBTcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdFxuICogcmV0dXJucyBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBUaGUgYFVpbnQ4QXJyYXlgIHByb3RvdHlwZSByZW1haW5zIHVubW9kaWZpZWQuXG4gKi9cblxuZnVuY3Rpb24gQnVmZmVyIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmICEodGhpcyBpbnN0YW5jZW9mIEJ1ZmZlcikpIHtcbiAgICByZXR1cm4gbmV3IEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIC8vIENvbW1vbiBjYXNlLlxuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAodHlwZW9mIGVuY29kaW5nT3JPZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJZiBlbmNvZGluZyBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZydcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIGFsbG9jVW5zYWZlKHRoaXMsIGFyZylcbiAgfVxuICByZXR1cm4gZnJvbSh0aGlzLCBhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbi8vIFRPRE86IExlZ2FjeSwgbm90IG5lZWRlZCBhbnltb3JlLiBSZW1vdmUgaW4gbmV4dCBtYWpvciB2ZXJzaW9uLlxuQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gKGFycikge1xuICBhcnIuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICByZXR1cm4gYXJyXG59XG5cbmZ1bmN0aW9uIGZyb20gKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgIHJldHVybiBmcm9tQXJyYXlCdWZmZXIodGhhdCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZyb21TdHJpbmcodGhhdCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQpXG4gIH1cblxuICByZXR1cm4gZnJvbU9iamVjdCh0aGF0LCB2YWx1ZSlcbn1cblxuLyoqXG4gKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBCdWZmZXIoYXJnLCBlbmNvZGluZykgYnV0IHRocm93cyBhIFR5cGVFcnJvclxuICogaWYgdmFsdWUgaXMgYSBudW1iZXIuXG4gKiBCdWZmZXIuZnJvbShzdHJbLCBlbmNvZGluZ10pXG4gKiBCdWZmZXIuZnJvbShhcnJheSlcbiAqIEJ1ZmZlci5mcm9tKGJ1ZmZlcilcbiAqIEJ1ZmZlci5mcm9tKGFycmF5QnVmZmVyWywgYnl0ZU9mZnNldFssIGxlbmd0aF1dKVxuICoqL1xuQnVmZmVyLmZyb20gPSBmdW5jdGlvbiAodmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gZnJvbShudWxsLCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxufVxuXG5pZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgQnVmZmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBVaW50OEFycmF5LnByb3RvdHlwZVxuICBCdWZmZXIuX19wcm90b19fID0gVWludDhBcnJheVxuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnNwZWNpZXMgJiZcbiAgICAgIEJ1ZmZlcltTeW1ib2wuc3BlY2llc10gPT09IEJ1ZmZlcikge1xuICAgIC8vIEZpeCBzdWJhcnJheSgpIGluIEVTMjAxNi4gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2J1ZmZlci9wdWxsLzk3XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEJ1ZmZlciwgU3ltYm9sLnNwZWNpZXMsIHtcbiAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRTaXplIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfSBlbHNlIGlmIChzaXplIDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcInNpemVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScpXG4gIH1cbn1cblxuZnVuY3Rpb24gYWxsb2MgKHRoYXQsIHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIGFzc2VydFNpemUoc2l6ZSlcbiAgaWYgKHNpemUgPD0gMCkge1xuICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSlcbiAgfVxuICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gT25seSBwYXkgYXR0ZW50aW9uIHRvIGVuY29kaW5nIGlmIGl0J3MgYSBzdHJpbmcuIFRoaXNcbiAgICAvLyBwcmV2ZW50cyBhY2NpZGVudGFsbHkgc2VuZGluZyBpbiBhIG51bWJlciB0aGF0IHdvdWxkXG4gICAgLy8gYmUgaW50ZXJwcmV0dGVkIGFzIGEgc3RhcnQgb2Zmc2V0LlxuICAgIHJldHVybiB0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnXG4gICAgICA/IGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKS5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgICAgOiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsKVxuICB9XG4gIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSlcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKiBhbGxvYyhzaXplWywgZmlsbFssIGVuY29kaW5nXV0pXG4gKiovXG5CdWZmZXIuYWxsb2MgPSBmdW5jdGlvbiAoc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGFsbG9jKG51bGwsIHNpemUsIGZpbGwsIGVuY29kaW5nKVxufVxuXG5mdW5jdGlvbiBhbGxvY1Vuc2FmZSAodGhhdCwgc2l6ZSkge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSA8IDAgPyAwIDogY2hlY2tlZChzaXplKSB8IDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNpemU7ICsraSkge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLyoqXG4gKiBFcXVpdmFsZW50IHRvIEJ1ZmZlcihudW0pLCBieSBkZWZhdWx0IGNyZWF0ZXMgYSBub24temVyby1maWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKVxufVxuLyoqXG4gKiBFcXVpdmFsZW50IHRvIFNsb3dCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqL1xuQnVmZmVyLmFsbG9jVW5zYWZlU2xvdyA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKVxufVxuXG5mdW5jdGlvbiBmcm9tU3RyaW5nICh0aGF0LCBzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmICh0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnIHx8IGVuY29kaW5nID09PSAnJykge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gIH1cblxuICBpZiAoIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiZW5jb2RpbmdcIiBtdXN0IGJlIGEgdmFsaWQgc3RyaW5nIGVuY29kaW5nJylcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBieXRlTGVuZ3RoKHN0cmluZywgZW5jb2RpbmcpIHwgMFxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbmd0aClcblxuICB2YXIgYWN0dWFsID0gdGhhdC53cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuXG4gIGlmIChhY3R1YWwgIT09IGxlbmd0aCkge1xuICAgIC8vIFdyaXRpbmcgYSBoZXggc3RyaW5nLCBmb3IgZXhhbXBsZSwgdGhhdCBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMgd2lsbFxuICAgIC8vIGNhdXNlIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IGludmFsaWQgY2hhcmFjdGVyIHRvIGJlIGlnbm9yZWQuIChlLmcuXG4gICAgLy8gJ2FieHhjZCcgd2lsbCBiZSB0cmVhdGVkIGFzICdhYicpXG4gICAgdGhhdCA9IHRoYXQuc2xpY2UoMCwgYWN0dWFsKVxuICB9XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCA8IDAgPyAwIDogY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUJ1ZmZlciAodGhhdCwgYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICBhcnJheS5ieXRlTGVuZ3RoIC8vIHRoaXMgdGhyb3dzIGlmIGBhcnJheWAgaXMgbm90IGEgdmFsaWQgQXJyYXlCdWZmZXJcblxuICBpZiAoYnl0ZU9mZnNldCA8IDAgfHwgYXJyYXkuYnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnb2Zmc2V0XFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0ICsgKGxlbmd0aCB8fCAwKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcXCdsZW5ndGhcXCcgaXMgb3V0IG9mIGJvdW5kcycpXG4gIH1cblxuICBpZiAoYnl0ZU9mZnNldCA9PT0gdW5kZWZpbmVkICYmIGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSlcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQpXG4gIH0gZWxzZSB7XG4gICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSwgYnl0ZU9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IGFycmF5XG4gICAgdGhhdC5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzc1xuICAgIHRoYXQgPSBmcm9tQXJyYXlMaWtlKHRoYXQsIGFycmF5KVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iaikge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iaikpIHtcbiAgICB2YXIgbGVuID0gY2hlY2tlZChvYmoubGVuZ3RoKSB8IDBcbiAgICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbilcblxuICAgIGlmICh0aGF0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoYXRcbiAgICB9XG5cbiAgICBvYmouY29weSh0aGF0LCAwLCAwLCBsZW4pXG4gICAgcmV0dXJuIHRoYXRcbiAgfVxuXG4gIGlmIChvYmopIHtcbiAgICBpZiAoKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgb2JqLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fCAnbGVuZ3RoJyBpbiBvYmopIHtcbiAgICAgIGlmICh0eXBlb2Ygb2JqLmxlbmd0aCAhPT0gJ251bWJlcicgfHwgaXNuYW4ob2JqLmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcih0aGF0LCAwKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqKVxuICAgIH1cblxuICAgIGlmIChvYmoudHlwZSA9PT0gJ0J1ZmZlcicgJiYgaXNBcnJheShvYmouZGF0YSkpIHtcbiAgICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iai5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4nKVxufVxuXG5mdW5jdGlvbiBjaGVja2VkIChsZW5ndGgpIHtcbiAgLy8gTm90ZTogY2Fubm90IHVzZSBgbGVuZ3RoIDwga01heExlbmd0aCgpYCBoZXJlIGJlY2F1c2UgdGhhdCBmYWlscyB3aGVuXG4gIC8vIGxlbmd0aCBpcyBOYU4gKHdoaWNoIGlzIG90aGVyd2lzZSBjb2VyY2VkIHRvIHplcm8uKVxuICBpZiAobGVuZ3RoID49IGtNYXhMZW5ndGgoKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICdzaXplOiAweCcgKyBrTWF4TGVuZ3RoKCkudG9TdHJpbmcoMTYpICsgJyBieXRlcycpXG4gIH1cbiAgcmV0dXJuIGxlbmd0aCB8IDBcbn1cblxuZnVuY3Rpb24gU2xvd0J1ZmZlciAobGVuZ3RoKSB7XG4gIGlmICgrbGVuZ3RoICE9IGxlbmd0aCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGVxZXFlcVxuICAgIGxlbmd0aCA9IDBcbiAgfVxuICByZXR1cm4gQnVmZmVyLmFsbG9jKCtsZW5ndGgpXG59XG5cbkJ1ZmZlci5pc0J1ZmZlciA9IGZ1bmN0aW9uIGlzQnVmZmVyIChiKSB7XG4gIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpXG59XG5cbkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihhKSB8fCAhQnVmZmVyLmlzQnVmZmVyKGIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIG11c3QgYmUgQnVmZmVycycpXG4gIH1cblxuICBpZiAoYSA9PT0gYikgcmV0dXJuIDBcblxuICB2YXIgeCA9IGEubGVuZ3RoXG4gIHZhciB5ID0gYi5sZW5ndGhcblxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gTWF0aC5taW4oeCwgeSk7IGkgPCBsZW47ICsraSkge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSB7XG4gICAgICB4ID0gYVtpXVxuICAgICAgeSA9IGJbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIGlzRW5jb2RpbmcgKGVuY29kaW5nKSB7XG4gIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgY2FzZSAnYmluYXJ5JzpcbiAgICBjYXNlICdiYXNlNjQnOlxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5CdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHtcbiAgaWYgKCFpc0FycmF5KGxpc3QpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJylcbiAgfVxuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBCdWZmZXIuYWxsb2MoMClcbiAgfVxuXG4gIHZhciBpXG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGxlbmd0aCA9IDBcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgICAgbGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoXG4gICAgfVxuICB9XG5cbiAgdmFyIGJ1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShsZW5ndGgpXG4gIHZhciBwb3MgPSAwXG4gIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgdmFyIGJ1ZiA9IGxpc3RbaV1cbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKVxuICAgIH1cbiAgICBidWYuY29weShidWZmZXIsIHBvcylcbiAgICBwb3MgKz0gYnVmLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZmZXJcbn1cblxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICB9XG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXcgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIChBcnJheUJ1ZmZlci5pc1ZpZXcoc3RyaW5nKSB8fCBzdHJpbmcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHtcbiAgICByZXR1cm4gc3RyaW5nLmJ5dGVMZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcbiAgICBzdHJpbmcgPSAnJyArIHN0cmluZ1xuICB9XG5cbiAgdmFyIGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBVc2UgYSBmb3IgbG9vcCB0byBhdm9pZCByZWN1cnNpb25cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGVuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cbkJ1ZmZlci5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuXG5mdW5jdGlvbiBzbG93VG9TdHJpbmcgKGVuY29kaW5nLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG5cbiAgLy8gTm8gbmVlZCB0byB2ZXJpZnkgdGhhdCBcInRoaXMubGVuZ3RoIDw9IE1BWF9VSU5UMzJcIiBzaW5jZSBpdCdzIGEgcmVhZC1vbmx5XG4gIC8vIHByb3BlcnR5IG9mIGEgdHlwZWQgYXJyYXkuXG5cbiAgLy8gVGhpcyBiZWhhdmVzIG5laXRoZXIgbGlrZSBTdHJpbmcgbm9yIFVpbnQ4QXJyYXkgaW4gdGhhdCB3ZSBzZXQgc3RhcnQvZW5kXG4gIC8vIHRvIHRoZWlyIHVwcGVyL2xvd2VyIGJvdW5kcyBpZiB0aGUgdmFsdWUgcGFzc2VkIGlzIG91dCBvZiByYW5nZS5cbiAgLy8gdW5kZWZpbmVkIGlzIGhhbmRsZWQgc3BlY2lhbGx5IGFzIHBlciBFQ01BLTI2MiA2dGggRWRpdGlvbixcbiAgLy8gU2VjdGlvbiAxMy4zLjMuNyBSdW50aW1lIFNlbWFudGljczogS2V5ZWRCaW5kaW5nSW5pdGlhbGl6YXRpb24uXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkIHx8IHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ID0gMFxuICB9XG4gIC8vIFJldHVybiBlYXJseSBpZiBzdGFydCA+IHRoaXMubGVuZ3RoLiBEb25lIGhlcmUgdG8gcHJldmVudCBwb3RlbnRpYWwgdWludDMyXG4gIC8vIGNvZXJjaW9uIGZhaWwgYmVsb3cuXG4gIGlmIChzdGFydCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKGVuZCA8PSAwKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyBGb3JjZSBjb2Vyc2lvbiB0byB1aW50MzIuIFRoaXMgd2lsbCBhbHNvIGNvZXJjZSBmYWxzZXkvTmFOIHZhbHVlcyB0byAwLlxuICBlbmQgPj4+PSAwXG4gIHN0YXJ0ID4+Pj0gMFxuXG4gIGlmIChlbmQgPD0gc3RhcnQpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxhdGluMVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9IChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgcHJvcGVydHkgaXMgdXNlZCBieSBgQnVmZmVyLmlzQnVmZmVyYCBhbmQgYGlzLWJ1ZmZlcmAgKGluIFNhZmFyaSA1LTcpIHRvIGRldGVjdFxuLy8gQnVmZmVyIGluc3RhbmNlcy5cbkJ1ZmZlci5wcm90b3R5cGUuX2lzQnVmZmVyID0gdHJ1ZVxuXG5mdW5jdGlvbiBzd2FwIChiLCBuLCBtKSB7XG4gIHZhciBpID0gYltuXVxuICBiW25dID0gYlttXVxuICBiW21dID0gaVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXAxNiA9IGZ1bmN0aW9uIHN3YXAxNiAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgMiAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gMikge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDEpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMzIgPSBmdW5jdGlvbiBzd2FwMzIgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDQgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAzKVxuICAgIHN3YXAodGhpcywgaSArIDEsIGkgKyAyKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDY0ID0gZnVuY3Rpb24gc3dhcDY0ICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA4ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA4KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgNylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgNilcbiAgICBzd2FwKHRoaXMsIGkgKyAyLCBpICsgNSlcbiAgICBzd2FwKHRoaXMsIGkgKyAzLCBpICsgNClcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKCkge1xuICB2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGggfCAwXG4gIGlmIChsZW5ndGggPT09IDApIHJldHVybiAnJ1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCAwLCBsZW5ndGgpXG4gIHJldHVybiBzbG93VG9TdHJpbmcuYXBwbHkodGhpcywgYXJndW1lbnRzKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyAoYikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihiKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpXG4gIGlmICh0aGlzID09PSBiKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gQnVmZmVyLmNvbXBhcmUodGhpcywgYikgPT09IDBcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCAoKSB7XG4gIHZhciBzdHIgPSAnJ1xuICB2YXIgbWF4ID0gZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFU1xuICBpZiAodGhpcy5sZW5ndGggPiAwKSB7XG4gICAgc3RyID0gdGhpcy50b1N0cmluZygnaGV4JywgMCwgbWF4KS5tYXRjaCgvLnsyfS9nKS5qb2luKCcgJylcbiAgICBpZiAodGhpcy5sZW5ndGggPiBtYXgpIHN0ciArPSAnIC4uLiAnXG4gIH1cbiAgcmV0dXJuICc8QnVmZmVyICcgKyBzdHIgKyAnPidcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAodGFyZ2V0LCBzdGFydCwgZW5kLCB0aGlzU3RhcnQsIHRoaXNFbmQpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodGFyZ2V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmQgPSB0YXJnZXQgPyB0YXJnZXQubGVuZ3RoIDogMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNTdGFydCA9IDBcbiAgfVxuICBpZiAodGhpc0VuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpc0VuZCA9IHRoaXMubGVuZ3RoXG4gIH1cblxuICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRhcmdldC5sZW5ndGggfHwgdGhpc1N0YXJ0IDwgMCB8fCB0aGlzRW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb3V0IG9mIHJhbmdlIGluZGV4JylcbiAgfVxuXG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCAmJiBzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMVxuICB9XG5cbiAgc3RhcnQgPj4+PSAwXG4gIGVuZCA+Pj49IDBcbiAgdGhpc1N0YXJ0ID4+Pj0gMFxuICB0aGlzRW5kID4+Pj0gMFxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQpIHJldHVybiAwXG5cbiAgdmFyIHggPSB0aGlzRW5kIC0gdGhpc1N0YXJ0XG4gIHZhciB5ID0gZW5kIC0gc3RhcnRcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG5cbiAgdmFyIHRoaXNDb3B5ID0gdGhpcy5zbGljZSh0aGlzU3RhcnQsIHRoaXNFbmQpXG4gIHZhciB0YXJnZXRDb3B5ID0gdGFyZ2V0LnNsaWNlKHN0YXJ0LCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgIGlmICh0aGlzQ29weVtpXSAhPT0gdGFyZ2V0Q29weVtpXSkge1xuICAgICAgeCA9IHRoaXNDb3B5W2ldXG4gICAgICB5ID0gdGFyZ2V0Q29weVtpXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbi8vIEZpbmRzIGVpdGhlciB0aGUgZmlyc3QgaW5kZXggb2YgYHZhbGAgaW4gYGJ1ZmZlcmAgYXQgb2Zmc2V0ID49IGBieXRlT2Zmc2V0YCxcbi8vIE9SIHRoZSBsYXN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA8PSBgYnl0ZU9mZnNldGAuXG4vL1xuLy8gQXJndW1lbnRzOlxuLy8gLSBidWZmZXIgLSBhIEJ1ZmZlciB0byBzZWFyY2hcbi8vIC0gdmFsIC0gYSBzdHJpbmcsIEJ1ZmZlciwgb3IgbnVtYmVyXG4vLyAtIGJ5dGVPZmZzZXQgLSBhbiBpbmRleCBpbnRvIGBidWZmZXJgOyB3aWxsIGJlIGNsYW1wZWQgdG8gYW4gaW50MzJcbi8vIC0gZW5jb2RpbmcgLSBhbiBvcHRpb25hbCBlbmNvZGluZywgcmVsZXZhbnQgaXMgdmFsIGlzIGEgc3RyaW5nXG4vLyAtIGRpciAtIHRydWUgZm9yIGluZGV4T2YsIGZhbHNlIGZvciBsYXN0SW5kZXhPZlxuZnVuY3Rpb24gYmlkaXJlY3Rpb25hbEluZGV4T2YgKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIC8vIEVtcHR5IGJ1ZmZlciBtZWFucyBubyBtYXRjaFxuICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xXG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXRcbiAgaWYgKHR5cGVvZiBieXRlT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gYnl0ZU9mZnNldFxuICAgIGJ5dGVPZmZzZXQgPSAwXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIHtcbiAgICBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkge1xuICAgIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICB9XG4gIGJ5dGVPZmZzZXQgPSArYnl0ZU9mZnNldCAgLy8gQ29lcmNlIHRvIE51bWJlci5cbiAgaWYgKGlzTmFOKGJ5dGVPZmZzZXQpKSB7XG4gICAgLy8gYnl0ZU9mZnNldDogaXQgaXQncyB1bmRlZmluZWQsIG51bGwsIE5hTiwgXCJmb29cIiwgZXRjLCBzZWFyY2ggd2hvbGUgYnVmZmVyXG4gICAgYnl0ZU9mZnNldCA9IGRpciA/IDAgOiAoYnVmZmVyLmxlbmd0aCAtIDEpXG4gIH1cblxuICAvLyBOb3JtYWxpemUgYnl0ZU9mZnNldDogbmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBidWZmZXIubGVuZ3RoICsgYnl0ZU9mZnNldFxuICBpZiAoYnl0ZU9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgaWYgKGRpcikgcmV0dXJuIC0xXG4gICAgZWxzZSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCAtIDFcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgMCkge1xuICAgIGlmIChkaXIpIGJ5dGVPZmZzZXQgPSAwXG4gICAgZWxzZSByZXR1cm4gLTFcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSB2YWxcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gQnVmZmVyLmZyb20odmFsLCBlbmNvZGluZylcbiAgfVxuXG4gIC8vIEZpbmFsbHksIHNlYXJjaCBlaXRoZXIgaW5kZXhPZiAoaWYgZGlyIGlzIHRydWUpIG9yIGxhc3RJbmRleE9mXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgIC8vIFNwZWNpYWwgY2FzZTogbG9va2luZyBmb3IgZW1wdHkgc3RyaW5nL2J1ZmZlciBhbHdheXMgZmFpbHNcbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAweEZGIC8vIFNlYXJjaCBmb3IgYSBieXRlIHZhbHVlIFswLTI1NV1cbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiZcbiAgICAgICAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmIChkaXIpIHtcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgWyB2YWwgXSwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcilcbiAgfVxuXG4gIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlcicpXG59XG5cbmZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpIHtcbiAgdmFyIGluZGV4U2l6ZSA9IDFcbiAgdmFyIGFyckxlbmd0aCA9IGFyci5sZW5ndGhcbiAgdmFyIHZhbExlbmd0aCA9IHZhbC5sZW5ndGhcblxuICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKGVuY29kaW5nID09PSAndWNzMicgfHwgZW5jb2RpbmcgPT09ICd1Y3MtMicgfHxcbiAgICAgICAgZW5jb2RpbmcgPT09ICd1dGYxNmxlJyB8fCBlbmNvZGluZyA9PT0gJ3V0Zi0xNmxlJykge1xuICAgICAgaWYgKGFyci5sZW5ndGggPCAyIHx8IHZhbC5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiAtMVxuICAgICAgfVxuICAgICAgaW5kZXhTaXplID0gMlxuICAgICAgYXJyTGVuZ3RoIC89IDJcbiAgICAgIHZhbExlbmd0aCAvPSAyXG4gICAgICBieXRlT2Zmc2V0IC89IDJcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZWFkIChidWYsIGkpIHtcbiAgICBpZiAoaW5kZXhTaXplID09PSAxKSB7XG4gICAgICByZXR1cm4gYnVmW2ldXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBidWYucmVhZFVJbnQxNkJFKGkgKiBpbmRleFNpemUpXG4gICAgfVxuICB9XG5cbiAgdmFyIGlcbiAgaWYgKGRpcikge1xuICAgIHZhciBmb3VuZEluZGV4ID0gLTFcbiAgICBmb3IgKGkgPSBieXRlT2Zmc2V0OyBpIDwgYXJyTGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChyZWFkKGFyciwgaSkgPT09IHJlYWQodmFsLCBmb3VuZEluZGV4ID09PSAtMSA/IDAgOiBpIC0gZm91bmRJbmRleCkpIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggPT09IC0xKSBmb3VuZEluZGV4ID0gaVxuICAgICAgICBpZiAoaSAtIGZvdW5kSW5kZXggKyAxID09PSB2YWxMZW5ndGgpIHJldHVybiBmb3VuZEluZGV4ICogaW5kZXhTaXplXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZm91bmRJbmRleCAhPT0gLTEpIGkgLT0gaSAtIGZvdW5kSW5kZXhcbiAgICAgICAgZm91bmRJbmRleCA9IC0xXG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChieXRlT2Zmc2V0ICsgdmFsTGVuZ3RoID4gYXJyTGVuZ3RoKSBieXRlT2Zmc2V0ID0gYXJyTGVuZ3RoIC0gdmFsTGVuZ3RoXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBmb3VuZCA9IHRydWVcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdmFsTGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKHJlYWQoYXJyLCBpICsgaikgIT09IHJlYWQodmFsLCBqKSkge1xuICAgICAgICAgIGZvdW5kID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZm91bmQpIHJldHVybiBpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC0xXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5jbHVkZXMgPSBmdW5jdGlvbiBpbmNsdWRlcyAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gdGhpcy5pbmRleE9mKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpICE9PSAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCB0cnVlKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmxhc3RJbmRleE9mID0gZnVuY3Rpb24gbGFzdEluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGZhbHNlKVxufVxuXG5mdW5jdGlvbiBoZXhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDBcbiAgdmFyIHJlbWFpbmluZyA9IGJ1Zi5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKCFsZW5ndGgpIHtcbiAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgfSBlbHNlIHtcbiAgICBsZW5ndGggPSBOdW1iZXIobGVuZ3RoKVxuICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHtcbiAgICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICAgIH1cbiAgfVxuXG4gIC8vIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YgZGlnaXRzXG4gIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChzdHJMZW4gJSAyICE9PSAwKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuXG4gIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7XG4gICAgbGVuZ3RoID0gc3RyTGVuIC8gMlxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICB2YXIgcGFyc2VkID0gcGFyc2VJbnQoc3RyaW5nLnN1YnN0cihpICogMiwgMiksIDE2KVxuICAgIGlmIChpc05hTihwYXJzZWQpKSByZXR1cm4gaVxuICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHBhcnNlZFxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIHV0ZjhXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGFzY2lpV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihhc2NpaVRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gbGF0aW4xV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYXNjaWlXcml0ZShidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGJhc2U2NFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiB1Y3MyV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGYxNmxlVG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gd3JpdGUgKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKSB7XG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcpXG4gIGlmIChvZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIGVuY29kaW5nKVxuICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jb2RpbmcgPSBvZmZzZXRcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgb2Zmc2V0WywgbGVuZ3RoXVssIGVuY29kaW5nXSlcbiAgfSBlbHNlIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7XG4gICAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7XG4gICAgICBsZW5ndGggPSBsZW5ndGggfCAwXG4gICAgICBpZiAoZW5jb2RpbmcgPT09IHVuZGVmaW5lZCkgZW5jb2RpbmcgPSAndXRmOCdcbiAgICB9IGVsc2Uge1xuICAgICAgZW5jb2RpbmcgPSBsZW5ndGhcbiAgICAgIGxlbmd0aCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgLy8gbGVnYWN5IHdyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldCwgbGVuZ3RoKSAtIHJlbW92ZSBpbiB2MC4xM1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCdcbiAgICApXG4gIH1cblxuICB2YXIgcmVtYWluaW5nID0gdGhpcy5sZW5ndGggLSBvZmZzZXRcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA+IHJlbWFpbmluZykgbGVuZ3RoID0gcmVtYWluaW5nXG5cbiAgaWYgKChzdHJpbmcubGVuZ3RoID4gMCAmJiAobGVuZ3RoIDwgMCB8fCBvZmZzZXQgPCAwKSkgfHwgb2Zmc2V0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMnKVxuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsYXRpbjFXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICAvLyBXYXJuaW5nOiBtYXhMZW5ndGggbm90IHRha2VuIGludG8gYWNjb3VudCBpbiBiYXNlNjRXcml0ZVxuICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b0pTT04gPSBmdW5jdGlvbiB0b0pTT04gKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdCdWZmZXInLFxuICAgIGRhdGE6IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2FyciB8fCB0aGlzLCAwKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSlcbiAgfVxufVxuXG5mdW5jdGlvbiB1dGY4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG4gIHZhciByZXMgPSBbXVxuXG4gIHZhciBpID0gc3RhcnRcbiAgd2hpbGUgKGkgPCBlbmQpIHtcbiAgICB2YXIgZmlyc3RCeXRlID0gYnVmW2ldXG4gICAgdmFyIGNvZGVQb2ludCA9IG51bGxcbiAgICB2YXIgYnl0ZXNQZXJTZXF1ZW5jZSA9IChmaXJzdEJ5dGUgPiAweEVGKSA/IDRcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4REYpID8gM1xuICAgICAgOiAoZmlyc3RCeXRlID4gMHhCRikgPyAyXG4gICAgICA6IDFcblxuICAgIGlmIChpICsgYnl0ZXNQZXJTZXF1ZW5jZSA8PSBlbmQpIHtcbiAgICAgIHZhciBzZWNvbmRCeXRlLCB0aGlyZEJ5dGUsIGZvdXJ0aEJ5dGUsIHRlbXBDb2RlUG9pbnRcblxuICAgICAgc3dpdGNoIChieXRlc1BlclNlcXVlbmNlKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMHg4MCkge1xuICAgICAgICAgICAgY29kZVBvaW50ID0gZmlyc3RCeXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4MUYpIDw8IDB4NiB8IChzZWNvbmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3Rikge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweEMgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4NiB8ICh0aGlyZEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweDdGRiAmJiAodGVtcENvZGVQb2ludCA8IDB4RDgwMCB8fCB0ZW1wQ29kZVBvaW50ID4gMHhERkZGKSkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXVxuICAgICAgICAgIHRoaXJkQnl0ZSA9IGJ1ZltpICsgMl1cbiAgICAgICAgICBmb3VydGhCeXRlID0gYnVmW2kgKyAzXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwICYmICh0aGlyZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAoZm91cnRoQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHgxMiB8IChzZWNvbmRCeXRlICYgMHgzRikgPDwgMHhDIHwgKHRoaXJkQnl0ZSAmIDB4M0YpIDw8IDB4NiB8IChmb3VydGhCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHhGRkZGICYmIHRlbXBDb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgICAgICAgICBjb2RlUG9pbnQgPSB0ZW1wQ29kZVBvaW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb2RlUG9pbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIHdlIGRpZCBub3QgZ2VuZXJhdGUgYSB2YWxpZCBjb2RlUG9pbnQgc28gaW5zZXJ0IGFcbiAgICAgIC8vIHJlcGxhY2VtZW50IGNoYXIgKFUrRkZGRCkgYW5kIGFkdmFuY2Ugb25seSAxIGJ5dGVcbiAgICAgIGNvZGVQb2ludCA9IDB4RkZGRFxuICAgICAgYnl0ZXNQZXJTZXF1ZW5jZSA9IDFcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA+IDB4RkZGRikge1xuICAgICAgLy8gZW5jb2RlIHRvIHV0ZjE2IChzdXJyb2dhdGUgcGFpciBkYW5jZSlcbiAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXG4gICAgICByZXMucHVzaChjb2RlUG9pbnQgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApXG4gICAgICBjb2RlUG9pbnQgPSAweERDMDAgfCBjb2RlUG9pbnQgJiAweDNGRlxuICAgIH1cblxuICAgIHJlcy5wdXNoKGNvZGVQb2ludClcbiAgICBpICs9IGJ5dGVzUGVyU2VxdWVuY2VcbiAgfVxuXG4gIHJldHVybiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkocmVzKVxufVxuXG4vLyBCYXNlZCBvbiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMjc0NzI3Mi82ODA3NDIsIHRoZSBicm93c2VyIHdpdGhcbi8vIHRoZSBsb3dlc3QgbGltaXQgaXMgQ2hyb21lLCB3aXRoIDB4MTAwMDAgYXJncy5cbi8vIFdlIGdvIDEgbWFnbml0dWRlIGxlc3MsIGZvciBzYWZldHlcbnZhciBNQVhfQVJHVU1FTlRTX0xFTkdUSCA9IDB4MTAwMFxuXG5mdW5jdGlvbiBkZWNvZGVDb2RlUG9pbnRzQXJyYXkgKGNvZGVQb2ludHMpIHtcbiAgdmFyIGxlbiA9IGNvZGVQb2ludHMubGVuZ3RoXG4gIGlmIChsZW4gPD0gTUFYX0FSR1VNRU5UU19MRU5HVEgpIHtcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIGNvZGVQb2ludHMpIC8vIGF2b2lkIGV4dHJhIHNsaWNlKClcbiAgfVxuXG4gIC8vIERlY29kZSBpbiBjaHVua3MgdG8gYXZvaWQgXCJjYWxsIHN0YWNrIHNpemUgZXhjZWVkZWRcIi5cbiAgdmFyIHJlcyA9ICcnXG4gIHZhciBpID0gMFxuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFxuICAgICAgU3RyaW5nLFxuICAgICAgY29kZVBvaW50cy5zbGljZShpLCBpICs9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKVxuICAgIClcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldICYgMHg3RilcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGxhdGluMVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGhleFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcblxuICBpZiAoIXN0YXJ0IHx8IHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW5cblxuICB2YXIgb3V0ID0gJydcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICBvdXQgKz0gdG9IZXgoYnVmW2ldKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGJ5dGVzID0gYnVmLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIHZhciByZXMgPSAnJ1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0gKyBieXRlc1tpICsgMV0gKiAyNTYpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIHN0YXJ0ID0gfn5zdGFydFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IH5+ZW5kXG5cbiAgaWYgKHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ICs9IGxlblxuICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gMFxuICB9IGVsc2UgaWYgKHN0YXJ0ID4gbGVuKSB7XG4gICAgc3RhcnQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kICs9IGxlblxuICAgIGlmIChlbmQgPCAwKSBlbmQgPSAwXG4gIH0gZWxzZSBpZiAoZW5kID4gbGVuKSB7XG4gICAgZW5kID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgdmFyIG5ld0J1ZlxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBuZXdCdWYgPSB0aGlzLnN1YmFycmF5KHN0YXJ0LCBlbmQpXG4gICAgbmV3QnVmLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2xpY2VMZW4gPSBlbmQgLSBzdGFydFxuICAgIG5ld0J1ZiA9IG5ldyBCdWZmZXIoc2xpY2VMZW4sIHVuZGVmaW5lZClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlTGVuOyArK2kpIHtcbiAgICAgIG5ld0J1ZltpXSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdCdWZcbn1cblxuLypcbiAqIE5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYnVmZmVyIGlzbid0IHRyeWluZyB0byB3cml0ZSBvdXQgb2YgYm91bmRzLlxuICovXG5mdW5jdGlvbiBjaGVja09mZnNldCAob2Zmc2V0LCBleHQsIGxlbmd0aCkge1xuICBpZiAoKG9mZnNldCAlIDEpICE9PSAwIHx8IG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdvZmZzZXQgaXMgbm90IHVpbnQnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gbGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRSA9IGZ1bmN0aW9uIHJlYWRVSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRSA9IGZ1bmN0aW9uIHJlYWRVSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG4gIH1cblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdXG4gIHZhciBtdWwgPSAxXG4gIHdoaWxlIChieXRlTGVuZ3RoID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkUgPSBmdW5jdGlvbiByZWFkVUludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICgodGhpc1tvZmZzZXRdKSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikpICtcbiAgICAgICh0aGlzW29mZnNldCArIDNdICogMHgxMDAwMDAwKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdICogMHgxMDAwMDAwKSArXG4gICAgKCh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgIHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFID0gZnVuY3Rpb24gcmVhZEludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoXG4gIHZhciBtdWwgPSAxXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0taV1cbiAgd2hpbGUgKGkgPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1pXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDggPSBmdW5jdGlvbiByZWFkSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICBpZiAoISh0aGlzW29mZnNldF0gJiAweDgwKSkgcmV0dXJuICh0aGlzW29mZnNldF0pXG4gIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIDFdIHwgKHRoaXNbb2Zmc2V0XSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdKSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10gPDwgMjQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkUgPSBmdW5jdGlvbiByZWFkSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDI0KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiByZWFkRmxvYXRMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0QkUgPSBmdW5jdGlvbiByZWFkRmxvYXRCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgNTIsIDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gcmVhZERvdWJsZUJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgNTIsIDgpXG59XG5cbmZ1bmN0aW9uIGNoZWNrSW50IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJidWZmZXJcIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJylcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDFcbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMClcbiAgfVxuXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDFcbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKHZhbHVlIC8gbXVsKSAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50OCA9IGZ1bmN0aW9uIHdyaXRlVUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHhmZiwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQxNiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCAyKTsgaSA8IGo7ICsraSkge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSAmICgweGZmIDw8ICg4ICogKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkpKSkgPj4+XG4gICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDhcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5mdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHtcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgNCk7IGkgPCBqOyArK2kpIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmXG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50TEUgPSBmdW5jdGlvbiB3cml0ZUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gMFxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gMFxuICB0aGlzW29mZnNldF0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICBpZiAodmFsdWUgPCAwICYmIHN1YiA9PT0gMCAmJiB0aGlzW29mZnNldCArIGkgLSAxXSAhPT0gMCkge1xuICAgICAgc3ViID0gMVxuICAgIH1cbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkUgPSBmdW5jdGlvbiB3cml0ZUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbGltaXQgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCAtIDEpXG5cbiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdClcbiAgfVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aCAtIDFcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IDBcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICBpZiAodmFsdWUgPCAwICYmIHN1YiA9PT0gMCAmJiB0aGlzW29mZnNldCArIGkgKyAxXSAhPT0gMCkge1xuICAgICAgc3ViID0gMVxuICAgIH1cbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50OCA9IGZ1bmN0aW9uIHdyaXRlSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweDdmLCAtMHg4MClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmYgKyB2YWx1ZSArIDFcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuZnVuY3Rpb24gY2hlY2tJRUVFNzU0IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxuICBpZiAob2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvYXQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgNCwgMy40MDI4MjM0NjYzODUyODg2ZSszOCwgLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpXG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdExFID0gZnVuY3Rpb24gd3JpdGVGbG9hdExFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0QkUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tJRUVFNzU0KGJ1ZiwgdmFsdWUsIG9mZnNldCwgOCwgMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgsIC0xLjc5NzY5MzEzNDg2MjMxNTdFKzMwOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCA1MiwgOClcbiAgcmV0dXJuIG9mZnNldCArIDhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUxFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG4vLyBjb3B5KHRhcmdldEJ1ZmZlciwgdGFyZ2V0U3RhcnQ9MCwgc291cmNlU3RhcnQ9MCwgc291cmNlRW5kPWJ1ZmZlci5sZW5ndGgpXG5CdWZmZXIucHJvdG90eXBlLmNvcHkgPSBmdW5jdGlvbiBjb3B5ICh0YXJnZXQsIHRhcmdldFN0YXJ0LCBzdGFydCwgZW5kKSB7XG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCAmJiBlbmQgIT09IDApIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXRTdGFydCA+PSB0YXJnZXQubGVuZ3RoKSB0YXJnZXRTdGFydCA9IHRhcmdldC5sZW5ndGhcbiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwXG4gIGlmIChlbmQgPiAwICYmIGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZVxuICBpZiAoZW5kID09PSBzdGFydCkgcmV0dXJuIDBcbiAgaWYgKHRhcmdldC5sZW5ndGggPT09IDAgfHwgdGhpcy5sZW5ndGggPT09IDApIHJldHVybiAwXG5cbiAgLy8gRmF0YWwgZXJyb3IgY29uZGl0aW9uc1xuICBpZiAodGFyZ2V0U3RhcnQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICB9XG4gIGlmIChzdGFydCA8IDAgfHwgc3RhcnQgPj0gdGhpcy5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpXG5cbiAgLy8gQXJlIHdlIG9vYj9cbiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0IDwgZW5kIC0gc3RhcnQpIHtcbiAgICBlbmQgPSB0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgKyBzdGFydFxuICB9XG5cbiAgdmFyIGxlbiA9IGVuZCAtIHN0YXJ0XG4gIHZhciBpXG5cbiAgaWYgKHRoaXMgPT09IHRhcmdldCAmJiBzdGFydCA8IHRhcmdldFN0YXJ0ICYmIHRhcmdldFN0YXJ0IDwgZW5kKSB7XG4gICAgLy8gZGVzY2VuZGluZyBjb3B5IGZyb20gZW5kXG4gICAgZm9yIChpID0gbGVuIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2UgaWYgKGxlbiA8IDEwMDAgfHwgIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gYXNjZW5kaW5nIGNvcHkgZnJvbSBzdGFydFxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoXG4gICAgICB0YXJnZXQsXG4gICAgICB0aGlzLnN1YmFycmF5KHN0YXJ0LCBzdGFydCArIGxlbiksXG4gICAgICB0YXJnZXRTdGFydFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBsZW5cbn1cblxuLy8gVXNhZ2U6XG4vLyAgICBidWZmZXIuZmlsbChudW1iZXJbLCBvZmZzZXRbLCBlbmRdXSlcbi8vICAgIGJ1ZmZlci5maWxsKGJ1ZmZlclssIG9mZnNldFssIGVuZF1dKVxuLy8gICAgYnVmZmVyLmZpbGwoc3RyaW5nWywgb2Zmc2V0WywgZW5kXV1bLCBlbmNvZGluZ10pXG5CdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWwsIHN0YXJ0LCBlbmQsIGVuY29kaW5nKSB7XG4gIC8vIEhhbmRsZSBzdHJpbmcgY2FzZXM6XG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc3RhcnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IHN0YXJ0XG4gICAgICBzdGFydCA9IDBcbiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZW5kID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBlbmRcbiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gICAgfVxuICAgIGlmICh2YWwubGVuZ3RoID09PSAxKSB7XG4gICAgICB2YXIgY29kZSA9IHZhbC5jaGFyQ29kZUF0KDApXG4gICAgICBpZiAoY29kZSA8IDI1Nikge1xuICAgICAgICB2YWwgPSBjb2RlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlbmNvZGluZyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2VuY29kaW5nIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJyAmJiAhQnVmZmVyLmlzRW5jb2RpbmcoZW5jb2RpbmcpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMjU1XG4gIH1cblxuICAvLyBJbnZhbGlkIHJhbmdlcyBhcmUgbm90IHNldCB0byBhIGRlZmF1bHQsIHNvIGNhbiByYW5nZSBjaGVjayBlYXJseS5cbiAgaWYgKHN0YXJ0IDwgMCB8fCB0aGlzLmxlbmd0aCA8IHN0YXJ0IHx8IHRoaXMubGVuZ3RoIDwgZW5kKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ091dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAoZW5kIDw9IHN0YXJ0KSB7XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHN0YXJ0ID0gc3RhcnQgPj4+IDBcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyB0aGlzLmxlbmd0aCA6IGVuZCA+Pj4gMFxuXG4gIGlmICghdmFsKSB2YWwgPSAwXG5cbiAgdmFyIGlcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgICAgdGhpc1tpXSA9IHZhbFxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgYnl0ZXMgPSBCdWZmZXIuaXNCdWZmZXIodmFsKVxuICAgICAgPyB2YWxcbiAgICAgIDogdXRmOFRvQnl0ZXMobmV3IEJ1ZmZlcih2YWwsIGVuY29kaW5nKS50b1N0cmluZygpKVxuICAgIHZhciBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBmb3IgKGkgPSAwOyBpIDwgZW5kIC0gc3RhcnQ7ICsraSkge1xuICAgICAgdGhpc1tpICsgc3RhcnRdID0gYnl0ZXNbaSAlIGxlbl1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLVphLXotX10vZ1xuXG5mdW5jdGlvbiBiYXNlNjRjbGVhbiAoc3RyKSB7XG4gIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcXG4gYW5kIFxcdCBmcm9tIHRoZSBzdHJpbmcsIGJhc2U2NC1qcyBkb2VzIG5vdFxuICBzdHIgPSBzdHJpbmd0cmltKHN0cikucmVwbGFjZShJTlZBTElEX0JBU0U2NF9SRSwgJycpXG4gIC8vIE5vZGUgY29udmVydHMgc3RyaW5ncyB3aXRoIGxlbmd0aCA8IDIgdG8gJydcbiAgaWYgKHN0ci5sZW5ndGggPCAyKSByZXR1cm4gJydcbiAgLy8gTm9kZSBhbGxvd3MgZm9yIG5vbi1wYWRkZWQgYmFzZTY0IHN0cmluZ3MgKG1pc3NpbmcgdHJhaWxpbmcgPT09KSwgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHdoaWxlIChzdHIubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHN0ciA9IHN0ciArICc9J1xuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gc3RyaW5ndHJpbSAoc3RyKSB7XG4gIGlmIChzdHIudHJpbSkgcmV0dXJuIHN0ci50cmltKClcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJylcbn1cblxuZnVuY3Rpb24gdG9IZXggKG4pIHtcbiAgaWYgKG4gPCAxNikgcmV0dXJuICcwJyArIG4udG9TdHJpbmcoMTYpXG4gIHJldHVybiBuLnRvU3RyaW5nKDE2KVxufVxuXG5mdW5jdGlvbiB1dGY4VG9CeXRlcyAoc3RyaW5nLCB1bml0cykge1xuICB1bml0cyA9IHVuaXRzIHx8IEluZmluaXR5XG4gIHZhciBjb2RlUG9pbnRcbiAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGhcbiAgdmFyIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gIHZhciBieXRlcyA9IFtdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoIWxlYWRTdXJyb2dhdGUpIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcbiAgICAgICAgaWYgKGNvZGVQb2ludCA+IDB4REJGRikge1xuICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgdHJhaWxcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXJcbiAgICAgIGNvZGVQb2ludCA9IChsZWFkU3Vycm9nYXRlIC0gMHhEODAwIDw8IDEwIHwgY29kZVBvaW50IC0gMHhEQzAwKSArIDB4MTAwMDBcbiAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgIH1cblxuICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG5cbiAgICAvLyBlbmNvZGUgdXRmOFxuICAgIGlmIChjb2RlUG9pbnQgPCAweDgwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDEpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiB8IDB4QzAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDMpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgfCAweEUwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHgxMiB8IDB4RjAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7XG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIC8vIE5vZGUncyBjb2RlIHNlZW1zIHRvIGJlIGRvaW5nIHRoaXMgYW5kIG5vdCAmIDB4N0YuLlxuICAgIGJ5dGVBcnJheS5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpICYgMHhGRilcbiAgfVxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzIChzdHIsIHVuaXRzKSB7XG4gIHZhciBjLCBoaSwgbG9cbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG5cbiAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSlcbiAgICBoaSA9IGMgPj4gOFxuICAgIGxvID0gYyAlIDI1NlxuICAgIGJ5dGVBcnJheS5wdXNoKGxvKVxuICAgIGJ5dGVBcnJheS5wdXNoKGhpKVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiBiYXNlNjRUb0J5dGVzIChzdHIpIHtcbiAgcmV0dXJuIGJhc2U2NC50b0J5dGVBcnJheShiYXNlNjRjbGVhbihzdHIpKVxufVxuXG5mdW5jdGlvbiBibGl0QnVmZmVyIChzcmMsIGRzdCwgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGlmICgoaSArIG9mZnNldCA+PSBkc3QubGVuZ3RoKSB8fCAoaSA+PSBzcmMubGVuZ3RoKSkgYnJlYWtcbiAgICBkc3RbaSArIG9mZnNldF0gPSBzcmNbaV1cbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiBpc25hbiAodmFsKSB7XG4gIHJldHVybiB2YWwgIT09IHZhbCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXNlbGYtY29tcGFyZVxufVxuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG51bWJlciBpcyBhbiBBU0NJSSBieXRlLlxuICpcbiAqIEBwYXJhbSBieXRlIC0gYSBieXRlXG4gKi9cbmZ1bmN0aW9uIGlzQVNDSUlCeXRlKGJ5dGUpIHtcbiAgICAvKipcbiAgICAgKiBBbiBBU0NJSSBieXRlIGlzIGEgYnl0ZSBpbiB0aGUgcmFuZ2UgMHgwMCAoTlVMKSB0byAweDdGIChERUwpLCBpbmNsdXNpdmUuXG4gICAgICovXG4gICAgcmV0dXJuIGJ5dGUgPj0gMHgwMCAmJiBieXRlIDw9IDB4N0Y7XG59XG5leHBvcnRzLmlzQVNDSUlCeXRlID0gaXNBU0NJSUJ5dGU7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CeXRlLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb3VudCBvZiBieXRlcyBpbiBhIHNlcXVlbmNlLlxuICpcbiAqIEBwYXJhbSBsaXN0IC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGxlbmd0aChsaXN0KSB7XG4gICAgLyoqXG4gICAgICogQSBieXRlIHNlcXVlbmNl4oCZcyBsZW5ndGggaXMgdGhlIG51bWJlciBvZiBieXRlcyBpdCBjb250YWlucy5cbiAgICAgKi9cbiAgICByZXR1cm4gbGlzdC5sZW5ndGg7XG59XG5leHBvcnRzLmxlbmd0aCA9IGxlbmd0aDtcbi8qKlxuICogQ29udmVydHMgZWFjaCBieXRlIHRvIGxvd2VyY2FzZS5cbiAqXG4gKiBAcGFyYW0gbGlzdCAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiBieXRlTG93ZXJjYXNlKGxpc3QpIHtcbiAgICAvKipcbiAgICAgKiBUbyBieXRlLWxvd2VyY2FzZSBhIGJ5dGUgc2VxdWVuY2UsIGluY3JlYXNlIGVhY2ggYnl0ZSBpdCBjb250YWlucywgaW4gdGhlXG4gICAgICogcmFuZ2UgMHg0MSAoQSkgdG8gMHg1QSAoWiksIGluY2x1c2l2ZSwgYnkgMHgyMC5cbiAgICAgKi9cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYyA9IGxpc3RbaV07XG4gICAgICAgIGlmIChjID49IDB4NDEgJiYgYyA8PSAweDVBKSB7XG4gICAgICAgICAgICBsaXN0W2ldID0gYyArIDB4MjA7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnRzLmJ5dGVMb3dlcmNhc2UgPSBieXRlTG93ZXJjYXNlO1xuLyoqXG4gKiBDb252ZXJ0cyBlYWNoIGJ5dGUgdG8gdXBwZXJjYXNlLlxuICpcbiAqIEBwYXJhbSBsaXN0IC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGJ5dGVVcHBlcmNhc2UobGlzdCkge1xuICAgIC8qKlxuICAgICAqIFRvIGJ5dGUtdXBwZXJjYXNlIGEgYnl0ZSBzZXF1ZW5jZSwgc3VidHJhY3QgZWFjaCBieXRlIGl0IGNvbnRhaW5zLCBpbiB0aGVcbiAgICAgKiByYW5nZSAweDYxIChhKSB0byAweDdBICh6KSwgaW5jbHVzaXZlLCBieSAweDIwLlxuICAgICAqL1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjID0gbGlzdFtpXTtcbiAgICAgICAgaWYgKGMgPj0gMHg2MSAmJiBjIDw9IDB4N0EpIHtcbiAgICAgICAgICAgIGxpc3RbaV0gPSBjIC0gMHgyMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuYnl0ZVVwcGVyY2FzZSA9IGJ5dGVVcHBlcmNhc2U7XG4vKipcbiAqIENvbXBhcmVzIHR3byBieXRlIHNlcXVlbmNlcy5cbiAqXG4gKiBAcGFyYW0gbGlzdEEgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqIEBwYXJhbSBsaXN0QiAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiBieXRlQ2FzZUluc2Vuc2l0aXZlTWF0Y2gobGlzdEEsIGxpc3RCKSB7XG4gICAgLyoqXG4gICAgICogQSBieXRlIHNlcXVlbmNlIEEgaXMgYSBieXRlLWNhc2UtaW5zZW5zaXRpdmUgbWF0Y2ggZm9yIGEgYnl0ZSBzZXF1ZW5jZSBCLFxuICAgICAqIGlmIHRoZSBieXRlLWxvd2VyY2FzZSBvZiBBIGlzIHRoZSBieXRlLWxvd2VyY2FzZSBvZiBCLlxuICAgICAqL1xuICAgIGlmIChsaXN0QS5sZW5ndGggIT09IGxpc3RCLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGEgPSBsaXN0QVtpXTtcbiAgICAgICAgbGV0IGIgPSBsaXN0QltpXTtcbiAgICAgICAgaWYgKGEgPj0gMHg0MSAmJiBhIDw9IDB4NUEpXG4gICAgICAgICAgICBhICs9IDB4MjA7XG4gICAgICAgIGlmIChiID49IDB4NDEgJiYgYiA8PSAweDVBKVxuICAgICAgICAgICAgYiArPSAweDIwO1xuICAgICAgICBpZiAoYSAhPT0gYilcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5leHBvcnRzLmJ5dGVDYXNlSW5zZW5zaXRpdmVNYXRjaCA9IGJ5dGVDYXNlSW5zZW5zaXRpdmVNYXRjaDtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBgbGlzdEFgIHN0YXJ0cyB3aXRoIGBsaXN0QmAuXG4gKlxuICogQHBhcmFtIGxpc3RBIC0gYSBieXRlIHNlcXVlbmNlXG4gKiBAcGFyYW0gbGlzdEIgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqL1xuZnVuY3Rpb24gc3RhcnRzV2l0aChsaXN0QSwgbGlzdEIpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgaSBiZSAwLlxuICAgICAqIDIuIFdoaWxlIHRydWU6XG4gICAgICogMi4xLiBMZXQgYUJ5dGUgYmUgdGhlIGl0aCBieXRlIG9mIGEgaWYgaSBpcyBsZXNzIHRoYW4gYeKAmXMgbGVuZ3RoOyBvdGhlcndpc2UgbnVsbC5cbiAgICAgKiAyLjMuIExldCBiQnl0ZSBiZSB0aGUgaXRoIGJ5dGUgb2YgYiBpZiBpIGlzIGxlc3MgdGhhbiBi4oCZcyBsZW5ndGg7IG90aGVyd2lzZSBudWxsLlxuICAgICAqIDIuNC4gSWYgYkJ5dGUgaXMgbnVsbCwgdGhlbiByZXR1cm4gdHJ1ZS5cbiAgICAgKiAyLjUuIFJldHVybiBmYWxzZSBpZiBhQnl0ZSBpcyBub3QgYkJ5dGUuXG4gICAgICogMi42LiBTZXQgaSB0byBpICsgMS5cbiAgICAgKi9cbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKGkgPj0gbGlzdEEubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoaSA+PSBsaXN0Qi5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGxpc3RBW2ldICE9PSBsaXN0QltpXSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaSsrO1xuICAgIH1cbn1cbmV4cG9ydHMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4vKipcbiAqIERldGVybWluZXMgaWYgYGxpc3RBYCBpcyBsZXNzIHRoYW4gYGxpc3RCYC5cbiAqXG4gKiBAcGFyYW0gbGlzdEEgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqIEBwYXJhbSBsaXN0QiAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiBieXRlTGVzc1RoYW4obGlzdEEsIGxpc3RCKSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgYiBzdGFydHMgd2l0aCBhLCB0aGVuIHJldHVybiBmYWxzZS5cbiAgICAgKiAyLiBJZiBhIHN0YXJ0cyB3aXRoIGIsIHRoZW4gcmV0dXJuIHRydWUuXG4gICAgICogMy4gTGV0IG4gYmUgdGhlIHNtYWxsZXN0IGluZGV4IHN1Y2ggdGhhdCB0aGUgbnRoIGJ5dGUgb2YgYSBpcyBkaWZmZXJlbnRcbiAgICAgKiBmcm9tIHRoZSBudGggYnl0ZSBvZiBiLiAoVGhlcmUgaGFzIHRvIGJlIHN1Y2ggYW4gaW5kZXgsIHNpbmNlIG5laXRoZXIgYnl0ZVxuICAgICAqIHNlcXVlbmNlIHN0YXJ0cyB3aXRoIHRoZSBvdGhlci4pXG4gICAgICogNC4gSWYgdGhlIG50aCBieXRlIG9mIGEgaXMgbGVzcyB0aGFuIHRoZSBudGggYnl0ZSBvZiBiLCB0aGVuIHJldHVybiB0cnVlLlxuICAgICAqIDUuIFJldHVybiBmYWxzZS5cbiAgICAgKi9cbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKGkgPj0gbGlzdEEubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoaSA+PSBsaXN0Qi5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgY29uc3QgYSA9IGxpc3RBW2ldO1xuICAgICAgICBjb25zdCBiID0gbGlzdEJbaV07XG4gICAgICAgIGlmIChhIDwgYilcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBlbHNlIGlmIChhID4gYilcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaSsrO1xuICAgIH1cbn1cbmV4cG9ydHMuYnl0ZUxlc3NUaGFuID0gYnl0ZUxlc3NUaGFuO1xuLyoqXG4gKiBEZWNvZGVzIGEgYnl0ZSBzZXF1ZW5jZSBpbnRvIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBsaXN0IC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGlzb21vcnBoaWNEZWNvZGUobGlzdCkge1xuICAgIC8qKlxuICAgICAqIFRvIGlzb21vcnBoaWMgZGVjb2RlIGEgYnl0ZSBzZXF1ZW5jZSBpbnB1dCwgcmV0dXJuIGEgc3RyaW5nIHdob3NlIGxlbmd0aCBpc1xuICAgICAqIGVxdWFsIHRvIGlucHV04oCZcyBsZW5ndGggYW5kIHdob3NlIGNvZGUgcG9pbnRzIGhhdmUgdGhlIHNhbWUgdmFsdWVzIGFzXG4gICAgICogaW5wdXTigJlzIGJ5dGVzLCBpbiB0aGUgc2FtZSBvcmRlci5cbiAgICAgKi9cbiAgICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4ubGlzdCk7XG59XG5leHBvcnRzLmlzb21vcnBoaWNEZWNvZGUgPSBpc29tb3JwaGljRGVjb2RlO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Qnl0ZVNlcXVlbmNlLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgYWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udHJvbGxlciB0aGF0IGFsbG93cyB0byBhYm9ydCBET00gcmVxdWVzdHMuXG4gKi9cbmNsYXNzIEFib3J0Q29udHJvbGxlckltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBBYm9ydENvbnRyb2xsZXJgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IHNpZ25hbCBiZSBhIG5ldyBBYm9ydFNpZ25hbCBvYmplY3QuXG4gICAgICAgICAqIDIuIExldCBjb250cm9sbGVyIGJlIGEgbmV3IEFib3J0Q29udHJvbGxlciBvYmplY3Qgd2hvc2Ugc2lnbmFsIGlzIHNpZ25hbC5cbiAgICAgICAgICogMy4gUmV0dXJuIGNvbnRyb2xsZXIuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9zaWduYWwgPSBhbGdvcml0aG1fMS5jcmVhdGVfYWJvcnRTaWduYWwoKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHNpZ25hbCgpIHsgcmV0dXJuIHRoaXMuX3NpZ25hbDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGFib3J0KCkge1xuICAgICAgICBhbGdvcml0aG1fMS5hYm9ydF9zaWduYWxBYm9ydCh0aGlzLl9zaWduYWwpO1xuICAgIH1cbn1cbmV4cG9ydHMuQWJvcnRDb250cm9sbGVySW1wbCA9IEFib3J0Q29udHJvbGxlckltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BYm9ydENvbnRyb2xsZXJJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRXZlbnRUYXJnZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudFRhcmdldEltcGxcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaWduYWwgb2JqZWN0IHRoYXQgY29tbXVuaWNhdGVzIHdpdGggYSBET00gcmVxdWVzdCBhbmQgYWJvcnRcbiAqIGl0IHRocm91Z2ggYW4gQWJvcnRDb250cm9sbGVyLlxuICovXG5jbGFzcyBBYm9ydFNpZ25hbEltcGwgZXh0ZW5kcyBFdmVudFRhcmdldEltcGxfMS5FdmVudFRhcmdldEltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBBYm9ydFNpZ25hbGAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2Fib3J0ZWRGbGFnID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2Fib3J0QWxnb3JpdGhtcyA9IG5ldyBTZXQoKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGFib3J0ZWQoKSB7IHJldHVybiB0aGlzLl9hYm9ydGVkRmxhZzsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBvbmFib3J0KCkge1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZXZlbnRfZ2V0dGVyRXZlbnRIYW5kbGVySURMQXR0cmlidXRlKHRoaXMsIFwib25hYm9ydFwiKTtcbiAgICB9XG4gICAgc2V0IG9uYWJvcnQodmFsKSB7XG4gICAgICAgIGFsZ29yaXRobV8xLmV2ZW50X3NldHRlckV2ZW50SGFuZGxlcklETEF0dHJpYnV0ZSh0aGlzLCBcIm9uYWJvcnRcIiwgdmFsKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgQWJvcnRTaWduYWxgLlxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IEFib3J0U2lnbmFsSW1wbCgpO1xuICAgIH1cbn1cbmV4cG9ydHMuQWJvcnRTaWduYWxJbXBsID0gQWJvcnRTaWduYWxJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QWJvcnRTaWduYWxJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IE5vZGVJbXBsXzEgPSByZXF1aXJlKFwiLi9Ob2RlSW1wbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbmNvbnN0IFdlYklETEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobS9XZWJJRExBbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXR0cmlidXRlIG9mIGFuIGVsZW1lbnQgbm9kZS5cbiAqL1xuY2xhc3MgQXR0ckltcGwgZXh0ZW5kcyBOb2RlSW1wbF8xLk5vZGVJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgQXR0cmAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGxvY2FsTmFtZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9uYW1lc3BhY2UgPSBudWxsO1xuICAgICAgICB0aGlzLl9uYW1lc3BhY2VQcmVmaXggPSBudWxsO1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5fbG9jYWxOYW1lID0gbG9jYWxOYW1lO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgb3duZXJFbGVtZW50KCkgeyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBuYW1lc3BhY2VVUkkoKSB7IHJldHVybiB0aGlzLl9uYW1lc3BhY2U7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgcHJlZml4KCkgeyByZXR1cm4gdGhpcy5fbmFtZXNwYWNlUHJlZml4OyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGxvY2FsTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2xvY2FsTmFtZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fcXVhbGlmaWVkTmFtZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCB2YWx1ZSgpIHsgcmV0dXJuIHRoaXMuX3ZhbHVlOyB9XG4gICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdmFsdWUgYXR0cmlidXRl4oCZcyBzZXR0ZXIgbXVzdCBzZXQgYW4gZXhpc3RpbmcgYXR0cmlidXRlIHZhbHVlIHdpdGhcbiAgICAgICAgICogY29udGV4dCBvYmplY3QgYW5kIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGFsZ29yaXRobV8xLmF0dHJfc2V0QW5FeGlzdGluZ0F0dHJpYnV0ZVZhbHVlKHRoaXMsIHZhbHVlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcXVhbGlmaWVkIG5hbWUuXG4gICAgICovXG4gICAgZ2V0IF9xdWFsaWZpZWROYW1lKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQW4gYXR0cmlidXRl4oCZcyBxdWFsaWZpZWQgbmFtZSBpcyBpdHMgbG9jYWwgbmFtZSBpZiBpdHMgbmFtZXNwYWNlIHByZWZpeFxuICAgICAgICAgKiBpcyBudWxsLCBhbmQgaXRzIG5hbWVzcGFjZSBwcmVmaXgsIGZvbGxvd2VkIGJ5IFwiOlwiLCBmb2xsb3dlZCBieSBpdHNcbiAgICAgICAgICogbG9jYWwgbmFtZSwgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuICh0aGlzLl9uYW1lc3BhY2VQcmVmaXggIT09IG51bGwgP1xuICAgICAgICAgICAgdGhpcy5fbmFtZXNwYWNlUHJlZml4ICsgJzonICsgdGhpcy5fbG9jYWxOYW1lIDpcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsTmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gYEF0dHJgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAgICAgKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBsb2NhbE5hbWUpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBBdHRySW1wbChsb2NhbE5hbWUpO1xuICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufVxuZXhwb3J0cy5BdHRySW1wbCA9IEF0dHJJbXBsO1xuLyoqXG4gKiBJbml0aWFsaXplIHByb3RvdHlwZSBwcm9wZXJ0aWVzXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChBdHRySW1wbC5wcm90b3R5cGUsIFwiX25vZGVUeXBlXCIsIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5BdHRyaWJ1dGUpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KEF0dHJJbXBsLnByb3RvdHlwZSwgXCJzcGVjaWZpZWRcIiwgdHJ1ZSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BdHRySW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvdXRpbFwiKTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuL2ludGVyZmFjZXNcIik7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IHVybF8xID0gcmVxdWlyZShcInVybFwiKTtcbmxldCBfdmFsaWRhdGlvbkVycm9yQ2FsbGJhY2s7XG4vKipcbiAqIERlZmF1bHQgcG9ydHMgZm9yIGEgc3BlY2lhbCBVUkwgc2NoZW1lLlxuICovXG5jb25zdCBfZGVmYXVsdFBvcnRzID0ge1xuICAgIFwiZnRwXCI6IDIxLFxuICAgIFwiZmlsZVwiOiBudWxsLFxuICAgIFwiaHR0cFwiOiA4MCxcbiAgICBcImh0dHBzXCI6IDQ0MyxcbiAgICBcIndzXCI6IDgwLFxuICAgIFwid3NzXCI6IDQ0M1xufTtcbi8qKlxuICogVGhlIEMwIGNvbnRyb2wgcGVyY2VudC1lbmNvZGUgc2V0IGFyZSB0aGUgQzAgY29udHJvbHMgYW5kIGFsbCBjb2RlIHBvaW50c1xuICogZ3JlYXRlciB0aGFuIFUrMDA3RSAofikuXG4gKi9cbmNvbnN0IF9jMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0ID0gL1tcXDAtXFx4MUZcXHg3Ri1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbi8qKlxuICogVGhlIGZyYWdtZW50IHBlcmNlbnQtZW5jb2RlIHNldCBpcyB0aGUgQzAgY29udHJvbCBwZXJjZW50LWVuY29kZSBzZXQgYW5kXG4gKiBVKzAwMjAgU1BBQ0UsIFUrMDAyMiAoXCIpLCBVKzAwM0MgKDwpLCBVKzAwM0UgKD4pLCBhbmQgVSswMDYwIChgKS5cbiAqL1xuY29uc3QgX2ZyYWdtZW50UGVyY2VudEVuY29kZVNldCA9IC9bIFwiPD5gXXxbXFwwLVxceDFGXFx4N0YtXFx1RDdGRlxcdUUwMDAtXFx1RkZGRl18W1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXFx1RDgwMC1cXHVEQkZGXSg/IVtcXHVEQzAwLVxcdURGRkZdKXwoPzpbXlxcdUQ4MDAtXFx1REJGRl18XilbXFx1REMwMC1cXHVERkZGXS87XG4vKipcbiAqIFRoZSBwYXRoIHBlcmNlbnQtZW5jb2RlIHNldCBpcyB0aGUgZnJhZ21lbnQgcGVyY2VudC1lbmNvZGUgc2V0IGFuZFxuICogVSswMDIzICgjKSwgVSswMDNGICg/KSwgVSswMDdCICh7KSwgYW5kIFUrMDA3RCAofSkuXG4gKi9cbmNvbnN0IF9wYXRoUGVyY2VudEVuY29kZVNldCA9IC9bIFwiPD5gIz97fV18W1xcMC1cXHgxRlxceDdGLVxcdUQ3RkZcXHVFMDAwLVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl18W1xcdUQ4MDAtXFx1REJGRl0oPyFbXFx1REMwMC1cXHVERkZGXSl8KD86W15cXHVEODAwLVxcdURCRkZdfF4pW1xcdURDMDAtXFx1REZGRl0vO1xuLyoqXG4gKiBUaGUgdXNlcmluZm8gcGVyY2VudC1lbmNvZGUgc2V0IGlzIHRoZSBwYXRoIHBlcmNlbnQtZW5jb2RlIHNldCBhbmRcbiAqIFUrMDAyRiAoLyksIFUrMDAzQSAoOiksIFUrMDAzQiAoOyksIFUrMDAzRCAoPSksIFUrMDA0MCAoQCksIFUrMDA1QiAoWyksXG4gKiBVKzAwNUMgKFxcKSwgVSswMDVEIChdKSwgVSswMDVFICheKSwgYW5kIFUrMDA3QyAofCkuXG4gKi9cbmNvbnN0IF91c2VySW5mb1BlcmNlbnRFbmNvZGVTZXQgPSAvWyBcIjw+YCM/e30vOjs9QFxcW1xcXVxcXFxcXF5cXHxdfFtcXDAtXFx4MUZcXHg3Ri1cXHVEN0ZGXFx1RTAwMC1cXHVGRkZGXXxbXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbi8qKlxuICogVGhlIFVSTCBjb2RlIHBvaW50cyBhcmUgQVNDSUkgYWxwaGFudW1lcmljLCBVKzAwMjEgKCEpLCBVKzAwMjQgKCQpLFxuICogVSswMDI2ICgmKSwgVSswMDI3ICgnKSwgVSswMDI4IExFRlQgUEFSRU5USEVTSVMsIFUrMDAyOSBSSUdIVCBQQVJFTlRIRVNJUyxcbiAqIFUrMDAyQSAoKiksIFUrMDAyQiAoKyksIFUrMDAyQyAoLCksIFUrMDAyRCAoLSksIFUrMDAyRSAoLiksIFUrMDAyRiAoLyksXG4gKiBVKzAwM0EgKDopLCBVKzAwM0IgKDspLCBVKzAwM0QgKD0pLCBVKzAwM0YgKD8pLCBVKzAwNDAgKEApLCBVKzAwNUYgKF8pLFxuICogVSswMDdFICh+KSwgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSByYW5nZSBVKzAwQTAgdG8gVSsxMEZGRkQsIGluY2x1c2l2ZSxcbiAqIGV4Y2x1ZGluZyBzdXJyb2dhdGVzIGFuZCBub25jaGFyYWN0ZXJzLlxuICovXG5jb25zdCBfdXJsQ29kZVBvaW50cyA9IC9bMC05QS1aYS16IVxcJCYtXFwvOjs9XFw/QF9+XFx4QTAtXFx1RDdGRlxcdUUwMDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF18W1xcdUQ4MDAtXFx1RDgzRVxcdUQ4NDAtXFx1RDg3RVxcdUQ4ODAtXFx1RDhCRVxcdUQ4QzAtXFx1RDhGRVxcdUQ5MDAtXFx1RDkzRVxcdUQ5NDAtXFx1RDk3RVxcdUQ5ODAtXFx1RDlCRVxcdUQ5QzAtXFx1RDlGRVxcdURBMDAtXFx1REEzRVxcdURBNDAtXFx1REE3RVxcdURBODAtXFx1REFCRVxcdURBQzAtXFx1REFGRVxcdURCMDAtXFx1REIzRVxcdURCNDAtXFx1REI3RVxcdURCODAtXFx1REJCRVxcdURCQzAtXFx1REJGRV1bXFx1REMwMC1cXHVERkZGXXxbXFx1RDgzRlxcdUQ4N0ZcXHVEOEJGXFx1RDhGRlxcdUQ5M0ZcXHVEOTdGXFx1RDlCRlxcdUQ5RkZcXHVEQTNGXFx1REE3RlxcdURBQkZcXHVEQUZGXFx1REIzRlxcdURCN0ZcXHVEQkJGXFx1REJGRl1bXFx1REMwMC1cXHVERkZEXS87XG4vKipcbiAqIEEgZm9yYmlkZGVuIGhvc3QgY29kZSBwb2ludCBpcyBVKzAwMDAgTlVMTCwgVSswMDA5IFRBQiwgVSswMDBBIExGLFxuICogVSswMDBEIENSLCBVKzAwMjAgU1BBQ0UsIFUrMDAyMyAoIyksIFUrMDAyNSAoJSksIFUrMDAyRiAoLyksIFUrMDAzQSAoOiksXG4gKiBVKzAwM0YgKD8pLCBVKzAwNDAgKEApLCBVKzAwNUIgKFspLCBVKzAwNUMgKFxcKSwgb3IgVSswMDVEIChdKS5cbiAqL1xuY29uc3QgX2ZvcmJpZGRlbkhvc3RDb2RlUG9pbnQgPSAvW1xcMFxcdFxcZlxcciAjJS86P0BcXFtcXFxcXFxdXS87XG4vKipcbiAqIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB2YWxpZGF0aW9uIGVycm9ycy5cbiAqXG4gKiBAcGFyYW0gdmFsaWRhdGlvbkVycm9yQ2FsbGJhY2sgLSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGFcbiAqIHZhbGlkYXRpb24gZXJyb3Igb2NjdXJzXG4gKi9cbmZ1bmN0aW9uIHNldFZhbGlkYXRpb25FcnJvckNhbGxiYWNrKHZhbGlkYXRpb25FcnJvckNhbGxiYWNrKSB7XG4gICAgX3ZhbGlkYXRpb25FcnJvckNhbGxiYWNrID0gdmFsaWRhdGlvbkVycm9yQ2FsbGJhY2s7XG59XG5leHBvcnRzLnNldFZhbGlkYXRpb25FcnJvckNhbGxiYWNrID0gc2V0VmFsaWRhdGlvbkVycm9yQ2FsbGJhY2s7XG4vKipcbiAqIEdlbmVyYXRlcyBhIHZhbGlkYXRpb24gZXJyb3IuXG4gKlxuICogQHBhcmFtIG1lc3NhZ2UgLSBlcnJvciBtZXNzYWdlXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRpb25FcnJvcihtZXNzYWdlKSB7XG4gICAgaWYgKF92YWxpZGF0aW9uRXJyb3JDYWxsYmFjayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIF92YWxpZGF0aW9uRXJyb3JDYWxsYmFjay5jYWxsKG51bGwsIFwiVmFsaWRhdGlvbiBFcnJvcjogXCIgKyBtZXNzYWdlKTtcbiAgICB9XG59XG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgVVJMLlxuICovXG5mdW5jdGlvbiBuZXdVUkwoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NoZW1lOiAnJyxcbiAgICAgICAgdXNlcm5hbWU6ICcnLFxuICAgICAgICBwYXNzd29yZDogJycsXG4gICAgICAgIGhvc3Q6IG51bGwsXG4gICAgICAgIHBvcnQ6IG51bGwsXG4gICAgICAgIHBhdGg6IFtdLFxuICAgICAgICBxdWVyeTogbnVsbCxcbiAgICAgICAgZnJhZ21lbnQ6IG51bGwsXG4gICAgICAgIF9jYW5ub3RCZUFCYXNlVVJMRmxhZzogZmFsc2UsXG4gICAgICAgIF9ibG9iVVJMRW50cnk6IG51bGxcbiAgICB9O1xufVxuZXhwb3J0cy5uZXdVUkwgPSBuZXdVUkw7XG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIHNjaGVtZSBpcyBhIHNwZWNpYWwgc2NoZW1lLlxuICpcbiAqIEBwYXJhbSBzY2hlbWUgLSBhIHNjaGVtZVxuICovXG5mdW5jdGlvbiBpc1NwZWNpYWxTY2hlbWUoc2NoZW1lKSB7XG4gICAgcmV0dXJuIChzY2hlbWUgaW4gX2RlZmF1bHRQb3J0cyk7XG59XG5leHBvcnRzLmlzU3BlY2lhbFNjaGVtZSA9IGlzU3BlY2lhbFNjaGVtZTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgVVJMIGhhcyBhIHNwZWNpYWwgc2NoZW1lLlxuICpcbiAqIEBwYXJhbSB1cmwgLSBhbiBVUkxcbiAqL1xuZnVuY3Rpb24gaXNTcGVjaWFsKHVybCkge1xuICAgIHJldHVybiBpc1NwZWNpYWxTY2hlbWUodXJsLnNjaGVtZSk7XG59XG5leHBvcnRzLmlzU3BlY2lhbCA9IGlzU3BlY2lhbDtcbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCBwb3J0IGZvciBhIHNwZWNpYWwgc2NoZW1lLlxuICpcbiAqIEBwYXJhbSBzY2hlbWUgLSBhIHNjaGVtZVxuICovXG5mdW5jdGlvbiBkZWZhdWx0UG9ydChzY2hlbWUpIHtcbiAgICByZXR1cm4gX2RlZmF1bHRQb3J0c1tzY2hlbWVdIHx8IG51bGw7XG59XG5leHBvcnRzLmRlZmF1bHRQb3J0ID0gZGVmYXVsdFBvcnQ7XG4vKipcbiAqIERldGVybWluZXMgaWYgdGhlIFVSTCBoYXMgY3JlZGVudGlhbHMuXG4gKlxuICogQHBhcmFtIHVybCAtIGFuIFVSTFxuICovXG5mdW5jdGlvbiBpbmNsdWRlc0NyZWRlbnRpYWxzKHVybCkge1xuICAgIHJldHVybiB1cmwudXNlcm5hbWUgIT09ICcnIHx8IHVybC5wYXNzd29yZCAhPT0gJyc7XG59XG5leHBvcnRzLmluY2x1ZGVzQ3JlZGVudGlhbHMgPSBpbmNsdWRlc0NyZWRlbnRpYWxzO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGFuIFVSTCBjYW5ub3QgaGF2ZSBjcmVkZW50aWFscy5cbiAqXG4gKiBAcGFyYW0gdXJsIC0gYW4gVVJMXG4gKi9cbmZ1bmN0aW9uIGNhbm5vdEhhdmVBVXNlcm5hbWVQYXNzd29yZFBvcnQodXJsKSB7XG4gICAgLyoqXG4gICAgICogQSBVUkwgY2Fubm90IGhhdmUgYSB1c2VybmFtZS9wYXNzd29yZC9wb3J0IGlmIGl0cyBob3N0IGlzIG51bGwgb3IgdGhlXG4gICAgICogZW1wdHkgc3RyaW5nLCBpdHMgY2Fubm90LWJlLWEtYmFzZS1VUkwgZmxhZyBpcyBzZXQsIG9yIGl0cyBzY2hlbWUgaXNcbiAgICAgKiBcImZpbGVcIi5cbiAgICAgKi9cbiAgICByZXR1cm4gKHVybC5ob3N0ID09PSBudWxsIHx8IHVybC5ob3N0ID09PSBcIlwiIHx8IHVybC5fY2Fubm90QmVBQmFzZVVSTEZsYWcgfHxcbiAgICAgICAgdXJsLnNjaGVtZSA9PT0gXCJmaWxlXCIpO1xufVxuZXhwb3J0cy5jYW5ub3RIYXZlQVVzZXJuYW1lUGFzc3dvcmRQb3J0ID0gY2Fubm90SGF2ZUFVc2VybmFtZVBhc3N3b3JkUG9ydDtcbi8qKlxuICogU2VyaWFsaXplcyBhbiBVUkwgaW50byBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdXJsIC0gYW4gVVJMXG4gKi9cbmZ1bmN0aW9uIHVybFNlcmlhbGl6ZXIodXJsLCBleGNsdWRlRnJhZ21lbnRGbGFnID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgb3V0cHV0IGJlIHVybOKAmXMgc2NoZW1lIGFuZCBVKzAwM0EgKDopIGNvbmNhdGVuYXRlZC5cbiAgICAgKi9cbiAgICBsZXQgb3V0cHV0ID0gdXJsLnNjaGVtZSArICc6JztcbiAgICAvKipcbiAgICAgKiAyLiBJZiB1cmzigJlzIGhvc3QgaXMgbm9uLW51bGw6XG4gICAgICovXG4gICAgaWYgKHVybC5ob3N0ICE9PSBudWxsKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLjEuIEFwcGVuZCBcIi8vXCIgdG8gb3V0cHV0LlxuICAgICAgICAgKi9cbiAgICAgICAgb3V0cHV0ICs9ICcvLyc7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLjIuIElmIHVybCBpbmNsdWRlcyBjcmVkZW50aWFscywgdGhlbjpcbiAgICAgICAgICovXG4gICAgICAgIGlmIChpbmNsdWRlc0NyZWRlbnRpYWxzKHVybCkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi4yLjEuIEFwcGVuZCB1cmzigJlzIHVzZXJuYW1lIHRvIG91dHB1dC5cbiAgICAgICAgICAgICAqIDIuMi4yLiBJZiB1cmzigJlzIHBhc3N3b3JkIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuIGFwcGVuZCBVKzAwM0EgKDopLFxuICAgICAgICAgICAgICogZm9sbG93ZWQgYnkgdXJs4oCZcyBwYXNzd29yZCwgdG8gb3V0cHV0LlxuICAgICAgICAgICAgICogMi4yLjMuIEFwcGVuZCBVKzAwNDAgKEApIHRvIG91dHB1dC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgb3V0cHV0ICs9IHVybC51c2VybmFtZTtcbiAgICAgICAgICAgIGlmICh1cmwucGFzc3dvcmQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9ICc6JyArIHVybC5wYXNzd29yZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dHB1dCArPSAnQCc7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuMy4gQXBwZW5kIHVybOKAmXMgaG9zdCwgc2VyaWFsaXplZCwgdG8gb3V0cHV0LlxuICAgICAgICAgKiAyLjQuIElmIHVybOKAmXMgcG9ydCBpcyBub24tbnVsbCwgYXBwZW5kIFUrMDAzQSAoOikgZm9sbG93ZWQgYnkgdXJs4oCZcyBwb3J0LFxuICAgICAgICAgKiBzZXJpYWxpemVkLCB0byBvdXRwdXQuXG4gICAgICAgICAqL1xuICAgICAgICBvdXRwdXQgKz0gaG9zdFNlcmlhbGl6ZXIodXJsLmhvc3QpO1xuICAgICAgICBpZiAodXJsLnBvcnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIG91dHB1dCArPSAnOicgKyB1cmwucG9ydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIGlmICh1cmwuaG9zdCA9PT0gbnVsbCAmJiB1cmwuc2NoZW1lID09PSBcImZpbGVcIikge1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBpZiB1cmzigJlzIGhvc3QgaXMgbnVsbCBhbmQgdXJs4oCZcyBzY2hlbWUgaXMgXCJmaWxlXCIsIGFwcGVuZCBcIi8vXCIgdG8gb3V0cHV0LlxuICAgICAgICAgKi9cbiAgICAgICAgb3V0cHV0ICs9ICcvLyc7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDQuIElmIHVybOKAmXMgY2Fubm90LWJlLWEtYmFzZS1VUkwgZmxhZyBpcyBzZXQsIGFwcGVuZCB1cmzigJlzIHBhdGhbMF0gdG9cbiAgICAgKiBvdXRwdXQuXG4gICAgICogNS4gT3RoZXJ3aXNlLCB0aGVuIGZvciBlYWNoIHN0cmluZyBpbiB1cmzigJlzIHBhdGgsIGFwcGVuZCBVKzAwMkYgKC8pXG4gICAgICogZm9sbG93ZWQgYnkgdGhlIHN0cmluZyB0byBvdXRwdXQuXG4gICAgICovXG4gICAgaWYgKHVybC5fY2Fubm90QmVBQmFzZVVSTEZsYWcpIHtcbiAgICAgICAgb3V0cHV0ICs9IHVybC5wYXRoWzBdO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBzdHIgb2YgdXJsLnBhdGgpIHtcbiAgICAgICAgICAgIG91dHB1dCArPSAnLycgKyBzdHI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gSWYgdXJs4oCZcyBxdWVyeSBpcyBub24tbnVsbCwgYXBwZW5kIFUrMDAzRiAoPyksIGZvbGxvd2VkIGJ5IHVybOKAmXNcbiAgICAgKiBxdWVyeSwgdG8gb3V0cHV0LlxuICAgICAqIDcuIElmIHRoZSBleGNsdWRlIGZyYWdtZW50IGZsYWcgaXMgdW5zZXQgYW5kIHVybOKAmXMgZnJhZ21lbnQgaXMgbm9uLW51bGwsXG4gICAgICogYXBwZW5kIFUrMDAyMyAoIyksIGZvbGxvd2VkIGJ5IHVybOKAmXMgZnJhZ21lbnQsIHRvIG91dHB1dC5cbiAgICAgKiA4LiBSZXR1cm4gb3V0cHV0LlxuICAgICAqL1xuICAgIGlmICh1cmwucXVlcnkgIT09IG51bGwpIHtcbiAgICAgICAgb3V0cHV0ICs9ICc/JyArIHVybC5xdWVyeTtcbiAgICB9XG4gICAgaWYgKCFleGNsdWRlRnJhZ21lbnRGbGFnICYmIHVybC5mcmFnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICBvdXRwdXQgKz0gJyMnICsgdXJsLmZyYWdtZW50O1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xufVxuZXhwb3J0cy51cmxTZXJpYWxpemVyID0gdXJsU2VyaWFsaXplcjtcbi8qKlxuICogU2VyaWFsaXplcyBhIGhvc3QgaW50byBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaG9zdCAtIGEgaG9zdFxuICovXG5mdW5jdGlvbiBob3N0U2VyaWFsaXplcihob3N0KSB7XG4gICAgLyoqXG4gICAgICogMS4gSWYgaG9zdCBpcyBhbiBJUHY0IGFkZHJlc3MsIHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIElQdjRcbiAgICAgKiBzZXJpYWxpemVyIG9uIGhvc3QuXG4gICAgICogMi4gT3RoZXJ3aXNlLCBpZiBob3N0IGlzIGFuIElQdjYgYWRkcmVzcywgcmV0dXJuIFUrMDA1QiAoWyksIGZvbGxvd2VkXG4gICAgICogYnkgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBJUHY2IHNlcmlhbGl6ZXIgb24gaG9zdCwgZm9sbG93ZWQgYnlcbiAgICAgKiBVKzAwNUQgKF0pLlxuICAgICAqIDMuIE90aGVyd2lzZSwgaG9zdCBpcyBhIGRvbWFpbiwgb3BhcXVlIGhvc3QsIG9yIGVtcHR5IGhvc3QsIHJldHVybiBob3N0LlxuICAgICAqL1xuICAgIGlmICh1dGlsXzEuaXNOdW1iZXIoaG9zdCkpIHtcbiAgICAgICAgcmV0dXJuIGlQdjRTZXJpYWxpemVyKGhvc3QpO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuaXNBcnJheShob3N0KSkge1xuICAgICAgICByZXR1cm4gJ1snICsgaVB2NlNlcmlhbGl6ZXIoaG9zdCkgKyAnXSc7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gaG9zdDtcbiAgICB9XG59XG5leHBvcnRzLmhvc3RTZXJpYWxpemVyID0gaG9zdFNlcmlhbGl6ZXI7XG4vKipcbiAqIFNlcmlhbGl6ZXMgYW4gSVB2NCBhZGRyZXNzIGludG8gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGFkZHJlc3MgIC0gYW4gSVB2NCBhZGRyZXNzXG4gKi9cbmZ1bmN0aW9uIGlQdjRTZXJpYWxpemVyKGFkZHJlc3MpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgb3V0cHV0IGJlIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICogMi4gTGV0IG4gYmUgdGhlIHZhbHVlIG9mIGFkZHJlc3MuXG4gICAgICogMy4gRm9yIGVhY2ggaSBpbiB0aGUgcmFuZ2UgMSB0byA0LCBpbmNsdXNpdmU6XG4gICAgICogMy4xLiBQcmVwZW5kIG4gJSAyNTYsIHNlcmlhbGl6ZWQsIHRvIG91dHB1dC5cbiAgICAgKiAzLjIuIElmIGkgaXMgbm90IDQsIHRoZW4gcHJlcGVuZCBVKzAwMkUgKC4pIHRvIG91dHB1dC5cbiAgICAgKiAzLjMuIFNldCBuIHRvIGZsb29yKG4gLyAyNTYpLlxuICAgICAqIDQuIFJldHVybiBvdXRwdXQuXG4gICAgICovXG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgbGV0IG4gPSBhZGRyZXNzO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IDQ7IGkrKykge1xuICAgICAgICBvdXRwdXQgPSAobiAlIDI1NikudG9TdHJpbmcoKSArIG91dHB1dDtcbiAgICAgICAgaWYgKGkgIT09IDQpIHtcbiAgICAgICAgICAgIG91dHB1dCA9ICcuJyArIG91dHB1dDtcbiAgICAgICAgfVxuICAgICAgICBuID0gTWF0aC5mbG9vcihuIC8gMjU2KTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cbmV4cG9ydHMuaVB2NFNlcmlhbGl6ZXIgPSBpUHY0U2VyaWFsaXplcjtcbi8qKlxuICogU2VyaWFsaXplcyBhbiBJUHY2IGFkZHJlc3MgaW50byBhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gYWRkcmVzcyAgLSBhbiBJUHY2IGFkZHJlc3MgcmVwcmVzZW50ZWQgYXMgYSBsaXN0IG9mIGVpZ2h0IG51bWJlcnNcbiAqL1xuZnVuY3Rpb24gaVB2NlNlcmlhbGl6ZXIoYWRkcmVzcykge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBvdXRwdXQgYmUgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKiAyLiBMZXQgY29tcHJlc3MgYmUgYW4gaW5kZXggdG8gdGhlIGZpcnN0IElQdjYgcGllY2UgaW4gdGhlIGZpcnN0IGxvbmdlc3RcbiAgICAgKiBzZXF1ZW5jZXMgb2YgYWRkcmVzc+KAmXMgSVB2NiBwaWVjZXMgdGhhdCBhcmUgMC5cbiAgICAgKiBJbiAwOmY6MDowOmY6ZjowOjAgaXQgd291bGQgcG9pbnQgdG8gdGhlIHNlY29uZCAwLlxuICAgICAqIDMuIElmIHRoZXJlIGlzIG5vIHNlcXVlbmNlIG9mIGFkZHJlc3PigJlzIElQdjYgcGllY2VzIHRoYXQgYXJlIDAgdGhhdCBpc1xuICAgICAqIGxvbmdlciB0aGFuIDEsIHRoZW4gc2V0IGNvbXByZXNzIHRvIG51bGwuXG4gICAgICovXG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgbGV0IGNvbXByZXNzID0gbnVsbDtcbiAgICBsZXQgbGFzdEluZGV4ID0gLTE7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBsZXQgbGFzdENvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDg7IGkrKykge1xuICAgICAgICBpZiAoYWRkcmVzc1tpXSAhPT0gMClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjb3VudCA9IDE7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IDg7IGorKykge1xuICAgICAgICAgICAgaWYgKGFkZHJlc3Nbal0gIT09IDApXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50ID4gbGFzdENvdW50KSB7XG4gICAgICAgICAgICBsYXN0Q291bnQgPSBjb3VudDtcbiAgICAgICAgICAgIGxhc3RJbmRleCA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxhc3RDb3VudCA+IDEpXG4gICAgICAgIGNvbXByZXNzID0gbGFzdEluZGV4O1xuICAgIC8qKlxuICAgICAqIDQuIExldCBpZ25vcmUwIGJlIGZhbHNlLlxuICAgICAqIDUuIEZvciBlYWNoIHBpZWNlSW5kZXggaW4gdGhlIHJhbmdlIDAgdG8gNywgaW5jbHVzaXZlOlxuICAgICAqL1xuICAgIGxldCBpZ25vcmUwID0gZmFsc2U7XG4gICAgZm9yIChsZXQgcGllY2VJbmRleCA9IDA7IHBpZWNlSW5kZXggPCA4OyBwaWVjZUluZGV4KyspIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuMS4gSWYgaWdub3JlMCBpcyB0cnVlIGFuZCBhZGRyZXNzW3BpZWNlSW5kZXhdIGlzIDAsIHRoZW4gY29udGludWUuXG4gICAgICAgICAqIDUuMi4gT3RoZXJ3aXNlLCBpZiBpZ25vcmUwIGlzIHRydWUsIHNldCBpZ25vcmUwIHRvIGZhbHNlLlxuICAgICAgICAgKiA1LjMuIElmIGNvbXByZXNzIGlzIHBpZWNlSW5kZXgsIHRoZW46XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaWdub3JlMCAmJiBhZGRyZXNzW3BpZWNlSW5kZXhdID09PSAwKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChpZ25vcmUwKVxuICAgICAgICAgICAgaWdub3JlMCA9IGZhbHNlO1xuICAgICAgICBpZiAoY29tcHJlc3MgPT09IHBpZWNlSW5kZXgpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNS4zLjEuIExldCBzZXBhcmF0b3IgYmUgXCI6OlwiIGlmIHBpZWNlSW5kZXggaXMgMCwgYW5kIFUrMDAzQSAoOikgb3RoZXJ3aXNlLlxuICAgICAgICAgICAgICogNS4zLjIuIEFwcGVuZCBzZXBhcmF0b3IgdG8gb3V0cHV0LlxuICAgICAgICAgICAgICogNS4zLjMuIFNldCBpZ25vcmUwIHRvIHRydWUgYW5kIGNvbnRpbnVlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBvdXRwdXQgKz0gKHBpZWNlSW5kZXggPT09IDAgPyAnOjonIDogJzonKTtcbiAgICAgICAgICAgIGlnbm9yZTAgPSB0cnVlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuNC4gQXBwZW5kIGFkZHJlc3NbcGllY2VJbmRleF0sIHJlcHJlc2VudGVkIGFzIHRoZSBzaG9ydGVzdCBwb3NzaWJsZVxuICAgICAgICAgKiBsb3dlcmNhc2UgaGV4YWRlY2ltYWwgbnVtYmVyLCB0byBvdXRwdXQuXG4gICAgICAgICAqIDUuNS4gSWYgcGllY2VJbmRleCBpcyBub3QgNywgdGhlbiBhcHBlbmQgVSswMDNBICg6KSB0byBvdXRwdXQuXG4gICAgICAgICAqL1xuICAgICAgICBvdXRwdXQgKz0gYWRkcmVzc1twaWVjZUluZGV4XS50b1N0cmluZygxNik7XG4gICAgICAgIGlmIChwaWVjZUluZGV4ICE9PSA3KVxuICAgICAgICAgICAgb3V0cHV0ICs9ICc6JztcbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gUmV0dXJuIG91dHB1dC5cbiAgICAgKi9cbiAgICByZXR1cm4gb3V0cHV0O1xufVxuZXhwb3J0cy5pUHY2U2VyaWFsaXplciA9IGlQdjZTZXJpYWxpemVyO1xuLyoqXG4gKiBQYXJzZXMgYW4gVVJMIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBzdHJpbmdcbiAqIEBwYXJhbSBiYXNlVVJMIC0gYmFzZSBVUkxcbiAqIEBwYXJhbSBlbmNvZGluZ092ZXJyaWRlIC0gZW5jb2Rpbmcgb3ZlcnJpZGVcbiAqL1xuZnVuY3Rpb24gdXJsUGFyc2VyKGlucHV0LCBiYXNlVVJMLCBlbmNvZGluZ092ZXJyaWRlKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IHVybCBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIGJhc2ljIFVSTCBwYXJzZXIgb24gaW5wdXQgd2l0aFxuICAgICAqIGJhc2UsIGFuZCBlbmNvZGluZyBvdmVycmlkZSBhcyBwcm92aWRlZC5cbiAgICAgKiAyLiBJZiB1cmwgaXMgZmFpbHVyZSwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICogMy4gSWYgdXJs4oCZcyBzY2hlbWUgaXMgbm90IFwiYmxvYlwiLCByZXR1cm4gdXJsLlxuICAgICAqIDQuIFNldCB1cmzigJlzIGJsb2IgVVJMIGVudHJ5IHRvIHRoZSByZXN1bHQgb2YgcmVzb2x2aW5nIHRoZSBibG9iIFVSTCB1cmwsXG4gICAgICogaWYgdGhhdCBkaWQgbm90IHJldHVybiBmYWlsdXJlLCBhbmQgbnVsbCBvdGhlcndpc2UuXG4gICAgICogNS4gUmV0dXJuIHVybC5cbiAgICAgKi9cbiAgICBjb25zdCB1cmwgPSBiYXNpY1VSTFBhcnNlcihpbnB1dCwgYmFzZVVSTCwgZW5jb2RpbmdPdmVycmlkZSk7XG4gICAgaWYgKHVybCA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHVybC5zY2hlbWUgIT09IFwiYmxvYlwiKVxuICAgICAgICByZXR1cm4gdXJsO1xuICAgIGNvbnN0IGVudHJ5ID0gcmVzb2x2ZUFCbG9iVVJMKHVybCk7XG4gICAgaWYgKGVudHJ5ICE9PSBudWxsKSB7XG4gICAgICAgIHVybC5fYmxvYlVSTEVudHJ5ID0gZW50cnk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB1cmwuX2Jsb2JVUkxFbnRyeSA9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG59XG5leHBvcnRzLnVybFBhcnNlciA9IHVybFBhcnNlcjtcbi8qKlxuICogUGFyc2VzIGFuIFVSTCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGlucHV0IC0gaW5wdXQgc3RyaW5nXG4gKiBAcGFyYW0gYmFzZVVSTCAtIGJhc2UgVVJMXG4gKiBAcGFyYW0gZW5jb2RpbmdPdmVycmlkZSAtIGVuY29kaW5nIG92ZXJyaWRlXG4gKi9cbmZ1bmN0aW9uIGJhc2ljVVJMUGFyc2VyKGlucHV0LCBiYXNlVVJMLCBlbmNvZGluZ092ZXJyaWRlLCB1cmwsIHN0YXRlT3ZlcnJpZGUpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiB1cmwgaXMgbm90IGdpdmVuOlxuICAgICAqIDEuMS4gU2V0IHVybCB0byBhIG5ldyBVUkwuXG4gICAgICogMS4yLiBJZiBpbnB1dCBjb250YWlucyBhbnkgbGVhZGluZyBvciB0cmFpbGluZyBDMCBjb250cm9sIG9yIHNwYWNlLFxuICAgICAqIHZhbGlkYXRpb24gZXJyb3IuXG4gICAgICogMS4zLiBSZW1vdmUgYW55IGxlYWRpbmcgYW5kIHRyYWlsaW5nIEMwIGNvbnRyb2wgb3Igc3BhY2UgZnJvbSBpbnB1dC5cbiAgICAgKi9cbiAgICBpZiAodXJsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXJsID0gbmV3VVJMKCk7XG4gICAgICAgIC8vIGxlYWRpbmdcbiAgICAgICAgY29uc3QgbGVhZGluZ0NvbnRyb2xPclNwYWNlID0gL15bXFx1MDAwMC1cXHUwMDFGXFx1MDAyMF0rLztcbiAgICAgICAgY29uc3QgdHJhaWxpbmdDb250cm9sT3JTcGFjZSA9IC9bXFx1MDAwMC1cXHUwMDFGXFx1MDAyMF0rJC87XG4gICAgICAgIGlmIChsZWFkaW5nQ29udHJvbE9yU3BhY2UudGVzdChpbnB1dCkgfHwgdHJhaWxpbmdDb250cm9sT3JTcGFjZS50ZXN0KGlucHV0KSkge1xuICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW5wdXQgc3RyaW5nIGNvbnRhaW5zIGxlYWRpbmcgb3IgdHJhaWxpbmcgY29udHJvbCBjaGFyYWN0ZXJzIG9yIHNwYWNlLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UobGVhZGluZ0NvbnRyb2xPclNwYWNlLCAnJyk7XG4gICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSh0cmFpbGluZ0NvbnRyb2xPclNwYWNlLCAnJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDIuIElmIGlucHV0IGNvbnRhaW5zIGFueSBBU0NJSSB0YWIgb3IgbmV3bGluZSwgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgKiAzLiBSZW1vdmUgYWxsIEFTQ0lJIHRhYiBvciBuZXdsaW5lIGZyb20gaW5wdXQuXG4gICAgICovXG4gICAgY29uc3QgdGFiT3JOZXdsaW5lID0gL1tcXHUwMDA5XFx1MDAwQVxcdTAwMERdL2c7XG4gICAgaWYgKHRhYk9yTmV3bGluZS50ZXN0KGlucHV0KSkge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnB1dCBzdHJpbmcgY29udGFpbnMgdGFiIG9yIG5ld2xpbmUgY2hhcmFjdGVycy5cIik7XG4gICAgfVxuICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSh0YWJPck5ld2xpbmUsICcnKTtcbiAgICAvKipcbiAgICAgKiA0LiBMZXQgc3RhdGUgYmUgc3RhdGUgb3ZlcnJpZGUgaWYgZ2l2ZW4sIG9yIHNjaGVtZSBzdGFydCBzdGF0ZSBvdGhlcndpc2UuXG4gICAgICogNS4gSWYgYmFzZSBpcyBub3QgZ2l2ZW4sIHNldCBpdCB0byBudWxsLlxuICAgICAqIDYuIExldCBlbmNvZGluZyBiZSBVVEYtOC5cbiAgICAgKiA3LiBJZiBlbmNvZGluZyBvdmVycmlkZSBpcyBnaXZlbiwgc2V0IGVuY29kaW5nIHRvIHRoZSByZXN1bHQgb2YgZ2V0dGluZ1xuICAgICAqIGFuIG91dHB1dCBlbmNvZGluZyBmcm9tIGVuY29kaW5nIG92ZXJyaWRlLlxuICAgICAqL1xuICAgIGxldCBzdGF0ZSA9IChzdGF0ZU92ZXJyaWRlID09PSB1bmRlZmluZWQgPyBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuU2NoZW1lU3RhcnQgOiBzdGF0ZU92ZXJyaWRlKTtcbiAgICBpZiAoYmFzZVVSTCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICBiYXNlVVJMID0gbnVsbDtcbiAgICBsZXQgZW5jb2RpbmcgPSAoZW5jb2RpbmdPdmVycmlkZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIGVuY29kaW5nT3ZlcnJpZGUgPT09IFwicmVwbGFjZW1lbnRcIiB8fCBlbmNvZGluZ092ZXJyaWRlID09PSBcIlVURi0xNkJFXCIgfHxcbiAgICAgICAgZW5jb2RpbmdPdmVycmlkZSA9PT0gXCJVVEYtMTZMRVwiID8gXCJVVEYtOFwiIDogZW5jb2RpbmdPdmVycmlkZSk7XG4gICAgLyoqXG4gICAgICogOC4gTGV0IGJ1ZmZlciBiZSB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIDkuIExldCB0aGUgQCBmbGFnLCBbXSBmbGFnLCBhbmQgcGFzc3dvcmRUb2tlblNlZW5GbGFnIGJlIHVuc2V0LlxuICAgICAqIDEwLiBMZXQgcG9pbnRlciBiZSBhIHBvaW50ZXIgdG8gZmlyc3QgY29kZSBwb2ludCBpbiBpbnB1dC5cbiAgICAgKi9cbiAgICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgICBsZXQgYXRGbGFnID0gZmFsc2U7XG4gICAgbGV0IGFycmF5RmxhZyA9IGZhbHNlO1xuICAgIGxldCBwYXNzd29yZFRva2VuU2VlbkZsYWcgPSBmYWxzZTtcbiAgICBjb25zdCBFT0YgPSBcIlwiO1xuICAgIGNvbnN0IHdhbGtlciA9IG5ldyB1dGlsXzEuU3RyaW5nV2Fsa2VyKGlucHV0KTtcbiAgICAvKipcbiAgICAgKiAxMS4gS2VlcCBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc3RhdGUgbWFjaGluZSBieSBzd2l0Y2hpbmcgb24gc3RhdGUuIElmXG4gICAgICogYWZ0ZXIgYSBydW4gcG9pbnRlciBwb2ludHMgdG8gdGhlIEVPRiBjb2RlIHBvaW50LCBnbyB0byB0aGUgbmV4dCBzdGVwLlxuICAgICAqIE90aGVyd2lzZSwgaW5jcmVhc2UgcG9pbnRlciBieSBvbmUgYW5kIGNvbnRpbnVlIHdpdGggdGhlIHN0YXRlIG1hY2hpbmUuXG4gICAgICovXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuU2NoZW1lU3RhcnQ6XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMS4gSWYgYyBpcyBhbiBBU0NJSSBhbHBoYSwgYXBwZW5kIGMsIGxvd2VyY2FzZWQsIHRvIGJ1ZmZlciwgYW5kIHNldFxuICAgICAgICAgICAgICAgICAqIHN0YXRlIHRvIHNjaGVtZSBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgKiAyLiBPdGhlcndpc2UsIGlmIHN0YXRlIG92ZXJyaWRlIGlzIG5vdCBnaXZlbiwgc2V0IHN0YXRlIHRvIG5vIHNjaGVtZVxuICAgICAgICAgICAgICAgICAqIHN0YXRlLCBhbmQgZGVjcmVhc2UgcG9pbnRlciBieSBvbmUuXG4gICAgICAgICAgICAgICAgICogMy4gT3RoZXJ3aXNlLCB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoaW5mcmFfMS5jb2RlUG9pbnQuQVNDSUlBbHBoYS50ZXN0KHdhbGtlci5jKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSB3YWxrZXIuYygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNjaGVtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGVPdmVycmlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLk5vU2NoZW1lO1xuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlci0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBzY2hlbWUgc3RhcnQgY2hhcmFjdGVyLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuU2NoZW1lOlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEuIElmIGMgaXMgYW4gQVNDSUkgYWxwaGFudW1lcmljLCBVKzAwMkIgKCspLCBVKzAwMkQgKC0pLCBvciBVKzAwMkVcbiAgICAgICAgICAgICAgICAgKiAoLiksIGFwcGVuZCBjLCBsb3dlcmNhc2VkLCB0byBidWZmZXIuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKGluZnJhXzEuY29kZVBvaW50LkFTQ0lJQWxwaGFudW1lcmljLnRlc3Qod2Fsa2VyLmMoKSkgfHxcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLmMoKSA9PT0gJysnIHx8IHdhbGtlci5jKCkgPT09ICctJyB8fCB3YWxrZXIuYygpID09PSAnLicpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyICs9IHdhbGtlci5jKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2Fsa2VyLmMoKSA9PT0gJzonKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLiBPdGhlcndpc2UsIGlmIGMgaXMgVSswMDNBICg6KSwgdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICogMi4xLiBJZiBzdGF0ZSBvdmVycmlkZSBpcyBnaXZlbiwgdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICogMi4xLjEuIElmIHVybOKAmXMgc2NoZW1lIGlzIGEgc3BlY2lhbCBzY2hlbWUgYW5kIGJ1ZmZlciBpcyBub3QgYVxuICAgICAgICAgICAgICAgICAgICAgKiBzcGVjaWFsIHNjaGVtZSwgdGhlbiByZXR1cm4uXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMS4yLiBJZiB1cmzigJlzIHNjaGVtZSBpcyBub3QgYSBzcGVjaWFsIHNjaGVtZSBhbmQgYnVmZmVyIGlzIGFcbiAgICAgICAgICAgICAgICAgICAgICogc3BlY2lhbCBzY2hlbWUsIHRoZW4gcmV0dXJuLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjEuMy4gSWYgdXJsIGluY2x1ZGVzIGNyZWRlbnRpYWxzIG9yIGhhcyBhIG5vbi1udWxsIHBvcnQsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgKiBidWZmZXIgaXMgXCJmaWxlXCIsIHRoZW4gcmV0dXJuLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjEuNC4gSWYgdXJs4oCZcyBzY2hlbWUgaXMgXCJmaWxlXCIgYW5kIGl0cyBob3N0IGlzIGFuIGVtcHR5IGhvc3Qgb3JcbiAgICAgICAgICAgICAgICAgICAgICogbnVsbCwgdGhlbiByZXR1cm4uXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsU2NoZW1lKHVybC5zY2hlbWUpICYmICFpc1NwZWNpYWxTY2hlbWUoYnVmZmVyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1NwZWNpYWxTY2hlbWUodXJsLnNjaGVtZSkgJiYgaXNTcGVjaWFsU2NoZW1lKGJ1ZmZlcikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoaW5jbHVkZXNDcmVkZW50aWFscyh1cmwpIHx8IHVybC5wb3J0ICE9PSBudWxsKSAmJiBidWZmZXIgPT09IFwiZmlsZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsLnNjaGVtZSA9PT0gXCJmaWxlXCIgJiYgKHVybC5ob3N0ID09PSBcIlwiIHx8IHVybC5ob3N0ID09PSBudWxsKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjIuIFNldCB1cmzigJlzIHNjaGVtZSB0byBidWZmZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB1cmwuc2NoZW1lID0gYnVmZmVyO1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4zLiBJZiBzdGF0ZSBvdmVycmlkZSBpcyBnaXZlbiwgdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICogMi4zLjEuIElmIHVybOKAmXMgcG9ydCBpcyB1cmzigJlzIHNjaGVtZeKAmXMgZGVmYXVsdCBwb3J0LCB0aGVuIHNldFxuICAgICAgICAgICAgICAgICAgICAgKiB1cmzigJlzIHBvcnQgdG8gbnVsbC5cbiAgICAgICAgICAgICAgICAgICAgICogMi4zLjIuIFJldHVybi5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwucG9ydCA9PT0gZGVmYXVsdFBvcnQodXJsLnNjaGVtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucG9ydCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjQuIFNldCBidWZmZXIgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmwuc2NoZW1lID09PSBcImZpbGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAyLjUuIElmIHVybOKAmXMgc2NoZW1lIGlzIFwiZmlsZVwiLCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMi41LjEuIElmIHJlbWFpbmluZyBkb2VzIG5vdCBzdGFydCB3aXRoIFwiLy9cIiwgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuNS4yLiBTZXQgc3RhdGUgdG8gZmlsZSBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3YWxrZXIucmVtYWluaW5nKCkuc3RhcnRzV2l0aChcIi8vXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBmaWxlIFVSTCBzY2hlbWUsICcvLycgZXhwZWN0ZWQuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuRmlsZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc1NwZWNpYWwodXJsKSAmJiBiYXNlVVJMICE9PSBudWxsICYmIGJhc2VVUkwuc2NoZW1lID09PSB1cmwuc2NoZW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuNi4gT3RoZXJ3aXNlLCBpZiB1cmwgaXMgc3BlY2lhbCwgYmFzZSBpcyBub24tbnVsbCwgYW5kIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBzY2hlbWUgaXMgZXF1YWwgdG8gdXJs4oCZcyBzY2hlbWUsIHNldCBzdGF0ZSB0byBzcGVjaWFsIHJlbGF0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBvciBhdXRob3JpdHkgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNwZWNpYWxSZWxhdGl2ZU9yQXV0aG9yaXR5O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlzU3BlY2lhbCh1cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuNy4gT3RoZXJ3aXNlLCBpZiB1cmwgaXMgc3BlY2lhbCwgc2V0IHN0YXRlIHRvIHNwZWNpYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGF1dGhvcml0eSBzbGFzaGVzIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5TcGVjaWFsQXV0aG9yaXR5U2xhc2hlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxrZXIucmVtYWluaW5nKCkuc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMi44LiBPdGhlcndpc2UsIGlmIHJlbWFpbmluZyBzdGFydHMgd2l0aCBhbiBVKzAwMkYgKC8pLCBzZXQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHRvIHBhdGggb3IgYXV0aG9yaXR5IHN0YXRlIGFuZCBpbmNyZWFzZSBwb2ludGVyIGJ5IG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aE9yQXV0aG9yaXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMi45LiBPdGhlcndpc2UsIHNldCB1cmzigJlzIGNhbm5vdC1iZS1hLWJhc2UtVVJMIGZsYWcsIGFwcGVuZCBhblxuICAgICAgICAgICAgICAgICAgICAgICAgICogZW1wdHkgc3RyaW5nIHRvIHVybOKAmXMgcGF0aCwgYW5kIHNldCBzdGF0ZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICogY2Fubm90LWJlLWEtYmFzZS1VUkwgcGF0aCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLl9jYW5ub3RCZUFCYXNlVVJMRmxhZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucGF0aC5wdXNoKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuQ2Fubm90QmVBQmFzZVVSTFBhdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGVPdmVycmlkZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAzLiBPdGhlcndpc2UsIGlmIHN0YXRlIG92ZXJyaWRlIGlzIG5vdCBnaXZlbiwgc2V0IGJ1ZmZlciB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICogZW1wdHkgc3RyaW5nLCBzdGF0ZSB0byBubyBzY2hlbWUgc3RhdGUsIGFuZCBzdGFydCBvdmVyIChmcm9tIHRoZVxuICAgICAgICAgICAgICAgICAgICAgKiBmaXJzdCBjb2RlIHBvaW50IGluIGlucHV0KS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLk5vU2NoZW1lO1xuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlciA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDQuIE90aGVyd2lzZSwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLk5vU2NoZW1lOlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEuIElmIGJhc2UgaXMgbnVsbCwgb3IgYmFzZeKAmXMgY2Fubm90LWJlLWEtYmFzZS1VUkwgZmxhZyBpcyBzZXRcbiAgICAgICAgICAgICAgICAgKiBhbmQgYyBpcyBub3QgVSswMDIzICgjKSwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBiYXNl4oCZcyBjYW5ub3QtYmUtYS1iYXNlLVVSTCBmbGFnIGlzIHNldCBhbmRcbiAgICAgICAgICAgICAgICAgKiBjIGlzIFUrMDAyMyAoIyksIHNldCB1cmzigJlzIHNjaGVtZSB0byBiYXNl4oCZcyBzY2hlbWUsIHVybOKAmXMgcGF0aCB0b1xuICAgICAgICAgICAgICAgICAqIGEgY29weSBvZiBiYXNl4oCZcyBwYXRoLCB1cmzigJlzIHF1ZXJ5IHRvIGJhc2XigJlzIHF1ZXJ5LCB1cmzigJlzXG4gICAgICAgICAgICAgICAgICogZnJhZ21lbnQgdG8gdGhlIGVtcHR5IHN0cmluZywgc2V0IHVybOKAmXMgY2Fubm90LWJlLWEtYmFzZS1VUkxcbiAgICAgICAgICAgICAgICAgKiBmbGFnLCBhbmQgc2V0IHN0YXRlIHRvIGZyYWdtZW50IHN0YXRlLlxuICAgICAgICAgICAgICAgICAqIDMuIE90aGVyd2lzZSwgaWYgYmFzZeKAmXMgc2NoZW1lIGlzIG5vdCBcImZpbGVcIiwgc2V0IHN0YXRlIHRvXG4gICAgICAgICAgICAgICAgICogcmVsYXRpdmUgc3RhdGUgYW5kIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqIDQuIE90aGVyd2lzZSwgc2V0IHN0YXRlIHRvIGZpbGUgc3RhdGUgYW5kIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChiYXNlVVJMID09PSBudWxsIHx8IChiYXNlVVJMLl9jYW5ub3RCZUFCYXNlVVJMRmxhZyAmJiB3YWxrZXIuYygpICE9PSAnIycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgaW5wdXQgc3RyaW5nLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJhc2VVUkwuX2Nhbm5vdEJlQUJhc2VVUkxGbGFnICYmIHdhbGtlci5jKCkgPT09ICcjJykge1xuICAgICAgICAgICAgICAgICAgICB1cmwuc2NoZW1lID0gYmFzZVVSTC5zY2hlbWU7XG4gICAgICAgICAgICAgICAgICAgIHVybC5wYXRoID0gaW5mcmFfMS5saXN0LmNsb25lKGJhc2VVUkwucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHVybC5xdWVyeSA9IGJhc2VVUkwucXVlcnk7XG4gICAgICAgICAgICAgICAgICAgIHVybC5mcmFnbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHVybC5fY2Fubm90QmVBQmFzZVVSTEZsYWcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmFzZVVSTC5zY2hlbWUgIT09IFwiZmlsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlci0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuRmlsZTtcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5TcGVjaWFsUmVsYXRpdmVPckF1dGhvcml0eTpcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBjIGlzIFUrMDAyRiAoLykgYW5kIHJlbWFpbmluZyBzdGFydHMgd2l0aCBVKzAwMkYgKC8pLCB0aGVuIHNldFxuICAgICAgICAgICAgICAgICAqIHN0YXRlIHRvIHNwZWNpYWwgYXV0aG9yaXR5IGlnbm9yZSBzbGFzaGVzIHN0YXRlIGFuZCBpbmNyZWFzZVxuICAgICAgICAgICAgICAgICAqIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqIE90aGVyd2lzZSwgdmFsaWRhdGlvbiBlcnJvciwgc2V0IHN0YXRlIHRvIHJlbGF0aXZlIHN0YXRlIGFuZFxuICAgICAgICAgICAgICAgICAqIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSAnLycgJiYgd2Fsa2VyLnJlbWFpbmluZygpLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5TcGVjaWFsQXV0aG9yaXR5SWdub3JlU2xhc2hlcztcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgaW5wdXQgc3RyaW5nLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aE9yQXV0aG9yaXR5OlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGMgaXMgVSswMDJGICgvKSwgdGhlbiBzZXQgc3RhdGUgdG8gYXV0aG9yaXR5IHN0YXRlLlxuICAgICAgICAgICAgICAgICAqIE90aGVyd2lzZSwgc2V0IHN0YXRlIHRvIHBhdGggc3RhdGUsIGFuZCBkZWNyZWFzZSBwb2ludGVyIGJ5IG9uZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkF1dGhvcml0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGg7XG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUmVsYXRpdmU6XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogU2V0IHVybOKAmXMgc2NoZW1lIHRvIGJhc2XigJlzIHNjaGVtZSwgYW5kIHRoZW4sIHN3aXRjaGluZyBvbiBjOlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChiYXNlVVJMID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcGFyc2VyIHN0YXRlLiBCYXNlIFVSTCBpcyBudWxsLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdXJsLnNjaGVtZSA9IGJhc2VVUkwuc2NoZW1lO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAod2Fsa2VyLmMoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEVPRjogLy8gRU9GXG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFNldCB1cmzigJlzIHVzZXJuYW1lIHRvIGJhc2XigJlzIHVzZXJuYW1lLCB1cmzigJlzIHBhc3N3b3JkIHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBwYXNzd29yZCwgdXJs4oCZcyBob3N0IHRvIGJhc2XigJlzIGhvc3QsIHVybOKAmXMgcG9ydCB0byBiYXNl4oCZcyBwb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICogdXJs4oCZcyBwYXRoIHRvIGEgY29weSBvZiBiYXNl4oCZcyBwYXRoLCBhbmQgdXJs4oCZcyBxdWVyeSB0byBiYXNl4oCZc1xuICAgICAgICAgICAgICAgICAgICAgICAgICogcXVlcnkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC51c2VybmFtZSA9IGJhc2VVUkwudXNlcm5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucGFzc3dvcmQgPSBiYXNlVVJMLnBhc3N3b3JkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlVVJMLmhvc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucG9ydCA9IGJhc2VVUkwucG9ydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoID0gaW5mcmFfMS5saXN0LmNsb25lKGJhc2VVUkwucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgPSBiYXNlVVJMLnF1ZXJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJy8nOlxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBTZXQgc3RhdGUgdG8gcmVsYXRpdmUgc2xhc2ggc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlJlbGF0aXZlU2xhc2g7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnPyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFNldCB1cmzigJlzIHVzZXJuYW1lIHRvIGJhc2XigJlzIHVzZXJuYW1lLCB1cmzigJlzIHBhc3N3b3JkIHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBwYXNzd29yZCwgdXJs4oCZcyBob3N0IHRvIGJhc2XigJlzIGhvc3QsIHVybOKAmXMgcG9ydCB0byBiYXNl4oCZcyBwb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICogdXJs4oCZcyBwYXRoIHRvIGEgY29weSBvZiBiYXNl4oCZcyBwYXRoLCB1cmzigJlzIHF1ZXJ5IHRvIHRoZSBlbXB0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICogc3RyaW5nLCBhbmQgc3RhdGUgdG8gcXVlcnkgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC51c2VybmFtZSA9IGJhc2VVUkwudXNlcm5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucGFzc3dvcmQgPSBiYXNlVVJMLnBhc3N3b3JkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlVVJMLmhvc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucG9ydCA9IGJhc2VVUkwucG9ydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoID0gaW5mcmFfMS5saXN0LmNsb25lKGJhc2VVUkwucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUXVlcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnIyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFNldCB1cmzigJlzIHVzZXJuYW1lIHRvIGJhc2XigJlzIHVzZXJuYW1lLCB1cmzigJlzIHBhc3N3b3JkIHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBwYXNzd29yZCwgdXJs4oCZcyBob3N0IHRvIGJhc2XigJlzIGhvc3QsIHVybOKAmXMgcG9ydCB0byBiYXNl4oCZcyBwb3J0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICogdXJs4oCZcyBwYXRoIHRvIGEgY29weSBvZiBiYXNl4oCZcyBwYXRoLCB1cmzigJlzIHF1ZXJ5IHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBxdWVyeSwgdXJs4oCZcyBmcmFnbWVudCB0byB0aGUgZW1wdHkgc3RyaW5nLCBhbmQgc3RhdGUgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGZyYWdtZW50IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwudXNlcm5hbWUgPSBiYXNlVVJMLnVzZXJuYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhc3N3b3JkID0gYmFzZVVSTC5wYXNzd29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gYmFzZVVSTC5ob3N0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBvcnQgPSBiYXNlVVJMLnBvcnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucGF0aCA9IGluZnJhXzEubGlzdC5jbG9uZShiYXNlVVJMLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZVVSTC5xdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5mcmFnbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKSwgdmFsaWRhdGlvbiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHNldCBzdGF0ZSB0byByZWxhdGl2ZSBzbGFzaCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIE90aGVyd2lzZSwgcnVuIHRoZXNlIHN0ZXBzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4gU2V0IHVybOKAmXMgdXNlcm5hbWUgdG8gYmFzZeKAmXMgdXNlcm5hbWUsIHVybOKAmXMgcGFzc3dvcmQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGJhc2XigJlzIHBhc3N3b3JkLCB1cmzigJlzIGhvc3QgdG8gYmFzZeKAmXMgaG9zdCwgdXJs4oCZcyBwb3J0IHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBiYXNl4oCZcyBwb3J0LCB1cmzigJlzIHBhdGggdG8gYSBjb3B5IG9mIGJhc2XigJlzIHBhdGgsIGFuZCB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiByZW1vdmUgdXJs4oCZcyBwYXRo4oCZcyBsYXN0IGl0ZW0sIGlmIGFueS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuIFNldCBzdGF0ZSB0byBwYXRoIHN0YXRlLCBhbmQgZGVjcmVhc2UgcG9pbnRlciBieSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWwodXJsKSAmJiB3YWxrZXIuYygpID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUmVsYXRpdmVTbGFzaDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC51c2VybmFtZSA9IGJhc2VVUkwudXNlcm5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhc3N3b3JkID0gYmFzZVVSTC5wYXNzd29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwuaG9zdCA9IGJhc2VVUkwuaG9zdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucG9ydCA9IGJhc2VVUkwucG9ydDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucGF0aCA9IGluZnJhXzEubGlzdC5jbG9uZShiYXNlVVJMLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwucGF0aC5sZW5ndGggIT09IDApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoLnNwbGljZSh1cmwucGF0aC5sZW5ndGggLSAxLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5QYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5SZWxhdGl2ZVNsYXNoOlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEuIElmIHVybCBpcyBzcGVjaWFsIGFuZCBjIGlzIFUrMDAyRiAoLykgb3IgVSswMDVDIChcXCksIHRoZW46XG4gICAgICAgICAgICAgICAgICogMS4xLiBJZiBjIGlzIFUrMDA1QyAoXFwpLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAqIDEuMi4gU2V0IHN0YXRlIHRvIHNwZWNpYWwgYXV0aG9yaXR5IGlnbm9yZSBzbGFzaGVzIHN0YXRlLlxuICAgICAgICAgICAgICAgICAqIDIuIE90aGVyd2lzZSwgaWYgYyBpcyBVKzAwMkYgKC8pLCB0aGVuIHNldCBzdGF0ZSB0byBhdXRob3JpdHkgc3RhdGUuXG4gICAgICAgICAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBzZXQgdXJs4oCZcyB1c2VybmFtZSB0byBiYXNl4oCZcyB1c2VybmFtZSwgdXJs4oCZcyBwYXNzd29yZFxuICAgICAgICAgICAgICAgICAqIHRvIGJhc2XigJlzIHBhc3N3b3JkLCB1cmzigJlzIGhvc3QgdG8gYmFzZeKAmXMgaG9zdCwgdXJs4oCZcyBwb3J0IHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICogcG9ydCwgc3RhdGUgdG8gcGF0aCBzdGF0ZSwgYW5kIHRoZW4sIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWwodXJsKSAmJiAod2Fsa2VyLmMoKSA9PT0gJy8nIHx8IHdhbGtlci5jKCkgPT09ICdcXFxcJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxrZXIuYygpID09PSAnLycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuQXV0aG9yaXR5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VVUkwgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgcGFyc2VyIHN0YXRlLiBCYXNlIFVSTCBpcyBudWxsLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB1cmwudXNlcm5hbWUgPSBiYXNlVVJMLnVzZXJuYW1lO1xuICAgICAgICAgICAgICAgICAgICB1cmwucGFzc3dvcmQgPSBiYXNlVVJMLnBhc3N3b3JkO1xuICAgICAgICAgICAgICAgICAgICB1cmwuaG9zdCA9IGJhc2VVUkwuaG9zdDtcbiAgICAgICAgICAgICAgICAgICAgdXJsLnBvcnQgPSBiYXNlVVJMLnBvcnQ7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGg7XG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuU3BlY2lhbEF1dGhvcml0eVNsYXNoZXM6XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgYyBpcyBVKzAwMkYgKC8pIGFuZCByZW1haW5pbmcgc3RhcnRzIHdpdGggVSswMDJGICgvKSwgdGhlbiBzZXRcbiAgICAgICAgICAgICAgICAgKiBzdGF0ZSB0byBzcGVjaWFsIGF1dGhvcml0eSBpZ25vcmUgc2xhc2hlcyBzdGF0ZSBhbmQgaW5jcmVhc2VcbiAgICAgICAgICAgICAgICAgKiBwb2ludGVyIGJ5IG9uZS5cbiAgICAgICAgICAgICAgICAgKiBPdGhlcndpc2UsIHZhbGlkYXRpb24gZXJyb3IsIHNldCBzdGF0ZSB0byBzcGVjaWFsIGF1dGhvcml0eSBpZ25vcmVcbiAgICAgICAgICAgICAgICAgKiBzbGFzaGVzIHN0YXRlLCBhbmQgZGVjcmVhc2UgcG9pbnRlciBieSBvbmUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICcvJyAmJiB3YWxrZXIucmVtYWluaW5nKCkuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzO1xuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlcisrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiRXhwZWN0ZWQgJy8vJy5cIik7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzO1xuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlci0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlNwZWNpYWxBdXRob3JpdHlJZ25vcmVTbGFzaGVzOlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGMgaXMgbmVpdGhlciBVKzAwMkYgKC8pIG5vciBVKzAwNUMgKFxcKSwgdGhlbiBzZXQgc3RhdGUgdG9cbiAgICAgICAgICAgICAgICAgKiBhdXRob3JpdHkgc3RhdGUgYW5kIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAqIE90aGVyd2lzZSwgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSAhPT0gJy8nICYmIHdhbGtlci5jKCkgIT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5BdXRob3JpdHk7XG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJVbmV4cGVjdGVkICcvJyBvciAnXFxcXCcuXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkF1dGhvcml0eTpcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAxLiBJZiBjIGlzIFUrMDA0MCAoQCksIHRoZW46XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICdAJykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS4xLiBWYWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgKiAxLjIuIElmIHRoZSBAIGZsYWcgaXMgc2V0LCBwcmVwZW5kIFwiJTQwXCIgdG8gYnVmZmVyLlxuICAgICAgICAgICAgICAgICAgICAgKiAxLjMuIFNldCB0aGUgQCBmbGFnLlxuICAgICAgICAgICAgICAgICAgICAgKiAxLjQuIEZvciBlYWNoIGNvZGVQb2ludCBpbiBidWZmZXI6XG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJVbmV4cGVjdGVkICdAJy5cIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdEZsYWcpXG4gICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSAnJTQwJyArIGJ1ZmZlcjtcbiAgICAgICAgICAgICAgICAgICAgYXRGbGFnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2RlUG9pbnQgb2YgYnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4xLiBJZiBjb2RlUG9pbnQgaXMgVSswMDNBICg6KSBhbmQgcGFzc3dvcmRUb2tlblNlZW5GbGFnIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiB1bnNldCwgdGhlbiBzZXQgcGFzc3dvcmRUb2tlblNlZW5GbGFnIGFuZCBjb250aW51ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4yLiBMZXQgZW5jb2RlZENvZGVQb2ludHMgYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIFVURi04XG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBwZXJjZW50IGVuY29kZSBjb2RlUG9pbnQgdXNpbmcgdGhlIHVzZXJpbmZvIHBlcmNlbnQtZW5jb2RlIHNldC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4zLiBJZiBwYXNzd29yZFRva2VuU2VlbkZsYWcgaXMgc2V0LCB0aGVuIGFwcGVuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICogZW5jb2RlZENvZGVQb2ludHMgdG8gdXJs4oCZcyBwYXNzd29yZC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC40LiBPdGhlcndpc2UsIGFwcGVuZCBlbmNvZGVkQ29kZVBvaW50cyB0byB1cmzigJlzIHVzZXJuYW1lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZVBvaW50ID09PSAnOicgJiYgIXBhc3N3b3JkVG9rZW5TZWVuRmxhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkVG9rZW5TZWVuRmxhZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkQ29kZVBvaW50cyA9IHV0ZjhQZXJjZW50RW5jb2RlKGNvZGVQb2ludCwgX3VzZXJJbmZvUGVyY2VudEVuY29kZVNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFzc3dvcmRUb2tlblNlZW5GbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhc3N3b3JkICs9IGVuY29kZWRDb2RlUG9pbnRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnVzZXJuYW1lICs9IGVuY29kZWRDb2RlUG9pbnRzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAxLjUuIFNldCBidWZmZXIgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGtlci5jKCkgPT09IEVPRiB8fCB3YWxrZXIuYygpID09PSAnLycgfHwgd2Fsa2VyLmMoKSA9PT0gJz8nIHx8IHdhbGtlci5jKCkgPT09ICcjJyB8fFxuICAgICAgICAgICAgICAgICAgICAoaXNTcGVjaWFsKHVybCkgJiYgd2Fsa2VyLmMoKSA9PT0gJ1xcXFwnKSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBvbmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAqIC0gYyBpcyB0aGUgRU9GIGNvZGUgcG9pbnQsIFUrMDAyRiAoLyksIFUrMDAzRiAoPyksIG9yIFUrMDAyMyAoIylcbiAgICAgICAgICAgICAgICAgICAgICogLSB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKVxuICAgICAgICAgICAgICAgICAgICAgKiB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjEuIElmIEAgZmxhZyBpcyBzZXQgYW5kIGJ1ZmZlciBpcyB0aGUgZW1wdHkgc3RyaW5nLCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAqIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICAgICAgICAgICAgICogMi4yLiBEZWNyZWFzZSBwb2ludGVyIGJ5IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gYnVmZmVyIHBsdXNcbiAgICAgICAgICAgICAgICAgICAgICogb25lLCBzZXQgYnVmZmVyIHRvIHRoZSBlbXB0eSBzdHJpbmcsIGFuZCBzZXQgc3RhdGUgdG8gaG9zdCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChhdEZsYWcgJiYgYnVmZmVyID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlciAtPSAoYnVmZmVyLmxlbmd0aCArIDEpO1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5Ib3N0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuIE90aGVyd2lzZSwgYXBwZW5kIGMgdG8gYnVmZmVyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyICs9IHdhbGtlci5jKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuSG9zdDpcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkhvc3RuYW1lOlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICE9PSB1bmRlZmluZWQgJiYgdXJsLnNjaGVtZSA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDEuIElmIHN0YXRlIG92ZXJyaWRlIGlzIGdpdmVuIGFuZCB1cmzigJlzIHNjaGVtZSBpcyBcImZpbGVcIiwgdGhlblxuICAgICAgICAgICAgICAgICAgICAgKiBkZWNyZWFzZSBwb2ludGVyIGJ5IG9uZSBhbmQgc2V0IHN0YXRlIHRvIGZpbGUgaG9zdCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkZpbGVIb3N0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxrZXIuYygpID09PSAnOicgJiYgIWFycmF5RmxhZykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBjIGlzIFUrMDAzQSAoOikgYW5kIHRoZSBbXSBmbGFnIGlzIHVuc2V0LCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjEuIElmIGJ1ZmZlciBpcyB0aGUgZW1wdHkgc3RyaW5nLCB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm5cbiAgICAgICAgICAgICAgICAgICAgICogZmFpbHVyZS5cbiAgICAgICAgICAgICAgICAgICAgICogMi4yLiBMZXQgaG9zdCBiZSB0aGUgcmVzdWx0IG9mIGhvc3QgcGFyc2luZyBidWZmZXIgd2l0aCB1cmwgaXNcbiAgICAgICAgICAgICAgICAgICAgICogbm90IHNwZWNpYWwuXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMy4gSWYgaG9zdCBpcyBmYWlsdXJlLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjQuIFNldCB1cmzigJlzIGhvc3QgdG8gaG9zdCwgYnVmZmVyIHRvIHRoZSBlbXB0eSBzdHJpbmcsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgKiBzdGF0ZSB0byBwb3J0IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjUuIElmIHN0YXRlIG92ZXJyaWRlIGlzIGdpdmVuIGFuZCBzdGF0ZSBvdmVycmlkZSBpcyBob3N0bmFtZVxuICAgICAgICAgICAgICAgICAgICAgKiBzdGF0ZSwgdGhlbiByZXR1cm4uXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBob3N0ID0gaG9zdFBhcnNlcihidWZmZXIsICFpc1NwZWNpYWwodXJsKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChob3N0ID09PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gaG9zdDtcbiAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUG9ydDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlT3ZlcnJpZGUgPT09IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5Ib3N0bmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGtlci5jKCkgPT09IEVPRiB8fCB3YWxrZXIuYygpID09PSAnLycgfHwgd2Fsa2VyLmMoKSA9PT0gJz8nIHx8IHdhbGtlci5jKCkgPT09ICcjJyB8fFxuICAgICAgICAgICAgICAgICAgICAoaXNTcGVjaWFsKHVybCkgJiYgd2Fsa2VyLmMoKSA9PT0gJ1xcXFwnKSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBpZiBvbmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAqIC0gYyBpcyB0aGUgRU9GIGNvZGUgcG9pbnQsIFUrMDAyRiAoLyksIFUrMDAzRiAoPyksIG9yIFUrMDAyMyAoIylcbiAgICAgICAgICAgICAgICAgICAgICogLSB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKVxuICAgICAgICAgICAgICAgICAgICAgKiB0aGVuIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLCBhbmQgdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICogMy4xLiBJZiB1cmwgaXMgc3BlY2lhbCBhbmQgYnVmZmVyIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHZhbGlkYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICogZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKiAzLjIuIE90aGVyd2lzZSwgaWYgc3RhdGUgb3ZlcnJpZGUgaXMgZ2l2ZW4sIGJ1ZmZlciBpcyB0aGUgZW1wdHlcbiAgICAgICAgICAgICAgICAgICAgICogc3RyaW5nLCBhbmQgZWl0aGVyIHVybCBpbmNsdWRlcyBjcmVkZW50aWFscyBvciB1cmzigJlzIHBvcnQgaXNcbiAgICAgICAgICAgICAgICAgICAgICogbm9uLW51bGwsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybi5cbiAgICAgICAgICAgICAgICAgICAgICogMy4zLiBMZXQgaG9zdCBiZSB0aGUgcmVzdWx0IG9mIGhvc3QgcGFyc2luZyBidWZmZXIgd2l0aCB1cmwgaXNcbiAgICAgICAgICAgICAgICAgICAgICogbm90IHNwZWNpYWwuXG4gICAgICAgICAgICAgICAgICAgICAqIDMuNC4gSWYgaG9zdCBpcyBmYWlsdXJlLCB0aGVuIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKiAzLjUuIFNldCB1cmzigJlzIGhvc3QgdG8gaG9zdCwgYnVmZmVyIHRvIHRoZSBlbXB0eSBzdHJpbmcsIGFuZFxuICAgICAgICAgICAgICAgICAgICAgKiBzdGF0ZSB0byBwYXRoIHN0YXJ0IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgKiAzLjYuIElmIHN0YXRlIG92ZXJyaWRlIGlzIGdpdmVuLCB0aGVuIHJldHVybi5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWwodXJsKSAmJiBidWZmZXIgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgaW5wdXQgc3RyaW5nLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCAmJiBidWZmZXIgPT09IFwiXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbmNsdWRlc0NyZWRlbnRpYWxzKHVybCkgfHwgdXJsLnBvcnQgIT09IG51bGwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvc3QgPSBob3N0UGFyc2VyKGJ1ZmZlciwgIWlzU3BlY2lhbCh1cmwpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvc3QgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBob3N0O1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5QYXRoU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDQuIE90aGVyd2lzZTpcbiAgICAgICAgICAgICAgICAgICAgICogNC4xLiBJZiBjIGlzIFUrMDA1QiAoWyksIHRoZW4gc2V0IHRoZSBbXSBmbGFnLlxuICAgICAgICAgICAgICAgICAgICAgKiA0LjIuIElmIGMgaXMgVSswMDVEIChdKSwgdGhlbiB1bnNldCB0aGUgW10gZmxhZy5cbiAgICAgICAgICAgICAgICAgICAgICogNC4zLiBBcHBlbmQgYyB0byBidWZmZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJ1snKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlGbGFnID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICddJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5RmxhZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIgKz0gd2Fsa2VyLmMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5Qb3J0OlxuICAgICAgICAgICAgICAgIGlmIChpbmZyYV8xLmNvZGVQb2ludC5BU0NJSURpZ2l0LnRlc3Qod2Fsa2VyLmMoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDEuIElmIGMgaXMgYW4gQVNDSUkgZGlnaXQsIGFwcGVuZCBjIHRvIGJ1ZmZlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSB3YWxrZXIuYygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh3YWxrZXIuYygpID09PSBFT0YgfHwgd2Fsa2VyLmMoKSA9PT0gJy8nIHx8IHdhbGtlci5jKCkgPT09ICc/JyB8fCB3YWxrZXIuYygpID09PSAnIycgfHxcbiAgICAgICAgICAgICAgICAgICAgKGlzU3BlY2lhbCh1cmwpICYmIHdhbGtlci5jKCkgPT09ICdcXFxcJykgfHwgc3RhdGVPdmVycmlkZSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBvbmUgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAqIC0gYyBpcyB0aGUgRU9GIGNvZGUgcG9pbnQsIFUrMDAyRiAoLyksIFUrMDAzRiAoPyksIG9yIFUrMDAyMyAoIylcbiAgICAgICAgICAgICAgICAgICAgICogLSB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKVxuICAgICAgICAgICAgICAgICAgICAgKiAtIHN0YXRlIG92ZXJyaWRlIGlzIGdpdmVuXG4gICAgICAgICAgICAgICAgICAgICAqIHRoZW46XG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDIuMS4gSWYgYnVmZmVyIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMi4xLjEuIExldCBwb3J0IGJlIHRoZSBtYXRoZW1hdGljYWwgaW50ZWdlciB2YWx1ZSB0aGF0IGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiByZXByZXNlbnRlZCBieSBidWZmZXIgaW4gcmFkaXgtMTAgdXNpbmcgQVNDSUkgZGlnaXRzIGZvciBkaWdpdHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpdGggdmFsdWVzIDAgdGhyb3VnaCA5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMi4xLjIuIElmIHBvcnQgaXMgZ3JlYXRlciB0aGFuIDIqKjE2IOKIkiAxLCB2YWxpZGF0aW9uIGVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICogcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAyLjEuMy4gU2V0IHVybOKAmXMgcG9ydCB0byBudWxsLCBpZiBwb3J0IGlzIHVybOKAmXMgc2NoZW1l4oCZcyBkZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBwb3J0LCBhbmQgdG8gcG9ydCBvdGhlcndpc2UuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAyLjEuNC4gU2V0IGJ1ZmZlciB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmZmVyICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9ydCA9IHBhcnNlSW50KGJ1ZmZlciwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0ID4gTWF0aC5wb3coMiwgMTYpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIHBvcnQgbnVtYmVyLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wb3J0ID0gKHBvcnQgPT09IGRlZmF1bHRQb3J0KHVybC5zY2hlbWUpID8gbnVsbCA6IHBvcnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMi4gSWYgc3RhdGUgb3ZlcnJpZGUgaXMgZ2l2ZW4sIHRoZW4gcmV0dXJuLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjMuIFNldCBzdGF0ZSB0byBwYXRoIHN0YXJ0IHN0YXRlLCBhbmQgZGVjcmVhc2UgcG9pbnRlciBieSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGhTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAzLiBPdGhlcndpc2UsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GaWxlOlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEuIFNldCB1cmzigJlzIHNjaGVtZSB0byBcImZpbGVcIi5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB1cmwuc2NoZW1lID0gXCJmaWxlXCI7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICcvJyB8fCB3YWxrZXIuYygpID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDIuIElmIGMgaXMgVSswMDJGICgvKSBvciBVKzAwNUMgKFxcKSwgdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICogMi4xLiBJZiBjIGlzIFUrMDA1QyAoXFwpLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjIuIFNldCBzdGF0ZSB0byBmaWxlIHNsYXNoIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkZpbGVTbGFzaDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYmFzZVVSTCAhPT0gbnVsbCAmJiBiYXNlVVJMLnNjaGVtZSA9PT0gXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDMuIE90aGVyd2lzZSwgaWYgYmFzZSBpcyBub24tbnVsbCBhbmQgYmFzZeKAmXMgc2NoZW1lIGlzIFwiZmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgKiBzd2l0Y2ggb24gYzpcbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAod2Fsa2VyLmMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFT0Y6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogU2V0IHVybOKAmXMgaG9zdCB0byBiYXNl4oCZcyBob3N0LCB1cmzigJlzIHBhdGggdG8gYSBjb3B5IG9mIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcGF0aCwgYW5kIHVybOKAmXMgcXVlcnkgdG8gYmFzZeKAmXMgcXVlcnkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlVVJMLmhvc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhdGggPSBpbmZyYV8xLmxpc3QuY2xvbmUoYmFzZVVSTC5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgPSBiYXNlVVJMLnF1ZXJ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnPyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogU2V0IHVybOKAmXMgaG9zdCB0byBiYXNl4oCZcyBob3N0LCB1cmzigJlzIHBhdGggdG8gYSBjb3B5IG9mIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcGF0aCwgdXJs4oCZcyBxdWVyeSB0byB0aGUgZW1wdHkgc3RyaW5nLCBhbmQgc3RhdGUgdG8gcXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwuaG9zdCA9IGJhc2VVUkwuaG9zdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucGF0aCA9IGluZnJhXzEubGlzdC5jbG9uZShiYXNlVVJMLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5xdWVyeSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUXVlcnk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTZXQgdXJs4oCZcyBob3N0IHRvIGJhc2XigJlzIGhvc3QsIHVybOKAmXMgcGF0aCB0byBhIGNvcHkgb2YgYmFzZeKAmXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwYXRoLCB1cmzigJlzIHF1ZXJ5IHRvIGJhc2XigJlzIHF1ZXJ5LCB1cmzigJlzIGZyYWdtZW50IHRvIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGVtcHR5IHN0cmluZywgYW5kIHN0YXRlIHRvIGZyYWdtZW50IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gYmFzZVVSTC5ob3N0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoID0gaW5mcmFfMS5saXN0LmNsb25lKGJhc2VVUkwucGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZVVSTC5xdWVyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwuZnJhZ21lbnQgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkZyYWdtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxLiBJZiB0aGUgc3Vic3RyaW5nIGZyb20gcG9pbnRlciBpbiBpbnB1dCBkb2VzIG5vdCBzdGFydFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpdGggYSBXaW5kb3dzIGRyaXZlIGxldHRlciwgdGhlbiBzZXQgdXJs4oCZcyBob3N0IHRvIGJhc2XigJlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaG9zdCwgdXJs4oCZcyBwYXRoIHRvIGEgY29weSBvZiBiYXNl4oCZcyBwYXRoLCBhbmQgdGhlbiBzaG9ydGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdXJs4oCZcyBwYXRoLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gaXMgYSAocGxhdGZvcm0taW5kZXBlbmRlbnQpIFdpbmRvd3MgZHJpdmUgbGV0dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcXVpcmsuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDMuIFNldCBzdGF0ZSB0byBwYXRoIHN0YXRlLCBhbmQgZGVjcmVhc2UgcG9pbnRlciBieSBvbmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdGFydHNXaXRoQVdpbmRvd3NEcml2ZUxldHRlcih3YWxrZXIuc3Vic3RyaW5nKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gYmFzZVVSTC5ob3N0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucGF0aCA9IGluZnJhXzEubGlzdC5jbG9uZShiYXNlVVJMLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGVuKHVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJVbmV4cGVjdGVkIHdpbmRvd3MgZHJpdmUgbGV0dGVyIGluIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDQuIE90aGVyd2lzZSwgc2V0IHN0YXRlIHRvIHBhdGggc3RhdGUsIGFuZCBkZWNyZWFzZSBwb2ludGVyIGJ5XG4gICAgICAgICAgICAgICAgICAgICAqIG9uZS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGg7XG4gICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuRmlsZVNsYXNoOlxuICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSAnLycgfHwgd2Fsa2VyLmMoKSA9PT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAxLiBJZiBjIGlzIFUrMDAyRiAoLykgb3IgVSswMDVDIChcXCksIHRoZW46XG4gICAgICAgICAgICAgICAgICAgICAqIDEuMS4gSWYgYyBpcyBVKzAwNUMgKFxcKSwgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICogMS4yLiBTZXQgc3RhdGUgdG8gZmlsZSBob3N0IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkZpbGVIb3N0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDIuIE90aGVyd2lzZTpcbiAgICAgICAgICAgICAgICAgICAgICogMi4xLiBJZiBiYXNlIGlzIG5vbi1udWxsLCBiYXNl4oCZcyBzY2hlbWUgaXMgXCJmaWxlXCIsIGFuZCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICogc3Vic3RyaW5nIGZyb20gcG9pbnRlciBpbiBpbnB1dCBkb2VzIG5vdCBzdGFydCB3aXRoIGEgV2luZG93c1xuICAgICAgICAgICAgICAgICAgICAgKiBkcml2ZSBsZXR0ZXIsIHRoZW46XG4gICAgICAgICAgICAgICAgICAgICAqIDIuMS4xLiBJZiBiYXNl4oCZcyBwYXRoWzBdIGlzIGEgbm9ybWFsaXplZCBXaW5kb3dzIGRyaXZlIGxldHRlcixcbiAgICAgICAgICAgICAgICAgICAgICogdGhlbiBhcHBlbmQgYmFzZeKAmXMgcGF0aFswXSB0byB1cmzigJlzIHBhdGguXG4gICAgICAgICAgICAgICAgICAgICAqIF9Ob3RlOl8gaXMgYSAocGxhdGZvcm0taW5kZXBlbmRlbnQpIFdpbmRvd3MgZHJpdmUgbGV0dGVyXG4gICAgICAgICAgICAgICAgICAgICAqIHF1aXJrLiBCb3RoIHVybOKAmXMgYW5kIGJhc2XigJlzIGhvc3QgYXJlIG51bGwgdW5kZXIgdGhlc2UgY29uZGl0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgKiBhbmQgdGhlcmVmb3JlIG5vdCBjb3BpZWQuXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMS4yLiBPdGhlcndpc2UsIHNldCB1cmzigJlzIGhvc3QgdG8gYmFzZeKAmXMgaG9zdC5cbiAgICAgICAgICAgICAgICAgICAgICogMi4yLiBTZXQgc3RhdGUgdG8gcGF0aCBzdGF0ZSwgYW5kIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGJhc2VVUkwgIT09IG51bGwgJiYgYmFzZVVSTC5zY2hlbWUgPT09IFwiZmlsZVwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhc3RhcnRzV2l0aEFXaW5kb3dzRHJpdmVMZXR0ZXIod2Fsa2VyLnN1YnN0cmluZygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZFdpbmRvd3NEcml2ZUxldHRlcihiYXNlVVJMLnBhdGhbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhdGgucHVzaChiYXNlVVJMLnBhdGhbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlVVJMLmhvc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GaWxlSG9zdDpcbiAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gRU9GIHx8IHdhbGtlci5jKCkgPT09ICcvJyB8fCB3YWxrZXIuYygpID09PSAnXFxcXCcgfHxcbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLmMoKSA9PT0gJz8nIHx8IHdhbGtlci5jKCkgPT09ICcjJykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS4gSWYgYyBpcyB0aGUgRU9GIGNvZGUgcG9pbnQsIFUrMDAyRiAoLyksIFUrMDA1QyAoXFwpLCBVKzAwM0YgKD8pLFxuICAgICAgICAgICAgICAgICAgICAgKiBvciBVKzAwMjMgKCMpLCB0aGVuIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lIGFuZCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlT3ZlcnJpZGUgPT09IHVuZGVmaW5lZCAmJiBpc1dpbmRvd3NEcml2ZUxldHRlcihidWZmZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuMS4gSWYgc3RhdGUgb3ZlcnJpZGUgaXMgbm90IGdpdmVuIGFuZCBidWZmZXIgaXMgYSBXaW5kb3dzIGRyaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBsZXR0ZXIsIHZhbGlkYXRpb24gZXJyb3IsIHNldCBzdGF0ZSB0byBwYXRoIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICogX05vdGU6XyBpcyBhIChwbGF0Zm9ybS1pbmRlcGVuZGVudCkgV2luZG93cyBkcml2ZSBsZXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHF1aXJrLiBidWZmZXIgaXMgbm90IHJlc2V0IGhlcmUgYW5kIGluc3RlYWQgdXNlZCBpbiB0aGUgcGF0aCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiVW5leHBlY3RlZCB3aW5kb3dzIGRyaXZlIGxldHRlciBpbiBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChidWZmZXIgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4yLiBPdGhlcndpc2UsIGlmIGJ1ZmZlciBpcyB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4yLjEuIFNldCB1cmzigJlzIGhvc3QgdG8gdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuMi4yLiBJZiBzdGF0ZSBvdmVycmlkZSBpcyBnaXZlbiwgdGhlbiByZXR1cm4uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAxLjIuMy4gU2V0IHN0YXRlIHRvIHBhdGggc3RhcnQgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGhTdGFydDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4zLiBPdGhlcndpc2UsIHJ1biB0aGVzZSBzdGVwczpcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuMy4xLiBMZXQgaG9zdCBiZSB0aGUgcmVzdWx0IG9mIGhvc3QgcGFyc2luZyBidWZmZXIgd2l0aCB1cmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGlzIG5vdCBzcGVjaWFsLlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4zLjIuIElmIGhvc3QgaXMgZmFpbHVyZSwgdGhlbiByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuMy4zLiBJZiBob3N0IGlzIFwibG9jYWxob3N0XCIsIHRoZW4gc2V0IGhvc3QgdG8gdGhlIGVtcHR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBzdHJpbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAxLjMuNC4gU2V0IHVybOKAmXMgaG9zdCB0byBob3N0LlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4zLjUuIElmIHN0YXRlIG92ZXJyaWRlIGlzIGdpdmVuLCB0aGVuIHJldHVybi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuMy42LiBTZXQgYnVmZmVyIHRvIHRoZSBlbXB0eSBzdHJpbmcgYW5kIHN0YXRlIHRvIHBhdGggc3RhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaG9zdCA9IGhvc3RQYXJzZXIoYnVmZmVyLCAhaXNTcGVjaWFsKHVybCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhvc3QgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaG9zdCA9PT0gXCJsb2NhbGhvc3RcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5ob3N0ID0gaG9zdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5QYXRoU3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAyLiBPdGhlcndpc2UsIGFwcGVuZCBjIHRvIGJ1ZmZlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSB3YWxrZXIuYygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGhTdGFydDpcbiAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsKHVybCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDEuIElmIHVybCBpcyBzcGVjaWFsLCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgKiAxLjEuIElmIGMgaXMgVSswMDVDIChcXCksIHZhbGlkYXRpb24gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgICAqIDEuMi4gU2V0IHN0YXRlIHRvIHBhdGggc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAqIDEuMy4gSWYgYyBpcyBuZWl0aGVyIFUrMDAyRiAoLykgbm9yIFUrMDA1QyAoXFwpLCB0aGVuIGRlY3JlYXNlXG4gICAgICAgICAgICAgICAgICAgICAqIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlBhdGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpICE9PSAnLycgJiYgd2Fsa2VyLmMoKSAhPT0gJ1xcXFwnKVxuICAgICAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXItLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGVPdmVycmlkZSA9PT0gdW5kZWZpbmVkICYmIHdhbGtlci5jKCkgPT09ICc/Jykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBzdGF0ZSBvdmVycmlkZSBpcyBub3QgZ2l2ZW4gYW5kIGMgaXMgVSswMDNGICg/KSxcbiAgICAgICAgICAgICAgICAgICAgICogc2V0IHVybOKAmXMgcXVlcnkgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3RhdGUgdG8gcXVlcnkgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5RdWVyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGVPdmVycmlkZSA9PT0gdW5kZWZpbmVkICYmIHdhbGtlci5jKCkgPT09ICcjJykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBpZiBzdGF0ZSBvdmVycmlkZSBpcyBub3QgZ2l2ZW4gYW5kIGMgaXMgVSswMDIzICgjKSxcbiAgICAgICAgICAgICAgICAgICAgICogc2V0IHVybOKAmXMgZnJhZ21lbnQgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3RhdGUgdG8gZnJhZ21lbnRcbiAgICAgICAgICAgICAgICAgICAgICogc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB1cmwuZnJhZ21lbnQgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2Fsa2VyLmMoKSAhPT0gRU9GKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiA0LiBPdGhlcndpc2UsIGlmIGMgaXMgbm90IHRoZSBFT0YgY29kZSBwb2ludDpcbiAgICAgICAgICAgICAgICAgICAgICogNC4xLiBTZXQgc3RhdGUgdG8gcGF0aCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICogNC4yLiBJZiBjIGlzIG5vdCBVKzAwMkYgKC8pLCB0aGVuIGRlY3JlYXNlIHBvaW50ZXIgYnkgb25lLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgIT09ICcvJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtlci5wb2ludGVyLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuUGFyc2VyU3RhdGUuUGF0aDpcbiAgICAgICAgICAgICAgICBpZiAoKHdhbGtlci5jKCkgPT09IEVPRiB8fCB3YWxrZXIuYygpID09PSAnLycpIHx8XG4gICAgICAgICAgICAgICAgICAgIChpc1NwZWNpYWwodXJsKSAmJiB3YWxrZXIuYygpID09PSAnXFxcXCcpIHx8XG4gICAgICAgICAgICAgICAgICAgIChzdGF0ZU92ZXJyaWRlID09PSB1bmRlZmluZWQgJiYgKHdhbGtlci5jKCkgPT09ICc/JyB8fCB3YWxrZXIuYygpID09PSAnIycpKSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS4gSWYgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgKiAtIGMgaXMgdGhlIEVPRiBjb2RlIHBvaW50IG9yIFUrMDAyRiAoLylcbiAgICAgICAgICAgICAgICAgICAgICogLSB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKVxuICAgICAgICAgICAgICAgICAgICAgKiAtIHN0YXRlIG92ZXJyaWRlIGlzIG5vdCBnaXZlbiBhbmQgYyBpcyBVKzAwM0YgKD8pIG9yIFUrMDAyMyAoIylcbiAgICAgICAgICAgICAgICAgICAgICogdGhlbjpcbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWwodXJsKSAmJiB3YWxrZXIuYygpID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4xIElmIHVybCBpcyBzcGVjaWFsIGFuZCBjIGlzIFUrMDA1QyAoXFwpLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRG91YmxlRG90UGF0aFNlZ21lbnQoYnVmZmVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAxLjIuIElmIGJ1ZmZlciBpcyBhIGRvdWJsZS1kb3QgcGF0aCBzZWdtZW50LCBzaG9ydGVuIHVybOKAmXMgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCB0aGVuIGlmIG5laXRoZXIgYyBpcyBVKzAwMkYgKC8pLCBub3IgdXJsIGlzIHNwZWNpYWwgYW5kIGMgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFUrMDA1QyAoXFwpLCBhcHBlbmQgdGhlIGVtcHR5IHN0cmluZyB0byB1cmzigJlzIHBhdGguXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ZW4odXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpICE9PSAnLycgJiYgIShpc1NwZWNpYWwodXJsKSAmJiB3YWxrZXIuYygpID09PSAnXFxcXCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhdGgucHVzaChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpc1NpbmdsZURvdFBhdGhTZWdtZW50KGJ1ZmZlcikgJiYgd2Fsa2VyLmMoKSAhPT0gJy8nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhKGlzU3BlY2lhbCh1cmwpICYmIHdhbGtlci5jKCkgPT09ICdcXFxcJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMS4zLiBPdGhlcndpc2UsIGlmIGJ1ZmZlciBpcyBhIHNpbmdsZS1kb3QgcGF0aCBzZWdtZW50IGFuZCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICogbmVpdGhlciBjIGlzIFUrMDAyRiAoLyksIG5vciB1cmwgaXMgc3BlY2lhbCBhbmQgYyBpcyBVKzAwNUMgKFxcKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGFwcGVuZCB0aGUgZW1wdHkgc3RyaW5nIHRvIHVybOKAmXMgcGF0aC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnBhdGgucHVzaChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNTaW5nbGVEb3RQYXRoU2VnbWVudChidWZmZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4gT3RoZXJ3aXNlLCBpZiBidWZmZXIgaXMgbm90IGEgc2luZ2xlLWRvdCBwYXRoIHNlZ21lbnQsIHRoZW46XG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwuc2NoZW1lID09PSBcImZpbGVcIiAmJiB1cmwucGF0aC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1dpbmRvd3NEcml2ZUxldHRlcihidWZmZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMS40LjEuIElmIHVybOKAmXMgc2NoZW1lIGlzIFwiZmlsZVwiLCB1cmzigJlzIHBhdGggaXMgZW1wdHksIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJ1ZmZlciBpcyBhIFdpbmRvd3MgZHJpdmUgbGV0dGVyLCB0aGVuOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4xLjEuIElmIHVybOKAmXMgaG9zdCBpcyBuZWl0aGVyIHRoZSBlbXB0eSBzdHJpbmcgbm9yIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdmFsaWRhdGlvbiBlcnJvciwgc2V0IHVybOKAmXMgaG9zdCB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEuNC4xLjIuIFJlcGxhY2UgdGhlIHNlY29uZCBjb2RlIHBvaW50IGluIGJ1ZmZlciB3aXRoIFUrMDAzQSAoOikuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICogX05vdGU6XyBpcyBhIChwbGF0Zm9ybS1pbmRlcGVuZGVudCkgV2luZG93cyBkcml2ZSBsZXR0ZXIgcXVpcmsuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybC5ob3N0ICE9PSBudWxsICYmIHVybC5ob3N0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgaW5wdXQgc3RyaW5nLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLmhvc3QgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBidWZmZXJDb2RlUG9pbnRzID0gQXJyYXkuZnJvbShidWZmZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlckNvZGVQb2ludHMuc2xpY2UoMCwgMSkgKyAnOicgKyBidWZmZXJDb2RlUG9pbnRzLnNsaWNlKDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAxLjQuMi4gQXBwZW5kIGJ1ZmZlciB0byB1cmzigJlzIHBhdGguXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoLnB1c2goYnVmZmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS41LiBTZXQgYnVmZmVyIHRvIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS42LiBJZiB1cmzigJlzIHNjaGVtZSBpcyBcImZpbGVcIiBhbmQgYyBpcyB0aGUgRU9GIGNvZGUgcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAqIFUrMDAzRiAoPyksIG9yIFUrMDAyMyAoIyksIHRoZW4gd2hpbGUgdXJs4oCZcyBwYXRo4oCZcyBzaXplIGlzXG4gICAgICAgICAgICAgICAgICAgICAqIGdyZWF0ZXIgdGhhbiAxIGFuZCB1cmzigJlzIHBhdGhbMF0gaXMgdGhlIGVtcHR5IHN0cmluZywgdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgICAgICAgKiBlcnJvciwgcmVtb3ZlIHRoZSBmaXJzdCBpdGVtIGZyb20gdXJs4oCZcyBwYXRoLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybC5zY2hlbWUgPT09IFwiZmlsZVwiICYmICh3YWxrZXIuYygpID09PSBFT0YgfHwgd2Fsa2VyLmMoKSA9PT0gJz8nIHx8IHdhbGtlci5jKCkgPT09ICcjJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICh1cmwucGF0aC5sZW5ndGggPiAxICYmIHVybC5wYXRoWzBdID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBpbnB1dCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoLnNwbGljZSgwLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMS43LiBJZiBjIGlzIFUrMDAzRiAoPyksIHRoZW4gc2V0IHVybOKAmXMgcXVlcnkgdG8gdGhlIGVtcHR5IHN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgKiBhbmQgc3RhdGUgdG8gcXVlcnkgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAqIDEuOC4gSWYgYyBpcyBVKzAwMjMgKCMpLCB0aGVuIHNldCB1cmzigJlzIGZyYWdtZW50IHRvIHRoZSBlbXB0eVxuICAgICAgICAgICAgICAgICAgICAgKiBzdHJpbmcgYW5kIHN0YXRlIHRvIGZyYWdtZW50IHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICc/Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnF1ZXJ5ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlF1ZXJ5O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSAnIycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5mcmFnbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDIuIE90aGVyd2lzZSwgcnVuIHRoZXNlIHN0ZXBzOlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjEuIElmIGMgaXMgbm90IGEgVVJMIGNvZGUgcG9pbnQgYW5kIG5vdCBVKzAwMjUgKCUpLCB2YWxpZGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAqIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgKiAyLjIuIElmIGMgaXMgVSswMDI1ICglKSBhbmQgcmVtYWluaW5nIGRvZXMgbm90IHN0YXJ0IHdpdGggdHdvXG4gICAgICAgICAgICAgICAgICAgICAqIEFTQ0lJIGhleCBkaWdpdHMsIHZhbGlkYXRpb24gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgICAqIDIuMy4gVVRGLTggcGVyY2VudCBlbmNvZGUgYyB1c2luZyB0aGUgcGF0aCBwZXJjZW50LWVuY29kZSBzZXQsXG4gICAgICAgICAgICAgICAgICAgICAqIGFuZCBhcHBlbmQgdGhlIHJlc3VsdCB0byBidWZmZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV91cmxDb2RlUG9pbnRzLnRlc3Qod2Fsa2VyLmMoKSkgJiYgd2Fsa2VyLmMoKSAhPT0gJyUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJDaGFyYWN0ZXIgaXMgbm90IGEgVVJMIGNvZGUgcG9pbnQgb3IgYSBwZXJjZW50IGVuY29kZWQgY2hhcmFjdGVyLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJyUnICYmICEvXlswLTlhLWZBLUZdWzAtOWEtZkEtRl0vLnRlc3Qod2Fsa2VyLnJlbWFpbmluZygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiUGVyY2VudCBlbmNvZGVkIGNoYXJhY3RlciBtdXN0IGJlIGZvbGxvd2VkIGJ5IHR3byBoZXggZGlnaXRzLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBidWZmZXIgKz0gdXRmOFBlcmNlbnRFbmNvZGUod2Fsa2VyLmMoKSwgX3BhdGhQZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5DYW5ub3RCZUFCYXNlVVJMUGF0aDpcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAxLiBJZiBjIGlzIFUrMDAzRiAoPyksIHRoZW4gc2V0IHVybOKAmXMgcXVlcnkgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmRcbiAgICAgICAgICAgICAgICAgKiBzdGF0ZSB0byBxdWVyeSBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgKiAyLiBPdGhlcndpc2UsIGlmIGMgaXMgVSswMDIzICgjKSwgdGhlbiBzZXQgdXJs4oCZcyBmcmFnbWVudCB0byB0aGVcbiAgICAgICAgICAgICAgICAgKiBlbXB0eSBzdHJpbmcgYW5kIHN0YXRlIHRvIGZyYWdtZW50IHN0YXRlLlxuICAgICAgICAgICAgICAgICAqIDMuIE90aGVyd2lzZTpcbiAgICAgICAgICAgICAgICAgKiAzLjEuIElmIGMgaXMgbm90IHRoZSBFT0YgY29kZSBwb2ludCwgbm90IGEgVVJMIGNvZGUgcG9pbnQsIGFuZCBub3RcbiAgICAgICAgICAgICAgICAgKiBVKzAwMjUgKCUpLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAqIDMuMi4gSWYgYyBpcyBVKzAwMjUgKCUpIGFuZCByZW1haW5pbmcgZG9lcyBub3Qgc3RhcnQgd2l0aCB0d28gQVNDSUlcbiAgICAgICAgICAgICAgICAgKiBoZXggZGlnaXRzLCB2YWxpZGF0aW9uIGVycm9yLlxuICAgICAgICAgICAgICAgICAqIDMuMy4gSWYgYyBpcyBub3QgdGhlIEVPRiBjb2RlIHBvaW50LCBVVEYtOCBwZXJjZW50IGVuY29kZSBjIHVzaW5nXG4gICAgICAgICAgICAgICAgICogdGhlIEMwIGNvbnRyb2wgcGVyY2VudC1lbmNvZGUgc2V0LCBhbmQgYXBwZW5kIHRoZSByZXN1bHQgdG8gdXJs4oCZc1xuICAgICAgICAgICAgICAgICAqIHBhdGhbMF0uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICc/Jykge1xuICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5RdWVyeTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2Fsa2VyLmMoKSA9PT0gJyMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHVybC5mcmFnbWVudCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlID0gaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLkZyYWdtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhbGtlci5jKCkgIT09IEVPRiAmJiAhX3VybENvZGVQb2ludHMudGVzdCh3YWxrZXIuYygpKSAmJiB3YWxrZXIuYygpICE9PSAnJScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkNoYXJhY3RlciBpcyBub3QgYSBVUkwgY29kZSBwb2ludCBvciBhIHBlcmNlbnQgZW5jb2RlZCBjaGFyYWN0ZXIuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSAnJScgJiYgIS9eWzAtOWEtZkEtRl1bMC05YS1mQS1GXS8udGVzdCh3YWxrZXIucmVtYWluaW5nKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJQZXJjZW50IGVuY29kZWQgY2hhcmFjdGVyIG11c3QgYmUgZm9sbG93ZWQgYnkgdHdvIGhleCBkaWdpdHMuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpICE9PSBFT0YpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybC5wYXRoWzBdICs9IHV0ZjhQZXJjZW50RW5jb2RlKHdhbGtlci5jKCksIF9jMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgaW50ZXJmYWNlc18xLlBhcnNlclN0YXRlLlF1ZXJ5OlxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDEuIElmIGVuY29kaW5nIGlzIG5vdCBVVEYtOCBhbmQgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZVxuICAgICAgICAgICAgICAgICAqIC0gdXJsIGlzIG5vdCBzcGVjaWFsXG4gICAgICAgICAgICAgICAgICogLSB1cmzigJlzIHNjaGVtZSBpcyBcIndzXCIgb3IgXCJ3c3NcIlxuICAgICAgICAgICAgICAgICAqIHRoZW4gc2V0IGVuY29kaW5nIHRvIFVURi04LlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChlbmNvZGluZyAhPT0gXCJVVEYtOFwiICYmICghaXNTcGVjaWFsKHVybCkgfHxcbiAgICAgICAgICAgICAgICAgICAgdXJsLnNjaGVtZSA9PT0gXCJ3c1wiIHx8IHVybC5zY2hlbWUgPT09IFwid3NzXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gXCJVVEYtOFwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSA9PT0gdW5kZWZpbmVkICYmIHdhbGtlci5jKCkgPT09ICcjJykge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4gSWYgc3RhdGUgb3ZlcnJpZGUgaXMgbm90IGdpdmVuIGFuZCBjIGlzIFUrMDAyMyAoIyksIHRoZW4gc2V0XG4gICAgICAgICAgICAgICAgICAgICAqIHVybOKAmXMgZnJhZ21lbnQgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3RhdGUgdG8gZnJhZ21lbnQgc3RhdGUuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB1cmwuZnJhZ21lbnQgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAod2Fsa2VyLmMoKSAhPT0gRU9GKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAzLiBPdGhlcndpc2UsIGlmIGMgaXMgbm90IHRoZSBFT0YgY29kZSBwb2ludDpcbiAgICAgICAgICAgICAgICAgICAgICogMy4xLiBJZiBjIGlzIG5vdCBhIFVSTCBjb2RlIHBvaW50IGFuZCBub3QgVSswMDI1ICglKSwgdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgICAgICAgKiBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmICghX3VybENvZGVQb2ludHMudGVzdCh3YWxrZXIuYygpKSAmJiB3YWxrZXIuYygpICE9PSAnJScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkNoYXJhY3RlciBpcyBub3QgYSBVUkwgY29kZSBwb2ludCBvciBhIHBlcmNlbnQgZW5jb2RlZCBjaGFyYWN0ZXIuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiAzLjIuIElmIGMgaXMgVSswMDI1ICglKSBhbmQgcmVtYWluaW5nIGRvZXMgbm90IHN0YXJ0IHdpdGggdHdvXG4gICAgICAgICAgICAgICAgICAgICAqIEFTQ0lJIGhleCBkaWdpdHMsIHZhbGlkYXRpb24gZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJyUnICYmICEvXlswLTlhLWZBLUZdWzAtOWEtZkEtRl0vLnRlc3Qod2Fsa2VyLnJlbWFpbmluZygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiUGVyY2VudCBlbmNvZGVkIGNoYXJhY3RlciBtdXN0IGJlIGZvbGxvd2VkIGJ5IHR3byBoZXggZGlnaXRzLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy4zLiBMZXQgYnl0ZXMgYmUgdGhlIHJlc3VsdCBvZiBlbmNvZGluZyBjIHVzaW5nIGVuY29kaW5nLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgIT09IFwiVVRGLThcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSBVVEYtOCBlbmNvZGluZyBpcyBzdXBwb3J0ZWQuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxldCBieXRlcyA9IHV0aWxfMS51dGY4RW5jb2RlKHdhbGtlci5jKCkpO1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMy40LiBJZiBieXRlcyBzdGFydHMgd2l0aCBgJiNgIGFuZCBlbmRzIHdpdGggMHgzQiAoOyksIHRoZW46XG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoID49IDMgJiYgYnl0ZXNbMF0gPT09IDM4ICYmIGJ5dGVzWzFdID09PSAzNSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNbYnl0ZXMubGVuZ3RoIC0gMV0gPT09IDU5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIDMuNC4xLiBSZXBsYWNlIGAmI2AgYXQgdGhlIHN0YXJ0IG9mIGJ5dGVzIHdpdGggYCUyNiUyM2AuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAzLjQuMi4gUmVwbGFjZSAweDNCICg7KSBhdCB0aGUgZW5kIG9mIGJ5dGVzIHdpdGggYCUzQmAuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAzLjQuNC4gQXBwZW5kIGJ5dGVzLCBpc29tb3JwaGljIGRlY29kZWQsIHRvIHVybOKAmXMgcXVlcnkuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBfTm90ZTpfIGNhbiBoYXBwZW4gd2hlbiBlbmNvZGluZyBjb2RlIHBvaW50cyB1c2luZyBhXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBub24tVVRGLTggZW5jb2RpbmcuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoMiwgYnl0ZXMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgKz0gXCIlMjYlMjNcIiArIGluZnJhXzEuYnl0ZVNlcXVlbmNlLmlzb21vcnBoaWNEZWNvZGUoYnl0ZXMpICsgXCIlM0JcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMy41LiBPdGhlcndpc2UsIGZvciBlYWNoIGJ5dGUgaW4gYnl0ZXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgKiAzLjUuMS4gSWYgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICogLSBieXRlIGlzIGxlc3MgdGhhbiAweDIxICghKVxuICAgICAgICAgICAgICAgICAgICAgICAgICogLSBieXRlIGlzIGdyZWF0ZXIgdGhhbiAweDdFICh+KVxuICAgICAgICAgICAgICAgICAgICAgICAgICogLSBieXRlIGlzIDB4MjIgKFwiKSwgMHgyMyAoIyksIDB4M0MgKDwpLCBvciAweDNFICg+KVxuICAgICAgICAgICAgICAgICAgICAgICAgICogLSBieXRlIGlzIDB4MjcgKCcpIGFuZCB1cmwgaXMgc3BlY2lhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICogdGhlbiBhcHBlbmQgYnl0ZSwgcGVyY2VudCBlbmNvZGVkLCB0byB1cmzigJlzIHF1ZXJ5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICogMy41LjIuIE90aGVyd2lzZSwgYXBwZW5kIGEgY29kZSBwb2ludCB3aG9zZSB2YWx1ZSBpcyBieXRlIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiB1cmzigJlzIHF1ZXJ5LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJ5dGUgb2YgYnl0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnl0ZSA8IDB4MjEgfHwgYnl0ZSA+IDB4N0UgfHwgYnl0ZSA9PT0gMHgyMiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlID09PSAweDIzIHx8IGJ5dGUgPT09IDB4M0MgfHwgYnl0ZSA9PT0gMHgzRSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSA9PT0gMHgyNyAmJiBpc1NwZWNpYWwodXJsKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLnF1ZXJ5ICs9IHBlcmNlbnRFbmNvZGUoYnl0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwucXVlcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5QYXJzZXJTdGF0ZS5GcmFnbWVudDpcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBTd2l0Y2hpbmcgb24gYzpcbiAgICAgICAgICAgICAgICAgKiAtIFRoZSBFT0YgY29kZSBwb2ludFxuICAgICAgICAgICAgICAgICAqIERvIG5vdGhpbmcuXG4gICAgICAgICAgICAgICAgICogLSBVKzAwMDAgTlVMTFxuICAgICAgICAgICAgICAgICAqIFZhbGlkYXRpb24gZXJyb3IuXG4gICAgICAgICAgICAgICAgICogLSBPdGhlcndpc2VcbiAgICAgICAgICAgICAgICAgKiAxLiBJZiBjIGlzIG5vdCBhIFVSTCBjb2RlIHBvaW50IGFuZCBub3QgVSswMDI1ICglKSwgdmFsaWRhdGlvblxuICAgICAgICAgICAgICAgICAqIGVycm9yLlxuICAgICAgICAgICAgICAgICAqIDIuIElmIGMgaXMgVSswMDI1ICglKSBhbmQgcmVtYWluaW5nIGRvZXMgbm90IHN0YXJ0IHdpdGggdHdvIEFTQ0lJXG4gICAgICAgICAgICAgICAgICogaGV4IGRpZ2l0cywgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgICAgICAgICAgICAgKiAzLiBVVEYtOCBwZXJjZW50IGVuY29kZSBjIHVzaW5nIHRoZSBmcmFnbWVudCBwZXJjZW50LWVuY29kZSBzZXQgYW5kXG4gICAgICAgICAgICAgICAgICogYXBwZW5kIHRoZSByZXN1bHQgdG8gdXJs4oCZcyBmcmFnbWVudC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gRU9GKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHdhbGtlci5jKCkgPT09IFwiXFx1MDAwMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIk5VTEwgY2hhcmFjdGVyIGluIGlucHV0IHN0cmluZy5cIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV91cmxDb2RlUG9pbnRzLnRlc3Qod2Fsa2VyLmMoKSkgJiYgd2Fsa2VyLmMoKSAhPT0gJyUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiBmcmFnbWVudCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSAnJScgJiYgIS9eW0EtWmEtejAtOV1bQS1aYS16MC05XS8udGVzdCh3YWxrZXIucmVtYWluaW5nKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJVbmV4cGVjdGVkIGNoYXJhY3RlciBpbiBmcmFnbWVudCBzdHJpbmcuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHVybC5mcmFnbWVudCArPSB1dGY4UGVyY2VudEVuY29kZSh3YWxrZXIuYygpLCBfZnJhZ21lbnRQZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhbGtlci5lb2YpXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICB9XG4gICAgLyoqXG4gICAgICogMTIuIFJldHVybiB1cmwuXG4gICAgICovXG4gICAgcmV0dXJuIHVybDtcbn1cbmV4cG9ydHMuYmFzaWNVUkxQYXJzZXIgPSBiYXNpY1VSTFBhcnNlcjtcbi8qKlxuICogU2V0cyBhIFVSTCdzIHVzZXJuYW1lLlxuICpcbiAqIEBwYXJhbSB1cmwgLSBhIFVSTFxuICogQHBhcmFtIHVzZXJuYW1lIC0gdXNlcm5hbWUgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIHNldFRoZVVzZXJuYW1lKHVybCwgdXNlcm5hbWUpIHtcbiAgICAvKipcbiAgICAgKiAxLiBTZXQgdXJs4oCZcyB1c2VybmFtZSB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIDIuIEZvciBlYWNoIGNvZGUgcG9pbnQgaW4gdXNlcm5hbWUsIFVURi04IHBlcmNlbnQgZW5jb2RlIGl0IHVzaW5nIHRoZVxuICAgICAqIHVzZXJpbmZvIHBlcmNlbnQtZW5jb2RlIHNldCwgYW5kIGFwcGVuZCB0aGUgcmVzdWx0IHRvIHVybOKAmXMgdXNlcm5hbWUuXG4gICAgICovXG4gICAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBjb2RlUG9pbnQgb2YgdXNlcm5hbWUpIHtcbiAgICAgICAgcmVzdWx0ICs9IHV0ZjhQZXJjZW50RW5jb2RlKGNvZGVQb2ludCwgX3VzZXJJbmZvUGVyY2VudEVuY29kZVNldCk7XG4gICAgfVxuICAgIHVybC51c2VybmFtZSA9IHJlc3VsdDtcbn1cbmV4cG9ydHMuc2V0VGhlVXNlcm5hbWUgPSBzZXRUaGVVc2VybmFtZTtcbi8qKlxuICogU2V0cyBhIFVSTCdzIHBhc3N3b3JkLlxuICpcbiAqIEBwYXJhbSB1cmwgLSBhIFVSTFxuICogQHBhcmFtIHVzZXJuYW1lIC0gcGFzc3dvcmQgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIHNldFRoZVBhc3N3b3JkKHVybCwgcGFzc3dvcmQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBTZXQgdXJs4oCZcyBwYXNzd29yZCB0byB0aGUgZW1wdHkgc3RyaW5nLlxuICAgICAqIDIuIEZvciBlYWNoIGNvZGUgcG9pbnQgaW4gcGFzc3dvcmQsIFVURi04IHBlcmNlbnQgZW5jb2RlIGl0IHVzaW5nIHRoZVxuICAgICAqIHVzZXJpbmZvIHBlcmNlbnQtZW5jb2RlIHNldCwgYW5kIGFwcGVuZCB0aGUgcmVzdWx0IHRvIHVybOKAmXMgcGFzc3dvcmQuXG4gICAgICovXG4gICAgbGV0IHJlc3VsdCA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBjb2RlUG9pbnQgb2YgcGFzc3dvcmQpIHtcbiAgICAgICAgcmVzdWx0ICs9IHV0ZjhQZXJjZW50RW5jb2RlKGNvZGVQb2ludCwgX3VzZXJJbmZvUGVyY2VudEVuY29kZVNldCk7XG4gICAgfVxuICAgIHVybC5wYXNzd29yZCA9IHJlc3VsdDtcbn1cbmV4cG9ydHMuc2V0VGhlUGFzc3dvcmQgPSBzZXRUaGVQYXNzd29yZDtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgc3RyaW5nIHJlcHJlc2VudHMgYSBzaW5nbGUgZG90IHBhdGguXG4gKlxuICogQHBhcmFtIHN0ciAtIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGlzU2luZ2xlRG90UGF0aFNlZ21lbnQoc3RyKSB7XG4gICAgcmV0dXJuIHN0ciA9PT0gJy4nIHx8IHN0ci50b0xvd2VyQ2FzZSgpID09PSBcIiUyZVwiO1xufVxuZXhwb3J0cy5pc1NpbmdsZURvdFBhdGhTZWdtZW50ID0gaXNTaW5nbGVEb3RQYXRoU2VnbWVudDtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgc3RyaW5nIHJlcHJlc2VudHMgYSBkb3VibGUgZG90IHBhdGguXG4gKlxuICogQHBhcmFtIHN0ciAtIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGlzRG91YmxlRG90UGF0aFNlZ21lbnQoc3RyKSB7XG4gICAgY29uc3QgbG93ZXJTdHIgPSBzdHIudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbG93ZXJTdHIgPT09IFwiLi5cIiB8fCBsb3dlclN0ciA9PT0gXCIuJTJlXCIgfHxcbiAgICAgICAgbG93ZXJTdHIgPT09IFwiJTJlLlwiIHx8IGxvd2VyU3RyID09PSBcIiUyZSUyZVwiO1xufVxuZXhwb3J0cy5pc0RvdWJsZURvdFBhdGhTZWdtZW50ID0gaXNEb3VibGVEb3RQYXRoU2VnbWVudDtcbi8qKlxuICogU2hvcnRlbidzIFVSTCdzIHBhdGguXG4gKlxuICogQHBhcmFtIHVybCAtIGFuIFVSTFxuICovXG5mdW5jdGlvbiBzaG9ydGVuKHVybCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBwYXRoIGJlIHVybOKAmXMgcGF0aC5cbiAgICAgKiAyLiBJZiBwYXRoIGlzIGVtcHR5LCB0aGVuIHJldHVybi5cbiAgICAgKiAzLiBJZiB1cmzigJlzIHNjaGVtZSBpcyBcImZpbGVcIiwgcGF0aOKAmXMgc2l6ZSBpcyAxLCBhbmQgcGF0aFswXSBpcyBhXG4gICAgICogbm9ybWFsaXplZCBXaW5kb3dzIGRyaXZlIGxldHRlciwgdGhlbiByZXR1cm4uXG4gICAgICogNC4gUmVtb3ZlIHBhdGjigJlzIGxhc3QgaXRlbS5cbiAgICAgKi9cbiAgICBjb25zdCBwYXRoID0gdXJsLnBhdGg7XG4gICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm47XG4gICAgaWYgKHVybC5zY2hlbWUgPT09IFwiZmlsZVwiICYmIHBhdGgubGVuZ3RoID09PSAxICYmXG4gICAgICAgIGlzTm9ybWFsaXplZFdpbmRvd3NEcml2ZUxldHRlcihwYXRoWzBdKSlcbiAgICAgICAgcmV0dXJuO1xuICAgIHVybC5wYXRoLnNwbGljZSh1cmwucGF0aC5sZW5ndGggLSAxLCAxKTtcbn1cbmV4cG9ydHMuc2hvcnRlbiA9IHNob3J0ZW47XG4vKipcbiAqIERldGVybWluZXMgaWYgYSBzdHJpbmcgaXMgYSBub3JtYWxpemVkIFdpbmRvd3MgZHJpdmUgbGV0dGVyLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBhIHN0cmluZ1xuICovXG5mdW5jdGlvbiBpc05vcm1hbGl6ZWRXaW5kb3dzRHJpdmVMZXR0ZXIoc3RyKSB7XG4gICAgLyoqXG4gICAgICogQSBub3JtYWxpemVkIFdpbmRvd3MgZHJpdmUgbGV0dGVyIGlzIGEgV2luZG93cyBkcml2ZSBsZXR0ZXIgb2Ygd2hpY2ggdGhlXG4gICAgICogc2Vjb25kIGNvZGUgcG9pbnQgaXMgVSswMDNBICg6KS5cbiAgICAgKi9cbiAgICByZXR1cm4gc3RyLmxlbmd0aCA+PSAyICYmIGluZnJhXzEuY29kZVBvaW50LkFTQ0lJQWxwaGEudGVzdChzdHJbMF0pICYmXG4gICAgICAgIHN0clsxXSA9PT0gJzonO1xufVxuZXhwb3J0cy5pc05vcm1hbGl6ZWRXaW5kb3dzRHJpdmVMZXR0ZXIgPSBpc05vcm1hbGl6ZWRXaW5kb3dzRHJpdmVMZXR0ZXI7XG4vKipcbiAqIERldGVybWluZXMgaWYgYSBzdHJpbmcgaXMgYSBXaW5kb3dzIGRyaXZlIGxldHRlci5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gYSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gaXNXaW5kb3dzRHJpdmVMZXR0ZXIoc3RyKSB7XG4gICAgLyoqXG4gICAgICogQSBXaW5kb3dzIGRyaXZlIGxldHRlciBpcyB0d28gY29kZSBwb2ludHMsIG9mIHdoaWNoIHRoZSBmaXJzdCBpcyBhbiBBU0NJSVxuICAgICAqIGFscGhhIGFuZCB0aGUgc2Vjb25kIGlzIGVpdGhlciBVKzAwM0EgKDopIG9yIFUrMDA3QyAofCkuXG4gICAgICovXG4gICAgcmV0dXJuIHN0ci5sZW5ndGggPj0gMiAmJiBpbmZyYV8xLmNvZGVQb2ludC5BU0NJSUFscGhhLnRlc3Qoc3RyWzBdKSAmJlxuICAgICAgICAoc3RyWzFdID09PSAnOicgfHwgc3RyWzFdID09PSAnfCcpO1xufVxuZXhwb3J0cy5pc1dpbmRvd3NEcml2ZUxldHRlciA9IGlzV2luZG93c0RyaXZlTGV0dGVyO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgc3RyaW5nIHN0YXJ0cyB3aXRoIGEgV2luZG93cyBkcml2ZSBsZXR0ZXIuXG4gKlxuICogQHBhcmFtIHN0ciAtIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0c1dpdGhBV2luZG93c0RyaXZlTGV0dGVyKHN0cikge1xuICAgIC8qKlxuICAgICAqIEEgc3RyaW5nIHN0YXJ0cyB3aXRoIGEgV2luZG93cyBkcml2ZSBsZXR0ZXIgaWYgYWxsIG9mIHRoZSBmb2xsb3dpbmcgYXJlXG4gICAgICogdHJ1ZTpcbiAgICAgKiAtIGl0cyBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDJcbiAgICAgKiAtIGl0cyBmaXJzdCB0d28gY29kZSBwb2ludHMgYXJlIGEgV2luZG93cyBkcml2ZSBsZXR0ZXJcbiAgICAgKiAtIGl0cyBsZW5ndGggaXMgMiBvciBpdHMgdGhpcmQgY29kZSBwb2ludCBpcyBVKzAwMkYgKC8pLCBVKzAwNUMgKFxcKSxcbiAgICAgKiBVKzAwM0YgKD8pLCBvciBVKzAwMjMgKCMpLlxuICAgICAqL1xuICAgIHJldHVybiBzdHIubGVuZ3RoID49IDIgJiYgaXNXaW5kb3dzRHJpdmVMZXR0ZXIoc3RyKSAmJlxuICAgICAgICAoc3RyLmxlbmd0aCA9PT0gMiB8fCAoc3RyWzJdID09PSAnLycgfHwgc3RyWzJdID09PSAnXFxcXCcgfHxcbiAgICAgICAgICAgIHN0clsyXSA9PT0gJz8nIHx8IHN0clsyXSA9PT0gJyMnKSk7XG59XG5leHBvcnRzLnN0YXJ0c1dpdGhBV2luZG93c0RyaXZlTGV0dGVyID0gc3RhcnRzV2l0aEFXaW5kb3dzRHJpdmVMZXR0ZXI7XG4vKipcbiAqIFBhcnNlcyBhIGhvc3Qgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBpbnB1dCAtIGlucHV0IHN0cmluZ1xuICogQHBhcmFtIGlzTm90U3BlY2lhbCAtIGB0cnVlYCBpZiB0aGUgc291cmNlIFVSTCBpcyBub3Qgc3BlY2lhbDsgb3RoZXJ3aXNlXG4gKiBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBob3N0UGFyc2VyKGlucHV0LCBpc05vdFNwZWNpYWwgPSBmYWxzZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIGlzTm90U3BlY2lhbCBpcyBub3QgZ2l2ZW4sIHRoZW4gc2V0IGlzTm90U3BlY2lhbCB0byBmYWxzZS5cbiAgICAgKiAyLiBJZiBpbnB1dCBzdGFydHMgd2l0aCBVKzAwNUIgKFspLCB0aGVuOlxuICAgICAqIDIuMS4gSWYgaW5wdXQgZG9lcyBub3QgZW5kIHdpdGggVSswMDVEIChdKSwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuXG4gICAgICogZmFpbHVyZS5cbiAgICAgKiAyLjIuIFJldHVybiB0aGUgcmVzdWx0IG9mIElQdjYgcGFyc2luZyBpbnB1dCB3aXRoIGl0cyBsZWFkaW5nIFUrMDA1QiAoWylcbiAgICAgKiBhbmQgdHJhaWxpbmcgVSswMDVEIChdKSByZW1vdmVkLlxuICAgICAqL1xuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKCdbJykpIHtcbiAgICAgICAgaWYgKCFpbnB1dC5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJFeHBlY3RlZCAnXScgYWZ0ZXIgJ1snLlwiKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpUHY2UGFyc2VyKGlucHV0LnN1YnN0cmluZygxLCBpbnB1dC5sZW5ndGggLSAxKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIElmIGlzTm90U3BlY2lhbCBpcyB0cnVlLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mIG9wYXF1ZS1ob3N0IHBhcnNpbmdcbiAgICAgKiBpbnB1dC5cbiAgICAgKi9cbiAgICBpZiAoaXNOb3RTcGVjaWFsKSB7XG4gICAgICAgIHJldHVybiBvcGFxdWVIb3N0UGFyc2VyKGlucHV0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gTGV0IGRvbWFpbiBiZSB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgVVRGLTggZGVjb2RlIHdpdGhvdXQgQk9NIG9uIHRoZVxuICAgICAqIHN0cmluZyBwZXJjZW50IGRlY29kaW5nIG9mIGlucHV0LlxuICAgICAqIF9Ob3RlOl8gQWx0ZXJuYXRpdmVseSBVVEYtOCBkZWNvZGUgd2l0aG91dCBCT00gb3IgZmFpbCBjYW4gYmUgdXNlZCxcbiAgICAgKiBjb3VwbGVkIHdpdGggYW4gZWFybHkgcmV0dXJuIGZvciBmYWlsdXJlLCBhcyBkb21haW4gdG8gQVNDSUkgZmFpbHNcbiAgICAgKiBvbiBVK0ZGRkQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSLlxuICAgICAqL1xuICAgIGNvbnN0IGRvbWFpbiA9IHV0aWxfMS51dGY4RGVjb2RlKHN0cmluZ1BlcmNlbnREZWNvZGUoaW5wdXQpKTtcbiAgICAvKipcbiAgICAgKiA1LiBMZXQgYXNjaWlEb21haW4gYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGRvbWFpbiB0byBBU0NJSSBvbiBkb21haW4uXG4gICAgICogNi4gSWYgYXNjaWlEb21haW4gaXMgZmFpbHVyZSwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICogNy4gSWYgYXNjaWlEb21haW4gY29udGFpbnMgYSBmb3JiaWRkZW4gaG9zdCBjb2RlIHBvaW50LCB2YWxpZGF0aW9uIGVycm9yLFxuICAgICAqIHJldHVybiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGNvbnN0IGFzY2lpRG9tYWluID0gZG9tYWluVG9BU0NJSShkb21haW4pO1xuICAgIGlmIChhc2NpaURvbWFpbiA9PT0gbnVsbCkge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGRvbWFpbi5cIik7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoX2ZvcmJpZGRlbkhvc3RDb2RlUG9pbnQudGVzdChhc2NpaURvbWFpbikpIHtcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBkb21haW4uXCIpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogOC4gTGV0IGlwdjRIb3N0IGJlIHRoZSByZXN1bHQgb2YgSVB2NCBwYXJzaW5nIGFzY2lpRG9tYWluLlxuICAgICAqIDkuIElmIGlwdjRIb3N0IGlzIGFuIElQdjQgYWRkcmVzcyBvciBmYWlsdXJlLCByZXR1cm4gaXB2NEhvc3QuXG4gICAgICogMTAuIFJldHVybiBhc2NpaURvbWFpbi5cbiAgICAgKi9cbiAgICBjb25zdCBpcHY0SG9zdCA9IGlQdjRQYXJzZXIoYXNjaWlEb21haW4pO1xuICAgIGlmIChpcHY0SG9zdCA9PT0gbnVsbCB8fCB1dGlsXzEuaXNOdW1iZXIoaXB2NEhvc3QpKVxuICAgICAgICByZXR1cm4gaXB2NEhvc3Q7XG4gICAgcmV0dXJuIGFzY2lpRG9tYWluO1xufVxuZXhwb3J0cy5ob3N0UGFyc2VyID0gaG9zdFBhcnNlcjtcbi8qKlxuICogUGFyc2VzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYW4gSVAgdjQgYWRkcmVzcy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBzdHJpbmdcbiAqIEBwYXJhbSBpc05vdFNwZWNpYWwgLSBgdHJ1ZWAgaWYgdGhlIHNvdXJjZSBVUkwgaXMgbm90IHNwZWNpYWw7IG90aGVyd2lzZVxuICogYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaVB2NE51bWJlclBhcnNlcihpbnB1dCwgdmFsaWRhdGlvbkVycm9yRmxhZyA9IHsgdmFsdWU6IGZhbHNlIH0pIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgUiBiZSAxMC5cbiAgICAgKi9cbiAgICBsZXQgUiA9IDEwO1xuICAgIGlmIChpbnB1dC5zdGFydHNXaXRoKFwiMHhcIikgfHwgaW5wdXQuc3RhcnRzV2l0aChcIjBYXCIpKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiBpbnB1dCBjb250YWlucyBhdCBsZWFzdCB0d28gY29kZSBwb2ludHMgYW5kIHRoZSBmaXJzdCB0d28gY29kZVxuICAgICAgICAgKiBwb2ludHMgYXJlIGVpdGhlciBcIjB4XCIgb3IgXCIwWFwiLCB0aGVuOlxuICAgICAgICAgKiAyLjEuIFNldCB2YWxpZGF0aW9uRXJyb3JGbGFnLlxuICAgICAgICAgKiAyLjIuIFJlbW92ZSB0aGUgZmlyc3QgdHdvIGNvZGUgcG9pbnRzIGZyb20gaW5wdXQuXG4gICAgICAgICAqIDIuMy4gU2V0IFIgdG8gMTYuXG4gICAgICAgICAqL1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3JGbGFnLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgaW5wdXQgPSBpbnB1dC5zdWJzdHIoMik7XG4gICAgICAgIFIgPSAxNjtcbiAgICB9XG4gICAgZWxzZSBpZiAoaW5wdXQubGVuZ3RoID49IDIgJiYgaW5wdXRbMF0gPT09ICcwJykge1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gT3RoZXJ3aXNlLCBpZiBpbnB1dCBjb250YWlucyBhdCBsZWFzdCB0d28gY29kZSBwb2ludHMgYW5kIHRoZSBmaXJzdFxuICAgICAgICAgKiBjb2RlIHBvaW50IGlzIFUrMDAzMCAoMCksIHRoZW46XG4gICAgICAgICAqIDMuMS4gU2V0IHZhbGlkYXRpb25FcnJvckZsYWcuXG4gICAgICAgICAqIDMuMi4gUmVtb3ZlIHRoZSBmaXJzdCBjb2RlIHBvaW50IGZyb20gaW5wdXQuXG4gICAgICAgICAqIDMuMy4gU2V0IFIgdG8gOC5cbiAgICAgICAgICovXG4gICAgICAgIHZhbGlkYXRpb25FcnJvckZsYWcudmFsdWUgPSB0cnVlO1xuICAgICAgICBpbnB1dCA9IGlucHV0LnN1YnN0cigxKTtcbiAgICAgICAgUiA9IDg7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDQuIElmIGlucHV0IGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gcmV0dXJuIHplcm8uXG4gICAgICogNS4gSWYgaW5wdXQgY29udGFpbnMgYSBjb2RlIHBvaW50IHRoYXQgaXMgbm90IGEgcmFkaXgtUiBkaWdpdCwgdGhlblxuICAgICAqIHJldHVybiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGlmIChpbnB1dCA9PT0gXCJcIilcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgY29uc3QgcmFkaXhSRGlnaXRzID0gKFIgPT09IDEwID8gL15bMC05XSskLyA6IChSID09PSAxNiA/IC9eWzAtOUEtRmEtZl0rJC8gOiAvXlswLTddKyQvKSk7XG4gICAgaWYgKCFyYWRpeFJEaWdpdHMudGVzdChpbnB1dCkpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIC8qKlxuICAgICAqIDYuIFJldHVybiB0aGUgbWF0aGVtYXRpY2FsIGludGVnZXIgdmFsdWUgdGhhdCBpcyByZXByZXNlbnRlZCBieSBpbnB1dCBpblxuICAgICAqIHJhZGl4LVIgbm90YXRpb24sIHVzaW5nIEFTQ0lJIGhleCBkaWdpdHMgZm9yIGRpZ2l0cyB3aXRoIHZhbHVlc1xuICAgICAqIDAgdGhyb3VnaCAxNS5cbiAgICAgKi9cbiAgICByZXR1cm4gcGFyc2VJbnQoaW5wdXQsIFIpO1xufVxuZXhwb3J0cy5pUHY0TnVtYmVyUGFyc2VyID0gaVB2NE51bWJlclBhcnNlcjtcbi8qKlxuICogUGFyc2VzIGEgc3RyaW5nIGNvbnRhaW5pbmcgYW4gSVAgdjQgYWRkcmVzcy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gaVB2NFBhcnNlcihpbnB1dCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCB2YWxpZGF0aW9uRXJyb3JGbGFnIGJlIHVuc2V0LlxuICAgICAqIDIuIExldCBwYXJ0cyBiZSBpbnB1dCBzcGxpdCBvbiBVKzAwMkUgKC4pLlxuICAgICAqL1xuICAgIGNvbnN0IHZhbGlkYXRpb25FcnJvckZsYWcgPSB7IHZhbHVlOiBmYWxzZSB9O1xuICAgIGNvbnN0IHBhcnRzID0gaW5wdXQuc3BsaXQoJy4nKTtcbiAgICAvKipcbiAgICAgKiAzLiBJZiB0aGUgbGFzdCBpdGVtIGluIHBhcnRzIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW46XG4gICAgICogMy4xLiBTZXQgdmFsaWRhdGlvbkVycm9yRmxhZy5cbiAgICAgKiAzLjIuIElmIHBhcnRzIGhhcyBtb3JlIHRoYW4gb25lIGl0ZW0sIHRoZW4gcmVtb3ZlIHRoZSBsYXN0IGl0ZW0gZnJvbVxuICAgICAqIHBhcnRzLlxuICAgICAqL1xuICAgIGlmIChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9PT0gXCJcIikge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3JGbGFnLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpXG4gICAgICAgICAgICBwYXJ0cy5wb3AoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gSWYgcGFydHMgaGFzIG1vcmUgdGhhbiBmb3VyIGl0ZW1zLCByZXR1cm4gaW5wdXQuXG4gICAgICovXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDQpXG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAvKipcbiAgICAgKiA1LiBMZXQgbnVtYmVycyBiZSB0aGUgZW1wdHkgbGlzdC5cbiAgICAgKiA2LiBGb3IgZWFjaCBwYXJ0IGluIHBhcnRzOlxuICAgICAqIDYuMS4gSWYgcGFydCBpcyB0aGUgZW1wdHkgc3RyaW5nLCByZXR1cm4gaW5wdXQuXG4gICAgICogNi4yLiBMZXQgbiBiZSB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgcGFydCB1c2luZyB2YWxpZGF0aW9uRXJyb3JGbGFnLlxuICAgICAqIDYuMy4gSWYgbiBpcyBmYWlsdXJlLCByZXR1cm4gaW5wdXQuXG4gICAgICogNi40LiBBcHBlbmQgbiB0byBudW1iZXJzLlxuICAgICAqL1xuICAgIGNvbnN0IG51bWJlcnMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgaWYgKHBhcnQgPT09IFwiXCIpXG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIGNvbnN0IG4gPSBpUHY0TnVtYmVyUGFyc2VyKHBhcnQsIHZhbGlkYXRpb25FcnJvckZsYWcpO1xuICAgICAgICBpZiAobiA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgbnVtYmVycy5wdXNoKG4pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LiBJZiB2YWxpZGF0aW9uRXJyb3JGbGFnIGlzIHNldCwgdmFsaWRhdGlvbiBlcnJvci5cbiAgICAgKiA4LiBJZiBhbnkgaXRlbSBpbiBudW1iZXJzIGlzIGdyZWF0ZXIgdGhhbiAyNTUsIHZhbGlkYXRpb24gZXJyb3IuXG4gICAgICogOS4gSWYgYW55IGJ1dCB0aGUgbGFzdCBpdGVtIGluIG51bWJlcnMgaXMgZ3JlYXRlciB0aGFuIDI1NSwgcmV0dXJuXG4gICAgICogZmFpbHVyZS5cbiAgICAgKiAxMC4gSWYgdGhlIGxhc3QgaXRlbSBpbiBudW1iZXJzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0b1xuICAgICAqIDI1NioqKDUg4oiSIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gbnVtYmVycyksIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAqL1xuICAgIGlmICh2YWxpZGF0aW9uRXJyb3JGbGFnLnZhbHVlKVxuICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY0IGFkZHJlc3MuXCIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtYmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0gbnVtYmVyc1tpXTtcbiAgICAgICAgaWYgKGl0ZW0gPiAyNTUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjQgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICBpZiAoaSA8IG51bWJlcnMubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobnVtYmVyc1tudW1iZXJzLmxlbmd0aCAtIDFdID49IE1hdGgucG93KDI1NiwgNSAtIG51bWJlcnMubGVuZ3RoKSkge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY0IGFkZHJlc3MuXCIpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMTEuIExldCBpcHY0IGJlIHRoZSBsYXN0IGl0ZW0gaW4gbnVtYmVycy5cbiAgICAgKiAxMi4gUmVtb3ZlIHRoZSBsYXN0IGl0ZW0gZnJvbSBudW1iZXJzLlxuICAgICAqL1xuICAgIGxldCBpcHY0ID0gbnVtYmVyc1tudW1iZXJzLmxlbmd0aCAtIDFdO1xuICAgIG51bWJlcnMucG9wKCk7XG4gICAgLyoqXG4gICAgICogMTMuIExldCBjb3VudGVyIGJlIHplcm8uXG4gICAgICogMTQuIEZvciBlYWNoIG4gaW4gbnVtYmVyczpcbiAgICAgKiAxNC4yLiBJbmNyZW1lbnQgaXB2NCBieSBuIMOXIDI1NioqKDMg4oiSIGNvdW50ZXIpLlxuICAgICAqIDE0LjIuIEluY3JlbWVudCBjb3VudGVyIGJ5IDEuXG4gICAgICovXG4gICAgbGV0IGNvdW50ZXIgPSAwO1xuICAgIGZvciAoY29uc3QgbiBvZiBudW1iZXJzKSB7XG4gICAgICAgIGlwdjQgKz0gbiAqIE1hdGgucG93KDI1NiwgMyAtIGNvdW50ZXIpO1xuICAgICAgICBjb3VudGVyKys7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDE1LiBSZXR1cm4gaXB2NC5cbiAgICAgKi9cbiAgICByZXR1cm4gaXB2NDtcbn1cbmV4cG9ydHMuaVB2NFBhcnNlciA9IGlQdjRQYXJzZXI7XG4vKipcbiAqIFBhcnNlcyBhIHN0cmluZyBjb250YWluaW5nIGFuIElQIHY2IGFkZHJlc3MuXG4gKlxuICogQHBhcmFtIGlucHV0IC0gaW5wdXQgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGlQdjZQYXJzZXIoaW5wdXQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgYWRkcmVzcyBiZSBhIG5ldyBJUHY2IGFkZHJlc3Mgd2hvc2UgSVB2NiBwaWVjZXMgYXJlIGFsbCAwLlxuICAgICAqIDIuIExldCBwaWVjZUluZGV4IGJlIDAuXG4gICAgICogMy4gTGV0IGNvbXByZXNzIGJlIG51bGwuXG4gICAgICogNC4gTGV0IHBvaW50ZXIgYmUgYSBwb2ludGVyIGludG8gaW5wdXQsIGluaXRpYWxseSAwIChwb2ludGluZyB0byB0aGVcbiAgICAgKiBmaXJzdCBjb2RlIHBvaW50KS5cbiAgICAgKi9cbiAgICBjb25zdCBFT0YgPSBcIlwiO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF07XG4gICAgbGV0IHBpZWNlSW5kZXggPSAwO1xuICAgIGxldCBjb21wcmVzcyA9IG51bGw7XG4gICAgY29uc3Qgd2Fsa2VyID0gbmV3IHV0aWxfMS5TdHJpbmdXYWxrZXIoaW5wdXQpO1xuICAgIC8qKlxuICAgICAqIDUuIElmIGMgaXMgVSswMDNBICg6KSwgdGhlbjpcbiAgICAgKiA1LjEuIElmIHJlbWFpbmluZyBkb2VzIG5vdCBzdGFydCB3aXRoIFUrMDAzQSAoOiksIHZhbGlkYXRpb24gZXJyb3IsXG4gICAgICogcmV0dXJuIGZhaWx1cmUuXG4gICAgICogNS4yLiBJbmNyZWFzZSBwb2ludGVyIGJ5IDIuXG4gICAgICogNS4zLiBJbmNyZWFzZSBwaWVjZUluZGV4IGJ5IDEgYW5kIHRoZW4gc2V0IGNvbXByZXNzIHRvIHBpZWNlSW5kZXguXG4gICAgICovXG4gICAgaWYgKHdhbGtlci5jKCkgPT09ICc6Jykge1xuICAgICAgICBpZiAoIXdhbGtlci5yZW1haW5pbmcoKS5zdGFydHNXaXRoKCc6JykpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB3YWxrZXIucG9pbnRlciArPSAyO1xuICAgICAgICBwaWVjZUluZGV4ICs9IDE7XG4gICAgICAgIGNvbXByZXNzID0gcGllY2VJbmRleDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogNi4gV2hpbGUgYyBpcyBub3QgdGhlIEVPRiBjb2RlIHBvaW50OlxuICAgICAqL1xuICAgIHdoaWxlICh3YWxrZXIuYygpICE9PSBFT0YpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDYuMS4gSWYgcGllY2VJbmRleCBpcyA4LCB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChwaWVjZUluZGV4ID09PSA4KSB7XG4gICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY2IGFkZHJlc3MuXCIpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDYuMi4gSWYgYyBpcyBVKzAwM0EgKDopLCB0aGVuOlxuICAgICAgICAgKiA2LjIuMS4gSWYgY29tcHJlc3MgaXMgbm9uLW51bGwsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgKiA2LjIuMi4gSW5jcmVhc2UgcG9pbnRlciBhbmQgcGllY2VJbmRleCBieSAxLCBzZXQgY29tcHJlc3MgdG8gcGllY2VJbmRleCxcbiAgICAgICAgICogYW5kIHRoZW4gY29udGludWUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJzonKSB7XG4gICAgICAgICAgICBpZiAoY29tcHJlc3MgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY2IGFkZHJlc3MuXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICAgICAgICAgIHBpZWNlSW5kZXgrKztcbiAgICAgICAgICAgIGNvbXByZXNzID0gcGllY2VJbmRleDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA2LjMuIExldCB2YWx1ZSBhbmQgbGVuZ3RoIGJlIDAuXG4gICAgICAgICAqIDYuNC4gV2hpbGUgbGVuZ3RoIGlzIGxlc3MgdGhhbiA0IGFuZCBjIGlzIGFuIEFTQ0lJIGhleCBkaWdpdCwgc2V0IHZhbHVlXG4gICAgICAgICAqIHRvIHZhbHVlIMOXIDB4MTAgKyBjIGludGVycHJldGVkIGFzIGhleGFkZWNpbWFsIG51bWJlciwgYW5kIGluY3JlYXNlXG4gICAgICAgICAqIHBvaW50ZXIgYW5kIGxlbmd0aCBieSAxLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHZhbHVlID0gMDtcbiAgICAgICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgICAgIHdoaWxlIChsZW5ndGggPCA0ICYmIGluZnJhXzEuY29kZVBvaW50LkFTQ0lJSGV4RGlnaXQudGVzdCh3YWxrZXIuYygpKSkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIDB4MTAgKyBwYXJzZUludCh3YWxrZXIuYygpLCAxNik7XG4gICAgICAgICAgICB3YWxrZXIucG9pbnRlcisrO1xuICAgICAgICAgICAgbGVuZ3RoKys7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDYuNS4gSWYgYyBpcyBVKzAwMkUgKC4pLCB0aGVuOlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHdhbGtlci5jKCkgPT09ICcuJykge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiA2LjUuMS4gSWYgbGVuZ3RoIGlzIDAsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICogNi41LjIuIERlY3JlYXNlIHBvaW50ZXIgYnkgbGVuZ3RoLlxuICAgICAgICAgICAgICogNi41LjMuIElmIHBpZWNlSW5kZXggaXMgZ3JlYXRlciB0aGFuIDYsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVyblxuICAgICAgICAgICAgICogZmFpbHVyZS5cbiAgICAgICAgICAgICAqIDYuNS40LiBMZXQgbnVtYmVyc1NlZW4gYmUgMC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3YWxrZXIucG9pbnRlciAtPSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAocGllY2VJbmRleCA+IDYpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY2IGFkZHJlc3MuXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG51bWJlcnNTZWVuID0gMDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNi41LjUuIFdoaWxlIGMgaXMgbm90IHRoZSBFT0YgY29kZSBwb2ludDpcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgd2hpbGUgKHdhbGtlci5jKCkgIT09IEVPRikge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIDYuNS41LjEuIExldCBpcHY0UGllY2UgYmUgbnVsbC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBsZXQgaXB2NFBpZWNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA2LjUuNS4yLiBJZiBudW1iZXJzU2VlbiBpcyBncmVhdGVyIHRoYW4gMCwgdGhlbjpcbiAgICAgICAgICAgICAgICAgKiA2LjUuNS4yLjEuIElmIGMgaXMgYSBVKzAwMkUgKC4pIGFuZCBudW1iZXJzU2VlbiBpcyBsZXNzIHRoYW4gNCwgdGhlblxuICAgICAgICAgICAgICAgICAqIGluY3JlYXNlIHBvaW50ZXIgYnkgMS5cbiAgICAgICAgICAgICAgICAgKiA2LjUuNS4yLjEuIE90aGVyd2lzZSwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKG51bWJlcnNTZWVuID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2Fsa2VyLmMoKSA9PT0gJy4nICYmIG51bWJlcnNTZWVuIDwgNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA2LjUuNS4zLiBJZiBjIGlzIG5vdCBhbiBBU0NJSSBkaWdpdCwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuXG4gICAgICAgICAgICAgICAgICogZmFpbHVyZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoIWluZnJhXzEuY29kZVBvaW50LkFTQ0lJRGlnaXQudGVzdCh3YWxrZXIuYygpKSkge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY2IGFkZHJlc3MuXCIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogNi41LjUuNC4gV2hpbGUgYyBpcyBhbiBBU0NJSSBkaWdpdDpcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB3aGlsZSAoaW5mcmFfMS5jb2RlUG9pbnQuQVNDSUlEaWdpdC50ZXN0KHdhbGtlci5jKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiA2LjUuNS40LjEuIExldCBudW1iZXIgYmUgYyBpbnRlcnByZXRlZCBhcyBkZWNpbWFsIG51bWJlci5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG51bWJlciA9IHBhcnNlSW50KHdhbGtlci5jKCksIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDYuNS41LjQuMi4gSWYgaXB2NFBpZWNlIGlzIG51bGwsIHRoZW4gc2V0IGlwdjRQaWVjZSB0byBudW1iZXIuXG4gICAgICAgICAgICAgICAgICAgICAqIE90aGVyd2lzZSwgaWYgaXB2NFBpZWNlIGlzIDAsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKiBPdGhlcndpc2UsIHNldCBpcHY0UGllY2UgdG8gaXB2NFBpZWNlIMOXIDEwICsgbnVtYmVyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlwdjRQaWVjZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXB2NFBpZWNlID0gbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlwdjRQaWVjZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBJUCB2NiBhZGRyZXNzLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXB2NFBpZWNlID0gaXB2NFBpZWNlICogMTAgKyBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIDYuNS41LjQuMy4gSWYgaXB2NFBpZWNlIGlzIGdyZWF0ZXIgdGhhbiAyNTUsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAgICAgICAgICAgICAgICAgKiA2LjUuNS40LjQuIEluY3JlYXNlIHBvaW50ZXIgYnkgMS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChpcHY0UGllY2UgPiAyNTUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3YWxrZXIucG9pbnRlcisrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiA2LjUuNS41LiBTZXQgYWRkcmVzc1twaWVjZUluZGV4XSB0byBhZGRyZXNzW3BpZWNlSW5kZXhdIMOXIDB4MTAwICsgaXB2NFBpZWNlLlxuICAgICAgICAgICAgICAgICAqIDYuNS41LjYuIEluY3JlYXNlIG51bWJlcnNTZWVuIGJ5IDEuXG4gICAgICAgICAgICAgICAgICogNi41LjUuNy4gSWYgbnVtYmVyc1NlZW4gaXMgMiBvciA0LCB0aGVuIGluY3JlYXNlIHBpZWNlSW5kZXggYnkgMS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoaXB2NFBpZWNlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhZGRyZXNzW3BpZWNlSW5kZXhdID0gYWRkcmVzc1twaWVjZUluZGV4XSAqIDB4MTAwICsgaXB2NFBpZWNlO1xuICAgICAgICAgICAgICAgIG51bWJlcnNTZWVuKys7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlcnNTZWVuID09PSAyIHx8IG51bWJlcnNTZWVuID09PSA0KVxuICAgICAgICAgICAgICAgICAgICBwaWVjZUluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDYuNS42LiBJZiBudW1iZXJzU2VlbiBpcyBub3QgNCwgdmFsaWRhdGlvbiBlcnJvciwgcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChudW1iZXJzU2VlbiAhPT0gNCkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDYuNS43LiBCcmVhay5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAod2Fsa2VyLmMoKSA9PT0gJzonKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDYuNi4gT3RoZXJ3aXNlLCBpZiBjIGlzIFUrMDAzQSAoOik6XG4gICAgICAgICAgICAgKiA2LjYuMS4gSW5jcmVhc2UgcG9pbnRlciBieSAxLlxuICAgICAgICAgICAgICogNi42LjIuIElmIGMgaXMgdGhlIEVPRiBjb2RlIHBvaW50LCB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgd2Fsa2VyLnBvaW50ZXIrKztcbiAgICAgICAgICAgIGlmICh3YWxrZXIuYygpID09PSBFT0YpIHtcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIElQIHY2IGFkZHJlc3MuXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHdhbGtlci5jKCkgIT09IEVPRikge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiA2LjcuIE90aGVyd2lzZSwgaWYgYyBpcyBub3QgdGhlIEVPRiBjb2RlIHBvaW50LCB2YWxpZGF0aW9uIGVycm9yLFxuICAgICAgICAgICAgICogcmV0dXJuIGZhaWx1cmUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNi44LiBTZXQgYWRkcmVzc1twaWVjZUluZGV4XSB0byB2YWx1ZS5cbiAgICAgICAgICogNi45LiBJbmNyZWFzZSBwaWVjZUluZGV4IGJ5IDEuXG4gICAgICAgICAqL1xuICAgICAgICBhZGRyZXNzW3BpZWNlSW5kZXhdID0gdmFsdWU7XG4gICAgICAgIHBpZWNlSW5kZXgrKztcbiAgICB9XG4gICAgLyoqXG4gICAgICogNy4gSWYgY29tcHJlc3MgaXMgbm9uLW51bGwsIHRoZW46XG4gICAgICogNy4xLiBMZXQgc3dhcHMgYmUgcGllY2VJbmRleCDiiJIgY29tcHJlc3MuXG4gICAgICogNy4yLiBTZXQgcGllY2VJbmRleCB0byA3LlxuICAgICAqIDcuMy4gV2hpbGUgcGllY2VJbmRleCBpcyBub3QgMCBhbmQgc3dhcHMgaXMgZ3JlYXRlciB0aGFuIDAsIHN3YXBcbiAgICAgKiBhZGRyZXNzW3BpZWNlSW5kZXhdIHdpdGggYWRkcmVzc1tjb21wcmVzcyArIHN3YXBzIOKIkiAxXSwgYW5kIHRoZW4gZGVjcmVhc2VcbiAgICAgKiBib3RoIHBpZWNlSW5kZXggYW5kIHN3YXBzIGJ5IDEuXG4gICAgICovXG4gICAgaWYgKGNvbXByZXNzICE9PSBudWxsKSB7XG4gICAgICAgIGxldCBzd2FwcyA9IHBpZWNlSW5kZXggLSBjb21wcmVzcztcbiAgICAgICAgcGllY2VJbmRleCA9IDc7XG4gICAgICAgIHdoaWxlIChwaWVjZUluZGV4ICE9PSAwICYmIHN3YXBzID4gMCkge1xuICAgICAgICAgICAgW2FkZHJlc3NbcGllY2VJbmRleF0sIGFkZHJlc3NbY29tcHJlc3MgKyBzd2FwcyAtIDFdXSA9XG4gICAgICAgICAgICAgICAgW2FkZHJlc3NbY29tcHJlc3MgKyBzd2FwcyAtIDFdLCBhZGRyZXNzW3BpZWNlSW5kZXhdXTtcbiAgICAgICAgICAgIHBpZWNlSW5kZXgtLTtcbiAgICAgICAgICAgIHN3YXBzLS07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAoY29tcHJlc3MgPT09IG51bGwgJiYgcGllY2VJbmRleCAhPT0gOCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogOC4gT3RoZXJ3aXNlLCBpZiBjb21wcmVzcyBpcyBudWxsIGFuZCBwaWVjZUluZGV4IGlzIG5vdCA4LFxuICAgICAgICAgKiB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgICAgICovXG4gICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgSVAgdjYgYWRkcmVzcy5cIik7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA5LiBSZXR1cm4gYWRkcmVzcy5cbiAgICAgKi9cbiAgICByZXR1cm4gYWRkcmVzcztcbn1cbmV4cG9ydHMuaVB2NlBhcnNlciA9IGlQdjZQYXJzZXI7XG4vKipcbiAqIFBhcnNlcyBhbiBvcGFxdWUgaG9zdCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGlucHV0IC0gYSBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gb3BhcXVlSG9zdFBhcnNlcihpbnB1dCkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIGlucHV0IGNvbnRhaW5zIGEgZm9yYmlkZGVuIGhvc3QgY29kZSBwb2ludCBleGNsdWRpbmcgVSswMDI1ICglKSxcbiAgICAgKiB2YWxpZGF0aW9uIGVycm9yLCByZXR1cm4gZmFpbHVyZS5cbiAgICAgKiAyLiBMZXQgb3V0cHV0IGJlIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICogMy4gRm9yIGVhY2ggY29kZSBwb2ludCBpbiBpbnB1dCwgVVRGLTggcGVyY2VudCBlbmNvZGUgaXQgdXNpbmcgdGhlIEMwXG4gICAgICogY29udHJvbCBwZXJjZW50LWVuY29kZSBzZXQsIGFuZCBhcHBlbmQgdGhlIHJlc3VsdCB0byBvdXRwdXQuXG4gICAgICogNC4gUmV0dXJuIG91dHB1dC5cbiAgICAgKi9cbiAgICBjb25zdCBmb3JiaWRkZW5DaGFycyA9IC9bXFx4MDBcXHRcXGZcXHIgIy86P0BcXFtcXFxcXFxdXS87XG4gICAgaWYgKGZvcmJpZGRlbkNoYXJzLnRlc3QoaW5wdXQpKSB7XG4gICAgICAgIHZhbGlkYXRpb25FcnJvcihcIkludmFsaWQgaG9zdCBzdHJpbmcuXCIpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBjb2RlUG9pbnQgb2YgaW5wdXQpIHtcbiAgICAgICAgb3V0cHV0ICs9IHV0ZjhQZXJjZW50RW5jb2RlKGNvZGVQb2ludCwgX2MwQ29udHJvbFBlcmNlbnRFbmNvZGVTZXQpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xufVxuZXhwb3J0cy5vcGFxdWVIb3N0UGFyc2VyID0gb3BhcXVlSG9zdFBhcnNlcjtcbi8qKlxuICogUmVzb2x2ZXMgYSBCbG9iIFVSTCBmcm9tIHRoZSB1c2VyIGFnZW50J3MgQmxvYiBVUkwgc3RvcmUuXG4gKiBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuXG4gKiBTZWU6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9GaWxlQVBJLyNibG9iLXVybC1yZXNvbHZlXG4gKlxuICogQHBhcmFtIHVybCAtIGFuIHVybFxuICovXG5mdW5jdGlvbiByZXNvbHZlQUJsb2JVUkwodXJsKSB7XG4gICAgcmV0dXJuIG51bGw7XG59XG5leHBvcnRzLnJlc29sdmVBQmxvYlVSTCA9IHJlc29sdmVBQmxvYlVSTDtcbi8qKlxuICogUGVyY2VudCBlbmNvZGVzIGEgYnl0ZS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBhIGJ5dGVcbiAqL1xuZnVuY3Rpb24gcGVyY2VudEVuY29kZSh2YWx1ZSkge1xuICAgIC8qKlxuICAgICAqIFRvIHBlcmNlbnQgZW5jb2RlIGEgYnl0ZSBpbnRvIGEgcGVyY2VudC1lbmNvZGVkIGJ5dGUsIHJldHVybiBhIHN0cmluZ1xuICAgICAqIGNvbnNpc3Rpbmcgb2YgVSswMDI1ICglKSwgZm9sbG93ZWQgYnkgdHdvIEFTQ0lJIHVwcGVyIGhleCBkaWdpdHNcbiAgICAgKiByZXByZXNlbnRpbmcgYnl0ZS5cbiAgICAgKi9cbiAgICByZXR1cm4gJyUnICsgKCcwMCcgKyB2YWx1ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSkuc2xpY2UoLTIpO1xufVxuZXhwb3J0cy5wZXJjZW50RW5jb2RlID0gcGVyY2VudEVuY29kZTtcbi8qKlxuICogUGVyY2VudCBkZWNvZGVzIGEgYnl0ZSBzZXF1ZW5jZSBpbnB1dC5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqL1xuZnVuY3Rpb24gcGVyY2VudERlY29kZShpbnB1dCkge1xuICAgIGNvbnN0IGlzSGV4RGlnaXQgPSAoYnl0ZSkgPT4ge1xuICAgICAgICByZXR1cm4gKGJ5dGUgPj0gMHgzMCAmJiBieXRlIDw9IDB4MzkpIHx8IChieXRlID49IDB4NDEgJiYgYnl0ZSA8PSAweDQ2KSB8fFxuICAgICAgICAgICAgKGJ5dGUgPj0gMHg2MSAmJiBieXRlIDw9IDB4NjYpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogMS4gTGV0IG91dHB1dCBiZSBhbiBlbXB0eSBieXRlIHNlcXVlbmNlLlxuICAgICAqIDIuIEZvciBlYWNoIGJ5dGUgYnl0ZSBpbiBpbnB1dDpcbiAgICAgKi9cbiAgICBjb25zdCBvdXRwdXQgPSBuZXcgVWludDhBcnJheShpbnB1dC5sZW5ndGgpO1xuICAgIGxldCBuID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGJ5dGUgPSBpbnB1dFtpXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuMS4gSWYgYnl0ZSBpcyBub3QgMHgyNSAoJSksIHRoZW4gYXBwZW5kIGJ5dGUgdG8gb3V0cHV0LlxuICAgICAgICAgKiAyLjIuIE90aGVyd2lzZSwgaWYgYnl0ZSBpcyAweDI1ICglKSBhbmQgdGhlIG5leHQgdHdvIGJ5dGVzIGFmdGVyIGJ5dGVcbiAgICAgICAgICogaW4gaW5wdXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2VzIDB4MzAgKDApIHRvIDB4MzkgKDkpLCAweDQxIChBKVxuICAgICAgICAgKiB0byAweDQ2IChGKSwgYW5kIDB4NjEgKGEpIHRvIDB4NjYgKGYpLCBhbGwgaW5jbHVzaXZlLCBhcHBlbmQgYnl0ZVxuICAgICAgICAgKiB0byBvdXRwdXQuXG4gICAgICAgICAqIDIuMy4gT3RoZXJ3aXNlOlxuICAgICAgICAgKiAyLjMuMS4gTGV0IGJ5dGVQb2ludCBiZSB0aGUgdHdvIGJ5dGVzIGFmdGVyIGJ5dGUgaW4gaW5wdXQsIGRlY29kZWQsXG4gICAgICAgICAqIGFuZCB0aGVuIGludGVycHJldGVkIGFzIGhleGFkZWNpbWFsIG51bWJlci5cbiAgICAgICAgICogMi4zLjIuIEFwcGVuZCBhIGJ5dGUgd2hvc2UgdmFsdWUgaXMgYnl0ZVBvaW50IHRvIG91dHB1dC5cbiAgICAgICAgICogMi4zLjMuIFNraXAgdGhlIG5leHQgdHdvIGJ5dGVzIGluIGlucHV0LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGJ5dGUgIT09IDB4MjUpIHtcbiAgICAgICAgICAgIG91dHB1dFtuXSA9IGJ5dGU7XG4gICAgICAgICAgICBuKys7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYnl0ZSA9PT0gMHgyNSAmJiBpID49IGlucHV0Lmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAgIG91dHB1dFtuXSA9IGJ5dGU7XG4gICAgICAgICAgICBuKys7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYnl0ZSA9PT0gMHgyNSAmJiAoIWlzSGV4RGlnaXQoaW5wdXRbaSArIDFdKSB8fCAhaXNIZXhEaWdpdChpbnB1dFtpICsgMl0pKSkge1xuICAgICAgICAgICAgb3V0cHV0W25dID0gYnl0ZTtcbiAgICAgICAgICAgIG4rKztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVQb2ludCA9IHBhcnNlSW50KHV0aWxfMS51dGY4RGVjb2RlKFVpbnQ4QXJyYXkub2YoaW5wdXRbaSArIDFdLCBpbnB1dFtpICsgMl0pKSwgMTYpO1xuICAgICAgICAgICAgb3V0cHV0W25dID0gYnl0ZVBvaW50O1xuICAgICAgICAgICAgbisrO1xuICAgICAgICAgICAgaSArPSAyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQuc3ViYXJyYXkoMCwgbik7XG59XG5leHBvcnRzLnBlcmNlbnREZWNvZGUgPSBwZXJjZW50RGVjb2RlO1xuLyoqXG4gKiBTdHJpbmcgcGVyY2VudCBkZWNvZGVzIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBpbnB1dCAtIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIHN0cmluZ1BlcmNlbnREZWNvZGUoaW5wdXQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgYnl0ZXMgYmUgdGhlIFVURi04IGVuY29kaW5nIG9mIGlucHV0LlxuICAgICAqIDIuIFJldHVybiB0aGUgcGVyY2VudCBkZWNvZGluZyBvZiBieXRlcy5cbiAgICAgKi9cbiAgICByZXR1cm4gcGVyY2VudERlY29kZSh1dGlsXzEudXRmOEVuY29kZShpbnB1dCkpO1xufVxuZXhwb3J0cy5zdHJpbmdQZXJjZW50RGVjb2RlID0gc3RyaW5nUGVyY2VudERlY29kZTtcbi8qKlxuICogVVRGLTggcGVyY2VudCBlbmNvZGVzIGEgY29kZSBwb2ludCwgdXNpbmcgYSBwZXJjZW50IGVuY29kZSBzZXQuXG4gKlxuICogQHBhcmFtIGNvZGVQb2ludCAtIGEgY29kZSBwb2ludFxuICogQHBhcmFtIHBlcmNlbnRFbmNvZGVTZXQgLSBhIHBlcmNlbnQgZW5jb2RlIHNldFxuICovXG5mdW5jdGlvbiB1dGY4UGVyY2VudEVuY29kZShjb2RlUG9pbnQsIHBlcmNlbnRFbmNvZGVTZXQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBjb2RlUG9pbnQgaXMgbm90IGluIHBlcmNlbnRFbmNvZGVTZXQsIHRoZW4gcmV0dXJuIGNvZGVQb2ludC5cbiAgICAgKiAyLiBMZXQgYnl0ZXMgYmUgdGhlIHJlc3VsdCBvZiBydW5uaW5nIFVURi04IGVuY29kZSBvbiBjb2RlUG9pbnQuXG4gICAgICogMy4gUGVyY2VudCBlbmNvZGUgZWFjaCBieXRlIGluIGJ5dGVzLCBhbmQgdGhlbiByZXR1cm4gdGhlIHJlc3VsdHNcbiAgICAgKiBjb25jYXRlbmF0ZWQsIGluIHRoZSBzYW1lIG9yZGVyLlxuICAgICAqL1xuICAgIGlmICghcGVyY2VudEVuY29kZVNldC50ZXN0KGNvZGVQb2ludCkpXG4gICAgICAgIHJldHVybiBjb2RlUG9pbnQ7XG4gICAgY29uc3QgYnl0ZXMgPSB1dGlsXzEudXRmOEVuY29kZShjb2RlUG9pbnQpO1xuICAgIGxldCByZXN1bHQgPSBcIlwiO1xuICAgIGZvciAoY29uc3QgYnl0ZSBvZiBieXRlcykge1xuICAgICAgICByZXN1bHQgKz0gcGVyY2VudEVuY29kZShieXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydHMudXRmOFBlcmNlbnRFbmNvZGUgPSB1dGY4UGVyY2VudEVuY29kZTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0d28gaG9zdHMgYXJlIGNvbnNpZGVyZWQgZXF1YWwuXG4gKlxuICogQHBhcmFtIGhvc3RBIC0gYSBob3N0XG4gKiBAcGFyYW0gaG9zdEIgLSBhIGhvc3RcbiAqL1xuZnVuY3Rpb24gaG9zdEVxdWFscyhob3N0QSwgaG9zdEIpIHtcbiAgICByZXR1cm4gaG9zdEEgPT09IGhvc3RCO1xufVxuZXhwb3J0cy5ob3N0RXF1YWxzID0gaG9zdEVxdWFscztcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0d28gVVJMcyBhcmUgY29uc2lkZXJlZCBlcXVhbC5cbiAqXG4gKiBAcGFyYW0gdXJsQSAtIGEgVVJMXG4gKiBAcGFyYW0gdXJsQiAtIGEgVVJMXG4gKiBAcGFyYW0gZXhjbHVkZUZyYWdtZW50c0ZsYWcgLSB3aGV0aGVyIHRvIGlnbm9yZSBmcmFnbWVudHMgd2hpbGUgY29tcGFyaW5nXG4gKi9cbmZ1bmN0aW9uIHVybEVxdWFscyh1cmxBLCB1cmxCLCBleGNsdWRlRnJhZ21lbnRzRmxhZyA9IGZhbHNlKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IHNlcmlhbGl6ZWRBIGJlIHRoZSByZXN1bHQgb2Ygc2VyaWFsaXppbmcgQSwgd2l0aCB0aGUgZXhjbHVkZVxuICAgICAqIGZyYWdtZW50IGZsYWcgc2V0IGlmIHRoZSBleGNsdWRlIGZyYWdtZW50cyBmbGFnIGlzIHNldC5cbiAgICAgKiAyLiBMZXQgc2VyaWFsaXplZEIgYmUgdGhlIHJlc3VsdCBvZiBzZXJpYWxpemluZyBCLCB3aXRoIHRoZSBleGNsdWRlXG4gICAgICogZnJhZ21lbnQgZmxhZyBzZXQgaWYgdGhlIGV4Y2x1ZGUgZnJhZ21lbnRzIGZsYWcgaXMgc2V0LlxuICAgICAqIDMuIFJldHVybiB0cnVlIGlmIHNlcmlhbGl6ZWRBIGlzIHNlcmlhbGl6ZWRCLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHJldHVybiB1cmxTZXJpYWxpemVyKHVybEEsIGV4Y2x1ZGVGcmFnbWVudHNGbGFnKSA9PT1cbiAgICAgICAgdXJsU2VyaWFsaXplcih1cmxCLCBleGNsdWRlRnJhZ21lbnRzRmxhZyk7XG59XG5leHBvcnRzLnVybEVxdWFscyA9IHVybEVxdWFscztcbi8qKlxuICogUGFyc2VzIGFuIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBhIHN0cmluZ1xuICovXG5mdW5jdGlvbiB1cmxFbmNvZGVkU3RyaW5nUGFyc2VyKGlucHV0KSB7XG4gICAgLyoqXG4gICAgICogVGhlIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCBzdHJpbmcgcGFyc2VyIHRha2VzIGEgc3RyaW5nIGlucHV0LFxuICAgICAqIFVURi04IGVuY29kZXMgaXQsIGFuZCB0aGVuIHJldHVybnMgdGhlIHJlc3VsdCBvZlxuICAgICAqIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCBwYXJzaW5nIGl0LlxuICAgICAqL1xuICAgIHJldHVybiB1cmxFbmNvZGVkUGFyc2VyKHV0aWxfMS51dGY4RW5jb2RlKGlucHV0KSk7XG59XG5leHBvcnRzLnVybEVuY29kZWRTdHJpbmdQYXJzZXIgPSB1cmxFbmNvZGVkU3RyaW5nUGFyc2VyO1xuLyoqXG4gKiBQYXJzZXMgYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIHVybEVuY29kZWRQYXJzZXIoaW5wdXQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgc2VxdWVuY2VzIGJlIHRoZSByZXN1bHQgb2Ygc3BsaXR0aW5nIGlucHV0IG9uIDB4MjYgKCYpLlxuICAgICAqL1xuICAgIGNvbnN0IHNlcXVlbmNlcyA9IFtdO1xuICAgIGxldCBjdXJyZW50U2VxdWVuY2UgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJ5dGUgb2YgaW5wdXQpIHtcbiAgICAgICAgaWYgKGJ5dGUgPT09IDB4MjYpIHtcbiAgICAgICAgICAgIHNlcXVlbmNlcy5wdXNoKFVpbnQ4QXJyYXkuZnJvbShjdXJyZW50U2VxdWVuY2UpKTtcbiAgICAgICAgICAgIGN1cnJlbnRTZXF1ZW5jZSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY3VycmVudFNlcXVlbmNlLnB1c2goYnl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGN1cnJlbnRTZXF1ZW5jZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgc2VxdWVuY2VzLnB1c2goVWludDhBcnJheS5mcm9tKGN1cnJlbnRTZXF1ZW5jZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAyLiBMZXQgb3V0cHV0IGJlIGFuIGluaXRpYWxseSBlbXB0eSBsaXN0IG9mIG5hbWUtdmFsdWUgdHVwbGVzIHdoZXJlIGJvdGggbmFtZSBhbmQgdmFsdWUgaG9sZCBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBjb25zdCBvdXRwdXQgPSBbXTtcbiAgICAvKipcbiAgICAgKiAzLiBGb3IgZWFjaCBieXRlIHNlcXVlbmNlIGJ5dGVzIGluIHNlcXVlbmNlczpcbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IGJ5dGVzIG9mIHNlcXVlbmNlcykge1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4xLiBJZiBieXRlcyBpcyB0aGUgZW1wdHkgYnl0ZSBzZXF1ZW5jZSwgdGhlbiBjb250aW51ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChieXRlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuMi4gSWYgYnl0ZXMgY29udGFpbnMgYSAweDNEICg9KSwgdGhlbiBsZXQgbmFtZSBiZSB0aGUgYnl0ZXMgZnJvbSB0aGVcbiAgICAgICAgICogc3RhcnQgb2YgYnl0ZXMgdXAgdG8gYnV0IGV4Y2x1ZGluZyBpdHMgZmlyc3QgMHgzRCAoPSksIGFuZCBsZXQgdmFsdWUgYmVcbiAgICAgICAgICogdGhlIGJ5dGVzLCBpZiBhbnksIGFmdGVyIHRoZSBmaXJzdCAweDNEICg9KSB1cCB0byB0aGUgZW5kIG9mIGJ5dGVzLlxuICAgICAgICAgKiBJZiAweDNEICg9KSBpcyB0aGUgZmlyc3QgYnl0ZSwgdGhlbiBuYW1lIHdpbGwgYmUgdGhlIGVtcHR5IGJ5dGVcbiAgICAgICAgICogc2VxdWVuY2UuIElmIGl0IGlzIHRoZSBsYXN0LCB0aGVuIHZhbHVlIHdpbGwgYmUgdGhlIGVtcHR5IGJ5dGUgc2VxdWVuY2UuXG4gICAgICAgICAqIDMuMy4gT3RoZXJ3aXNlLCBsZXQgbmFtZSBoYXZlIHRoZSB2YWx1ZSBvZiBieXRlcyBhbmQgbGV0IHZhbHVlIGJlIHRoZVxuICAgICAgICAgKiBlbXB0eSBieXRlIHNlcXVlbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaW5kZXggPSBieXRlcy5pbmRleE9mKDB4M0QpO1xuICAgICAgICBjb25zdCBuYW1lID0gKGluZGV4ICE9PSAtMSA/IGJ5dGVzLnNsaWNlKDAsIGluZGV4KSA6IGJ5dGVzKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoaW5kZXggIT09IC0xID8gYnl0ZXMuc2xpY2UoaW5kZXggKyAxKSA6IG5ldyBVaW50OEFycmF5KCkpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMy40LiBSZXBsYWNlIGFueSAweDJCICgrKSBpbiBuYW1lIGFuZCB2YWx1ZSB3aXRoIDB4MjAgKFNQKS5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIGlmIChuYW1lW2ldID09PSAweDJCKVxuICAgICAgICAgICAgICAgIG5hbWVbaV0gPSAweDIwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgaWYgKHZhbHVlW2ldID09PSAweDJCKVxuICAgICAgICAgICAgICAgIHZhbHVlW2ldID0gMHgyMDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuNS4gTGV0IG5hbWVTdHJpbmcgYW5kIHZhbHVlU3RyaW5nIGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBVVEYtOFxuICAgICAgICAgKiBkZWNvZGUgd2l0aG91dCBCT00gb24gdGhlIHBlcmNlbnQgZGVjb2Rpbmcgb2YgbmFtZSBhbmQgdmFsdWUsXG4gICAgICAgICAqIHJlc3BlY3RpdmVseS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5hbWVTdHJpbmcgPSB1dGlsXzEudXRmOERlY29kZShuYW1lKTtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB1dGlsXzEudXRmOERlY29kZSh2YWx1ZSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLjYuIEFwcGVuZCAobmFtZVN0cmluZywgdmFsdWVTdHJpbmcpIHRvIG91dHB1dC5cbiAgICAgICAgICovXG4gICAgICAgIG91dHB1dC5wdXNoKFtuYW1lU3RyaW5nLCB2YWx1ZVN0cmluZ10pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA0LiBSZXR1cm4gb3V0cHV0LlxuICAgICAqL1xuICAgIHJldHVybiBvdXRwdXQ7XG59XG5leHBvcnRzLnVybEVuY29kZWRQYXJzZXIgPSB1cmxFbmNvZGVkUGFyc2VyO1xuLyoqXG4gKiBTZXJpYWxpemVzIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIGJ5dGVzLlxuICpcbiAqIEBwYXJhbSBpbnB1dCAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiB1cmxFbmNvZGVkQnl0ZVNlcmlhbGl6ZXIoaW5wdXQpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgb3V0cHV0IGJlIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICogMi4gRm9yIGVhY2ggYnl0ZSBpbiBpbnB1dCwgZGVwZW5kaW5nIG9uIGJ5dGU6XG4gICAgICogMHgyMCAoU1ApXG4gICAgICogQXBwZW5kIFUrMDAyQiAoKykgdG8gb3V0cHV0LlxuICAgICAqXG4gICAgICogMHgyQSAoKilcbiAgICAgKiAweDJEICgtKVxuICAgICAqIDB4MkUgKC4pXG4gICAgICogMHgzMCAoMCkgdG8gMHgzOSAoOSlcbiAgICAgKiAweDQxIChBKSB0byAweDVBIChaKVxuICAgICAqIDB4NUYgKF8pXG4gICAgICogMHg2MSAoYSkgdG8gMHg3QSAoeilcbiAgICAgKiBBcHBlbmQgYSBjb2RlIHBvaW50IHdob3NlIHZhbHVlIGlzIGJ5dGUgdG8gb3V0cHV0LlxuICAgICAqXG4gICAgICogT3RoZXJ3aXNlXG4gICAgICogQXBwZW5kIGJ5dGUsIHBlcmNlbnQgZW5jb2RlZCwgdG8gb3V0cHV0LlxuICAgICAqIDMuIFJldHVybiBvdXRwdXQuXG4gICAgICovXG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgZm9yIChjb25zdCBieXRlIG9mIGlucHV0KSB7XG4gICAgICAgIGlmIChieXRlID09PSAweDIwKSB7XG4gICAgICAgICAgICBvdXRwdXQgKz0gJysnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGJ5dGUgPT09IDB4MkEgfHwgYnl0ZSA9PT0gMHgyRCB8fCBieXRlID09PSAweDJFIHx8XG4gICAgICAgICAgICAoYnl0ZSA+PSAweDMwICYmIGJ5dGUgPD0gMHgzOSkgfHwgKGJ5dGUgPj0gMHg0MSAmJiBieXRlIDw9IDB4NUEpIHx8XG4gICAgICAgICAgICBieXRlID09PSAweDVGIHx8IChieXRlID49IDB4NjEgJiYgYnl0ZSA8PSAweDdBKSkge1xuICAgICAgICAgICAgb3V0cHV0ICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KGJ5dGUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0ICs9IHBlcmNlbnRFbmNvZGUoYnl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbn1cbmV4cG9ydHMudXJsRW5jb2RlZEJ5dGVTZXJpYWxpemVyID0gdXJsRW5jb2RlZEJ5dGVTZXJpYWxpemVyO1xuLyoqXG4gKiBTZXJpYWxpemVzIGBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRgIHR1cGxlcy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgLSBpbnB1dCB0dXBsZSBvZiBuYW1lL3ZhbHVlIHBhaXJzXG4gKiBAcGFyYW0gZW5jb2RpbmdPdmVycmlkZTogZW5jb2Rpbmcgb3ZlcnJpZGVcbiAqL1xuZnVuY3Rpb24gdXJsRW5jb2RlZFNlcmlhbGl6ZXIodHVwbGVzLCBlbmNvZGluZ092ZXJyaWRlKSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IGVuY29kaW5nIGJlIFVURi04LlxuICAgICAqIDIuIElmIGVuY29kaW5nIG92ZXJyaWRlIGlzIGdpdmVuLCBzZXQgZW5jb2RpbmcgdG8gdGhlIHJlc3VsdCBvZiBnZXR0aW5nXG4gICAgICogYW4gb3V0cHV0IGVuY29kaW5nIGZyb20gZW5jb2Rpbmcgb3ZlcnJpZGUuXG4gICAgICovXG4gICAgY29uc3QgZW5jb2RpbmcgPSAoZW5jb2RpbmdPdmVycmlkZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIGVuY29kaW5nT3ZlcnJpZGUgPT09IFwicmVwbGFjZW1lbnRcIiB8fCBlbmNvZGluZ092ZXJyaWRlID09PSBcIlVURi0xNkJFXCIgfHxcbiAgICAgICAgZW5jb2RpbmdPdmVycmlkZSA9PT0gXCJVVEYtMTZMRVwiID8gXCJVVEYtOFwiIDogZW5jb2RpbmdPdmVycmlkZSk7XG4gICAgaWYgKGVuY29kaW5nLnRvVXBwZXJDYXNlKCkgIT09IFwiVVRGLThcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IFVURi04IGVuY29kaW5nIGlzIHN1cHBvcnRlZC5cIik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIExldCBvdXRwdXQgYmUgdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKi9cbiAgICBsZXQgb3V0cHV0ID0gXCJcIjtcbiAgICAvKipcbiAgICAgKiA0LiBGb3IgZWFjaCB0dXBsZSBpbiB0dXBsZXM6XG4gICAgICovXG4gICAgZm9yIChjb25zdCB0dXBsZSBvZiB0dXBsZXMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuMS4gTGV0IG5hbWUgYmUgdGhlIHJlc3VsdCBvZiBzZXJpYWxpemluZyB0aGUgcmVzdWx0IG9mIGVuY29kaW5nXG4gICAgICAgICAqIHR1cGxl4oCZcyBuYW1lLCB1c2luZyBlbmNvZGluZy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5hbWUgPSB1cmxFbmNvZGVkQnl0ZVNlcmlhbGl6ZXIodXRpbF8xLnV0ZjhFbmNvZGUodHVwbGVbMF0pKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuMi4gTGV0IHZhbHVlIGJlIHR1cGxl4oCZcyB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCB2YWx1ZSA9IHR1cGxlWzFdO1xuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETzpcbiAgICAgICAgICogNC4zLiBJZiB2YWx1ZSBpcyBhIGZpbGUsIHRoZW4gc2V0IHZhbHVlIHRvIHZhbHVl4oCZcyBmaWxlbmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LjQuIFNldCB2YWx1ZSB0byB0aGUgcmVzdWx0IG9mIHNlcmlhbGl6aW5nIHRoZSByZXN1bHQgb2YgZW5jb2RpbmdcbiAgICAgICAgICogdmFsdWUsIHVzaW5nIGVuY29kaW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWUgPSB1cmxFbmNvZGVkQnl0ZVNlcmlhbGl6ZXIodXRpbF8xLnV0ZjhFbmNvZGUodmFsdWUpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuNS4gSWYgdHVwbGUgaXMgbm90IHRoZSBmaXJzdCBwYWlyIGluIHR1cGxlcywgdGhlbiBhcHBlbmQgVSswMDI2ICgmKVxuICAgICAgICAgKiB0byBvdXRwdXQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAob3V0cHV0ICE9PSBcIlwiKVxuICAgICAgICAgICAgb3V0cHV0ICs9ICcmJztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuNi4gQXBwZW5kIG5hbWUsIGZvbGxvd2VkIGJ5IFUrMDAzRCAoPSksIGZvbGxvd2VkIGJ5IHZhbHVlLCB0byBvdXRwdXQuXG4gICAgICAgICAqL1xuICAgICAgICBvdXRwdXQgKz0gbmFtZSArICc9JyArIHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA1LiBSZXR1cm4gb3V0cHV0LlxuICAgICAqL1xuICAgIHJldHVybiBvdXRwdXQ7XG59XG5leHBvcnRzLnVybEVuY29kZWRTZXJpYWxpemVyID0gdXJsRW5jb2RlZFNlcmlhbGl6ZXI7XG4vKipcbiAqIFJldHVybnMgYSBVUkwncyBvcmlnaW4uXG4gKlxuICogQHBhcmFtIHVybCAtIGEgVVJMXG4gKi9cbmZ1bmN0aW9uIG9yaWdpbih1cmwpIHtcbiAgICAvKipcbiAgICAgKiBBIFVSTOKAmXMgb3JpZ2luIGlzIHRoZSBvcmlnaW4gcmV0dXJuZWQgYnkgcnVubmluZyB0aGVzZSBzdGVwcywgc3dpdGNoaW5nXG4gICAgICogb24gVVJM4oCZcyBzY2hlbWU6XG4gICAgICogXCJibG9iXCJcbiAgICAgKiAxLiBJZiBVUkzigJlzIGJsb2IgVVJMIGVudHJ5IGlzIG5vbi1udWxsLCB0aGVuIHJldHVybiBVUkzigJlzIGJsb2IgVVJMXG4gICAgICogZW50cnnigJlzIGVudmlyb25tZW504oCZcyBvcmlnaW4uXG4gICAgICogMi4gTGV0IHVybCBiZSB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgVVJM4oCZcyBwYXRoWzBdLlxuICAgICAqIDMuIFJldHVybiBhIG5ldyBvcGFxdWUgb3JpZ2luLCBpZiB1cmwgaXMgZmFpbHVyZSwgYW5kIHVybOKAmXMgb3JpZ2luXG4gICAgICogb3RoZXJ3aXNlLlxuICAgICAqIFwiZnRwXCJcbiAgICAgKiBcImh0dHBcIlxuICAgICAqIFwiaHR0cHNcIlxuICAgICAqIFwid3NcIlxuICAgICAqIFwid3NzXCJcbiAgICAgKiBSZXR1cm4gYSB0dXBsZSBjb25zaXN0aW5nIG9mIFVSTOKAmXMgc2NoZW1lLCBVUkzigJlzIGhvc3QsIFVSTOKAmXMgcG9ydCwgYW5kXG4gICAgICogbnVsbC5cbiAgICAgKiBcImZpbGVcIlxuICAgICAqIFVuZm9ydHVuYXRlIGFzIGl0IGlzLCBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIHRvIHRoZSByZWFkZXIuIFdoZW4gaW5cbiAgICAgKiBkb3VidCwgcmV0dXJuIGEgbmV3IG9wYXF1ZSBvcmlnaW4uXG4gICAgICogT3RoZXJ3aXNlXG4gICAgICogUmV0dXJuIGEgbmV3IG9wYXF1ZSBvcmlnaW4uXG4gICAgICovXG4gICAgc3dpdGNoICh1cmwuc2NoZW1lKSB7XG4gICAgICAgIGNhc2UgXCJibG9iXCI6XG4gICAgICAgICAgICBpZiAodXJsLl9ibG9iVVJMRW50cnkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiByZXR1cm4gVVJM4oCZcyBibG9iIFVSTCBlbnRyeeKAmXMgZW52aXJvbm1lbnTigJlzIG9yaWdpbi5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFVSTCA9IGJhc2ljVVJMUGFyc2VyKHVybC5wYXRoWzBdKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRVUkwgPT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5PcGFxdWVPcmlnaW47XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbihwYXJzZWRVUkwpO1xuICAgICAgICBjYXNlIFwiZnRwXCI6XG4gICAgICAgIGNhc2UgXCJodHRwXCI6XG4gICAgICAgIGNhc2UgXCJodHRwc1wiOlxuICAgICAgICBjYXNlIFwid3NcIjpcbiAgICAgICAgY2FzZSBcIndzc1wiOlxuICAgICAgICAgICAgcmV0dXJuIFt1cmwuc2NoZW1lLCB1cmwuaG9zdCA9PT0gbnVsbCA/IFwiXCIgOiB1cmwuaG9zdCwgdXJsLnBvcnQsIG51bGxdO1xuICAgICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5PcGFxdWVPcmlnaW47XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLk9wYXF1ZU9yaWdpbjtcbiAgICB9XG59XG5leHBvcnRzLm9yaWdpbiA9IG9yaWdpbjtcbi8qKlxuICogQ29udmVydHMgYSBkb21haW4gc3RyaW5nIHRvIEFTQ0lJLlxuICpcbiAqIEBwYXJhbSBkb21haW4gLSBhIGRvbWFpbiBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZG9tYWluVG9BU0NJSShkb21haW4sIGJlU3RyaWN0ID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBiZVN0cmljdCBpcyBub3QgZ2l2ZW4sIHNldCBpdCB0byBmYWxzZS5cbiAgICAgKiAyLiBMZXQgcmVzdWx0IGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBVbmljb2RlIFRvQVNDSUkgd2l0aCBkb21haW5fbmFtZVxuICAgICAqIHNldCB0byBkb21haW4sIFVzZVNURDNBU0NJSVJ1bGVzIHNldCB0byBiZVN0cmljdCwgQ2hlY2tIeXBoZW5zIHNldCB0b1xuICAgICAqIGZhbHNlLCBDaGVja0JpZGkgc2V0IHRvIHRydWUsIENoZWNrSm9pbmVycyBzZXQgdG8gdHJ1ZSxcbiAgICAgKiBUcmFuc2l0aW9uYWxfUHJvY2Vzc2luZyBzZXQgdG8gZmFsc2UsIGFuZCBWZXJpZnlEbnNMZW5ndGggc2V0IHRvIGJlU3RyaWN0LlxuICAgICAqIDMuIElmIHJlc3VsdCBpcyBhIGZhaWx1cmUgdmFsdWUsIHZhbGlkYXRpb24gZXJyb3IsIHJldHVybiBmYWlsdXJlLlxuICAgICAqIDQuIFJldHVybiByZXN1bHQuXG4gICAgICovXG4gICAgLy8gVXNlIG5vZGUuanMgZnVuY3Rpb25cbiAgICBjb25zdCByZXN1bHQgPSB1cmxfMS5kb21haW5Ub0FTQ0lJKGRvbWFpbik7XG4gICAgaWYgKHJlc3VsdCA9PT0gXCJcIikge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3IoXCJJbnZhbGlkIGRvbWFpbiBuYW1lLlwiKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLmRvbWFpblRvQVNDSUkgPSBkb21haW5Ub0FTQ0lJO1xuLyoqXG4gKiBDb252ZXJ0cyBhIGRvbWFpbiBzdHJpbmcgdG8gVW5pY29kZS5cbiAqXG4gKiBAcGFyYW0gZG9tYWluIC0gYSBkb21haW4gc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGRvbWFpblRvVW5pY29kZShkb21haW4sIGJlU3RyaWN0ID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgKiAxLiBMZXQgcmVzdWx0IGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyBVbmljb2RlIFRvVW5pY29kZSB3aXRoIGRvbWFpbl9uYW1lXG4gICAgICogc2V0IHRvIGRvbWFpbiwgQ2hlY2tIeXBoZW5zIHNldCB0byBmYWxzZSwgQ2hlY2tCaWRpIHNldCB0byB0cnVlLFxuICAgICAqIENoZWNrSm9pbmVycyBzZXQgdG8gdHJ1ZSwgVXNlU1REM0FTQ0lJUnVsZXMgc2V0IHRvIGZhbHNlLCBhbmRcbiAgICAgKiBUcmFuc2l0aW9uYWxfUHJvY2Vzc2luZyBzZXQgdG8gZmFsc2UuXG4gICAgICogMi4gU2lnbmlmeSB2YWxpZGF0aW9uIGVycm9ycyBmb3IgYW55IHJldHVybmVkIGVycm9ycywgYW5kIHRoZW4sXG4gICAgICogcmV0dXJuIHJlc3VsdC5cbiAgICAgKi9cbiAgICAvLyBVc2Ugbm9kZS5qcyBmdW5jdGlvblxuICAgIGNvbnN0IHJlc3VsdCA9IHVybF8xLmRvbWFpblRvVW5pY29kZShkb21haW4pO1xuICAgIGlmIChyZXN1bHQgPT09IFwiXCIpIHtcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yKFwiSW52YWxpZCBkb21haW4gbmFtZS5cIik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnRzLmRvbWFpblRvVW5pY29kZSA9IGRvbWFpblRvVW5pY29kZTtcbi8qKlxuICogU2VyaWFsaXplcyBhbiBvcmlnaW4uXG4gKiBmdW5jdGlvbiBpcyBmcm9tIHRoZSBIVE1MIHNwZWM6XG4gKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhc2NpaS1zZXJpYWxpc2F0aW9uLW9mLWFuLW9yaWdpblxuICpcbiAqIEBwYXJhbSBvcmlnaW4gLSBhbiBvcmlnaW5cbiAqL1xuZnVuY3Rpb24gYXNjaWlTZXJpYWxpemF0aW9uT2ZBbk9yaWdpbihvcmlnaW4pIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBvcmlnaW4gaXMgYW4gb3BhcXVlIG9yaWdpbiwgdGhlbiByZXR1cm4gXCJudWxsXCIuXG4gICAgICogMi4gT3RoZXJ3aXNlLCBsZXQgcmVzdWx0IGJlIG9yaWdpbidzIHNjaGVtZS5cbiAgICAgKiAzLiBBcHBlbmQgXCI6Ly9cIiB0byByZXN1bHQuXG4gICAgICogNC4gQXBwZW5kIG9yaWdpbidzIGhvc3QsIHNlcmlhbGl6ZWQsIHRvIHJlc3VsdC5cbiAgICAgKiA1LiBJZiBvcmlnaW4ncyBwb3J0IGlzIG5vbi1udWxsLCBhcHBlbmQgYSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyICg6KSxcbiAgICAgKiBhbmQgb3JpZ2luJ3MgcG9ydCwgc2VyaWFsaXplZCwgdG8gcmVzdWx0LlxuICAgICAqIDYuIFJldHVybiByZXN1bHQuXG4gICAgICovXG4gICAgaWYgKG9yaWdpblswXSA9PT0gXCJcIiAmJiBvcmlnaW5bMV0gPT09IFwiXCIgJiYgb3JpZ2luWzJdID09PSBudWxsICYmIG9yaWdpblszXSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gXCJudWxsXCI7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSBvcmlnaW5bMF0gKyBcIjovL1wiICsgaG9zdFNlcmlhbGl6ZXIob3JpZ2luWzFdKTtcbiAgICBpZiAob3JpZ2luWzJdICE9PSBudWxsKVxuICAgICAgICByZXN1bHQgKz0gXCI6XCIgKyBvcmlnaW5bMl0udG9TdHJpbmcoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0cy5hc2NpaVNlcmlhbGl6YXRpb25PZkFuT3JpZ2luID0gYXNjaWlTZXJpYWxpemF0aW9uT2ZBbk9yaWdpbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVVSTEFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gbnVtYmVyIGlzIGFuIEFTQ0lJIGJ5dGUuXG4gKlxuICogQHBhcmFtIGJ5dGUgLSBhIGJ5dGVcbiAqL1xuZnVuY3Rpb24gaXNBU0NJSUJ5dGUoYnl0ZSkge1xuICAgIC8qKlxuICAgICAqIEFuIEFTQ0lJIGJ5dGUgaXMgYSBieXRlIGluIHRoZSByYW5nZSAweDAwIChOVUwpIHRvIDB4N0YgKERFTCksIGluY2x1c2l2ZS5cbiAgICAgKi9cbiAgICByZXR1cm4gYnl0ZSA+PSAweDAwICYmIGJ5dGUgPD0gMHg3Rjtcbn1cbmV4cG9ydHMuaXNBU0NJSUJ5dGUgPSBpc0FTQ0lJQnl0ZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJ5dGUuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFJldHVybnMgdGhlIGNvdW50IG9mIGJ5dGVzIGluIGEgc2VxdWVuY2UuXG4gKlxuICogQHBhcmFtIGxpc3QgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqL1xuZnVuY3Rpb24gbGVuZ3RoKGxpc3QpIHtcbiAgICAvKipcbiAgICAgKiBBIGJ5dGUgc2VxdWVuY2XigJlzIGxlbmd0aCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGl0IGNvbnRhaW5zLlxuICAgICAqL1xuICAgIHJldHVybiBsaXN0Lmxlbmd0aDtcbn1cbmV4cG9ydHMubGVuZ3RoID0gbGVuZ3RoO1xuLyoqXG4gKiBDb252ZXJ0cyBlYWNoIGJ5dGUgdG8gbG93ZXJjYXNlLlxuICpcbiAqIEBwYXJhbSBsaXN0IC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGJ5dGVMb3dlcmNhc2UobGlzdCkge1xuICAgIC8qKlxuICAgICAqIFRvIGJ5dGUtbG93ZXJjYXNlIGEgYnl0ZSBzZXF1ZW5jZSwgaW5jcmVhc2UgZWFjaCBieXRlIGl0IGNvbnRhaW5zLCBpbiB0aGVcbiAgICAgKiByYW5nZSAweDQxIChBKSB0byAweDVBIChaKSwgaW5jbHVzaXZlLCBieSAweDIwLlxuICAgICAqL1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjID0gbGlzdFtpXTtcbiAgICAgICAgaWYgKGMgPj0gMHg0MSAmJiBjIDw9IDB4NUEpIHtcbiAgICAgICAgICAgIGxpc3RbaV0gPSBjICsgMHgyMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuYnl0ZUxvd2VyY2FzZSA9IGJ5dGVMb3dlcmNhc2U7XG4vKipcbiAqIENvbnZlcnRzIGVhY2ggYnl0ZSB0byB1cHBlcmNhc2UuXG4gKlxuICogQHBhcmFtIGxpc3QgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqL1xuZnVuY3Rpb24gYnl0ZVVwcGVyY2FzZShsaXN0KSB7XG4gICAgLyoqXG4gICAgICogVG8gYnl0ZS11cHBlcmNhc2UgYSBieXRlIHNlcXVlbmNlLCBzdWJ0cmFjdCBlYWNoIGJ5dGUgaXQgY29udGFpbnMsIGluIHRoZVxuICAgICAqIHJhbmdlIDB4NjEgKGEpIHRvIDB4N0EgKHopLCBpbmNsdXNpdmUsIGJ5IDB4MjAuXG4gICAgICovXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGMgPSBsaXN0W2ldO1xuICAgICAgICBpZiAoYyA+PSAweDYxICYmIGMgPD0gMHg3QSkge1xuICAgICAgICAgICAgbGlzdFtpXSA9IGMgLSAweDIwO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0cy5ieXRlVXBwZXJjYXNlID0gYnl0ZVVwcGVyY2FzZTtcbi8qKlxuICogQ29tcGFyZXMgdHdvIGJ5dGUgc2VxdWVuY2VzLlxuICpcbiAqIEBwYXJhbSBsaXN0QSAtIGEgYnl0ZSBzZXF1ZW5jZVxuICogQHBhcmFtIGxpc3RCIC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGJ5dGVDYXNlSW5zZW5zaXRpdmVNYXRjaChsaXN0QSwgbGlzdEIpIHtcbiAgICAvKipcbiAgICAgKiBBIGJ5dGUgc2VxdWVuY2UgQSBpcyBhIGJ5dGUtY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3IgYSBieXRlIHNlcXVlbmNlIEIsXG4gICAgICogaWYgdGhlIGJ5dGUtbG93ZXJjYXNlIG9mIEEgaXMgdGhlIGJ5dGUtbG93ZXJjYXNlIG9mIEIuXG4gICAgICovXG4gICAgaWYgKGxpc3RBLmxlbmd0aCAhPT0gbGlzdEIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0QS5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgYSA9IGxpc3RBW2ldO1xuICAgICAgICBsZXQgYiA9IGxpc3RCW2ldO1xuICAgICAgICBpZiAoYSA+PSAweDQxICYmIGEgPD0gMHg1QSlcbiAgICAgICAgICAgIGEgKz0gMHgyMDtcbiAgICAgICAgaWYgKGIgPj0gMHg0MSAmJiBiIDw9IDB4NUEpXG4gICAgICAgICAgICBiICs9IDB4MjA7XG4gICAgICAgIGlmIChhICE9PSBiKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydHMuYnl0ZUNhc2VJbnNlbnNpdGl2ZU1hdGNoID0gYnl0ZUNhc2VJbnNlbnNpdGl2ZU1hdGNoO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGBsaXN0QWAgc3RhcnRzIHdpdGggYGxpc3RCYC5cbiAqXG4gKiBAcGFyYW0gbGlzdEEgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqIEBwYXJhbSBsaXN0QiAtIGEgYnl0ZSBzZXF1ZW5jZVxuICovXG5mdW5jdGlvbiBzdGFydHNXaXRoKGxpc3RBLCBsaXN0Qikge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBpIGJlIDAuXG4gICAgICogMi4gV2hpbGUgdHJ1ZTpcbiAgICAgKiAyLjEuIExldCBhQnl0ZSBiZSB0aGUgaXRoIGJ5dGUgb2YgYSBpZiBpIGlzIGxlc3MgdGhhbiBh4oCZcyBsZW5ndGg7IG90aGVyd2lzZSBudWxsLlxuICAgICAqIDIuMy4gTGV0IGJCeXRlIGJlIHRoZSBpdGggYnl0ZSBvZiBiIGlmIGkgaXMgbGVzcyB0aGFuIGLigJlzIGxlbmd0aDsgb3RoZXJ3aXNlIG51bGwuXG4gICAgICogMi40LiBJZiBiQnl0ZSBpcyBudWxsLCB0aGVuIHJldHVybiB0cnVlLlxuICAgICAqIDIuNS4gUmV0dXJuIGZhbHNlIGlmIGFCeXRlIGlzIG5vdCBiQnl0ZS5cbiAgICAgKiAyLjYuIFNldCBpIHRvIGkgKyAxLlxuICAgICAqL1xuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAoaSA+PSBsaXN0QS5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChpID49IGxpc3RCLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAobGlzdEFbaV0gIT09IGxpc3RCW2ldKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpKys7XG4gICAgfVxufVxuZXhwb3J0cy5zdGFydHNXaXRoID0gc3RhcnRzV2l0aDtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBgbGlzdEFgIGlzIGxlc3MgdGhhbiBgbGlzdEJgLlxuICpcbiAqIEBwYXJhbSBsaXN0QSAtIGEgYnl0ZSBzZXF1ZW5jZVxuICogQHBhcmFtIGxpc3RCIC0gYSBieXRlIHNlcXVlbmNlXG4gKi9cbmZ1bmN0aW9uIGJ5dGVMZXNzVGhhbihsaXN0QSwgbGlzdEIpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBiIHN0YXJ0cyB3aXRoIGEsIHRoZW4gcmV0dXJuIGZhbHNlLlxuICAgICAqIDIuIElmIGEgc3RhcnRzIHdpdGggYiwgdGhlbiByZXR1cm4gdHJ1ZS5cbiAgICAgKiAzLiBMZXQgbiBiZSB0aGUgc21hbGxlc3QgaW5kZXggc3VjaCB0aGF0IHRoZSBudGggYnl0ZSBvZiBhIGlzIGRpZmZlcmVudFxuICAgICAqIGZyb20gdGhlIG50aCBieXRlIG9mIGIuIChUaGVyZSBoYXMgdG8gYmUgc3VjaCBhbiBpbmRleCwgc2luY2UgbmVpdGhlciBieXRlXG4gICAgICogc2VxdWVuY2Ugc3RhcnRzIHdpdGggdGhlIG90aGVyLilcbiAgICAgKiA0LiBJZiB0aGUgbnRoIGJ5dGUgb2YgYSBpcyBsZXNzIHRoYW4gdGhlIG50aCBieXRlIG9mIGIsIHRoZW4gcmV0dXJuIHRydWUuXG4gICAgICogNS4gUmV0dXJuIGZhbHNlLlxuICAgICAqL1xuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAoaSA+PSBsaXN0QS5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChpID49IGxpc3RCLmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhID0gbGlzdEFbaV07XG4gICAgICAgIGNvbnN0IGIgPSBsaXN0QltpXTtcbiAgICAgICAgaWYgKGEgPCBiKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGVsc2UgaWYgKGEgPiBiKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpKys7XG4gICAgfVxufVxuZXhwb3J0cy5ieXRlTGVzc1RoYW4gPSBieXRlTGVzc1RoYW47XG4vKipcbiAqIERlY29kZXMgYSBieXRlIHNlcXVlbmNlIGludG8gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGxpc3QgLSBhIGJ5dGUgc2VxdWVuY2VcbiAqL1xuZnVuY3Rpb24gaXNvbW9ycGhpY0RlY29kZShsaXN0KSB7XG4gICAgLyoqXG4gICAgICogVG8gaXNvbW9ycGhpYyBkZWNvZGUgYSBieXRlIHNlcXVlbmNlIGlucHV0LCByZXR1cm4gYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzXG4gICAgICogZXF1YWwgdG8gaW5wdXTigJlzIGxlbmd0aCBhbmQgd2hvc2UgY29kZSBwb2ludHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZXMgYXNcbiAgICAgKiBpbnB1dOKAmXMgYnl0ZXMsIGluIHRoZSBzYW1lIG9yZGVyLlxuICAgICAqL1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5saXN0KTtcbn1cbmV4cG9ydHMuaXNvbW9ycGhpY0RlY29kZSA9IGlzb21vcnBoaWNEZWNvZGU7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1CeXRlU2VxdWVuY2UuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBUZXh0SW1wbF8xID0gcmVxdWlyZShcIi4vVGV4dEltcGxcIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9pbnRlcmZhY2VzXCIpO1xuY29uc3QgV2ViSURMQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtL1dlYklETEFsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhIENEQVRBIG5vZGUuXG4gKi9cbmNsYXNzIENEQVRBU2VjdGlvbkltcGwgZXh0ZW5kcyBUZXh0SW1wbF8xLlRleHRJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgQ0RBVEFTZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRhIC0gbm9kZSBjb250ZW50c1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRhdGEpIHtcbiAgICAgICAgc3VwZXIoZGF0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYENEQVRBU2VjdGlvbmAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnQgLSBvd25lciBkb2N1bWVudFxuICAgICAqIEBwYXJhbSBkYXRhIC0gbm9kZSBjb250ZW50c1xuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBkYXRhID0gJycpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBDREFUQVNlY3Rpb25JbXBsKGRhdGEpO1xuICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufVxuZXhwb3J0cy5DREFUQVNlY3Rpb25JbXBsID0gQ0RBVEFTZWN0aW9uSW1wbDtcbi8qKlxuICogSW5pdGlhbGl6ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuICovXG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoQ0RBVEFTZWN0aW9uSW1wbC5wcm90b3R5cGUsIFwiX25vZGVUeXBlXCIsIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5DRGF0YSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DREFUQVNlY3Rpb25JbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IENoYXJhY3RlckRhdGFJbXBsXzEgPSByZXF1aXJlKFwiLi9DaGFyYWN0ZXJEYXRhSW1wbFwiKTtcbmNvbnN0IFdlYklETEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobS9XZWJJRExBbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb21tZW50IG5vZGUuXG4gKi9cbmNsYXNzIENvbW1lbnRJbXBsIGV4dGVuZHMgQ2hhcmFjdGVyRGF0YUltcGxfMS5DaGFyYWN0ZXJEYXRhSW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYENvbW1lbnRgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRhdGEgLSB0aGUgdGV4dCBjb250ZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGF0YSA9ICcnKSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBDb21tZW50YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gICAgICogQHBhcmFtIGRhdGEgLSBub2RlIGNvbnRlbnRzXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUoZG9jdW1lbnQsIGRhdGEgPSAnJykge1xuICAgICAgICBjb25zdCBub2RlID0gbmV3IENvbW1lbnRJbXBsKGRhdGEpO1xuICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufVxuZXhwb3J0cy5Db21tZW50SW1wbCA9IENvbW1lbnRJbXBsO1xuLyoqXG4gKiBJbml0aWFsaXplIHByb3RvdHlwZSBwcm9wZXJ0aWVzXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChDb21tZW50SW1wbC5wcm90b3R5cGUsIFwiX25vZGVUeXBlXCIsIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Db21tZW50KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbW1lbnRJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRXZlbnRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudEltcGxcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYW5kIGV2ZW50IHRoYXQgY2FycmllcyBjdXN0b20gZGF0YS5cbiAqL1xuY2xhc3MgQ3VzdG9tRXZlbnRJbXBsIGV4dGVuZHMgRXZlbnRJbXBsXzEuRXZlbnRJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgQ3VzdG9tRXZlbnRgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHR5cGUsIGV2ZW50SW5pdCkge1xuICAgICAgICBzdXBlcih0eXBlLCBldmVudEluaXQpO1xuICAgICAgICB0aGlzLl9kZXRhaWwgPSBudWxsO1xuICAgICAgICB0aGlzLl9kZXRhaWwgPSAoZXZlbnRJbml0ICYmIGV2ZW50SW5pdC5kZXRhaWwpIHx8IG51bGw7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBkZXRhaWwoKSB7IHJldHVybiB0aGlzLl9kZXRhaWw7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBpbml0Q3VzdG9tRXZlbnQodHlwZSwgYnViYmxlcyA9IGZhbHNlLCBjYW5jZWxhYmxlID0gZmFsc2UsIGRldGFpbCA9IG51bGwpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgZGlzcGF0Y2ggZmxhZyBpcyBzZXQsIHRoZW4gcmV0dXJuLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuX2Rpc3BhdGNoRmxhZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIEluaXRpYWxpemUgdGhlIGNvbnRleHQgb2JqZWN0IHdpdGggdHlwZSwgYnViYmxlcywgYW5kIGNhbmNlbGFibGUuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5ldmVudF9pbml0aWFsaXplKHRoaXMsIHR5cGUsIGJ1YmJsZXMsIGNhbmNlbGFibGUpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gU2V0IHRoZSBjb250ZXh0IG9iamVjdOKAmXMgZGV0YWlsIGF0dHJpYnV0ZSB0byBkZXRhaWwuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9kZXRhaWwgPSBkZXRhaWw7XG4gICAgfVxufVxuZXhwb3J0cy5DdXN0b21FdmVudEltcGwgPSBDdXN0b21FdmVudEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1DdXN0b21FdmVudEltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9pbnRlcmZhY2VzXCIpO1xuY29uc3QgTm9kZUltcGxfMSA9IHJlcXVpcmUoXCIuL05vZGVJbXBsXCIpO1xuY29uc3QgV2ViSURMQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtL1dlYklETEFsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhbiBvYmplY3QgcHJvdmlkaW5nIG1ldGhvZHMgd2hpY2ggYXJlIG5vdCBkZXBlbmRlbnQgb25cbiAqIGFueSBwYXJ0aWN1bGFyIGRvY3VtZW50XG4gKi9cbmNsYXNzIERvY3VtZW50VHlwZUltcGwgZXh0ZW5kcyBOb2RlSW1wbF8xLk5vZGVJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgRG9jdW1lbnRUeXBlYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgbm9kZVxuICAgICAqIEBwYXJhbSBwdWJsaWNJZCAtIGBQVUJMSUNgIGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0gc3lzdGVtSWQgLSBgU1lTVEVNYCBpZGVudGlmaWVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX25hbWUgPSAnJztcbiAgICAgICAgdGhpcy5fcHVibGljSWQgPSAnJztcbiAgICAgICAgdGhpcy5fc3lzdGVtSWQgPSAnJztcbiAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuX3B1YmxpY0lkID0gcHVibGljSWQ7XG4gICAgICAgIHRoaXMuX3N5c3RlbUlkID0gc3lzdGVtSWQ7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBwdWJsaWNJZCgpIHsgcmV0dXJuIHRoaXMuX3B1YmxpY0lkOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHN5c3RlbUlkKCkgeyByZXR1cm4gdGhpcy5fc3lzdGVtSWQ7IH1cbiAgICAvLyBNSVhJTjogQ2hpbGROb2RlXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBiZWZvcmUoLi4ubm9kZXMpIHsgdGhyb3cgbmV3IEVycm9yKFwiTWl4aW46IENoaWxkTm9kZSBub3QgaW1wbGVtZW50ZWQuXCIpOyB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBhZnRlciguLi5ub2RlcykgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogQ2hpbGROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJlcGxhY2VXaXRoKC4uLm5vZGVzKSB7IHRocm93IG5ldyBFcnJvcihcIk1peGluOiBDaGlsZE5vZGUgbm90IGltcGxlbWVudGVkLlwiKTsgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmVtb3ZlKCkgeyB0aHJvdyBuZXcgRXJyb3IoXCJNaXhpbjogQ2hpbGROb2RlIG5vdCBpbXBsZW1lbnRlZC5cIik7IH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBEb2N1bWVudFR5cGVgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAgICAgKiBAcGFyYW0gbmFtZSAtIG5hbWUgb2YgdGhlIG5vZGVcbiAgICAgKiBAcGFyYW0gcHVibGljSWQgLSBgUFVCTElDYCBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIHN5c3RlbUlkIC0gYFNZU1RFTWAgaWRlbnRpZmllclxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCA9ICcnLCBzeXN0ZW1JZCA9ICcnKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgRG9jdW1lbnRUeXBlSW1wbChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpO1xuICAgICAgICBub2RlLl9ub2RlRG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufVxuZXhwb3J0cy5Eb2N1bWVudFR5cGVJbXBsID0gRG9jdW1lbnRUeXBlSW1wbDtcbi8qKlxuICogSW5pdGlhbGl6ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuICovXG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRG9jdW1lbnRUeXBlSW1wbC5wcm90b3R5cGUsIFwiX25vZGVUeXBlXCIsIGludGVyZmFjZXNfMS5Ob2RlVHlwZS5Eb2N1bWVudFR5cGUpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RG9jdW1lbnRUeXBlSW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IF8xID0gcmVxdWlyZShcIi4vXCIpO1xuY29uc3QgaW5mcmFfMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvaW5mcmFcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIG9iamVjdCBwcm92aWRpbmcgbWV0aG9kcyB3aGljaCBhcmUgbm90IGRlcGVuZGVudCBvblxuICogYW55IHBhcnRpY3VsYXIgZG9jdW1lbnQuXG4gKi9cbmNsYXNzIERPTUltcGxlbWVudGF0aW9uSW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYERPTUltcGxlbWVudGF0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkb2N1bWVudCAtIHRoZSBhc3NvY2lhdGVkIGRvY3VtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy5fYXNzb2NpYXRlZERvY3VtZW50ID0gZG9jdW1lbnQgfHwgXzEuZG9tLndpbmRvdy5kb2N1bWVudDtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRG9jdW1lbnRUeXBlKHF1YWxpZmllZE5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gVmFsaWRhdGUgcXVhbGlmaWVkTmFtZS5cbiAgICAgICAgICogMi4gUmV0dXJuIGEgbmV3IGRvY3R5cGUsIHdpdGggcXVhbGlmaWVkTmFtZSBhcyBpdHMgbmFtZSwgcHVibGljSWQgYXMgaXRzXG4gICAgICAgICAqIHB1YmxpYyBJRCwgYW5kIHN5c3RlbUlkIGFzIGl0cyBzeXN0ZW0gSUQsIGFuZCB3aXRoIGl0cyBub2RlIGRvY3VtZW50IHNldFxuICAgICAgICAgKiB0byB0aGUgYXNzb2NpYXRlZCBkb2N1bWVudCBvZiB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5uYW1lc3BhY2VfdmFsaWRhdGUocXVhbGlmaWVkTmFtZSk7XG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5jcmVhdGVfZG9jdW1lbnRUeXBlKHRoaXMuX2Fzc29jaWF0ZWREb2N1bWVudCwgcXVhbGlmaWVkTmFtZSwgcHVibGljSWQsIHN5c3RlbUlkKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY3JlYXRlRG9jdW1lbnQobmFtZXNwYWNlLCBxdWFsaWZpZWROYW1lLCBkb2N0eXBlID0gbnVsbCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IGRvY3VtZW50IGJlIGEgbmV3IFhNTERvY3VtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBhbGdvcml0aG1fMS5jcmVhdGVfeG1sRG9jdW1lbnQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIExldCBlbGVtZW50IGJlIG51bGwuXG4gICAgICAgICAqIDMuIElmIHF1YWxpZmllZE5hbWUgaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IGVsZW1lbnQgdG9cbiAgICAgICAgICogdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBpbnRlcm5hbCBjcmVhdGVFbGVtZW50TlMgc3RlcHMsIGdpdmVuIGRvY3VtZW50LFxuICAgICAgICAgKiBuYW1lc3BhY2UsIHF1YWxpZmllZE5hbWUsIGFuZCBhbiBlbXB0eSBkaWN0aW9uYXJ5LlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGVsZW1lbnQgPSBudWxsO1xuICAgICAgICBpZiAocXVhbGlmaWVkTmFtZSkge1xuICAgICAgICAgICAgZWxlbWVudCA9IGFsZ29yaXRobV8xLmRvY3VtZW50X2ludGVybmFsQ3JlYXRlRWxlbWVudE5TKGRvY3VtZW50LCBuYW1lc3BhY2UsIHF1YWxpZmllZE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBJZiBkb2N0eXBlIGlzIG5vbi1udWxsLCBhcHBlbmQgZG9jdHlwZSB0byBkb2N1bWVudC5cbiAgICAgICAgICogNS4gSWYgZWxlbWVudCBpcyBub24tbnVsbCwgYXBwZW5kIGVsZW1lbnQgdG8gZG9jdW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZG9jdHlwZSlcbiAgICAgICAgICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKGRvY3R5cGUpO1xuICAgICAgICBpZiAoZWxlbWVudClcbiAgICAgICAgICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogNi4gZG9jdW1lbnTigJlzIG9yaWdpbiBpcyBjb250ZXh0IG9iamVjdOKAmXMgYXNzb2NpYXRlZCBkb2N1bWVudOKAmXMgb3JpZ2luLlxuICAgICAgICAgKi9cbiAgICAgICAgZG9jdW1lbnQuX29yaWdpbiA9IHRoaXMuX2Fzc29jaWF0ZWREb2N1bWVudC5fb3JpZ2luO1xuICAgICAgICAvKipcbiAgICAgICAgICogNy4gZG9jdW1lbnTigJlzIGNvbnRlbnQgdHlwZSBpcyBkZXRlcm1pbmVkIGJ5IG5hbWVzcGFjZTpcbiAgICAgICAgICogLSBIVE1MIG5hbWVzcGFjZVxuICAgICAgICAgKiBhcHBsaWNhdGlvbi94aHRtbCt4bWxcbiAgICAgICAgICogLSBTVkcgbmFtZXNwYWNlXG4gICAgICAgICAqIGltYWdlL3N2Zyt4bWxcbiAgICAgICAgICogLSBBbnkgb3RoZXIgbmFtZXNwYWNlXG4gICAgICAgICAqIGFwcGxpY2F0aW9uL3htbFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuSFRNTClcbiAgICAgICAgICAgIGRvY3VtZW50Ll9jb250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24veGh0bWwreG1sXCI7XG4gICAgICAgIGVsc2UgaWYgKG5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuU1ZHKVxuICAgICAgICAgICAgZG9jdW1lbnQuX2NvbnRlbnRUeXBlID0gXCJpbWFnZS9zdmcreG1sXCI7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGRvY3VtZW50Ll9jb250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24veG1sXCI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA4LiBSZXR1cm4gZG9jdW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNyZWF0ZUhUTUxEb2N1bWVudCh0aXRsZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IGRvYyBiZSBhIG5ldyBkb2N1bWVudCB0aGF0IGlzIGFuIEhUTUwgZG9jdW1lbnQuXG4gICAgICAgICAqIDIuIFNldCBkb2PigJlzIGNvbnRlbnQgdHlwZSB0byBcInRleHQvaHRtbFwiLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZG9jID0gYWxnb3JpdGhtXzEuY3JlYXRlX2RvY3VtZW50KCk7XG4gICAgICAgIGRvYy5fdHlwZSA9IFwiaHRtbFwiO1xuICAgICAgICBkb2MuX2NvbnRlbnRUeXBlID0gXCJ0ZXh0L2h0bWxcIjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIEFwcGVuZCBhIG5ldyBkb2N0eXBlLCB3aXRoIFwiaHRtbFwiIGFzIGl0cyBuYW1lIGFuZCB3aXRoIGl0cyBub2RlXG4gICAgICAgICAqIGRvY3VtZW50IHNldCB0byBkb2MsIHRvIGRvYy5cbiAgICAgICAgICovXG4gICAgICAgIGRvYy5hcHBlbmRDaGlsZChhbGdvcml0aG1fMS5jcmVhdGVfZG9jdW1lbnRUeXBlKGRvYywgXCJodG1sXCIsIFwiXCIsIFwiXCIpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIEFwcGVuZCB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGFuIGVsZW1lbnQgZ2l2ZW4gZG9jLCBodG1sLCBhbmQgdGhlXG4gICAgICAgICAqIEhUTUwgbmFtZXNwYWNlLCB0byBkb2MuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBodG1sRWxlbWVudCA9IGFsZ29yaXRobV8xLmVsZW1lbnRfY3JlYXRlQW5FbGVtZW50KGRvYywgXCJodG1sXCIsIGluZnJhXzEubmFtZXNwYWNlLkhUTUwpO1xuICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHRtbEVsZW1lbnQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogNS4gQXBwZW5kIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZWxlbWVudCBnaXZlbiBkb2MsIGhlYWQsIGFuZCB0aGVcbiAgICAgICAgICogSFRNTCBuYW1lc3BhY2UsIHRvIHRoZSBodG1sIGVsZW1lbnQgY3JlYXRlZCBlYXJsaWVyLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgaGVhZEVsZW1lbnQgPSBhbGdvcml0aG1fMS5lbGVtZW50X2NyZWF0ZUFuRWxlbWVudChkb2MsIFwiaGVhZFwiLCBpbmZyYV8xLm5hbWVzcGFjZS5IVE1MKTtcbiAgICAgICAgaHRtbEVsZW1lbnQuYXBwZW5kQ2hpbGQoaGVhZEVsZW1lbnQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogNi4gSWYgdGl0bGUgaXMgZ2l2ZW46XG4gICAgICAgICAqIDYuMS4gQXBwZW5kIHRoZSByZXN1bHQgb2YgY3JlYXRpbmcgYW4gZWxlbWVudCBnaXZlbiBkb2MsIHRpdGxlLCBhbmRcbiAgICAgICAgICogdGhlIEhUTUwgbmFtZXNwYWNlLCB0byB0aGUgaGVhZCBlbGVtZW50IGNyZWF0ZWQgZWFybGllci5cbiAgICAgICAgICogNi4yLiBBcHBlbmQgYSBuZXcgVGV4dCBub2RlLCB3aXRoIGl0cyBkYXRhIHNldCB0byB0aXRsZSAod2hpY2ggY291bGRcbiAgICAgICAgICogYmUgdGhlIGVtcHR5IHN0cmluZykgYW5kIGl0cyBub2RlIGRvY3VtZW50IHNldCB0byBkb2MsIHRvIHRoZSB0aXRsZVxuICAgICAgICAgKiBlbGVtZW50IGNyZWF0ZWQgZWFybGllci5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aXRsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCB0aXRsZUVsZW1lbnQgPSBhbGdvcml0aG1fMS5lbGVtZW50X2NyZWF0ZUFuRWxlbWVudChkb2MsIFwidGl0bGVcIiwgaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCk7XG4gICAgICAgICAgICBoZWFkRWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBhbGdvcml0aG1fMS5jcmVhdGVfdGV4dChkb2MsIHRpdGxlKTtcbiAgICAgICAgICAgIHRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDcuIEFwcGVuZCB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGFuIGVsZW1lbnQgZ2l2ZW4gZG9jLCBib2R5LCBhbmQgdGhlXG4gICAgICAgICAqIEhUTUwgbmFtZXNwYWNlLCB0byB0aGUgaHRtbCBlbGVtZW50IGNyZWF0ZWQgZWFybGllci5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gYWxnb3JpdGhtXzEuZWxlbWVudF9jcmVhdGVBbkVsZW1lbnQoZG9jLCBcImJvZHlcIiwgaW5mcmFfMS5uYW1lc3BhY2UuSFRNTCk7XG4gICAgICAgIGh0bWxFbGVtZW50LmFwcGVuZENoaWxkKGJvZHlFbGVtZW50KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDguIGRvY+KAmXMgb3JpZ2luIGlzIGNvbnRleHQgb2JqZWN04oCZcyBhc3NvY2lhdGVkIGRvY3VtZW504oCZcyBvcmlnaW4uXG4gICAgICAgICAqL1xuICAgICAgICBkb2MuX29yaWdpbiA9IHRoaXMuX2Fzc29jaWF0ZWREb2N1bWVudC5fb3JpZ2luO1xuICAgICAgICAvKipcbiAgICAgICAgICogOS4gUmV0dXJuIGRvYy5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBkb2M7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGhhc0ZlYXR1cmUoKSB7IHJldHVybiB0cnVlOyB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgRE9NSW1wbGVtZW50YXRpb25gLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRvY3VtZW50IC0gb3duZXIgZG9jdW1lbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgX2NyZWF0ZShkb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gbmV3IERPTUltcGxlbWVudGF0aW9uSW1wbChkb2N1bWVudCk7XG4gICAgfVxufVxuZXhwb3J0cy5ET01JbXBsZW1lbnRhdGlvbkltcGwgPSBET01JbXBsZW1lbnRhdGlvbkltcGw7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoRE9NSW1wbGVtZW50YXRpb25JbXBsLnByb3RvdHlwZSwgXCJfSURcIiwgXCJAb296Y2l0YWsvZG9tXCIpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RE9NSW1wbGVtZW50YXRpb25JbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgXzEgPSByZXF1aXJlKFwiLi9cIik7XG5jb25zdCBET01FeGNlcHRpb25fMSA9IHJlcXVpcmUoXCIuL0RPTUV4Y2VwdGlvblwiKTtcbmNvbnN0IGluZnJhXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL2luZnJhXCIpO1xuY29uc3QgYWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgdG9rZW4gc2V0LlxuICovXG5jbGFzcyBET01Ub2tlbkxpc3RJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgRE9NVG9rZW5MaXN0YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbGVtZW50IC0gYXNzb2NpYXRlZCBlbGVtZW50XG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZSAtIGFzc29jaWF0ZWQgYXR0cmlidXRlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgYXR0cmlidXRlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgZWxlbWVudCBiZSBhc3NvY2lhdGVkIGVsZW1lbnQuXG4gICAgICAgICAqIDIuIExldCBsb2NhbE5hbWUgYmUgYXNzb2NpYXRlZCBhdHRyaWJ1dGXigJlzIGxvY2FsIG5hbWUuXG4gICAgICAgICAqIDMuIExldCB2YWx1ZSBiZSB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIHZhbHVlIGdpdmVuIGVsZW1lbnRcbiAgICAgICAgICogYW5kIGxvY2FsTmFtZS5cbiAgICAgICAgICogNC4gUnVuIHRoZSBhdHRyaWJ1dGUgY2hhbmdlIHN0ZXBzIGZvciBlbGVtZW50LCBsb2NhbE5hbWUsIHZhbHVlLCB2YWx1ZSxcbiAgICAgICAgICogYW5kIG51bGwuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlID0gYXR0cmlidXRlO1xuICAgICAgICB0aGlzLl90b2tlblNldCA9IG5ldyBTZXQoKTtcbiAgICAgICAgY29uc3QgbG9jYWxOYW1lID0gYXR0cmlidXRlLl9sb2NhbE5hbWU7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gYWxnb3JpdGhtXzEuZWxlbWVudF9nZXRBbkF0dHJpYnV0ZVZhbHVlKGVsZW1lbnQsIGxvY2FsTmFtZSk7XG4gICAgICAgIC8vIGRlZmluZSBhIGNsb3N1cmUgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYXR0cmlidXRlJ3MgdmFsdWUgY2hhbmdlc1xuICAgICAgICBjb25zdCB0aGlzT2JqID0gdGhpcztcbiAgICAgICAgZnVuY3Rpb24gdXBkYXRlVG9rZW5TZXQoZWxlbWVudCwgbG9jYWxOYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIG5hbWVzcGFjZSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAxLiBJZiBsb2NhbE5hbWUgaXMgYXNzb2NpYXRlZCBhdHRyaWJ1dGXigJlzIGxvY2FsIG5hbWUsIG5hbWVzcGFjZSBpcyBudWxsLFxuICAgICAgICAgICAgICogYW5kIHZhbHVlIGlzIG51bGwsIHRoZW4gZW1wdHkgdG9rZW4gc2V0LlxuICAgICAgICAgICAgICogMi4gT3RoZXJ3aXNlLCBpZiBsb2NhbE5hbWUgaXMgYXNzb2NpYXRlZCBhdHRyaWJ1dGXigJlzIGxvY2FsIG5hbWUsXG4gICAgICAgICAgICAgKiBuYW1lc3BhY2UgaXMgbnVsbCwgdGhlbiBzZXQgdG9rZW4gc2V0IHRvIHZhbHVlLCBwYXJzZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChsb2NhbE5hbWUgPT09IHRoaXNPYmouX2F0dHJpYnV0ZS5fbG9jYWxOYW1lICYmIG5hbWVzcGFjZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIHRoaXNPYmouX3Rva2VuU2V0LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICB0aGlzT2JqLl90b2tlblNldCA9IGFsZ29yaXRobV8xLm9yZGVyZWRTZXRfcGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGFkZCB0aGUgY2xvc3VyZSB0byB0aGUgYXNzb2NpYXRlZCBlbGVtZW50J3MgYXR0cmlidXRlIGNoYW5nZSBzdGVwc1xuICAgICAgICB0aGlzLl9lbGVtZW50Ll9hdHRyaWJ1dGVDaGFuZ2VTdGVwcy5wdXNoKHVwZGF0ZVRva2VuU2V0KTtcbiAgICAgICAgaWYgKF8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEuZG9tX3J1bkF0dHJpYnV0ZUNoYW5nZVN0ZXBzKGVsZW1lbnQsIGxvY2FsTmFtZSwgdmFsdWUsIHZhbHVlLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxlbmd0aCBhdHRyaWJ1dGUnIGdldHRlciBtdXN0IHJldHVybiBjb250ZXh0IG9iamVjdOKAmXMgdG9rZW4gc2V04oCZc1xuICAgICAgICAgKiBzaXplLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rva2VuU2V0LnNpemU7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGl0ZW0oaW5kZXgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGluZGV4IGlzIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiBjb250ZXh0IG9iamVjdOKAmXMgdG9rZW4gc2V04oCZc1xuICAgICAgICAgKiBzaXplLCB0aGVuIHJldHVybiBudWxsLlxuICAgICAgICAgKiAyLiBSZXR1cm4gY29udGV4dCBvYmplY3TigJlzIHRva2VuIHNldFtpbmRleF0uXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy5fdG9rZW5TZXQpIHtcbiAgICAgICAgICAgIGlmIChpID09PSBpbmRleClcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNvbnRhaW5zKHRva2VuKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29udGFpbnModG9rZW4pIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0cnVlIGlmIGNvbnRleHRcbiAgICAgICAgICogb2JqZWN04oCZcyB0b2tlbiBzZXRbdG9rZW5dIGV4aXN0cywgYW5kIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl90b2tlblNldC5oYXModG9rZW4pO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBhZGQoLi4udG9rZW5zKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBGb3IgZWFjaCB0b2tlbiBpbiB0b2tlbnM6XG4gICAgICAgICAqIDEuMS4gSWYgdG9rZW4gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB0aHJvdyBhIFwiU3ludGF4RXJyb3JcIlxuICAgICAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDEuMi4gSWYgdG9rZW4gY29udGFpbnMgYW55IEFTQ0lJIHdoaXRlc3BhY2UsIHRoZW4gdGhyb3cgYW5cbiAgICAgICAgICogXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIEZvciBlYWNoIHRva2VuIGluIHRva2VucywgYXBwZW5kIHRva2VuIHRvIGNvbnRleHQgb2JqZWN04oCZcyB0b2tlbiBzZXQuXG4gICAgICAgICAqIDMuIFJ1biB0aGUgdXBkYXRlIHN0ZXBzLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbnMpIHtcbiAgICAgICAgICAgIGlmICh0b2tlbiA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuU3ludGF4RXJyb3IoXCJDYW5ub3QgYWRkIGFuIGVtcHR5IHRva2VuLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGluZnJhXzEuY29kZVBvaW50LkFTQ0lJV2hpdGVTcGFjZS50ZXN0KHRva2VuKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbnZhbGlkQ2hhcmFjdGVyRXJyb3IoXCJUb2tlbiBjYW5ub3QgY29udGFpbiB3aGl0ZXNwYWNlLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rva2VuU2V0LmFkZCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYWxnb3JpdGhtXzEudG9rZW5MaXN0X3VwZGF0ZVN0ZXBzKHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICByZW1vdmUoLi4udG9rZW5zKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBGb3IgZWFjaCB0b2tlbiBpbiB0b2tlbnM6XG4gICAgICAgICAqIDEuMS4gSWYgdG9rZW4gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB0aHJvdyBhIFwiU3ludGF4RXJyb3JcIlxuICAgICAgICAgKiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDEuMi4gSWYgdG9rZW4gY29udGFpbnMgYW55IEFTQ0lJIHdoaXRlc3BhY2UsIHRoZW4gdGhyb3cgYW5cbiAgICAgICAgICogXCJJbnZhbGlkQ2hhcmFjdGVyRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIEZvciBlYWNoIHRva2VuIGluIHRva2VucywgcmVtb3ZlIHRva2VuIGZyb20gY29udGV4dCBvYmplY3TigJlzIHRva2VuIHNldC5cbiAgICAgICAgICogMy4gUnVuIHRoZSB1cGRhdGUgc3RlcHMuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgICAgaWYgKHRva2VuID09PSAnJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5TeW50YXhFcnJvcihcIkNhbm5vdCByZW1vdmUgYW4gZW1wdHkgdG9rZW4uXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaW5mcmFfMS5jb2RlUG9pbnQuQVNDSUlXaGl0ZVNwYWNlLnRlc3QodG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcihcIlRva2VuIGNhbm5vdCBjb250YWluIHdoaXRlc3BhY2UuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG9rZW5TZXQuZGVsZXRlKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhbGdvcml0aG1fMS50b2tlbkxpc3RfdXBkYXRlU3RlcHModGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHRvZ2dsZSh0b2tlbiwgZm9yY2UgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIHRva2VuIGlzIHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gdGhyb3cgYSBcIlN5bnRheEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAyLiBJZiB0b2tlbiBjb250YWlucyBhbnkgQVNDSUkgd2hpdGVzcGFjZSwgdGhlbiB0aHJvdyBhblxuICAgICAgICAgKiBcIkludmFsaWRDaGFyYWN0ZXJFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0b2tlbiA9PT0gJycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5TeW50YXhFcnJvcihcIkNhbm5vdCB0b2dnbGUgYW4gZW1wdHkgdG9rZW4uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGluZnJhXzEuY29kZVBvaW50LkFTQ0lJV2hpdGVTcGFjZS50ZXN0KHRva2VuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcihcIlRva2VuIGNhbm5vdCBjb250YWluIHdoaXRlc3BhY2UuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBJZiBjb250ZXh0IG9iamVjdOKAmXMgdG9rZW4gc2V0W3Rva2VuXSBleGlzdHMsIHRoZW46XG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fdG9rZW5TZXQuaGFzKHRva2VuKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjEuIElmIGZvcmNlIGlzIGVpdGhlciBub3QgZ2l2ZW4gb3IgaXMgZmFsc2UsIHRoZW4gcmVtb3ZlIHRva2VuIGZyb21cbiAgICAgICAgICAgICAqIGNvbnRleHQgb2JqZWN04oCZcyB0b2tlbiBzZXQsIHJ1biB0aGUgdXBkYXRlIHN0ZXBzIGFuZCByZXR1cm4gZmFsc2UuXG4gICAgICAgICAgICAgKiAzLjIuIFJldHVybiB0cnVlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZm9yY2UgPT09IHVuZGVmaW5lZCB8fCBmb3JjZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b2tlblNldC5kZWxldGUodG9rZW4pO1xuICAgICAgICAgICAgICAgIGFsZ29yaXRobV8xLnRva2VuTGlzdF91cGRhdGVTdGVwcyh0aGlzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNC4gT3RoZXJ3aXNlLCBpZiBmb3JjZSBub3QgZ2l2ZW4gb3IgaXMgdHJ1ZSwgYXBwZW5kIHRva2VuIHRvIGNvbnRleHRcbiAgICAgICAgICogb2JqZWN04oCZcyB0b2tlbiBzZXQsIHJ1biB0aGUgdXBkYXRlIHN0ZXBzLCBhbmQgcmV0dXJuIHRydWUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZm9yY2UgPT09IHVuZGVmaW5lZCB8fCBmb3JjZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdG9rZW5TZXQuYWRkKHRva2VuKTtcbiAgICAgICAgICAgIGFsZ29yaXRobV8xLnRva2VuTGlzdF91cGRhdGVTdGVwcyh0aGlzKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA1LiBSZXR1cm4gZmFsc2UuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHJlcGxhY2UodG9rZW4sIG5ld1Rva2VuKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBlaXRoZXIgdG9rZW4gb3IgbmV3VG9rZW4gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB0aHJvdyBhXG4gICAgICAgICAqIFwiU3ludGF4RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDIuIElmIGVpdGhlciB0b2tlbiBvciBuZXdUb2tlbiBjb250YWlucyBhbnkgQVNDSUkgd2hpdGVzcGFjZSwgdGhlbiB0aHJvd1xuICAgICAgICAgKiBhbiBcIkludmFsaWRDaGFyYWN0ZXJFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0b2tlbiA9PT0gJycgfHwgbmV3VG9rZW4gPT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuU3ludGF4RXJyb3IoXCJDYW5ub3QgcmVwbGFjZSBhbiBlbXB0eSB0b2tlbi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaW5mcmFfMS5jb2RlUG9pbnQuQVNDSUlXaGl0ZVNwYWNlLnRlc3QodG9rZW4pIHx8IGluZnJhXzEuY29kZVBvaW50LkFTQ0lJV2hpdGVTcGFjZS50ZXN0KG5ld1Rva2VuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcihcIlRva2VuIGNhbm5vdCBjb250YWluIHdoaXRlc3BhY2UuXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBJZiBjb250ZXh0IG9iamVjdOKAmXMgdG9rZW4gc2V0IGRvZXMgbm90IGNvbnRhaW4gdG9rZW4sIHRoZW4gcmV0dXJuXG4gICAgICAgICAqIGZhbHNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF0aGlzLl90b2tlblNldC5oYXModG9rZW4pKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogNC4gUmVwbGFjZSB0b2tlbiBpbiBjb250ZXh0IG9iamVjdOKAmXMgdG9rZW4gc2V0IHdpdGggbmV3VG9rZW4uXG4gICAgICAgICAqIDUuIFJ1biB0aGUgdXBkYXRlIHN0ZXBzLlxuICAgICAgICAgKiA2LiBSZXR1cm4gdHJ1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGluZnJhXzEuc2V0LnJlcGxhY2UodGhpcy5fdG9rZW5TZXQsIHRva2VuLCBuZXdUb2tlbik7XG4gICAgICAgIGFsZ29yaXRobV8xLnRva2VuTGlzdF91cGRhdGVTdGVwcyh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHN1cHBvcnRzKHRva2VuKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgcmVzdWx0IGJlIHRoZSByZXR1cm4gdmFsdWUgb2YgdmFsaWRhdGlvbiBzdGVwcyBjYWxsZWQgd2l0aCB0b2tlbi5cbiAgICAgICAgICogMi4gUmV0dXJuIHJlc3VsdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS50b2tlbkxpc3RfdmFsaWRhdGlvblN0ZXBzKHRoaXMsIHRva2VuKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHZhbHVlIGF0dHJpYnV0ZSBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgY29udGV4dCBvYmplY3TigJlzXG4gICAgICAgICAqIHNlcmlhbGl6ZSBzdGVwcy5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS50b2tlbkxpc3Rfc2VyaWFsaXplU3RlcHModGhpcyk7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWx1ZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2V0dGluZyB0aGUgdmFsdWUgYXR0cmlidXRlIG11c3Qgc2V0IGFuIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgdGhlXG4gICAgICAgICAqIGFzc29jaWF0ZWQgZWxlbWVudCB1c2luZyBhc3NvY2lhdGVkIGF0dHJpYnV0ZeKAmXMgbG9jYWwgbmFtZSBhbmQgdGhlIGdpdmVuXG4gICAgICAgICAqIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEuZWxlbWVudF9zZXRBbkF0dHJpYnV0ZVZhbHVlKHRoaXMuX2VsZW1lbnQsIHRoaXMuX2F0dHJpYnV0ZS5fbG9jYWxOYW1lLCB2YWx1ZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3IgZm9yIHRoZSB0b2tlbiBzZXQuXG4gICAgICovXG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIGNvbnN0IGl0ID0gdGhpcy5fdG9rZW5TZXRbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXQubmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBET01Ub2tlbkxpc3RgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVsZW1lbnQgLSBhc3NvY2lhdGVkIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlIC0gYXNzb2NpYXRlZCBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBzdGF0aWMgX2NyZWF0ZShlbGVtZW50LCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBET01Ub2tlbkxpc3RJbXBsKGVsZW1lbnQsIGF0dHJpYnV0ZSk7XG4gICAgfVxufVxuZXhwb3J0cy5ET01Ub2tlbkxpc3RJbXBsID0gRE9NVG9rZW5MaXN0SW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURPTVRva2VuTGlzdEltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCIuLi91dGlsXCIpO1xuY29uc3QgdXRpbF8yID0gcmVxdWlyZShcIkBvb3pjaXRhay91dGlsXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBlbGVtZW50cy5cbiAqL1xuY2xhc3MgSFRNTENvbGxlY3Rpb25JbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgSFRNTENvbGxlY3Rpb25gLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAgICAgKiBAcGFyYW0gZmlsdGVyIC0gbm9kZSBmaWx0ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihyb290LCBmaWx0ZXIpIHtcbiAgICAgICAgdGhpcy5fbGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSByb290O1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgIHJldHVybiBuZXcgUHJveHkodGhpcywgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBsZW5ndGgoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbGVuZ3RoIGF0dHJpYnV0ZeKAmXMgZ2V0dGVyIG11c3QgcmV0dXJuIHRoZSBudW1iZXIgb2Ygbm9kZXNcbiAgICAgICAgICogcmVwcmVzZW50ZWQgYnkgdGhlIGNvbGxlY3Rpb24uXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBsZXQgbm9kZSA9IGFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZSh0aGlzLl9yb290LCBmYWxzZSwgZmFsc2UsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShlKSAmJiB0aGlzLl9maWx0ZXIoZSkpO1xuICAgICAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIG5vZGUgPSBhbGdvcml0aG1fMS50cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZSh0aGlzLl9yb290LCBub2RlLCBmYWxzZSwgZmFsc2UsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShlKSAmJiB0aGlzLl9maWx0ZXIoZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaXRlbShpbmRleCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGl0ZW0oaW5kZXgpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0aGUgaW5kZXh0aCBlbGVtZW50XG4gICAgICAgICAqIGluIHRoZSBjb2xsZWN0aW9uLiBJZiB0aGVyZSBpcyBubyBpbmRleHRoIGVsZW1lbnQgaW4gdGhlIGNvbGxlY3Rpb24sXG4gICAgICAgICAqIHRoZW4gdGhlIG1ldGhvZCBtdXN0IHJldHVybiBudWxsLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgbm9kZSA9IGFsZ29yaXRobV8xLnRyZWVfZ2V0Rmlyc3REZXNjZW5kYW50Tm9kZSh0aGlzLl9yb290LCBmYWxzZSwgZmFsc2UsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShlKSAmJiB0aGlzLl9maWx0ZXIoZSkpO1xuICAgICAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGkgPT09IGluZGV4KVxuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIG5vZGUgPSBhbGdvcml0aG1fMS50cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZSh0aGlzLl9yb290LCBub2RlLCBmYWxzZSwgZmFsc2UsIChlKSA9PiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShlKSAmJiB0aGlzLl9maWx0ZXIoZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBuYW1lZEl0ZW0oa2V5KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBrZXkgaXMgdGhlIGVtcHR5IHN0cmluZywgcmV0dXJuIG51bGwuXG4gICAgICAgICAqIDIuIFJldHVybiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgY29sbGVjdGlvbiBmb3Igd2hpY2ggYXQgbGVhc3Qgb25lIG9mXG4gICAgICAgICAqIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZTpcbiAgICAgICAgICogLSBpdCBoYXMgYW4gSUQgd2hpY2ggaXMga2V5O1xuICAgICAgICAgKiAtIGl0IGlzIGluIHRoZSBIVE1MIG5hbWVzcGFjZSBhbmQgaGFzIGEgbmFtZSBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMga2V5O1xuICAgICAgICAgKiBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHN1Y2ggZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChrZXkgPT09ICcnKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGxldCBlbGUgPSBhbGdvcml0aG1fMS50cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUodGhpcy5fcm9vdCwgZmFsc2UsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUoZSkgJiYgdGhpcy5fZmlsdGVyKGUpKTtcbiAgICAgICAgd2hpbGUgKGVsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoZWxlLl91bmlxdWVJZGVudGlmaWVyID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZWxlLl9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZS5fYXR0cmlidXRlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRyID0gZWxlLl9hdHRyaWJ1dGVMaXN0W2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ci5fbG9jYWxOYW1lID09PSBcIm5hbWVcIiAmJiBhdHRyLl9uYW1lc3BhY2UgPT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIuX25hbWVzcGFjZVByZWZpeCA9PT0gbnVsbCAmJiBhdHRyLl92YWx1ZSA9PT0ga2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGUgPSBhbGdvcml0aG1fMS50cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZSh0aGlzLl9yb290LCBlbGUsIGZhbHNlLCBmYWxzZSwgKGUpID0+IHV0aWxfMS5HdWFyZC5pc0VsZW1lbnROb2RlKGUpICYmIHRoaXMuX2ZpbHRlcihlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5fcm9vdDtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5fZmlsdGVyO1xuICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBhbGdvcml0aG1fMS50cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUocm9vdCwgZmFsc2UsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUoZSkgJiYgZmlsdGVyKGUpKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5leHQoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogY3VycmVudE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBhbGdvcml0aG1fMS50cmVlX2dldE5leHREZXNjZW5kYW50Tm9kZShyb290LCBjdXJyZW50Tm9kZSwgZmFsc2UsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUoZSkgJiYgZmlsdGVyKGUpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgYSBwcm94eSBnZXQgdHJhcCB0byBwcm92aWRlIGFycmF5LWxpa2UgYWNjZXNzLlxuICAgICAqL1xuICAgIGdldCh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF1dGlsXzIuaXNTdHJpbmcoa2V5KSB8fCBIVE1MQ29sbGVjdGlvbkltcGwucmVzZXJ2ZWROYW1lcy5pbmRleE9mKGtleSkgIT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBrZXksIHJlY2VpdmVyKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihrZXkpO1xuICAgICAgICBpZiAoaXNOYU4oaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Lm5hbWVkSXRlbShrZXkpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQuaXRlbShpbmRleCkgfHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgYSBwcm94eSBzZXQgdHJhcCB0byBwcm92aWRlIGFycmF5LWxpa2UgYWNjZXNzLlxuICAgICAqL1xuICAgIHNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIGlmICghdXRpbF8yLmlzU3RyaW5nKGtleSkgfHwgSFRNTENvbGxlY3Rpb25JbXBsLnJlc2VydmVkTmFtZXMuaW5kZXhPZihrZXkpICE9PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwga2V5LCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGtleSk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBpc05hTihpbmRleCkgP1xuICAgICAgICAgICAgdGFyZ2V0Lm5hbWVkSXRlbShrZXkpIHx8IHVuZGVmaW5lZCA6IHRhcmdldC5pdGVtKGluZGV4KSB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChub2RlICYmIG5vZGUuX3BhcmVudCkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEubXV0YXRpb25fcmVwbGFjZShub2RlLCB2YWx1ZSwgbm9kZS5fcGFyZW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYEhUTUxDb2xsZWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb290IC0gcm9vdCBub2RlXG4gICAgICogQHBhcmFtIGZpbHRlciAtIG5vZGUgZmlsdGVyXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUocm9vdCwgZmlsdGVyID0gKCgpID0+IHRydWUpKSB7XG4gICAgICAgIHJldHVybiBuZXcgSFRNTENvbGxlY3Rpb25JbXBsKHJvb3QsIGZpbHRlcik7XG4gICAgfVxufVxuZXhwb3J0cy5IVE1MQ29sbGVjdGlvbkltcGwgPSBIVE1MQ29sbGVjdGlvbkltcGw7XG5IVE1MQ29sbGVjdGlvbkltcGwucmVzZXJ2ZWROYW1lcyA9IFsnX3Jvb3QnLCAnX2xpdmUnLCAnX2ZpbHRlcicsICdsZW5ndGgnLFxuICAgICdpdGVtJywgJ25hbWVkSXRlbScsICdnZXQnLCAnc2V0J107XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IVE1MQ29sbGVjdGlvbkltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBtdXRhdGlvbiByZWNvcmQuXG4gKi9cbmNsYXNzIE11dGF0aW9uUmVjb3JkSW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYE11dGF0aW9uUmVjb3JkYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIC0gdHlwZSBvZiBtdXRhdGlvbjogYFwiYXR0cmlidXRlc1wiYCBmb3IgYW4gYXR0cmlidXRlXG4gICAgICogbXV0YXRpb24sIGBcImNoYXJhY3RlckRhdGFcImAgZm9yIGEgbXV0YXRpb24gdG8gYSBDaGFyYWN0ZXJEYXRhIG5vZGVcbiAgICAgKiBhbmQgYFwiY2hpbGRMaXN0XCJgIGZvciBhIG11dGF0aW9uIHRvIHRoZSB0cmVlIG9mIG5vZGVzLlxuICAgICAqIEBwYXJhbSB0YXJnZXQgLSBub2RlIGFmZmVjdGVkIGJ5IHRoZSBtdXRhdGlvbi5cbiAgICAgKiBAcGFyYW0gYWRkZWROb2RlcyAtIGxpc3Qgb2YgYWRkZWQgbm9kZXMuXG4gICAgICogQHBhcmFtIHJlbW92ZWROb2RlcyAtIGxpc3Qgb2YgcmVtb3ZlZCBub2Rlcy5cbiAgICAgKiBAcGFyYW0gcHJldmlvdXNTaWJsaW5nIC0gcHJldmlvdXMgc2libGluZyBvZiBhZGRlZCBvciByZW1vdmVkIG5vZGVzLlxuICAgICAqIEBwYXJhbSBuZXh0U2libGluZyAtIG5leHQgc2libGluZyBvZiBhZGRlZCBvciByZW1vdmVkIG5vZGVzLlxuICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lIC0gbG9jYWwgbmFtZSBvZiB0aGUgY2hhbmdlZCBhdHRyaWJ1dGUsXG4gICAgICogYW5kIGBudWxsYCBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZU5hbWVzcGFjZSAtIG5hbWVzcGFjZSBvZiB0aGUgY2hhbmdlZCBhdHRyaWJ1dGUsXG4gICAgICogYW5kIGBudWxsYCBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIG9sZFZhbHVlIC0gdmFsdWUgYmVmb3JlIG11dGF0aW9uOiBhdHRyaWJ1dGUgdmFsdWUgZm9yIGFuIGF0dHJpYnV0ZVxuICAgICAqIG11dGF0aW9uLCBub2RlIGBkYXRhYCBmb3IgYSBtdXRhdGlvbiB0byBhIENoYXJhY3RlckRhdGEgbm9kZSBhbmQgYG51bGxgXG4gICAgICogZm9yIGEgbXV0YXRpb24gdG8gdGhlIHRyZWUgb2Ygbm9kZXMuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgdGFyZ2V0LCBhZGRlZE5vZGVzLCByZW1vdmVkTm9kZXMsIHByZXZpb3VzU2libGluZywgbmV4dFNpYmxpbmcsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZU5hbWVzcGFjZSwgb2xkVmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgdGhpcy5fYWRkZWROb2RlcyA9IGFkZGVkTm9kZXM7XG4gICAgICAgIHRoaXMuX3JlbW92ZWROb2RlcyA9IHJlbW92ZWROb2RlcztcbiAgICAgICAgdGhpcy5fcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nO1xuICAgICAgICB0aGlzLl9uZXh0U2libGluZyA9IG5leHRTaWJsaW5nO1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZTtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTmFtZXNwYWNlID0gYXR0cmlidXRlTmFtZXNwYWNlO1xuICAgICAgICB0aGlzLl9vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgdGFyZ2V0KCkgeyByZXR1cm4gdGhpcy5fdGFyZ2V0OyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGFkZGVkTm9kZXMoKSB7IHJldHVybiB0aGlzLl9hZGRlZE5vZGVzOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IHJlbW92ZWROb2RlcygpIHsgcmV0dXJuIHRoaXMuX3JlbW92ZWROb2RlczsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBwcmV2aW91c1NpYmxpbmcoKSB7IHJldHVybiB0aGlzLl9wcmV2aW91c1NpYmxpbmc7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgbmV4dFNpYmxpbmcoKSB7IHJldHVybiB0aGlzLl9uZXh0U2libGluZzsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBhdHRyaWJ1dGVOYW1lKCkgeyByZXR1cm4gdGhpcy5fYXR0cmlidXRlTmFtZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBhdHRyaWJ1dGVOYW1lc3BhY2UoKSB7IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVOYW1lc3BhY2U7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgb2xkVmFsdWUoKSB7IHJldHVybiB0aGlzLl9vbGRWYWx1ZTsgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYE11dGF0aW9uUmVjb3JkYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIC0gdHlwZSBvZiBtdXRhdGlvbjogYFwiYXR0cmlidXRlc1wiYCBmb3IgYW4gYXR0cmlidXRlXG4gICAgICogbXV0YXRpb24sIGBcImNoYXJhY3RlckRhdGFcImAgZm9yIGEgbXV0YXRpb24gdG8gYSBDaGFyYWN0ZXJEYXRhIG5vZGVcbiAgICAgKiBhbmQgYFwiY2hpbGRMaXN0XCJgIGZvciBhIG11dGF0aW9uIHRvIHRoZSB0cmVlIG9mIG5vZGVzLlxuICAgICAqIEBwYXJhbSB0YXJnZXQgLSBub2RlIGFmZmVjdGVkIGJ5IHRoZSBtdXRhdGlvbi5cbiAgICAgKiBAcGFyYW0gYWRkZWROb2RlcyAtIGxpc3Qgb2YgYWRkZWQgbm9kZXMuXG4gICAgICogQHBhcmFtIHJlbW92ZWROb2RlcyAtIGxpc3Qgb2YgcmVtb3ZlZCBub2Rlcy5cbiAgICAgKiBAcGFyYW0gcHJldmlvdXNTaWJsaW5nIC0gcHJldmlvdXMgc2libGluZyBvZiBhZGRlZCBvciByZW1vdmVkIG5vZGVzLlxuICAgICAqIEBwYXJhbSBuZXh0U2libGluZyAtIG5leHQgc2libGluZyBvZiBhZGRlZCBvciByZW1vdmVkIG5vZGVzLlxuICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVOYW1lIC0gbG9jYWwgbmFtZSBvZiB0aGUgY2hhbmdlZCBhdHRyaWJ1dGUsXG4gICAgICogYW5kIGBudWxsYCBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIGF0dHJpYnV0ZU5hbWVzcGFjZSAtIG5hbWVzcGFjZSBvZiB0aGUgY2hhbmdlZCBhdHRyaWJ1dGUsXG4gICAgICogYW5kIGBudWxsYCBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIG9sZFZhbHVlIC0gdmFsdWUgYmVmb3JlIG11dGF0aW9uOiBhdHRyaWJ1dGUgdmFsdWUgZm9yIGFuIGF0dHJpYnV0ZVxuICAgICAqIG11dGF0aW9uLCBub2RlIGBkYXRhYCBmb3IgYSBtdXRhdGlvbiB0byBhIENoYXJhY3RlckRhdGEgbm9kZSBhbmQgYG51bGxgXG4gICAgICogZm9yIGEgbXV0YXRpb24gdG8gdGhlIHRyZWUgb2Ygbm9kZXMuXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUodHlwZSwgdGFyZ2V0LCBhZGRlZE5vZGVzLCByZW1vdmVkTm9kZXMsIHByZXZpb3VzU2libGluZywgbmV4dFNpYmxpbmcsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZU5hbWVzcGFjZSwgb2xkVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNdXRhdGlvblJlY29yZEltcGwodHlwZSwgdGFyZ2V0LCBhZGRlZE5vZGVzLCByZW1vdmVkTm9kZXMsIHByZXZpb3VzU2libGluZywgbmV4dFNpYmxpbmcsIGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZU5hbWVzcGFjZSwgb2xkVmFsdWUpO1xuICAgIH1cbn1cbmV4cG9ydHMuTXV0YXRpb25SZWNvcmRJbXBsID0gTXV0YXRpb25SZWNvcmRJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TXV0YXRpb25SZWNvcmRJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRE9NRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi9ET01FeGNlcHRpb25cIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIGF0dHJpYnV0ZXMuXG4gKi9cbmNsYXNzIE5hbWVkTm9kZU1hcEltcGwgZXh0ZW5kcyBBcnJheSB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYE5hbWVkTm9kZU1hcGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZWxlbWVudCAtIHBhcmVudCBlbGVtZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZWxlbWVudCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudDtcbiAgICB9XG4gICAgX2FzQXJyYXkoKSB7IHJldHVybiB0aGlzOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaXRlbShpbmRleCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgaW5kZXggaXMgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIGNvbnRleHQgb2JqZWN04oCZcyBhdHRyaWJ1dGUgbGlzdOKAmXNcbiAgICAgICAgICogc2l6ZSwgdGhlbiByZXR1cm4gbnVsbC5cbiAgICAgICAgICogMi4gT3RoZXJ3aXNlLCByZXR1cm4gY29udGV4dCBvYmplY3TigJlzIGF0dHJpYnV0ZSBsaXN0W2luZGV4XS5cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzW2luZGV4XSB8fCBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXROYW1lZEl0ZW0ocXVhbGlmaWVkTmFtZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdldE5hbWVkSXRlbShxdWFsaWZpZWROYW1lKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdGhlXG4gICAgICAgICAqIHJlc3VsdCBvZiBnZXR0aW5nIGFuIGF0dHJpYnV0ZSBnaXZlbiBxdWFsaWZpZWROYW1lIGFuZCBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLmVsZW1lbnRfZ2V0QW5BdHRyaWJ1dGVCeU5hbWUocXVhbGlmaWVkTmFtZSwgdGhpcy5fZWxlbWVudCk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldE5hbWVkSXRlbU5TKG5hbWVzcGFjZSwgbG9jYWxOYW1lKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZ2V0TmFtZWRJdGVtTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0XG4gICAgICAgICAqIHJldHVybiB0aGUgcmVzdWx0IG9mIGdldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSwgbG9jYWxOYW1lLFxuICAgICAgICAgKiBhbmQgZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5lbGVtZW50X2dldEFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlIHx8ICcnLCBsb2NhbE5hbWUsIHRoaXMuX2VsZW1lbnQpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzZXROYW1lZEl0ZW0oYXR0cikge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHNldE5hbWVkSXRlbShhdHRyKSBhbmQgc2V0TmFtZWRJdGVtTlMoYXR0cikgbWV0aG9kcywgd2hlbiBpbnZva2VkLFxuICAgICAgICAgKiBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mIHNldHRpbmcgYW4gYXR0cmlidXRlIGdpdmVuIGF0dHIgYW5kIGVsZW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZWxlbWVudF9zZXRBbkF0dHJpYnV0ZShhdHRyLCB0aGlzLl9lbGVtZW50KTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc2V0TmFtZWRJdGVtTlMoYXR0cikge1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuZWxlbWVudF9zZXRBbkF0dHJpYnV0ZShhdHRyLCB0aGlzLl9lbGVtZW50KTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcmVtb3ZlTmFtZWRJdGVtKHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBhdHRyIGJlIHRoZSByZXN1bHQgb2YgcmVtb3ZpbmcgYW4gYXR0cmlidXRlIGdpdmVuIHF1YWxpZmllZE5hbWVcbiAgICAgICAgICogYW5kIGVsZW1lbnQuXG4gICAgICAgICAqIDIuIElmIGF0dHIgaXMgbnVsbCwgdGhlbiB0aHJvdyBhIFwiTm90Rm91bmRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gUmV0dXJuIGF0dHIuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBhdHRyID0gYWxnb3JpdGhtXzEuZWxlbWVudF9yZW1vdmVBbkF0dHJpYnV0ZUJ5TmFtZShxdWFsaWZpZWROYW1lLCB0aGlzLl9lbGVtZW50KTtcbiAgICAgICAgaWYgKGF0dHIgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90Rm91bmRFcnJvcigpO1xuICAgICAgICByZXR1cm4gYXR0cjtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcmVtb3ZlTmFtZWRJdGVtTlMobmFtZXNwYWNlLCBsb2NhbE5hbWUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBhdHRyIGJlIHRoZSByZXN1bHQgb2YgcmVtb3ZpbmcgYW4gYXR0cmlidXRlIGdpdmVuIG5hbWVzcGFjZSxcbiAgICAgICAgICogbG9jYWxOYW1lLCBhbmQgZWxlbWVudC5cbiAgICAgICAgICogMi4gSWYgYXR0ciBpcyBudWxsLCB0aGVuIHRocm93IGEgXCJOb3RGb3VuZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAzLiBSZXR1cm4gYXR0ci5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGF0dHIgPSBhbGdvcml0aG1fMS5lbGVtZW50X3JlbW92ZUFuQXR0cmlidXRlQnlOYW1lc3BhY2VBbmRMb2NhbE5hbWUobmFtZXNwYWNlIHx8ICcnLCBsb2NhbE5hbWUsIHRoaXMuX2VsZW1lbnQpO1xuICAgICAgICBpZiAoYXR0ciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RGb3VuZEVycm9yKCk7XG4gICAgICAgIHJldHVybiBhdHRyO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBOYW1lZE5vZGVNYXBgLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVsZW1lbnQgLSBwYXJlbnQgZWxlbWVudFxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYW1lZE5vZGVNYXBJbXBsKGVsZW1lbnQpO1xuICAgIH1cbn1cbmV4cG9ydHMuTmFtZWROb2RlTWFwSW1wbCA9IE5hbWVkTm9kZU1hcEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYW1lZE5vZGVNYXBJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4vaW50ZXJmYWNlc1wiKTtcbmNvbnN0IFdlYklETEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobS9XZWJJRExBbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBub2RlIGZpbHRlci5cbiAqL1xuY2xhc3MgTm9kZUZpbHRlckltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBOb2RlRmlsdGVyYC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICovXG4gICAgYWNjZXB0Tm9kZShub2RlKSB7XG4gICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgTm9kZUZpbHRlcmAuXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTm9kZUZpbHRlckltcGwoKTtcbiAgICB9XG59XG5leHBvcnRzLk5vZGVGaWx0ZXJJbXBsID0gTm9kZUZpbHRlckltcGw7XG5Ob2RlRmlsdGVySW1wbC5GSUxURVJfQUNDRVBUID0gMTtcbk5vZGVGaWx0ZXJJbXBsLkZJTFRFUl9SRUpFQ1QgPSAyO1xuTm9kZUZpbHRlckltcGwuRklMVEVSX1NLSVAgPSAzO1xuTm9kZUZpbHRlckltcGwuU0hPV19BTEwgPSAweGZmZmZmZmZmO1xuTm9kZUZpbHRlckltcGwuU0hPV19FTEVNRU5UID0gMHgxO1xuTm9kZUZpbHRlckltcGwuU0hPV19BVFRSSUJVVEUgPSAweDI7XG5Ob2RlRmlsdGVySW1wbC5TSE9XX1RFWFQgPSAweDQ7XG5Ob2RlRmlsdGVySW1wbC5TSE9XX0NEQVRBX1NFQ1RJT04gPSAweDg7XG5Ob2RlRmlsdGVySW1wbC5TSE9XX0VOVElUWV9SRUZFUkVOQ0UgPSAweDEwO1xuTm9kZUZpbHRlckltcGwuU0hPV19FTlRJVFkgPSAweDIwO1xuTm9kZUZpbHRlckltcGwuU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OID0gMHg0MDtcbk5vZGVGaWx0ZXJJbXBsLlNIT1dfQ09NTUVOVCA9IDB4ODA7XG5Ob2RlRmlsdGVySW1wbC5TSE9XX0RPQ1VNRU5UID0gMHgxMDA7XG5Ob2RlRmlsdGVySW1wbC5TSE9XX0RPQ1VNRU5UX1RZUEUgPSAweDIwMDtcbk5vZGVGaWx0ZXJJbXBsLlNIT1dfRE9DVU1FTlRfRlJBR01FTlQgPSAweDQwMDtcbk5vZGVGaWx0ZXJJbXBsLlNIT1dfTk9UQVRJT04gPSAweDgwMDtcbi8qKlxuICogRGVmaW5lIGNvbnN0YW50cyBvbiBwcm90b3R5cGUuXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiRklMVEVSX0FDQ0VQVFwiLCAxKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiRklMVEVSX1JFSkVDVFwiLCAyKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiRklMVEVSX1NLSVBcIiwgMyk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfQUxMXCIsIDB4ZmZmZmZmZmYpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVGaWx0ZXJJbXBsLnByb3RvdHlwZSwgXCJTSE9XX0VMRU1FTlRcIiwgMHgxKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiU0hPV19BVFRSSUJVVEVcIiwgMHgyKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiU0hPV19URVhUXCIsIDB4NCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfQ0RBVEFfU0VDVElPTlwiLCAweDgpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVGaWx0ZXJJbXBsLnByb3RvdHlwZSwgXCJTSE9XX0VOVElUWV9SRUZFUkVOQ0VcIiwgMHgxMCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfRU5USVRZXCIsIDB4MjApO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVGaWx0ZXJJbXBsLnByb3RvdHlwZSwgXCJTSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT05cIiwgMHg0MCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfQ09NTUVOVFwiLCAweDgwKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChOb2RlRmlsdGVySW1wbC5wcm90b3R5cGUsIFwiU0hPV19ET0NVTUVOVFwiLCAweDEwMCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfRE9DVU1FTlRfVFlQRVwiLCAweDIwMCk7XG5XZWJJRExBbGdvcml0aG1fMS5pZGxfZGVmaW5lQ29uc3QoTm9kZUZpbHRlckltcGwucHJvdG90eXBlLCBcIlNIT1dfRE9DVU1FTlRfRlJBR01FTlRcIiwgMHg0MDApO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KE5vZGVGaWx0ZXJJbXBsLnByb3RvdHlwZSwgXCJTSE9XX05PVEFUSU9OXCIsIDB4ODAwKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vZGVGaWx0ZXJJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgVHJhdmVyc2VySW1wbF8xID0gcmVxdWlyZShcIi4vVHJhdmVyc2VySW1wbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhbiBvYmplY3Qgd2hpY2ggY2FuIGJlIHVzZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBub2Rlc1xuICogb2YgYSBzdWJ0cmVlLlxuICovXG5jbGFzcyBOb2RlSXRlcmF0b3JJbXBsIGV4dGVuZHMgVHJhdmVyc2VySW1wbF8xLlRyYXZlcnNlckltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBOb2RlSXRlcmF0b3JgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJvb3QsIHJlZmVyZW5jZSwgcG9pbnRlckJlZm9yZVJlZmVyZW5jZSkge1xuICAgICAgICBzdXBlcihyb290KTtcbiAgICAgICAgdGhpcy5faXRlcmF0b3JDb2xsZWN0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgICAgIHRoaXMuX3BvaW50ZXJCZWZvcmVSZWZlcmVuY2UgPSBwb2ludGVyQmVmb3JlUmVmZXJlbmNlO1xuICAgICAgICBhbGdvcml0aG1fMS5ub2RlSXRlcmF0b3JfaXRlcmF0b3JMaXN0KCkuYWRkKHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgcmVmZXJlbmNlTm9kZSgpIHsgcmV0dXJuIHRoaXMuX3JlZmVyZW5jZTsgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBwb2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZSgpIHsgcmV0dXJuIHRoaXMuX3BvaW50ZXJCZWZvcmVSZWZlcmVuY2U7IH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBuZXh0Tm9kZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBuZXh0Tm9kZSgpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiB0aGUgcmVzdWx0IG9mXG4gICAgICAgICAqIHRyYXZlcnNpbmcgd2l0aCB0aGUgY29udGV4dCBvYmplY3QgYW5kIG5leHQuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZUl0ZXJhdG9yX3RyYXZlcnNlKHRoaXMsIHRydWUpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwcmV2aW91c05vZGUoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcHJldmlvdXNOb2RlKCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgcmV0dXJuIHRoZSByZXN1bHQgb2ZcbiAgICAgICAgICogdHJhdmVyc2luZyB3aXRoIHRoZSBjb250ZXh0IG9iamVjdCBhbmQgcHJldmlvdXMuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEubm9kZUl0ZXJhdG9yX3RyYXZlcnNlKHRoaXMsIGZhbHNlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZGV0YWNoKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGRldGFjaCgpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IGRvIG5vdGhpbmcuXG4gICAgICAgICAqXG4gICAgICAgICAqIHNpbmNlIEpTIGxhY2tzIHdlYWsgcmVmZXJlbmNlcywgd2Ugc3RpbGwgdXNlIGRldGFjaFxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEubm9kZUl0ZXJhdG9yX2l0ZXJhdG9yTGlzdCgpLmRlbGV0ZSh0aGlzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgTm9kZUl0ZXJhdG9yYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb290IC0gaXRlcmF0b3IncyByb290IG5vZGVcbiAgICAgKiBAcGFyYW0gcmVmZXJlbmNlIC0gcmVmZXJlbmNlIG5vZGVcbiAgICAgKiBAcGFyYW0gcG9pbnRlckJlZm9yZVJlZmVyZW5jZSAtIHdoZXRoZXIgdGhlIGl0ZXJhdG9yIGlzIGJlZm9yZSBvciBhZnRlciB0aGVcbiAgICAgKiByZWZlcmVuY2Ugbm9kZVxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKHJvb3QsIHJlZmVyZW5jZSwgcG9pbnRlckJlZm9yZVJlZmVyZW5jZSkge1xuICAgICAgICByZXR1cm4gbmV3IE5vZGVJdGVyYXRvckltcGwocm9vdCwgcmVmZXJlbmNlLCBwb2ludGVyQmVmb3JlUmVmZXJlbmNlKTtcbiAgICB9XG59XG5leHBvcnRzLk5vZGVJdGVyYXRvckltcGwgPSBOb2RlSXRlcmF0b3JJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Tm9kZUl0ZXJhdG9ySW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IF8xID0gcmVxdWlyZShcIi4vXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIkBvb3pjaXRhay91dGlsXCIpO1xuY29uc3QgYWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi4vYWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIG9yZGVyZWQgc2V0IG9mIG5vZGVzLlxuICovXG5jbGFzcyBOb2RlTGlzdEltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBOb2RlTGlzdGAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcm9vdCAtIHJvb3Qgbm9kZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHJvb3QpIHtcbiAgICAgICAgdGhpcy5fbGl2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgICAgIHRoaXMuX2xlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX3Jvb3QgPSByb290O1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRoaXMsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxlbmd0aCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhlIG51bWJlciBvZiBub2RlcyByZXByZXNlbnRlZFxuICAgICAgICAgKiBieSB0aGUgY29sbGVjdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9yb290Ll9jaGlsZHJlbi5zaXplO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBpdGVtKGluZGV4KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaXRlbShpbmRleCkgbWV0aG9kIG11c3QgcmV0dXJuIHRoZSBpbmRleHRoIG5vZGUgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAgICAgICAqIElmIHRoZXJlIGlzIG5vIGluZGV4dGggbm9kZSBpbiB0aGUgY29sbGVjdGlvbiwgdGhlbiB0aGUgbWV0aG9kIG11c3RcbiAgICAgICAgICogcmV0dXJuIG51bGwuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5sZW5ndGggLSAxKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpbmRleCA8IHRoaXMubGVuZ3RoIC8gMikge1xuICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9yb290Ll9maXJzdENoaWxkO1xuICAgICAgICAgICAgd2hpbGUgKG5vZGUgIT09IG51bGwgJiYgaSAhPT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgaSA9IHRoaXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGxldCBub2RlID0gdGhpcy5fcm9vdC5fbGFzdENoaWxkO1xuICAgICAgICAgICAgd2hpbGUgKG5vZGUgIT09IG51bGwgJiYgaSAhPT0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5fcHJldmlvdXNTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGtleXMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IGluZGV4KysgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICB2YWx1ZXMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdGhpc1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGVudHJpZXMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbU3ltYm9sLml0ZXJhdG9yXTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ID0gdGhpc1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBuZXh0KCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRSZXN1bHQgPSBpdC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRSZXN1bHQuZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IFtpbmRleCsrLCBpdFJlc3VsdC52YWx1ZV0gfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb290Ll9jaGlsZHJlbltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKHRoaXNBcmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpc0FyZyA9IF8xLmRvbS53aW5kb3c7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMuX3Jvb3QuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIG5vZGUsIGluZGV4KyssIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgYSBwcm94eSBnZXQgdHJhcCB0byBwcm92aWRlIGFycmF5LWxpa2UgYWNjZXNzLlxuICAgICAqL1xuICAgIGdldCh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF1dGlsXzEuaXNTdHJpbmcoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwga2V5LCByZWNlaXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoa2V5KTtcbiAgICAgICAgaWYgKGlzTmFOKGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwga2V5LCByZWNlaXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldC5pdGVtKGluZGV4KSB8fCB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgYSBwcm94eSBzZXQgdHJhcCB0byBwcm92aWRlIGFycmF5LWxpa2UgYWNjZXNzLlxuICAgICAqL1xuICAgIHNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIGlmICghdXRpbF8xLmlzU3RyaW5nKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihrZXkpO1xuICAgICAgICBpZiAoaXNOYU4oaW5kZXgpKSB7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBrZXksIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9kZSA9IHRhcmdldC5pdGVtKGluZGV4KSB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghbm9kZSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKG5vZGUuX3BhcmVudCkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEubXV0YXRpb25fcmVwbGFjZShub2RlLCB2YWx1ZSwgbm9kZS5fcGFyZW50KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYE5vZGVMaXN0YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb290IC0gcm9vdCBub2RlXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUocm9vdCkge1xuICAgICAgICByZXR1cm4gbmV3IE5vZGVMaXN0SW1wbChyb290KTtcbiAgICB9XG59XG5leHBvcnRzLk5vZGVMaXN0SW1wbCA9IE5vZGVMaXN0SW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vZGVMaXN0SW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IF8xID0gcmVxdWlyZShcIi4vXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIkBvb3pjaXRhay91dGlsXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIG9yZGVyZWQgbGlzdCBvZiBub2Rlcy5cbiAqIFRoaXMgaXMgYSBzdGF0aWMgaW1wbGVtZW50YXRpb24gb2YgYE5vZGVMaXN0YC5cbiAqL1xuY2xhc3MgTm9kZUxpc3RTdGF0aWNJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgTm9kZUxpc3RgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihyb290KSB7XG4gICAgICAgIHRoaXMuX2xpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5faXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5fbGVuZ3RoID0gMDtcbiAgICAgICAgdGhpcy5fcm9vdCA9IHJvb3Q7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gW107XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IGZ1bmN0aW9uIChub2RlKSB7IHJldHVybiB0cnVlOyB9O1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRoaXMsIHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBnZXQgbGVuZ3RoKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxlbmd0aCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdGhlIG51bWJlciBvZiBub2RlcyByZXByZXNlbnRlZCBieVxuICAgICAgICAgKiB0aGUgY29sbGVjdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGl0ZW0oaW5kZXgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBpdGVtKGluZGV4KSBtZXRob2QgbXVzdCByZXR1cm4gdGhlIGluZGV4dGggbm9kZSBpbiB0aGUgY29sbGVjdGlvbi5cbiAgICAgICAgICogSWYgdGhlcmUgaXMgbm8gaW5kZXh0aCBub2RlIGluIHRoZSBjb2xsZWN0aW9uLCB0aGVuIHRoZSBtZXRob2QgbXVzdFxuICAgICAgICAgKiByZXR1cm4gbnVsbC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0aGlzLmxlbmd0aCAtIDEpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zW2luZGV4XTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAga2V5cygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogaW5kZXgrKyB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfS5iaW5kKHRoaXMpXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHZhbHVlcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXQgPSB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBuZXh0KCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0Lm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LmJpbmQodGhpcylcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZW50cmllcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXQgPSB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdFJlc3VsdCA9IGl0Lm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdFJlc3VsdC5kb25lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG51bGwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogW2luZGV4KyssIGl0UmVzdWx0LnZhbHVlXSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICAgICAgY29uc3QgaXQgPSB0aGlzLl9pdGVtc1tTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZXh0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdC5uZXh0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGZvckVhY2goY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICAgICAgaWYgKHRoaXNBcmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpc0FyZyA9IF8xLmRvbS53aW5kb3c7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMuX2l0ZW1zKSB7XG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXNBcmcsIG5vZGUsIGluZGV4KyssIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEltcGxlbWVudHMgYSBwcm94eSBnZXQgdHJhcCB0byBwcm92aWRlIGFycmF5LWxpa2UgYWNjZXNzLlxuICAgICAqL1xuICAgIGdldCh0YXJnZXQsIGtleSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF1dGlsXzEuaXNTdHJpbmcoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwga2V5LCByZWNlaXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoa2V5KTtcbiAgICAgICAgaWYgKGlzTmFOKGluZGV4KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwga2V5LCByZWNlaXZlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhcmdldC5faXRlbXNbaW5kZXhdIHx8IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW1wbGVtZW50cyBhIHByb3h5IHNldCB0cmFwIHRvIHByb3ZpZGUgYXJyYXktbGlrZSBhY2Nlc3MuXG4gICAgICovXG4gICAgc2V0KHRhcmdldCwga2V5LCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgaWYgKCF1dGlsXzEuaXNTdHJpbmcoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwga2V5LCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gTnVtYmVyKGtleSk7XG4gICAgICAgIGlmIChpc05hTihpbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIGtleSwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRhcmdldC5faXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0YXJnZXQuX2l0ZW1zW2luZGV4XSA9IHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgTm9kZUxpc3RgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAgICAgKiBAcGFyYW0gaXRlbXMgLSBhIGxpc3Qgb2YgaXRlbXMgdG8gaW5pdGlhbGl6ZSB0aGUgbGlzdFxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKHJvb3QsIGl0ZW1zKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBuZXcgTm9kZUxpc3RTdGF0aWNJbXBsKHJvb3QpO1xuICAgICAgICBsaXN0Ll9pdGVtcyA9IGl0ZW1zO1xuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG59XG5leHBvcnRzLk5vZGVMaXN0U3RhdGljSW1wbCA9IE5vZGVMaXN0U3RhdGljSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vZGVMaXN0U3RhdGljSW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IGludGVyZmFjZXNfMSA9IHJlcXVpcmUoXCIuL2ludGVyZmFjZXNcIik7XG5jb25zdCBDaGFyYWN0ZXJEYXRhSW1wbF8xID0gcmVxdWlyZShcIi4vQ2hhcmFjdGVyRGF0YUltcGxcIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2RlLlxuICovXG5jbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsIGV4dGVuZHMgQ2hhcmFjdGVyRGF0YUltcGxfMS5DaGFyYWN0ZXJEYXRhSW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYFByb2Nlc3NpbmdJbnN0cnVjdGlvbmAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodGFyZ2V0LCBkYXRhKSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgICAgICB0aGlzLl90YXJnZXQgPSB0YXJnZXQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHRhcmdldCBvZiB0aGUge0BsaW5rIFByb2Nlc3NpbmdJbnN0cnVjdGlvbn0gbm9kZS5cbiAgICAgKi9cbiAgICBnZXQgdGFyZ2V0KCkgeyByZXR1cm4gdGhpcy5fdGFyZ2V0OyB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgUHJvY2Vzc2luZ0luc3RydWN0aW9uYC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gICAgICogQHBhcmFtIHRhcmdldCAtIGluc3RydWN0aW9uIHRhcmdldFxuICAgICAqIEBwYXJhbSBkYXRhIC0gbm9kZSBjb250ZW50c1xuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCB0YXJnZXQsIGRhdGEpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsKHRhcmdldCwgZGF0YSk7XG4gICAgICAgIG5vZGUuX25vZGVEb2N1bWVudCA9IGRvY3VtZW50O1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59XG5leHBvcnRzLlByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwgPSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsO1xuLyoqXG4gKiBJbml0aWFsaXplIHByb3RvdHlwZSBwcm9wZXJ0aWVzXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLnByb3RvdHlwZSwgXCJfbm9kZVR5cGVcIiwgaW50ZXJmYWNlc18xLk5vZGVUeXBlLlByb2Nlc3NpbmdJbnN0cnVjdGlvbik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgXzEgPSByZXF1aXJlKFwiLi9cIik7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9pbnRlcmZhY2VzXCIpO1xuY29uc3QgQWJzdHJhY3RSYW5nZUltcGxfMSA9IHJlcXVpcmUoXCIuL0Fic3RyYWN0UmFuZ2VJbXBsXCIpO1xuY29uc3QgRE9NRXhjZXB0aW9uXzEgPSByZXF1aXJlKFwiLi9ET01FeGNlcHRpb25cIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG5jb25zdCBXZWJJRExBbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG0vV2ViSURMQWxnb3JpdGhtXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIi4uL3V0aWxcIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBsaXZlIHJhbmdlLlxuICovXG5jbGFzcyBSYW5nZUltcGwgZXh0ZW5kcyBBYnN0cmFjdFJhbmdlSW1wbF8xLkFic3RyYWN0UmFuZ2VJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgUmFuZ2VgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIFJhbmdlKCkgY29uc3RydWN0b3IsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gYSBuZXcgbGl2ZSByYW5nZSB3aXRoXG4gICAgICAgICAqIChjdXJyZW50IGdsb2JhbCBvYmplY3TigJlzIGFzc29jaWF0ZWQgRG9jdW1lbnQsIDApIGFzIGl0cyBzdGFydCBhbmQgZW5kLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgZG9jID0gXzEuZG9tLndpbmRvdy5fYXNzb2NpYXRlZERvY3VtZW50O1xuICAgICAgICB0aGlzLl9zdGFydCA9IFtkb2MsIDBdO1xuICAgICAgICB0aGlzLl9lbmQgPSBbZG9jLCAwXTtcbiAgICAgICAgXzEuZG9tLnJhbmdlTGlzdC5hZGQodGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjb21tb25BbmNlc3RvckNvbnRhaW5lcigpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBjb250YWluZXIgYmUgc3RhcnQgbm9kZS5cbiAgICAgICAgICogMi4gV2hpbGUgY29udGFpbmVyIGlzIG5vdCBhbiBpbmNsdXNpdmUgYW5jZXN0b3Igb2YgZW5kIG5vZGUsIGxldFxuICAgICAgICAgKiBjb250YWluZXIgYmUgY29udGFpbmVy4oCZcyBwYXJlbnQuXG4gICAgICAgICAqIDMuIFJldHVybiBjb250YWluZXIuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgY29udGFpbmVyID0gdGhpcy5fc3RhcnRbMF07XG4gICAgICAgIHdoaWxlICghYWxnb3JpdGhtXzEudHJlZV9pc0FuY2VzdG9yT2YodGhpcy5fZW5kWzBdLCBjb250YWluZXIsIHRydWUpKSB7XG4gICAgICAgICAgICBpZiAoY29udGFpbmVyLl9wYXJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJlbnQgbm9kZSAgaXMgbnVsbC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250YWluZXIgPSBjb250YWluZXIuX3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGFpbmVyO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzZXRTdGFydChub2RlLCBvZmZzZXQpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBzZXRTdGFydChub2RlLCBvZmZzZXQpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHNldCB0aGUgc3RhcnQgb2ZcbiAgICAgICAgICogY29udGV4dCBvYmplY3QgdG8gYm91bmRhcnkgcG9pbnQgKG5vZGUsIG9mZnNldCkuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5yYW5nZV9zZXRUaGVTdGFydCh0aGlzLCBub2RlLCBvZmZzZXQpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzZXRFbmQobm9kZSwgb2Zmc2V0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgc2V0RW5kKG5vZGUsIG9mZnNldCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3Qgc2V0IHRoZSBlbmQgb2ZcbiAgICAgICAgICogY29udGV4dCBvYmplY3QgdG8gYm91bmRhcnkgcG9pbnQgKG5vZGUsIG9mZnNldCkuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5yYW5nZV9zZXRUaGVFbmQodGhpcywgbm9kZSwgb2Zmc2V0KTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc2V0U3RhcnRCZWZvcmUobm9kZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IHBhcmVudCBiZSBub2Rl4oCZcyBwYXJlbnQuXG4gICAgICAgICAqIDIuIElmIHBhcmVudCBpcyBudWxsLCB0aGVuIHRocm93IGFuIFwiSW52YWxpZE5vZGVUeXBlRXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqIDMuIFNldCB0aGUgc3RhcnQgb2YgdGhlIGNvbnRleHQgb2JqZWN0IHRvIGJvdW5kYXJ5IHBvaW50XG4gICAgICAgICAqIChwYXJlbnQsIG5vZGXigJlzIGluZGV4KS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgYWxnb3JpdGhtXzEucmFuZ2Vfc2V0VGhlU3RhcnQodGhpcywgcGFyZW50LCBhbGdvcml0aG1fMS50cmVlX2luZGV4KG5vZGUpKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc2V0U3RhcnRBZnRlcihub2RlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgcGFyZW50IGJlIG5vZGXigJlzIHBhcmVudC5cbiAgICAgICAgICogMi4gSWYgcGFyZW50IGlzIG51bGwsIHRoZW4gdGhyb3cgYW4gXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gU2V0IHRoZSBzdGFydCBvZiB0aGUgY29udGV4dCBvYmplY3QgdG8gYm91bmRhcnkgcG9pbnRcbiAgICAgICAgICogKHBhcmVudCwgbm9kZeKAmXMgaW5kZXggcGx1cyAxKS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgYWxnb3JpdGhtXzEucmFuZ2Vfc2V0VGhlU3RhcnQodGhpcywgcGFyZW50LCBhbGdvcml0aG1fMS50cmVlX2luZGV4KG5vZGUpICsgMSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHNldEVuZEJlZm9yZShub2RlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBMZXQgcGFyZW50IGJlIG5vZGXigJlzIHBhcmVudC5cbiAgICAgICAgICogMi4gSWYgcGFyZW50IGlzIG51bGwsIHRoZW4gdGhyb3cgYW4gXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gU2V0IHRoZSBlbmQgb2YgdGhlIGNvbnRleHQgb2JqZWN0IHRvIGJvdW5kYXJ5IHBvaW50XG4gICAgICAgICAqIChwYXJlbnQsIG5vZGXigJlzIGluZGV4KS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgYWxnb3JpdGhtXzEucmFuZ2Vfc2V0VGhlRW5kKHRoaXMsIHBhcmVudCwgYWxnb3JpdGhtXzEudHJlZV9pbmRleChub2RlKSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHNldEVuZEFmdGVyKG5vZGUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBwYXJlbnQgYmUgbm9kZeKAmXMgcGFyZW50LlxuICAgICAgICAgKiAyLiBJZiBwYXJlbnQgaXMgbnVsbCwgdGhlbiB0aHJvdyBhbiBcIkludmFsaWROb2RlVHlwZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAzLiBTZXQgdGhlIGVuZCBvZiB0aGUgY29udGV4dCBvYmplY3QgdG8gYm91bmRhcnkgcG9pbnRcbiAgICAgICAgICogKHBhcmVudCwgbm9kZeKAmXMgaW5kZXggcGx1cyAxKS5cbiAgICAgICAgICovXG4gICAgICAgIGxldCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgIGlmIChwYXJlbnQgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgYWxnb3JpdGhtXzEucmFuZ2Vfc2V0VGhlRW5kKHRoaXMsIHBhcmVudCwgYWxnb3JpdGhtXzEudHJlZV9pbmRleChub2RlKSArIDEpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjb2xsYXBzZSh0b1N0YXJ0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY29sbGFwc2UodG9TdGFydCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgaWYgdG9TdGFydCBpcyB0cnVlLFxuICAgICAgICAgKiBzZXQgZW5kIHRvIHN0YXJ0LCBhbmQgc2V0IHN0YXJ0IHRvIGVuZCBvdGhlcndpc2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodG9TdGFydCkge1xuICAgICAgICAgICAgdGhpcy5fZW5kID0gdGhpcy5fc3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuX2VuZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBzZWxlY3ROb2RlKG5vZGUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBzZWxlY3ROb2RlKG5vZGUpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHNlbGVjdCBub2RlIHdpdGhpblxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGFsZ29yaXRobV8xLnJhbmdlX3NlbGVjdChub2RlLCB0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIG5vZGUgaXMgYSBkb2N0eXBlLCB0aHJvdyBhbiBcIkludmFsaWROb2RlVHlwZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKiAyLiBMZXQgbGVuZ3RoIGJlIHRoZSBsZW5ndGggb2Ygbm9kZS5cbiAgICAgICAgICogMy4gU2V0IHN0YXJ0IHRvIHRoZSBib3VuZGFyeSBwb2ludCAobm9kZSwgMCkuXG4gICAgICAgICAqIDQuIFNldCBlbmQgdG8gdGhlIGJvdW5kYXJ5IHBvaW50IChub2RlLCBsZW5ndGgpLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gYWxnb3JpdGhtXzEudHJlZV9ub2RlTGVuZ3RoKG5vZGUpO1xuICAgICAgICB0aGlzLl9zdGFydCA9IFtub2RlLCAwXTtcbiAgICAgICAgdGhpcy5fZW5kID0gW25vZGUsIGxlbmd0aF07XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNvbXBhcmVCb3VuZGFyeVBvaW50cyhob3csIHNvdXJjZVJhbmdlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBob3cgaXMgbm90IG9uZSBvZlxuICAgICAgICAgKiAtIFNUQVJUX1RPX1NUQVJULFxuICAgICAgICAgKiAtIFNUQVJUX1RPX0VORCxcbiAgICAgICAgICogLSBFTkRfVE9fRU5ELCBhbmRcbiAgICAgICAgICogLSBFTkRfVE9fU1RBUlQsXG4gICAgICAgICAqIHRoZW4gdGhyb3cgYSBcIk5vdFN1cHBvcnRlZEVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGhvdyAhPT0gaW50ZXJmYWNlc18xLkhvd1RvQ29tcGFyZS5TdGFydFRvU3RhcnQgJiYgaG93ICE9PSBpbnRlcmZhY2VzXzEuSG93VG9Db21wYXJlLlN0YXJ0VG9FbmQgJiZcbiAgICAgICAgICAgIGhvdyAhPT0gaW50ZXJmYWNlc18xLkhvd1RvQ29tcGFyZS5FbmRUb0VuZCAmJiBob3cgIT09IGludGVyZmFjZXNfMS5Ib3dUb0NvbXBhcmUuRW5kVG9TdGFydClcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5Ob3RTdXBwb3J0ZWRFcnJvcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSWYgY29udGV4dCBvYmplY3TigJlzIHJvb3QgaXMgbm90IHRoZSBzYW1lIGFzIHNvdXJjZVJhbmdl4oCZcyByb290LFxuICAgICAgICAgKiB0aGVuIHRocm93IGEgXCJXcm9uZ0RvY3VtZW50RXJyb3JcIiBET01FeGNlcHRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoYWxnb3JpdGhtXzEucmFuZ2Vfcm9vdCh0aGlzKSAhPT0gYWxnb3JpdGhtXzEucmFuZ2Vfcm9vdChzb3VyY2VSYW5nZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuV3JvbmdEb2N1bWVudEVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBJZiBob3cgaXM6XG4gICAgICAgICAqIC0gU1RBUlRfVE9fU1RBUlQ6XG4gICAgICAgICAqIExldCB0aGlzIHBvaW50IGJlIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgc3RhcnQuIExldCBvdGhlciBwb2ludCBiZVxuICAgICAgICAgKiBzb3VyY2VSYW5nZeKAmXMgc3RhcnQuXG4gICAgICAgICAqIC0gU1RBUlRfVE9fRU5EOlxuICAgICAgICAgKiBMZXQgdGhpcyBwb2ludCBiZSB0aGUgY29udGV4dCBvYmplY3TigJlzIGVuZC4gTGV0IG90aGVyIHBvaW50IGJlXG4gICAgICAgICAqIHNvdXJjZVJhbmdl4oCZcyBzdGFydC5cbiAgICAgICAgICogLSBFTkRfVE9fRU5EOlxuICAgICAgICAgKiBMZXQgdGhpcyBwb2ludCBiZSB0aGUgY29udGV4dCBvYmplY3TigJlzIGVuZC4gTGV0IG90aGVyIHBvaW50IGJlXG4gICAgICAgICAqIHNvdXJjZVJhbmdl4oCZcyBlbmQuXG4gICAgICAgICAqIC0gRU5EX1RPX1NUQVJUOlxuICAgICAgICAgKiBMZXQgdGhpcyBwb2ludCBiZSB0aGUgY29udGV4dCBvYmplY3TigJlzIHN0YXJ0LiBMZXQgb3RoZXIgcG9pbnQgYmVcbiAgICAgICAgICogc291cmNlUmFuZ2XigJlzIGVuZC5cbiAgICAgICAgICovXG4gICAgICAgIGxldCB0aGlzUG9pbnQ7XG4gICAgICAgIGxldCBvdGhlclBvaW50O1xuICAgICAgICBzd2l0Y2ggKGhvdykge1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuSG93VG9Db21wYXJlLlN0YXJ0VG9TdGFydDpcbiAgICAgICAgICAgICAgICB0aGlzUG9pbnQgPSB0aGlzLl9zdGFydDtcbiAgICAgICAgICAgICAgICBvdGhlclBvaW50ID0gc291cmNlUmFuZ2UuX3N0YXJ0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuSG93VG9Db21wYXJlLlN0YXJ0VG9FbmQ6XG4gICAgICAgICAgICAgICAgdGhpc1BvaW50ID0gdGhpcy5fZW5kO1xuICAgICAgICAgICAgICAgIG90aGVyUG9pbnQgPSBzb3VyY2VSYW5nZS5fc3RhcnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGludGVyZmFjZXNfMS5Ib3dUb0NvbXBhcmUuRW5kVG9FbmQ6XG4gICAgICAgICAgICAgICAgdGhpc1BvaW50ID0gdGhpcy5fZW5kO1xuICAgICAgICAgICAgICAgIG90aGVyUG9pbnQgPSBzb3VyY2VSYW5nZS5fZW5kO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBpbnRlcmZhY2VzXzEuSG93VG9Db21wYXJlLkVuZFRvU3RhcnQ6XG4gICAgICAgICAgICAgICAgdGhpc1BvaW50ID0gdGhpcy5fc3RhcnQ7XG4gICAgICAgICAgICAgICAgb3RoZXJQb2ludCA9IHNvdXJjZVJhbmdlLl9lbmQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTm90U3VwcG9ydGVkRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNC4gSWYgdGhlIHBvc2l0aW9uIG9mIHRoaXMgcG9pbnQgcmVsYXRpdmUgdG8gb3RoZXIgcG9pbnQgaXNcbiAgICAgICAgICogLSBiZWZvcmVcbiAgICAgICAgICogUmV0dXJuIOKIkjEuXG4gICAgICAgICAqIC0gZXF1YWxcbiAgICAgICAgICogUmV0dXJuIDAuXG4gICAgICAgICAqIC0gYWZ0ZXJcbiAgICAgICAgICogUmV0dXJuIDEuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGFsZ29yaXRobV8xLmJvdW5kYXJ5UG9pbnRfcG9zaXRpb24odGhpc1BvaW50LCBvdGhlclBvaW50KTtcbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSBpbnRlcmZhY2VzXzEuQm91bmRhcnlQb3NpdGlvbi5CZWZvcmUpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwb3NpdGlvbiA9PT0gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQWZ0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZGVsZXRlQ29udGVudHMoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiB0aGUgY29udGV4dCBvYmplY3QgaXMgY29sbGFwc2VkLCB0aGVuIHJldHVybi5cbiAgICAgICAgICogMi4gTGV0IG9yaWdpbmFsIHN0YXJ0IG5vZGUsIG9yaWdpbmFsIHN0YXJ0IG9mZnNldCwgb3JpZ2luYWwgZW5kIG5vZGUsXG4gICAgICAgICAqIGFuZCBvcmlnaW5hbCBlbmQgb2Zmc2V0IGJlIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgc3RhcnQgbm9kZSxcbiAgICAgICAgICogc3RhcnQgb2Zmc2V0LCBlbmQgbm9kZSwgYW5kIGVuZCBvZmZzZXQsIHJlc3BlY3RpdmVseS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChhbGdvcml0aG1fMS5yYW5nZV9jb2xsYXBzZWQodGhpcykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsU3RhcnROb2RlID0gdGhpcy5fc3RhcnROb2RlO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFN0YXJ0T2Zmc2V0ID0gdGhpcy5fc3RhcnRPZmZzZXQ7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRW5kTm9kZSA9IHRoaXMuX2VuZE5vZGU7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRW5kT2Zmc2V0ID0gdGhpcy5fZW5kT2Zmc2V0O1xuICAgICAgICAvKipcbiAgICAgICAgICogMy4gSWYgb3JpZ2luYWwgc3RhcnQgbm9kZSBhbmQgb3JpZ2luYWwgZW5kIG5vZGUgYXJlIHRoZSBzYW1lLCBhbmQgdGhleVxuICAgICAgICAgKiBhcmUgYSBUZXh0LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIG9yIENvbW1lbnQgbm9kZSwgcmVwbGFjZSBkYXRhIHdpdGhcbiAgICAgICAgICogbm9kZSBvcmlnaW5hbCBzdGFydCBub2RlLCBvZmZzZXQgb3JpZ2luYWwgc3RhcnQgb2Zmc2V0LCBjb3VudCBvcmlnaW5hbFxuICAgICAgICAgKiBlbmQgb2Zmc2V0IG1pbnVzIG9yaWdpbmFsIHN0YXJ0IG9mZnNldCwgYW5kIGRhdGEgdGhlIGVtcHR5IHN0cmluZyxcbiAgICAgICAgICogYW5kIHRoZW4gcmV0dXJuLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9yaWdpbmFsU3RhcnROb2RlID09PSBvcmlnaW5hbEVuZE5vZGUgJiZcbiAgICAgICAgICAgIHV0aWxfMS5HdWFyZC5pc0NoYXJhY3RlckRhdGFOb2RlKG9yaWdpbmFsU3RhcnROb2RlKSkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEuY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YShvcmlnaW5hbFN0YXJ0Tm9kZSwgb3JpZ2luYWxTdGFydE9mZnNldCwgb3JpZ2luYWxFbmRPZmZzZXQgLSBvcmlnaW5hbFN0YXJ0T2Zmc2V0LCAnJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIExldCBub2RlcyB0byByZW1vdmUgYmUgYSBsaXN0IG9mIGFsbCB0aGUgbm9kZXMgdGhhdCBhcmUgY29udGFpbmVkIGluXG4gICAgICAgICAqIHRoZSBjb250ZXh0IG9iamVjdCwgaW4gdHJlZSBvcmRlciwgb21pdHRpbmcgYW55IG5vZGUgd2hvc2UgcGFyZW50IGlzIGFsc29cbiAgICAgICAgICogY29udGFpbmVkIGluIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IG5vZGVzVG9SZW1vdmUgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIGFsZ29yaXRobV8xLnJhbmdlX2dldENvbnRhaW5lZE5vZGVzKHRoaXMpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgICAgICAgICBpZiAocGFyZW50ICE9PSBudWxsICYmIGFsZ29yaXRobV8xLnJhbmdlX2lzQ29udGFpbmVkKHBhcmVudCwgdGhpcykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vZGVzVG9SZW1vdmUucHVzaChub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV3Tm9kZTtcbiAgICAgICAgbGV0IG5ld09mZnNldDtcbiAgICAgICAgaWYgKGFsZ29yaXRobV8xLnRyZWVfaXNBbmNlc3Rvck9mKG9yaWdpbmFsRW5kTm9kZSwgb3JpZ2luYWxTdGFydE5vZGUsIHRydWUpKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIDUuIElmIG9yaWdpbmFsIHN0YXJ0IG5vZGUgaXMgYW4gaW5jbHVzaXZlIGFuY2VzdG9yIG9mIG9yaWdpbmFsIGVuZFxuICAgICAgICAgICAgICogbm9kZSwgc2V0IG5ldyBub2RlIHRvIG9yaWdpbmFsIHN0YXJ0IG5vZGUgYW5kIG5ldyBvZmZzZXQgdG8gb3JpZ2luYWxcbiAgICAgICAgICAgICAqIHN0YXJ0IG9mZnNldC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbmV3Tm9kZSA9IG9yaWdpbmFsU3RhcnROb2RlO1xuICAgICAgICAgICAgbmV3T2Zmc2V0ID0gb3JpZ2luYWxTdGFydE9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogNi4gT3RoZXJ3aXNlOlxuICAgICAgICAgICAgICogNi4xLiBMZXQgcmVmZXJlbmNlIG5vZGUgZXF1YWwgb3JpZ2luYWwgc3RhcnQgbm9kZS5cbiAgICAgICAgICAgICAqIDYuMi4gV2hpbGUgcmVmZXJlbmNlIG5vZGXigJlzIHBhcmVudCBpcyBub3QgbnVsbCBhbmQgaXMgbm90IGFuIGluY2x1c2l2ZVxuICAgICAgICAgICAgICogYW5jZXN0b3Igb2Ygb3JpZ2luYWwgZW5kIG5vZGUsIHNldCByZWZlcmVuY2Ugbm9kZSB0byBpdHMgcGFyZW50LlxuICAgICAgICAgICAgICogNi4zLiBTZXQgbmV3IG5vZGUgdG8gdGhlIHBhcmVudCBvZiByZWZlcmVuY2Ugbm9kZSwgYW5kIG5ldyBvZmZzZXQgdG9cbiAgICAgICAgICAgICAqIG9uZSBwbHVzIHRoZSBpbmRleCBvZiByZWZlcmVuY2Ugbm9kZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IHJlZmVyZW5jZU5vZGUgPSBvcmlnaW5hbFN0YXJ0Tm9kZTtcbiAgICAgICAgICAgIHdoaWxlIChyZWZlcmVuY2VOb2RlLl9wYXJlbnQgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAhYWxnb3JpdGhtXzEudHJlZV9pc0FuY2VzdG9yT2Yob3JpZ2luYWxFbmROb2RlLCByZWZlcmVuY2VOb2RlLl9wYXJlbnQsIHRydWUpKSB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlTm9kZSA9IHJlZmVyZW5jZU5vZGUuX3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAocmVmZXJlbmNlTm9kZS5fcGFyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGFyZW50IG5vZGUgaXMgbnVsbC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXdOb2RlID0gcmVmZXJlbmNlTm9kZS5fcGFyZW50O1xuICAgICAgICAgICAgbmV3T2Zmc2V0ID0gYWxnb3JpdGhtXzEudHJlZV9pbmRleChyZWZlcmVuY2VOb2RlKSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDcuIElmIG9yaWdpbmFsIHN0YXJ0IG5vZGUgaXMgYSBUZXh0LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIG9yIENvbW1lbnRcbiAgICAgICAgICogbm9kZSwgcmVwbGFjZSBkYXRhIHdpdGggbm9kZSBvcmlnaW5hbCBzdGFydCBub2RlLCBvZmZzZXQgb3JpZ2luYWwgc3RhcnRcbiAgICAgICAgICogb2Zmc2V0LCBjb3VudCBvcmlnaW5hbCBzdGFydCBub2Rl4oCZcyBsZW5ndGggbWludXMgb3JpZ2luYWwgc3RhcnQgb2Zmc2V0LFxuICAgICAgICAgKiBkYXRhIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ2hhcmFjdGVyRGF0YU5vZGUob3JpZ2luYWxTdGFydE5vZGUpKSB7XG4gICAgICAgICAgICBhbGdvcml0aG1fMS5jaGFyYWN0ZXJEYXRhX3JlcGxhY2VEYXRhKG9yaWdpbmFsU3RhcnROb2RlLCBvcmlnaW5hbFN0YXJ0T2Zmc2V0LCBhbGdvcml0aG1fMS50cmVlX25vZGVMZW5ndGgob3JpZ2luYWxTdGFydE5vZGUpIC0gb3JpZ2luYWxTdGFydE9mZnNldCwgJycpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA4LiBGb3IgZWFjaCBub2RlIGluIG5vZGVzIHRvIHJlbW92ZSwgaW4gdHJlZSBvcmRlciwgcmVtb3ZlIG5vZGUgZnJvbSBpdHNcbiAgICAgICAgICogcGFyZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzVG9SZW1vdmUpIHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAobm9kZS5fcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgYWxnb3JpdGhtXzEubXV0YXRpb25fcmVtb3ZlKG5vZGUsIG5vZGUuX3BhcmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDkuIElmIG9yaWdpbmFsIGVuZCBub2RlIGlzIGEgVGV4dCwgUHJvY2Vzc2luZ0luc3RydWN0aW9uLCBvciBDb21tZW50XG4gICAgICAgICAqIG5vZGUsIHJlcGxhY2UgZGF0YSB3aXRoIG5vZGUgb3JpZ2luYWwgZW5kIG5vZGUsIG9mZnNldCAwLCBjb3VudCBvcmlnaW5hbFxuICAgICAgICAgKiBlbmQgb2Zmc2V0IGFuZCBkYXRhIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzQ2hhcmFjdGVyRGF0YU5vZGUob3JpZ2luYWxFbmROb2RlKSkge1xuICAgICAgICAgICAgYWxnb3JpdGhtXzEuY2hhcmFjdGVyRGF0YV9yZXBsYWNlRGF0YShvcmlnaW5hbEVuZE5vZGUsIDAsIG9yaWdpbmFsRW5kT2Zmc2V0LCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEwLiBTZXQgc3RhcnQgYW5kIGVuZCB0byAobmV3IG5vZGUsIG5ldyBvZmZzZXQpLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fc3RhcnQgPSBbbmV3Tm9kZSwgbmV3T2Zmc2V0XTtcbiAgICAgICAgdGhpcy5fZW5kID0gW25ld05vZGUsIG5ld09mZnNldF07XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGV4dHJhY3RDb250ZW50cygpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBleHRyYWN0Q29udGVudHMoKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZlxuICAgICAgICAgKiBleHRyYWN0aW5nIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5yYW5nZV9leHRyYWN0KHRoaXMpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBjbG9uZUNvbnRlbnRzKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGNsb25lQ29udGVudHMoKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCByZXR1cm4gdGhlIHJlc3VsdCBvZlxuICAgICAgICAgKiBjbG9uaW5nIHRoZSBjb250ZW50cyBvZiB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEucmFuZ2VfY2xvbmVUaGVDb250ZW50cyh0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaW5zZXJ0Tm9kZShub2RlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgaW5zZXJ0Tm9kZShub2RlKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCBpbnNlcnQgbm9kZSBpbnRvIHRoZVxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS5yYW5nZV9pbnNlcnQobm9kZSwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHN1cnJvdW5kQ29udGVudHMobmV3UGFyZW50KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBhIG5vbi1UZXh0IG5vZGUgaXMgcGFydGlhbGx5IGNvbnRhaW5lZCBpbiB0aGUgY29udGV4dCBvYmplY3QsIHRoZW5cbiAgICAgICAgICogdGhyb3cgYW4gXCJJbnZhbGlkU3RhdGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBhbGdvcml0aG1fMS5yYW5nZV9nZXRQYXJ0aWFsbHlDb250YWluZWROb2Rlcyh0aGlzKSkge1xuICAgICAgICAgICAgaWYgKCF1dGlsXzEuR3VhcmQuaXNUZXh0Tm9kZShub2RlKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbnZhbGlkU3RhdGVFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiBuZXdQYXJlbnQgaXMgYSBEb2N1bWVudCwgRG9jdW1lbnRUeXBlLCBvciBEb2N1bWVudEZyYWdtZW50IG5vZGUsXG4gICAgICAgICAqIHRoZW4gdGhyb3cgYW4gXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudE5vZGUobmV3UGFyZW50KSB8fFxuICAgICAgICAgICAgdXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShuZXdQYXJlbnQpIHx8XG4gICAgICAgICAgICB1dGlsXzEuR3VhcmQuaXNEb2N1bWVudEZyYWdtZW50Tm9kZShuZXdQYXJlbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZE5vZGVUeXBlRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMy4gTGV0IGZyYWdtZW50IGJlIHRoZSByZXN1bHQgb2YgZXh0cmFjdGluZyB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGFsZ29yaXRobV8xLnJhbmdlX2V4dHJhY3QodGhpcyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBJZiBuZXdQYXJlbnQgaGFzIGNoaWxkcmVuLCB0aGVuIHJlcGxhY2UgYWxsIHdpdGggbnVsbCB3aXRoaW4gbmV3UGFyZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKChuZXdQYXJlbnQpLl9jaGlsZHJlbi5zaXplICE9PSAwKSB7XG4gICAgICAgICAgICBhbGdvcml0aG1fMS5tdXRhdGlvbl9yZXBsYWNlQWxsKG51bGwsIG5ld1BhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuIEluc2VydCBuZXdQYXJlbnQgaW50byB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqIDYuIEFwcGVuZCBmcmFnbWVudCB0byBuZXdQYXJlbnQuXG4gICAgICAgICAqL1xuICAgICAgICBhbGdvcml0aG1fMS5yYW5nZV9pbnNlcnQobmV3UGFyZW50LCB0aGlzKTtcbiAgICAgICAgYWxnb3JpdGhtXzEubXV0YXRpb25fYXBwZW5kKGZyYWdtZW50LCBuZXdQYXJlbnQpO1xuICAgICAgICAvKipcbiAgICAgICAgICogNy4gU2VsZWN0IG5ld1BhcmVudCB3aXRoaW4gdGhlIGNvbnRleHQgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgYWxnb3JpdGhtXzEucmFuZ2Vfc2VsZWN0KG5ld1BhcmVudCwgdGhpcyk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGNsb25lUmFuZ2UoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgY2xvbmVSYW5nZSgpIG1ldGhvZCwgd2hlbiBpbnZva2VkLCBtdXN0IHJldHVybiBhIG5ldyBsaXZlIHJhbmdlIHdpdGhcbiAgICAgICAgICogdGhlIHNhbWUgc3RhcnQgYW5kIGVuZCBhcyB0aGUgY29udGV4dCBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEuY3JlYXRlX3JhbmdlKHRoaXMuX3N0YXJ0LCB0aGlzLl9lbmQpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgZGV0YWNoKCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgZG8gbm90aGluZy5cbiAgICAgICAgICpcbiAgICAgICAgICogc2luY2UgSlMgbGFja3Mgd2VhayByZWZlcmVuY2VzLCB3ZSBzdGlsbCB1c2UgZGV0YWNoXG4gICAgICAgICAqL1xuICAgICAgICBfMS5kb20ucmFuZ2VMaXN0LmRlbGV0ZSh0aGlzKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgaXNQb2ludEluUmFuZ2Uobm9kZSwgb2Zmc2V0KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBJZiBub2Rl4oCZcyByb290IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgcm9vdCwgcmV0dXJuIGZhbHNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUobm9kZSkgIT09IGFsZ29yaXRobV8xLnJhbmdlX3Jvb3QodGhpcykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSWYgbm9kZSBpcyBhIGRvY3R5cGUsIHRoZW4gdGhyb3cgYW4gXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gSWYgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBub2Rl4oCZcyBsZW5ndGgsIHRoZW4gdGhyb3cgYW5cbiAgICAgICAgICogXCJJbmRleFNpemVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWROb2RlVHlwZUVycm9yKCk7XG4gICAgICAgIGlmIChvZmZzZXQgPiBhbGdvcml0aG1fMS50cmVlX25vZGVMZW5ndGgobm9kZSkpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW5kZXhTaXplRXJyb3IoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIElmIChub2RlLCBvZmZzZXQpIGlzIGJlZm9yZSBzdGFydCBvciBhZnRlciBlbmQsIHJldHVybiBmYWxzZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGJwID0gW25vZGUsIG9mZnNldF07XG4gICAgICAgIGlmIChhbGdvcml0aG1fMS5ib3VuZGFyeVBvaW50X3Bvc2l0aW9uKGJwLCB0aGlzLl9zdGFydCkgPT09IGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkJlZm9yZSB8fFxuICAgICAgICAgICAgYWxnb3JpdGhtXzEuYm91bmRhcnlQb2ludF9wb3NpdGlvbihicCwgdGhpcy5fZW5kKSA9PT0gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQWZ0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNS4gUmV0dXJuIHRydWUuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgY29tcGFyZVBvaW50KG5vZGUsIG9mZnNldCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgbm9kZeKAmXMgcm9vdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCBvYmplY3TigJlzIHJvb3QsIHRoZW4gdGhyb3dcbiAgICAgICAgICogYSBcIldyb25nRG9jdW1lbnRFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMi4gSWYgbm9kZSBpcyBhIGRvY3R5cGUsIHRoZW4gdGhyb3cgYW4gXCJJbnZhbGlkTm9kZVR5cGVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICogMy4gSWYgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiBub2Rl4oCZcyBsZW5ndGgsIHRoZW4gdGhyb3cgYW5cbiAgICAgICAgICogXCJJbmRleFNpemVFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChhbGdvcml0aG1fMS50cmVlX3Jvb3ROb2RlKG5vZGUpICE9PSBhbGdvcml0aG1fMS5yYW5nZV9yb290KHRoaXMpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLldyb25nRG9jdW1lbnRFcnJvcigpO1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbnZhbGlkTm9kZVR5cGVFcnJvcigpO1xuICAgICAgICBpZiAob2Zmc2V0ID4gYWxnb3JpdGhtXzEudHJlZV9ub2RlTGVuZ3RoKG5vZGUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkluZGV4U2l6ZUVycm9yKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBJZiAobm9kZSwgb2Zmc2V0KSBpcyBiZWZvcmUgc3RhcnQsIHJldHVybiDiiJIxLlxuICAgICAgICAgKiA1LiBJZiAobm9kZSwgb2Zmc2V0KSBpcyBhZnRlciBlbmQsIHJldHVybiAxLlxuICAgICAgICAgKiA2LiBSZXR1cm4gMC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGJwID0gW25vZGUsIG9mZnNldF07XG4gICAgICAgIGlmIChhbGdvcml0aG1fMS5ib3VuZGFyeVBvaW50X3Bvc2l0aW9uKGJwLCB0aGlzLl9zdGFydCkgPT09IGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkJlZm9yZSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGFsZ29yaXRobV8xLmJvdW5kYXJ5UG9pbnRfcG9zaXRpb24oYnAsIHRoaXMuX2VuZCkgPT09IGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkFmdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGludGVyc2VjdHNOb2RlKG5vZGUpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIG5vZGXigJlzIHJvb3QgaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgb2JqZWN04oCZcyByb290LCByZXR1cm4gZmFsc2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoYWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShub2RlKSAhPT0gYWxnb3JpdGhtXzEucmFuZ2Vfcm9vdCh0aGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBMZXQgcGFyZW50IGJlIG5vZGXigJlzIHBhcmVudC5cbiAgICAgICAgICogMy4gSWYgcGFyZW50IGlzIG51bGwsIHJldHVybiB0cnVlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5fcGFyZW50O1xuICAgICAgICBpZiAocGFyZW50ID09PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBMZXQgb2Zmc2V0IGJlIG5vZGXigJlzIGluZGV4LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gYWxnb3JpdGhtXzEudHJlZV9pbmRleChub2RlKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDUuIElmIChwYXJlbnQsIG9mZnNldCkgaXMgYmVmb3JlIGVuZCBhbmQgKHBhcmVudCwgb2Zmc2V0IHBsdXMgMSkgaXNcbiAgICAgICAgICogYWZ0ZXIgc3RhcnQsIHJldHVybiB0cnVlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGFsZ29yaXRobV8xLmJvdW5kYXJ5UG9pbnRfcG9zaXRpb24oW3BhcmVudCwgb2Zmc2V0XSwgdGhpcy5fZW5kKSA9PT0gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQmVmb3JlICYmXG4gICAgICAgICAgICBhbGdvcml0aG1fMS5ib3VuZGFyeVBvaW50X3Bvc2l0aW9uKFtwYXJlbnQsIG9mZnNldCArIDFdLCB0aGlzLl9zdGFydCkgPT09IGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkFmdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNi4gUmV0dXJuIGZhbHNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBzIGJlIHRoZSBlbXB0eSBzdHJpbmcuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICAvKipcbiAgICAgICAgICogMi4gSWYgdGhlIGNvbnRleHQgb2JqZWN04oCZcyBzdGFydCBub2RlIGlzIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgZW5kIG5vZGVcbiAgICAgICAgICogYW5kIGl0IGlzIGEgVGV4dCBub2RlLCB0aGVuIHJldHVybiB0aGUgc3Vic3RyaW5nIG9mIHRoYXQgVGV4dCBub2Rl4oCZcyBkYXRhXG4gICAgICAgICAqIGJlZ2lubmluZyBhdCB0aGUgY29udGV4dCBvYmplY3TigJlzIHN0YXJ0IG9mZnNldCBhbmQgZW5kaW5nIGF0IHRoZSBjb250ZXh0XG4gICAgICAgICAqIG9iamVjdOKAmXMgZW5kIG9mZnNldC5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLl9zdGFydE5vZGUgPT09IHRoaXMuX2VuZE5vZGUgJiYgdXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUodGhpcy5fc3RhcnROb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0Tm9kZS5fZGF0YS5zdWJzdHJpbmcodGhpcy5fc3RhcnRPZmZzZXQsIHRoaXMuX2VuZE9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIElmIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgc3RhcnQgbm9kZSBpcyBhIFRleHQgbm9kZSwgdGhlbiBhcHBlbmQgdGhlXG4gICAgICAgICAqIHN1YnN0cmluZyBvZiB0aGF0IG5vZGXigJlzIGRhdGEgZnJvbSB0aGUgY29udGV4dCBvYmplY3TigJlzIHN0YXJ0IG9mZnNldFxuICAgICAgICAgKiB1bnRpbCB0aGUgZW5kIHRvIHMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUodGhpcy5fc3RhcnROb2RlKSkge1xuICAgICAgICAgICAgcyArPSB0aGlzLl9zdGFydE5vZGUuX2RhdGEuc3Vic3RyaW5nKHRoaXMuX3N0YXJ0T2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNC4gQXBwZW5kIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBkYXRhIG9mIGFsbCBUZXh0IG5vZGVzIHRoYXQgYXJlXG4gICAgICAgICAqIGNvbnRhaW5lZCBpbiB0aGUgY29udGV4dCBvYmplY3QsIGluIHRyZWUgb3JkZXIsIHRvIHMuXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGFsZ29yaXRobV8xLnJhbmdlX2dldENvbnRhaW5lZE5vZGVzKHRoaXMpKSB7XG4gICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUoY2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgcyArPSBjaGlsZC5fZGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNS4gSWYgdGhlIGNvbnRleHQgb2JqZWN04oCZcyBlbmQgbm9kZSBpcyBhIFRleHQgbm9kZSwgdGhlbiBhcHBlbmQgdGhlXG4gICAgICAgICAqIHN1YnN0cmluZyBvZiB0aGF0IG5vZGXigJlzIGRhdGEgZnJvbSBpdHMgc3RhcnQgdW50aWwgdGhlIGNvbnRleHQgb2JqZWN04oCZc1xuICAgICAgICAgKiBlbmQgb2Zmc2V0IHRvIHMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUodGhpcy5fZW5kTm9kZSkpIHtcbiAgICAgICAgICAgIHMgKz0gdGhpcy5fZW5kTm9kZS5fZGF0YS5zdWJzdHJpbmcoMCwgdGhpcy5fZW5kT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogNi4gUmV0dXJuIHMuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBgUmFuZ2VgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0YXJ0IC0gc3RhcnQgcG9pbnRcbiAgICAgKiBAcGFyYW0gZW5kIC0gZW5kIHBvaW50XG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUoc3RhcnQsIGVuZCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBSYW5nZUltcGwoKTtcbiAgICAgICAgaWYgKHN0YXJ0KVxuICAgICAgICAgICAgcmFuZ2UuX3N0YXJ0ID0gc3RhcnQ7XG4gICAgICAgIGlmIChlbmQpXG4gICAgICAgICAgICByYW5nZS5fZW5kID0gZW5kO1xuICAgICAgICByZXR1cm4gcmFuZ2U7XG4gICAgfVxufVxuZXhwb3J0cy5SYW5nZUltcGwgPSBSYW5nZUltcGw7XG5SYW5nZUltcGwuU1RBUlRfVE9fU1RBUlQgPSAwO1xuUmFuZ2VJbXBsLlNUQVJUX1RPX0VORCA9IDE7XG5SYW5nZUltcGwuRU5EX1RPX0VORCA9IDI7XG5SYW5nZUltcGwuRU5EX1RPX1NUQVJUID0gMztcbi8qKlxuICogRGVmaW5lIGNvbnN0YW50cyBvbiBwcm90b3R5cGUuXG4gKi9cbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChSYW5nZUltcGwucHJvdG90eXBlLCBcIlNUQVJUX1RPX1NUQVJUXCIsIDApO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KFJhbmdlSW1wbC5wcm90b3R5cGUsIFwiU1RBUlRfVE9fRU5EXCIsIDEpO1xuV2ViSURMQWxnb3JpdGhtXzEuaWRsX2RlZmluZUNvbnN0KFJhbmdlSW1wbC5wcm90b3R5cGUsIFwiRU5EX1RPX0VORFwiLCAyKTtcbldlYklETEFsZ29yaXRobV8xLmlkbF9kZWZpbmVDb25zdChSYW5nZUltcGwucHJvdG90eXBlLCBcIkVORF9UT19TVEFSVFwiLCAzKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJhbmdlSW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IERvY3VtZW50RnJhZ21lbnRJbXBsXzEgPSByZXF1aXJlKFwiLi9Eb2N1bWVudEZyYWdtZW50SW1wbFwiKTtcbmNvbnN0IHV0aWxfMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvdXRpbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyBhIHNoYWRvdyByb290LlxuICovXG5jbGFzcyBTaGFkb3dSb290SW1wbCBleHRlbmRzIERvY3VtZW50RnJhZ21lbnRJbXBsXzEuRG9jdW1lbnRGcmFnbWVudEltcGwge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIGBTaGFkb3dSb290YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBob3N0IC0gc2hhZG93IHJvb3QncyBob3N0IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gbW9kZSAtIHNoYWRvdyByb290J3MgbW9kZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGhvc3QsIG1vZGUgPSBcImNsb3NlZFwiKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2hvc3QgPSBob3N0O1xuICAgICAgICB0aGlzLl9tb2RlID0gbW9kZTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IG1vZGUoKSB7IHJldHVybiB0aGlzLl9tb2RlOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGhvc3QoKSB7IHJldHVybiB0aGlzLl9ob3N0OyB9XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcGFyZW50IGV2ZW50IHRhcmdldCBmb3IgdGhlIGdpdmVuIGV2ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IC0gYW4gZXZlbnRcbiAgICAgKi9cbiAgICBfZ2V0VGhlUGFyZW50KGV2ZW50KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHNoYWRvdyByb2904oCZcyBnZXQgdGhlIHBhcmVudCBhbGdvcml0aG0sIGdpdmVuIGFuIGV2ZW50LCByZXR1cm5zIG51bGxcbiAgICAgICAgICogaWYgZXZlbnTigJlzIGNvbXBvc2VkIGZsYWcgaXMgdW5zZXQgYW5kIHNoYWRvdyByb290IGlzIHRoZSByb290IG9mXG4gICAgICAgICAqIGV2ZW504oCZcyBwYXRo4oCZcyBmaXJzdCBzdHJ1Y3TigJlzIGludm9jYXRpb24gdGFyZ2V0LCBhbmQgc2hhZG93IHJvb3TigJlzIGhvc3RcbiAgICAgICAgICogb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFldmVudC5fY29tcG9zZWRGbGFnICYmICF1dGlsXzEuaXNFbXB0eShldmVudC5fcGF0aCkgJiZcbiAgICAgICAgICAgIGFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUoZXZlbnQuX3BhdGhbMF0uaW52b2NhdGlvblRhcmdldCkgPT09IHRoaXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3Q7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gTUlYSU46IERvY3VtZW50T3JTaGFkb3dSb290XG4gICAgLy8gTm8gZWxlbWVudHNcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGBTaGFkb3dSb290YC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkb2N1bWVudCAtIG93bmVyIGRvY3VtZW50XG4gICAgICogQHBhcmFtIGhvc3QgLSBzaGFkb3cgcm9vdCdzIGhvc3QgZWxlbWVudFxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKGRvY3VtZW50LCBob3N0KSB7XG4gICAgICAgIHJldHVybiBuZXcgU2hhZG93Um9vdEltcGwoaG9zdCwgXCJjbG9zZWRcIik7XG4gICAgfVxufVxuZXhwb3J0cy5TaGFkb3dSb290SW1wbCA9IFNoYWRvd1Jvb3RJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2hhZG93Um9vdEltcGwuanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi9pbnRlcmZhY2VzXCIpO1xuY29uc3QgVHJhdmVyc2VySW1wbF8xID0gcmVxdWlyZShcIi4vVHJhdmVyc2VySW1wbFwiKTtcbmNvbnN0IGFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4uL2FsZ29yaXRobVwiKTtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbm9kZXMgb2YgYSBzdWJ0cmVlIGFuZCBhIHBvc2l0aW9uIHdpdGhpbiB0aGVtLlxuICovXG5jbGFzcyBUcmVlV2Fsa2VySW1wbCBleHRlbmRzIFRyYXZlcnNlckltcGxfMS5UcmF2ZXJzZXJJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgVHJlZVdhbGtlcmAuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iocm9vdCwgY3VycmVudCkge1xuICAgICAgICBzdXBlcihyb290KTtcbiAgICAgICAgdGhpcy5fY3VycmVudCA9IGN1cnJlbnQ7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIGdldCBjdXJyZW50Tm9kZSgpIHsgcmV0dXJuIHRoaXMuX2N1cnJlbnQ7IH1cbiAgICBzZXQgY3VycmVudE5vZGUodmFsdWUpIHsgdGhpcy5fY3VycmVudCA9IHZhbHVlOyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcGFyZW50Tm9kZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBub2RlIGJlIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgY3VycmVudC5cbiAgICAgICAgICogMi4gV2hpbGUgbm9kZSBpcyBub24tbnVsbCBhbmQgaXMgbm90IHRoZSBjb250ZXh0IG9iamVjdOKAmXMgcm9vdDpcbiAgICAgICAgICovXG4gICAgICAgIGxldCBub2RlID0gdGhpcy5fY3VycmVudDtcbiAgICAgICAgd2hpbGUgKG5vZGUgIT09IG51bGwgJiYgbm9kZSAhPT0gdGhpcy5fcm9vdCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAyLjEuIFNldCBub2RlIHRvIG5vZGXigJlzIHBhcmVudC5cbiAgICAgICAgICAgICAqIDIuMi4gSWYgbm9kZSBpcyBub24tbnVsbCBhbmQgZmlsdGVyaW5nIG5vZGUgd2l0aGluIHRoZSBjb250ZXh0IG9iamVjdFxuICAgICAgICAgICAgICogcmV0dXJucyBGSUxURVJfQUNDRVBULCB0aGVuIHNldCB0aGUgY29udGV4dCBvYmplY3TigJlzIGN1cnJlbnQgdG8gbm9kZVxuICAgICAgICAgICAgICogYW5kIHJldHVybiBub2RlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBub2RlID0gbm9kZS5fcGFyZW50O1xuICAgICAgICAgICAgaWYgKG5vZGUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICBhbGdvcml0aG1fMS50cmF2ZXJzYWxfZmlsdGVyKHRoaXMsIG5vZGUpID09PSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBSZXR1cm4gbnVsbC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBmaXJzdENoaWxkKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGZpcnN0Q2hpbGQoKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCB0cmF2ZXJzZSBjaGlsZHJlbiB3aXRoIHRoZVxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdCBhbmQgZmlyc3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEudHJlZVdhbGtlcl90cmF2ZXJzZUNoaWxkcmVuKHRoaXMsIHRydWUpO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBsYXN0Q2hpbGQoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbGFzdENoaWxkKCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgdHJhdmVyc2UgY2hpbGRyZW4gd2l0aCB0aGVcbiAgICAgICAgICogY29udGV4dCBvYmplY3QgYW5kIGxhc3QuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYWxnb3JpdGhtXzEudHJlZVdhbGtlcl90cmF2ZXJzZUNoaWxkcmVuKHRoaXMsIGZhbHNlKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgbmV4dFNpYmxpbmcoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbmV4dFNpYmxpbmcoKSBtZXRob2QsIHdoZW4gaW52b2tlZCwgbXVzdCB0cmF2ZXJzZSBzaWJsaW5ncyB3aXRoIHRoZVxuICAgICAgICAgKiBjb250ZXh0IG9iamVjdCBhbmQgbmV4dC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBhbGdvcml0aG1fMS50cmVlV2Fsa2VyX3RyYXZlcnNlU2libGluZ3ModGhpcywgdHJ1ZSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIHByZXZpb3VzTm9kZSgpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIExldCBub2RlIGJlIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgY3VycmVudC5cbiAgICAgICAgICogMi4gV2hpbGUgbm9kZSBpcyBub3QgdGhlIGNvbnRleHQgb2JqZWN04oCZcyByb290OlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IG5vZGUgPSB0aGlzLl9jdXJyZW50O1xuICAgICAgICB3aGlsZSAobm9kZSAhPT0gdGhpcy5fcm9vdCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAyLjEuIExldCBzaWJsaW5nIGJlIG5vZGXigJlzIHByZXZpb3VzIHNpYmxpbmcuXG4gICAgICAgICAgICAgKiAyLjIuIFdoaWxlIHNpYmxpbmcgaXMgbm9uLW51bGw6XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBzaWJsaW5nID0gbm9kZS5fcHJldmlvdXNTaWJsaW5nO1xuICAgICAgICAgICAgd2hpbGUgKHNpYmxpbmcpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjIuMS4gU2V0IG5vZGUgdG8gc2libGluZy5cbiAgICAgICAgICAgICAgICAgKiAyLjIuMi4gTGV0IHJlc3VsdCBiZSB0aGUgcmVzdWx0IG9mIGZpbHRlcmluZyBub2RlIHdpdGhpbiB0aGUgY29udGV4dFxuICAgICAgICAgICAgICAgICAqIG9iamVjdC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBub2RlID0gc2libGluZztcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYWxnb3JpdGhtXzEudHJhdmVyc2FsX2ZpbHRlcih0aGlzLCBub2RlKTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjIuMy4gV2hpbGUgcmVzdWx0IGlzIG5vdCBGSUxURVJfUkVKRUNUIGFuZCBub2RlIGhhcyBhIGNoaWxkOlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgIT09IGludGVyZmFjZXNfMS5GaWx0ZXJSZXN1bHQuUmVqZWN0ICYmIG5vZGUuX2xhc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogMi4yLjMuMS4gU2V0IG5vZGUgdG8gbm9kZeKAmXMgbGFzdCBjaGlsZC5cbiAgICAgICAgICAgICAgICAgICAgICogMi4yLjMuMi4gU2V0IHJlc3VsdCB0byB0aGUgcmVzdWx0IG9mIGZpbHRlcmluZyBub2RlIHdpdGhpbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICogY29udGV4dCBvYmplY3QuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5fbGFzdENoaWxkO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBhbGdvcml0aG1fMS50cmF2ZXJzYWxfZmlsdGVyKHRoaXMsIG5vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAyLjIuNC4gSWYgcmVzdWx0IGlzIEZJTFRFUl9BQ0NFUFQsIHRoZW4gc2V0IHRoZSBjb250ZXh0IG9iamVjdOKAmXNcbiAgICAgICAgICAgICAgICAgKiBjdXJyZW50IHRvIG5vZGUgYW5kIHJldHVybiBub2RlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IGludGVyZmFjZXNfMS5GaWx0ZXJSZXN1bHQuQWNjZXB0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogMi4yLjUuIFNldCBzaWJsaW5nIHRvIG5vZGXigJlzIHByZXZpb3VzIHNpYmxpbmcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgc2libGluZyA9IG5vZGUuX3ByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi4zLiBJZiBub2RlIGlzIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgcm9vdCBvciBub2Rl4oCZcyBwYXJlbnQgaXMgbnVsbCxcbiAgICAgICAgICAgICAqIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChub2RlID09PSB0aGlzLl9yb290IHx8IG5vZGUuX3BhcmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAyLjQuIFNldCBub2RlIHRvIG5vZGXigJlzIHBhcmVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUuX3BhcmVudDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMi41LiBJZiB0aGUgcmV0dXJuIHZhbHVlIG9mIGZpbHRlcmluZyBub2RlIHdpdGhpbiB0aGUgY29udGV4dCBvYmplY3QgaXNcbiAgICAgICAgICAgICAqIEZJTFRFUl9BQ0NFUFQsIHRoZW4gc2V0IHRoZSBjb250ZXh0IG9iamVjdOKAmXMgY3VycmVudCB0byBub2RlIGFuZFxuICAgICAgICAgICAgICogcmV0dXJuIG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChhbGdvcml0aG1fMS50cmF2ZXJzYWxfZmlsdGVyKHRoaXMsIG5vZGUpID09PSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBSZXR1cm4gbnVsbC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwcmV2aW91c1NpYmxpbmcoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcHJldmlvdXNTaWJsaW5nKCkgbWV0aG9kLCB3aGVuIGludm9rZWQsIG11c3QgdHJhdmVyc2Ugc2libGluZ3Mgd2l0aFxuICAgICAgICAgKiB0aGUgY29udGV4dCBvYmplY3QgYW5kIHByZXZpb3VzLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGFsZ29yaXRobV8xLnRyZWVXYWxrZXJfdHJhdmVyc2VTaWJsaW5ncyh0aGlzLCBmYWxzZSk7XG4gICAgfVxuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIG5leHROb2RlKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gTGV0IG5vZGUgYmUgdGhlIGNvbnRleHQgb2JqZWN04oCZcyBjdXJyZW50LlxuICAgICAgICAgKiAyLiBMZXQgcmVzdWx0IGJlIEZJTFRFUl9BQ0NFUFQuXG4gICAgICAgICAqIDMuIFdoaWxlIHRydWU6XG4gICAgICAgICAqL1xuICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX2N1cnJlbnQ7XG4gICAgICAgIGxldCByZXN1bHQgPSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdDtcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy4xLiBXaGlsZSByZXN1bHQgaXMgbm90IEZJTFRFUl9SRUpFQ1QgYW5kIG5vZGUgaGFzIGEgY2hpbGQ6XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgIT09IGludGVyZmFjZXNfMS5GaWx0ZXJSZXN1bHQuUmVqZWN0ICYmIG5vZGUuX2ZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAzLjEuMS4gU2V0IG5vZGUgdG8gaXRzIGZpcnN0IGNoaWxkLlxuICAgICAgICAgICAgICAgICAqIDMuMS4yLiBTZXQgcmVzdWx0IHRvIHRoZSByZXN1bHQgb2YgZmlsdGVyaW5nIG5vZGUgd2l0aGluIHRoZSBjb250ZXh0XG4gICAgICAgICAgICAgICAgICogb2JqZWN0LlxuICAgICAgICAgICAgICAgICAqIDMuMS4zLiBJZiByZXN1bHQgaXMgRklMVEVSX0FDQ0VQVCwgdGhlbiBzZXQgdGhlIGNvbnRleHQgb2JqZWN04oCZc1xuICAgICAgICAgICAgICAgICAqIGN1cnJlbnQgdG8gbm9kZSBhbmQgcmV0dXJuIG5vZGUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUuX2ZpcnN0Q2hpbGQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gYWxnb3JpdGhtXzEudHJhdmVyc2FsX2ZpbHRlcih0aGlzLCBub2RlKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09PSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAzLjIuIExldCBzaWJsaW5nIGJlIG51bGwuXG4gICAgICAgICAgICAgKiAzLjMuIExldCB0ZW1wb3JhcnkgYmUgbm9kZS5cbiAgICAgICAgICAgICAqIDMuNC4gV2hpbGUgdGVtcG9yYXJ5IGlzIG5vbi1udWxsOlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgc2libGluZyA9IG51bGw7XG4gICAgICAgICAgICBsZXQgdGVtcG9yYXJ5ID0gbm9kZTtcbiAgICAgICAgICAgIHdoaWxlICh0ZW1wb3JhcnkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAzLjQuMS4gSWYgdGVtcG9yYXJ5IGlzIHRoZSBjb250ZXh0IG9iamVjdOKAmXMgcm9vdCwgdGhlbiByZXR1cm4gbnVsbC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAodGVtcG9yYXJ5ID09PSB0aGlzLl9yb290KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAzLjQuMi4gU2V0IHNpYmxpbmcgdG8gdGVtcG9yYXJ54oCZcyBuZXh0IHNpYmxpbmcuXG4gICAgICAgICAgICAgICAgICogMy40LjMuIElmIHNpYmxpbmcgaXMgbm9uLW51bGwsIHRoZW4gYnJlYWsuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgc2libGluZyA9IHRlbXBvcmFyeS5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IHNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiAzLjQuNC4gU2V0IHRlbXBvcmFyeSB0byB0ZW1wb3JhcnnigJlzIHBhcmVudC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB0ZW1wb3JhcnkgPSB0ZW1wb3JhcnkuX3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogMy41LiBTZXQgcmVzdWx0IHRvIHRoZSByZXN1bHQgb2YgZmlsdGVyaW5nIG5vZGUgd2l0aGluIHRoZSBjb250ZXh0IG9iamVjdC5cbiAgICAgICAgICAgICAqIDMuNi4gSWYgcmVzdWx0IGlzIEZJTFRFUl9BQ0NFUFQsIHRoZW4gc2V0IHRoZSBjb250ZXh0IG9iamVjdOKAmXMgY3VycmVudFxuICAgICAgICAgICAgICogdG8gbm9kZSBhbmQgcmV0dXJuIG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHJlc3VsdCA9IGFsZ29yaXRobV8xLnRyYXZlcnNhbF9maWx0ZXIodGhpcywgbm9kZSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgYFRyZWVXYWxrZXJgLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvb3QgLSBpdGVyYXRvcidzIHJvb3Qgbm9kZVxuICAgICAqIEBwYXJhbSBjdXJyZW50IC0gY3VycmVudCBub2RlXG4gICAgICovXG4gICAgc3RhdGljIF9jcmVhdGUocm9vdCwgY3VycmVudCkge1xuICAgICAgICByZXR1cm4gbmV3IFRyZWVXYWxrZXJJbXBsKHJvb3QsIGN1cnJlbnQpO1xuICAgIH1cbn1cbmV4cG9ydHMuVHJlZVdhbGtlckltcGwgPSBUcmVlV2Fsa2VySW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRyZWVXYWxrZXJJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgRXZlbnRUYXJnZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9FdmVudFRhcmdldEltcGxcIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL3V0aWxcIik7XG5jb25zdCBhbGdvcml0aG1fMSA9IHJlcXVpcmUoXCIuLi9hbGdvcml0aG1cIik7XG4vKipcbiAqIFJlcHJlc2VudHMgYSB3aW5kb3cgY29udGFpbmluZyBhIERPTSBkb2N1bWVudC5cbiAqL1xuY2xhc3MgV2luZG93SW1wbCBleHRlbmRzIEV2ZW50VGFyZ2V0SW1wbF8xLkV2ZW50VGFyZ2V0SW1wbCB7XG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYFdpbmRvd2AuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX3NpZ25hbFNsb3RzID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9tdXRhdGlvbk9ic2VydmVyTWljcm90YXNrUXVldWVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX211dGF0aW9uT2JzZXJ2ZXJzID0gbmV3IFNldCgpO1xuICAgICAgICB0aGlzLl9pdGVyYXRvckxpc3QgPSBuZXcgdXRpbF8xLkZpeGVkU2l6ZVNldCgpO1xuICAgICAgICB0aGlzLl9hc3NvY2lhdGVkRG9jdW1lbnQgPSBhbGdvcml0aG1fMS5jcmVhdGVfZG9jdW1lbnQoKTtcbiAgICB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGRvY3VtZW50KCkgeyByZXR1cm4gdGhpcy5fYXNzb2NpYXRlZERvY3VtZW50OyB9XG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgZ2V0IGV2ZW50KCkgeyByZXR1cm4gdGhpcy5fY3VycmVudEV2ZW50OyB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB3aW5kb3cgd2l0aCBhIGJsYW5rIGRvY3VtZW50LlxuICAgICAqL1xuICAgIHN0YXRpYyBfY3JlYXRlKCkge1xuICAgICAgICByZXR1cm4gbmV3IFdpbmRvd0ltcGwoKTtcbiAgICB9XG59XG5leHBvcnRzLldpbmRvd0ltcGwgPSBXaW5kb3dJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9V2luZG93SW1wbC5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IERvY3VtZW50SW1wbF8xID0gcmVxdWlyZShcIi4vRG9jdW1lbnRJbXBsXCIpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFhNTCBkb2N1bWVudC5cbiAqL1xuY2xhc3MgWE1MRG9jdW1lbnRJbXBsIGV4dGVuZHMgRG9jdW1lbnRJbXBsXzEuRG9jdW1lbnRJbXBsIHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBgWE1MRG9jdW1lbnRgLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cbmV4cG9ydHMuWE1MRG9jdW1lbnRJbXBsID0gWE1MRG9jdW1lbnRJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9WE1MRG9jdW1lbnRJbXBsLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgZG9tXzEgPSByZXF1aXJlKFwiLi4vZG9tXCIpO1xuY29uc3QgaW50ZXJmYWNlc18xID0gcmVxdWlyZShcIi4uL2RvbS9pbnRlcmZhY2VzXCIpO1xuY29uc3QgVHJhdmVyc2FsQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9UcmF2ZXJzYWxBbGdvcml0aG1cIik7XG5jb25zdCBUcmVlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9UcmVlQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBuZXh0IG9yIHByZXZpb3VzIG5vZGUgaW4gdGhlIHN1YnRyZWUsIG9yIGBudWxsYCBpZlxuICogdGhlcmUgYXJlIG5vbmUuXG4gKlxuICogQHBhcmFtIGl0ZXJhdG9yIC0gdGhlIGBOb2RlSXRlcmF0b3JgIGluc3RhbmNlXG4gKiBAcGFyYW0gZm9yd2FyZC0gYHRydWVgIHRvIHJldHVybiB0aGUgbmV4dCBub2RlLCBvciBgZmFsc2VgIHRvXG4gKiByZXR1cm4gdGhlIHByZXZpb3VzIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIG5vZGVJdGVyYXRvcl90cmF2ZXJzZShpdGVyYXRvciwgZm9yd2FyZCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBub2RlIGJlIGl0ZXJhdG9y4oCZcyByZWZlcmVuY2UuXG4gICAgICogMi4gTGV0IGJlZm9yZU5vZGUgYmUgaXRlcmF0b3LigJlzIHBvaW50ZXIgYmVmb3JlIHJlZmVyZW5jZS5cbiAgICAgKi9cbiAgICBsZXQgbm9kZSA9IGl0ZXJhdG9yLl9yZWZlcmVuY2U7XG4gICAgbGV0IGJlZm9yZU5vZGUgPSBpdGVyYXRvci5fcG9pbnRlckJlZm9yZVJlZmVyZW5jZTtcbiAgICAvKipcbiAgICAgKiAzLiBXaGlsZSB0cnVlOlxuICAgICAqL1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLjEuIEJyYW5jaCBvbiBkaXJlY3Rpb246XG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZm9yd2FyZCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiAtIG5leHRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFiZWZvcmVOb2RlKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgYmVmb3JlTm9kZSBpcyBmYWxzZSwgdGhlbiBzZXQgbm9kZSB0byB0aGUgZmlyc3Qgbm9kZSBmb2xsb3dpbmdcbiAgICAgICAgICAgICAgICAgKiBub2RlIGluIGl0ZXJhdG9y4oCZcyBpdGVyYXRvciBjb2xsZWN0aW9uLiBJZiB0aGVyZSBpcyBubyBzdWNoIG5vZGUsXG4gICAgICAgICAgICAgICAgICogdGhlbiByZXR1cm4gbnVsbC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0Tm9kZSA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldEZvbGxvd2luZ05vZGUoaXRlcmF0b3IuX3Jvb3QsIG5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlID0gbmV4dE5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBiZWZvcmVOb2RlIGlzIHRydWUsIHRoZW4gc2V0IGl0IHRvIGZhbHNlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGJlZm9yZU5vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogLSBwcmV2aW91c1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoYmVmb3JlTm9kZSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGJlZm9yZU5vZGUgaXMgdHJ1ZSwgdGhlbiBzZXQgbm9kZSB0byB0aGUgZmlyc3Qgbm9kZSBwcmVjZWRpbmdcbiAgICAgICAgICAgICAgICAgKiBub2RlIGluIGl0ZXJhdG9y4oCZcyBpdGVyYXRvciBjb2xsZWN0aW9uLiBJZiB0aGVyZSBpcyBubyBzdWNoIG5vZGUsXG4gICAgICAgICAgICAgICAgICogdGhlbiByZXR1cm4gbnVsbC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2Tm9kZSA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldFByZWNlZGluZ05vZGUoaXRlcmF0b3Iucm9vdCwgbm9kZSk7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZOb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUgPSBwcmV2Tm9kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIGJlZm9yZU5vZGUgaXMgZmFsc2UsIHRoZW4gc2V0IGl0IHRvIHRydWUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgYmVmb3JlTm9kZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuMi4gTGV0IHJlc3VsdCBiZSB0aGUgcmVzdWx0IG9mIGZpbHRlcmluZyBub2RlIHdpdGhpbiBpdGVyYXRvci5cbiAgICAgICAgICogMy4zLiBJZiByZXN1bHQgaXMgRklMVEVSX0FDQ0VQVCwgdGhlbiBicmVhay5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFRyYXZlcnNhbEFsZ29yaXRobV8xLnRyYXZlcnNhbF9maWx0ZXIoaXRlcmF0b3IsIG5vZGUpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBpbnRlcmZhY2VzXzEuRmlsdGVyUmVzdWx0LkFjY2VwdCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gU2V0IGl0ZXJhdG9y4oCZcyByZWZlcmVuY2UgdG8gbm9kZS5cbiAgICAgKiA1LiBTZXQgaXRlcmF0b3LigJlzIHBvaW50ZXIgYmVmb3JlIHJlZmVyZW5jZSB0byBiZWZvcmVOb2RlLlxuICAgICAqIDYuIFJldHVybiBub2RlLlxuICAgICAqL1xuICAgIGl0ZXJhdG9yLl9yZWZlcmVuY2UgPSBub2RlO1xuICAgIGl0ZXJhdG9yLl9wb2ludGVyQmVmb3JlUmVmZXJlbmNlID0gYmVmb3JlTm9kZTtcbiAgICByZXR1cm4gbm9kZTtcbn1cbmV4cG9ydHMubm9kZUl0ZXJhdG9yX3RyYXZlcnNlID0gbm9kZUl0ZXJhdG9yX3RyYXZlcnNlO1xuLyoqXG4gKiBHZXRzIHRoZSBnbG9iYWwgaXRlcmF0b3IgbGlzdC5cbiAqL1xuZnVuY3Rpb24gbm9kZUl0ZXJhdG9yX2l0ZXJhdG9yTGlzdCgpIHtcbiAgICByZXR1cm4gZG9tXzEuZG9tLndpbmRvdy5faXRlcmF0b3JMaXN0O1xufVxuZXhwb3J0cy5ub2RlSXRlcmF0b3JfaXRlcmF0b3JMaXN0ID0gbm9kZUl0ZXJhdG9yX2l0ZXJhdG9yTGlzdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vZGVJdGVyYXRvckFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IERPTUV4Y2VwdGlvbl8xID0gcmVxdWlyZShcIi4uL2RvbS9ET01FeGNlcHRpb25cIik7XG5jb25zdCBpbmZyYV8xID0gcmVxdWlyZShcIkBvb3pjaXRhay9pbmZyYVwiKTtcbmNvbnN0IFhNTEFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vWE1MQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIGdpdmVuIHF1YWxpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBxdWFsaWZpZWROYW1lIC0gcXVhbGlmaWVkIG5hbWVcbiAqL1xuZnVuY3Rpb24gbmFtZXNwYWNlX3ZhbGlkYXRlKHF1YWxpZmllZE5hbWUpIHtcbiAgICAvKipcbiAgICAgKiBUbyB2YWxpZGF0ZSBhIHF1YWxpZmllZE5hbWUsIHRocm93IGFuIFwiSW52YWxpZENoYXJhY3RlckVycm9yXCJcbiAgICAgKiBET01FeGNlcHRpb24gaWYgcXVhbGlmaWVkTmFtZSBkb2VzIG5vdCBtYXRjaCB0aGUgTmFtZSBvciBRTmFtZVxuICAgICAqIHByb2R1Y3Rpb24uXG4gICAgICovXG4gICAgaWYgKCFYTUxBbGdvcml0aG1fMS54bWxfaXNOYW1lKHF1YWxpZmllZE5hbWUpKVxuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuSW52YWxpZENoYXJhY3RlckVycm9yKGBJbnZhbGlkIFhNTCBuYW1lOiAke3F1YWxpZmllZE5hbWV9YCk7XG4gICAgaWYgKCFYTUxBbGdvcml0aG1fMS54bWxfaXNRTmFtZShxdWFsaWZpZWROYW1lKSlcbiAgICAgICAgdGhyb3cgbmV3IERPTUV4Y2VwdGlvbl8xLkludmFsaWRDaGFyYWN0ZXJFcnJvcihgSW52YWxpZCBYTUwgcXVhbGlmaWVkIG5hbWU6ICR7cXVhbGlmaWVkTmFtZX0uYCk7XG59XG5leHBvcnRzLm5hbWVzcGFjZV92YWxpZGF0ZSA9IG5hbWVzcGFjZV92YWxpZGF0ZTtcbi8qKlxuICogVmFsaWRhdGVzIGFuZCBleHRyYWN0cyBhIG5hbWVzcGFjZSwgcHJlZml4IGFuZCBsb2NhbE5hbWUgZnJvbSB0aGVcbiAqIGdpdmVuIG5hbWVzcGFjZSBhbmQgcXVhbGlmaWVkIG5hbWUuXG4gKiBTZWU6IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jdmFsaWRhdGUtYW5kLWV4dHJhY3QuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIG5hbWVzcGFjZVxuICogQHBhcmFtIHF1YWxpZmllZE5hbWUgLSBxdWFsaWZpZWQgbmFtZVxuICpcbiAqIEByZXR1cm5zIGEgdHVwbGUgd2l0aCBgbmFtZXNwYWNlYCwgYHByZWZpeGAgYW5kIGBsb2NhbE5hbWVgLlxuICovXG5mdW5jdGlvbiBuYW1lc3BhY2VfdmFsaWRhdGVBbmRFeHRyYWN0KG5hbWVzcGFjZSwgcXVhbGlmaWVkTmFtZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIG5hbWVzcGFjZSBpcyB0aGUgZW1wdHkgc3RyaW5nLCBzZXQgaXQgdG8gbnVsbC5cbiAgICAgKiAyLiBWYWxpZGF0ZSBxdWFsaWZpZWROYW1lLlxuICAgICAqIDMuIExldCBwcmVmaXggYmUgbnVsbC5cbiAgICAgKiA0LiBMZXQgbG9jYWxOYW1lIGJlIHF1YWxpZmllZE5hbWUuXG4gICAgICogNS4gSWYgcXVhbGlmaWVkTmFtZSBjb250YWlucyBhIFwiOlwiIChVKzAwM0UpLCB0aGVuIHNwbGl0IHRoZSBzdHJpbmcgb24gaXRcbiAgICAgKiBhbmQgc2V0IHByZWZpeCB0byB0aGUgcGFydCBiZWZvcmUgYW5kIGxvY2FsTmFtZSB0byB0aGUgcGFydCBhZnRlci5cbiAgICAgKiA2LiBJZiBwcmVmaXggaXMgbm9uLW51bGwgYW5kIG5hbWVzcGFjZSBpcyBudWxsLCB0aGVuIHRocm93IGFcbiAgICAgKiBcIk5hbWVzcGFjZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqIDcuIElmIHByZWZpeCBpcyBcInhtbFwiIGFuZCBuYW1lc3BhY2UgaXMgbm90IHRoZSBYTUwgbmFtZXNwYWNlLCB0aGVuIHRocm93XG4gICAgICogYSBcIk5hbWVzcGFjZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqIDguIElmIGVpdGhlciBxdWFsaWZpZWROYW1lIG9yIHByZWZpeCBpcyBcInhtbG5zXCIgYW5kIG5hbWVzcGFjZSBpcyBub3QgdGhlXG4gICAgICogWE1MTlMgbmFtZXNwYWNlLCB0aGVuIHRocm93IGEgXCJOYW1lc3BhY2VFcnJvclwiIERPTUV4Y2VwdGlvbi5cbiAgICAgKiA5LiBJZiBuYW1lc3BhY2UgaXMgdGhlIFhNTE5TIG5hbWVzcGFjZSBhbmQgbmVpdGhlciBxdWFsaWZpZWROYW1lIG5vclxuICAgICAqIHByZWZpeCBpcyBcInhtbG5zXCIsIHRoZW4gdGhyb3cgYSBcIk5hbWVzcGFjZUVycm9yXCIgRE9NRXhjZXB0aW9uLlxuICAgICAqIDEwLiBSZXR1cm4gbmFtZXNwYWNlLCBwcmVmaXgsIGFuZCBsb2NhbE5hbWUuXG4gICAgICovXG4gICAgaWYgKCFuYW1lc3BhY2UpXG4gICAgICAgIG5hbWVzcGFjZSA9IG51bGw7XG4gICAgbmFtZXNwYWNlX3ZhbGlkYXRlKHF1YWxpZmllZE5hbWUpO1xuICAgIGNvbnN0IHBhcnRzID0gcXVhbGlmaWVkTmFtZS5zcGxpdCgnOicpO1xuICAgIGNvbnN0IHByZWZpeCA9IChwYXJ0cy5sZW5ndGggPT09IDIgPyBwYXJ0c1swXSA6IG51bGwpO1xuICAgIGNvbnN0IGxvY2FsTmFtZSA9IChwYXJ0cy5sZW5ndGggPT09IDIgPyBwYXJ0c1sxXSA6IHF1YWxpZmllZE5hbWUpO1xuICAgIGlmIChwcmVmaXggJiYgbmFtZXNwYWNlID09PSBudWxsKVxuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTmFtZXNwYWNlRXJyb3IoXCJRdWFsaWZpZWQgbmFtZSBpbmNsdWRlcyBhIHByZWZpeCBidXQgdGhlIG5hbWVzcGFjZSBpcyBudWxsLlwiKTtcbiAgICBpZiAocHJlZml4ID09PSBcInhtbFwiICYmIG5hbWVzcGFjZSAhPT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MKVxuICAgICAgICB0aHJvdyBuZXcgRE9NRXhjZXB0aW9uXzEuTmFtZXNwYWNlRXJyb3IoYFF1YWxpZmllZCBuYW1lIGluY2x1ZGVzIHRoZSBcInhtbFwiIHByZWZpeCBidXQgdGhlIG5hbWVzcGFjZSBpcyBub3QgdGhlIFhNTCBuYW1lc3BhY2UuYCk7XG4gICAgaWYgKG5hbWVzcGFjZSAhPT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MTlMgJiZcbiAgICAgICAgKHByZWZpeCA9PT0gXCJ4bWxuc1wiIHx8IHF1YWxpZmllZE5hbWUgPT09IFwieG1sbnNcIikpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5OYW1lc3BhY2VFcnJvcihgUXVhbGlmaWVkIG5hbWUgaW5jbHVkZXMgdGhlIFwieG1sbnNcIiBwcmVmaXggYnV0IHRoZSBuYW1lc3BhY2UgaXMgbm90IHRoZSBYTUxOUyBuYW1lc3BhY2UuYCk7XG4gICAgaWYgKG5hbWVzcGFjZSA9PT0gaW5mcmFfMS5uYW1lc3BhY2UuWE1MTlMgJiZcbiAgICAgICAgKHByZWZpeCAhPT0gXCJ4bWxuc1wiICYmIHF1YWxpZmllZE5hbWUgIT09IFwieG1sbnNcIikpXG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5OYW1lc3BhY2VFcnJvcihgUXVhbGlmaWVkIG5hbWUgZG9lcyBub3QgaW5jbHVkZSB0aGUgXCJ4bWxuc1wiIHByZWZpeCBidXQgdGhlIG5hbWVzcGFjZSBpcyB0aGUgWE1MTlMgbmFtZXNwYWNlLmApO1xuICAgIHJldHVybiBbbmFtZXNwYWNlLCBwcmVmaXgsIGxvY2FsTmFtZV07XG59XG5leHBvcnRzLm5hbWVzcGFjZV92YWxpZGF0ZUFuZEV4dHJhY3QgPSBuYW1lc3BhY2VfdmFsaWRhdGVBbmRFeHRyYWN0O1xuLyoqXG4gKiBFeHRyYWN0cyBhIHByZWZpeCBhbmQgbG9jYWxOYW1lIGZyb20gdGhlIGdpdmVuIHF1YWxpZmllZCBuYW1lLlxuICpcbiAqIEBwYXJhbSBxdWFsaWZpZWROYW1lIC0gcXVhbGlmaWVkIG5hbWVcbiAqXG4gKiBAcmV0dXJucyBhbiB0dXBsZSB3aXRoIGBwcmVmaXhgIGFuZCBgbG9jYWxOYW1lYC5cbiAqL1xuZnVuY3Rpb24gbmFtZXNwYWNlX2V4dHJhY3RRTmFtZShxdWFsaWZpZWROYW1lKSB7XG4gICAgbmFtZXNwYWNlX3ZhbGlkYXRlKHF1YWxpZmllZE5hbWUpO1xuICAgIGNvbnN0IHBhcnRzID0gcXVhbGlmaWVkTmFtZS5zcGxpdCgnOicpO1xuICAgIGNvbnN0IHByZWZpeCA9IChwYXJ0cy5sZW5ndGggPT09IDIgPyBwYXJ0c1swXSA6IG51bGwpO1xuICAgIGNvbnN0IGxvY2FsTmFtZSA9IChwYXJ0cy5sZW5ndGggPT09IDIgPyBwYXJ0c1sxXSA6IHF1YWxpZmllZE5hbWUpO1xuICAgIHJldHVybiBbcHJlZml4LCBsb2NhbE5hbWVdO1xufVxuZXhwb3J0cy5uYW1lc3BhY2VfZXh0cmFjdFFOYW1lID0gbmFtZXNwYWNlX2V4dHJhY3RRTmFtZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hbWVzcGFjZUFsZ29yaXRobS5qcy5tYXAiLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIHZhbGlkIGZvciBhIGBcIk5hbWVcImAgY29uc3RydWN0LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gbmFtZSBzdHJpbmcgdG8gdGVzdFxuICovXG5mdW5jdGlvbiB4bWxfaXNOYW1lKG5hbWUpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IG4gPSBuYW1lLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIC8vIE5hbWVTdGFydENoYXJcbiAgICAgICAgaWYgKChuID49IDk3ICYmIG4gPD0gMTIyKSB8fCAvLyBbYS16XVxuICAgICAgICAgICAgKG4gPj0gNjUgJiYgbiA8PSA5MCkgfHwgLy8gW0EtWl1cbiAgICAgICAgICAgIG4gPT09IDU4IHx8IG4gPT09IDk1IHx8IC8vICc6JyBvciAnXydcbiAgICAgICAgICAgIChuID49IDB4QzAgJiYgbiA8PSAweEQ2KSB8fFxuICAgICAgICAgICAgKG4gPj0gMHhEOCAmJiBuIDw9IDB4RjYpIHx8XG4gICAgICAgICAgICAobiA+PSAweEY4ICYmIG4gPD0gMHgyRkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDM3MCAmJiBuIDw9IDB4MzdEKSB8fFxuICAgICAgICAgICAgKG4gPj0gMHgzN0YgJiYgbiA8PSAweDFGRkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDIwMEMgJiYgbiA8PSAweDIwMEQpIHx8XG4gICAgICAgICAgICAobiA+PSAweDIwNzAgJiYgbiA8PSAweDIxOEYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDJDMDAgJiYgbiA8PSAweDJGRUYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDMwMDEgJiYgbiA8PSAweEQ3RkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweEY5MDAgJiYgbiA8PSAweEZEQ0YpIHx8XG4gICAgICAgICAgICAobiA+PSAweEZERjAgJiYgbiA8PSAweEZGRkQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpICE9PSAwICYmXG4gICAgICAgICAgICAobiA9PT0gNDUgfHwgbiA9PT0gNDYgfHwgLy8gJy0nIG9yICcuJ1xuICAgICAgICAgICAgICAgIChuID49IDQ4ICYmIG4gPD0gNTcpIHx8IC8vIFswLTldXG4gICAgICAgICAgICAgICAgKG4gPT09IDB4QjcpIHx8XG4gICAgICAgICAgICAgICAgKG4gPj0gMHgwMzAwICYmIG4gPD0gMHgwMzZGKSB8fFxuICAgICAgICAgICAgICAgIChuID49IDB4MjAzRiAmJiBuIDw9IDB4MjA0MCkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobiA+PSAweEQ4MDAgJiYgbiA8PSAweERCRkYgJiYgaSA8IG5hbWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbjIgPSBuYW1lLmNoYXJDb2RlQXQoaSArIDEpO1xuICAgICAgICAgICAgaWYgKG4yID49IDB4REMwMCAmJiBuMiA8PSAweERGRkYpIHtcbiAgICAgICAgICAgICAgICBuID0gKG4gLSAweEQ4MDApICogMHg0MDAgKyBuMiAtIDB4REMwMCArIDB4MTAwMDA7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGlmIChuID49IDB4MTAwMDAgJiYgbiA8PSAweEVGRkZGKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0cy54bWxfaXNOYW1lID0geG1sX2lzTmFtZTtcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIHZhbGlkIGZvciBhIGBcIlFOYW1lXCJgIGNvbnN0cnVjdC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIG5hbWUgc3RyaW5nIHRvIHRlc3RcbiAqL1xuZnVuY3Rpb24geG1sX2lzUU5hbWUobmFtZSkge1xuICAgIGxldCBjb2xvbkZvdW5kID0gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBuID0gbmFtZS5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAvLyBOYW1lU3RhcnRDaGFyXG4gICAgICAgIGlmICgobiA+PSA5NyAmJiBuIDw9IDEyMikgfHwgLy8gW2Etel1cbiAgICAgICAgICAgIChuID49IDY1ICYmIG4gPD0gOTApIHx8IC8vIFtBLVpdXG4gICAgICAgICAgICBuID09PSA5NSB8fCAvLyAnXydcbiAgICAgICAgICAgIChuID49IDB4QzAgJiYgbiA8PSAweEQ2KSB8fFxuICAgICAgICAgICAgKG4gPj0gMHhEOCAmJiBuIDw9IDB4RjYpIHx8XG4gICAgICAgICAgICAobiA+PSAweEY4ICYmIG4gPD0gMHgyRkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDM3MCAmJiBuIDw9IDB4MzdEKSB8fFxuICAgICAgICAgICAgKG4gPj0gMHgzN0YgJiYgbiA8PSAweDFGRkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDIwMEMgJiYgbiA8PSAweDIwMEQpIHx8XG4gICAgICAgICAgICAobiA+PSAweDIwNzAgJiYgbiA8PSAweDIxOEYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDJDMDAgJiYgbiA8PSAweDJGRUYpIHx8XG4gICAgICAgICAgICAobiA+PSAweDMwMDEgJiYgbiA8PSAweEQ3RkYpIHx8XG4gICAgICAgICAgICAobiA+PSAweEY5MDAgJiYgbiA8PSAweEZEQ0YpIHx8XG4gICAgICAgICAgICAobiA+PSAweEZERjAgJiYgbiA8PSAweEZGRkQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpICE9PSAwICYmXG4gICAgICAgICAgICAobiA9PT0gNDUgfHwgbiA9PT0gNDYgfHwgLy8gJy0nIG9yICcuJ1xuICAgICAgICAgICAgICAgIChuID49IDQ4ICYmIG4gPD0gNTcpIHx8IC8vIFswLTldXG4gICAgICAgICAgICAgICAgKG4gPT09IDB4QjcpIHx8XG4gICAgICAgICAgICAgICAgKG4gPj0gMHgwMzAwICYmIG4gPD0gMHgwMzZGKSB8fFxuICAgICAgICAgICAgICAgIChuID49IDB4MjAzRiAmJiBuIDw9IDB4MjA0MCkpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpICE9PSAwICYmIG4gPT09IDU4KSB7IC8vIDpcbiAgICAgICAgICAgIGlmIChjb2xvbkZvdW5kKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gbXVsdGlwbGUgY29sb25zIGluIHFuYW1lXG4gICAgICAgICAgICBpZiAoaSA9PT0gbmFtZS5sZW5ndGggLSAxKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gY29sb24gYXQgdGhlIGVuZCBvZiBxbmFtZVxuICAgICAgICAgICAgY29sb25Gb3VuZCA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobiA+PSAweEQ4MDAgJiYgbiA8PSAweERCRkYgJiYgaSA8IG5hbWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgbjIgPSBuYW1lLmNoYXJDb2RlQXQoaSArIDEpO1xuICAgICAgICAgICAgaWYgKG4yID49IDB4REMwMCAmJiBuMiA8PSAweERGRkYpIHtcbiAgICAgICAgICAgICAgICBuID0gKG4gLSAweEQ4MDApICogMHg0MDAgKyBuMiAtIDB4REMwMCArIDB4MTAwMDA7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGlmIChuID49IDB4MTAwMDAgJiYgbiA8PSAweEVGRkZGKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0cy54bWxfaXNRTmFtZSA9IHhtbF9pc1FOYW1lO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBzdHJpbmcgY29udGFpbnMgbGVnYWwgY2hhcmFjdGVycy5cbiAqXG4gKiBAcGFyYW0gY2hhcnMgLSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRvIHRlc3RcbiAqL1xuZnVuY3Rpb24geG1sX2lzTGVnYWxDaGFyKGNoYXJzKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgbiA9IGNoYXJzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIC8vICN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0gfCBbI3gxMDAwMC0jeDEwRkZGRl1cbiAgICAgICAgaWYgKG4gPT09IDB4OSB8fCBuID09PSAweEEgfHwgbiA9PT0gMHhEIHx8XG4gICAgICAgICAgICAobiA+PSAweDIwICYmIG4gPD0gMHhEN0ZGKSB8fFxuICAgICAgICAgICAgKG4gPj0gMHhFMDAwICYmIG4gPD0gMHhGRkZEKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4gPj0gMHhEODAwICYmIG4gPD0gMHhEQkZGICYmIGkgPCBjaGFycy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBuMiA9IGNoYXJzLmNoYXJDb2RlQXQoaSArIDEpO1xuICAgICAgICAgICAgaWYgKG4yID49IDB4REMwMCAmJiBuMiA8PSAweERGRkYpIHtcbiAgICAgICAgICAgICAgICBuID0gKG4gLSAweEQ4MDApICogMHg0MDAgKyBuMiAtIDB4REMwMCArIDB4MTAwMDA7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGlmIChuID49IDB4MTAwMDAgJiYgbiA8PSAweDEwRkZGRikge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydHMueG1sX2lzTGVnYWxDaGFyID0geG1sX2lzTGVnYWxDaGFyO1xuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBzdHJpbmcgY29udGFpbnMgbGVnYWwgY2hhcmFjdGVycyBmb3IgYSBwdWJsaWNcbiAqIGlkZW50aWZpZXIuXG4gKlxuICogQHBhcmFtIGNoYXJzIC0gc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0byB0ZXN0XG4gKi9cbmZ1bmN0aW9uIHhtbF9pc1B1YmlkQ2hhcihjaGFycykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLy8gUHViSWQgY2hhcnMgYXJlIGFsbCBpbiB0aGUgQVNDSUkgcmFuZ2UsIG5vIG5lZWQgdG8gY2hlY2sgc3Vycm9nYXRlc1xuICAgICAgICBjb25zdCBuID0gY2hhcnMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgLy8gI3gyMCB8ICN4RCB8ICN4QSB8IFthLXpBLVowLTldIHwgWy0nKCkrLC4vOj0/OyEqI0AkXyVdXG4gICAgICAgIGlmICgobiA+PSA5NyAmJiBuIDw9IDEyMikgfHwgLy8gW2Etel1cbiAgICAgICAgICAgIChuID49IDY1ICYmIG4gPD0gOTApIHx8IC8vIFtBLVpdXG4gICAgICAgICAgICAobiA+PSAzOSAmJiBuIDw9IDU5KSB8fCAvLyBbJygpKissLS4vXSB8IFswLTldIHwgWzo7XVxuICAgICAgICAgICAgbiA9PT0gMHgyMCB8fCBuID09PSAweEQgfHwgbiA9PT0gMHhBIHx8IC8vICN4MjAgfCAjeEQgfCAjeEFcbiAgICAgICAgICAgIChuID49IDM1ICYmIG4gPD0gMzcpIHx8IC8vIFsjJCVdXG4gICAgICAgICAgICBuID09PSAzMyB8fCAvLyAhXG4gICAgICAgICAgICBuID09PSA2MSB8fCBuID09PSA2MyB8fCBuID09PSA2NCB8fCBuID09PSA5NSkgeyAvLyBbPT9AX11cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZXhwb3J0cy54bWxfaXNQdWJpZENoYXIgPSB4bWxfaXNQdWJpZENoYXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1YTUxBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBpbnRlcmZhY2VzXzEgPSByZXF1aXJlKFwiLi4vZG9tL2ludGVyZmFjZXNcIik7XG5jb25zdCBUcmVlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9UcmVlQWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NpdGlvbiBvZiBhIGJvdW5kYXJ5IHBvaW50IHJlbGF0aXZlIHRvIGFub3RoZXIuXG4gKlxuICogQHBhcmFtIGJwIC0gYSBib3VuZGFyeSBwb2ludFxuICogQHBhcmFtIHJlbGF0aXZlVG8gLSBhIGJvdW5kYXJ5IHBvaW50IHRvIGNvbXBhcmUgdG9cbiAqL1xuZnVuY3Rpb24gYm91bmRhcnlQb2ludF9wb3NpdGlvbihicCwgcmVsYXRpdmVUbykge1xuICAgIGNvbnN0IG5vZGVBID0gYnBbMF07XG4gICAgY29uc3Qgb2Zmc2V0QSA9IGJwWzFdO1xuICAgIGNvbnN0IG5vZGVCID0gcmVsYXRpdmVUb1swXTtcbiAgICBjb25zdCBvZmZzZXRCID0gcmVsYXRpdmVUb1sxXTtcbiAgICAvKipcbiAgICAgKiAxLiBBc3NlcnQ6IG5vZGVBIGFuZCBub2RlQiBoYXZlIHRoZSBzYW1lIHJvb3QuXG4gICAgICovXG4gICAgY29uc29sZS5hc3NlcnQoVHJlZUFsZ29yaXRobV8xLnRyZWVfcm9vdE5vZGUobm9kZUEpID09PSBUcmVlQWxnb3JpdGhtXzEudHJlZV9yb290Tm9kZShub2RlQiksIFwiQm91bmRhcnkgcG9pbnRzIG11c3Qgc2hhcmUgdGhlIHNhbWUgcm9vdCBub2RlLlwiKTtcbiAgICAvKipcbiAgICAgKiAyLiBJZiBub2RlQSBpcyBub2RlQiwgdGhlbiByZXR1cm4gZXF1YWwgaWYgb2Zmc2V0QSBpcyBvZmZzZXRCLCBiZWZvcmVcbiAgICAgKiBpZiBvZmZzZXRBIGlzIGxlc3MgdGhhbiBvZmZzZXRCLCBhbmQgYWZ0ZXIgaWYgb2Zmc2V0QSBpcyBncmVhdGVyIHRoYW5cbiAgICAgKiBvZmZzZXRCLlxuICAgICAqL1xuICAgIGlmIChub2RlQSA9PT0gbm9kZUIpIHtcbiAgICAgICAgaWYgKG9mZnNldEEgPT09IG9mZnNldEIpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuQm91bmRhcnlQb3NpdGlvbi5FcXVhbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChvZmZzZXRBIDwgb2Zmc2V0Qikge1xuICAgICAgICAgICAgcmV0dXJuIGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkJlZm9yZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuQm91bmRhcnlQb3NpdGlvbi5BZnRlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBJZiBub2RlQSBpcyBmb2xsb3dpbmcgbm9kZUIsIHRoZW4gaWYgdGhlIHBvc2l0aW9uIG9mIChub2RlQiwgb2Zmc2V0QilcbiAgICAgKiByZWxhdGl2ZSB0byAobm9kZUEsIG9mZnNldEEpIGlzIGJlZm9yZSwgcmV0dXJuIGFmdGVyLCBhbmQgaWYgaXQgaXMgYWZ0ZXIsXG4gICAgICogcmV0dXJuIGJlZm9yZS5cbiAgICAgKi9cbiAgICBpZiAoVHJlZUFsZ29yaXRobV8xLnRyZWVfaXNGb2xsb3dpbmcobm9kZUIsIG5vZGVBKSkge1xuICAgICAgICBjb25zdCBwb3MgPSBib3VuZGFyeVBvaW50X3Bvc2l0aW9uKFtub2RlQiwgb2Zmc2V0Ql0sIFtub2RlQSwgb2Zmc2V0QV0pO1xuICAgICAgICBpZiAocG9zID09PSBpbnRlcmZhY2VzXzEuQm91bmRhcnlQb3NpdGlvbi5CZWZvcmUpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnRlcmZhY2VzXzEuQm91bmRhcnlQb3NpdGlvbi5BZnRlcjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwb3MgPT09IGludGVyZmFjZXNfMS5Cb3VuZGFyeVBvc2l0aW9uLkFmdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQmVmb3JlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDQuIElmIG5vZGVBIGlzIGFuIGFuY2VzdG9yIG9mIG5vZGVCOlxuICAgICAqL1xuICAgIGlmIChUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0FuY2VzdG9yT2Yobm9kZUIsIG5vZGVBKSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogNC4xLiBMZXQgY2hpbGQgYmUgbm9kZUIuXG4gICAgICAgICAqIDQuMi4gV2hpbGUgY2hpbGQgaXMgbm90IGEgY2hpbGQgb2Ygbm9kZUEsIHNldCBjaGlsZCB0byBpdHMgcGFyZW50LlxuICAgICAgICAgKiA0LjMuIElmIGNoaWxk4oCZcyBpbmRleCBpcyBsZXNzIHRoYW4gb2Zmc2V0QSwgdGhlbiByZXR1cm4gYWZ0ZXIuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgY2hpbGQgPSBub2RlQjtcbiAgICAgICAgd2hpbGUgKCFUcmVlQWxnb3JpdGhtXzEudHJlZV9pc0NoaWxkT2Yobm9kZUEsIGNoaWxkKSkge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgIGlmIChjaGlsZC5fcGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5fcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChUcmVlQWxnb3JpdGhtXzEudHJlZV9pbmRleChjaGlsZCkgPCBvZmZzZXRBKSB7XG4gICAgICAgICAgICByZXR1cm4gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQWZ0ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNS4gUmV0dXJuIGJlZm9yZS5cbiAgICAgKi9cbiAgICByZXR1cm4gaW50ZXJmYWNlc18xLkJvdW5kYXJ5UG9zaXRpb24uQmVmb3JlO1xufVxuZXhwb3J0cy5ib3VuZGFyeVBvaW50X3Bvc2l0aW9uID0gYm91bmRhcnlQb2ludF9wb3NpdGlvbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUJvdW5kYXJ5UG9pbnRBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCIuLi9kb21cIik7XG5jb25zdCB1dGlsXzEgPSByZXF1aXJlKFwiLi4vdXRpbFwiKTtcbmNvbnN0IGluZnJhXzEgPSByZXF1aXJlKFwiQG9vemNpdGFrL2luZnJhXCIpO1xuY29uc3QgQ3JlYXRlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9DcmVhdGVBbGdvcml0aG1cIik7XG5jb25zdCBPcmRlcmVkU2V0QWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9PcmRlcmVkU2V0QWxnb3JpdGhtXCIpO1xuY29uc3QgRE9NQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9ET01BbGdvcml0aG1cIik7XG5jb25zdCBNdXRhdGlvbkFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vTXV0YXRpb25BbGdvcml0aG1cIik7XG5jb25zdCBFbGVtZW50QWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9FbGVtZW50QWxnb3JpdGhtXCIpO1xuLyoqXG4gKiBSZXBsYWNlcyB0aGUgY29udGVudHMgb2YgdGhlIGdpdmVuIG5vZGUgd2l0aCBhIHNpbmdsZSB0ZXh0IG5vZGUuXG4gKlxuICogQHBhcmFtIHN0cmluZyAtIG5vZGUgY29udGVudHNcbiAqIEBwYXJhbSBwYXJlbnQgLSBhIG5vZGVcbiAqL1xuZnVuY3Rpb24gbm9kZV9zdHJpbmdSZXBsYWNlQWxsKHN0ciwgcGFyZW50KSB7XG4gICAgLyoqXG4gICAgICogMS4gTGV0IG5vZGUgYmUgbnVsbC5cbiAgICAgKiAyLiBJZiBzdHJpbmcgaXMgbm90IHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gc2V0IG5vZGUgdG8gYSBuZXcgVGV4dCBub2RlXG4gICAgICogd2hvc2UgZGF0YSBpcyBzdHJpbmcgYW5kIG5vZGUgZG9jdW1lbnQgaXMgcGFyZW504oCZcyBub2RlIGRvY3VtZW50LlxuICAgICAqIDMuIFJlcGxhY2UgYWxsIHdpdGggbm9kZSB3aXRoaW4gcGFyZW50LlxuICAgICAqL1xuICAgIGxldCBub2RlID0gbnVsbDtcbiAgICBpZiAoc3RyICE9PSAnJykge1xuICAgICAgICBub2RlID0gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX3RleHQocGFyZW50Ll9ub2RlRG9jdW1lbnQsIHN0cik7XG4gICAgfVxuICAgIE11dGF0aW9uQWxnb3JpdGhtXzEubXV0YXRpb25fcmVwbGFjZUFsbChub2RlLCBwYXJlbnQpO1xufVxuZXhwb3J0cy5ub2RlX3N0cmluZ1JlcGxhY2VBbGwgPSBub2RlX3N0cmluZ1JlcGxhY2VBbGw7XG4vKipcbiAqIENsb25lcyBhIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGUgdG8gY2xvbmVcbiAqIEBwYXJhbSBkb2N1bWVudCAtIHRoZSBkb2N1bWVudCB0byBvd24gdGhlIGNsb25lZCBub2RlXG4gKiBAcGFyYW0gY2xvbmVDaGlsZHJlbkZsYWcgLSB3aGV0aGVyIHRvIGNsb25lIG5vZGUncyBjaGlsZHJlblxuICovXG5mdW5jdGlvbiBub2RlX2Nsb25lKG5vZGUsIGRvY3VtZW50ID0gbnVsbCwgY2xvbmVDaGlsZHJlbkZsYWcgPSBmYWxzZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIGRvY3VtZW50IGlzIG5vdCBnaXZlbiwgbGV0IGRvY3VtZW50IGJlIG5vZGXigJlzIG5vZGUgZG9jdW1lbnQuXG4gICAgICovXG4gICAgaWYgKGRvY3VtZW50ID09PSBudWxsKVxuICAgICAgICBkb2N1bWVudCA9IG5vZGUuX25vZGVEb2N1bWVudDtcbiAgICBsZXQgY29weTtcbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzRWxlbWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIElmIG5vZGUgaXMgYW4gZWxlbWVudCwgdGhlbjpcbiAgICAgICAgICogMi4xLiBMZXQgY29weSBiZSB0aGUgcmVzdWx0IG9mIGNyZWF0aW5nIGFuIGVsZW1lbnQsIGdpdmVuIGRvY3VtZW50LFxuICAgICAgICAgKiBub2Rl4oCZcyBsb2NhbCBuYW1lLCBub2Rl4oCZcyBuYW1lc3BhY2UsIG5vZGXigJlzIG5hbWVzcGFjZSBwcmVmaXgsXG4gICAgICAgICAqIGFuZCBub2Rl4oCZcyBpcyB2YWx1ZSwgd2l0aCB0aGUgc3luY2hyb25vdXMgY3VzdG9tIGVsZW1lbnRzIGZsYWcgdW5zZXQuXG4gICAgICAgICAqIDIuMi4gRm9yIGVhY2ggYXR0cmlidXRlIGluIG5vZGXigJlzIGF0dHJpYnV0ZSBsaXN0OlxuICAgICAgICAgKiAyLjIuMS4gTGV0IGNvcHlBdHRyaWJ1dGUgYmUgYSBjbG9uZSBvZiBhdHRyaWJ1dGUuXG4gICAgICAgICAqIDIuMi4yLiBBcHBlbmQgY29weUF0dHJpYnV0ZSB0byBjb3B5LlxuICAgICAgICAgKi9cbiAgICAgICAgY29weSA9IEVsZW1lbnRBbGdvcml0aG1fMS5lbGVtZW50X2NyZWF0ZUFuRWxlbWVudChkb2N1bWVudCwgbm9kZS5fbG9jYWxOYW1lLCBub2RlLl9uYW1lc3BhY2UsIG5vZGUuX25hbWVzcGFjZVByZWZpeCwgbm9kZS5faXMsIGZhbHNlKTtcbiAgICAgICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2Ygbm9kZS5fYXR0cmlidXRlTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgY29weUF0dHJpYnV0ZSA9IG5vZGVfY2xvbmUoYXR0cmlidXRlLCBkb2N1bWVudCk7XG4gICAgICAgICAgICBFbGVtZW50QWxnb3JpdGhtXzEuZWxlbWVudF9hcHBlbmQoY29weUF0dHJpYnV0ZSwgY29weSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBPdGhlcndpc2UsIGxldCBjb3B5IGJlIGEgbm9kZSB0aGF0IGltcGxlbWVudHMgdGhlIHNhbWUgaW50ZXJmYWNlcyBhc1xuICAgICAgICAgKiBub2RlLCBhbmQgZnVsZmlsbHMgdGhlc2UgYWRkaXRpb25hbCByZXF1aXJlbWVudHMsIHN3aXRjaGluZyBvbiBub2RlOlxuICAgICAgICAgKiAtIERvY3VtZW50XG4gICAgICAgICAqIFNldCBjb3B54oCZcyBlbmNvZGluZywgY29udGVudCB0eXBlLCBVUkwsIG9yaWdpbiwgdHlwZSwgYW5kIG1vZGUsIHRvIHRob3NlXG4gICAgICAgICAqIG9mIG5vZGUuXG4gICAgICAgICAqIC0gRG9jdW1lbnRUeXBlXG4gICAgICAgICAqIFNldCBjb3B54oCZcyBuYW1lLCBwdWJsaWMgSUQsIGFuZCBzeXN0ZW0gSUQsIHRvIHRob3NlIG9mIG5vZGUuXG4gICAgICAgICAqIC0gQXR0clxuICAgICAgICAgKiBTZXQgY29weeKAmXMgbmFtZXNwYWNlLCBuYW1lc3BhY2UgcHJlZml4LCBsb2NhbCBuYW1lLCBhbmQgdmFsdWUsIHRvXG4gICAgICAgICAqIHRob3NlIG9mIG5vZGUuXG4gICAgICAgICAqIC0gVGV4dFxuICAgICAgICAgKiAtIENvbW1lbnRcbiAgICAgICAgICogU2V0IGNvcHnigJlzIGRhdGEsIHRvIHRoYXQgb2Ygbm9kZS5cbiAgICAgICAgICogLSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25cbiAgICAgICAgICogU2V0IGNvcHnigJlzIHRhcmdldCBhbmQgZGF0YSB0byB0aG9zZSBvZiBub2RlLlxuICAgICAgICAgKiAtIEFueSBvdGhlciBub2RlXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfZG9jdW1lbnQoKTtcbiAgICAgICAgICAgIGRvYy5fZW5jb2RpbmcgPSBub2RlLl9lbmNvZGluZztcbiAgICAgICAgICAgIGRvYy5fY29udGVudFR5cGUgPSBub2RlLl9jb250ZW50VHlwZTtcbiAgICAgICAgICAgIGRvYy5fVVJMID0gbm9kZS5fVVJMO1xuICAgICAgICAgICAgZG9jLl9vcmlnaW4gPSBub2RlLl9vcmlnaW47XG4gICAgICAgICAgICBkb2MuX3R5cGUgPSBub2RlLl90eXBlO1xuICAgICAgICAgICAgZG9jLl9tb2RlID0gbm9kZS5fbW9kZTtcbiAgICAgICAgICAgIGNvcHkgPSBkb2M7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZG9jdHlwZSA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9kb2N1bWVudFR5cGUoZG9jdW1lbnQsIG5vZGUuX25hbWUsIG5vZGUuX3B1YmxpY0lkLCBub2RlLl9zeXN0ZW1JZCk7XG4gICAgICAgICAgICBjb3B5ID0gZG9jdHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNBdHRyTm9kZShub2RlKSkge1xuICAgICAgICAgICAgY29uc3QgYXR0ciA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9hdHRyKGRvY3VtZW50LCBub2RlLmxvY2FsTmFtZSk7XG4gICAgICAgICAgICBhdHRyLl9uYW1lc3BhY2UgPSBub2RlLl9uYW1lc3BhY2U7XG4gICAgICAgICAgICBhdHRyLl9uYW1lc3BhY2VQcmVmaXggPSBub2RlLl9uYW1lc3BhY2VQcmVmaXg7XG4gICAgICAgICAgICBhdHRyLl92YWx1ZSA9IG5vZGUuX3ZhbHVlO1xuICAgICAgICAgICAgY29weSA9IGF0dHI7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzRXhjbHVzaXZlVGV4dE5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIGNvcHkgPSBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfdGV4dChkb2N1bWVudCwgbm9kZS5fZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodXRpbF8xLkd1YXJkLmlzQ0RBVEFTZWN0aW9uTm9kZShub2RlKSkge1xuICAgICAgICAgICAgY29weSA9IENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9jZGF0YVNlY3Rpb24oZG9jdW1lbnQsIG5vZGUuX2RhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0NvbW1lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBjb3B5ID0gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2NvbW1lbnQoZG9jdW1lbnQsIG5vZGUuX2RhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc1Byb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgIGNvcHkgPSBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfcHJvY2Vzc2luZ0luc3RydWN0aW9uKGRvY3VtZW50LCBub2RlLl90YXJnZXQsIG5vZGUuX2RhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50RnJhZ21lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICBjb3B5ID0gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2RvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29weSA9IE9iamVjdC5jcmVhdGUobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gU2V0IGNvcHnigJlzIG5vZGUgZG9jdW1lbnQgYW5kIGRvY3VtZW50IHRvIGNvcHksIGlmIGNvcHkgaXMgYSBkb2N1bWVudCxcbiAgICAgKiBhbmQgc2V0IGNvcHnigJlzIG5vZGUgZG9jdW1lbnQgdG8gZG9jdW1lbnQgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudE5vZGUoY29weSkpIHtcbiAgICAgICAgY29weS5fbm9kZURvY3VtZW50ID0gY29weTtcbiAgICAgICAgZG9jdW1lbnQgPSBjb3B5O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29weS5fbm9kZURvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDUuIFJ1biBhbnkgY2xvbmluZyBzdGVwcyBkZWZpbmVkIGZvciBub2RlIGluIG90aGVyIGFwcGxpY2FibGVcbiAgICAgKiBzcGVjaWZpY2F0aW9ucyBhbmQgcGFzcyBjb3B5LCBub2RlLCBkb2N1bWVudCBhbmQgdGhlIGNsb25lIGNoaWxkcmVuIGZsYWdcbiAgICAgKiBpZiBzZXQsIGFzIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgaWYgKGRvbV8xLmRvbS5mZWF0dXJlcy5zdGVwcykge1xuICAgICAgICBET01BbGdvcml0aG1fMS5kb21fcnVuQ2xvbmluZ1N0ZXBzKGNvcHksIG5vZGUsIGRvY3VtZW50LCBjbG9uZUNoaWxkcmVuRmxhZyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDYuIElmIHRoZSBjbG9uZSBjaGlsZHJlbiBmbGFnIGlzIHNldCwgY2xvbmUgYWxsIHRoZSBjaGlsZHJlbiBvZiBub2RlIGFuZFxuICAgICAqIGFwcGVuZCB0aGVtIHRvIGNvcHksIHdpdGggZG9jdW1lbnQgYXMgc3BlY2lmaWVkIGFuZCB0aGUgY2xvbmUgY2hpbGRyZW5cbiAgICAgKiBmbGFnIGJlaW5nIHNldC5cbiAgICAgKi9cbiAgICBpZiAoY2xvbmVDaGlsZHJlbkZsYWcpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRDb3B5ID0gbm9kZV9jbG9uZShjaGlsZCwgZG9jdW1lbnQsIHRydWUpO1xuICAgICAgICAgICAgTXV0YXRpb25BbGdvcml0aG1fMS5tdXRhdGlvbl9hcHBlbmQoY2hpbGRDb3B5LCBjb3B5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiA3LiBSZXR1cm4gY29weS5cbiAgICAgKi9cbiAgICByZXR1cm4gY29weTtcbn1cbmV4cG9ydHMubm9kZV9jbG9uZSA9IG5vZGVfY2xvbmU7XG4vKipcbiAqIERldGVybWluZXMgaWYgdHdvIG5vZGVzIGNhbiBiZSBjb25zaWRlcmVkIGVxdWFsLlxuICpcbiAqIEBwYXJhbSBhIC0gbm9kZSB0byBjb21wYXJlXG4gKiBAcGFyYW0gYiAtIG5vZGUgdG8gY29tcGFyZVxuICovXG5mdW5jdGlvbiBub2RlX2VxdWFscyhhLCBiKSB7XG4gICAgLyoqXG4gICAgICogMS4gQSBhbmQgQuKAmXMgbm9kZVR5cGUgYXR0cmlidXRlIHZhbHVlIGlzIGlkZW50aWNhbC5cbiAgICAgKi9cbiAgICBpZiAoYS5fbm9kZVR5cGUgIT09IGIuX25vZGVUeXBlKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLyoqXG4gICAgICogMi4gVGhlIGZvbGxvd2luZyBhcmUgYWxzbyBlcXVhbCwgZGVwZW5kaW5nIG9uIEE6XG4gICAgICogLSBEb2N1bWVudFR5cGVcbiAgICAgKiBJdHMgbmFtZSwgcHVibGljIElELCBhbmQgc3lzdGVtIElELlxuICAgICAqIC0gRWxlbWVudFxuICAgICAqIEl0cyBuYW1lc3BhY2UsIG5hbWVzcGFjZSBwcmVmaXgsIGxvY2FsIG5hbWUsIGFuZCBpdHMgYXR0cmlidXRlIGxpc3TigJlzIHNpemUuXG4gICAgICogLSBBdHRyXG4gICAgICogSXRzIG5hbWVzcGFjZSwgbG9jYWwgbmFtZSwgYW5kIHZhbHVlLlxuICAgICAqIC0gUHJvY2Vzc2luZ0luc3RydWN0aW9uXG4gICAgICogSXRzIHRhcmdldCBhbmQgZGF0YS5cbiAgICAgKiAtIFRleHRcbiAgICAgKiAtIENvbW1lbnRcbiAgICAgKiBJdHMgZGF0YS5cbiAgICAgKi9cbiAgICBpZiAodXRpbF8xLkd1YXJkLmlzRG9jdW1lbnRUeXBlTm9kZShhKSAmJiB1dGlsXzEuR3VhcmQuaXNEb2N1bWVudFR5cGVOb2RlKGIpKSB7XG4gICAgICAgIGlmIChhLl9uYW1lICE9PSBiLl9uYW1lIHx8IGEuX3B1YmxpY0lkICE9PSBiLl9wdWJsaWNJZCB8fFxuICAgICAgICAgICAgYS5fc3lzdGVtSWQgIT09IGIuX3N5c3RlbUlkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShhKSAmJiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShiKSkge1xuICAgICAgICBpZiAoYS5fbmFtZXNwYWNlICE9PSBiLl9uYW1lc3BhY2UgfHwgYS5fbmFtZXNwYWNlUHJlZml4ICE9PSBiLl9uYW1lc3BhY2VQcmVmaXggfHxcbiAgICAgICAgICAgIGEuX2xvY2FsTmFtZSAhPT0gYi5fbG9jYWxOYW1lIHx8XG4gICAgICAgICAgICBhLl9hdHRyaWJ1dGVMaXN0Lmxlbmd0aCAhPT0gYi5fYXR0cmlidXRlTGlzdC5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0F0dHJOb2RlKGEpICYmIHV0aWxfMS5HdWFyZC5pc0F0dHJOb2RlKGIpKSB7XG4gICAgICAgIGlmIChhLl9uYW1lc3BhY2UgIT09IGIuX25hbWVzcGFjZSB8fCBhLl9sb2NhbE5hbWUgIT09IGIuX2xvY2FsTmFtZSB8fFxuICAgICAgICAgICAgYS5fdmFsdWUgIT09IGIuX3ZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Ob2RlKGEpICYmIHV0aWxfMS5HdWFyZC5pc1Byb2Nlc3NpbmdJbnN0cnVjdGlvbk5vZGUoYikpIHtcbiAgICAgICAgaWYgKGEuX3RhcmdldCAhPT0gYi5fdGFyZ2V0IHx8IGEuX2RhdGEgIT09IGIuX2RhdGEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKHV0aWxfMS5HdWFyZC5pc0NoYXJhY3RlckRhdGFOb2RlKGEpICYmIHV0aWxfMS5HdWFyZC5pc0NoYXJhY3RlckRhdGFOb2RlKGIpKSB7XG4gICAgICAgIGlmIChhLl9kYXRhICE9PSBiLl9kYXRhKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBJZiBBIGlzIGFuIGVsZW1lbnQsIGVhY2ggYXR0cmlidXRlIGluIGl0cyBhdHRyaWJ1dGUgbGlzdCBoYXMgYW4gYXR0cmlidXRlXG4gICAgICogdGhhdCBlcXVhbHMgYW4gYXR0cmlidXRlIGluIELigJlzIGF0dHJpYnV0ZSBsaXN0LlxuICAgICAqL1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShhKSAmJiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShiKSkge1xuICAgICAgICBpZiAoYS5fYXR0cmlidXRlTGlzdC5sZW5ndGggIT09IGIuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBhdHRyTWFwID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHJBIG9mIGEuX2F0dHJpYnV0ZUxpc3QpIHtcbiAgICAgICAgICAgIGF0dHJNYXAuc2V0KChhdHRyQS5fbmFtZXNwYWNlIHx8ICcnKSArIGF0dHJBLl9sb2NhbE5hbWUgKyBhdHRyQS5fdmFsdWUsIGF0dHJBKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGIuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJCID0gYi5fYXR0cmlidXRlTGlzdFtpXTtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJBID0gYXR0ck1hcC5nZXQoKGF0dHJCLl9uYW1lc3BhY2UgfHwgJycpICsgYXR0ckIuX2xvY2FsTmFtZSArIGF0dHJCLl92YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWF0dHJBKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmICghbm9kZV9lcXVhbHMoYXR0ckEsIGF0dHJCKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogNC4gQSBhbmQgQiBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBjaGlsZHJlbi5cbiAgICAgKiA1LiBFYWNoIGNoaWxkIG9mIEEgZXF1YWxzIHRoZSBjaGlsZCBvZiBCIGF0IHRoZSBpZGVudGljYWwgaW5kZXguXG4gICAgICovXG4gICAgaWYgKGEuX2NoaWxkcmVuLnNpemUgIT09IGIuX2NoaWxkcmVuLnNpemUpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBpdEEgPSBhLl9jaGlsZHJlbltTeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgY29uc3QgaXRCID0gYi5fY2hpbGRyZW5bU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIGxldCByZXN1bHRBID0gaXRBLm5leHQoKTtcbiAgICBsZXQgcmVzdWx0QiA9IGl0Qi5uZXh0KCk7XG4gICAgd2hpbGUgKCFyZXN1bHRBLmRvbmUgJiYgIXJlc3VsdEIuZG9uZSkge1xuICAgICAgICBjb25zdCBjaGlsZDEgPSByZXN1bHRBLnZhbHVlO1xuICAgICAgICBjb25zdCBjaGlsZDIgPSByZXN1bHRCLnZhbHVlO1xuICAgICAgICBpZiAoIW5vZGVfZXF1YWxzKGNoaWxkMSwgY2hpbGQyKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmVzdWx0QSA9IGl0QS5uZXh0KCk7XG4gICAgICAgIHJlc3VsdEIgPSBpdEIubmV4dCgpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmV4cG9ydHMubm9kZV9lcXVhbHMgPSBub2RlX2VxdWFscztcbi8qKlxuICogUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgZWxlbWVudHMgd2l0aCB0aGUgZ2l2ZW4gcXVhbGlmaWVkIG5hbWUgd2hpY2ggYXJlXG4gKiBkZXNjZW5kYW50cyBvZiB0aGUgZ2l2ZW4gcm9vdCBub2RlLlxuICogU2VlOiBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWVcbiAqXG4gKiBAcGFyYW0gcXVhbGlmaWVkTmFtZSAtIHF1YWxpZmllZCBuYW1lXG4gKiBAcGFyYW0gcm9vdCAtIHJvb3Qgbm9kZVxuICovXG5mdW5jdGlvbiBub2RlX2xpc3RPZkVsZW1lbnRzV2l0aFF1YWxpZmllZE5hbWUocXVhbGlmaWVkTmFtZSwgcm9vdCkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIHF1YWxpZmllZE5hbWUgaXMgXCIqXCIgKFUrMDAyQSksIHJldHVybiBhIEhUTUxDb2xsZWN0aW9uIHJvb3RlZCBhdFxuICAgICAqIHJvb3QsIHdob3NlIGZpbHRlciBtYXRjaGVzIG9ubHkgZGVzY2VuZGFudCBlbGVtZW50cy5cbiAgICAgKiAyLiBPdGhlcndpc2UsIGlmIHJvb3TigJlzIG5vZGUgZG9jdW1lbnQgaXMgYW4gSFRNTCBkb2N1bWVudCwgcmV0dXJuIGFcbiAgICAgKiBIVE1MQ29sbGVjdGlvbiByb290ZWQgYXQgcm9vdCwgd2hvc2UgZmlsdGVyIG1hdGNoZXMgdGhlIGZvbGxvd2luZ1xuICAgICAqIGRlc2NlbmRhbnQgZWxlbWVudHM6XG4gICAgICogMi4xLiBXaG9zZSBuYW1lc3BhY2UgaXMgdGhlIEhUTUwgbmFtZXNwYWNlIGFuZCB3aG9zZSBxdWFsaWZpZWQgbmFtZSBpc1xuICAgICAqIHF1YWxpZmllZE5hbWUsIGluIEFTQ0lJIGxvd2VyY2FzZS5cbiAgICAgKiAyLjIuIFdob3NlIG5hbWVzcGFjZSBpcyBub3QgdGhlIEhUTUwgbmFtZXNwYWNlIGFuZCB3aG9zZSBxdWFsaWZpZWQgbmFtZVxuICAgICAqIGlzIHF1YWxpZmllZE5hbWUuXG4gICAgICogMy4gT3RoZXJ3aXNlLCByZXR1cm4gYSBIVE1MQ29sbGVjdGlvbiByb290ZWQgYXQgcm9vdCwgd2hvc2UgZmlsdGVyXG4gICAgICogbWF0Y2hlcyBkZXNjZW5kYW50IGVsZW1lbnRzIHdob3NlIHF1YWxpZmllZCBuYW1lIGlzIHF1YWxpZmllZE5hbWUuXG4gICAgICovXG4gICAgaWYgKHF1YWxpZmllZE5hbWUgPT09IFwiKlwiKSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfaHRtbENvbGxlY3Rpb24ocm9vdCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHJvb3QuX25vZGVEb2N1bWVudC5fdHlwZSA9PT0gXCJodG1sXCIpIHtcbiAgICAgICAgcmV0dXJuIENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9odG1sQ29sbGVjdGlvbihyb290LCBmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgICBpZiAoZWxlLl9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwgJiZcbiAgICAgICAgICAgICAgICBlbGUuX3F1YWxpZmllZE5hbWUgPT09IHF1YWxpZmllZE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZWxlLl9uYW1lc3BhY2UgIT09IGluZnJhXzEubmFtZXNwYWNlLkhUTUwgJiZcbiAgICAgICAgICAgICAgICBlbGUuX3F1YWxpZmllZE5hbWUgPT09IHF1YWxpZmllZE5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2h0bWxDb2xsZWN0aW9uKHJvb3QsIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgICAgIHJldHVybiAoZWxlLl9xdWFsaWZpZWROYW1lID09PSBxdWFsaWZpZWROYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuZXhwb3J0cy5ub2RlX2xpc3RPZkVsZW1lbnRzV2l0aFF1YWxpZmllZE5hbWUgPSBub2RlX2xpc3RPZkVsZW1lbnRzV2l0aFF1YWxpZmllZE5hbWU7XG4vKipcbiAqIFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGVsZW1lbnRzIHdpdGggdGhlIGdpdmVuIG5hbWVzcGFjZSB3aGljaCBhcmVcbiAqIGRlc2NlbmRhbnRzIG9mIHRoZSBnaXZlbiByb290IG5vZGUuXG4gKiBTZWU6IGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1nZXRlbGVtZW50c2J5dGFnbmFtZW5zXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIGVsZW1lbnQgbmFtZXNwYWNlXG4gKiBAcGFyYW0gbG9jYWxOYW1lIC0gbG9jYWwgbmFtZVxuICogQHBhcmFtIHJvb3QgLSByb290IG5vZGVcbiAqL1xuZnVuY3Rpb24gbm9kZV9saXN0T2ZFbGVtZW50c1dpdGhOYW1lc3BhY2UobmFtZXNwYWNlLCBsb2NhbE5hbWUsIHJvb3QpIHtcbiAgICAvKipcbiAgICAgKiAxLiBJZiBuYW1lc3BhY2UgaXMgdGhlIGVtcHR5IHN0cmluZywgc2V0IGl0IHRvIG51bGwuXG4gICAgICogMi4gSWYgYm90aCBuYW1lc3BhY2UgYW5kIGxvY2FsTmFtZSBhcmUgXCIqXCIgKFUrMDAyQSksIHJldHVybiBhXG4gICAgICogSFRNTENvbGxlY3Rpb24gcm9vdGVkIGF0IHJvb3QsIHdob3NlIGZpbHRlciBtYXRjaGVzIGRlc2NlbmRhbnQgZWxlbWVudHMuXG4gICAgICogMy4gT3RoZXJ3aXNlLCBpZiBuYW1lc3BhY2UgaXMgXCIqXCIgKFUrMDAyQSksIHJldHVybiBhIEhUTUxDb2xsZWN0aW9uXG4gICAgICogcm9vdGVkIGF0IHJvb3QsIHdob3NlIGZpbHRlciBtYXRjaGVzIGRlc2NlbmRhbnQgZWxlbWVudHMgd2hvc2UgbG9jYWxcbiAgICAgKiBuYW1lIGlzIGxvY2FsTmFtZS5cbiAgICAgKiA0LiBPdGhlcndpc2UsIGlmIGxvY2FsTmFtZSBpcyBcIipcIiAoVSswMDJBKSwgcmV0dXJuIGEgSFRNTENvbGxlY3Rpb25cbiAgICAgKiByb290ZWQgYXQgcm9vdCwgd2hvc2UgZmlsdGVyIG1hdGNoZXMgZGVzY2VuZGFudCBlbGVtZW50cyB3aG9zZVxuICAgICAqIG5hbWVzcGFjZSBpcyBuYW1lc3BhY2UuXG4gICAgICogNS4gT3RoZXJ3aXNlLCByZXR1cm4gYSBIVE1MQ29sbGVjdGlvbiByb290ZWQgYXQgcm9vdCwgd2hvc2UgZmlsdGVyXG4gICAgICogbWF0Y2hlcyBkZXNjZW5kYW50IGVsZW1lbnRzIHdob3NlIG5hbWVzcGFjZSBpcyBuYW1lc3BhY2UgYW5kIGxvY2FsXG4gICAgICogbmFtZSBpcyBsb2NhbE5hbWUuXG4gICAgICovXG4gICAgaWYgKG5hbWVzcGFjZSA9PT0gJycpXG4gICAgICAgIG5hbWVzcGFjZSA9IG51bGw7XG4gICAgaWYgKG5hbWVzcGFjZSA9PT0gXCIqXCIgJiYgbG9jYWxOYW1lID09PSBcIipcIikge1xuICAgICAgICByZXR1cm4gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2h0bWxDb2xsZWN0aW9uKHJvb3QpO1xuICAgIH1cbiAgICBlbHNlIGlmIChuYW1lc3BhY2UgPT09IFwiKlwiKSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfaHRtbENvbGxlY3Rpb24ocm9vdCwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIChlbGUuX2xvY2FsTmFtZSA9PT0gbG9jYWxOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGxvY2FsTmFtZSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmV0dXJuIENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9odG1sQ29sbGVjdGlvbihyb290LCBmdW5jdGlvbiAoZWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gKGVsZS5fbmFtZXNwYWNlID09PSBuYW1lc3BhY2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBDcmVhdGVBbGdvcml0aG1fMS5jcmVhdGVfaHRtbENvbGxlY3Rpb24ocm9vdCwgZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIChlbGUuX2xvY2FsTmFtZSA9PT0gbG9jYWxOYW1lICYmIGVsZS5fbmFtZXNwYWNlID09PSBuYW1lc3BhY2UpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5leHBvcnRzLm5vZGVfbGlzdE9mRWxlbWVudHNXaXRoTmFtZXNwYWNlID0gbm9kZV9saXN0T2ZFbGVtZW50c1dpdGhOYW1lc3BhY2U7XG4vKipcbiAqIFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGVsZW1lbnRzIHdpdGggdGhlIGdpdmVuIGNsYXNzIG5hbWVzIHdoaWNoIGFyZVxuICogZGVzY2VuZGFudHMgb2YgdGhlIGdpdmVuIHJvb3Qgbm9kZS5cbiAqIFNlZTogaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LWdldGVsZW1lbnRzYnljbGFzc25hbWVcbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gZWxlbWVudCBuYW1lc3BhY2VcbiAqIEBwYXJhbSBsb2NhbE5hbWUgLSBsb2NhbCBuYW1lXG4gKiBAcGFyYW0gcm9vdCAtIHJvb3Qgbm9kZVxuICovXG5mdW5jdGlvbiBub2RlX2xpc3RPZkVsZW1lbnRzV2l0aENsYXNzTmFtZXMoY2xhc3NOYW1lcywgcm9vdCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBjbGFzc2VzIGJlIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgb3JkZXJlZCBzZXQgcGFyc2VyXG4gICAgICogb24gY2xhc3NOYW1lcy5cbiAgICAgKiAyLiBJZiBjbGFzc2VzIGlzIHRoZSBlbXB0eSBzZXQsIHJldHVybiBhbiBlbXB0eSBIVE1MQ29sbGVjdGlvbi5cbiAgICAgKiAzLiBSZXR1cm4gYSBIVE1MQ29sbGVjdGlvbiByb290ZWQgYXQgcm9vdCwgd2hvc2UgZmlsdGVyIG1hdGNoZXNcbiAgICAgKiBkZXNjZW5kYW50IGVsZW1lbnRzIHRoYXQgaGF2ZSBhbGwgdGhlaXIgY2xhc3NlcyBpbiBjbGFzc2VzLlxuICAgICAqIFRoZSBjb21wYXJpc29ucyBmb3IgdGhlIGNsYXNzZXMgbXVzdCBiZSBkb25lIGluIGFuIEFTQ0lJIGNhc2UtaW5zZW5zaXRpdmVcbiAgICAgKiBtYW5uZXIgaWYgcm9vdOKAmXMgbm9kZSBkb2N1bWVudOKAmXMgbW9kZSBpcyBcInF1aXJrc1wiLCBhbmQgaW4gYVxuICAgICAqIGNhc2Utc2Vuc2l0aXZlIG1hbm5lciBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3QgY2xhc3NlcyA9IE9yZGVyZWRTZXRBbGdvcml0aG1fMS5vcmRlcmVkU2V0X3BhcnNlKGNsYXNzTmFtZXMpO1xuICAgIGlmIChjbGFzc2VzLnNpemUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIENyZWF0ZUFsZ29yaXRobV8xLmNyZWF0ZV9odG1sQ29sbGVjdGlvbihyb290LCAoKSA9PiBmYWxzZSk7XG4gICAgfVxuICAgIGNvbnN0IGNhc2VTZW5zaXRpdmUgPSAocm9vdC5fbm9kZURvY3VtZW50Ll9tb2RlICE9PSBcInF1aXJrc1wiKTtcbiAgICByZXR1cm4gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX2h0bWxDb2xsZWN0aW9uKHJvb3QsIGZ1bmN0aW9uIChlbGUpIHtcbiAgICAgICAgY29uc3QgZWxlQ2xhc3NlcyA9IGVsZS5jbGFzc0xpc3Q7XG4gICAgICAgIHJldHVybiBPcmRlcmVkU2V0QWxnb3JpdGhtXzEub3JkZXJlZFNldF9jb250YWlucyhlbGVDbGFzc2VzLl90b2tlblNldCwgY2xhc3NlcywgY2FzZVNlbnNpdGl2ZSk7XG4gICAgfSk7XG59XG5leHBvcnRzLm5vZGVfbGlzdE9mRWxlbWVudHNXaXRoQ2xhc3NOYW1lcyA9IG5vZGVfbGlzdE9mRWxlbWVudHNXaXRoQ2xhc3NOYW1lcztcbi8qKlxuICogU2VhcmNoZXMgZm9yIGEgbmFtZXNwYWNlIHByZWZpeCBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG5hbWVzcGFjZVxuICogc3RhcnRpbmcgZnJvbSB0aGUgZ2l2ZW4gZWxlbWVudCB0aHJvdWdoIGl0cyBhbmNlc3RvcnMuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBhbiBlbGVtZW50IG5vZGUgdG8gc3RhcnQgc2VhcmNoaW5nIGF0XG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gbmFtZXNwYWNlIHRvIHNlYXJjaCBmb3JcbiAqL1xuZnVuY3Rpb24gbm9kZV9sb2NhdGVBTmFtZXNwYWNlUHJlZml4KGVsZW1lbnQsIG5hbWVzcGFjZSkge1xuICAgIC8qKlxuICAgICAqIDEuIElmIGVsZW1lbnTigJlzIG5hbWVzcGFjZSBpcyBuYW1lc3BhY2UgYW5kIGl0cyBuYW1lc3BhY2UgcHJlZml4IGlzIG5vdFxuICAgICAqIG51bGwsIHRoZW4gcmV0dXJuIGl0cyBuYW1lc3BhY2UgcHJlZml4LlxuICAgICAqL1xuICAgIGlmIChlbGVtZW50Ll9uYW1lc3BhY2UgPT09IG5hbWVzcGFjZSAmJiBlbGVtZW50Ll9uYW1lc3BhY2VQcmVmaXggIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuX25hbWVzcGFjZVByZWZpeDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogMi4gSWYgZWxlbWVudCBoYXMgYW4gYXR0cmlidXRlIHdob3NlIG5hbWVzcGFjZSBwcmVmaXggaXMgXCJ4bWxuc1wiIGFuZFxuICAgICAqIHZhbHVlIGlzIG5hbWVzcGFjZSwgdGhlbiByZXR1cm4gZWxlbWVudOKAmXMgZmlyc3Qgc3VjaCBhdHRyaWJ1dGXigJlzXG4gICAgICogbG9jYWwgbmFtZS5cbiAgICAgKi9cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnQuX2F0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYXR0ciA9IGVsZW1lbnQuX2F0dHJpYnV0ZUxpc3RbaV07XG4gICAgICAgIGlmIChhdHRyLl9uYW1lc3BhY2VQcmVmaXggPT09IFwieG1sbnNcIiAmJiBhdHRyLl92YWx1ZSA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXR0ci5fbG9jYWxOYW1lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDMuIElmIGVsZW1lbnTigJlzIHBhcmVudCBlbGVtZW50IGlzIG5vdCBudWxsLCB0aGVuIHJldHVybiB0aGUgcmVzdWx0IG9mXG4gICAgICogcnVubmluZyBsb2NhdGUgYSBuYW1lc3BhY2UgcHJlZml4IG9uIHRoYXQgZWxlbWVudCB1c2luZyBuYW1lc3BhY2UuXG4gICAgICovXG4gICAgaWYgKGVsZW1lbnQuX3BhcmVudCAmJiB1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShlbGVtZW50Ll9wYXJlbnQpKSB7XG4gICAgICAgIHJldHVybiBub2RlX2xvY2F0ZUFOYW1lc3BhY2VQcmVmaXgoZWxlbWVudC5fcGFyZW50LCBuYW1lc3BhY2UpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiA0LiBSZXR1cm4gbnVsbC5cbiAgICAgKi9cbiAgICByZXR1cm4gbnVsbDtcbn1cbmV4cG9ydHMubm9kZV9sb2NhdGVBTmFtZXNwYWNlUHJlZml4ID0gbm9kZV9sb2NhdGVBTmFtZXNwYWNlUHJlZml4O1xuLyoqXG4gKiBTZWFyY2hlcyBmb3IgYSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBuYW1lc3BhY2UgcHJlZml4XG4gKiBzdGFydGluZyBmcm9tIHRoZSBnaXZlbiBub2RlIHRocm91Z2ggaXRzIGFuY2VzdG9ycy5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZSB0byBzdGFydCBzZWFyY2hpbmcgYXRcbiAqIEBwYXJhbSBwcmVmaXggLSBuYW1lc3BhY2UgcHJlZml4IHRvIHNlYXJjaCBmb3JcbiAqL1xuZnVuY3Rpb24gbm9kZV9sb2NhdGVBTmFtZXNwYWNlKG5vZGUsIHByZWZpeCkge1xuICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFbGVtZW50Tm9kZShub2RlKSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgaXRzIG5hbWVzcGFjZSBpcyBub3QgbnVsbCBhbmQgaXRzIG5hbWVzcGFjZSBwcmVmaXggaXMgcHJlZml4LFxuICAgICAgICAgKiB0aGVuIHJldHVybiBuYW1lc3BhY2UuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAobm9kZS5fbmFtZXNwYWNlICE9PSBudWxsICYmIG5vZGUuX25hbWVzcGFjZVByZWZpeCA9PT0gcHJlZml4KSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5fbmFtZXNwYWNlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiAyLiBJZiBpdCBoYXMgYW4gYXR0cmlidXRlIHdob3NlIG5hbWVzcGFjZSBpcyB0aGUgWE1MTlMgbmFtZXNwYWNlLFxuICAgICAgICAgKiBuYW1lc3BhY2UgcHJlZml4IGlzIFwieG1sbnNcIiwgYW5kIGxvY2FsIG5hbWUgaXMgcHJlZml4LCBvciBpZiBwcmVmaXhcbiAgICAgICAgICogaXMgbnVsbCBhbmQgaXQgaGFzIGFuIGF0dHJpYnV0ZSB3aG9zZSBuYW1lc3BhY2UgaXMgdGhlIFhNTE5TIG5hbWVzcGFjZSxcbiAgICAgICAgICogbmFtZXNwYWNlIHByZWZpeCBpcyBudWxsLCBhbmQgbG9jYWwgbmFtZSBpcyBcInhtbG5zXCIsIHRoZW4gcmV0dXJuIGl0c1xuICAgICAgICAgKiB2YWx1ZSBpZiBpdCBpcyBub3QgdGhlIGVtcHR5IHN0cmluZywgYW5kIG51bGwgb3RoZXJ3aXNlLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub2RlLl9hdHRyaWJ1dGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyID0gbm9kZS5fYXR0cmlidXRlTGlzdFtpXTtcbiAgICAgICAgICAgIGlmIChhdHRyLl9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLlhNTE5TICYmXG4gICAgICAgICAgICAgICAgYXR0ci5fbmFtZXNwYWNlUHJlZml4ID09PSBcInhtbG5zXCIgJiZcbiAgICAgICAgICAgICAgICBhdHRyLl9sb2NhbE5hbWUgPT09IHByZWZpeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhdHRyLl92YWx1ZSB8fCBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByZWZpeCA9PT0gbnVsbCAmJiBhdHRyLl9uYW1lc3BhY2UgPT09IGluZnJhXzEubmFtZXNwYWNlLlhNTE5TICYmXG4gICAgICAgICAgICAgICAgYXR0ci5fbmFtZXNwYWNlUHJlZml4ID09PSBudWxsICYmIGF0dHIuX2xvY2FsTmFtZSA9PT0gXCJ4bWxuc1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF0dHIuX3ZhbHVlIHx8IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIElmIGl0cyBwYXJlbnQgZWxlbWVudCBpcyBudWxsLCB0aGVuIHJldHVybiBudWxsLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG5vZGUucGFyZW50RWxlbWVudCA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogNC4gUmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZyBsb2NhdGUgYSBuYW1lc3BhY2Ugb24gaXRzIHBhcmVudFxuICAgICAgICAgKiBlbGVtZW50IHVzaW5nIHByZWZpeC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBub2RlX2xvY2F0ZUFOYW1lc3BhY2Uobm9kZS5wYXJlbnRFbGVtZW50LCBwcmVmaXgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudE5vZGUobm9kZSkpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGl0cyBkb2N1bWVudCBlbGVtZW50IGlzIG51bGwsIHRoZW4gcmV0dXJuIG51bGwuXG4gICAgICAgICAqIDIuIFJldHVybiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgbG9jYXRlIGEgbmFtZXNwYWNlIG9uIGl0cyBkb2N1bWVudFxuICAgICAgICAgKiBlbGVtZW50IHVzaW5nIHByZWZpeC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChub2RlLmRvY3VtZW50RWxlbWVudCA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gbm9kZV9sb2NhdGVBTmFtZXNwYWNlKG5vZGUuZG9jdW1lbnRFbGVtZW50LCBwcmVmaXgpO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNEb2N1bWVudFR5cGVOb2RlKG5vZGUpIHx8IHV0aWxfMS5HdWFyZC5pc0RvY3VtZW50RnJhZ21lbnROb2RlKG5vZGUpKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbHNlIGlmICh1dGlsXzEuR3VhcmQuaXNBdHRyTm9kZShub2RlKSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogMS4gSWYgaXRzIGVsZW1lbnQgaXMgbnVsbCwgdGhlbiByZXR1cm4gbnVsbC5cbiAgICAgICAgICogMi4gUmV0dXJuIHRoZSByZXN1bHQgb2YgcnVubmluZyBsb2NhdGUgYSBuYW1lc3BhY2Ugb24gaXRzIGVsZW1lbnRcbiAgICAgICAgICogdXNpbmcgcHJlZml4LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG5vZGUuX2VsZW1lbnQgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIG5vZGVfbG9jYXRlQU5hbWVzcGFjZShub2RlLl9lbGVtZW50LCBwcmVmaXgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIElmIGl0cyBwYXJlbnQgZWxlbWVudCBpcyBudWxsLCB0aGVuIHJldHVybiBudWxsLlxuICAgICAgICAgKiAyLiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBydW5uaW5nIGxvY2F0ZSBhIG5hbWVzcGFjZSBvbiBpdHMgcGFyZW50XG4gICAgICAgICAqIGVsZW1lbnQgdXNpbmcgcHJlZml4LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFub2RlLl9wYXJlbnQgfHwgIXV0aWxfMS5HdWFyZC5pc0VsZW1lbnROb2RlKG5vZGUuX3BhcmVudCkpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIG5vZGVfbG9jYXRlQU5hbWVzcGFjZShub2RlLl9wYXJlbnQsIHByZWZpeCk7XG4gICAgfVxufVxuZXhwb3J0cy5ub2RlX2xvY2F0ZUFOYW1lc3BhY2UgPSBub2RlX2xvY2F0ZUFOYW1lc3BhY2U7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Ob2RlQWxnb3JpdGhtLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuY29uc3QgZG9tXzEgPSByZXF1aXJlKFwiLi4vZG9tXCIpO1xuY29uc3QgdXRpbF8xID0gcmVxdWlyZShcIi4uL3V0aWxcIik7XG5jb25zdCBET01FeGNlcHRpb25fMSA9IHJlcXVpcmUoXCIuLi9kb20vRE9NRXhjZXB0aW9uXCIpO1xuY29uc3QgQ3JlYXRlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9DcmVhdGVBbGdvcml0aG1cIik7XG5jb25zdCBUcmVlQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9UcmVlQWxnb3JpdGhtXCIpO1xuY29uc3QgQ2hhcmFjdGVyRGF0YUFsZ29yaXRobV8xID0gcmVxdWlyZShcIi4vQ2hhcmFjdGVyRGF0YUFsZ29yaXRobVwiKTtcbmNvbnN0IE11dGF0aW9uQWxnb3JpdGhtXzEgPSByZXF1aXJlKFwiLi9NdXRhdGlvbkFsZ29yaXRobVwiKTtcbi8qKlxuICogUmV0dXJucyBub2RlIHdpdGggaXRzIGFkamFjZW50IHRleHQgYW5kIGNkYXRhIG5vZGUgc2libGluZ3MuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGVcbiAqIEBwYXJhbSBzZWxmIC0gd2hldGhlciB0byBpbmNsdWRlIG5vZGUgaXRzZWxmXG4gKi9cbmZ1bmN0aW9uIHRleHRfY29udGlndW91c1RleHROb2Rlcyhub2RlLCBzZWxmID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGlndW91cyBUZXh0IG5vZGVzIG9mIGEgbm9kZSBub2RlIGFyZSBub2RlLCBub2Rl4oCZcyBwcmV2aW91c1xuICAgICAqIHNpYmxpbmcgVGV4dCBub2RlLCBpZiBhbnksIGFuZCBpdHMgY29udGlndW91cyBUZXh0IG5vZGVzLCBhbmQgbm9kZeKAmXMgbmV4dFxuICAgICAqIHNpYmxpbmcgVGV4dCBub2RlLCBpZiBhbnksIGFuZCBpdHMgY29udGlndW91cyBUZXh0IG5vZGVzLCBhdm9pZGluZyBhbnlcbiAgICAgKiBkdXBsaWNhdGVzLlxuICAgICAqL1xuICAgIHJldHVybiB7XG4gICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnROb2RlID0gbm9kZTtcbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Tm9kZSAmJiB1dGlsXzEuR3VhcmQuaXNUZXh0Tm9kZShjdXJyZW50Tm9kZS5fcHJldmlvdXNTaWJsaW5nKSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUuX3ByZXZpb3VzU2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmV4dCgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlICYmICghc2VsZiAmJiBjdXJyZW50Tm9kZSA9PT0gbm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNUZXh0Tm9kZShjdXJyZW50Tm9kZS5fbmV4dFNpYmxpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnROb2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbnVsbCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBkb25lOiBmYWxzZSwgdmFsdWU6IGN1cnJlbnROb2RlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUoY3VycmVudE5vZGUuX25leHRTaWJsaW5nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUuX25leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuZXhwb3J0cy50ZXh0X2NvbnRpZ3VvdXNUZXh0Tm9kZXMgPSB0ZXh0X2NvbnRpZ3VvdXNUZXh0Tm9kZXM7XG4vKipcbiAqIFJldHVybnMgbm9kZSB3aXRoIGl0cyBhZGphY2VudCB0ZXh0IG5vZGUgc2libGluZ3MuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIG5vZGVcbiAqIEBwYXJhbSBzZWxmIC0gd2hldGhlciB0byBpbmNsdWRlIG5vZGUgaXRzZWxmXG4gKi9cbmZ1bmN0aW9uIHRleHRfY29udGlndW91c0V4Y2x1c2l2ZVRleHROb2Rlcyhub2RlLCBzZWxmID0gZmFsc2UpIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29udGlndW91cyBleGNsdXNpdmUgVGV4dCBub2RlcyBvZiBhIG5vZGUgbm9kZSBhcmUgbm9kZSwgbm9kZeKAmXNcbiAgICAgKiBwcmV2aW91cyBzaWJsaW5nIGV4Y2x1c2l2ZSBUZXh0IG5vZGUsIGlmIGFueSwgYW5kIGl0cyBjb250aWd1b3VzXG4gICAgICogZXhjbHVzaXZlIFRleHQgbm9kZXMsIGFuZCBub2Rl4oCZcyBuZXh0IHNpYmxpbmcgZXhjbHVzaXZlIFRleHQgbm9kZSxcbiAgICAgKiBpZiBhbnksIGFuZCBpdHMgY29udGlndW91cyBleGNsdXNpdmUgVGV4dCBub2RlcywgYXZvaWRpbmcgYW55IGR1cGxpY2F0ZXMuXG4gICAgICovXG4gICAgcmV0dXJuIHtcbiAgICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudE5vZGUgPSBub2RlO1xuICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnROb2RlICYmIHV0aWxfMS5HdWFyZC5pc0V4Y2x1c2l2ZVRleHROb2RlKGN1cnJlbnROb2RlLl9wcmV2aW91c1NpYmxpbmcpKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5fcHJldmlvdXNTaWJsaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuZXh0KCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudE5vZGUgJiYgKCFzZWxmICYmIGN1cnJlbnROb2RlID09PSBub2RlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHV0aWxfMS5HdWFyZC5pc0V4Y2x1c2l2ZVRleHROb2RlKGN1cnJlbnROb2RlLl9uZXh0U2libGluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLl9uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBudWxsIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogY3VycmVudE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1dGlsXzEuR3VhcmQuaXNFeGNsdXNpdmVUZXh0Tm9kZShjdXJyZW50Tm9kZS5fbmV4dFNpYmxpbmcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5fbmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG59XG5leHBvcnRzLnRleHRfY29udGlndW91c0V4Y2x1c2l2ZVRleHROb2RlcyA9IHRleHRfY29udGlndW91c0V4Y2x1c2l2ZVRleHROb2Rlcztcbi8qKlxuICogUmV0dXJucyB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgZGF0YSBvZiBhbGwgdGhlIFRleHQgbm9kZSBkZXNjZW5kYW50cyBvZlxuICogbm9kZSwgaW4gdHJlZSBvcmRlci5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIGEgbm9kZVxuICovXG5mdW5jdGlvbiB0ZXh0X2Rlc2NlbmRhbnRUZXh0Q29udGVudChub2RlKSB7XG4gICAgLyoqXG4gICAgICogVGhlIGRlc2NlbmRhbnQgdGV4dCBjb250ZW50IG9mIGEgbm9kZSBub2RlIGlzIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZVxuICAgICAqIGRhdGEgb2YgYWxsIHRoZSBUZXh0IG5vZGUgZGVzY2VuZGFudHMgb2Ygbm9kZSwgaW4gdHJlZSBvcmRlci5cbiAgICAgKi9cbiAgICBsZXQgY29udGVudHMgPSAnJztcbiAgICBsZXQgdGV4dCA9IFRyZWVBbGdvcml0aG1fMS50cmVlX2dldEZpcnN0RGVzY2VuZGFudE5vZGUobm9kZSwgZmFsc2UsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUoZSkpO1xuICAgIHdoaWxlICh0ZXh0ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnRlbnRzICs9IHRleHQuX2RhdGE7XG4gICAgICAgIHRleHQgPSBUcmVlQWxnb3JpdGhtXzEudHJlZV9nZXROZXh0RGVzY2VuZGFudE5vZGUobm9kZSwgdGV4dCwgZmFsc2UsIGZhbHNlLCAoZSkgPT4gdXRpbF8xLkd1YXJkLmlzVGV4dE5vZGUoZSkpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudHM7XG59XG5leHBvcnRzLnRleHRfZGVzY2VuZGFudFRleHRDb250ZW50ID0gdGV4dF9kZXNjZW5kYW50VGV4dENvbnRlbnQ7XG4vKipcbiAqIFNwbGl0cyBkYXRhIGF0IHRoZSBnaXZlbiBvZmZzZXQgYW5kIHJldHVybnMgdGhlIHJlbWFpbmRlciBhcyBhIHRleHRcbiAqIG5vZGUuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBhIHRleHQgbm9kZVxuICogQHBhcmFtIG9mZnNldCAtIHRoZSBvZmZzZXQgYXQgd2hpY2ggdG8gc3BsaXQgdGhlIG5vZGVzLlxuICovXG5mdW5jdGlvbiB0ZXh0X3NwbGl0KG5vZGUsIG9mZnNldCkge1xuICAgIC8qKlxuICAgICAqIDEuIExldCBsZW5ndGggYmUgbm9kZeKAmXMgbGVuZ3RoLlxuICAgICAqIDIuIElmIG9mZnNldCBpcyBncmVhdGVyIHRoYW4gbGVuZ3RoLCB0aGVuIHRocm93IGFuIFwiSW5kZXhTaXplRXJyb3JcIlxuICAgICAqIERPTUV4Y2VwdGlvbi5cbiAgICAgKi9cbiAgICBjb25zdCBsZW5ndGggPSBub2RlLl9kYXRhLmxlbmd0aDtcbiAgICBpZiAob2Zmc2V0ID4gbGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBET01FeGNlcHRpb25fMS5JbmRleFNpemVFcnJvcigpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAzLiBMZXQgY291bnQgYmUgbGVuZ3RoIG1pbnVzIG9mZnNldC5cbiAgICAgKiA0LiBMZXQgbmV3IGRhdGEgYmUgdGhlIHJlc3VsdCBvZiBzdWJzdHJpbmdpbmcgZGF0YSB3aXRoIG5vZGUgbm9kZSxcbiAgICAgKiBvZmZzZXQgb2Zmc2V0LCBhbmQgY291bnQgY291bnQuXG4gICAgICogNS4gTGV0IG5ldyBub2RlIGJlIGEgbmV3IFRleHQgbm9kZSwgd2l0aCB0aGUgc2FtZSBub2RlIGRvY3VtZW50IGFzIG5vZGUuXG4gICAgICogU2V0IG5ldyBub2Rl4oCZcyBkYXRhIHRvIG5ldyBkYXRhLlxuICAgICAqIDYuIExldCBwYXJlbnQgYmUgbm9kZeKAmXMgcGFyZW50LlxuICAgICAqIDcuIElmIHBhcmVudCBpcyBub3QgbnVsbCwgdGhlbjpcbiAgICAgKi9cbiAgICBjb25zdCBjb3VudCA9IGxlbmd0aCAtIG9mZnNldDtcbiAgICBjb25zdCBuZXdEYXRhID0gQ2hhcmFjdGVyRGF0YUFsZ29yaXRobV8xLmNoYXJhY3RlckRhdGFfc3Vic3RyaW5nRGF0YShub2RlLCBvZmZzZXQsIGNvdW50KTtcbiAgICBjb25zdCBuZXdOb2RlID0gQ3JlYXRlQWxnb3JpdGhtXzEuY3JlYXRlX3RleHQobm9kZS5fbm9kZURvY3VtZW50LCBuZXdEYXRhKTtcbiAgICBjb25zdCBwYXJlbnQgPSBub2RlLl9wYXJlbnQ7XG4gICAgaWYgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogNy4xLiBJbnNlcnQgbmV3IG5vZGUgaW50byBwYXJlbnQgYmVmb3JlIG5vZGXigJlzIG5leHQgc2libGluZy5cbiAgICAgICAgICovXG4gICAgICAgIE11dGF0aW9uQWxnb3JpdGhtXzEubXV0YXRpb25faW5zZXJ0KG5ld05vZGUsIHBhcmVudCwgbm9kZS5fbmV4dFNpYmxpbmcpO1xuICAgICAgICAvKipcbiAgICAgICAgICogNy4yLiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIHN0YXJ0IG5vZGUgaXMgbm9kZSBhbmQgc3RhcnQgb2Zmc2V0IGlzXG4gICAgICAgICAqIGdyZWF0ZXIgdGhhbiBvZmZzZXQsIHNldCBpdHMgc3RhcnQgbm9kZSB0byBuZXcgbm9kZSBhbmQgZGVjcmVhc2UgaXRzXG4gICAgICAgICAqIHN0YXJ0IG9mZnNldCBieSBvZmZzZXQuXG4gICAgICAgICAqIDcuMy4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBlbmQgbm9kZSBpcyBub2RlIGFuZCBlbmQgb2Zmc2V0IGlzIGdyZWF0ZXJcbiAgICAgICAgICogdGhhbiBvZmZzZXQsIHNldCBpdHMgZW5kIG5vZGUgdG8gbmV3IG5vZGUgYW5kIGRlY3JlYXNlIGl0cyBlbmQgb2Zmc2V0XG4gICAgICAgICAqIGJ5IG9mZnNldC5cbiAgICAgICAgICogNy40LiBGb3IgZWFjaCBsaXZlIHJhbmdlIHdob3NlIHN0YXJ0IG5vZGUgaXMgcGFyZW50IGFuZCBzdGFydCBvZmZzZXQgaXNcbiAgICAgICAgICogZXF1YWwgdG8gdGhlIGluZGV4IG9mIG5vZGUgcGx1cyAxLCBpbmNyZWFzZSBpdHMgc3RhcnQgb2Zmc2V0IGJ5IDEuXG4gICAgICAgICAqIDcuNS4gRm9yIGVhY2ggbGl2ZSByYW5nZSB3aG9zZSBlbmQgbm9kZSBpcyBwYXJlbnQgYW5kIGVuZCBvZmZzZXQgaXMgZXF1YWxcbiAgICAgICAgICogdG8gdGhlIGluZGV4IG9mIG5vZGUgcGx1cyAxLCBpbmNyZWFzZSBpdHMgZW5kIG9mZnNldCBieSAxLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChjb25zdCByYW5nZSBvZiBkb21fMS5kb20ucmFuZ2VMaXN0KSB7XG4gICAgICAgICAgICBpZiAocmFuZ2UuX3N0YXJ0WzBdID09PSBub2RlICYmIHJhbmdlLl9zdGFydFsxXSA+IG9mZnNldCkge1xuICAgICAgICAgICAgICAgIHJhbmdlLl9zdGFydFswXSA9IG5ld05vZGU7XG4gICAgICAgICAgICAgICAgcmFuZ2UuX3N0YXJ0WzFdIC09IG9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyYW5nZS5fZW5kWzBdID09PSBub2RlICYmIHJhbmdlLl9lbmRbMV0gPiBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzBdID0gbmV3Tm9kZTtcbiAgICAgICAgICAgICAgICByYW5nZS5fZW5kWzFdIC09IG9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gVHJlZUFsZ29yaXRobV8xLnRyZWVfaW5kZXgobm9kZSk7XG4gICAgICAgICAgICBpZiAocmFuZ2UuX3N0YXJ0WzBdID09PSBwYXJlbnQgJiYgcmFuZ2UuX3N0YXJ0WzFdID09PSBpbmRleCArIDEpIHtcbiAgICAgICAgICAgICAgICByYW5nZS5fc3RhcnRbMV0rKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyYW5nZS5fZW5kWzBdID09PSBwYXJlbnQgJiYgcmFuZ2UuX2VuZFsxXSA9PT0gaW5kZXggKyAxKSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UuX2VuZFsxXSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIDguIFJlcGxhY2UgZGF0YSB3aXRoIG5vZGUgbm9kZSwgb2Zmc2V0IG9mZnNldCwgY291bnQgY291bnQsIGFuZCBkYXRhXG4gICAgICogdGhlIGVtcHR5IHN0cmluZy5cbiAgICAgKiA5LiBSZXR1cm4gbmV3IG5vZGUuXG4gICAgICovXG4gICAgQ2hhcmFjdGVyRGF0YUFsZ29yaXRobV8xLmNoYXJhY3RlckRhdGFfcmVwbGFjZURhdGEobm9kZSwgb2Zmc2V0LCBjb3VudCwgJycpO1xuICAgIHJldHVybiBuZXdOb2RlO1xufVxuZXhwb3J0cy50ZXh0X3NwbGl0ID0gdGV4dF9zcGxpdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRleHRBbGdvcml0aG0uanMubWFwIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBkb21fMSA9IHJlcXVpcmUoXCJAb296Y2l0YWsvZG9tXCIpO1xuY29uc3QgZG9tXzIgPSByZXF1aXJlKFwiQG9vemNpdGFrL2RvbS9saWIvZG9tXCIpO1xuZG9tXzIuZG9tLnNldEZlYXR1cmVzKGZhbHNlKTtcbi8qKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBwYXJzZXIgcmV0dXJuZWQgYW4gZXJyb3IgZG9jdW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHRocm93SWZQYXJzZXJFcnJvcihkb2MpIHtcbiAgICBjb25zdCByb290ID0gZG9jLmRvY3VtZW50RWxlbWVudDtcbiAgICBpZiAocm9vdCAhPT0gbnVsbCAmJlxuICAgICAgICByb290LmxvY2FsTmFtZSA9PT0gXCJwYXJzZXJlcnJvclwiICYmXG4gICAgICAgIHJvb3QubmFtZXNwYWNlVVJJID09PSBcImh0dHA6Ly93d3cubW96aWxsYS5vcmcvbmV3bGF5b3V0L3htbC9wYXJzZXJlcnJvci54bWxcIikge1xuICAgICAgICBjb25zdCBtc2dFbGVtZW50ID0gcm9vdC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgaWYgKG1zZ0VsZW1lbnQgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciBwYXJzaW5nIFhNTCBzdHJpbmcuXCIpO1xuICAgICAgICBjb25zdCBtc2cgPSBtc2dFbGVtZW50LmdldEF0dHJpYnV0ZShcIm1lc3NhZ2VcIik7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGlmIChtc2cgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFcnJvciBwYXJzaW5nIFhNTCBzdHJpbmcuXCIpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICB9XG59XG5leHBvcnRzLnRocm93SWZQYXJzZXJFcnJvciA9IHRocm93SWZQYXJzZXJFcnJvcjtcbi8qKlxuICogQ3JlYXRlcyBhbiBYTUwgZG9jdW1lbnQgd2l0aG91dCBhbnkgY2hpbGQgbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZURvY3VtZW50KCkge1xuICAgIGNvbnN0IGltcGwgPSBuZXcgZG9tXzEuRE9NSW1wbGVtZW50YXRpb24oKTtcbiAgICBjb25zdCBkb2MgPSBpbXBsLmNyZWF0ZURvY3VtZW50KG51bGwsICdyb290JywgbnVsbCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZG9jLmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgICBkb2MucmVtb3ZlQ2hpbGQoZG9jLmRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICAgIHJldHVybiBkb2M7XG59XG5leHBvcnRzLmNyZWF0ZURvY3VtZW50ID0gY3JlYXRlRG9jdW1lbnQ7XG4vKipcbiAqIENyZWF0ZXMgYSBET00gcGFyc2VyLlxuICovXG5mdW5jdGlvbiBjcmVhdGVQYXJzZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBkb21fMS5ET01QYXJzZXIoKTtcbn1cbmV4cG9ydHMuY3JlYXRlUGFyc2VyID0gY3JlYXRlUGFyc2VyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZG9tLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBEZWZpbmVzIHRoZSB0eXBlIG9mIGEgdG9rZW4uXG4gKi9cbnZhciBUb2tlblR5cGU7XG4oZnVuY3Rpb24gKFRva2VuVHlwZSkge1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFT0ZcIl0gPSAwXSA9IFwiRU9GXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRlY2xhcmF0aW9uXCJdID0gMV0gPSBcIkRlY2xhcmF0aW9uXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkRvY1R5cGVcIl0gPSAyXSA9IFwiRG9jVHlwZVwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJFbGVtZW50XCJdID0gM10gPSBcIkVsZW1lbnRcIjtcbiAgICBUb2tlblR5cGVbVG9rZW5UeXBlW1wiVGV4dFwiXSA9IDRdID0gXCJUZXh0XCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNEQVRBXCJdID0gNV0gPSBcIkNEQVRBXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIlBJXCJdID0gNl0gPSBcIlBJXCI7XG4gICAgVG9rZW5UeXBlW1Rva2VuVHlwZVtcIkNvbW1lbnRcIl0gPSA3XSA9IFwiQ29tbWVudFwiO1xuICAgIFRva2VuVHlwZVtUb2tlblR5cGVbXCJDbG9zaW5nVGFnXCJdID0gOF0gPSBcIkNsb3NpbmdUYWdcIjtcbn0pKFRva2VuVHlwZSA9IGV4cG9ydHMuVG9rZW5UeXBlIHx8IChleHBvcnRzLlRva2VuVHlwZSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcmZhY2VzLmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2V0IG9mIHVuaXF1ZSBhdHRyaWJ1dGUgbmFtZXNwYWNlVVJJIGFuZCBsb2NhbE5hbWUgcGFpcnMuXG4gKiBUaGlzIHNldCB3aWxsIGNvbnRhaW4gdHVwbGVzIG9mIHVuaXF1ZSBhdHRyaWJ1dGUgbmFtZXNwYWNlVVJJIGFuZFxuICogbG9jYWxOYW1lIHBhaXJzLCBhbmQgaXMgcG9wdWxhdGVkIGFzIGVhY2ggYXR0ciBpcyBwcm9jZXNzZWQuIFRoaXMgc2V0IGlzXG4gKiB1c2VkIHRvIFtvcHRpb25hbGx5XSBlbmZvcmNlIHRoZSB3ZWxsLWZvcm1lZCBjb25zdHJhaW50IHRoYXQgYW4gZWxlbWVudFxuICogY2Fubm90IGhhdmUgdHdvIGF0dHJpYnV0ZXMgd2l0aCB0aGUgc2FtZSBuYW1lc3BhY2VVUkkgYW5kIGxvY2FsTmFtZS5cbiAqIFRoaXMgY2FuIG9jY3VyIHdoZW4gdHdvIG90aGVyd2lzZSBpZGVudGljYWwgYXR0cmlidXRlcyBvbiB0aGUgc2FtZVxuICogZWxlbWVudCBkaWZmZXIgb25seSBieSB0aGVpciBwcmVmaXggdmFsdWVzLlxuICovXG5jbGFzcyBMb2NhbE5hbWVTZXQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyB0dXBsZSBzdG9yYWdlXG4gICAgICAgIHRoaXMuX2l0ZW1zID0ge307XG4gICAgICAgIHRoaXMuX251bGxJdGVtcyA9IHt9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIG9yIHJlcGxhY2VzIGEgdHVwbGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbnMgLSBuYW1lc3BhY2UgVVJJXG4gICAgICogQHBhcmFtIGxvY2FsTmFtZSAtIGF0dHJpYnV0ZSBsb2NhbCBuYW1lXG4gICAgICovXG4gICAgc2V0KG5zLCBsb2NhbE5hbWUpIHtcbiAgICAgICAgaWYgKG5zID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9udWxsSXRlbXNbbG9jYWxOYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5faXRlbXNbbnNdKSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc1tuc11bbG9jYWxOYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc1tuc10gPSB7fTtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zW25zXVtsb2NhbE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0dXBsZSBleGlzdHMgaW4gdGhlIHNldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBucyAtIG5hbWVzcGFjZSBVUklcbiAgICAgKiBAcGFyYW0gbG9jYWxOYW1lIC0gYXR0cmlidXRlIGxvY2FsIG5hbWVcbiAgICAgKi9cbiAgICBoYXMobnMsIGxvY2FsTmFtZSkge1xuICAgICAgICBpZiAobnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9udWxsSXRlbXNbbG9jYWxOYW1lXSA9PT0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLl9pdGVtc1tuc10pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1tuc11bbG9jYWxOYW1lXSA9PT0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMuTG9jYWxOYW1lU2V0ID0gTG9jYWxOYW1lU2V0O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TG9jYWxOYW1lU2V0LmpzLm1hcCIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBleHBvcnRzLmRlc3Ryb3lGbnMgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmNEaWFsb2cgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1kaWFsb2dcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9hZGRFdmVudExpc3RlbmVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvRG9tL2FkZEV2ZW50TGlzdGVuZXJcIikpO1xuXG52YXIgX2xvY2FsZSA9IHJlcXVpcmUoXCIuL2xvY2FsZVwiKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfYnV0dG9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vYnV0dG9uXCIpKTtcblxudmFyIF9Mb2NhbGVSZWNlaXZlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS1wcm92aWRlci9Mb2NhbGVSZWNlaXZlclwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIG1vdXNlUG9zaXRpb247XG52YXIgZGVzdHJveUZucyA9IFtdOyAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE1Nzk1XG5cbmV4cG9ydHMuZGVzdHJveUZucyA9IGRlc3Ryb3lGbnM7XG5cbnZhciBnZXRDbGlja1Bvc2l0aW9uID0gZnVuY3Rpb24gZ2V0Q2xpY2tQb3NpdGlvbihlKSB7XG4gIG1vdXNlUG9zaXRpb24gPSB7XG4gICAgeDogZS5wYWdlWCxcbiAgICB5OiBlLnBhZ2VZXG4gIH07IC8vIDEwMG1zIOWGheWPkeeUn+i/h+eCueWHu+S6i+S7tu+8jOWImeS7jueCueWHu+S9jee9ruWKqOeUu+WxleekulxuICAvLyDlkKbliJnnm7TmjqUgem9vbSDlsZXnpLpcbiAgLy8g6L+Z5qC35Y+v5Lul5YW85a656Z2e54K55Ye75pa55byP5bGV5byAXG5cbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG1vdXNlUG9zaXRpb24gPSBudWxsO1xuICB9LCAxMDApO1xufTsgLy8g5Y+q5pyJ54K55Ye75LqL5Lu25pSv5oyB5LuO6byg5qCH5L2N572u5Yqo55S75bGV5byAXG5cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICgwLCBfYWRkRXZlbnRMaXN0ZW5lcltcImRlZmF1bHRcIl0pKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgJ2NsaWNrJywgZ2V0Q2xpY2tQb3NpdGlvbik7XG59XG5cbnZhciBNb2RhbCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoTW9kYWwsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoTW9kYWwpO1xuXG4gIGZ1bmN0aW9uIE1vZGFsKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNb2RhbCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgX3RoaXMuaGFuZGxlQ2FuY2VsID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBvbkNhbmNlbCA9IF90aGlzLnByb3BzLm9uQ2FuY2VsO1xuXG4gICAgICBpZiAob25DYW5jZWwpIHtcbiAgICAgICAgb25DYW5jZWwoZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZU9rID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBvbk9rID0gX3RoaXMucHJvcHMub25PaztcblxuICAgICAgaWYgKG9uT2spIHtcbiAgICAgICAgb25PayhlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyRm9vdGVyID0gZnVuY3Rpb24gKGxvY2FsZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgb2tUZXh0ID0gX3RoaXMkcHJvcHMub2tUZXh0LFxuICAgICAgICAgIG9rVHlwZSA9IF90aGlzJHByb3BzLm9rVHlwZSxcbiAgICAgICAgICBjYW5jZWxUZXh0ID0gX3RoaXMkcHJvcHMuY2FuY2VsVGV4dCxcbiAgICAgICAgICBjb25maXJtTG9hZGluZyA9IF90aGlzJHByb3BzLmNvbmZpcm1Mb2FkaW5nO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9idXR0b25bXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7XG4gICAgICAgIG9uQ2xpY2s6IF90aGlzLmhhbmRsZUNhbmNlbFxuICAgICAgfSwgX3RoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHMpLCBjYW5jZWxUZXh0IHx8IGxvY2FsZS5jYW5jZWxUZXh0KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2J1dHRvbltcImRlZmF1bHRcIl0sIF9leHRlbmRzKHtcbiAgICAgICAgdHlwZTogb2tUeXBlLFxuICAgICAgICBsb2FkaW5nOiBjb25maXJtTG9hZGluZyxcbiAgICAgICAgb25DbGljazogX3RoaXMuaGFuZGxlT2tcbiAgICAgIH0sIF90aGlzLnByb3BzLm9rQnV0dG9uUHJvcHMpLCBva1RleHQgfHwgbG9jYWxlLm9rVGV4dCkpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJNb2RhbCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgZ2V0Q29udGV4dFBvcHVwQ29udGFpbmVyID0gX3JlZi5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIGZvb3RlciA9IF9hLmZvb3RlcixcbiAgICAgICAgICB2aXNpYmxlID0gX2EudmlzaWJsZSxcbiAgICAgICAgICB3cmFwQ2xhc3NOYW1lID0gX2Eud3JhcENsYXNzTmFtZSxcbiAgICAgICAgICBjZW50ZXJlZCA9IF9hLmNlbnRlcmVkLFxuICAgICAgICAgIGdldENvbnRhaW5lciA9IF9hLmdldENvbnRhaW5lcixcbiAgICAgICAgICBjbG9zZUljb24gPSBfYS5jbG9zZUljb24sXG4gICAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJmb290ZXJcIiwgXCJ2aXNpYmxlXCIsIFwid3JhcENsYXNzTmFtZVwiLCBcImNlbnRlcmVkXCIsIFwiZ2V0Q29udGFpbmVyXCIsIFwiY2xvc2VJY29uXCJdKTtcblxuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnbW9kYWwnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGRlZmF1bHRGb290ZXIgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTG9jYWxlUmVjZWl2ZXJbXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNvbXBvbmVudE5hbWU6IFwiTW9kYWxcIixcbiAgICAgICAgZGVmYXVsdExvY2FsZTogKDAsIF9sb2NhbGUuZ2V0Q29uZmlybUxvY2FsZSkoKVxuICAgICAgfSwgX3RoaXMucmVuZGVyRm9vdGVyKTtcbiAgICAgIHZhciBjbG9zZUljb25Ub1JlbmRlciA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jbG9zZS14XCIpXG4gICAgICB9LCBjbG9zZUljb24gfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jbG9zZS1pY29uXCIpLFxuICAgICAgICB0eXBlOiBcImNsb3NlXCJcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNEaWFsb2dbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgcmVzdFByb3BzLCB7XG4gICAgICAgIGdldENvbnRhaW5lcjogZ2V0Q29udGFpbmVyID09PSB1bmRlZmluZWQgPyBnZXRDb250ZXh0UG9wdXBDb250YWluZXIgOiBnZXRDb250YWluZXIsXG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICB3cmFwQ2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2VudGVyZWRcIiksICEhY2VudGVyZWQpLCB3cmFwQ2xhc3NOYW1lKSxcbiAgICAgICAgZm9vdGVyOiBmb290ZXIgPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRGb290ZXIgOiBmb290ZXIsXG4gICAgICAgIHZpc2libGU6IHZpc2libGUsXG4gICAgICAgIG1vdXNlUG9zaXRpb246IG1vdXNlUG9zaXRpb24sXG4gICAgICAgIG9uQ2xvc2U6IF90aGlzLmhhbmRsZUNhbmNlbCxcbiAgICAgICAgY2xvc2VJY29uOiBjbG9zZUljb25Ub1JlbmRlclxuICAgICAgfSkpO1xuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTW9kYWwsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlck1vZGFsKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTW9kYWw7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTW9kYWw7XG5Nb2RhbC5kZWZhdWx0UHJvcHMgPSB7XG4gIHdpZHRoOiA1MjAsXG4gIHRyYW5zaXRpb25OYW1lOiAnem9vbScsXG4gIG1hc2tUcmFuc2l0aW9uTmFtZTogJ2ZhZGUnLFxuICBjb25maXJtTG9hZGluZzogZmFsc2UsXG4gIHZpc2libGU6IGZhbHNlLFxuICBva1R5cGU6ICdwcmltYXJ5J1xufTtcbk1vZGFsLnByb3BUeXBlcyA9IHtcbiAgcHJlZml4Q2xzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbk9rOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25DYW5jZWw6IFByb3BUeXBlcy5mdW5jLFxuICBva1RleHQ6IFByb3BUeXBlcy5ub2RlLFxuICBjYW5jZWxUZXh0OiBQcm9wVHlwZXMubm9kZSxcbiAgY2VudGVyZWQ6IFByb3BUeXBlcy5ib29sLFxuICB3aWR0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLFxuICBjb25maXJtTG9hZGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIHZpc2libGU6IFByb3BUeXBlcy5ib29sLFxuICBmb290ZXI6IFByb3BUeXBlcy5ub2RlLFxuICB0aXRsZTogUHJvcFR5cGVzLm5vZGUsXG4gIGNsb3NhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2xvc2VJY29uOiBQcm9wVHlwZXMubm9kZVxufTsiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZVxuICogW2xhbmd1YWdlIHR5cGVdKGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1lY21hc2NyaXB0LWxhbmd1YWdlLXR5cGVzKVxuICogb2YgYE9iamVjdGAuIChlLmcuIGFycmF5cywgZnVuY3Rpb25zLCBvYmplY3RzLCByZWdleGVzLCBgbmV3IE51bWJlcigwKWAsIGFuZCBgbmV3IFN0cmluZygnJylgKVxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0KHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChfLm5vb3ApO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gJ29iamVjdCcgfHwgdHlwZSA9PSAnZnVuY3Rpb24nKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdDtcbiIsInZhciBmcmVlR2xvYmFsID0gcmVxdWlyZSgnLi9fZnJlZUdsb2JhbCcpO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm9vdDtcbiIsInZhciByb290ID0gcmVxdWlyZSgnLi9fcm9vdCcpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW1ib2w7XG4iLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNJbmRleDtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMnKTtcblxudmFyIF9vYmplY3RXaXRob3V0UHJvcGVydGllczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9vYmplY3RXaXRob3V0UHJvcGVydGllczIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eScpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5Mik7XG5cbnZhciBfZXh0ZW5kczUgPSByZXF1aXJlKCdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcycpO1xuXG52YXIgX2V4dGVuZHM2ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0ZW5kczUpO1xuXG52YXIgX3RvQ29uc3VtYWJsZUFycmF5MiA9IHJlcXVpcmUoJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheScpO1xuXG52YXIgX3RvQ29uc3VtYWJsZUFycmF5MyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3RvQ29uc3VtYWJsZUFycmF5Mik7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9jcmVhdGVSZWFjdENsYXNzID0gcmVxdWlyZSgnY3JlYXRlLXJlYWN0LWNsYXNzJyk7XG5cbnZhciBfY3JlYXRlUmVhY3RDbGFzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVSZWFjdENsYXNzKTtcblxudmFyIF91bnNhZmVMaWZlY3ljbGVzUG9seWZpbGwgPSByZXF1aXJlKCdyYy11dGlsL2xpYi91bnNhZmVMaWZlY3ljbGVzUG9seWZpbGwnKTtcblxudmFyIF91bnNhZmVMaWZlY3ljbGVzUG9seWZpbGwyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdW5zYWZlTGlmZWN5Y2xlc1BvbHlmaWxsKTtcblxudmFyIF9hc3luY1ZhbGlkYXRvciA9IHJlcXVpcmUoJ2FzeW5jLXZhbGlkYXRvcicpO1xuXG52YXIgX2FzeW5jVmFsaWRhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FzeW5jVmFsaWRhdG9yKTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbnZhciBfZ2V0ID0gcmVxdWlyZSgnbG9kYXNoL2dldCcpO1xuXG52YXIgX2dldDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXQpO1xuXG52YXIgX3NldCA9IHJlcXVpcmUoJ2xvZGFzaC9zZXQnKTtcblxudmFyIF9zZXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2V0KTtcblxudmFyIF9lcSA9IHJlcXVpcmUoJ2xvZGFzaC9lcScpO1xuXG52YXIgX2VxMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2VxKTtcblxudmFyIF9jcmVhdGVGaWVsZHNTdG9yZSA9IHJlcXVpcmUoJy4vY3JlYXRlRmllbGRzU3RvcmUnKTtcblxudmFyIF9jcmVhdGVGaWVsZHNTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVGaWVsZHNTdG9yZSk7XG5cbnZhciBfdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJlZmVyLWVzNi1jbGFzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyAqL1xuXG52YXIgREVGQVVMVF9UUklHR0VSID0gJ29uQ2hhbmdlJztcblxuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcm0oKSB7XG4gIHZhciBvcHRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICB2YXIgbWl4aW5zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBbXTtcbiAgdmFyIHZhbGlkYXRlTWVzc2FnZXMgPSBvcHRpb24udmFsaWRhdGVNZXNzYWdlcyxcbiAgICAgIG9uRmllbGRzQ2hhbmdlID0gb3B0aW9uLm9uRmllbGRzQ2hhbmdlLFxuICAgICAgb25WYWx1ZXNDaGFuZ2UgPSBvcHRpb24ub25WYWx1ZXNDaGFuZ2UsXG4gICAgICBfb3B0aW9uJG1hcFByb3BzID0gb3B0aW9uLm1hcFByb3BzLFxuICAgICAgbWFwUHJvcHMgPSBfb3B0aW9uJG1hcFByb3BzID09PSB1bmRlZmluZWQgPyBfdXRpbHMuaWRlbnRpdHkgOiBfb3B0aW9uJG1hcFByb3BzLFxuICAgICAgbWFwUHJvcHNUb0ZpZWxkcyA9IG9wdGlvbi5tYXBQcm9wc1RvRmllbGRzLFxuICAgICAgZmllbGROYW1lUHJvcCA9IG9wdGlvbi5maWVsZE5hbWVQcm9wLFxuICAgICAgZmllbGRNZXRhUHJvcCA9IG9wdGlvbi5maWVsZE1ldGFQcm9wLFxuICAgICAgZmllbGREYXRhUHJvcCA9IG9wdGlvbi5maWVsZERhdGFQcm9wLFxuICAgICAgX29wdGlvbiRmb3JtUHJvcE5hbWUgPSBvcHRpb24uZm9ybVByb3BOYW1lLFxuICAgICAgZm9ybVByb3BOYW1lID0gX29wdGlvbiRmb3JtUHJvcE5hbWUgPT09IHVuZGVmaW5lZCA/ICdmb3JtJyA6IF9vcHRpb24kZm9ybVByb3BOYW1lLFxuICAgICAgZm9ybU5hbWUgPSBvcHRpb24ubmFtZSxcbiAgICAgIHdpdGhSZWYgPSBvcHRpb24ud2l0aFJlZjtcblxuXG4gIHJldHVybiBmdW5jdGlvbiBkZWNvcmF0ZShXcmFwcGVkQ29tcG9uZW50KSB7XG4gICAgdmFyIEZvcm0gPSAoMCwgX2NyZWF0ZVJlYWN0Q2xhc3MyWydkZWZhdWx0J10pKHtcbiAgICAgIGRpc3BsYXlOYW1lOiAnRm9ybScsXG5cbiAgICAgIG1peGluczogbWl4aW5zLFxuXG4gICAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgICB2YXIgZmllbGRzID0gbWFwUHJvcHNUb0ZpZWxkcyAmJiBtYXBQcm9wc1RvRmllbGRzKHRoaXMucHJvcHMpO1xuICAgICAgICB0aGlzLmZpZWxkc1N0b3JlID0gKDAsIF9jcmVhdGVGaWVsZHNTdG9yZTJbJ2RlZmF1bHQnXSkoZmllbGRzIHx8IHt9KTtcblxuICAgICAgICB0aGlzLmluc3RhbmNlcyA9IHt9O1xuICAgICAgICB0aGlzLmNhY2hlZEJpbmQgPSB7fTtcbiAgICAgICAgdGhpcy5jbGVhcmVkRmllbGRNZXRhQ2FjaGUgPSB7fTtcblxuICAgICAgICB0aGlzLnJlbmRlckZpZWxkcyA9IHt9O1xuICAgICAgICB0aGlzLmRvbUZpZWxkcyA9IHt9O1xuXG4gICAgICAgIC8vIEhBQ0s6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzY0MDZcbiAgICAgICAgWydnZXRGaWVsZHNWYWx1ZScsICdnZXRGaWVsZFZhbHVlJywgJ3NldEZpZWxkc0luaXRpYWxWYWx1ZScsICdnZXRGaWVsZHNFcnJvcicsICdnZXRGaWVsZEVycm9yJywgJ2lzRmllbGRWYWxpZGF0aW5nJywgJ2lzRmllbGRzVmFsaWRhdGluZycsICdpc0ZpZWxkc1RvdWNoZWQnLCAnaXNGaWVsZFRvdWNoZWQnXS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICBfdGhpc1trZXldID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF9maWVsZHNTdG9yZTtcblxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgKDAsIF93YXJuaW5nMlsnZGVmYXVsdCddKShmYWxzZSwgJ3lvdSBzaG91bGQgbm90IHVzZSBgcmVmYCBvbiBlbmhhbmNlZCBmb3JtLCBwbGVhc2UgdXNlIGB3cmFwcGVkQ29tcG9uZW50UmVmYC4gJyArICdTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvZm9ybSNub3RlLXVzZS13cmFwcGVkY29tcG9uZW50cmVmLWluc3RlYWQtb2Ytd2l0aHJlZi1hZnRlci1yYy1mb3JtMTQwJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKF9maWVsZHNTdG9yZSA9IF90aGlzLmZpZWxkc1N0b3JlKVtrZXldLmFwcGx5KF9maWVsZHNTdG9yZSwgYXJndW1lbnRzKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmNsZWFuVXBVc2VsZXNzRmllbGRzKCk7XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgICAgaWYgKG1hcFByb3BzVG9GaWVsZHMpIHtcbiAgICAgICAgICB0aGlzLmZpZWxkc1N0b3JlLnVwZGF0ZUZpZWxkcyhtYXBQcm9wc1RvRmllbGRzKG5leHRQcm9wcykpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMuY2xlYW5VcFVzZWxlc3NGaWVsZHMoKTtcbiAgICAgIH0sXG4gICAgICBvbkNvbGxlY3RDb21tb246IGZ1bmN0aW9uIG9uQ29sbGVjdENvbW1vbihuYW1lLCBhY3Rpb24sIGFyZ3MpIHtcbiAgICAgICAgdmFyIGZpZWxkTWV0YSA9IHRoaXMuZmllbGRzU3RvcmUuZ2V0RmllbGRNZXRhKG5hbWUpO1xuICAgICAgICBpZiAoZmllbGRNZXRhW2FjdGlvbl0pIHtcbiAgICAgICAgICBmaWVsZE1ldGFbYWN0aW9uXS5hcHBseShmaWVsZE1ldGEsICgwLCBfdG9Db25zdW1hYmxlQXJyYXkzWydkZWZhdWx0J10pKGFyZ3MpKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWVsZE1ldGEub3JpZ2luYWxQcm9wcyAmJiBmaWVsZE1ldGEub3JpZ2luYWxQcm9wc1thY3Rpb25dKSB7XG4gICAgICAgICAgdmFyIF9maWVsZE1ldGEkb3JpZ2luYWxQcjtcblxuICAgICAgICAgIChfZmllbGRNZXRhJG9yaWdpbmFsUHIgPSBmaWVsZE1ldGEub3JpZ2luYWxQcm9wcylbYWN0aW9uXS5hcHBseShfZmllbGRNZXRhJG9yaWdpbmFsUHIsICgwLCBfdG9Db25zdW1hYmxlQXJyYXkzWydkZWZhdWx0J10pKGFyZ3MpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdmFsdWUgPSBmaWVsZE1ldGEuZ2V0VmFsdWVGcm9tRXZlbnQgPyBmaWVsZE1ldGEuZ2V0VmFsdWVGcm9tRXZlbnQuYXBwbHkoZmllbGRNZXRhLCAoMCwgX3RvQ29uc3VtYWJsZUFycmF5M1snZGVmYXVsdCddKShhcmdzKSkgOiBfdXRpbHMuZ2V0VmFsdWVGcm9tRXZlbnQuYXBwbHkodW5kZWZpbmVkLCAoMCwgX3RvQ29uc3VtYWJsZUFycmF5M1snZGVmYXVsdCddKShhcmdzKSk7XG4gICAgICAgIGlmIChvblZhbHVlc0NoYW5nZSAmJiB2YWx1ZSAhPT0gdGhpcy5maWVsZHNTdG9yZS5nZXRGaWVsZFZhbHVlKG5hbWUpKSB7XG4gICAgICAgICAgdmFyIHZhbHVlc0FsbCA9IHRoaXMuZmllbGRzU3RvcmUuZ2V0QWxsVmFsdWVzKCk7XG4gICAgICAgICAgdmFyIHZhbHVlc0FsbFNldCA9IHt9O1xuICAgICAgICAgIHZhbHVlc0FsbFtuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgIE9iamVjdC5rZXlzKHZhbHVlc0FsbCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9zZXQyWydkZWZhdWx0J10pKHZhbHVlc0FsbFNldCwga2V5LCB2YWx1ZXNBbGxba2V5XSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgb25WYWx1ZXNDaGFuZ2UoKDAsIF9leHRlbmRzNlsnZGVmYXVsdCddKSgoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKSh7fSwgZm9ybVByb3BOYW1lLCB0aGlzLmdldEZvcm0oKSksIHRoaXMucHJvcHMpLCAoMCwgX3NldDJbJ2RlZmF1bHQnXSkoe30sIG5hbWUsIHZhbHVlKSwgdmFsdWVzQWxsU2V0KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZmllbGQgPSB0aGlzLmZpZWxkc1N0b3JlLmdldEZpZWxkKG5hbWUpO1xuICAgICAgICByZXR1cm4geyBuYW1lOiBuYW1lLCBmaWVsZDogKDAsIF9leHRlbmRzNlsnZGVmYXVsdCddKSh7fSwgZmllbGQsIHsgdmFsdWU6IHZhbHVlLCB0b3VjaGVkOiB0cnVlIH0pLCBmaWVsZE1ldGE6IGZpZWxkTWV0YSB9O1xuICAgICAgfSxcbiAgICAgIG9uQ29sbGVjdDogZnVuY3Rpb24gb25Db2xsZWN0KG5hbWVfLCBhY3Rpb24pIHtcbiAgICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gMiA/IF9sZW4gLSAyIDogMCksIF9rZXkgPSAyOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgICAgYXJnc1tfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX29uQ29sbGVjdENvbW1vbiA9IHRoaXMub25Db2xsZWN0Q29tbW9uKG5hbWVfLCBhY3Rpb24sIGFyZ3MpLFxuICAgICAgICAgICAgbmFtZSA9IF9vbkNvbGxlY3RDb21tb24ubmFtZSxcbiAgICAgICAgICAgIGZpZWxkID0gX29uQ29sbGVjdENvbW1vbi5maWVsZCxcbiAgICAgICAgICAgIGZpZWxkTWV0YSA9IF9vbkNvbGxlY3RDb21tb24uZmllbGRNZXRhO1xuXG4gICAgICAgIHZhciB2YWxpZGF0ZSA9IGZpZWxkTWV0YS52YWxpZGF0ZTtcblxuXG4gICAgICAgIHRoaXMuZmllbGRzU3RvcmUuc2V0RmllbGRzQXNEaXJ0eSgpO1xuXG4gICAgICAgIHZhciBuZXdGaWVsZCA9ICgwLCBfZXh0ZW5kczZbJ2RlZmF1bHQnXSkoe30sIGZpZWxkLCB7XG4gICAgICAgICAgZGlydHk6ICgwLCBfdXRpbHMuaGFzUnVsZXMpKHZhbGlkYXRlKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZHMoKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoe30sIG5hbWUsIG5ld0ZpZWxkKSk7XG4gICAgICB9LFxuICAgICAgb25Db2xsZWN0VmFsaWRhdGU6IGZ1bmN0aW9uIG9uQ29sbGVjdFZhbGlkYXRlKG5hbWVfLCBhY3Rpb24pIHtcbiAgICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIgPiAyID8gX2xlbjIgLSAyIDogMCksIF9rZXkyID0gMjsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICAgIGFyZ3NbX2tleTIgLSAyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgX29uQ29sbGVjdENvbW1vbjIgPSB0aGlzLm9uQ29sbGVjdENvbW1vbihuYW1lXywgYWN0aW9uLCBhcmdzKSxcbiAgICAgICAgICAgIGZpZWxkID0gX29uQ29sbGVjdENvbW1vbjIuZmllbGQsXG4gICAgICAgICAgICBmaWVsZE1ldGEgPSBfb25Db2xsZWN0Q29tbW9uMi5maWVsZE1ldGE7XG5cbiAgICAgICAgdmFyIG5ld0ZpZWxkID0gKDAsIF9leHRlbmRzNlsnZGVmYXVsdCddKSh7fSwgZmllbGQsIHtcbiAgICAgICAgICBkaXJ0eTogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpZWxkc1N0b3JlLnNldEZpZWxkc0FzRGlydHkoKTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRlRmllbGRzSW50ZXJuYWwoW25ld0ZpZWxkXSwge1xuICAgICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGZpcnN0RmllbGRzOiAhIWZpZWxkTWV0YS52YWxpZGF0ZUZpcnN0XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBnZXRDYWNoZUJpbmQ6IGZ1bmN0aW9uIGdldENhY2hlQmluZChuYW1lLCBhY3Rpb24sIGZuKSB7XG4gICAgICAgIGlmICghdGhpcy5jYWNoZWRCaW5kW25hbWVdKSB7XG4gICAgICAgICAgdGhpcy5jYWNoZWRCaW5kW25hbWVdID0ge307XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhY2hlID0gdGhpcy5jYWNoZWRCaW5kW25hbWVdO1xuICAgICAgICBpZiAoIWNhY2hlW2FjdGlvbl0gfHwgY2FjaGVbYWN0aW9uXS5vcmlGbiAhPT0gZm4pIHtcbiAgICAgICAgICBjYWNoZVthY3Rpb25dID0ge1xuICAgICAgICAgICAgZm46IGZuLmJpbmQodGhpcywgbmFtZSwgYWN0aW9uKSxcbiAgICAgICAgICAgIG9yaUZuOiBmblxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhY2hlW2FjdGlvbl0uZm47XG4gICAgICB9LFxuICAgICAgZ2V0RmllbGREZWNvcmF0b3I6IGZ1bmN0aW9uIGdldEZpZWxkRGVjb3JhdG9yKG5hbWUsIGZpZWxkT3B0aW9uKSB7XG4gICAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICAgIHZhciBwcm9wcyA9IHRoaXMuZ2V0RmllbGRQcm9wcyhuYW1lLCBmaWVsZE9wdGlvbik7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoZmllbGRFbGVtKSB7XG4gICAgICAgICAgLy8gV2Ugc2hvdWxkIHB1dCBmaWVsZCBpbiByZWNvcmQgaWYgaXQgaXMgcmVuZGVyZWRcbiAgICAgICAgICBfdGhpczIucmVuZGVyRmllbGRzW25hbWVdID0gdHJ1ZTtcblxuICAgICAgICAgIHZhciBmaWVsZE1ldGEgPSBfdGhpczIuZmllbGRzU3RvcmUuZ2V0RmllbGRNZXRhKG5hbWUpO1xuICAgICAgICAgIHZhciBvcmlnaW5hbFByb3BzID0gZmllbGRFbGVtLnByb3BzO1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWVQcm9wTmFtZSA9IGZpZWxkTWV0YS52YWx1ZVByb3BOYW1lO1xuICAgICAgICAgICAgKDAsIF93YXJuaW5nMlsnZGVmYXVsdCddKSghKHZhbHVlUHJvcE5hbWUgaW4gb3JpZ2luYWxQcm9wcyksICdgZ2V0RmllbGREZWNvcmF0b3JgIHdpbGwgb3ZlcnJpZGUgYCcgKyB2YWx1ZVByb3BOYW1lICsgJ2AsICcgKyAoJ3NvIHBsZWFzZSBkb25cXCd0IHNldCBgJyArIHZhbHVlUHJvcE5hbWUgKyAnYCBkaXJlY3RseSAnKSArICdhbmQgdXNlIGBzZXRGaWVsZHNWYWx1ZWAgdG8gc2V0IGl0LicpO1xuICAgICAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZVByb3BOYW1lID0gJ2RlZmF1bHQnICsgdmFsdWVQcm9wTmFtZVswXS50b1VwcGVyQ2FzZSgpICsgdmFsdWVQcm9wTmFtZS5zbGljZSgxKTtcbiAgICAgICAgICAgICgwLCBfd2FybmluZzJbJ2RlZmF1bHQnXSkoIShkZWZhdWx0VmFsdWVQcm9wTmFtZSBpbiBvcmlnaW5hbFByb3BzKSwgJ2AnICsgZGVmYXVsdFZhbHVlUHJvcE5hbWUgKyAnYCBpcyBpbnZhbGlkICcgKyAoJ2ZvciBgZ2V0RmllbGREZWNvcmF0b3JgIHdpbGwgc2V0IGAnICsgdmFsdWVQcm9wTmFtZSArICdgLCcpICsgJyBwbGVhc2UgdXNlIGBvcHRpb24uaW5pdGlhbFZhbHVlYCBpbnN0ZWFkLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmaWVsZE1ldGEub3JpZ2luYWxQcm9wcyA9IG9yaWdpbmFsUHJvcHM7XG4gICAgICAgICAgZmllbGRNZXRhLnJlZiA9IGZpZWxkRWxlbS5yZWY7XG4gICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jbG9uZUVsZW1lbnQoZmllbGRFbGVtLCAoMCwgX2V4dGVuZHM2WydkZWZhdWx0J10pKHt9LCBwcm9wcywgX3RoaXMyLmZpZWxkc1N0b3JlLmdldEZpZWxkVmFsdWVQcm9wVmFsdWUoZmllbGRNZXRhKSkpO1xuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIGdldEZpZWxkUHJvcHM6IGZ1bmN0aW9uIGdldEZpZWxkUHJvcHMobmFtZSkge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICB2YXIgdXNlcnNGaWVsZE9wdGlvbiA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICAgICAgaWYgKCFuYW1lKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGNhbGwgYGdldEZpZWxkUHJvcHNgIHdpdGggdmFsaWQgbmFtZSBzdHJpbmchJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAoMCwgX3dhcm5pbmcyWydkZWZhdWx0J10pKHRoaXMuZmllbGRzU3RvcmUuaXNWYWxpZE5lc3RlZEZpZWxkTmFtZShuYW1lKSwgJ09uZSBmaWVsZCBuYW1lIGNhbm5vdCBiZSBwYXJ0IG9mIGFub3RoZXIsIGUuZy4gYGFgIGFuZCBgYS5iYC4gQ2hlY2sgZmllbGQ6ICcgKyBuYW1lKTtcbiAgICAgICAgICAoMCwgX3dhcm5pbmcyWydkZWZhdWx0J10pKCEoJ2V4Y2x1c2l2ZScgaW4gdXNlcnNGaWVsZE9wdGlvbiksICdgb3B0aW9uLmV4Y2x1c2l2ZWAgb2YgYGdldEZpZWxkUHJvcHNgfGBnZXRGaWVsZERlY29yYXRvcmAgaGFkIGJlZW4gcmVtb3ZlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuY2xlYXJlZEZpZWxkTWV0YUNhY2hlW25hbWVdO1xuXG4gICAgICAgIHZhciBmaWVsZE9wdGlvbiA9ICgwLCBfZXh0ZW5kczZbJ2RlZmF1bHQnXSkoe1xuICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgdHJpZ2dlcjogREVGQVVMVF9UUklHR0VSLFxuICAgICAgICAgIHZhbHVlUHJvcE5hbWU6ICd2YWx1ZScsXG4gICAgICAgICAgdmFsaWRhdGU6IFtdXG4gICAgICAgIH0sIHVzZXJzRmllbGRPcHRpb24pO1xuXG4gICAgICAgIHZhciBydWxlcyA9IGZpZWxkT3B0aW9uLnJ1bGVzLFxuICAgICAgICAgICAgdHJpZ2dlciA9IGZpZWxkT3B0aW9uLnRyaWdnZXIsXG4gICAgICAgICAgICBfZmllbGRPcHRpb24kdmFsaWRhdGUgPSBmaWVsZE9wdGlvbi52YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgICAgICB2YWxpZGF0ZVRyaWdnZXIgPSBfZmllbGRPcHRpb24kdmFsaWRhdGUgPT09IHVuZGVmaW5lZCA/IHRyaWdnZXIgOiBfZmllbGRPcHRpb24kdmFsaWRhdGUsXG4gICAgICAgICAgICB2YWxpZGF0ZSA9IGZpZWxkT3B0aW9uLnZhbGlkYXRlO1xuXG5cbiAgICAgICAgdmFyIGZpZWxkTWV0YSA9IHRoaXMuZmllbGRzU3RvcmUuZ2V0RmllbGRNZXRhKG5hbWUpO1xuICAgICAgICBpZiAoJ2luaXRpYWxWYWx1ZScgaW4gZmllbGRPcHRpb24pIHtcbiAgICAgICAgICBmaWVsZE1ldGEuaW5pdGlhbFZhbHVlID0gZmllbGRPcHRpb24uaW5pdGlhbFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGlucHV0UHJvcHMgPSAoMCwgX2V4dGVuZHM2WydkZWZhdWx0J10pKHt9LCB0aGlzLmZpZWxkc1N0b3JlLmdldEZpZWxkVmFsdWVQcm9wVmFsdWUoZmllbGRPcHRpb24pLCB7XG4gICAgICAgICAgcmVmOiB0aGlzLmdldENhY2hlQmluZChuYW1lLCBuYW1lICsgJ19fcmVmJywgdGhpcy5zYXZlUmVmKVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGZpZWxkTmFtZVByb3ApIHtcbiAgICAgICAgICBpbnB1dFByb3BzW2ZpZWxkTmFtZVByb3BdID0gZm9ybU5hbWUgPyBmb3JtTmFtZSArICdfJyArIG5hbWUgOiBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHZhbGlkYXRlUnVsZXMgPSAoMCwgX3V0aWxzLm5vcm1hbGl6ZVZhbGlkYXRlUnVsZXMpKHZhbGlkYXRlLCBydWxlcywgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgdmFyIHZhbGlkYXRlVHJpZ2dlcnMgPSAoMCwgX3V0aWxzLmdldFZhbGlkYXRlVHJpZ2dlcnMpKHZhbGlkYXRlUnVsZXMpO1xuICAgICAgICB2YWxpZGF0ZVRyaWdnZXJzLmZvckVhY2goZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICAgIGlmIChpbnB1dFByb3BzW2FjdGlvbl0pIHJldHVybjtcbiAgICAgICAgICBpbnB1dFByb3BzW2FjdGlvbl0gPSBfdGhpczMuZ2V0Q2FjaGVCaW5kKG5hbWUsIGFjdGlvbiwgX3RoaXMzLm9uQ29sbGVjdFZhbGlkYXRlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHZhbHVlIHdpbGwgYmUgY29sbGVjdFxuICAgICAgICBpZiAodHJpZ2dlciAmJiB2YWxpZGF0ZVRyaWdnZXJzLmluZGV4T2YodHJpZ2dlcikgPT09IC0xKSB7XG4gICAgICAgICAgaW5wdXRQcm9wc1t0cmlnZ2VyXSA9IHRoaXMuZ2V0Q2FjaGVCaW5kKG5hbWUsIHRyaWdnZXIsIHRoaXMub25Db2xsZWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtZXRhID0gKDAsIF9leHRlbmRzNlsnZGVmYXVsdCddKSh7fSwgZmllbGRNZXRhLCBmaWVsZE9wdGlvbiwge1xuICAgICAgICAgIHZhbGlkYXRlOiB2YWxpZGF0ZVJ1bGVzXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZpZWxkc1N0b3JlLnNldEZpZWxkTWV0YShuYW1lLCBtZXRhKTtcbiAgICAgICAgaWYgKGZpZWxkTWV0YVByb3ApIHtcbiAgICAgICAgICBpbnB1dFByb3BzW2ZpZWxkTWV0YVByb3BdID0gbWV0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZERhdGFQcm9wKSB7XG4gICAgICAgICAgaW5wdXRQcm9wc1tmaWVsZERhdGFQcm9wXSA9IHRoaXMuZmllbGRzU3RvcmUuZ2V0RmllbGQobmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGZpZWxkIGlzIHJlbmRlcmVkLCByZWNvcmQgaXRcbiAgICAgICAgdGhpcy5yZW5kZXJGaWVsZHNbbmFtZV0gPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBpbnB1dFByb3BzO1xuICAgICAgfSxcbiAgICAgIGdldEZpZWxkSW5zdGFuY2U6IGZ1bmN0aW9uIGdldEZpZWxkSW5zdGFuY2UobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnN0YW5jZXNbbmFtZV07XG4gICAgICB9LFxuICAgICAgZ2V0UnVsZXM6IGZ1bmN0aW9uIGdldFJ1bGVzKGZpZWxkTWV0YSwgYWN0aW9uKSB7XG4gICAgICAgIHZhciBhY3Rpb25SdWxlcyA9IGZpZWxkTWV0YS52YWxpZGF0ZS5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gIWFjdGlvbiB8fCBpdGVtLnRyaWdnZXIuaW5kZXhPZihhY3Rpb24pID49IDA7XG4gICAgICAgIH0pLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHJldHVybiBpdGVtLnJ1bGVzO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMuZmxhdHRlbkFycmF5KShhY3Rpb25SdWxlcyk7XG4gICAgICB9LFxuICAgICAgc2V0RmllbGRzOiBmdW5jdGlvbiBzZXRGaWVsZHMobWF5YmVOZXN0ZWRGaWVsZHMsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAgIHZhciBmaWVsZHMgPSB0aGlzLmZpZWxkc1N0b3JlLmZsYXR0ZW5SZWdpc3RlcmVkRmllbGRzKG1heWJlTmVzdGVkRmllbGRzKTtcbiAgICAgICAgdGhpcy5maWVsZHNTdG9yZS5zZXRGaWVsZHMoZmllbGRzKTtcbiAgICAgICAgaWYgKG9uRmllbGRzQ2hhbmdlKSB7XG4gICAgICAgICAgdmFyIGNoYW5nZWRGaWVsZHMgPSBPYmplY3Qua2V5cyhmaWVsZHMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF9zZXQyWydkZWZhdWx0J10pKGFjYywgbmFtZSwgX3RoaXM0LmZpZWxkc1N0b3JlLmdldEZpZWxkKG5hbWUpKTtcbiAgICAgICAgICB9LCB7fSk7XG4gICAgICAgICAgb25GaWVsZHNDaGFuZ2UoKDAsIF9leHRlbmRzNlsnZGVmYXVsdCddKSgoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKSh7fSwgZm9ybVByb3BOYW1lLCB0aGlzLmdldEZvcm0oKSksIHRoaXMucHJvcHMpLCBjaGFuZ2VkRmllbGRzLCB0aGlzLmZpZWxkc1N0b3JlLmdldE5lc3RlZEFsbEZpZWxkcygpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKGNhbGxiYWNrKTtcbiAgICAgIH0sXG4gICAgICBzZXRGaWVsZHNWYWx1ZTogZnVuY3Rpb24gc2V0RmllbGRzVmFsdWUoY2hhbmdlZFZhbHVlcywgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZpZWxkc01ldGEgPSB0aGlzLmZpZWxkc1N0b3JlLmZpZWxkc01ldGE7XG5cbiAgICAgICAgdmFyIHZhbHVlcyA9IHRoaXMuZmllbGRzU3RvcmUuZmxhdHRlblJlZ2lzdGVyZWRGaWVsZHMoY2hhbmdlZFZhbHVlcyk7XG4gICAgICAgIHZhciBuZXdGaWVsZHMgPSBPYmplY3Qua2V5cyh2YWx1ZXMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBuYW1lKSB7XG4gICAgICAgICAgdmFyIGlzUmVnaXN0ZXJlZCA9IGZpZWxkc01ldGFbbmFtZV07XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICgwLCBfd2FybmluZzJbJ2RlZmF1bHQnXSkoaXNSZWdpc3RlcmVkLCAnQ2Fubm90IHVzZSBgc2V0RmllbGRzVmFsdWVgIHVudGlsICcgKyAneW91IHVzZSBgZ2V0RmllbGREZWNvcmF0b3JgIG9yIGBnZXRGaWVsZFByb3BzYCB0byByZWdpc3RlciBpdC4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzUmVnaXN0ZXJlZCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlID0gdmFsdWVzW25hbWVdO1xuICAgICAgICAgICAgYWNjW25hbWVdID0ge1xuICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZHMobmV3RmllbGRzLCBjYWxsYmFjayk7XG4gICAgICAgIGlmIChvblZhbHVlc0NoYW5nZSkge1xuICAgICAgICAgIHZhciBhbGxWYWx1ZXMgPSB0aGlzLmZpZWxkc1N0b3JlLmdldEFsbFZhbHVlcygpO1xuICAgICAgICAgIG9uVmFsdWVzQ2hhbmdlKCgwLCBfZXh0ZW5kczZbJ2RlZmF1bHQnXSkoKDAsIF9kZWZpbmVQcm9wZXJ0eTNbJ2RlZmF1bHQnXSkoe30sIGZvcm1Qcm9wTmFtZSwgdGhpcy5nZXRGb3JtKCkpLCB0aGlzLnByb3BzKSwgY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNhdmVSZWY6IGZ1bmN0aW9uIHNhdmVSZWYobmFtZSwgXywgY29tcG9uZW50KSB7XG4gICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgdmFyIF9maWVsZE1ldGEgPSB0aGlzLmZpZWxkc1N0b3JlLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgICAgICAgICBpZiAoIV9maWVsZE1ldGEucHJlc2VydmUpIHtcbiAgICAgICAgICAgIC8vIGFmdGVyIGRlc3Ryb3ksIGRlbGV0ZSBkYXRhXG4gICAgICAgICAgICB0aGlzLmNsZWFyZWRGaWVsZE1ldGFDYWNoZVtuYW1lXSA9IHtcbiAgICAgICAgICAgICAgZmllbGQ6IHRoaXMuZmllbGRzU3RvcmUuZ2V0RmllbGQobmFtZSksXG4gICAgICAgICAgICAgIG1ldGE6IF9maWVsZE1ldGFcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmllbGQobmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlbGV0ZSB0aGlzLmRvbUZpZWxkc1tuYW1lXTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kb21GaWVsZHNbbmFtZV0gPSB0cnVlO1xuICAgICAgICB0aGlzLnJlY292ZXJDbGVhcmVkRmllbGQobmFtZSk7XG4gICAgICAgIHZhciBmaWVsZE1ldGEgPSB0aGlzLmZpZWxkc1N0b3JlLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgICAgICAgaWYgKGZpZWxkTWV0YSkge1xuICAgICAgICAgIHZhciByZWYgPSBmaWVsZE1ldGEucmVmO1xuICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NhbiBub3Qgc2V0IHJlZiBzdHJpbmcgZm9yICcgKyBuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICByZWYoY29tcG9uZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlZiwgJ2N1cnJlbnQnKSkge1xuICAgICAgICAgICAgICByZWYuY3VycmVudCA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnN0YW5jZXNbbmFtZV0gPSBjb21wb25lbnQ7XG4gICAgICB9LFxuICAgICAgY2xlYW5VcFVzZWxlc3NGaWVsZHM6IGZ1bmN0aW9uIGNsZWFuVXBVc2VsZXNzRmllbGRzKCkge1xuICAgICAgICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICAgICAgICB2YXIgZmllbGRMaXN0ID0gdGhpcy5maWVsZHNTdG9yZS5nZXRBbGxGaWVsZHNOYW1lKCk7XG4gICAgICAgIHZhciByZW1vdmVkTGlzdCA9IGZpZWxkTGlzdC5maWx0ZXIoZnVuY3Rpb24gKGZpZWxkKSB7XG4gICAgICAgICAgdmFyIGZpZWxkTWV0YSA9IF90aGlzNS5maWVsZHNTdG9yZS5nZXRGaWVsZE1ldGEoZmllbGQpO1xuICAgICAgICAgIHJldHVybiAhX3RoaXM1LnJlbmRlckZpZWxkc1tmaWVsZF0gJiYgIV90aGlzNS5kb21GaWVsZHNbZmllbGRdICYmICFmaWVsZE1ldGEucHJlc2VydmU7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVtb3ZlZExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgcmVtb3ZlZExpc3QuZm9yRWFjaCh0aGlzLmNsZWFyRmllbGQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyRmllbGRzID0ge307XG4gICAgICB9LFxuICAgICAgY2xlYXJGaWVsZDogZnVuY3Rpb24gY2xlYXJGaWVsZChuYW1lKSB7XG4gICAgICAgIHRoaXMuZmllbGRzU3RvcmUuY2xlYXJGaWVsZChuYW1lKTtcbiAgICAgICAgZGVsZXRlIHRoaXMuaW5zdGFuY2VzW25hbWVdO1xuICAgICAgICBkZWxldGUgdGhpcy5jYWNoZWRCaW5kW25hbWVdO1xuICAgICAgfSxcbiAgICAgIHJlc2V0RmllbGRzOiBmdW5jdGlvbiByZXNldEZpZWxkcyhucykge1xuICAgICAgICB2YXIgX3RoaXM2ID0gdGhpcztcblxuICAgICAgICB2YXIgbmV3RmllbGRzID0gdGhpcy5maWVsZHNTdG9yZS5yZXNldEZpZWxkcyhucyk7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhuZXdGaWVsZHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNldEZpZWxkcyhuZXdGaWVsZHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChucykge1xuICAgICAgICAgIHZhciBuYW1lcyA9IEFycmF5LmlzQXJyYXkobnMpID8gbnMgOiBbbnNdO1xuICAgICAgICAgIG5hbWVzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGUgX3RoaXM2LmNsZWFyZWRGaWVsZE1ldGFDYWNoZVtuYW1lXTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsZWFyZWRGaWVsZE1ldGFDYWNoZSA9IHt9O1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVjb3ZlckNsZWFyZWRGaWVsZDogZnVuY3Rpb24gcmVjb3ZlckNsZWFyZWRGaWVsZChuYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLmNsZWFyZWRGaWVsZE1ldGFDYWNoZVtuYW1lXSkge1xuICAgICAgICAgIHRoaXMuZmllbGRzU3RvcmUuc2V0RmllbGRzKCgwLCBfZGVmaW5lUHJvcGVydHkzWydkZWZhdWx0J10pKHt9LCBuYW1lLCB0aGlzLmNsZWFyZWRGaWVsZE1ldGFDYWNoZVtuYW1lXS5maWVsZCkpO1xuICAgICAgICAgIHRoaXMuZmllbGRzU3RvcmUuc2V0RmllbGRNZXRhKG5hbWUsIHRoaXMuY2xlYXJlZEZpZWxkTWV0YUNhY2hlW25hbWVdLm1ldGEpO1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmNsZWFyZWRGaWVsZE1ldGFDYWNoZVtuYW1lXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlRmllbGRzSW50ZXJuYWw6IGZ1bmN0aW9uIHZhbGlkYXRlRmllbGRzSW50ZXJuYWwoZmllbGRzLCBfcmVmLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgX3RoaXM3ID0gdGhpcztcblxuICAgICAgICB2YXIgZmllbGROYW1lcyA9IF9yZWYuZmllbGROYW1lcyxcbiAgICAgICAgICAgIGFjdGlvbiA9IF9yZWYuYWN0aW9uLFxuICAgICAgICAgICAgX3JlZiRvcHRpb25zID0gX3JlZi5vcHRpb25zLFxuICAgICAgICAgICAgb3B0aW9ucyA9IF9yZWYkb3B0aW9ucyA9PT0gdW5kZWZpbmVkID8ge30gOiBfcmVmJG9wdGlvbnM7XG5cbiAgICAgICAgdmFyIGFsbFJ1bGVzID0ge307XG4gICAgICAgIHZhciBhbGxWYWx1ZXMgPSB7fTtcbiAgICAgICAgdmFyIGFsbEZpZWxkcyA9IHt9O1xuICAgICAgICB2YXIgYWxyZWFkeUVycm9ycyA9IHt9O1xuICAgICAgICBmaWVsZHMuZm9yRWFjaChmdW5jdGlvbiAoZmllbGQpIHtcbiAgICAgICAgICB2YXIgbmFtZSA9IGZpZWxkLm5hbWU7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuZm9yY2UgIT09IHRydWUgJiYgZmllbGQuZGlydHkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICgwLCBfc2V0MlsnZGVmYXVsdCddKShhbHJlYWR5RXJyb3JzLCBuYW1lLCB7IGVycm9yczogZmllbGQuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgZmllbGRNZXRhID0gX3RoaXM3LmZpZWxkc1N0b3JlLmdldEZpZWxkTWV0YShuYW1lKTtcbiAgICAgICAgICB2YXIgbmV3RmllbGQgPSAoMCwgX2V4dGVuZHM2WydkZWZhdWx0J10pKHt9LCBmaWVsZCk7XG4gICAgICAgICAgbmV3RmllbGQuZXJyb3JzID0gdW5kZWZpbmVkO1xuICAgICAgICAgIG5ld0ZpZWxkLnZhbGlkYXRpbmcgPSB0cnVlO1xuICAgICAgICAgIG5ld0ZpZWxkLmRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICBhbGxSdWxlc1tuYW1lXSA9IF90aGlzNy5nZXRSdWxlcyhmaWVsZE1ldGEsIGFjdGlvbik7XG4gICAgICAgICAgYWxsVmFsdWVzW25hbWVdID0gbmV3RmllbGQudmFsdWU7XG4gICAgICAgICAgYWxsRmllbGRzW25hbWVdID0gbmV3RmllbGQ7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldEZpZWxkcyhhbGxGaWVsZHMpO1xuICAgICAgICAvLyBpbiBjYXNlIG5vcm1hbGl6ZVxuICAgICAgICBPYmplY3Qua2V5cyhhbGxWYWx1ZXMpLmZvckVhY2goZnVuY3Rpb24gKGYpIHtcbiAgICAgICAgICBhbGxWYWx1ZXNbZl0gPSBfdGhpczcuZmllbGRzU3RvcmUuZ2V0RmllbGRWYWx1ZShmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjYWxsYmFjayAmJiAoMCwgX3V0aWxzLmlzRW1wdHlPYmplY3QpKGFsbEZpZWxkcykpIHtcbiAgICAgICAgICBjYWxsYmFjaygoMCwgX3V0aWxzLmlzRW1wdHlPYmplY3QpKGFscmVhZHlFcnJvcnMpID8gbnVsbCA6IGFscmVhZHlFcnJvcnMsIHRoaXMuZmllbGRzU3RvcmUuZ2V0RmllbGRzVmFsdWUoZmllbGROYW1lcykpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdmFsaWRhdG9yID0gbmV3IF9hc3luY1ZhbGlkYXRvcjJbJ2RlZmF1bHQnXShhbGxSdWxlcyk7XG4gICAgICAgIGlmICh2YWxpZGF0ZU1lc3NhZ2VzKSB7XG4gICAgICAgICAgdmFsaWRhdG9yLm1lc3NhZ2VzKHZhbGlkYXRlTWVzc2FnZXMpO1xuICAgICAgICB9XG4gICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZShhbGxWYWx1ZXMsIG9wdGlvbnMsIGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICAgICAgICB2YXIgZXJyb3JzR3JvdXAgPSAoMCwgX2V4dGVuZHM2WydkZWZhdWx0J10pKHt9LCBhbHJlYWR5RXJyb3JzKTtcbiAgICAgICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGVycm9ycy5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgIHZhciBlcnJvckZpZWxkTmFtZSA9IGUuZmllbGQ7XG4gICAgICAgICAgICAgIHZhciBmaWVsZE5hbWUgPSBlcnJvckZpZWxkTmFtZTtcblxuICAgICAgICAgICAgICAvLyBIYW5kbGUgdXNpbmcgYXJyYXkgdmFsaWRhdGlvbiBydWxlLlxuICAgICAgICAgICAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzE0Mjc1XG4gICAgICAgICAgICAgIE9iamVjdC5rZXlzKGFsbFJ1bGVzKS5zb21lKGZ1bmN0aW9uIChydWxlRmllbGROYW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJ1bGVzID0gYWxsUnVsZXNbcnVsZUZpZWxkTmFtZV0gfHwgW107XG5cbiAgICAgICAgICAgICAgICAvLyBFeGlzdCBpZiBtYXRjaCBydWxlXG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVGaWVsZE5hbWUgPT09IGVycm9yRmllbGROYW1lKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZE5hbWUgPSBydWxlRmllbGROYW1lO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gU2tpcCBpZiBub3QgbWF0Y2ggYXJyYXkgdHlwZVxuICAgICAgICAgICAgICAgIGlmIChydWxlcy5ldmVyeShmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gX3JlZjIudHlwZTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlICE9PSAnYXJyYXknO1xuICAgICAgICAgICAgICAgIH0pIHx8IGVycm9yRmllbGROYW1lLmluZGV4T2YocnVsZUZpZWxkTmFtZSArICcuJykgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBFeGlzdCBpZiBtYXRjaCB0aGUgZmllbGQgbmFtZVxuICAgICAgICAgICAgICAgIHZhciByZXN0UGF0aCA9IGVycm9yRmllbGROYW1lLnNsaWNlKHJ1bGVGaWVsZE5hbWUubGVuZ3RoICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKC9eXFxkKyQvLnRlc3QocmVzdFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZE5hbWUgPSBydWxlRmllbGROYW1lO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICB2YXIgZmllbGQgPSAoMCwgX2dldDJbJ2RlZmF1bHQnXSkoZXJyb3JzR3JvdXAsIGZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XG4gICAgICAgICAgICAgICAgKDAsIF9zZXQyWydkZWZhdWx0J10pKGVycm9yc0dyb3VwLCBmaWVsZE5hbWUsIHsgZXJyb3JzOiBbXSB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB2YXIgZmllbGRFcnJvcnMgPSAoMCwgX2dldDJbJ2RlZmF1bHQnXSkoZXJyb3JzR3JvdXAsIGZpZWxkTmFtZS5jb25jYXQoJy5lcnJvcnMnKSk7XG4gICAgICAgICAgICAgIGZpZWxkRXJyb3JzLnB1c2goZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIGV4cGlyZWQgPSBbXTtcbiAgICAgICAgICB2YXIgbm93QWxsRmllbGRzID0ge307XG4gICAgICAgICAgT2JqZWN0LmtleXMoYWxsUnVsZXMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHZhciBmaWVsZEVycm9ycyA9ICgwLCBfZ2V0MlsnZGVmYXVsdCddKShlcnJvcnNHcm91cCwgbmFtZSk7XG4gICAgICAgICAgICB2YXIgbm93RmllbGQgPSBfdGhpczcuZmllbGRzU3RvcmUuZ2V0RmllbGQobmFtZSk7XG4gICAgICAgICAgICAvLyBhdm9pZCBjb25jdXJyZW5jeSBwcm9ibGVtc1xuICAgICAgICAgICAgaWYgKCEoMCwgX2VxMlsnZGVmYXVsdCddKShub3dGaWVsZC52YWx1ZSwgYWxsVmFsdWVzW25hbWVdKSkge1xuICAgICAgICAgICAgICBleHBpcmVkLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IG5hbWVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBub3dGaWVsZC5lcnJvcnMgPSBmaWVsZEVycm9ycyAmJiBmaWVsZEVycm9ycy5lcnJvcnM7XG4gICAgICAgICAgICAgIG5vd0ZpZWxkLnZhbHVlID0gYWxsVmFsdWVzW25hbWVdO1xuICAgICAgICAgICAgICBub3dGaWVsZC52YWxpZGF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIG5vd0ZpZWxkLmRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIG5vd0FsbEZpZWxkc1tuYW1lXSA9IG5vd0ZpZWxkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIF90aGlzNy5zZXRGaWVsZHMobm93QWxsRmllbGRzKTtcbiAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGlmIChleHBpcmVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICBleHBpcmVkLmZvckVhY2goZnVuY3Rpb24gKF9yZWYzKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBfcmVmMy5uYW1lO1xuXG4gICAgICAgICAgICAgICAgdmFyIGZpZWxkRXJyb3JzID0gW3tcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG5hbWUgKyAnIG5lZWQgdG8gcmV2YWxpZGF0ZScsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogbmFtZVxuICAgICAgICAgICAgICAgIH1dO1xuICAgICAgICAgICAgICAgICgwLCBfc2V0MlsnZGVmYXVsdCddKShlcnJvcnNHcm91cCwgbmFtZSwge1xuICAgICAgICAgICAgICAgICAgZXhwaXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGVycm9yczogZmllbGRFcnJvcnNcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKCgwLCBfdXRpbHMuaXNFbXB0eU9iamVjdCkoZXJyb3JzR3JvdXApID8gbnVsbCA6IGVycm9yc0dyb3VwLCBfdGhpczcuZmllbGRzU3RvcmUuZ2V0RmllbGRzVmFsdWUoZmllbGROYW1lcykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgdmFsaWRhdGVGaWVsZHM6IGZ1bmN0aW9uIHZhbGlkYXRlRmllbGRzKG5zLCBvcHQsIGNiKSB7XG4gICAgICAgIHZhciBfdGhpczggPSB0aGlzO1xuXG4gICAgICAgIHZhciBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIHZhciBfZ2V0UGFyYW1zID0gKDAsIF91dGlscy5nZXRQYXJhbXMpKG5zLCBvcHQsIGNiKSxcbiAgICAgICAgICAgICAgbmFtZXMgPSBfZ2V0UGFyYW1zLm5hbWVzLFxuICAgICAgICAgICAgICBvcHRpb25zID0gX2dldFBhcmFtcy5vcHRpb25zO1xuXG4gICAgICAgICAgdmFyIF9nZXRQYXJhbXMyID0gKDAsIF91dGlscy5nZXRQYXJhbXMpKG5zLCBvcHQsIGNiKSxcbiAgICAgICAgICAgICAgY2FsbGJhY2sgPSBfZ2V0UGFyYW1zMi5jYWxsYmFjaztcblxuICAgICAgICAgIGlmICghY2FsbGJhY2sgfHwgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgb2xkQ2IgPSBjYWxsYmFjaztcbiAgICAgICAgICAgIGNhbGxiYWNrID0gZnVuY3Rpb24gY2FsbGJhY2soZXJyb3JzLCB2YWx1ZXMpIHtcbiAgICAgICAgICAgICAgaWYgKG9sZENiKSB7XG4gICAgICAgICAgICAgICAgb2xkQ2IoZXJyb3JzLCB2YWx1ZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoeyBlcnJvcnM6IGVycm9ycywgdmFsdWVzOiB2YWx1ZXMgfSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgZmllbGROYW1lcyA9IG5hbWVzID8gX3RoaXM4LmZpZWxkc1N0b3JlLmdldFZhbGlkRmllbGRzRnVsbE5hbWUobmFtZXMpIDogX3RoaXM4LmZpZWxkc1N0b3JlLmdldFZhbGlkRmllbGRzTmFtZSgpO1xuICAgICAgICAgIHZhciBmaWVsZHMgPSBmaWVsZE5hbWVzLmZpbHRlcihmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgdmFyIGZpZWxkTWV0YSA9IF90aGlzOC5maWVsZHNTdG9yZS5nZXRGaWVsZE1ldGEobmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gKDAsIF91dGlscy5oYXNSdWxlcykoZmllbGRNZXRhLnZhbGlkYXRlKTtcbiAgICAgICAgICB9KS5tYXAoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHZhciBmaWVsZCA9IF90aGlzOC5maWVsZHNTdG9yZS5nZXRGaWVsZChuYW1lKTtcbiAgICAgICAgICAgIGZpZWxkLnZhbHVlID0gX3RoaXM4LmZpZWxkc1N0b3JlLmdldEZpZWxkVmFsdWUobmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFmaWVsZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCBfdGhpczguZmllbGRzU3RvcmUuZ2V0RmllbGRzVmFsdWUoZmllbGROYW1lcykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoISgnZmlyc3RGaWVsZHMnIGluIG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBvcHRpb25zLmZpcnN0RmllbGRzID0gZmllbGROYW1lcy5maWx0ZXIoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgdmFyIGZpZWxkTWV0YSA9IF90aGlzOC5maWVsZHNTdG9yZS5nZXRGaWVsZE1ldGEobmFtZSk7XG4gICAgICAgICAgICAgIHJldHVybiAhIWZpZWxkTWV0YS52YWxpZGF0ZUZpcnN0O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIF90aGlzOC52YWxpZGF0ZUZpZWxkc0ludGVybmFsKGZpZWxkcywge1xuICAgICAgICAgICAgZmllbGROYW1lczogZmllbGROYW1lcyxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgICAgICAgICB9LCBjYWxsYmFjayk7XG4gICAgICAgIH0pO1xuICAgICAgICBwZW5kaW5nWydjYXRjaCddKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBpZiAoY29uc29sZS5lcnJvciAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGVuZGluZztcbiAgICAgIH0sXG4gICAgICBpc1N1Ym1pdHRpbmc6IGZ1bmN0aW9uIGlzU3VibWl0dGluZygpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0Jykge1xuICAgICAgICAgICgwLCBfd2FybmluZzJbJ2RlZmF1bHQnXSkoZmFsc2UsICdgaXNTdWJtaXR0aW5nYCBpcyBkZXByZWNhdGVkLiAnICsgXCJBY3R1YWxseSwgaXQncyBtb3JlIGNvbnZlbmllbnQgdG8gaGFuZGxlIHN1Ym1pdHRpbmcgc3RhdHVzIGJ5IHlvdXJzZWxmLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5zdWJtaXR0aW5nO1xuICAgICAgfSxcbiAgICAgIHN1Ym1pdDogZnVuY3Rpb24gc3VibWl0KGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpczkgPSB0aGlzO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICAgICAgICAoMCwgX3dhcm5pbmcyWydkZWZhdWx0J10pKGZhbHNlLCAnYHN1Ym1pdGAgaXMgZGVwcmVjYXRlZC4gJyArIFwiQWN0dWFsbHksIGl0J3MgbW9yZSBjb252ZW5pZW50IHRvIGhhbmRsZSBzdWJtaXR0aW5nIHN0YXR1cyBieSB5b3Vyc2VsZi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZuID0gZnVuY3Rpb24gZm4oKSB7XG4gICAgICAgICAgX3RoaXM5LnNldFN0YXRlKHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHN1Ym1pdHRpbmc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGNhbGxiYWNrKGZuKTtcbiAgICAgIH0sXG4gICAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICB3cmFwcGVkQ29tcG9uZW50UmVmID0gX3Byb3BzLndyYXBwZWRDb21wb25lbnRSZWYsXG4gICAgICAgICAgICByZXN0UHJvcHMgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzM1snZGVmYXVsdCddKShfcHJvcHMsIFsnd3JhcHBlZENvbXBvbmVudFJlZiddKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgICAgIHZhciBmb3JtUHJvcHMgPSAoMCwgX2RlZmluZVByb3BlcnR5M1snZGVmYXVsdCddKSh7fSwgZm9ybVByb3BOYW1lLCB0aGlzLmdldEZvcm0oKSk7XG4gICAgICAgIGlmICh3aXRoUmVmKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0Jykge1xuICAgICAgICAgICAgKDAsIF93YXJuaW5nMlsnZGVmYXVsdCddKShmYWxzZSwgJ2B3aXRoUmVmYCBpcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGB3cmFwcGVkQ29tcG9uZW50UmVmYCBpbnN0ZWFkLiAnICsgJ1NlZTogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC9mb3JtI25vdGUtdXNlLXdyYXBwZWRjb21wb25lbnRyZWYtaW5zdGVhZC1vZi13aXRocmVmLWFmdGVyLXJjLWZvcm0xNDAnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9ybVByb3BzLnJlZiA9ICd3cmFwcGVkQ29tcG9uZW50JztcbiAgICAgICAgfSBlbHNlIGlmICh3cmFwcGVkQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgZm9ybVByb3BzLnJlZiA9IHdyYXBwZWRDb21wb25lbnRSZWY7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByb3BzID0gbWFwUHJvcHMuY2FsbCh0aGlzLCAoMCwgX2V4dGVuZHM2WydkZWZhdWx0J10pKHt9LCBmb3JtUHJvcHMsIHJlc3RQcm9wcykpO1xuICAgICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoV3JhcHBlZENvbXBvbmVudCwgcHJvcHMpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgwLCBfdXRpbHMuYXJndW1lbnRDb250YWluZXIpKCgwLCBfdW5zYWZlTGlmZWN5Y2xlc1BvbHlmaWxsMlsnZGVmYXVsdCddKShGb3JtKSwgV3JhcHBlZENvbXBvbmVudCk7XG4gIH07XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGNyZWF0ZUJhc2VGb3JtO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX3V0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5cbnZhciB1dGlsID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoX3V0aWwpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGVsc2UgeyB2YXIgbmV3T2JqID0ge307IGlmIChvYmogIT0gbnVsbCkgeyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gbmV3T2JqWydkZWZhdWx0J10gPSBvYmo7IHJldHVybiBuZXdPYmo7IH0gfVxuXG4vKipcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIHJlcXVpcmVkIGZpZWxkcy5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuZnVuY3Rpb24gcmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKSB7XG4gIGlmIChydWxlLnJlcXVpcmVkICYmICghc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpIHx8IHV0aWwuaXNFbXB0eVZhbHVlKHZhbHVlLCB0eXBlIHx8IHJ1bGUudHlwZSkpKSB7XG4gICAgZXJyb3JzLnB1c2godXRpbC5mb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5yZXF1aXJlZCwgcnVsZS5mdWxsRmllbGQpKTtcbiAgfVxufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSByZXF1aXJlZDsiLCJ2YXIgYmFzZVNldCA9IHJlcXVpcmUoJy4vX2Jhc2VTZXQnKTtcblxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBhdCBgcGF0aGAgb2YgYG9iamVjdGAuIElmIGEgcG9ydGlvbiBvZiBgcGF0aGAgZG9lc24ndCBleGlzdCxcbiAqIGl0J3MgY3JlYXRlZC4gQXJyYXlzIGFyZSBjcmVhdGVkIGZvciBtaXNzaW5nIGluZGV4IHByb3BlcnRpZXMgd2hpbGUgb2JqZWN0c1xuICogYXJlIGNyZWF0ZWQgZm9yIGFsbCBvdGhlciBtaXNzaW5nIHByb3BlcnRpZXMuIFVzZSBgXy5zZXRXaXRoYCB0byBjdXN0b21pemVcbiAqIGBwYXRoYCBjcmVhdGlvbi5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuNy4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIHNldC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogW3sgJ2InOiB7ICdjJzogMyB9IH1dIH07XG4gKlxuICogXy5zZXQob2JqZWN0LCAnYVswXS5iLmMnLCA0KTtcbiAqIGNvbnNvbGUubG9nKG9iamVjdC5hWzBdLmIuYyk7XG4gKiAvLyA9PiA0XG4gKlxuICogXy5zZXQob2JqZWN0LCBbJ3gnLCAnMCcsICd5JywgJ3onXSwgNSk7XG4gKiBjb25zb2xlLmxvZyhvYmplY3QueFswXS55LnopO1xuICogLy8gPT4gNVxuICovXG5mdW5jdGlvbiBzZXQob2JqZWN0LCBwYXRoLCB2YWx1ZSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyBvYmplY3QgOiBiYXNlU2V0KG9iamVjdCwgcGF0aCwgdmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2V4dGVuZHMyID0gcmVxdWlyZShcImJhYmVsLXJ1bnRpbWUvaGVscGVycy9leHRlbmRzXCIpO1xuXG52YXIgX2V4dGVuZHMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0ZW5kczIpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IHJlcXVpcmUoXCJiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2tcIik7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2szID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NDYWxsQ2hlY2syKTtcblxuZXhwb3J0cy5pc0Zvcm1GaWVsZCA9IGlzRm9ybUZpZWxkO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBjcmVhdGVGb3JtRmllbGQ7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG52YXIgRmllbGQgPSBmdW5jdGlvbiBGaWVsZChmaWVsZHMpIHtcbiAgKDAsIF9jbGFzc0NhbGxDaGVjazNbXCJkZWZhdWx0XCJdKSh0aGlzLCBGaWVsZCk7XG5cbiAgKDAsIF9leHRlbmRzM1tcImRlZmF1bHRcIl0pKHRoaXMsIGZpZWxkcyk7XG59O1xuXG5mdW5jdGlvbiBpc0Zvcm1GaWVsZChvYmopIHtcbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIEZpZWxkO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGb3JtRmllbGQoZmllbGQpIHtcbiAgaWYgKGlzRm9ybUZpZWxkKGZpZWxkKSkge1xuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuICByZXR1cm4gbmV3IEZpZWxkKGZpZWxkKTtcbn0iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2NyZWF0ZVJlYWN0Q29udGV4dCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBSb3dDb250ZXh0ID0gKDAsIF9jcmVhdGVSZWFjdENvbnRleHRbXCJkZWZhdWx0XCJdKSh7fSk7XG52YXIgX2RlZmF1bHQgPSBSb3dDb250ZXh0O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCIvKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3IgaXRlcmF0aW5nIG92ZXIgYSBjb2xsZWN0aW9uXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb25cbiAqIEBwYXJhbSBmblxuICovXG5mdW5jdGlvbiBlYWNoKGNvbGxlY3Rpb24sIGZuKSB7XG4gICAgdmFyIGkgICAgICA9IDAsXG4gICAgICAgIGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuICAgICAgICBjb250O1xuXG4gICAgZm9yKGk7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBjb250ID0gZm4oY29sbGVjdGlvbltpXSwgaSk7XG4gICAgICAgIGlmKGNvbnQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBicmVhazsgLy9hbGxvdyBlYXJseSBleGl0XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRhcmdldCBvYmplY3QgaXMgYW4gYXJyYXlcbiAqXG4gKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdW5kZXIgdGVzdFxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiBhcnJheSwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXkodGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkodGFyZ2V0KSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGFyZ2V0IG9iamVjdCBpcyBhIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHVuZGVyIHRlc3RcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgZnVuY3Rpb24sIGZhbHNlIG90aGVyd2lzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHRhcmdldCkge1xuICAgIHJldHVybiB0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0Z1bmN0aW9uIDogaXNGdW5jdGlvbixcbiAgICBpc0FycmF5IDogaXNBcnJheSxcbiAgICBlYWNoIDogZWFjaFxufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5GSUVMRF9EQVRBX1BST1AgPSBleHBvcnRzLkZJRUxEX01FVEFfUFJPUCA9IHZvaWQgMDtcbnZhciBGSUVMRF9NRVRBX1BST1AgPSAnZGF0YS1fX21ldGEnO1xuZXhwb3J0cy5GSUVMRF9NRVRBX1BST1AgPSBGSUVMRF9NRVRBX1BST1A7XG52YXIgRklFTERfREFUQV9QUk9QID0gJ2RhdGEtX19maWVsZCc7XG5leHBvcnRzLkZJRUxEX0RBVEFfUFJPUCA9IEZJRUxEX0RBVEFfUFJPUDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX2NyZWF0ZVJlYWN0Q29udGV4dCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBGb3JtQ29udGV4dCA9ICgwLCBfY3JlYXRlUmVhY3RDb250ZXh0W1wiZGVmYXVsdFwiXSkoe1xuICBsYWJlbEFsaWduOiAncmlnaHQnLFxuICB2ZXJ0aWNhbDogZmFsc2Vcbn0pO1xudmFyIF9kZWZhdWx0ID0gRm9ybUNvbnRleHQ7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsInZhciBjYWNoZWQ7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxCYXJTaXplKGZyZXNoKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBpZiAoZnJlc2ggfHwgY2FjaGVkID09PSB1bmRlZmluZWQpIHtcbiAgICB2YXIgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBpbm5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICBpbm5lci5zdHlsZS5oZWlnaHQgPSAnMjAwcHgnO1xuICAgIHZhciBvdXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHZhciBvdXRlclN0eWxlID0gb3V0ZXIuc3R5bGU7XG4gICAgb3V0ZXJTdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgb3V0ZXJTdHlsZS50b3AgPSAwO1xuICAgIG91dGVyU3R5bGUubGVmdCA9IDA7XG4gICAgb3V0ZXJTdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgIG91dGVyU3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIG91dGVyU3R5bGUud2lkdGggPSAnMjAwcHgnO1xuICAgIG91dGVyU3R5bGUuaGVpZ2h0ID0gJzE1MHB4JztcbiAgICBvdXRlclN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgb3V0ZXIuYXBwZW5kQ2hpbGQoaW5uZXIpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXIpO1xuICAgIHZhciB3aWR0aENvbnRhaW5lZCA9IGlubmVyLm9mZnNldFdpZHRoO1xuICAgIG91dGVyLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG4gICAgdmFyIHdpZHRoU2Nyb2xsID0gaW5uZXIub2Zmc2V0V2lkdGg7XG5cbiAgICBpZiAod2lkdGhDb250YWluZWQgPT09IHdpZHRoU2Nyb2xsKSB7XG4gICAgICB3aWR0aFNjcm9sbCA9IG91dGVyLmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQob3V0ZXIpO1xuICAgIGNhY2hlZCA9IHdpZHRoQ29udGFpbmVkIC0gd2lkdGhTY3JvbGw7XG4gIH1cblxuICByZXR1cm4gY2FjaGVkO1xufSIsIi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5cbi8qKlxuICogVGhpcyBpcyBhIHN5bnRhY3RpYyBzdWdhciBmb3IgYGNvbHVtbnNgIHByb3AuXG4gKiBTbyBIT0Mgd2lsbCBub3Qgd29yayBvbiB0aGlzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5mdW5jdGlvbiBDb2x1bW5Hcm91cChfKSB7XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2x1bW5Hcm91cDsiLCIvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuXG4vKipcbiAqIFRoaXMgaXMgYSBzeW50YWN0aWMgc3VnYXIgZm9yIGBjb2x1bW5zYCBwcm9wLlxuICogU28gSE9DIHdpbGwgbm90IHdvcmsgb24gdGhpcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZnVuY3Rpb24gQ29sdW1uKF8pIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbHVtbjsiLCJpbXBvcnQgX3R5cGVvZiBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mXCI7XG52YXIgSU5URVJOQUxfS0VZX1BSRUZJWCA9ICdSQ19UQUJMRV9LRVknO1xuXG5mdW5jdGlvbiB0b0FycmF5KGFycikge1xuICBpZiAoYXJyID09PSB1bmRlZmluZWQgfHwgYXJyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXJyKSA/IGFyciA6IFthcnJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0aFZhbHVlKHJlY29yZCwgcGF0aCkge1xuICAvLyBTa2lwIGlmIHBhdGggaXMgZW1wdHlcbiAgaWYgKCFwYXRoICYmIHR5cGVvZiBwYXRoICE9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiByZWNvcmQ7XG4gIH1cblxuICB2YXIgcGF0aExpc3QgPSB0b0FycmF5KHBhdGgpO1xuICB2YXIgY3VycmVudCA9IHJlY29yZDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHBhdGhMaXN0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgcHJvcCA9IHBhdGhMaXN0W2ldO1xuICAgIGN1cnJlbnQgPSBjdXJyZW50W3Byb3BdO1xuICB9XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uc0tleShjb2x1bW5zKSB7XG4gIHZhciBjb2x1bW5LZXlzID0gW107XG4gIHZhciBrZXlzID0ge307XG4gIGNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgdmFyIF9yZWYgPSBjb2x1bW4gfHwge30sXG4gICAgICAgIGtleSA9IF9yZWYua2V5LFxuICAgICAgICBkYXRhSW5kZXggPSBfcmVmLmRhdGFJbmRleDtcblxuICAgIHZhciBtZXJnZWRLZXkgPSBrZXkgfHwgdG9BcnJheShkYXRhSW5kZXgpLmpvaW4oJy0nKSB8fCBJTlRFUk5BTF9LRVlfUFJFRklYO1xuXG4gICAgd2hpbGUgKGtleXNbbWVyZ2VkS2V5XSkge1xuICAgICAgbWVyZ2VkS2V5ID0gXCJcIi5jb25jYXQobWVyZ2VkS2V5LCBcIl9uZXh0XCIpO1xuICAgIH1cblxuICAgIGtleXNbbWVyZ2VkS2V5XSA9IHRydWU7XG4gICAgY29sdW1uS2V5cy5wdXNoKG1lcmdlZEtleSk7XG4gIH0pO1xuICByZXR1cm4gY29sdW1uS2V5cztcbn1cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZU9iamVjdCgpIHtcbiAgdmFyIG1lcmdlZCA9IHt9O1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuXG4gIGZ1bmN0aW9uIGZpbGxQcm9wcyhvYmosIGNsb25lKSB7XG4gICAgaWYgKGNsb25lKSB7XG4gICAgICBPYmplY3Qua2V5cyhjbG9uZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGNsb25lW2tleV07XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIF90eXBlb2YodmFsdWUpID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIG9ialtrZXldID0gb2JqW2tleV0gfHwge307XG4gICAgICAgICAgZmlsbFByb3BzKG9ialtrZXldLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIC8qIGVzbGludC1lbmFibGUgKi9cblxuXG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBvYmplY3RzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIG9iamVjdHNbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKGNsb25lKSB7XG4gICAgZmlsbFByb3BzKG1lcmdlZCwgY2xvbmUpO1xuICB9KTtcbiAgcmV0dXJuIG1lcmdlZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdW5kZWZpbmVkO1xufSIsImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgc3VwcG9ydFJlZiB9IGZyb20gXCJyYy11dGlsL2VzL3JlZlwiO1xuaW1wb3J0IHsgZ2V0UGF0aFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdmFsdWVVdGlsJztcblxuZnVuY3Rpb24gaXNSZW5kZXJDZWxsKGRhdGEpIHtcbiAgcmV0dXJuIGRhdGEgJiYgX3R5cGVvZihkYXRhKSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZGF0YSkgJiYgISAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoZGF0YSk7XG59XG5cbmZ1bmN0aW9uIGlzUmVmQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICAvLyBTdHJpbmcgdGFnIGNvbXBvbmVudCBhbHNvIHN1cHBvcnQgcmVmXG4gIGlmICh0eXBlb2YgY29tcG9uZW50ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHN1cHBvcnRSZWYoY29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gQ2VsbChfcmVmLCByZWYpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBwcmVmaXhDbHMgPSBfcmVmLnByZWZpeENscyxcbiAgICAgIGNsYXNzTmFtZSA9IF9yZWYuY2xhc3NOYW1lLFxuICAgICAgcmVjb3JkID0gX3JlZi5yZWNvcmQsXG4gICAgICBpbmRleCA9IF9yZWYuaW5kZXgsXG4gICAgICBkYXRhSW5kZXggPSBfcmVmLmRhdGFJbmRleCxcbiAgICAgIHJlbmRlciA9IF9yZWYucmVuZGVyLFxuICAgICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgX3JlZiRjb21wb25lbnQgPSBfcmVmLmNvbXBvbmVudCxcbiAgICAgIENvbXBvbmVudCA9IF9yZWYkY29tcG9uZW50ID09PSB2b2lkIDAgPyAndGQnIDogX3JlZiRjb21wb25lbnQsXG4gICAgICBjb2xTcGFuID0gX3JlZi5jb2xTcGFuLFxuICAgICAgcm93U3BhbiA9IF9yZWYucm93U3BhbixcbiAgICAgIGZpeExlZnQgPSBfcmVmLmZpeExlZnQsXG4gICAgICBmaXhSaWdodCA9IF9yZWYuZml4UmlnaHQsXG4gICAgICBmaXJzdEZpeExlZnQgPSBfcmVmLmZpcnN0Rml4TGVmdCxcbiAgICAgIGxhc3RGaXhMZWZ0ID0gX3JlZi5sYXN0Rml4TGVmdCxcbiAgICAgIGZpcnN0Rml4UmlnaHQgPSBfcmVmLmZpcnN0Rml4UmlnaHQsXG4gICAgICBsYXN0Rml4UmlnaHQgPSBfcmVmLmxhc3RGaXhSaWdodCxcbiAgICAgIGFwcGVuZE5vZGUgPSBfcmVmLmFwcGVuZE5vZGUsXG4gICAgICBfcmVmJGFkZGl0aW9uYWxQcm9wcyA9IF9yZWYuYWRkaXRpb25hbFByb3BzLFxuICAgICAgYWRkaXRpb25hbFByb3BzID0gX3JlZiRhZGRpdGlvbmFsUHJvcHMgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRhZGRpdGlvbmFsUHJvcHMsXG4gICAgICBlbGxpcHNpcyA9IF9yZWYuZWxsaXBzaXMsXG4gICAgICBhbGlnbiA9IF9yZWYuYWxpZ24sXG4gICAgICByb3dUeXBlID0gX3JlZi5yb3dUeXBlLFxuICAgICAgaXNTdGlja3kgPSBfcmVmLmlzU3RpY2t5O1xuICB2YXIgY2VsbFByZWZpeENscyA9IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2VsbFwiKTsgLy8gPT09PT09PT09PT09PT09PT09PT0gQ2hpbGQgTm9kZSA9PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBjZWxsUHJvcHM7XG4gIHZhciBjaGlsZE5vZGU7XG5cbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgY2hpbGROb2RlID0gY2hpbGRyZW47XG4gIH0gZWxzZSB7XG4gICAgdmFyIHZhbHVlID0gZ2V0UGF0aFZhbHVlKHJlY29yZCwgZGF0YUluZGV4KTsgLy8gQ3VzdG9taXplIHJlbmRlciBub2RlXG5cbiAgICBjaGlsZE5vZGUgPSB2YWx1ZTtcblxuICAgIGlmIChyZW5kZXIpIHtcbiAgICAgIHZhciByZW5kZXJEYXRhID0gcmVuZGVyKHZhbHVlLCByZWNvcmQsIGluZGV4KTtcblxuICAgICAgaWYgKGlzUmVuZGVyQ2VsbChyZW5kZXJEYXRhKSkge1xuICAgICAgICBjaGlsZE5vZGUgPSByZW5kZXJEYXRhLmNoaWxkcmVuO1xuICAgICAgICBjZWxsUHJvcHMgPSByZW5kZXJEYXRhLnByb3BzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2hpbGROb2RlID0gcmVuZGVyRGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gTm90IGNyYXNoIGlmIGZpbmFsIGBjaGlsZE5vZGVgIGlzIG5vdCB2YWxpZGF0ZSBSZWFjdE5vZGVcblxuXG4gIGlmIChfdHlwZW9mKGNoaWxkTm9kZSkgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGNoaWxkTm9kZSkgJiYgISAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSkge1xuICAgIGNoaWxkTm9kZSA9IG51bGw7XG4gIH1cblxuICBpZiAoZWxsaXBzaXMgJiYgKGxhc3RGaXhMZWZ0IHx8IGZpcnN0Rml4UmlnaHQpKSB7XG4gICAgY2hpbGROb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItY29udGVudFwiKVxuICAgIH0sIGNoaWxkTm9kZSk7XG4gIH1cblxuICB2YXIgX3JlZjIgPSBjZWxsUHJvcHMgfHwge30sXG4gICAgICBjZWxsQ29sU3BhbiA9IF9yZWYyLmNvbFNwYW4sXG4gICAgICBjZWxsUm93U3BhbiA9IF9yZWYyLnJvd1NwYW4sXG4gICAgICBjZWxsU3R5bGUgPSBfcmVmMi5zdHlsZSxcbiAgICAgIGNlbGxDbGFzc05hbWUgPSBfcmVmMi5jbGFzc05hbWUsXG4gICAgICByZXN0Q2VsbFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYyLCBbXCJjb2xTcGFuXCIsIFwicm93U3BhblwiLCBcInN0eWxlXCIsIFwiY2xhc3NOYW1lXCJdKTtcblxuICB2YXIgbWVyZ2VkQ29sU3BhbiA9IGNlbGxDb2xTcGFuICE9PSB1bmRlZmluZWQgPyBjZWxsQ29sU3BhbiA6IGNvbFNwYW47XG4gIHZhciBtZXJnZWRSb3dTcGFuID0gY2VsbFJvd1NwYW4gIT09IHVuZGVmaW5lZCA/IGNlbGxSb3dTcGFuIDogcm93U3BhbjtcblxuICBpZiAobWVyZ2VkQ29sU3BhbiA9PT0gMCB8fCBtZXJnZWRSb3dTcGFuID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PSBGaXhlZCA9PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgdmFyIGZpeGVkU3R5bGUgPSB7fTtcbiAgdmFyIGlzRml4TGVmdCA9IHR5cGVvZiBmaXhMZWZ0ID09PSAnbnVtYmVyJztcbiAgdmFyIGlzRml4UmlnaHQgPSB0eXBlb2YgZml4UmlnaHQgPT09ICdudW1iZXInO1xuXG4gIGlmIChpc0ZpeExlZnQpIHtcbiAgICBmaXhlZFN0eWxlLnBvc2l0aW9uID0gJ3N0aWNreSc7XG4gICAgZml4ZWRTdHlsZS5sZWZ0ID0gZml4TGVmdDtcbiAgfVxuXG4gIGlmIChpc0ZpeFJpZ2h0KSB7XG4gICAgZml4ZWRTdHlsZS5wb3NpdGlvbiA9ICdzdGlja3knO1xuICAgIGZpeGVkU3R5bGUucmlnaHQgPSBmaXhSaWdodDtcbiAgfSAvLyA9PT09PT09PT09PT09PT09PT09PT09IEFsaWduID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICB2YXIgYWxpZ25TdHlsZSA9IHt9O1xuXG4gIGlmIChhbGlnbikge1xuICAgIGFsaWduU3R5bGUudGV4dEFsaWduID0gYWxpZ247XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgdmFyIHRpdGxlO1xuICB2YXIgZWxsaXBzaXNDb25maWcgPSBlbGxpcHNpcyA9PT0gdHJ1ZSA/IHtcbiAgICBzaG93VGl0bGU6IHRydWVcbiAgfSA6IGVsbGlwc2lzO1xuXG4gIGlmIChlbGxpcHNpc0NvbmZpZyAmJiAoZWxsaXBzaXNDb25maWcuc2hvd1RpdGxlIHx8IHJvd1R5cGUgPT09ICdoZWFkZXInKSkge1xuICAgIGlmICh0eXBlb2YgY2hpbGROb2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGROb2RlID09PSAnbnVtYmVyJykge1xuICAgICAgdGl0bGUgPSBjaGlsZE5vZGUudG9TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGROb2RlKSAmJiB0eXBlb2YgY2hpbGROb2RlLnByb3BzLmNoaWxkcmVuID09PSAnc3RyaW5nJykge1xuICAgICAgdGl0bGUgPSBjaGlsZE5vZGUucHJvcHMuY2hpbGRyZW47XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbXBvbmVudFByb3BzID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe1xuICAgIHRpdGxlOiB0aXRsZVxuICB9LCByZXN0Q2VsbFByb3BzKSwgYWRkaXRpb25hbFByb3BzKSwge30sIHtcbiAgICBjb2xTcGFuOiBtZXJnZWRDb2xTcGFuICYmIG1lcmdlZENvbFNwYW4gIT09IDEgPyBtZXJnZWRDb2xTcGFuIDogbnVsbCxcbiAgICByb3dTcGFuOiBtZXJnZWRSb3dTcGFuICYmIG1lcmdlZFJvd1NwYW4gIT09IDEgPyBtZXJnZWRSb3dTcGFuIDogbnVsbCxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2VsbFByZWZpeENscywgY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtbGVmdFwiKSwgaXNGaXhMZWZ0KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtbGVmdC1maXJzdFwiKSwgZmlyc3RGaXhMZWZ0KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtbGVmdC1sYXN0XCIpLCBsYXN0Rml4TGVmdCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItZml4LXJpZ2h0XCIpLCBpc0ZpeFJpZ2h0KSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChjZWxsUHJlZml4Q2xzLCBcIi1maXgtcmlnaHQtZmlyc3RcIiksIGZpcnN0Rml4UmlnaHQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWZpeC1yaWdodC1sYXN0XCIpLCBsYXN0Rml4UmlnaHQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWVsbGlwc2lzXCIpLCBlbGxpcHNpcyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQoY2VsbFByZWZpeENscywgXCItd2l0aC1hcHBlbmRcIiksIGFwcGVuZE5vZGUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KGNlbGxQcmVmaXhDbHMsIFwiLWZpeC1zdGlja3lcIiksIChpc0ZpeExlZnQgfHwgaXNGaXhSaWdodCkgJiYgaXNTdGlja3kpLCBfY2xhc3NOYW1lcyksIGFkZGl0aW9uYWxQcm9wcy5jbGFzc05hbWUsIGNlbGxDbGFzc05hbWUpLFxuICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBhZGRpdGlvbmFsUHJvcHMuc3R5bGUpLCBhbGlnblN0eWxlKSwgZml4ZWRTdHlsZSksIGNlbGxTdHlsZSksXG4gICAgcmVmOiBpc1JlZkNvbXBvbmVudChDb21wb25lbnQpID8gcmVmIDogbnVsbFxuICB9KTtcblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBjb21wb25lbnRQcm9wcywgYXBwZW5kTm9kZSwgY2hpbGROb2RlKTtcbn1cblxudmFyIFJlZkNlbGwgPSAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihDZWxsKTtcblJlZkNlbGwuZGlzcGxheU5hbWUgPSAnQ2VsbCc7XG52YXIgTWVtb0NlbGwgPSAvKiNfX1BVUkVfXyovUmVhY3QubWVtbyhSZWZDZWxsLCBmdW5jdGlvbiAocHJldiwgbmV4dCkge1xuICBpZiAobmV4dC5zaG91bGRDZWxsVXBkYXRlKSB7XG4gICAgcmV0dXJuICFuZXh0LnNob3VsZENlbGxVcGRhdGUobmV4dC5yZWNvcmQsIHByZXYucmVjb3JkKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgTWVtb0NlbGw7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFRhYmxlQ29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGRlZmF1bHQgVGFibGVDb250ZXh0OyIsImV4cG9ydCBmdW5jdGlvbiBnZXRDZWxsRml4ZWRJbmZvKGNvbFN0YXJ0LCBjb2xFbmQsIGNvbHVtbnMsIHN0aWNreU9mZnNldHMsIGRpcmVjdGlvbikge1xuICB2YXIgc3RhcnRDb2x1bW4gPSBjb2x1bW5zW2NvbFN0YXJ0XSB8fCB7fTtcbiAgdmFyIGVuZENvbHVtbiA9IGNvbHVtbnNbY29sRW5kXSB8fCB7fTtcbiAgdmFyIGZpeExlZnQ7XG4gIHZhciBmaXhSaWdodDtcblxuICBpZiAoc3RhcnRDb2x1bW4uZml4ZWQgPT09ICdsZWZ0Jykge1xuICAgIGZpeExlZnQgPSBzdGlja3lPZmZzZXRzLmxlZnRbY29sU3RhcnRdO1xuICB9IGVsc2UgaWYgKGVuZENvbHVtbi5maXhlZCA9PT0gJ3JpZ2h0Jykge1xuICAgIGZpeFJpZ2h0ID0gc3RpY2t5T2Zmc2V0cy5yaWdodFtjb2xFbmRdO1xuICB9XG5cbiAgdmFyIGxhc3RGaXhMZWZ0ID0gZmFsc2U7XG4gIHZhciBmaXJzdEZpeFJpZ2h0ID0gZmFsc2U7XG4gIHZhciBsYXN0Rml4UmlnaHQgPSBmYWxzZTtcbiAgdmFyIGZpcnN0Rml4TGVmdCA9IGZhbHNlO1xuICB2YXIgbmV4dENvbHVtbiA9IGNvbHVtbnNbY29sRW5kICsgMV07XG4gIHZhciBwcmV2Q29sdW1uID0gY29sdW1uc1tjb2xTdGFydCAtIDFdO1xuXG4gIGlmIChkaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgaWYgKGZpeExlZnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIHByZXZGaXhMZWZ0ID0gcHJldkNvbHVtbiAmJiBwcmV2Q29sdW1uLmZpeGVkID09PSAnbGVmdCc7XG4gICAgICBmaXJzdEZpeExlZnQgPSAhcHJldkZpeExlZnQ7XG4gICAgfSBlbHNlIGlmIChmaXhSaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgbmV4dEZpeFJpZ2h0ID0gbmV4dENvbHVtbiAmJiBuZXh0Q29sdW1uLmZpeGVkID09PSAncmlnaHQnO1xuICAgICAgbGFzdEZpeFJpZ2h0ID0gIW5leHRGaXhSaWdodDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZml4TGVmdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIG5leHRGaXhMZWZ0ID0gbmV4dENvbHVtbiAmJiBuZXh0Q29sdW1uLmZpeGVkID09PSAnbGVmdCc7XG4gICAgbGFzdEZpeExlZnQgPSAhbmV4dEZpeExlZnQ7XG4gIH0gZWxzZSBpZiAoZml4UmlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBwcmV2Rml4UmlnaHQgPSBwcmV2Q29sdW1uICYmIHByZXZDb2x1bW4uZml4ZWQgPT09ICdyaWdodCc7XG4gICAgZmlyc3RGaXhSaWdodCA9ICFwcmV2Rml4UmlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpeExlZnQ6IGZpeExlZnQsXG4gICAgZml4UmlnaHQ6IGZpeFJpZ2h0LFxuICAgIGxhc3RGaXhMZWZ0OiBsYXN0Rml4TGVmdCxcbiAgICBmaXJzdEZpeFJpZ2h0OiBmaXJzdEZpeFJpZ2h0LFxuICAgIGxhc3RGaXhSaWdodDogbGFzdEZpeFJpZ2h0LFxuICAgIGZpcnN0Rml4TGVmdDogZmlyc3RGaXhMZWZ0LFxuICAgIGlzU3RpY2t5OiBzdGlja3lPZmZzZXRzLmlzU3RpY2t5XG4gIH07XG59IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ2VsbCBmcm9tICcuLi9DZWxsJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IHsgZ2V0Q2VsbEZpeGVkSW5mbyB9IGZyb20gJy4uL3V0aWxzL2ZpeFV0aWwnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSB9IGZyb20gJy4uL3V0aWxzL3ZhbHVlVXRpbCc7XG5cbmZ1bmN0aW9uIEhlYWRlclJvdyhfcmVmKSB7XG4gIHZhciBjZWxscyA9IF9yZWYuY2VsbHMsXG4gICAgICBzdGlja3lPZmZzZXRzID0gX3JlZi5zdGlja3lPZmZzZXRzLFxuICAgICAgZmxhdHRlbkNvbHVtbnMgPSBfcmVmLmZsYXR0ZW5Db2x1bW5zLFxuICAgICAgUm93Q29tcG9uZW50ID0gX3JlZi5yb3dDb21wb25lbnQsXG4gICAgICBDZWxsQ29tcG9uZW50ID0gX3JlZi5jZWxsQ29tcG9uZW50LFxuICAgICAgb25IZWFkZXJSb3cgPSBfcmVmLm9uSGVhZGVyUm93LFxuICAgICAgaW5kZXggPSBfcmVmLmluZGV4O1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoVGFibGVDb250ZXh0KSxcbiAgICAgIHByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscyxcbiAgICAgIGRpcmVjdGlvbiA9IF9SZWFjdCR1c2VDb250ZXh0LmRpcmVjdGlvbjtcblxuICB2YXIgcm93UHJvcHM7XG5cbiAgaWYgKG9uSGVhZGVyUm93KSB7XG4gICAgcm93UHJvcHMgPSBvbkhlYWRlclJvdyhjZWxscy5tYXAoZnVuY3Rpb24gKGNlbGwpIHtcbiAgICAgIHJldHVybiBjZWxsLmNvbHVtbjtcbiAgICB9KSwgaW5kZXgpO1xuICB9XG5cbiAgdmFyIGNvbHVtbnNLZXkgPSBnZXRDb2x1bW5zS2V5KGNlbGxzLm1hcChmdW5jdGlvbiAoY2VsbCkge1xuICAgIHJldHVybiBjZWxsLmNvbHVtbjtcbiAgfSkpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUm93Q29tcG9uZW50LCByb3dQcm9wcywgY2VsbHMubWFwKGZ1bmN0aW9uIChjZWxsLCBjZWxsSW5kZXgpIHtcbiAgICB2YXIgY29sdW1uID0gY2VsbC5jb2x1bW47XG4gICAgdmFyIGZpeGVkSW5mbyA9IGdldENlbGxGaXhlZEluZm8oY2VsbC5jb2xTdGFydCwgY2VsbC5jb2xFbmQsIGZsYXR0ZW5Db2x1bW5zLCBzdGlja3lPZmZzZXRzLCBkaXJlY3Rpb24pO1xuICAgIHZhciBhZGRpdGlvbmFsUHJvcHM7XG5cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5vbkhlYWRlckNlbGwpIHtcbiAgICAgIGFkZGl0aW9uYWxQcm9wcyA9IGNlbGwuY29sdW1uLm9uSGVhZGVyQ2VsbChjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDZWxsLCBfZXh0ZW5kcyh7fSwgY2VsbCwge1xuICAgICAgZWxsaXBzaXM6IGNvbHVtbi5lbGxpcHNpcyxcbiAgICAgIGFsaWduOiBjb2x1bW4uYWxpZ24sXG4gICAgICBjb21wb25lbnQ6IENlbGxDb21wb25lbnQsXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIGtleTogY29sdW1uc0tleVtjZWxsSW5kZXhdXG4gICAgfSwgZml4ZWRJbmZvLCB7XG4gICAgICBhZGRpdGlvbmFsUHJvcHM6IGFkZGl0aW9uYWxQcm9wcyxcbiAgICAgIHJvd1R5cGU6IFwiaGVhZGVyXCJcbiAgICB9KSk7XG4gIH0pKTtcbn1cblxuSGVhZGVyUm93LmRpc3BsYXlOYW1lID0gJ0hlYWRlclJvdyc7XG5leHBvcnQgZGVmYXVsdCBIZWFkZXJSb3c7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEhlYWRlclJvdyBmcm9tICcuL0hlYWRlclJvdyc7XG5pbXBvcnQgVGFibGVDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvVGFibGVDb250ZXh0JztcblxuZnVuY3Rpb24gcGFyc2VIZWFkZXJSb3dzKHJvb3RDb2x1bW5zKSB7XG4gIHZhciByb3dzID0gW107XG5cbiAgZnVuY3Rpb24gZmlsbFJvd0NlbGxzKGNvbHVtbnMsIGNvbEluZGV4KSB7XG4gICAgdmFyIHJvd0luZGV4ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAwO1xuICAgIC8vIEluaXQgcm93c1xuICAgIHJvd3Nbcm93SW5kZXhdID0gcm93c1tyb3dJbmRleF0gfHwgW107XG4gICAgdmFyIGN1cnJlbnRDb2xJbmRleCA9IGNvbEluZGV4O1xuICAgIHZhciBjb2xTcGFucyA9IGNvbHVtbnMuZmlsdGVyKEJvb2xlYW4pLm1hcChmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgICB2YXIgY2VsbCA9IHtcbiAgICAgICAga2V5OiBjb2x1bW4ua2V5LFxuICAgICAgICBjbGFzc05hbWU6IGNvbHVtbi5jbGFzc05hbWUgfHwgJycsXG4gICAgICAgIGNoaWxkcmVuOiBjb2x1bW4udGl0bGUsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgICBjb2xTdGFydDogY3VycmVudENvbEluZGV4XG4gICAgICB9O1xuICAgICAgdmFyIGNvbFNwYW4gPSAxO1xuICAgICAgdmFyIHN1YkNvbHVtbnMgPSBjb2x1bW4uY2hpbGRyZW47XG5cbiAgICAgIGlmIChzdWJDb2x1bW5zICYmIHN1YkNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb2xTcGFuID0gZmlsbFJvd0NlbGxzKHN1YkNvbHVtbnMsIGN1cnJlbnRDb2xJbmRleCwgcm93SW5kZXggKyAxKS5yZWR1Y2UoZnVuY3Rpb24gKHRvdGFsLCBjb3VudCkge1xuICAgICAgICAgIHJldHVybiB0b3RhbCArIGNvdW50O1xuICAgICAgICB9LCAwKTtcbiAgICAgICAgY2VsbC5oYXNTdWJDb2x1bW5zID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCdjb2xTcGFuJyBpbiBjb2x1bW4pIHtcbiAgICAgICAgY29sU3BhbiA9IGNvbHVtbi5jb2xTcGFuO1xuICAgICAgfVxuXG4gICAgICBpZiAoJ3Jvd1NwYW4nIGluIGNvbHVtbikge1xuICAgICAgICBjZWxsLnJvd1NwYW4gPSBjb2x1bW4ucm93U3BhbjtcbiAgICAgIH1cblxuICAgICAgY2VsbC5jb2xTcGFuID0gY29sU3BhbjtcbiAgICAgIGNlbGwuY29sRW5kID0gY2VsbC5jb2xTdGFydCArIGNvbFNwYW4gLSAxO1xuICAgICAgcm93c1tyb3dJbmRleF0ucHVzaChjZWxsKTtcbiAgICAgIGN1cnJlbnRDb2xJbmRleCArPSBjb2xTcGFuO1xuICAgICAgcmV0dXJuIGNvbFNwYW47XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbFNwYW5zO1xuICB9IC8vIEdlbmVyYXRlIGByb3dzYCBjZWxsIGRhdGFcblxuXG4gIGZpbGxSb3dDZWxscyhyb290Q29sdW1ucywgMCk7IC8vIEhhbmRsZSBgcm93U3BhbmBcblxuICB2YXIgcm93Q291bnQgPSByb3dzLmxlbmd0aDtcblxuICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChyb3dJbmRleCkge1xuICAgIHJvd3Nbcm93SW5kZXhdLmZvckVhY2goZnVuY3Rpb24gKGNlbGwpIHtcbiAgICAgIGlmICghKCdyb3dTcGFuJyBpbiBjZWxsKSAmJiAhY2VsbC5oYXNTdWJDb2x1bW5zKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBjZWxsLnJvd1NwYW4gPSByb3dDb3VudCAtIHJvd0luZGV4O1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIGZvciAodmFyIHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dDb3VudDsgcm93SW5kZXggKz0gMSkge1xuICAgIF9sb29wKHJvd0luZGV4KTtcbiAgfVxuXG4gIHJldHVybiByb3dzO1xufVxuXG5mdW5jdGlvbiBIZWFkZXIoX3JlZikge1xuICB2YXIgc3RpY2t5T2Zmc2V0cyA9IF9yZWYuc3RpY2t5T2Zmc2V0cyxcbiAgICAgIGNvbHVtbnMgPSBfcmVmLmNvbHVtbnMsXG4gICAgICBmbGF0dGVuQ29sdW1ucyA9IF9yZWYuZmxhdHRlbkNvbHVtbnMsXG4gICAgICBvbkhlYWRlclJvdyA9IF9yZWYub25IZWFkZXJSb3c7XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUYWJsZUNvbnRleHQpLFxuICAgICAgcHJlZml4Q2xzID0gX1JlYWN0JHVzZUNvbnRleHQucHJlZml4Q2xzLFxuICAgICAgZ2V0Q29tcG9uZW50ID0gX1JlYWN0JHVzZUNvbnRleHQuZ2V0Q29tcG9uZW50O1xuXG4gIHZhciByb3dzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHBhcnNlSGVhZGVyUm93cyhjb2x1bW5zKTtcbiAgfSwgW2NvbHVtbnNdKTtcbiAgdmFyIFdyYXBwZXJDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWydoZWFkZXInLCAnd3JhcHBlciddLCAndGhlYWQnKTtcbiAgdmFyIHRyQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnaGVhZGVyJywgJ3JvdyddLCAndHInKTtcbiAgdmFyIHRoQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnaGVhZGVyJywgJ2NlbGwnXSwgJ3RoJyk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRoZWFkXCIpXG4gIH0sIHJvd3MubWFwKGZ1bmN0aW9uIChyb3csIHJvd0luZGV4KSB7XG4gICAgdmFyIHJvd05vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChIZWFkZXJSb3csIHtcbiAgICAgIGtleTogcm93SW5kZXgsXG4gICAgICBmbGF0dGVuQ29sdW1uczogZmxhdHRlbkNvbHVtbnMsXG4gICAgICBjZWxsczogcm93LFxuICAgICAgc3RpY2t5T2Zmc2V0czogc3RpY2t5T2Zmc2V0cyxcbiAgICAgIHJvd0NvbXBvbmVudDogdHJDb21wb25lbnQsXG4gICAgICBjZWxsQ29tcG9uZW50OiB0aENvbXBvbmVudCxcbiAgICAgIG9uSGVhZGVyUm93OiBvbkhlYWRlclJvdyxcbiAgICAgIGluZGV4OiByb3dJbmRleFxuICAgIH0pO1xuICAgIHJldHVybiByb3dOb2RlO1xuICB9KSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRlcjsiLCJpbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCB3YXJuaW5nIGZyb20gXCJyYy11dGlsL2VzL3dhcm5pbmdcIjtcbmV4cG9ydCB2YXIgSU5URVJOQUxfQ09MX0RFRklORSA9ICdSQ19UQUJMRV9JTlRFUk5BTF9DT0xfREVGSU5FJztcbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHBhbmRhYmxlUHJvcHMocHJvcHMpIHtcbiAgdmFyIGV4cGFuZGFibGUgPSBwcm9wcy5leHBhbmRhYmxlLFxuICAgICAgbGVnYWN5RXhwYW5kYWJsZUNvbmZpZyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgW1wiZXhwYW5kYWJsZVwiXSk7XG5cbiAgaWYgKCdleHBhbmRhYmxlJyBpbiBwcm9wcykge1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGxlZ2FjeUV4cGFuZGFibGVDb25maWcpLCBleHBhbmRhYmxlKTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIFsnaW5kZW50U2l6ZScsICdleHBhbmRlZFJvd0tleXMnLCAnZGVmYXVsdEV4cGFuZGVkUm93S2V5cycsICdkZWZhdWx0RXhwYW5kQWxsUm93cycsICdleHBhbmRlZFJvd1JlbmRlcicsICdleHBhbmRSb3dCeUNsaWNrJywgJ2V4cGFuZEljb24nLCAnb25FeHBhbmQnLCAnb25FeHBhbmRlZFJvd3NDaGFuZ2UnLCAnZXhwYW5kZWRSb3dDbGFzc05hbWUnLCAnZXhwYW5kSWNvbkNvbHVtbkluZGV4J10uc29tZShmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiBwcm9wIGluIHByb3BzO1xuICB9KSkge1xuICAgIHdhcm5pbmcoZmFsc2UsICdleHBhbmRlZCByZWxhdGVkIHByb3BzIGhhdmUgYmVlbiBtb3ZlZCBpbnRvIGBleHBhbmRhYmxlYC4nKTtcbiAgfVxuXG4gIHJldHVybiBsZWdhY3lFeHBhbmRhYmxlQ29uZmlnO1xufVxuLyoqXG4gKiBSZXR1cm5zIG9ubHkgZGF0YS0gYW5kIGFyaWEtIGtleS92YWx1ZSBwYWlyc1xuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFBbmRBcmlhUHJvcHMocHJvcHMpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHByb3BzKS5yZWR1Y2UoZnVuY3Rpb24gKG1lbW8sIGtleSkge1xuICAgIGlmIChrZXkuc3Vic3RyKDAsIDUpID09PSAnZGF0YS0nIHx8IGtleS5zdWJzdHIoMCwgNSkgPT09ICdhcmlhLScpIHtcbiAgICAgIG1lbW9ba2V5XSA9IHByb3BzW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIG1lbW87XG4gIH0sIHt9KTtcbiAgLyogZXNsaW50LWVuYWJsZSAqL1xufSIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgSU5URVJOQUxfQ09MX0RFRklORSB9IGZyb20gJy4vdXRpbHMvbGVnYWN5VXRpbCc7XG5cbmZ1bmN0aW9uIENvbEdyb3VwKF9yZWYpIHtcbiAgdmFyIGNvbFdpZHRocyA9IF9yZWYuY29sV2lkdGhzLFxuICAgICAgY29sdW1ucyA9IF9yZWYuY29sdW1ucyxcbiAgICAgIGNvbHVtQ291bnQgPSBfcmVmLmNvbHVtQ291bnQ7XG4gIHZhciBjb2xzID0gW107XG4gIHZhciBsZW4gPSBjb2x1bUNvdW50IHx8IGNvbHVtbnMubGVuZ3RoOyAvLyBPbmx5IGluc2VydCBjb2wgd2l0aCB3aWR0aCAmIGFkZGl0aW9uYWwgcHJvcHNcbiAgLy8gU2tpcCBpZiByZXN0IGNvbCBkbyBub3QgaGF2ZSBhbnkgdXNlZnVsIGluZm9cblxuICB2YXIgbXVzdEluc2VydCA9IGZhbHNlO1xuXG4gIGZvciAodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgIHZhciB3aWR0aCA9IGNvbFdpZHRoc1tpXTtcbiAgICB2YXIgY29sdW1uID0gY29sdW1ucyAmJiBjb2x1bW5zW2ldO1xuICAgIHZhciBhZGRpdGlvbmFsUHJvcHMgPSBjb2x1bW4gJiYgY29sdW1uW0lOVEVSTkFMX0NPTF9ERUZJTkVdO1xuXG4gICAgaWYgKHdpZHRoIHx8IGFkZGl0aW9uYWxQcm9wcyB8fCBtdXN0SW5zZXJ0KSB7XG4gICAgICBjb2xzLnVuc2hpZnQoIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiY29sXCIsIF9leHRlbmRzKHtcbiAgICAgICAga2V5OiBpLFxuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICBtaW5XaWR0aDogd2lkdGhcbiAgICAgICAgfVxuICAgICAgfSwgYWRkaXRpb25hbFByb3BzKSkpO1xuICAgICAgbXVzdEluc2VydCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiY29sZ3JvdXBcIiwgbnVsbCwgY29scyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbEdyb3VwOyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyXCI7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheVwiO1xuaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZpbGxSZWYgfSBmcm9tIFwicmMtdXRpbC9lcy9yZWZcIjtcbmltcG9ydCBIZWFkZXIgZnJvbSAnLi9IZWFkZXInO1xuaW1wb3J0IENvbEdyb3VwIGZyb20gJy4uL0NvbEdyb3VwJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuXG5mdW5jdGlvbiB1c2VDb2x1bW5XaWR0aChjb2xXaWR0aHMsIGNvbHVtQ291bnQpIHtcbiAgcmV0dXJuIHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBjbG9uZUNvbHVtbnMgPSBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1Db3VudDsgaSArPSAxKSB7XG4gICAgICB2YXIgdmFsID0gY29sV2lkdGhzW2ldO1xuXG4gICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2xvbmVDb2x1bW5zW2ldID0gdmFsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lQ29sdW1ucztcbiAgfSwgW2NvbFdpZHRocy5qb2luKCdfJyksIGNvbHVtQ291bnRdKTtcbn1cblxudmFyIEZpeGVkSGVhZGVyID0gLyojX19QVVJFX18qL1JlYWN0LmZvcndhcmRSZWYoZnVuY3Rpb24gKF9yZWYsIHJlZikge1xuICB2YXIgbm9EYXRhID0gX3JlZi5ub0RhdGEsXG4gICAgICBjb2x1bW5zID0gX3JlZi5jb2x1bW5zLFxuICAgICAgZmxhdHRlbkNvbHVtbnMgPSBfcmVmLmZsYXR0ZW5Db2x1bW5zLFxuICAgICAgY29sV2lkdGhzID0gX3JlZi5jb2xXaWR0aHMsXG4gICAgICBjb2x1bUNvdW50ID0gX3JlZi5jb2x1bUNvdW50LFxuICAgICAgc3RpY2t5T2Zmc2V0cyA9IF9yZWYuc3RpY2t5T2Zmc2V0cyxcbiAgICAgIGRpcmVjdGlvbiA9IF9yZWYuZGlyZWN0aW9uLFxuICAgICAgZml4SGVhZGVyID0gX3JlZi5maXhIZWFkZXIsXG4gICAgICBvZmZzZXRIZWFkZXIgPSBfcmVmLm9mZnNldEhlYWRlcixcbiAgICAgIHN0aWNreUNsYXNzTmFtZSA9IF9yZWYuc3RpY2t5Q2xhc3NOYW1lLFxuICAgICAgb25TY3JvbGwgPSBfcmVmLm9uU2Nyb2xsLFxuICAgICAgbWF4Q29udGVudFNjcm9sbCA9IF9yZWYubWF4Q29udGVudFNjcm9sbCxcbiAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsIFtcIm5vRGF0YVwiLCBcImNvbHVtbnNcIiwgXCJmbGF0dGVuQ29sdW1uc1wiLCBcImNvbFdpZHRoc1wiLCBcImNvbHVtQ291bnRcIiwgXCJzdGlja3lPZmZzZXRzXCIsIFwiZGlyZWN0aW9uXCIsIFwiZml4SGVhZGVyXCIsIFwib2Zmc2V0SGVhZGVyXCIsIFwic3RpY2t5Q2xhc3NOYW1lXCIsIFwib25TY3JvbGxcIiwgXCJtYXhDb250ZW50U2Nyb2xsXCJdKTtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFRhYmxlQ29udGV4dCksXG4gICAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dC5wcmVmaXhDbHMsXG4gICAgICBzY3JvbGxiYXJTaXplID0gX1JlYWN0JHVzZUNvbnRleHQuc2Nyb2xsYmFyU2l6ZSxcbiAgICAgIGlzU3RpY2t5ID0gX1JlYWN0JHVzZUNvbnRleHQuaXNTdGlja3k7XG5cbiAgdmFyIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZSA9IGlzU3RpY2t5ICYmICFmaXhIZWFkZXIgPyAwIDogc2Nyb2xsYmFyU2l6ZTsgLy8gUGFzcyB3aGVlbCB0byBzY3JvbGwgZXZlbnRcblxuICB2YXIgc2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICB2YXIgc2V0U2Nyb2xsUmVmID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBmaWxsUmVmKHJlZiwgZWxlbWVudCk7XG4gICAgZmlsbFJlZihzY3JvbGxSZWYsIGVsZW1lbnQpO1xuICB9LCBbXSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF9zY3JvbGxSZWYkY3VycmVudDtcblxuICAgIGZ1bmN0aW9uIG9uV2hlZWwoZSkge1xuICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBlLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgZGVsdGFYID0gZS5kZWx0YVg7XG5cbiAgICAgIGlmIChkZWx0YVgpIHtcbiAgICAgICAgb25TY3JvbGwoe1xuICAgICAgICAgIGN1cnJlbnRUYXJnZXQ6IGN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgc2Nyb2xsTGVmdDogY3VycmVudFRhcmdldC5zY3JvbGxMZWZ0ICsgZGVsdGFYXG4gICAgICAgIH0pO1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgKF9zY3JvbGxSZWYkY3VycmVudCA9IHNjcm9sbFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfc2Nyb2xsUmVmJGN1cnJlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9zY3JvbGxSZWYkY3VycmVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgX3Njcm9sbFJlZiRjdXJyZW50MjtcblxuICAgICAgKF9zY3JvbGxSZWYkY3VycmVudDIgPSBzY3JvbGxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3Njcm9sbFJlZiRjdXJyZW50MiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Njcm9sbFJlZiRjdXJyZW50Mi5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uV2hlZWwpO1xuICAgIH07XG4gIH0sIFtdKTsgLy8gQ2hlY2sgaWYgYWxsIGZsYXR0ZW5Db2x1bW5zIGhhcyB3aWR0aFxuXG4gIHZhciBhbGxGbGF0dGVuQ29sdW1uc1dpdGhXaWR0aCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBmbGF0dGVuQ29sdW1ucy5ldmVyeShmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgICByZXR1cm4gY29sdW1uLndpZHRoID49IDA7XG4gICAgfSk7XG4gIH0sIFtmbGF0dGVuQ29sdW1uc10pOyAvLyBBZGQgc2Nyb2xsYmFyIGNvbHVtblxuXG4gIHZhciBsYXN0Q29sdW1uID0gZmxhdHRlbkNvbHVtbnNbZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMV07XG4gIHZhciBTY3JvbGxCYXJDb2x1bW4gPSB7XG4gICAgZml4ZWQ6IGxhc3RDb2x1bW4gPyBsYXN0Q29sdW1uLmZpeGVkIDogbnVsbCxcbiAgICBvbkhlYWRlckNlbGw6IGZ1bmN0aW9uIG9uSGVhZGVyQ2VsbCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jZWxsLXNjcm9sbGJhclwiKVxuICAgICAgfTtcbiAgICB9XG4gIH07XG4gIHZhciBjb2x1bW5zV2l0aFNjcm9sbGJhciA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjb21iaW5hdGlvblNjcm9sbEJhclNpemUgPyBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNvbHVtbnMpLCBbU2Nyb2xsQmFyQ29sdW1uXSkgOiBjb2x1bW5zO1xuICB9LCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBjb2x1bW5zXSk7XG4gIHZhciBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXIgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY29tYmluYXRpb25TY3JvbGxCYXJTaXplID8gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShmbGF0dGVuQ29sdW1ucyksIFtTY3JvbGxCYXJDb2x1bW5dKSA6IGZsYXR0ZW5Db2x1bW5zO1xuICB9LCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBmbGF0dGVuQ29sdW1uc10pOyAvLyBDYWxjdWxhdGUgdGhlIHN0aWNreSBvZmZzZXRzXG5cbiAgdmFyIGhlYWRlclN0aWNreU9mZnNldHMgPSB1c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmlnaHQgPSBzdGlja3lPZmZzZXRzLnJpZ2h0LFxuICAgICAgICBsZWZ0ID0gc3RpY2t5T2Zmc2V0cy5sZWZ0O1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHN0aWNreU9mZnNldHMpLCB7fSwge1xuICAgICAgbGVmdDogZGlyZWN0aW9uID09PSAncnRsJyA/IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkobGVmdC5tYXAoZnVuY3Rpb24gKHdpZHRoKSB7XG4gICAgICAgIHJldHVybiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZTtcbiAgICAgIH0pKSwgWzBdKSA6IGxlZnQsXG4gICAgICByaWdodDogZGlyZWN0aW9uID09PSAncnRsJyA/IHJpZ2h0IDogW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShyaWdodC5tYXAoZnVuY3Rpb24gKHdpZHRoKSB7XG4gICAgICAgIHJldHVybiB3aWR0aCArIGNvbWJpbmF0aW9uU2Nyb2xsQmFyU2l6ZTtcbiAgICAgIH0pKSwgWzBdKSxcbiAgICAgIGlzU3RpY2t5OiBpc1N0aWNreVxuICAgIH0pO1xuICB9LCBbY29tYmluYXRpb25TY3JvbGxCYXJTaXplLCBzdGlja3lPZmZzZXRzLCBpc1N0aWNreV0pO1xuICB2YXIgbWVyZ2VkQ29sdW1uV2lkdGggPSB1c2VDb2x1bW5XaWR0aChjb2xXaWR0aHMsIGNvbHVtQ291bnQpO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgIG92ZXJmbG93OiAnaGlkZGVuJ1xuICAgIH0sIGlzU3RpY2t5ID8ge1xuICAgICAgdG9wOiBvZmZzZXRIZWFkZXJcbiAgICB9IDoge30pLFxuICAgIHJlZjogc2V0U2Nyb2xsUmVmLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhlYWRlclwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBzdGlja3lDbGFzc05hbWUsICEhc3RpY2t5Q2xhc3NOYW1lKSlcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0YWJsZVwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIHRhYmxlTGF5b3V0OiAnZml4ZWQnLFxuICAgICAgdmlzaWJpbGl0eTogbm9EYXRhIHx8IG1lcmdlZENvbHVtbldpZHRoID8gbnVsbCA6ICdoaWRkZW4nXG4gICAgfVxuICB9LCAoIW5vRGF0YSB8fCAhbWF4Q29udGVudFNjcm9sbCB8fCBhbGxGbGF0dGVuQ29sdW1uc1dpdGhXaWR0aCkgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29sR3JvdXAsIHtcbiAgICBjb2xXaWR0aHM6IG1lcmdlZENvbHVtbldpZHRoID8gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShtZXJnZWRDb2x1bW5XaWR0aCksIFtjb21iaW5hdGlvblNjcm9sbEJhclNpemVdKSA6IFtdLFxuICAgIGNvbHVtQ291bnQ6IGNvbHVtQ291bnQgKyAxLFxuICAgIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zV2l0aFNjcm9sbGJhclxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoSGVhZGVyLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHtcbiAgICBzdGlja3lPZmZzZXRzOiBoZWFkZXJTdGlja3lPZmZzZXRzLFxuICAgIGNvbHVtbnM6IGNvbHVtbnNXaXRoU2Nyb2xsYmFyLFxuICAgIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1uc1dpdGhTY3JvbGxiYXJcbiAgfSkpKSk7XG59KTtcbkZpeGVkSGVhZGVyLmRpc3BsYXlOYW1lID0gJ0ZpeGVkSGVhZGVyJztcbmV4cG9ydCBkZWZhdWx0IEZpeGVkSGVhZGVyOyIsImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbnZhciBCb2R5Q29udGV4dCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuZXhwb3J0IGRlZmF1bHQgQm9keUNvbnRleHQ7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IENlbGwgZnJvbSAnLi4vQ2VsbCc7XG5pbXBvcnQgVGFibGVDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvVGFibGVDb250ZXh0JztcblxuZnVuY3Rpb24gRXhwYW5kZWRSb3coX3JlZikge1xuICB2YXIgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBDb21wb25lbnQgPSBfcmVmLmNvbXBvbmVudCxcbiAgICAgIGNlbGxDb21wb25lbnQgPSBfcmVmLmNlbGxDb21wb25lbnQsXG4gICAgICBmaXhIZWFkZXIgPSBfcmVmLmZpeEhlYWRlcixcbiAgICAgIGZpeENvbHVtbiA9IF9yZWYuZml4Q29sdW1uLFxuICAgICAgaG9yaXpvblNjcm9sbCA9IF9yZWYuaG9yaXpvblNjcm9sbCxcbiAgICAgIGNsYXNzTmFtZSA9IF9yZWYuY2xhc3NOYW1lLFxuICAgICAgZXhwYW5kZWQgPSBfcmVmLmV4cGFuZGVkLFxuICAgICAgY29tcG9uZW50V2lkdGggPSBfcmVmLmNvbXBvbmVudFdpZHRoLFxuICAgICAgY29sU3BhbiA9IF9yZWYuY29sU3BhbjtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFRhYmxlQ29udGV4dCksXG4gICAgICBzY3JvbGxiYXJTaXplID0gX1JlYWN0JHVzZUNvbnRleHQuc2Nyb2xsYmFyU2l6ZTsgLy8gQ2FjaGUgcmVuZGVyIG5vZGVcblxuXG4gIHJldHVybiBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY29udGVudE5vZGUgPSBjaGlsZHJlbjtcblxuICAgIGlmIChmaXhDb2x1bW4pIHtcbiAgICAgIGNvbnRlbnROb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBzdHlsZToge1xuICAgICAgICAgIHdpZHRoOiBjb21wb25lbnRXaWR0aCAtIChmaXhIZWFkZXIgPyBzY3JvbGxiYXJTaXplIDogMCksXG4gICAgICAgICAgcG9zaXRpb246ICdzdGlja3knLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1leHBhbmRlZC1yb3ctZml4ZWRcIilcbiAgICAgIH0sIGNvbnRlbnROb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGRpc3BsYXk6IGV4cGFuZGVkID8gbnVsbCA6ICdub25lJ1xuICAgICAgfVxuICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENlbGwsIHtcbiAgICAgIGNvbXBvbmVudDogY2VsbENvbXBvbmVudCxcbiAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgY29sU3BhbjogY29sU3BhblxuICAgIH0sIGNvbnRlbnROb2RlKSk7XG4gIH0sIFtjaGlsZHJlbiwgQ29tcG9uZW50LCBmaXhIZWFkZXIsIGhvcml6b25TY3JvbGwsIGNsYXNzTmFtZSwgZXhwYW5kZWQsIGNvbXBvbmVudFdpZHRoLCBjb2xTcGFuLCBzY3JvbGxiYXJTaXplXSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEV4cGFuZGVkUm93OyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgQ2VsbCBmcm9tICcuLi9DZWxsJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEJvZHlDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvQm9keUNvbnRleHQnO1xuaW1wb3J0IHsgZ2V0Q29sdW1uc0tleSB9IGZyb20gJy4uL3V0aWxzL3ZhbHVlVXRpbCc7XG5pbXBvcnQgRXhwYW5kZWRSb3cgZnJvbSAnLi9FeHBhbmRlZFJvdyc7XG5cbmZ1bmN0aW9uIEJvZHlSb3cocHJvcHMpIHtcbiAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIHN0eWxlID0gcHJvcHMuc3R5bGUsXG4gICAgICByZWNvcmQgPSBwcm9wcy5yZWNvcmQsXG4gICAgICBpbmRleCA9IHByb3BzLmluZGV4LFxuICAgICAgcm93S2V5ID0gcHJvcHMucm93S2V5LFxuICAgICAgZ2V0Um93S2V5ID0gcHJvcHMuZ2V0Um93S2V5LFxuICAgICAgcm93RXhwYW5kYWJsZSA9IHByb3BzLnJvd0V4cGFuZGFibGUsXG4gICAgICBleHBhbmRlZEtleXMgPSBwcm9wcy5leHBhbmRlZEtleXMsXG4gICAgICBvblJvdyA9IHByb3BzLm9uUm93LFxuICAgICAgX3Byb3BzJGluZGVudCA9IHByb3BzLmluZGVudCxcbiAgICAgIGluZGVudCA9IF9wcm9wcyRpbmRlbnQgPT09IHZvaWQgMCA/IDAgOiBfcHJvcHMkaW5kZW50LFxuICAgICAgUm93Q29tcG9uZW50ID0gcHJvcHMucm93Q29tcG9uZW50LFxuICAgICAgY2VsbENvbXBvbmVudCA9IHByb3BzLmNlbGxDb21wb25lbnQsXG4gICAgICBjaGlsZHJlbkNvbHVtbk5hbWUgPSBwcm9wcy5jaGlsZHJlbkNvbHVtbk5hbWU7XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUYWJsZUNvbnRleHQpLFxuICAgICAgcHJlZml4Q2xzID0gX1JlYWN0JHVzZUNvbnRleHQucHJlZml4Q2xzLFxuICAgICAgZml4ZWRJbmZvTGlzdCA9IF9SZWFjdCR1c2VDb250ZXh0LmZpeGVkSW5mb0xpc3Q7XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0MiA9IFJlYWN0LnVzZUNvbnRleHQoQm9keUNvbnRleHQpLFxuICAgICAgZml4SGVhZGVyID0gX1JlYWN0JHVzZUNvbnRleHQyLmZpeEhlYWRlcixcbiAgICAgIGZpeENvbHVtbiA9IF9SZWFjdCR1c2VDb250ZXh0Mi5maXhDb2x1bW4sXG4gICAgICBob3Jpem9uU2Nyb2xsID0gX1JlYWN0JHVzZUNvbnRleHQyLmhvcml6b25TY3JvbGwsXG4gICAgICBjb21wb25lbnRXaWR0aCA9IF9SZWFjdCR1c2VDb250ZXh0Mi5jb21wb25lbnRXaWR0aCxcbiAgICAgIGZsYXR0ZW5Db2x1bW5zID0gX1JlYWN0JHVzZUNvbnRleHQyLmZsYXR0ZW5Db2x1bW5zLFxuICAgICAgZXhwYW5kYWJsZVR5cGUgPSBfUmVhY3QkdXNlQ29udGV4dDIuZXhwYW5kYWJsZVR5cGUsXG4gICAgICBleHBhbmRSb3dCeUNsaWNrID0gX1JlYWN0JHVzZUNvbnRleHQyLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICBvblRyaWdnZXJFeHBhbmQgPSBfUmVhY3QkdXNlQ29udGV4dDIub25UcmlnZ2VyRXhwYW5kLFxuICAgICAgcm93Q2xhc3NOYW1lID0gX1JlYWN0JHVzZUNvbnRleHQyLnJvd0NsYXNzTmFtZSxcbiAgICAgIGV4cGFuZGVkUm93Q2xhc3NOYW1lID0gX1JlYWN0JHVzZUNvbnRleHQyLmV4cGFuZGVkUm93Q2xhc3NOYW1lLFxuICAgICAgaW5kZW50U2l6ZSA9IF9SZWFjdCR1c2VDb250ZXh0Mi5pbmRlbnRTaXplLFxuICAgICAgZXhwYW5kSWNvbiA9IF9SZWFjdCR1c2VDb250ZXh0Mi5leHBhbmRJY29uLFxuICAgICAgZXhwYW5kZWRSb3dSZW5kZXIgPSBfUmVhY3QkdXNlQ29udGV4dDIuZXhwYW5kZWRSb3dSZW5kZXIsXG4gICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXggPSBfUmVhY3QkdXNlQ29udGV4dDIuZXhwYW5kSWNvbkNvbHVtbkluZGV4O1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICAgIGV4cGFuZFJlbmRlZCA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRFeHBhbmRSZW5kZWQgPSBfUmVhY3QkdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBleHBhbmRlZCA9IGV4cGFuZGVkS2V5cyAmJiBleHBhbmRlZEtleXMuaGFzKHByb3BzLnJlY29yZEtleSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICBzZXRFeHBhbmRSZW5kZWQodHJ1ZSk7XG4gICAgfVxuICB9LCBbZXhwYW5kZWRdKTtcbiAgdmFyIHJvd1N1cHBvcnRFeHBhbmQgPSBleHBhbmRhYmxlVHlwZSA9PT0gJ3JvdycgJiYgKCFyb3dFeHBhbmRhYmxlIHx8IHJvd0V4cGFuZGFibGUocmVjb3JkKSk7IC8vIE9ubHkgd2hlbiByb3cgaXMgbm90IGV4cGFuZGFibGUgYW5kIGBjaGlsZHJlbmAgZXhpc3QgaW4gcmVjb3JkXG5cbiAgdmFyIG5lc3RFeHBhbmRhYmxlID0gZXhwYW5kYWJsZVR5cGUgPT09ICduZXN0JztcbiAgdmFyIGhhc05lc3RDaGlsZHJlbiA9IGNoaWxkcmVuQ29sdW1uTmFtZSAmJiByZWNvcmQgJiYgcmVjb3JkW2NoaWxkcmVuQ29sdW1uTmFtZV07XG4gIHZhciBtZXJnZWRFeHBhbmRhYmxlID0gcm93U3VwcG9ydEV4cGFuZCB8fCBuZXN0RXhwYW5kYWJsZTsgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IG9uUm93ID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBhZGRpdGlvbmFsUHJvcHM7XG5cbiAgaWYgKG9uUm93KSB7XG4gICAgYWRkaXRpb25hbFByb3BzID0gb25Sb3cocmVjb3JkLCBpbmRleCk7XG4gIH1cblxuICB2YXIgb25DbGljayA9IGZ1bmN0aW9uIG9uQ2xpY2soZXZlbnQpIHtcbiAgICBpZiAoZXhwYW5kUm93QnlDbGljayAmJiBtZXJnZWRFeHBhbmRhYmxlKSB7XG4gICAgICBvblRyaWdnZXJFeHBhbmQocmVjb3JkLCBldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKGFkZGl0aW9uYWxQcm9wcyAmJiBhZGRpdGlvbmFsUHJvcHMub25DbGljaykge1xuICAgICAgdmFyIF9hZGRpdGlvbmFsUHJvcHM7XG5cbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgICB9XG5cbiAgICAgIChfYWRkaXRpb25hbFByb3BzID0gYWRkaXRpb25hbFByb3BzKS5vbkNsaWNrLmFwcGx5KF9hZGRpdGlvbmFsUHJvcHMsIFtldmVudF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07IC8vID09PT09PT09PT09PT09PT09PT09PT09PSBCYXNlIHRyIHJvdyA9PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBjb21wdXRlUm93Q2xhc3NOYW1lO1xuXG4gIGlmICh0eXBlb2Ygcm93Q2xhc3NOYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbXB1dGVSb3dDbGFzc05hbWUgPSByb3dDbGFzc05hbWU7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHJvd0NsYXNzTmFtZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbXB1dGVSb3dDbGFzc05hbWUgPSByb3dDbGFzc05hbWUocmVjb3JkLCBpbmRleCwgaW5kZW50KTtcbiAgfVxuXG4gIHZhciBjb2x1bW5zS2V5ID0gZ2V0Q29sdW1uc0tleShmbGF0dGVuQ29sdW1ucyk7XG4gIHZhciBiYXNlUm93Tm9kZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJvd0NvbXBvbmVudCwgX2V4dGVuZHMoe30sIGFkZGl0aW9uYWxQcm9wcywge1xuICAgIFwiZGF0YS1yb3cta2V5XCI6IHJvd0tleSxcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY2xhc3NOYW1lLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJvd1wiKSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1yb3ctbGV2ZWwtXCIpLmNvbmNhdChpbmRlbnQpLCBjb21wdXRlUm93Q2xhc3NOYW1lLCBhZGRpdGlvbmFsUHJvcHMgJiYgYWRkaXRpb25hbFByb3BzLmNsYXNzTmFtZSksXG4gICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3R5bGUpLCBhZGRpdGlvbmFsUHJvcHMgPyBhZGRpdGlvbmFsUHJvcHMuc3R5bGUgOiBudWxsKSxcbiAgICBvbkNsaWNrOiBvbkNsaWNrXG4gIH0pLCBmbGF0dGVuQ29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbHVtbiwgY29sSW5kZXgpIHtcbiAgICB2YXIgcmVuZGVyID0gY29sdW1uLnJlbmRlcixcbiAgICAgICAgZGF0YUluZGV4ID0gY29sdW1uLmRhdGFJbmRleCxcbiAgICAgICAgY29sdW1uQ2xhc3NOYW1lID0gY29sdW1uLmNsYXNzTmFtZTtcbiAgICB2YXIga2V5ID0gY29sdW1uc0tleVtjb2xJbmRleF07XG4gICAgdmFyIGZpeGVkSW5mbyA9IGZpeGVkSW5mb0xpc3RbY29sSW5kZXhdOyAvLyA9PT09PT09PT09PT09IFVzZWQgZm9yIG5lc3QgZXhwYW5kYWJsZSA9PT09PT09PT09PT09XG5cbiAgICB2YXIgYXBwZW5kQ2VsbE5vZGU7XG5cbiAgICBpZiAoY29sSW5kZXggPT09IChleHBhbmRJY29uQ29sdW1uSW5kZXggfHwgMCkgJiYgbmVzdEV4cGFuZGFibGUpIHtcbiAgICAgIGFwcGVuZENlbGxOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIG51bGwsIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgcGFkZGluZ0xlZnQ6IFwiXCIuY29uY2F0KGluZGVudFNpemUgKiBpbmRlbnQsIFwicHhcIilcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJvdy1pbmRlbnQgaW5kZW50LWxldmVsLVwiKS5jb25jYXQoaW5kZW50KVxuICAgICAgfSksIGV4cGFuZEljb24oe1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgICAgICBleHBhbmRhYmxlOiBoYXNOZXN0Q2hpbGRyZW4sXG4gICAgICAgIHJlY29yZDogcmVjb3JkLFxuICAgICAgICBvbkV4cGFuZDogb25UcmlnZ2VyRXhwYW5kXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgdmFyIGFkZGl0aW9uYWxDZWxsUHJvcHM7XG5cbiAgICBpZiAoY29sdW1uLm9uQ2VsbCkge1xuICAgICAgYWRkaXRpb25hbENlbGxQcm9wcyA9IGNvbHVtbi5vbkNlbGwocmVjb3JkLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KENlbGwsIF9leHRlbmRzKHtcbiAgICAgIGNsYXNzTmFtZTogY29sdW1uQ2xhc3NOYW1lLFxuICAgICAgZWxsaXBzaXM6IGNvbHVtbi5lbGxpcHNpcyxcbiAgICAgIGFsaWduOiBjb2x1bW4uYWxpZ24sXG4gICAgICBjb21wb25lbnQ6IGNlbGxDb21wb25lbnQsXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIGtleToga2V5LFxuICAgICAgcmVjb3JkOiByZWNvcmQsXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICBkYXRhSW5kZXg6IGRhdGFJbmRleCxcbiAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgc2hvdWxkQ2VsbFVwZGF0ZTogY29sdW1uLnNob3VsZENlbGxVcGRhdGVcbiAgICB9LCBmaXhlZEluZm8sIHtcbiAgICAgIGFwcGVuZE5vZGU6IGFwcGVuZENlbGxOb2RlLFxuICAgICAgYWRkaXRpb25hbFByb3BzOiBhZGRpdGlvbmFsQ2VsbFByb3BzXG4gICAgfSkpO1xuICB9KSk7IC8vID09PT09PT09PT09PT09PT09PT09PT09PSBFeHBhbmQgUm93ID09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgZXhwYW5kUm93Tm9kZTtcblxuICBpZiAocm93U3VwcG9ydEV4cGFuZCAmJiAoZXhwYW5kUmVuZGVkIHx8IGV4cGFuZGVkKSkge1xuICAgIHZhciBleHBhbmRDb250ZW50ID0gZXhwYW5kZWRSb3dSZW5kZXIocmVjb3JkLCBpbmRleCwgaW5kZW50ICsgMSwgZXhwYW5kZWQpO1xuICAgIHZhciBjb21wdXRlZEV4cGFuZGVkUm93Q2xhc3NOYW1lID0gZXhwYW5kZWRSb3dDbGFzc05hbWUgJiYgZXhwYW5kZWRSb3dDbGFzc05hbWUocmVjb3JkLCBpbmRleCwgaW5kZW50KTtcbiAgICBleHBhbmRSb3dOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kZWRSb3csIHtcbiAgICAgIGV4cGFuZGVkOiBleHBhbmRlZCxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4cGFuZGVkLXJvd1wiKSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1leHBhbmRlZC1yb3ctbGV2ZWwtXCIpLmNvbmNhdChpbmRlbnQgKyAxKSwgY29tcHV0ZWRFeHBhbmRlZFJvd0NsYXNzTmFtZSksXG4gICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgIGZpeEhlYWRlcjogZml4SGVhZGVyLFxuICAgICAgZml4Q29sdW1uOiBmaXhDb2x1bW4sXG4gICAgICBob3Jpem9uU2Nyb2xsOiBob3Jpem9uU2Nyb2xsLFxuICAgICAgY29tcG9uZW50OiBSb3dDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRXaWR0aDogY29tcG9uZW50V2lkdGgsXG4gICAgICBjZWxsQ29tcG9uZW50OiBjZWxsQ29tcG9uZW50LFxuICAgICAgY29sU3BhbjogZmxhdHRlbkNvbHVtbnMubGVuZ3RoXG4gICAgfSwgZXhwYW5kQ29udGVudCk7XG4gIH0gLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBOZXN0IFJvdyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbiAgdmFyIG5lc3RSb3dOb2RlO1xuXG4gIGlmIChoYXNOZXN0Q2hpbGRyZW4gJiYgZXhwYW5kZWQpIHtcbiAgICBuZXN0Um93Tm9kZSA9IChyZWNvcmRbY2hpbGRyZW5Db2x1bW5OYW1lXSB8fCBbXSkubWFwKGZ1bmN0aW9uIChzdWJSZWNvcmQsIHN1YkluZGV4KSB7XG4gICAgICB2YXIgc3ViS2V5ID0gZ2V0Um93S2V5KHN1YlJlY29yZCwgc3ViSW5kZXgpO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEJvZHlSb3csIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBrZXk6IHN1YktleSxcbiAgICAgICAgcm93S2V5OiBzdWJLZXksXG4gICAgICAgIHJlY29yZDogc3ViUmVjb3JkLFxuICAgICAgICByZWNvcmRLZXk6IHN1YktleSxcbiAgICAgICAgaW5kZXg6IHN1YkluZGV4LFxuICAgICAgICBpbmRlbnQ6IGluZGVudCArIDFcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgYmFzZVJvd05vZGUsIGV4cGFuZFJvd05vZGUsIG5lc3RSb3dOb2RlKTtcbn1cblxuQm9keVJvdy5kaXNwbGF5TmFtZSA9ICdCb2R5Um93JztcbmV4cG9ydCBkZWZhdWx0IEJvZHlSb3c7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xudmFyIFJlc2l6ZUNvbnRleHQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlQ29udGV4dChudWxsKTtcbmV4cG9ydCBkZWZhdWx0IFJlc2l6ZUNvbnRleHQ7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3JjLXJlc2l6ZS1vYnNlcnZlcic7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNZWFzdXJlQ2VsbChfcmVmKSB7XG4gIHZhciBjb2x1bW5LZXkgPSBfcmVmLmNvbHVtbktleSxcbiAgICAgIG9uQ29sdW1uUmVzaXplID0gX3JlZi5vbkNvbHVtblJlc2l6ZTtcbiAgdmFyIGNlbGxSZWYgPSBSZWFjdC51c2VSZWYoKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY2VsbFJlZi5jdXJyZW50KSB7XG4gICAgICBvbkNvbHVtblJlc2l6ZShjb2x1bW5LZXksIGNlbGxSZWYuY3VycmVudC5vZmZzZXRXaWR0aCk7XG4gICAgfVxuICB9LCBbXSk7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZXNpemVPYnNlcnZlciwge1xuICAgIG9uUmVzaXplOiBmdW5jdGlvbiBvblJlc2l6ZShfcmVmMikge1xuICAgICAgdmFyIG9mZnNldFdpZHRoID0gX3JlZjIub2Zmc2V0V2lkdGg7XG4gICAgICBvbkNvbHVtblJlc2l6ZShjb2x1bW5LZXksIG9mZnNldFdpZHRoKTtcbiAgICB9XG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidGRcIiwge1xuICAgIHJlZjogY2VsbFJlZixcbiAgICBzdHlsZToge1xuICAgICAgcGFkZGluZzogMCxcbiAgICAgIGJvcmRlcjogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH1cbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIHN0eWxlOiB7XG4gICAgICBoZWlnaHQ6IDAsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbidcbiAgICB9XG4gIH0sIFwiXFx4QTBcIikpKTtcbn0iLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQm9keVJvdyBmcm9tICcuL0JvZHlSb3cnO1xuaW1wb3J0IFRhYmxlQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L1RhYmxlQ29udGV4dCc7XG5pbXBvcnQgRXhwYW5kZWRSb3cgZnJvbSAnLi9FeHBhbmRlZFJvdyc7XG5pbXBvcnQgQm9keUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9Cb2R5Q29udGV4dCc7XG5pbXBvcnQgeyBnZXRDb2x1bW5zS2V5IH0gZnJvbSAnLi4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCBSZXNpemVDb250ZXh0IGZyb20gJy4uL2NvbnRleHQvUmVzaXplQ29udGV4dCc7XG5pbXBvcnQgTWVhc3VyZUNlbGwgZnJvbSAnLi9NZWFzdXJlQ2VsbCc7XG5cbmZ1bmN0aW9uIEJvZHkoX3JlZikge1xuICB2YXIgZGF0YSA9IF9yZWYuZGF0YSxcbiAgICAgIGdldFJvd0tleSA9IF9yZWYuZ2V0Um93S2V5LFxuICAgICAgbWVhc3VyZUNvbHVtbldpZHRoID0gX3JlZi5tZWFzdXJlQ29sdW1uV2lkdGgsXG4gICAgICBleHBhbmRlZEtleXMgPSBfcmVmLmV4cGFuZGVkS2V5cyxcbiAgICAgIG9uUm93ID0gX3JlZi5vblJvdyxcbiAgICAgIHJvd0V4cGFuZGFibGUgPSBfcmVmLnJvd0V4cGFuZGFibGUsXG4gICAgICBlbXB0eU5vZGUgPSBfcmVmLmVtcHR5Tm9kZSxcbiAgICAgIGNoaWxkcmVuQ29sdW1uTmFtZSA9IF9yZWYuY2hpbGRyZW5Db2x1bW5OYW1lO1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoUmVzaXplQ29udGV4dCksXG4gICAgICBvbkNvbHVtblJlc2l6ZSA9IF9SZWFjdCR1c2VDb250ZXh0Lm9uQ29sdW1uUmVzaXplO1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dDIgPSBSZWFjdC51c2VDb250ZXh0KFRhYmxlQ29udGV4dCksXG4gICAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dDIucHJlZml4Q2xzLFxuICAgICAgZ2V0Q29tcG9uZW50ID0gX1JlYWN0JHVzZUNvbnRleHQyLmdldENvbXBvbmVudDtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQzID0gUmVhY3QudXNlQ29udGV4dChCb2R5Q29udGV4dCksXG4gICAgICBmaXhIZWFkZXIgPSBfUmVhY3QkdXNlQ29udGV4dDMuZml4SGVhZGVyLFxuICAgICAgaG9yaXpvblNjcm9sbCA9IF9SZWFjdCR1c2VDb250ZXh0My5ob3Jpem9uU2Nyb2xsLFxuICAgICAgZmxhdHRlbkNvbHVtbnMgPSBfUmVhY3QkdXNlQ29udGV4dDMuZmxhdHRlbkNvbHVtbnMsXG4gICAgICBjb21wb25lbnRXaWR0aCA9IF9SZWFjdCR1c2VDb250ZXh0My5jb21wb25lbnRXaWR0aDtcblxuICByZXR1cm4gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIFdyYXBwZXJDb21wb25lbnQgPSBnZXRDb21wb25lbnQoWydib2R5JywgJ3dyYXBwZXInXSwgJ3Rib2R5Jyk7XG4gICAgdmFyIHRyQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnYm9keScsICdyb3cnXSwgJ3RyJyk7XG4gICAgdmFyIHRkQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsnYm9keScsICdjZWxsJ10sICd0ZCcpO1xuICAgIHZhciByb3dzO1xuXG4gICAgaWYgKGRhdGEubGVuZ3RoKSB7XG4gICAgICByb3dzID0gZGF0YS5tYXAoZnVuY3Rpb24gKHJlY29yZCwgaW5kZXgpIHtcbiAgICAgICAgdmFyIGtleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEJvZHlSb3csIHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICByb3dLZXk6IGtleSxcbiAgICAgICAgICByZWNvcmQ6IHJlY29yZCxcbiAgICAgICAgICByZWNvcmRLZXk6IGtleSxcbiAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgcm93Q29tcG9uZW50OiB0ckNvbXBvbmVudCxcbiAgICAgICAgICBjZWxsQ29tcG9uZW50OiB0ZENvbXBvbmVudCxcbiAgICAgICAgICBleHBhbmRlZEtleXM6IGV4cGFuZGVkS2V5cyxcbiAgICAgICAgICBvblJvdzogb25Sb3csXG4gICAgICAgICAgZ2V0Um93S2V5OiBnZXRSb3dLZXksXG4gICAgICAgICAgcm93RXhwYW5kYWJsZTogcm93RXhwYW5kYWJsZSxcbiAgICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU6IGNoaWxkcmVuQ29sdW1uTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3dzID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRXhwYW5kZWRSb3csIHtcbiAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1wbGFjZWhvbGRlclwiKSxcbiAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgIGZpeEhlYWRlcjogZml4SGVhZGVyLFxuICAgICAgICBmaXhDb2x1bW46IGhvcml6b25TY3JvbGwsXG4gICAgICAgIGhvcml6b25TY3JvbGw6IGhvcml6b25TY3JvbGwsXG4gICAgICAgIGNvbXBvbmVudDogdHJDb21wb25lbnQsXG4gICAgICAgIGNvbXBvbmVudFdpZHRoOiBjb21wb25lbnRXaWR0aCxcbiAgICAgICAgY2VsbENvbXBvbmVudDogdGRDb21wb25lbnQsXG4gICAgICAgIGNvbFNwYW46IGZsYXR0ZW5Db2x1bW5zLmxlbmd0aFxuICAgICAgfSwgZW1wdHlOb2RlKTtcbiAgICB9XG5cbiAgICB2YXIgY29sdW1uc0tleSA9IGdldENvbHVtbnNLZXkoZmxhdHRlbkNvbHVtbnMpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChXcmFwcGVyQ29tcG9uZW50LCB7XG4gICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItdGJvZHlcIilcbiAgICB9LCBtZWFzdXJlQ29sdW1uV2lkdGggJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCB7XG4gICAgICBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLFxuICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW1lYXN1cmUtcm93XCIpLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICBmb250U2l6ZTogMFxuICAgICAgfVxuICAgIH0sIGNvbHVtbnNLZXkubWFwKGZ1bmN0aW9uIChjb2x1bW5LZXkpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChNZWFzdXJlQ2VsbCwge1xuICAgICAgICBrZXk6IGNvbHVtbktleSxcbiAgICAgICAgY29sdW1uS2V5OiBjb2x1bW5LZXksXG4gICAgICAgIG9uQ29sdW1uUmVzaXplOiBvbkNvbHVtblJlc2l6ZVxuICAgICAgfSk7XG4gICAgfSkpLCByb3dzKTtcbiAgfSwgW2RhdGEsIHByZWZpeENscywgb25Sb3csIG1lYXN1cmVDb2x1bW5XaWR0aCwgZXhwYW5kZWRLZXlzLCBnZXRSb3dLZXksIGdldENvbXBvbmVudCwgY29tcG9uZW50V2lkdGgsIGVtcHR5Tm9kZSwgZmxhdHRlbkNvbHVtbnNdKTtcbn1cblxudmFyIE1lbW9Cb2R5ID0gLyojX19QVVJFX18qL1JlYWN0Lm1lbW8oQm9keSk7XG5NZW1vQm9keS5kaXNwbGF5TmFtZSA9ICdCb2R5JztcbmV4cG9ydCBkZWZhdWx0IE1lbW9Cb2R5OyIsImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5XCI7XG5pbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheVwiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgd2FybmluZyBmcm9tIFwicmMtdXRpbC9lcy93YXJuaW5nXCI7XG5pbXBvcnQgdG9BcnJheSBmcm9tIFwicmMtdXRpbC9lcy9DaGlsZHJlbi90b0FycmF5XCI7XG5pbXBvcnQgeyBJTlRFUk5BTF9DT0xfREVGSU5FIH0gZnJvbSAnLi4vdXRpbHMvbGVnYWN5VXRpbCc7XG5leHBvcnQgZnVuY3Rpb24gY29udmVydENoaWxkcmVuVG9Db2x1bW5zKGNoaWxkcmVuKSB7XG4gIHJldHVybiB0b0FycmF5KGNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KG5vZGUpO1xuICB9KS5tYXAoZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIga2V5ID0gX3JlZi5rZXksXG4gICAgICAgIHByb3BzID0gX3JlZi5wcm9wcztcblxuICAgIHZhciBub2RlQ2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgcmVzdFByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHByb3BzLCBbXCJjaGlsZHJlblwiXSk7XG5cbiAgICB2YXIgY29sdW1uID0gX29iamVjdFNwcmVhZCh7XG4gICAgICBrZXk6IGtleVxuICAgIH0sIHJlc3RQcm9wcyk7XG5cbiAgICBpZiAobm9kZUNoaWxkcmVuKSB7XG4gICAgICBjb2x1bW4uY2hpbGRyZW4gPSBjb252ZXJ0Q2hpbGRyZW5Ub0NvbHVtbnMobm9kZUNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1uO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZmxhdENvbHVtbnMoY29sdW1ucykge1xuICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoZnVuY3Rpb24gKGxpc3QsIGNvbHVtbikge1xuICAgIHZhciBmaXhlZCA9IGNvbHVtbi5maXhlZDsgLy8gQ29udmVydCBgZml4ZWQ9J3RydWUnYCB0byBgZml4ZWQ9J2xlZnQnYCBpbnN0ZWFkXG5cbiAgICB2YXIgcGFyc2VkRml4ZWQgPSBmaXhlZCA9PT0gdHJ1ZSA/ICdsZWZ0JyA6IGZpeGVkO1xuICAgIHZhciBzdWJDb2x1bW5zID0gY29sdW1uLmNoaWxkcmVuO1xuXG4gICAgaWYgKHN1YkNvbHVtbnMgJiYgc3ViQ29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShsaXN0KSwgX3RvQ29uc3VtYWJsZUFycmF5KGZsYXRDb2x1bW5zKHN1YkNvbHVtbnMpLm1hcChmdW5jdGlvbiAoc3ViQ29sdW0pIHtcbiAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoe1xuICAgICAgICAgIGZpeGVkOiBwYXJzZWRGaXhlZFxuICAgICAgICB9LCBzdWJDb2x1bSk7XG4gICAgICB9KSkpO1xuICAgIH1cblxuICAgIHJldHVybiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGxpc3QpLCBbX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBjb2x1bW4pLCB7fSwge1xuICAgICAgZml4ZWQ6IHBhcnNlZEZpeGVkXG4gICAgfSldKTtcbiAgfSwgW10pO1xufVxuXG5mdW5jdGlvbiB3YXJuaW5nRml4ZWQoZmxhdHRlbkNvbHVtbnMpIHtcbiAgdmFyIGFsbEZpeExlZnQgPSB0cnVlO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZmxhdHRlbkNvbHVtbnMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICB2YXIgY29sID0gZmxhdHRlbkNvbHVtbnNbaV07XG5cbiAgICBpZiAoYWxsRml4TGVmdCAmJiBjb2wuZml4ZWQgIT09ICdsZWZ0Jykge1xuICAgICAgYWxsRml4TGVmdCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIWFsbEZpeExlZnQgJiYgY29sLmZpeGVkID09PSAnbGVmdCcpIHtcbiAgICAgIHdhcm5pbmcoZmFsc2UsIFwiSW5kZXggXCIuY29uY2F0KGkgLSAxLCBcIiBvZiBgY29sdW1uc2AgbWlzc2luZyBgZml4ZWQ9J2xlZnQnYCBwcm9wLlwiKSk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2YXIgYWxsRml4UmlnaHQgPSB0cnVlO1xuXG4gIGZvciAodmFyIF9pID0gZmxhdHRlbkNvbHVtbnMubGVuZ3RoIC0gMTsgX2kgPj0gMDsgX2kgLT0gMSkge1xuICAgIHZhciBfY29sID0gZmxhdHRlbkNvbHVtbnNbX2ldO1xuXG4gICAgaWYgKGFsbEZpeFJpZ2h0ICYmIF9jb2wuZml4ZWQgIT09ICdyaWdodCcpIHtcbiAgICAgIGFsbEZpeFJpZ2h0ID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghYWxsRml4UmlnaHQgJiYgX2NvbC5maXhlZCA9PT0gJ3JpZ2h0Jykge1xuICAgICAgd2FybmluZyhmYWxzZSwgXCJJbmRleCBcIi5jb25jYXQoX2kgKyAxLCBcIiBvZiBgY29sdW1uc2AgbWlzc2luZyBgZml4ZWQ9J3JpZ2h0J2AgcHJvcC5cIikpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHJldmVydEZvclJ0bChjb2x1bW5zKSB7XG4gIHJldHVybiBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uKSB7XG4gICAgdmFyIGZpeGVkID0gY29sdW1uLmZpeGVkLFxuICAgICAgICByZXN0UHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoY29sdW1uLCBbXCJmaXhlZFwiXSk7IC8vIENvbnZlcnQgYGZpeGVkPSdsZWZ0J2AgdG8gYGZpeGVkPSdyaWdodCdgIGluc3RlYWRcblxuXG4gICAgdmFyIHBhcnNlZEZpeGVkID0gZml4ZWQ7XG5cbiAgICBpZiAoZml4ZWQgPT09ICdsZWZ0Jykge1xuICAgICAgcGFyc2VkRml4ZWQgPSAncmlnaHQnO1xuICAgIH0gZWxzZSBpZiAoZml4ZWQgPT09ICdyaWdodCcpIHtcbiAgICAgIHBhcnNlZEZpeGVkID0gJ2xlZnQnO1xuICAgIH1cblxuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgIGZpeGVkOiBwYXJzZWRGaXhlZFxuICAgIH0sIHJlc3RQcm9wcyk7XG4gIH0pO1xufVxuLyoqXG4gKiBQYXJzZSBgY29sdW1uc2AgJiBgY2hpbGRyZW5gIGludG8gYGNvbHVtbnNgLlxuICovXG5cblxuZnVuY3Rpb24gdXNlQ29sdW1ucyhfcmVmMiwgdHJhbnNmb3JtQ29sdW1ucykge1xuICB2YXIgcHJlZml4Q2xzID0gX3JlZjIucHJlZml4Q2xzLFxuICAgICAgY29sdW1ucyA9IF9yZWYyLmNvbHVtbnMsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYyLmNoaWxkcmVuLFxuICAgICAgZXhwYW5kYWJsZSA9IF9yZWYyLmV4cGFuZGFibGUsXG4gICAgICBleHBhbmRlZEtleXMgPSBfcmVmMi5leHBhbmRlZEtleXMsXG4gICAgICBnZXRSb3dLZXkgPSBfcmVmMi5nZXRSb3dLZXksXG4gICAgICBvblRyaWdnZXJFeHBhbmQgPSBfcmVmMi5vblRyaWdnZXJFeHBhbmQsXG4gICAgICBleHBhbmRJY29uID0gX3JlZjIuZXhwYW5kSWNvbixcbiAgICAgIHJvd0V4cGFuZGFibGUgPSBfcmVmMi5yb3dFeHBhbmRhYmxlLFxuICAgICAgZXhwYW5kSWNvbkNvbHVtbkluZGV4ID0gX3JlZjIuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgZGlyZWN0aW9uID0gX3JlZjIuZGlyZWN0aW9uLFxuICAgICAgZXhwYW5kUm93QnlDbGljayA9IF9yZWYyLmV4cGFuZFJvd0J5Q2xpY2ssXG4gICAgICBjb2x1bW5XaWR0aCA9IF9yZWYyLmNvbHVtbldpZHRoO1xuICB2YXIgYmFzZUNvbHVtbnMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY29sdW1ucyB8fCBjb252ZXJ0Q2hpbGRyZW5Ub0NvbHVtbnMoY2hpbGRyZW4pO1xuICB9LCBbY29sdW1ucywgY2hpbGRyZW5dKTsgLy8gQWRkIGV4cGFuZCBjb2x1bW5cblxuICB2YXIgd2l0aEV4cGFuZENvbHVtbnMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZXhwYW5kYWJsZSkge1xuICAgICAgdmFyIF9leHBhbmRDb2x1bW47XG5cbiAgICAgIHZhciBleHBhbmRDb2xJbmRleCA9IGV4cGFuZEljb25Db2x1bW5JbmRleCB8fCAwO1xuICAgICAgdmFyIHByZXZDb2x1bW4gPSBiYXNlQ29sdW1uc1tleHBhbmRDb2xJbmRleF07XG4gICAgICB2YXIgZXhwYW5kQ29sdW1uID0gKF9leHBhbmRDb2x1bW4gPSB7fSwgX2RlZmluZVByb3BlcnR5KF9leHBhbmRDb2x1bW4sIElOVEVSTkFMX0NPTF9ERUZJTkUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWV4cGFuZC1pY29uLWNvbFwiKVxuICAgICAgfSksIF9kZWZpbmVQcm9wZXJ0eShfZXhwYW5kQ29sdW1uLCBcInRpdGxlXCIsICcnKSwgX2RlZmluZVByb3BlcnR5KF9leHBhbmRDb2x1bW4sIFwiZml4ZWRcIiwgcHJldkNvbHVtbiA/IHByZXZDb2x1bW4uZml4ZWQgOiBudWxsKSwgX2RlZmluZVByb3BlcnR5KF9leHBhbmRDb2x1bW4sIFwiY2xhc3NOYW1lXCIsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcm93LWV4cGFuZC1pY29uLWNlbGxcIikpLCBfZGVmaW5lUHJvcGVydHkoX2V4cGFuZENvbHVtbiwgXCJ3aWR0aFwiLCBjb2x1bW5XaWR0aCksIF9kZWZpbmVQcm9wZXJ0eShfZXhwYW5kQ29sdW1uLCBcInJlbmRlclwiLCBmdW5jdGlvbiByZW5kZXIoXywgcmVjb3JkLCBpbmRleCkge1xuICAgICAgICB2YXIgcm93S2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICB2YXIgZXhwYW5kZWQgPSBleHBhbmRlZEtleXMuaGFzKHJvd0tleSk7XG4gICAgICAgIHZhciByZWNvcmRFeHBhbmRhYmxlID0gcm93RXhwYW5kYWJsZSA/IHJvd0V4cGFuZGFibGUocmVjb3JkKSA6IHRydWU7XG4gICAgICAgIHZhciBpY29uID0gZXhwYW5kSWNvbih7XG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgZXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgICAgICAgIGV4cGFuZGFibGU6IHJlY29yZEV4cGFuZGFibGUsXG4gICAgICAgICAgcmVjb3JkOiByZWNvcmQsXG4gICAgICAgICAgb25FeHBhbmQ6IG9uVHJpZ2dlckV4cGFuZFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZXhwYW5kUm93QnlDbGljaykge1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICAgICAgb25DbGljazogZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIGljb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGljb247XG4gICAgICB9KSwgX2V4cGFuZENvbHVtbik7IC8vIEluc2VydCBleHBhbmQgY29sdW1uIGluIHRoZSB0YXJnZXQgcG9zaXRpb25cblxuICAgICAgdmFyIGNsb25lQ29sdW1ucyA9IGJhc2VDb2x1bW5zLnNsaWNlKCk7XG5cbiAgICAgIGlmIChleHBhbmRDb2xJbmRleCA+PSAwKSB7XG4gICAgICAgIGNsb25lQ29sdW1ucy5zcGxpY2UoZXhwYW5kQ29sSW5kZXgsIDAsIGV4cGFuZENvbHVtbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjbG9uZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2VDb2x1bW5zO1xuICB9LCBbZXhwYW5kYWJsZSwgYmFzZUNvbHVtbnMsIGdldFJvd0tleSwgZXhwYW5kZWRLZXlzLCBleHBhbmRJY29uLCBkaXJlY3Rpb25dKTtcbiAgdmFyIG1lcmdlZENvbHVtbnMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZmluYWxDb2x1bW5zID0gd2l0aEV4cGFuZENvbHVtbnM7XG5cbiAgICBpZiAodHJhbnNmb3JtQ29sdW1ucykge1xuICAgICAgZmluYWxDb2x1bW5zID0gdHJhbnNmb3JtQ29sdW1ucyhmaW5hbENvbHVtbnMpO1xuICAgIH0gLy8gQWx3YXlzIHByb3ZpZGVzIGF0IGxlYXN0IG9uZSBjb2x1bW4gZm9yIHRhYmxlIGRpc3BsYXlcblxuXG4gICAgaWYgKCFmaW5hbENvbHVtbnMubGVuZ3RoKSB7XG4gICAgICBmaW5hbENvbHVtbnMgPSBbe1xuICAgICAgICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbmFsQ29sdW1ucztcbiAgfSwgW3RyYW5zZm9ybUNvbHVtbnMsIHdpdGhFeHBhbmRDb2x1bW5zLCBkaXJlY3Rpb25dKTtcbiAgdmFyIGZsYXR0ZW5Db2x1bW5zID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgIHJldHVybiByZXZlcnRGb3JSdGwoZmxhdENvbHVtbnMobWVyZ2VkQ29sdW1ucykpO1xuICAgIH1cblxuICAgIHJldHVybiBmbGF0Q29sdW1ucyhtZXJnZWRDb2x1bW5zKTtcbiAgfSwgW21lcmdlZENvbHVtbnMsIGRpcmVjdGlvbl0pOyAvLyBPbmx5IGNoZWNrIG91dCBvZiBwcm9kdWN0aW9uIHNpbmNlIGl0J3Mgd2FzdGUgZm9yIGVhY2ggcmVuZGVyXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuaW5nRml4ZWQoZmxhdHRlbkNvbHVtbnMpO1xuICB9XG5cbiAgcmV0dXJuIFttZXJnZWRDb2x1bW5zLCBmbGF0dGVuQ29sdW1uc107XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZUNvbHVtbnM7IiwiaW1wb3J0IF9zbGljZWRUb0FycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9zbGljZWRUb0FycmF5XCI7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEV4ZWN1dGUgY29kZSBiZWZvcmUgbmV4dCBmcmFtZSBidXQgYXN5bmNcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlTGF5b3V0U3RhdGUoZGVmYXVsdFN0YXRlKSB7XG4gIHZhciBzdGF0ZVJlZiA9IHVzZVJlZihkZWZhdWx0U3RhdGUpO1xuXG4gIHZhciBfdXNlU3RhdGUgPSB1c2VTdGF0ZSh7fSksXG4gICAgICBfdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX3VzZVN0YXRlLCAyKSxcbiAgICAgIGZvcmNlVXBkYXRlID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgbGFzdFByb21pc2VSZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciB1cGRhdGVCYXRjaFJlZiA9IHVzZVJlZihbXSk7XG5cbiAgZnVuY3Rpb24gc2V0RnJhbWVTdGF0ZSh1cGRhdGVyKSB7XG4gICAgdXBkYXRlQmF0Y2hSZWYuY3VycmVudC5wdXNoKHVwZGF0ZXIpO1xuICAgIHZhciBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgbGFzdFByb21pc2VSZWYuY3VycmVudCA9IHByb21pc2U7XG4gICAgcHJvbWlzZS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChsYXN0UHJvbWlzZVJlZi5jdXJyZW50ID09PSBwcm9taXNlKSB7XG4gICAgICAgIHZhciBwcmV2QmF0Y2ggPSB1cGRhdGVCYXRjaFJlZi5jdXJyZW50O1xuICAgICAgICB2YXIgcHJldlN0YXRlID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgICAgdXBkYXRlQmF0Y2hSZWYuY3VycmVudCA9IFtdO1xuICAgICAgICBwcmV2QmF0Y2guZm9yRWFjaChmdW5jdGlvbiAoYmF0Y2hVcGRhdGVyKSB7XG4gICAgICAgICAgc3RhdGVSZWYuY3VycmVudCA9IGJhdGNoVXBkYXRlcihzdGF0ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxhc3RQcm9taXNlUmVmLmN1cnJlbnQgPSBudWxsO1xuXG4gICAgICAgIGlmIChwcmV2U3RhdGUgIT09IHN0YXRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBmb3JjZVVwZGF0ZSh7fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxhc3RQcm9taXNlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIFtzdGF0ZVJlZi5jdXJyZW50LCBzZXRGcmFtZVN0YXRlXTtcbn1cbi8qKiBMb2NrIGZyYW1lLCB3aGVuIGZyYW1lIHBhc3MgcmVzZXQgdGhlIGxvY2suICovXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VUaW1lb3V0TG9jayhkZWZhdWx0U3RhdGUpIHtcbiAgdmFyIGZyYW1lUmVmID0gdXNlUmVmKGRlZmF1bHRTdGF0ZSB8fCBudWxsKTtcbiAgdmFyIHRpbWVvdXRSZWYgPSB1c2VSZWYoKTtcblxuICBmdW5jdGlvbiBjbGVhblVwKCkge1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dFJlZi5jdXJyZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgZnJhbWVSZWYuY3VycmVudCA9IG5ld1N0YXRlO1xuICAgIGNsZWFuVXAoKTtcbiAgICB0aW1lb3V0UmVmLmN1cnJlbnQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBmcmFtZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgIHRpbWVvdXRSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0U3RhdGUoKSB7XG4gICAgcmV0dXJuIGZyYW1lUmVmLmN1cnJlbnQ7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjbGVhblVwO1xuICB9LCBbXSk7XG4gIHJldHVybiBbc2V0U3RhdGUsIGdldFN0YXRlXTtcbn0iLCJpbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuLyoqXG4gKiBHZXQgc3RpY2t5IGNvbHVtbiBvZmZzZXQgd2lkdGhcbiAqL1xuXG5mdW5jdGlvbiB1c2VTdGlja3lPZmZzZXRzKGNvbFdpZHRocywgY29sdW1uQ291bnQsIGRpcmVjdGlvbikge1xuICB2YXIgc3RpY2t5T2Zmc2V0cyA9IHVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZWZ0T2Zmc2V0cyA9IFtdO1xuICAgIHZhciByaWdodE9mZnNldHMgPSBbXTtcbiAgICB2YXIgbGVmdCA9IDA7XG4gICAgdmFyIHJpZ2h0ID0gMDtcblxuICAgIGZvciAodmFyIHN0YXJ0ID0gMDsgc3RhcnQgPCBjb2x1bW5Db3VudDsgc3RhcnQgKz0gMSkge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3J0bCcpIHtcbiAgICAgICAgLy8gTGVmdCBvZmZzZXRcbiAgICAgICAgcmlnaHRPZmZzZXRzW3N0YXJ0XSA9IHJpZ2h0O1xuICAgICAgICByaWdodCArPSBjb2xXaWR0aHNbc3RhcnRdIHx8IDA7IC8vIFJpZ2h0IG9mZnNldFxuXG4gICAgICAgIHZhciBlbmQgPSBjb2x1bW5Db3VudCAtIHN0YXJ0IC0gMTtcbiAgICAgICAgbGVmdE9mZnNldHNbZW5kXSA9IGxlZnQ7XG4gICAgICAgIGxlZnQgKz0gY29sV2lkdGhzW2VuZF0gfHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIExlZnQgb2Zmc2V0XG4gICAgICAgIGxlZnRPZmZzZXRzW3N0YXJ0XSA9IGxlZnQ7XG4gICAgICAgIGxlZnQgKz0gY29sV2lkdGhzW3N0YXJ0XSB8fCAwOyAvLyBSaWdodCBvZmZzZXRcblxuICAgICAgICB2YXIgX2VuZCA9IGNvbHVtbkNvdW50IC0gc3RhcnQgLSAxO1xuXG4gICAgICAgIHJpZ2h0T2Zmc2V0c1tfZW5kXSA9IHJpZ2h0O1xuICAgICAgICByaWdodCArPSBjb2xXaWR0aHNbX2VuZF0gfHwgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogbGVmdE9mZnNldHMsXG4gICAgICByaWdodDogcmlnaHRPZmZzZXRzXG4gICAgfTtcbiAgfSwgW2NvbFdpZHRocywgY29sdW1uQ291bnQsIGRpcmVjdGlvbl0pO1xuICByZXR1cm4gc3RpY2t5T2Zmc2V0cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlU3RpY2t5T2Zmc2V0czsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIFBhbmVsKF9yZWYpIHtcbiAgdmFyIGNsYXNzTmFtZSA9IF9yZWYuY2xhc3NOYW1lLFxuICAgICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuO1xuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gIH0sIGNoaWxkcmVuKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFuZWw7IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFRhYmxlQ29udGV4dCBmcm9tICcuLi9jb250ZXh0L1RhYmxlQ29udGV4dCc7XG5pbXBvcnQgQ2VsbCBmcm9tICcuL0NlbGwnO1xuaW1wb3J0IFJvdyBmcm9tICcuL1Jvdyc7XG5cbmZ1bmN0aW9uIEZvb3RlcihfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW47XG5cbiAgdmFyIF9SZWFjdCR1c2VDb250ZXh0ID0gUmVhY3QudXNlQ29udGV4dChUYWJsZUNvbnRleHQpLFxuICAgICAgcHJlZml4Q2xzID0gX1JlYWN0JHVzZUNvbnRleHQucHJlZml4Q2xzO1xuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInRmb290XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc3VtbWFyeVwiKVxuICB9LCBjaGlsZHJlbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvb3RlcjtcbmV4cG9ydCB2YXIgRm9vdGVyQ29tcG9uZW50cyA9IHtcbiAgQ2VsbDogQ2VsbCxcbiAgUm93OiBSb3dcbn07IiwiaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ2VsbCBmcm9tICcuLi9DZWxsJztcbmltcG9ydCBUYWJsZUNvbnRleHQgZnJvbSAnLi4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU3VtbWFyeUNlbGwoX3JlZikge1xuICB2YXIgY2xhc3NOYW1lID0gX3JlZi5jbGFzc05hbWUsXG4gICAgICBpbmRleCA9IF9yZWYuaW5kZXgsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBjb2xTcGFuID0gX3JlZi5jb2xTcGFuLFxuICAgICAgcm93U3BhbiA9IF9yZWYucm93U3BhbixcbiAgICAgIGFsaWduID0gX3JlZi5hbGlnbjtcblxuICB2YXIgX1JlYWN0JHVzZUNvbnRleHQgPSBSZWFjdC51c2VDb250ZXh0KFRhYmxlQ29udGV4dCksXG4gICAgICBwcmVmaXhDbHMgPSBfUmVhY3QkdXNlQ29udGV4dC5wcmVmaXhDbHMsXG4gICAgICBmaXhlZEluZm9MaXN0ID0gX1JlYWN0JHVzZUNvbnRleHQuZml4ZWRJbmZvTGlzdDtcblxuICB2YXIgZml4ZWRJbmZvID0gZml4ZWRJbmZvTGlzdFtpbmRleF07XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDZWxsLCBfZXh0ZW5kcyh7XG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgaW5kZXg6IGluZGV4LFxuICAgIGNvbXBvbmVudDogXCJ0ZFwiLFxuICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgIHJlY29yZDogbnVsbCxcbiAgICBkYXRhSW5kZXg6IG51bGwsXG4gICAgYWxpZ246IGFsaWduLFxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGNvbFNwYW46IGNvbFNwYW4sXG4gICAgICAgICAgcm93U3Bhbjogcm93U3BhblxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSwgZml4ZWRJbmZvKSk7XG59IiwiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9vdGVyUm93KHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInRyXCIsIHByb3BzKTtcbn0iLCJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRXhwYW5kSWNvbihfcmVmKSB7XG4gIHZhciBfY2xhc3NOYW1lcztcblxuICB2YXIgcHJlZml4Q2xzID0gX3JlZi5wcmVmaXhDbHMsXG4gICAgICByZWNvcmQgPSBfcmVmLnJlY29yZCxcbiAgICAgIG9uRXhwYW5kID0gX3JlZi5vbkV4cGFuZCxcbiAgICAgIGV4cGFuZGVkID0gX3JlZi5leHBhbmRlZCxcbiAgICAgIGV4cGFuZGFibGUgPSBfcmVmLmV4cGFuZGFibGU7XG4gIHZhciBleHBhbmRDbGFzc05hbWUgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJvdy1leHBhbmQtaWNvblwiKTtcblxuICBpZiAoIWV4cGFuZGFibGUpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhleHBhbmRDbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcm93LXNwYWNlZFwiKSlcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBvbkNsaWNrID0gZnVuY3Rpb24gb25DbGljayhldmVudCkge1xuICAgIG9uRXhwYW5kKHJlY29yZCwgZXZlbnQpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9O1xuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhleHBhbmRDbGFzc05hbWUsIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcm93LWV4cGFuZGVkXCIpLCBleHBhbmRlZCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1yb3ctY29sbGFwc2VkXCIpLCAhZXhwYW5kZWQpLCBfY2xhc3NOYW1lcykpLFxuICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbENoaWxkcmVuS2V5cyhkYXRhLCBnZXRSb3dLZXksIGNoaWxkcmVuQ29sdW1uTmFtZSkge1xuICB2YXIga2V5cyA9IFtdO1xuXG4gIGZ1bmN0aW9uIGRpZyhsaXN0KSB7XG4gICAgKGxpc3QgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7XG4gICAgICBrZXlzLnB1c2goZ2V0Um93S2V5KGl0ZW0sIGluZGV4KSk7XG4gICAgICBkaWcoaXRlbVtjaGlsZHJlbkNvbHVtbk5hbWVdKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRpZyhkYXRhKTtcbiAgcmV0dXJuIGtleXM7XG59IiwiLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbnZhciBQSVhFTF9QQVRURVJOID0gL21hcmdpbnxwYWRkaW5nfHdpZHRofGhlaWdodHxtYXh8bWlufG9mZnNldC87XG52YXIgcmVtb3ZlUGl4ZWwgPSB7XG4gIGxlZnQ6IHRydWUsXG4gIHRvcDogdHJ1ZVxufTtcbnZhciBmbG9hdE1hcCA9IHtcbiAgY3NzRmxvYXQ6IDEsXG4gIHN0eWxlRmxvYXQ6IDEsXG4gIGZsb2F0OiAxXG59O1xuXG5mdW5jdGlvbiBnZXRDb21wdXRlZFN0eWxlKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IDEgPyBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShub2RlLCBudWxsKSA6IHt9O1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsZVZhbHVlKG5vZGUsIHR5cGUsIHZhbHVlKSB7XG4gIHR5cGUgPSB0eXBlLnRvTG93ZXJDYXNlKCk7XG5cbiAgaWYgKHZhbHVlID09PSAnYXV0bycpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgIHJldHVybiBub2RlLm9mZnNldEhlaWdodDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3dpZHRoJykge1xuICAgICAgcmV0dXJuIG5vZGUub2Zmc2V0V2lkdGg7XG4gICAgfVxuICB9XG5cbiAgaWYgKCEodHlwZSBpbiByZW1vdmVQaXhlbCkpIHtcbiAgICByZW1vdmVQaXhlbFt0eXBlXSA9IFBJWEVMX1BBVFRFUk4udGVzdCh0eXBlKTtcbiAgfVxuXG4gIHJldHVybiByZW1vdmVQaXhlbFt0eXBlXSA/IHBhcnNlRmxvYXQodmFsdWUpIHx8IDAgOiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldChub2RlLCBuYW1lKSB7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpO1xuICBuYW1lID0gZmxvYXRNYXBbbmFtZV0gPyAnY3NzRmxvYXQnIGluIG5vZGUuc3R5bGUgPyAnY3NzRmxvYXQnIDogJ3N0eWxlRmxvYXQnIDogbmFtZTtcbiAgcmV0dXJuIGxlbmd0aCA9PT0gMSA/IHN0eWxlIDogZ2V0U3R5bGVWYWx1ZShub2RlLCBuYW1lLCBzdHlsZVtuYW1lXSB8fCBub2RlLnN0eWxlW25hbWVdKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXQobm9kZSwgbmFtZSwgdmFsdWUpIHtcbiAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIG5hbWUgPSBmbG9hdE1hcFtuYW1lXSA/ICdjc3NGbG9hdCcgaW4gbm9kZS5zdHlsZSA/ICdjc3NGbG9hdCcgOiAnc3R5bGVGbG9hdCcgOiBuYW1lO1xuXG4gIGlmIChsZW5ndGggPT09IDMpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBQSVhFTF9QQVRURVJOLnRlc3QobmFtZSkpIHtcbiAgICAgIHZhbHVlID0gXCJcIi5jb25jYXQodmFsdWUsIFwicHhcIik7XG4gICAgfVxuXG4gICAgbm9kZS5zdHlsZVtuYW1lXSA9IHZhbHVlOyAvLyBOdW1iZXJcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGZvciAodmFyIHggaW4gbmFtZSkge1xuICAgIGlmIChuYW1lLmhhc093blByb3BlcnR5KHgpKSB7XG4gICAgICBzZXQobm9kZSwgeCwgbmFtZVt4XSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUobm9kZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0ZXJXaWR0aChlbCkge1xuICBpZiAoZWwgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIGVsLm9mZnNldFdpZHRoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE91dGVySGVpZ2h0KGVsKSB7XG4gIGlmIChlbCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgfVxuXG4gIHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RG9jU2l6ZSgpIHtcbiAgdmFyIHdpZHRoID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFdpZHRoLCBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKTtcbiAgdmFyIGhlaWdodCA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0KTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRTaXplKCkge1xuICB2YXIgd2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHZhciBoZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JvbGwoKSB7XG4gIHJldHVybiB7XG4gICAgc2Nyb2xsTGVmdDogTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsIGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCksXG4gICAgc2Nyb2xsVG9wOiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcClcbiAgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRPZmZzZXQobm9kZSkge1xuICB2YXIgYm94ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgdmFyIGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7IC8vIDwgaWU4IOS4jeaUr+aMgSB3aW4ucGFnZVhPZmZzZXQsIOWImeS9v+eUqCBkb2NFbGVtLnNjcm9sbExlZnRcblxuICByZXR1cm4ge1xuICAgIGxlZnQ6IGJveC5sZWZ0ICsgKHdpbmRvdy5wYWdlWE9mZnNldCB8fCBkb2NFbGVtLnNjcm9sbExlZnQpIC0gKGRvY0VsZW0uY2xpZW50TGVmdCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudExlZnQgfHwgMCksXG4gICAgdG9wOiBib3gudG9wICsgKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2NFbGVtLnNjcm9sbFRvcCkgLSAoZG9jRWxlbS5jbGllbnRUb3AgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRUb3AgfHwgMClcbiAgfTtcbn0iLCJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDJcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGFkZEV2ZW50TGlzdGVuZXIgZnJvbSBcInJjLXV0aWwvZXMvRG9tL2FkZEV2ZW50TGlzdGVuZXJcIjtcbmltcG9ydCBnZXRTY3JvbGxCYXJTaXplIGZyb20gXCJyYy11dGlsL2VzL2dldFNjcm9sbEJhclNpemVcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgZ2V0T2Zmc2V0IH0gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2Nzc1wiO1xuaW1wb3J0IFRhYmxlQ29udGV4dCBmcm9tICcuL2NvbnRleHQvVGFibGVDb250ZXh0JztcbmltcG9ydCB7IHVzZUxheW91dFN0YXRlIH0gZnJvbSAnLi9ob29rcy91c2VGcmFtZSc7XG5cbnZhciBTdGlja3lTY3JvbGxCYXIgPSBmdW5jdGlvbiBTdGlja3lTY3JvbGxCYXIoX3JlZiwgcmVmKSB7XG4gIHZhciBfc2Nyb2xsQm9keVJlZiRjdXJyZW4sIF9zY3JvbGxCb2R5UmVmJGN1cnJlbjI7XG5cbiAgdmFyIHNjcm9sbEJvZHlSZWYgPSBfcmVmLnNjcm9sbEJvZHlSZWYsXG4gICAgICBvblNjcm9sbCA9IF9yZWYub25TY3JvbGwsXG4gICAgICBvZmZzZXRTY3JvbGwgPSBfcmVmLm9mZnNldFNjcm9sbCxcbiAgICAgIGNvbnRhaW5lciA9IF9yZWYuY29udGFpbmVyO1xuXG4gIHZhciBfUmVhY3QkdXNlQ29udGV4dCA9IFJlYWN0LnVzZUNvbnRleHQoVGFibGVDb250ZXh0KSxcbiAgICAgIHByZWZpeENscyA9IF9SZWFjdCR1c2VDb250ZXh0LnByZWZpeENscztcblxuICB2YXIgYm9keVNjcm9sbFdpZHRoID0gKChfc2Nyb2xsQm9keVJlZiRjdXJyZW4gPSBzY3JvbGxCb2R5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9zY3JvbGxCb2R5UmVmJGN1cnJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Njcm9sbEJvZHlSZWYkY3VycmVuLnNjcm9sbFdpZHRoKSB8fCAwO1xuICB2YXIgYm9keVdpZHRoID0gKChfc2Nyb2xsQm9keVJlZiRjdXJyZW4yID0gc2Nyb2xsQm9keVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfc2Nyb2xsQm9keVJlZiRjdXJyZW4yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc2Nyb2xsQm9keVJlZiRjdXJyZW4yLmNsaWVudFdpZHRoKSB8fCAwO1xuICB2YXIgc2Nyb2xsQmFyV2lkdGggPSBib2R5U2Nyb2xsV2lkdGggJiYgYm9keVdpZHRoICogKGJvZHlXaWR0aCAvIGJvZHlTY3JvbGxXaWR0aCk7XG4gIHZhciBzY3JvbGxCYXJSZWYgPSBSZWFjdC51c2VSZWYoKTtcblxuICB2YXIgX3VzZUxheW91dFN0YXRlID0gdXNlTGF5b3V0U3RhdGUoe1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgaXNIaWRkZW5TY3JvbGxCYXI6IGZhbHNlXG4gIH0pLFxuICAgICAgX3VzZUxheW91dFN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VMYXlvdXRTdGF0ZSwgMiksXG4gICAgICBzY3JvbGxTdGF0ZSA9IF91c2VMYXlvdXRTdGF0ZTJbMF0sXG4gICAgICBzZXRTY3JvbGxTdGF0ZSA9IF91c2VMYXlvdXRTdGF0ZTJbMV07XG5cbiAgdmFyIHJlZlN0YXRlID0gUmVhY3QudXNlUmVmKHtcbiAgICBkZWx0YTogMCxcbiAgICB4OiAwXG4gIH0pO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICAgIGlzQWN0aXZlID0gX1JlYWN0JHVzZVN0YXRlMlswXSxcbiAgICAgIHNldEFjdGl2ZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgdmFyIG9uTW91c2VVcCA9IGZ1bmN0aW9uIG9uTW91c2VVcCgpIHtcbiAgICBzZXRBY3RpdmUoZmFsc2UpO1xuICB9O1xuXG4gIHZhciBvbk1vdXNlRG93biA9IGZ1bmN0aW9uIG9uTW91c2VEb3duKGV2ZW50KSB7XG4gICAgZXZlbnQucGVyc2lzdCgpO1xuICAgIHJlZlN0YXRlLmN1cnJlbnQuZGVsdGEgPSBldmVudC5wYWdlWCAtIHNjcm9sbFN0YXRlLnNjcm9sbExlZnQ7XG4gICAgcmVmU3RhdGUuY3VycmVudC54ID0gMDtcbiAgICBzZXRBY3RpdmUodHJ1ZSk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICB2YXIgb25Nb3VzZU1vdmUgPSBmdW5jdGlvbiBvbk1vdXNlTW92ZShldmVudCkge1xuICAgIHZhciBfd2luZG93O1xuXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01vdXNlRXZlbnQvYnV0dG9uc1xuICAgIHZhciBfcmVmMiA9IGV2ZW50IHx8ICgoX3dpbmRvdyA9IHdpbmRvdykgPT09IG51bGwgfHwgX3dpbmRvdyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3dpbmRvdy5ldmVudCksXG4gICAgICAgIGJ1dHRvbnMgPSBfcmVmMi5idXR0b25zO1xuXG4gICAgaWYgKCFpc0FjdGl2ZSB8fCBidXR0b25zID09PSAwKSB7XG4gICAgICAvLyBJZiBvdXQgYm9keSBtb3VzZSB1cCwgd2UgY2FuIHNldCBpc0FjdGl2ZSBmYWxzZSB3aGVuIG1vdXNlIG1vdmVcbiAgICAgIGlmIChpc0FjdGl2ZSkge1xuICAgICAgICBzZXRBY3RpdmUoZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGxlZnQgPSByZWZTdGF0ZS5jdXJyZW50LnggKyBldmVudC5wYWdlWCAtIHJlZlN0YXRlLmN1cnJlbnQueCAtIHJlZlN0YXRlLmN1cnJlbnQuZGVsdGE7XG5cbiAgICBpZiAobGVmdCA8PSAwKSB7XG4gICAgICBsZWZ0ID0gMDtcbiAgICB9XG5cbiAgICBpZiAobGVmdCArIHNjcm9sbEJhcldpZHRoID49IGJvZHlXaWR0aCkge1xuICAgICAgbGVmdCA9IGJvZHlXaWR0aCAtIHNjcm9sbEJhcldpZHRoO1xuICAgIH1cblxuICAgIG9uU2Nyb2xsKHtcbiAgICAgIHNjcm9sbExlZnQ6IGxlZnQgLyBib2R5V2lkdGggKiAoYm9keVNjcm9sbFdpZHRoICsgMilcbiAgICB9KTtcbiAgICByZWZTdGF0ZS5jdXJyZW50LnggPSBldmVudC5wYWdlWDtcbiAgfTtcblxuICB2YXIgb25Db250YWluZXJTY3JvbGwgPSBmdW5jdGlvbiBvbkNvbnRhaW5lclNjcm9sbCgpIHtcbiAgICB2YXIgdGFibGVPZmZzZXRUb3AgPSBnZXRPZmZzZXQoc2Nyb2xsQm9keVJlZi5jdXJyZW50KS50b3A7XG4gICAgdmFyIHRhYmxlQm90dG9tT2Zmc2V0ID0gdGFibGVPZmZzZXRUb3AgKyBzY3JvbGxCb2R5UmVmLmN1cnJlbnQub2Zmc2V0SGVpZ2h0O1xuICAgIHZhciBjdXJyZW50Q2xpZW50T2Zmc2V0ID0gY29udGFpbmVyID09PSB3aW5kb3cgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wICsgd2luZG93LmlubmVySGVpZ2h0IDogZ2V0T2Zmc2V0KGNvbnRhaW5lcikudG9wICsgY29udGFpbmVyLmNsaWVudEhlaWdodDtcblxuICAgIGlmICh0YWJsZUJvdHRvbU9mZnNldCAtIGdldFNjcm9sbEJhclNpemUoKSA8PSBjdXJyZW50Q2xpZW50T2Zmc2V0IHx8IHRhYmxlT2Zmc2V0VG9wID49IGN1cnJlbnRDbGllbnRPZmZzZXQgLSBvZmZzZXRTY3JvbGwpIHtcbiAgICAgIHNldFNjcm9sbFN0YXRlKGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzdGF0ZSksIHt9LCB7XG4gICAgICAgICAgaXNIaWRkZW5TY3JvbGxCYXI6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0U2Nyb2xsU3RhdGUoZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHN0YXRlKSwge30sIHtcbiAgICAgICAgICBpc0hpZGRlblNjcm9sbEJhcjogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgdmFyIHNldFNjcm9sbExlZnQgPSBmdW5jdGlvbiBzZXRTY3JvbGxMZWZ0KGxlZnQpIHtcbiAgICBzZXRTY3JvbGxTdGF0ZShmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHN0YXRlKSwge30sIHtcbiAgICAgICAgc2Nyb2xsTGVmdDogbGVmdCAvIGJvZHlTY3JvbGxXaWR0aCAqIGJvZHlXaWR0aCB8fCAwXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcblxuICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzZXRTY3JvbGxMZWZ0OiBzZXRTY3JvbGxMZWZ0XG4gICAgfTtcbiAgfSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG9uTW91c2VVcExpc3RlbmVyID0gYWRkRXZlbnRMaXN0ZW5lcihkb2N1bWVudC5ib2R5LCAnbW91c2V1cCcsIG9uTW91c2VVcCwgZmFsc2UpO1xuICAgIHZhciBvbk1vdXNlTW92ZUxpc3RlbmVyID0gYWRkRXZlbnRMaXN0ZW5lcihkb2N1bWVudC5ib2R5LCAnbW91c2Vtb3ZlJywgb25Nb3VzZU1vdmUsIGZhbHNlKTtcbiAgICBvbkNvbnRhaW5lclNjcm9sbCgpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBvbk1vdXNlVXBMaXN0ZW5lci5yZW1vdmUoKTtcbiAgICAgIG9uTW91c2VNb3ZlTGlzdGVuZXIucmVtb3ZlKCk7XG4gICAgfTtcbiAgfSwgW3Njcm9sbEJhcldpZHRoLCBpc0FjdGl2ZV0pO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHZhciBvblNjcm9sbExpc3RlbmVyID0gYWRkRXZlbnRMaXN0ZW5lcihjb250YWluZXIsICdzY3JvbGwnLCBvbkNvbnRhaW5lclNjcm9sbCwgZmFsc2UpO1xuICAgIHZhciBvblJlc2l6ZUxpc3RlbmVyID0gYWRkRXZlbnRMaXN0ZW5lcih3aW5kb3csICdyZXNpemUnLCBvbkNvbnRhaW5lclNjcm9sbCwgZmFsc2UpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBvblNjcm9sbExpc3RlbmVyLnJlbW92ZSgpO1xuICAgICAgb25SZXNpemVMaXN0ZW5lci5yZW1vdmUoKTtcbiAgICB9O1xuICB9LCBbY29udGFpbmVyXSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFzY3JvbGxTdGF0ZS5pc0hpZGRlblNjcm9sbEJhcikge1xuICAgICAgc2V0U2Nyb2xsU3RhdGUoZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgICAgIHZhciBib2R5Tm9kZSA9IHNjcm9sbEJvZHlSZWYuY3VycmVudDtcblxuICAgICAgICBpZiAoIWJvZHlOb2RlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc3RhdGUpLCB7fSwge1xuICAgICAgICAgIHNjcm9sbExlZnQ6IGJvZHlOb2RlLnNjcm9sbExlZnQgLyBib2R5Tm9kZS5zY3JvbGxXaWR0aCAqIGJvZHlOb2RlLmNsaWVudFdpZHRoXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbc2Nyb2xsU3RhdGUuaXNIaWRkZW5TY3JvbGxCYXJdKTtcblxuICBpZiAoYm9keVNjcm9sbFdpZHRoIDw9IGJvZHlXaWR0aCB8fCAhc2Nyb2xsQmFyV2lkdGggfHwgc2Nyb2xsU3RhdGUuaXNIaWRkZW5TY3JvbGxCYXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgc3R5bGU6IHtcbiAgICAgIGhlaWdodDogZ2V0U2Nyb2xsQmFyU2l6ZSgpLFxuICAgICAgd2lkdGg6IGJvZHlXaWR0aCxcbiAgICAgIGJvdHRvbTogb2Zmc2V0U2Nyb2xsXG4gICAgfSxcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc3RpY2t5LXNjcm9sbFwiKVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgb25Nb3VzZURvd246IG9uTW91c2VEb3duLFxuICAgIHJlZjogc2Nyb2xsQmFyUmVmLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXN0aWNreS1zY3JvbGwtYmFyXCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc3RpY2t5LXNjcm9sbC1iYXItYWN0aXZlXCIpLCBpc0FjdGl2ZSkpLFxuICAgIHN0eWxlOiB7XG4gICAgICB3aWR0aDogXCJcIi5jb25jYXQoc2Nyb2xsQmFyV2lkdGgsIFwicHhcIiksXG4gICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlM2QoXCIuY29uY2F0KHNjcm9sbFN0YXRlLnNjcm9sbExlZnQsIFwicHgsIDAsIDApXCIpXG4gICAgfVxuICB9KSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCAvKiNfX1BVUkVfXyovUmVhY3QuZm9yd2FyZFJlZihTdGlja3lTY3JvbGxCYXIpOyIsImltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjYW5Vc2VEb20gZnJvbSBcInJjLXV0aWwvZXMvRG9tL2NhblVzZURvbVwiOyAvLyBmaXggc3NyIHJlbmRlclxuXG52YXIgZGVmYXVsdENvbnRhaW5lciA9IGNhblVzZURvbSgpID8gd2luZG93IDogbnVsbDtcbi8qKiBTdGlja3kgaGVhZGVyIGhvb2tzICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVN0aWNreShzdGlja3ksIHByZWZpeENscykge1xuICB2YXIgX3JlZiA9IF90eXBlb2Yoc3RpY2t5KSA9PT0gJ29iamVjdCcgPyBzdGlja3kgOiB7fSxcbiAgICAgIF9yZWYkb2Zmc2V0SGVhZGVyID0gX3JlZi5vZmZzZXRIZWFkZXIsXG4gICAgICBvZmZzZXRIZWFkZXIgPSBfcmVmJG9mZnNldEhlYWRlciA9PT0gdm9pZCAwID8gMCA6IF9yZWYkb2Zmc2V0SGVhZGVyLFxuICAgICAgX3JlZiRvZmZzZXRTY3JvbGwgPSBfcmVmLm9mZnNldFNjcm9sbCxcbiAgICAgIG9mZnNldFNjcm9sbCA9IF9yZWYkb2Zmc2V0U2Nyb2xsID09PSB2b2lkIDAgPyAwIDogX3JlZiRvZmZzZXRTY3JvbGwsXG4gICAgICBfcmVmJGdldENvbnRhaW5lciA9IF9yZWYuZ2V0Q29udGFpbmVyLFxuICAgICAgZ2V0Q29udGFpbmVyID0gX3JlZiRnZXRDb250YWluZXIgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZGVmYXVsdENvbnRhaW5lcjtcbiAgfSA6IF9yZWYkZ2V0Q29udGFpbmVyO1xuXG4gIHZhciBjb250YWluZXIgPSBnZXRDb250YWluZXIoKSB8fCBkZWZhdWx0Q29udGFpbmVyO1xuICByZXR1cm4gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGlzU3RpY2t5ID0gISFzdGlja3k7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlzU3RpY2t5OiBpc1N0aWNreSxcbiAgICAgIHN0aWNreUNsYXNzTmFtZTogaXNTdGlja3kgPyBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXN0aWNreS1oZWFkZXJcIikgOiAnJyxcbiAgICAgIG9mZnNldEhlYWRlcjogb2Zmc2V0SGVhZGVyLFxuICAgICAgb2Zmc2V0U2Nyb2xsOiBvZmZzZXRTY3JvbGwsXG4gICAgICBjb250YWluZXI6IGNvbnRhaW5lclxuICAgIH07XG4gIH0sIFtvZmZzZXRTY3JvbGwsIG9mZnNldEhlYWRlciwgcHJlZml4Q2xzLCBjb250YWluZXJdKTtcbn0iLCJpbXBvcnQgX2RlZmluZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9kZWZpbmVQcm9wZXJ0eVwiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXlcIjtcbmltcG9ydCBfdHlwZW9mIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90eXBlb2ZcIjtcbmltcG9ydCBfc2xpY2VkVG9BcnJheSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vc2xpY2VkVG9BcnJheVwiO1xuXG4vKipcbiAqIEZlYXR1cmU6XG4gKiAgLSBmaXhlZCBub3QgbmVlZCB0byBzZXQgd2lkdGhcbiAqICAtIHN1cHBvcnQgYHJvd0V4cGFuZGFibGVgIHRvIGNvbmZpZyByb3cgZXhwYW5kIGxvZ2ljXG4gKiAgLSBhZGQgYHN1bW1hcnlgIHRvIHN1cHBvcnQgYCgpID0+IFJlYWN0Tm9kZWBcbiAqXG4gKiBVcGRhdGU6XG4gKiAgLSBgZGF0YUluZGV4YCBpcyBgYXJyYXlbXWAgbm93XG4gKiAgLSBgZXhwYW5kYWJsZWAgd3JhcCBhbGwgdGhlIGV4cGFuZCByZWxhdGVkIHByb3BzXG4gKlxuICogUmVtb3ZlZDpcbiAqICAtIGV4cGFuZEljb25Bc0NlbGxcbiAqICAtIHVzZUZpeGVkSGVhZGVyXG4gKiAgLSByb3dSZWZcbiAqICAtIGNvbHVtbnNbbnVtYmVyXS5vbkNlbGxDbGlja1xuICogIC0gb25Sb3dDbGlja1xuICogIC0gb25Sb3dEb3VibGVDbGlja1xuICogIC0gb25Sb3dNb3VzZUVudGVyXG4gKiAgLSBvblJvd01vdXNlTGVhdmVcbiAqICAtIGdldEJvZHlXcmFwcGVyXG4gKiAgLSBib2R5U3R5bGVcbiAqXG4gKiBEZXByZWNhdGVkOlxuICogIC0gQWxsIGV4cGFuZGVkIHByb3BzLCBtb3ZlIGludG8gZXhwYW5kYWJsZVxuICovXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgaXNWaXNpYmxlIGZyb20gXCJyYy11dGlsL2VzL0RvbS9pc1Zpc2libGVcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHNoYWxsb3dFcXVhbCBmcm9tICdzaGFsbG93ZXF1YWwnO1xuaW1wb3J0IHdhcm5pbmcgZnJvbSBcInJjLXV0aWwvZXMvd2FybmluZ1wiO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJ3JjLXJlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQgZ2V0U2Nyb2xsQmFyU2l6ZSBmcm9tIFwicmMtdXRpbC9lcy9nZXRTY3JvbGxCYXJTaXplXCI7XG5pbXBvcnQgQ29sdW1uR3JvdXAgZnJvbSAnLi9zdWdhci9Db2x1bW5Hcm91cCc7XG5pbXBvcnQgQ29sdW1uIGZyb20gJy4vc3VnYXIvQ29sdW1uJztcbmltcG9ydCBGaXhlZEhlYWRlciBmcm9tICcuL0hlYWRlci9GaXhlZEhlYWRlcic7XG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyL0hlYWRlcic7XG5pbXBvcnQgVGFibGVDb250ZXh0IGZyb20gJy4vY29udGV4dC9UYWJsZUNvbnRleHQnO1xuaW1wb3J0IEJvZHlDb250ZXh0IGZyb20gJy4vY29udGV4dC9Cb2R5Q29udGV4dCc7XG5pbXBvcnQgQm9keSBmcm9tICcuL0JvZHknO1xuaW1wb3J0IHVzZUNvbHVtbnMgZnJvbSAnLi9ob29rcy91c2VDb2x1bW5zJztcbmltcG9ydCB7IHVzZUxheW91dFN0YXRlLCB1c2VUaW1lb3V0TG9jayB9IGZyb20gJy4vaG9va3MvdXNlRnJhbWUnO1xuaW1wb3J0IHsgZ2V0UGF0aFZhbHVlLCBtZXJnZU9iamVjdCwgdmFsaWRhdGVWYWx1ZSwgZ2V0Q29sdW1uc0tleSB9IGZyb20gJy4vdXRpbHMvdmFsdWVVdGlsJztcbmltcG9ydCBSZXNpemVDb250ZXh0IGZyb20gJy4vY29udGV4dC9SZXNpemVDb250ZXh0JztcbmltcG9ydCB1c2VTdGlja3lPZmZzZXRzIGZyb20gJy4vaG9va3MvdXNlU3RpY2t5T2Zmc2V0cyc7XG5pbXBvcnQgQ29sR3JvdXAgZnJvbSAnLi9Db2xHcm91cCc7XG5pbXBvcnQgeyBnZXRFeHBhbmRhYmxlUHJvcHMsIGdldERhdGFBbmRBcmlhUHJvcHMgfSBmcm9tICcuL3V0aWxzL2xlZ2FjeVV0aWwnO1xuaW1wb3J0IFBhbmVsIGZyb20gJy4vUGFuZWwnO1xuaW1wb3J0IEZvb3RlciwgeyBGb290ZXJDb21wb25lbnRzIH0gZnJvbSAnLi9Gb290ZXInO1xuaW1wb3J0IHsgZmluZEFsbENoaWxkcmVuS2V5cywgcmVuZGVyRXhwYW5kSWNvbiB9IGZyb20gJy4vdXRpbHMvZXhwYW5kVXRpbCc7XG5pbXBvcnQgeyBnZXRDZWxsRml4ZWRJbmZvIH0gZnJvbSAnLi91dGlscy9maXhVdGlsJztcbmltcG9ydCBTdGlja3lTY3JvbGxCYXIgZnJvbSAnLi9zdGlja3lTY3JvbGxCYXInO1xuaW1wb3J0IHVzZVN0aWNreSBmcm9tICcuL2hvb2tzL3VzZVN0aWNreSc7IC8vIFVzZWQgZm9yIGNvbmRpdGlvbnMgY2FjaGVcblxudmFyIEVNUFRZX0RBVEEgPSBbXTsgLy8gVXNlZCBmb3IgY3VzdG9taXplIHNjcm9sbFxuXG52YXIgRU1QVFlfU0NST0xMX1RBUkdFVCA9IHt9O1xuZXhwb3J0IHZhciBJTlRFUk5BTF9IT09LUyA9ICdyYy10YWJsZS1pbnRlcm5hbC1ob29rJztcbnZhciBNZW1vVGFibGVDb250ZW50ID0gLyojX19QVVJFX18qL1JlYWN0Lm1lbW8oZnVuY3Rpb24gKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjtcbiAgcmV0dXJuIGNoaWxkcmVuO1xufSwgZnVuY3Rpb24gKHByZXYsIG5leHQpIHtcbiAgaWYgKCFzaGFsbG93RXF1YWwocHJldi5wcm9wcywgbmV4dC5wcm9wcykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gLy8gTm8gYWRkaXRpb25hbCByZW5kZXIgd2hlbiBwaW5nZWQgc3RhdHVzIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBub3QgYSBidWcuXG5cblxuICByZXR1cm4gcHJldi5waW5nTGVmdCAhPT0gbmV4dC5waW5nTGVmdCB8fCBwcmV2LnBpbmdSaWdodCAhPT0gbmV4dC5waW5nUmlnaHQ7XG59KTtcblxuZnVuY3Rpb24gVGFibGUocHJvcHMpIHtcbiAgdmFyIF9jbGFzc05hbWVzO1xuXG4gIHZhciBwcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICByb3dDbGFzc05hbWUgPSBwcm9wcy5yb3dDbGFzc05hbWUsXG4gICAgICBzdHlsZSA9IHByb3BzLnN0eWxlLFxuICAgICAgZGF0YSA9IHByb3BzLmRhdGEsXG4gICAgICByb3dLZXkgPSBwcm9wcy5yb3dLZXksXG4gICAgICBzY3JvbGwgPSBwcm9wcy5zY3JvbGwsXG4gICAgICB0YWJsZUxheW91dCA9IHByb3BzLnRhYmxlTGF5b3V0LFxuICAgICAgZGlyZWN0aW9uID0gcHJvcHMuZGlyZWN0aW9uLFxuICAgICAgdGl0bGUgPSBwcm9wcy50aXRsZSxcbiAgICAgIGZvb3RlciA9IHByb3BzLmZvb3RlcixcbiAgICAgIHN1bW1hcnkgPSBwcm9wcy5zdW1tYXJ5LFxuICAgICAgaWQgPSBwcm9wcy5pZCxcbiAgICAgIHNob3dIZWFkZXIgPSBwcm9wcy5zaG93SGVhZGVyLFxuICAgICAgY29tcG9uZW50cyA9IHByb3BzLmNvbXBvbmVudHMsXG4gICAgICBlbXB0eVRleHQgPSBwcm9wcy5lbXB0eVRleHQsXG4gICAgICBvblJvdyA9IHByb3BzLm9uUm93LFxuICAgICAgb25IZWFkZXJSb3cgPSBwcm9wcy5vbkhlYWRlclJvdyxcbiAgICAgIGludGVybmFsSG9va3MgPSBwcm9wcy5pbnRlcm5hbEhvb2tzLFxuICAgICAgdHJhbnNmb3JtQ29sdW1ucyA9IHByb3BzLnRyYW5zZm9ybUNvbHVtbnMsXG4gICAgICBpbnRlcm5hbFJlZnMgPSBwcm9wcy5pbnRlcm5hbFJlZnMsXG4gICAgICBzdGlja3kgPSBwcm9wcy5zdGlja3k7XG4gIHZhciBtZXJnZWREYXRhID0gZGF0YSB8fCBFTVBUWV9EQVRBO1xuICB2YXIgaGFzRGF0YSA9ICEhbWVyZ2VkRGF0YS5sZW5ndGg7IC8vID09PT09PT09PT09PT09PT09PT09PSBFZmZlY3RzID09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoMCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGUyID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlLCAyKSxcbiAgICAgIHNjcm9sbGJhclNpemUgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0U2Nyb2xsYmFyU2l6ZSA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBzZXRTY3JvbGxiYXJTaXplKGdldFNjcm9sbEJhclNpemUoKSk7XG4gIH0pOyAvLyA9PT09PT09PT09PT09PT09PT09PT0gV2FybmluZyA9PT09PT09PT09PT09PT09PT09PT09XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBbJ29uUm93Q2xpY2snLCAnb25Sb3dEb3VibGVDbGljaycsICdvblJvd0NvbnRleHRNZW51JywgJ29uUm93TW91c2VFbnRlcicsICdvblJvd01vdXNlTGVhdmUnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB3YXJuaW5nKHByb3BzW25hbWVdID09PSB1bmRlZmluZWQsIFwiYFwiLmNvbmNhdChuYW1lLCBcImAgaXMgcmVtb3ZlZCwgcGxlYXNlIHVzZSBgb25Sb3dgIGluc3RlYWQuXCIpKTtcbiAgICB9KTtcbiAgICB3YXJuaW5nKCEoJ2dldEJvZHlXcmFwcGVyJyBpbiBwcm9wcyksICdgZ2V0Qm9keVdyYXBwZXJgIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgY3VzdG9tIGBjb21wb25lbnRzYCBpbnN0ZWFkLicpO1xuICB9IC8vID09PT09PT09PT09PT09PT09PT09IEN1c3RvbWl6ZSA9PT09PT09PT09PT09PT09PT09PT1cblxuXG4gIHZhciBtZXJnZWRDb21wb25lbnRzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIG1lcmdlT2JqZWN0KGNvbXBvbmVudHMsIHt9KTtcbiAgfSwgW2NvbXBvbmVudHNdKTtcbiAgdmFyIGdldENvbXBvbmVudCA9IFJlYWN0LnVzZUNhbGxiYWNrKGZ1bmN0aW9uIChwYXRoLCBkZWZhdWx0Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuIGdldFBhdGhWYWx1ZShtZXJnZWRDb21wb25lbnRzLCBwYXRoKSB8fCBkZWZhdWx0Q29tcG9uZW50O1xuICB9LCBbbWVyZ2VkQ29tcG9uZW50c10pO1xuICB2YXIgZ2V0Um93S2V5ID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHR5cGVvZiByb3dLZXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiByb3dLZXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgIHZhciBrZXkgPSByZWNvcmQgJiYgcmVjb3JkW3Jvd0tleV07XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoa2V5ICE9PSB1bmRlZmluZWQsICdFYWNoIHJlY29yZCBpbiB0YWJsZSBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBga2V5YCBwcm9wLCBvciBzZXQgYHJvd0tleWAgdG8gYW4gdW5pcXVlIHByaW1hcnkga2V5LicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ga2V5O1xuICAgIH07XG4gIH0sIFtyb3dLZXldKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PSBFeHBhbmQgPT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBleHBhbmRhYmxlQ29uZmlnID0gZ2V0RXhwYW5kYWJsZVByb3BzKHByb3BzKTtcbiAgdmFyIGV4cGFuZEljb24gPSBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZEljb24sXG4gICAgICBleHBhbmRlZFJvd0tleXMgPSBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93S2V5cyxcbiAgICAgIGRlZmF1bHRFeHBhbmRlZFJvd0tleXMgPSBleHBhbmRhYmxlQ29uZmlnLmRlZmF1bHRFeHBhbmRlZFJvd0tleXMsXG4gICAgICBkZWZhdWx0RXhwYW5kQWxsUm93cyA9IGV4cGFuZGFibGVDb25maWcuZGVmYXVsdEV4cGFuZEFsbFJvd3MsXG4gICAgICBleHBhbmRlZFJvd1JlbmRlciA9IGV4cGFuZGFibGVDb25maWcuZXhwYW5kZWRSb3dSZW5kZXIsXG4gICAgICBvbkV4cGFuZCA9IGV4cGFuZGFibGVDb25maWcub25FeHBhbmQsXG4gICAgICBvbkV4cGFuZGVkUm93c0NoYW5nZSA9IGV4cGFuZGFibGVDb25maWcub25FeHBhbmRlZFJvd3NDaGFuZ2UsXG4gICAgICBleHBhbmRSb3dCeUNsaWNrID0gZXhwYW5kYWJsZUNvbmZpZy5leHBhbmRSb3dCeUNsaWNrLFxuICAgICAgcm93RXhwYW5kYWJsZSA9IGV4cGFuZGFibGVDb25maWcucm93RXhwYW5kYWJsZSxcbiAgICAgIGV4cGFuZEljb25Db2x1bW5JbmRleCA9IGV4cGFuZGFibGVDb25maWcuZXhwYW5kSWNvbkNvbHVtbkluZGV4LFxuICAgICAgZXhwYW5kZWRSb3dDbGFzc05hbWUgPSBleHBhbmRhYmxlQ29uZmlnLmV4cGFuZGVkUm93Q2xhc3NOYW1lLFxuICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lID0gZXhwYW5kYWJsZUNvbmZpZy5jaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICBpbmRlbnRTaXplID0gZXhwYW5kYWJsZUNvbmZpZy5pbmRlbnRTaXplO1xuICB2YXIgbWVyZ2VkRXhwYW5kSWNvbiA9IGV4cGFuZEljb24gfHwgcmVuZGVyRXhwYW5kSWNvbjtcbiAgdmFyIG1lcmdlZENoaWxkcmVuQ29sdW1uTmFtZSA9IGNoaWxkcmVuQ29sdW1uTmFtZSB8fCAnY2hpbGRyZW4nO1xuICB2YXIgZXhwYW5kYWJsZVR5cGUgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZXhwYW5kZWRSb3dSZW5kZXIpIHtcbiAgICAgIHJldHVybiAncm93JztcbiAgICB9XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cblxuICAgIC8qKlxuICAgICAqIEZpeCBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8yMTE1NFxuICAgICAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIG5vdCB0byBicmVhayBjdXJyZW50IGJlaGF2aW9yLlxuICAgICAqIFdlIGNhbiByZW1vdmUgZm9sbG93IGNvZGUgYWZ0ZXIgZmluYWwgcmVsZWFzZS5cbiAgICAgKlxuICAgICAqIFRvIG90aGVyIGRldmVsb3BlcjpcbiAgICAgKiAgRG8gbm90IHVzZSBgX19QQVJFTlRfUkVOREVSX0lDT05fX2AgaW4gcHJvZCBzaW5jZSB3ZSB3aWxsIHJlbW92ZSB0aGlzIHdoZW4gcmVmYWN0b3JcbiAgICAgKi9cblxuXG4gICAgaWYgKHByb3BzLmV4cGFuZGFibGUgJiYgaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1MgJiYgcHJvcHMuZXhwYW5kYWJsZS5fX1BBUkVOVF9SRU5ERVJfSUNPTl9fIHx8IG1lcmdlZERhdGEuc29tZShmdW5jdGlvbiAocmVjb3JkKSB7XG4gICAgICByZXR1cm4gcmVjb3JkICYmIF90eXBlb2YocmVjb3JkKSA9PT0gJ29iamVjdCcgJiYgcmVjb3JkW21lcmdlZENoaWxkcmVuQ29sdW1uTmFtZV07XG4gICAgfSkpIHtcbiAgICAgIHJldHVybiAnbmVzdCc7XG4gICAgfVxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cblxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LCBbISFleHBhbmRlZFJvd1JlbmRlciwgbWVyZ2VkRGF0YV0pO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGUzID0gUmVhY3QudXNlU3RhdGUoZnVuY3Rpb24gKCkge1xuICAgIGlmIChkZWZhdWx0RXhwYW5kZWRSb3dLZXlzKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdEV4cGFuZGVkUm93S2V5cztcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdEV4cGFuZEFsbFJvd3MpIHtcbiAgICAgIHJldHVybiBmaW5kQWxsQ2hpbGRyZW5LZXlzKG1lcmdlZERhdGEsIGdldFJvd0tleSwgbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH0pLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlNCA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgICAgaW5uZXJFeHBhbmRlZEtleXMgPSBfUmVhY3QkdXNlU3RhdGU0WzBdLFxuICAgICAgc2V0SW5uZXJFeHBhbmRlZEtleXMgPSBfUmVhY3QkdXNlU3RhdGU0WzFdO1xuXG4gIHZhciBtZXJnZWRFeHBhbmRlZEtleXMgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbmV3IFNldChleHBhbmRlZFJvd0tleXMgfHwgaW5uZXJFeHBhbmRlZEtleXMgfHwgW10pO1xuICB9LCBbZXhwYW5kZWRSb3dLZXlzLCBpbm5lckV4cGFuZGVkS2V5c10pO1xuICB2YXIgb25UcmlnZ2VyRXhwYW5kID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKHJlY29yZCkge1xuICAgIHZhciBrZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBtZXJnZWREYXRhLmluZGV4T2YocmVjb3JkKSk7XG4gICAgdmFyIG5ld0V4cGFuZGVkS2V5cztcbiAgICB2YXIgaGFzS2V5ID0gbWVyZ2VkRXhwYW5kZWRLZXlzLmhhcyhrZXkpO1xuXG4gICAgaWYgKGhhc0tleSkge1xuICAgICAgbWVyZ2VkRXhwYW5kZWRLZXlzLmRlbGV0ZShrZXkpO1xuICAgICAgbmV3RXhwYW5kZWRLZXlzID0gX3RvQ29uc3VtYWJsZUFycmF5KG1lcmdlZEV4cGFuZGVkS2V5cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0V4cGFuZGVkS2V5cyA9IFtdLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkobWVyZ2VkRXhwYW5kZWRLZXlzKSwgW2tleV0pO1xuICAgIH1cblxuICAgIHNldElubmVyRXhwYW5kZWRLZXlzKG5ld0V4cGFuZGVkS2V5cyk7XG5cbiAgICBpZiAob25FeHBhbmQpIHtcbiAgICAgIG9uRXhwYW5kKCFoYXNLZXksIHJlY29yZCk7XG4gICAgfVxuXG4gICAgaWYgKG9uRXhwYW5kZWRSb3dzQ2hhbmdlKSB7XG4gICAgICBvbkV4cGFuZGVkUm93c0NoYW5nZShuZXdFeHBhbmRlZEtleXMpO1xuICAgIH1cbiAgfSwgW2dldFJvd0tleSwgbWVyZ2VkRXhwYW5kZWRLZXlzLCBtZXJnZWREYXRhLCBvbkV4cGFuZCwgb25FeHBhbmRlZFJvd3NDaGFuZ2VdKTsgLy8gPT09PT09PT09PT09PT09PT09PT09PSBDb2x1bW4gPT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGU1ID0gUmVhY3QudXNlU3RhdGUoMCksXG4gICAgICBfUmVhY3QkdXNlU3RhdGU2ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlNSwgMiksXG4gICAgICBjb21wb25lbnRXaWR0aCA9IF9SZWFjdCR1c2VTdGF0ZTZbMF0sXG4gICAgICBzZXRDb21wb25lbnRXaWR0aCA9IF9SZWFjdCR1c2VTdGF0ZTZbMV07XG5cbiAgdmFyIF91c2VDb2x1bW5zID0gdXNlQ29sdW1ucyhfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgcHJvcHMpLCBleHBhbmRhYmxlQ29uZmlnKSwge30sIHtcbiAgICBleHBhbmRhYmxlOiAhIWV4cGFuZGVkUm93UmVuZGVyLFxuICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgIGdldFJvd0tleTogZ2V0Um93S2V5LFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIzODk0XG4gICAgb25UcmlnZ2VyRXhwYW5kOiBvblRyaWdnZXJFeHBhbmQsXG4gICAgZXhwYW5kSWNvbjogbWVyZ2VkRXhwYW5kSWNvbixcbiAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICBkaXJlY3Rpb246IGRpcmVjdGlvblxuICB9KSwgaW50ZXJuYWxIb29rcyA9PT0gSU5URVJOQUxfSE9PS1MgPyB0cmFuc2Zvcm1Db2x1bW5zIDogbnVsbCksXG4gICAgICBfdXNlQ29sdW1uczIgPSBfc2xpY2VkVG9BcnJheShfdXNlQ29sdW1ucywgMiksXG4gICAgICBjb2x1bW5zID0gX3VzZUNvbHVtbnMyWzBdLFxuICAgICAgZmxhdHRlbkNvbHVtbnMgPSBfdXNlQ29sdW1uczJbMV07XG5cbiAgdmFyIGNvbHVtbkNvbnRleHQgPSBSZWFjdC51c2VNZW1vKGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uczogY29sdW1ucyxcbiAgICAgIGZsYXR0ZW5Db2x1bW5zOiBmbGF0dGVuQ29sdW1uc1xuICAgIH07XG4gIH0sIFtjb2x1bW5zLCBmbGF0dGVuQ29sdW1uc10pOyAvLyA9PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIGZ1bGxUYWJsZVJlZiA9IFJlYWN0LnVzZVJlZigpO1xuICB2YXIgc2Nyb2xsSGVhZGVyUmVmID0gUmVhY3QudXNlUmVmKCk7XG4gIHZhciBzY3JvbGxCb2R5UmVmID0gUmVhY3QudXNlUmVmKCk7XG5cbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZTcgPSBSZWFjdC51c2VTdGF0ZShmYWxzZSksXG4gICAgICBfUmVhY3QkdXNlU3RhdGU4ID0gX3NsaWNlZFRvQXJyYXkoX1JlYWN0JHVzZVN0YXRlNywgMiksXG4gICAgICBwaW5nZWRMZWZ0ID0gX1JlYWN0JHVzZVN0YXRlOFswXSxcbiAgICAgIHNldFBpbmdlZExlZnQgPSBfUmVhY3QkdXNlU3RhdGU4WzFdO1xuXG4gIHZhciBfUmVhY3QkdXNlU3RhdGU5ID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlMTAgPSBfc2xpY2VkVG9BcnJheShfUmVhY3QkdXNlU3RhdGU5LCAyKSxcbiAgICAgIHBpbmdlZFJpZ2h0ID0gX1JlYWN0JHVzZVN0YXRlMTBbMF0sXG4gICAgICBzZXRQaW5nZWRSaWdodCA9IF9SZWFjdCR1c2VTdGF0ZTEwWzFdO1xuXG4gIHZhciBfdXNlTGF5b3V0U3RhdGUgPSB1c2VMYXlvdXRTdGF0ZShuZXcgTWFwKCkpLFxuICAgICAgX3VzZUxheW91dFN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VMYXlvdXRTdGF0ZSwgMiksXG4gICAgICBjb2xzV2lkdGhzID0gX3VzZUxheW91dFN0YXRlMlswXSxcbiAgICAgIHVwZGF0ZUNvbHNXaWR0aHMgPSBfdXNlTGF5b3V0U3RhdGUyWzFdOyAvLyBDb252ZXJ0IG1hcCB0byBudW1iZXIgd2lkdGhcblxuXG4gIHZhciBjb2xzS2V5cyA9IGdldENvbHVtbnNLZXkoZmxhdHRlbkNvbHVtbnMpO1xuICB2YXIgcHVyZUNvbFdpZHRocyA9IGNvbHNLZXlzLm1hcChmdW5jdGlvbiAoY29sdW1uS2V5KSB7XG4gICAgcmV0dXJuIGNvbHNXaWR0aHMuZ2V0KGNvbHVtbktleSk7XG4gIH0pO1xuICB2YXIgY29sV2lkdGhzID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHB1cmVDb2xXaWR0aHM7XG4gIH0sIFtwdXJlQ29sV2lkdGhzLmpvaW4oJ18nKV0pO1xuICB2YXIgc3RpY2t5T2Zmc2V0cyA9IHVzZVN0aWNreU9mZnNldHMoY29sV2lkdGhzLCBmbGF0dGVuQ29sdW1ucy5sZW5ndGgsIGRpcmVjdGlvbik7XG4gIHZhciBmaXhIZWFkZXIgPSBzY3JvbGwgJiYgdmFsaWRhdGVWYWx1ZShzY3JvbGwueSk7XG4gIHZhciBob3Jpem9uU2Nyb2xsID0gc2Nyb2xsICYmIHZhbGlkYXRlVmFsdWUoc2Nyb2xsLngpO1xuICB2YXIgZml4Q29sdW1uID0gaG9yaXpvblNjcm9sbCAmJiBmbGF0dGVuQ29sdW1ucy5zb21lKGZ1bmN0aW9uIChfcmVmMikge1xuICAgIHZhciBmaXhlZCA9IF9yZWYyLmZpeGVkO1xuICAgIHJldHVybiBmaXhlZDtcbiAgfSk7IC8vIFN0aWNreVxuXG4gIHZhciBzdGlja3lSZWYgPSBSZWFjdC51c2VSZWYoKTtcblxuICB2YXIgX3VzZVN0aWNreSA9IHVzZVN0aWNreShzdGlja3ksIHByZWZpeENscyksXG4gICAgICBpc1N0aWNreSA9IF91c2VTdGlja3kuaXNTdGlja3ksXG4gICAgICBvZmZzZXRIZWFkZXIgPSBfdXNlU3RpY2t5Lm9mZnNldEhlYWRlcixcbiAgICAgIG9mZnNldFNjcm9sbCA9IF91c2VTdGlja3kub2Zmc2V0U2Nyb2xsLFxuICAgICAgc3RpY2t5Q2xhc3NOYW1lID0gX3VzZVN0aWNreS5zdGlja3lDbGFzc05hbWUsXG4gICAgICBjb250YWluZXIgPSBfdXNlU3RpY2t5LmNvbnRhaW5lcjtcblxuICB2YXIgc2Nyb2xsWFN0eWxlO1xuICB2YXIgc2Nyb2xsWVN0eWxlO1xuICB2YXIgc2Nyb2xsVGFibGVTdHlsZTtcblxuICBpZiAoZml4SGVhZGVyKSB7XG4gICAgc2Nyb2xsWVN0eWxlID0ge1xuICAgICAgb3ZlcmZsb3dZOiAnc2Nyb2xsJyxcbiAgICAgIG1heEhlaWdodDogc2Nyb2xsLnlcbiAgICB9O1xuICB9XG5cbiAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICBzY3JvbGxYU3R5bGUgPSB7XG4gICAgICBvdmVyZmxvd1g6ICdhdXRvJ1xuICAgIH07IC8vIFdoZW4gbm8gdmVydGljYWwgc2Nyb2xsYmFyLCBzaG91bGQgaGlkZSBpdFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vcHVsbC8yMDcwNVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIxODc5XG5cbiAgICBpZiAoIWZpeEhlYWRlcikge1xuICAgICAgc2Nyb2xsWVN0eWxlID0ge1xuICAgICAgICBvdmVyZmxvd1k6ICdoaWRkZW4nXG4gICAgICB9O1xuICAgIH1cblxuICAgIHNjcm9sbFRhYmxlU3R5bGUgPSB7XG4gICAgICB3aWR0aDogc2Nyb2xsLnggPT09IHRydWUgPyAnYXV0bycgOiBzY3JvbGwueCxcbiAgICAgIG1pbldpZHRoOiAnMTAwJSdcbiAgICB9O1xuICB9XG5cbiAgdmFyIG9uQ29sdW1uUmVzaXplID0gUmVhY3QudXNlQ2FsbGJhY2soZnVuY3Rpb24gKGNvbHVtbktleSwgd2lkdGgpIHtcbiAgICBpZiAoaXNWaXNpYmxlKGZ1bGxUYWJsZVJlZi5jdXJyZW50KSkge1xuICAgICAgdXBkYXRlQ29sc1dpZHRocyhmdW5jdGlvbiAod2lkdGhzKSB7XG4gICAgICAgIGlmICh3aWR0aHMuZ2V0KGNvbHVtbktleSkgIT09IHdpZHRoKSB7XG4gICAgICAgICAgdmFyIG5ld1dpZHRocyA9IG5ldyBNYXAod2lkdGhzKTtcbiAgICAgICAgICBuZXdXaWR0aHMuc2V0KGNvbHVtbktleSwgd2lkdGgpO1xuICAgICAgICAgIHJldHVybiBuZXdXaWR0aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2lkdGhzO1xuICAgICAgfSk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgdmFyIF91c2VUaW1lb3V0TG9jayA9IHVzZVRpbWVvdXRMb2NrKG51bGwpLFxuICAgICAgX3VzZVRpbWVvdXRMb2NrMiA9IF9zbGljZWRUb0FycmF5KF91c2VUaW1lb3V0TG9jaywgMiksXG4gICAgICBzZXRTY3JvbGxUYXJnZXQgPSBfdXNlVGltZW91dExvY2syWzBdLFxuICAgICAgZ2V0U2Nyb2xsVGFyZ2V0ID0gX3VzZVRpbWVvdXRMb2NrMlsxXTtcblxuICBmdW5jdGlvbiBmb3JjZVNjcm9sbChzY3JvbGxMZWZ0LCB0YXJnZXQpIHtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0YXJnZXQoc2Nyb2xsTGVmdCk7XG4gICAgfSBlbHNlIGlmICh0YXJnZXQuc2Nyb2xsTGVmdCAhPT0gc2Nyb2xsTGVmdCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICB0YXJnZXQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgfVxuICB9XG5cbiAgdmFyIG9uU2Nyb2xsID0gZnVuY3Rpb24gb25TY3JvbGwoX3JlZjMpIHtcbiAgICB2YXIgY3VycmVudFRhcmdldCA9IF9yZWYzLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgIHNjcm9sbExlZnQgPSBfcmVmMy5zY3JvbGxMZWZ0O1xuICAgIHZhciBpc1JUTCA9IGRpcmVjdGlvbiA9PT0gJ3J0bCc7XG4gICAgdmFyIG1lcmdlZFNjcm9sbExlZnQgPSB0eXBlb2Ygc2Nyb2xsTGVmdCA9PT0gJ251bWJlcicgPyBzY3JvbGxMZWZ0IDogY3VycmVudFRhcmdldC5zY3JvbGxMZWZ0O1xuICAgIHZhciBjb21wYXJlVGFyZ2V0ID0gY3VycmVudFRhcmdldCB8fCBFTVBUWV9TQ1JPTExfVEFSR0VUO1xuXG4gICAgaWYgKCFnZXRTY3JvbGxUYXJnZXQoKSB8fCBnZXRTY3JvbGxUYXJnZXQoKSA9PT0gY29tcGFyZVRhcmdldCkge1xuICAgICAgdmFyIF9zdGlja3lSZWYkY3VycmVudDtcblxuICAgICAgc2V0U2Nyb2xsVGFyZ2V0KGNvbXBhcmVUYXJnZXQpO1xuICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsSGVhZGVyUmVmLmN1cnJlbnQpO1xuICAgICAgZm9yY2VTY3JvbGwobWVyZ2VkU2Nyb2xsTGVmdCwgc2Nyb2xsQm9keVJlZi5jdXJyZW50KTtcbiAgICAgIGZvcmNlU2Nyb2xsKG1lcmdlZFNjcm9sbExlZnQsIChfc3RpY2t5UmVmJGN1cnJlbnQgPSBzdGlja3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX3N0aWNreVJlZiRjdXJyZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfc3RpY2t5UmVmJGN1cnJlbnQuc2V0U2Nyb2xsTGVmdCk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHZhciBzY3JvbGxXaWR0aCA9IGN1cnJlbnRUYXJnZXQuc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgY2xpZW50V2lkdGggPSBjdXJyZW50VGFyZ2V0LmNsaWVudFdpZHRoO1xuXG4gICAgICBpZiAoaXNSVEwpIHtcbiAgICAgICAgc2V0UGluZ2VkTGVmdCgtbWVyZ2VkU2Nyb2xsTGVmdCA8IHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGgpO1xuICAgICAgICBzZXRQaW5nZWRSaWdodCgtbWVyZ2VkU2Nyb2xsTGVmdCA+IDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0UGluZ2VkTGVmdChtZXJnZWRTY3JvbGxMZWZ0ID4gMCk7XG4gICAgICAgIHNldFBpbmdlZFJpZ2h0KG1lcmdlZFNjcm9sbExlZnQgPCBzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdmFyIHRyaWdnZXJPblNjcm9sbCA9IGZ1bmN0aW9uIHRyaWdnZXJPblNjcm9sbCgpIHtcbiAgICBpZiAoc2Nyb2xsQm9keVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNjcm9sbCh7XG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IHNjcm9sbEJvZHlSZWYuY3VycmVudFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHZhciBvbkZ1bGxUYWJsZVJlc2l6ZSA9IGZ1bmN0aW9uIG9uRnVsbFRhYmxlUmVzaXplKF9yZWY0KSB7XG4gICAgdmFyIHdpZHRoID0gX3JlZjQud2lkdGg7XG4gICAgdHJpZ2dlck9uU2Nyb2xsKCk7XG4gICAgc2V0Q29tcG9uZW50V2lkdGgoZnVsbFRhYmxlUmVmLmN1cnJlbnQgPyBmdWxsVGFibGVSZWYuY3VycmVudC5vZmZzZXRXaWR0aCA6IHdpZHRoKTtcbiAgfTsgLy8gU3luYyBzY3JvbGwgYmFyIHdoZW4gaW5pdCBvciBgaG9yaXpvblNjcm9sbGAgY2hhbmdlZFxuXG5cbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHJpZ2dlck9uU2Nyb2xsO1xuICB9LCBbXSk7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGhvcml6b25TY3JvbGwpIHtcbiAgICAgIHRyaWdnZXJPblNjcm9sbCgpO1xuICAgIH1cbiAgfSwgW2hvcml6b25TY3JvbGxdKTsgLy8gPT09PT09PT09PT09PT09PT09IElOVEVSTkFMIEhPT0tTID09PT09PT09PT09PT09PT09PVxuXG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGludGVybmFsSG9va3MgPT09IElOVEVSTkFMX0hPT0tTICYmIGludGVybmFsUmVmcykge1xuICAgICAgaW50ZXJuYWxSZWZzLmJvZHkuY3VycmVudCA9IHNjcm9sbEJvZHlSZWYuY3VycmVudDtcbiAgICB9XG4gIH0pOyAvLyA9PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIFRhYmxlQ29tcG9uZW50ID0gZ2V0Q29tcG9uZW50KFsndGFibGUnXSwgJ3RhYmxlJyk7IC8vIFRhYmxlIGxheW91dFxuXG4gIHZhciBtZXJnZWRUYWJsZUxheW91dCA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIGlmICh0YWJsZUxheW91dCkge1xuICAgICAgcmV0dXJuIHRhYmxlTGF5b3V0O1xuICAgIH0gLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMjUyMjdcbiAgICAvLyBXaGVuIHNjcm9sbC54IGlzIG1heC1jb250ZW50LCBubyBuZWVkIHRvIGZpeCB0YWJsZSBsYXlvdXRcbiAgICAvLyBpdCdzIHdpZHRoIHNob3VsZCBzdHJldGNoIG91dCB0byBmaXQgY29udGVudFxuXG5cbiAgICBpZiAoZml4Q29sdW1uKSB7XG4gICAgICByZXR1cm4gc2Nyb2xsLnggPT09ICdtYXgtY29udGVudCcgPyAnYXV0bycgOiAnZml4ZWQnO1xuICAgIH1cblxuICAgIGlmIChmaXhIZWFkZXIgfHwgaXNTdGlja3kgfHwgZmxhdHRlbkNvbHVtbnMuc29tZShmdW5jdGlvbiAoX3JlZjUpIHtcbiAgICAgIHZhciBlbGxpcHNpcyA9IF9yZWY1LmVsbGlwc2lzO1xuICAgICAgcmV0dXJuIGVsbGlwc2lzO1xuICAgIH0pKSB7XG4gICAgICByZXR1cm4gJ2ZpeGVkJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ2F1dG8nO1xuICB9LCBbZml4SGVhZGVyLCBmaXhDb2x1bW4sIGZsYXR0ZW5Db2x1bW5zLCB0YWJsZUxheW91dCwgaXNTdGlja3ldKTtcbiAgdmFyIGdyb3VwVGFibGVOb2RlOyAvLyBIZWFkZXIgcHJvcHNcblxuICB2YXIgaGVhZGVyUHJvcHMgPSB7XG4gICAgY29sV2lkdGhzOiBjb2xXaWR0aHMsXG4gICAgY29sdW1Db3VudDogZmxhdHRlbkNvbHVtbnMubGVuZ3RoLFxuICAgIHN0aWNreU9mZnNldHM6IHN0aWNreU9mZnNldHMsXG4gICAgb25IZWFkZXJSb3c6IG9uSGVhZGVyUm93LFxuICAgIGZpeEhlYWRlcjogZml4SGVhZGVyLFxuICAgIHNjcm9sbDogc2Nyb2xsXG4gIH07IC8vIEVtcHR5XG5cbiAgdmFyIGVtcHR5Tm9kZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIGlmIChoYXNEYXRhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGVtcHR5VGV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGVtcHR5VGV4dCgpO1xuICAgIH1cblxuICAgIHJldHVybiBlbXB0eVRleHQ7XG4gIH0sIFtoYXNEYXRhLCBlbXB0eVRleHRdKTsgLy8gQm9keVxuXG4gIHZhciBib2R5VGFibGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChCb2R5LCB7XG4gICAgZGF0YTogbWVyZ2VkRGF0YSxcbiAgICBtZWFzdXJlQ29sdW1uV2lkdGg6IGZpeEhlYWRlciB8fCBob3Jpem9uU2Nyb2xsIHx8IGlzU3RpY2t5LFxuICAgIGV4cGFuZGVkS2V5czogbWVyZ2VkRXhwYW5kZWRLZXlzLFxuICAgIHJvd0V4cGFuZGFibGU6IHJvd0V4cGFuZGFibGUsXG4gICAgZ2V0Um93S2V5OiBnZXRSb3dLZXksXG4gICAgb25Sb3c6IG9uUm93LFxuICAgIGVtcHR5Tm9kZTogZW1wdHlOb2RlLFxuICAgIGNoaWxkcmVuQ29sdW1uTmFtZTogbWVyZ2VkQ2hpbGRyZW5Db2x1bW5OYW1lXG4gIH0pO1xuICB2YXIgYm9keUNvbEdyb3VwID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29sR3JvdXAsIHtcbiAgICBjb2xXaWR0aHM6IGZsYXR0ZW5Db2x1bW5zLm1hcChmdW5jdGlvbiAoX3JlZjYpIHtcbiAgICAgIHZhciB3aWR0aCA9IF9yZWY2LndpZHRoO1xuICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH0pLFxuICAgIGNvbHVtbnM6IGZsYXR0ZW5Db2x1bW5zXG4gIH0pO1xuICB2YXIgZm9vdGVyVGFibGUgPSBzdW1tYXJ5ICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KEZvb3RlciwgbnVsbCwgc3VtbWFyeShtZXJnZWREYXRhKSk7XG4gIHZhciBjdXN0b21pemVTY3JvbGxCb2R5ID0gZ2V0Q29tcG9uZW50KFsnYm9keSddKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgY3VzdG9taXplU2Nyb2xsQm9keSA9PT0gJ2Z1bmN0aW9uJyAmJiBoYXNEYXRhICYmICFmaXhIZWFkZXIpIHtcbiAgICB3YXJuaW5nKGZhbHNlLCAnYGNvbXBvbmVudHMuYm9keWAgd2l0aCByZW5kZXIgcHJvcHMgaXMgb25seSB3b3JrIG9uIGBzY3JvbGwueWAuJyk7XG4gIH1cblxuICBpZiAoZml4SGVhZGVyIHx8IGlzU3RpY2t5KSB7XG4gICAgdmFyIGJvZHlDb250ZW50O1xuXG4gICAgaWYgKHR5cGVvZiBjdXN0b21pemVTY3JvbGxCb2R5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBib2R5Q29udGVudCA9IGN1c3RvbWl6ZVNjcm9sbEJvZHkobWVyZ2VkRGF0YSwge1xuICAgICAgICBzY3JvbGxiYXJTaXplOiBzY3JvbGxiYXJTaXplLFxuICAgICAgICByZWY6IHNjcm9sbEJvZHlSZWYsXG4gICAgICAgIG9uU2Nyb2xsOiBvblNjcm9sbFxuICAgICAgfSk7XG4gICAgICBoZWFkZXJQcm9wcy5jb2xXaWR0aHMgPSBmbGF0dGVuQ29sdW1ucy5tYXAoZnVuY3Rpb24gKF9yZWY3LCBpbmRleCkge1xuICAgICAgICB2YXIgd2lkdGggPSBfcmVmNy53aWR0aDtcbiAgICAgICAgdmFyIGNvbFdpZHRoID0gaW5kZXggPT09IGNvbHVtbnMubGVuZ3RoIC0gMSA/IHdpZHRoIC0gc2Nyb2xsYmFyU2l6ZSA6IHdpZHRoO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY29sV2lkdGggPT09ICdudW1iZXInICYmICFOdW1iZXIuaXNOYU4oY29sV2lkdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbFdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgd2FybmluZyhmYWxzZSwgJ1doZW4gdXNlIGBjb21wb25lbnRzLmJvZHlgIHdpdGggcmVuZGVyIHByb3BzLiBFYWNoIGNvbHVtbiBzaG91bGQgaGF2ZSBhIGZpeGVkIGB3aWR0aGAgdmFsdWUuJyk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvZHlDb250ZW50ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBzdHlsZTogX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBzY3JvbGxYU3R5bGUpLCBzY3JvbGxZU3R5bGUpLFxuICAgICAgICBvblNjcm9sbDogb25TY3JvbGwsXG4gICAgICAgIHJlZjogc2Nyb2xsQm9keVJlZixcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYm9keVwiKSlcbiAgICAgIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRhYmxlQ29tcG9uZW50LCB7XG4gICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7fSwge1xuICAgICAgICAgIHRhYmxlTGF5b3V0OiBtZXJnZWRUYWJsZUxheW91dFxuICAgICAgICB9KVxuICAgICAgfSwgYm9keUNvbEdyb3VwLCBib2R5VGFibGUsIGZvb3RlclRhYmxlKSk7XG4gICAgfVxuXG4gICAgZ3JvdXBUYWJsZU5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChSZWFjdC5GcmFnbWVudCwgbnVsbCwgc2hvd0hlYWRlciAhPT0gZmFsc2UgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoRml4ZWRIZWFkZXIsIF9leHRlbmRzKHtcbiAgICAgIG5vRGF0YTogIW1lcmdlZERhdGEubGVuZ3RoLFxuICAgICAgbWF4Q29udGVudFNjcm9sbDogaG9yaXpvblNjcm9sbCAmJiBzY3JvbGwueCA9PT0gJ21heC1jb250ZW50J1xuICAgIH0sIGhlYWRlclByb3BzLCBjb2x1bW5Db250ZXh0LCB7XG4gICAgICBkaXJlY3Rpb246IGRpcmVjdGlvbiAvLyBGaXhlZCBQcm9wc1xuICAgICAgLFxuICAgICAgb2Zmc2V0SGVhZGVyOiBvZmZzZXRIZWFkZXIsXG4gICAgICBzdGlja3lDbGFzc05hbWU6IHN0aWNreUNsYXNzTmFtZSxcbiAgICAgIHJlZjogc2Nyb2xsSGVhZGVyUmVmLFxuICAgICAgb25TY3JvbGw6IG9uU2Nyb2xsXG4gICAgfSkpLCBib2R5Q29udGVudCwgaXNTdGlja3kgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoU3RpY2t5U2Nyb2xsQmFyLCB7XG4gICAgICByZWY6IHN0aWNreVJlZixcbiAgICAgIG9mZnNldFNjcm9sbDogb2Zmc2V0U2Nyb2xsLFxuICAgICAgc2Nyb2xsQm9keVJlZjogc2Nyb2xsQm9keVJlZixcbiAgICAgIG9uU2Nyb2xsOiBvblNjcm9sbCxcbiAgICAgIGNvbnRhaW5lcjogY29udGFpbmVyXG4gICAgfSkpO1xuICB9IGVsc2Uge1xuICAgIGdyb3VwVGFibGVOb2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgc2Nyb2xsWFN0eWxlKSwgc2Nyb2xsWVN0eWxlKSxcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNvbnRlbnRcIikpLFxuICAgICAgb25TY3JvbGw6IG9uU2Nyb2xsLFxuICAgICAgcmVmOiBzY3JvbGxCb2R5UmVmXG4gICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoVGFibGVDb21wb25lbnQsIHtcbiAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHNjcm9sbFRhYmxlU3R5bGUpLCB7fSwge1xuICAgICAgICB0YWJsZUxheW91dDogbWVyZ2VkVGFibGVMYXlvdXRcbiAgICAgIH0pXG4gICAgfSwgYm9keUNvbEdyb3VwLCBzaG93SGVhZGVyICE9PSBmYWxzZSAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChIZWFkZXIsIF9leHRlbmRzKHt9LCBoZWFkZXJQcm9wcywgY29sdW1uQ29udGV4dCkpLCBib2R5VGFibGUsIGZvb3RlclRhYmxlKSk7XG4gIH1cblxuICB2YXIgYXJpYVByb3BzID0gZ2V0RGF0YUFuZEFyaWFQcm9wcyhwcm9wcyk7XG4gIHZhciBmdWxsVGFibGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBfZXh0ZW5kcyh7XG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKHByZWZpeENscywgY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXJ0bFwiKSwgZGlyZWN0aW9uID09PSAncnRsJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1waW5nLWxlZnRcIiksIHBpbmdlZExlZnQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItcGluZy1yaWdodFwiKSwgcGluZ2VkUmlnaHQpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbGF5b3V0LWZpeGVkXCIpLCB0YWJsZUxheW91dCA9PT0gJ2ZpeGVkJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1maXhlZC1oZWFkZXJcIiksIGZpeEhlYWRlciksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1maXhlZC1jb2x1bW5cIiksIGZpeENvbHVtbiksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zY3JvbGwtaG9yaXpvbnRhbFwiKSwgaG9yaXpvblNjcm9sbCksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1oYXMtZml4LWxlZnRcIiksIGZsYXR0ZW5Db2x1bW5zWzBdICYmIGZsYXR0ZW5Db2x1bW5zWzBdLmZpeGVkKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWhhcy1maXgtcmlnaHRcIiksIGZsYXR0ZW5Db2x1bW5zW2ZsYXR0ZW5Db2x1bW5zLmxlbmd0aCAtIDFdICYmIGZsYXR0ZW5Db2x1bW5zW2ZsYXR0ZW5Db2x1bW5zLmxlbmd0aCAtIDFdLmZpeGVkID09PSAncmlnaHQnKSwgX2NsYXNzTmFtZXMpKSxcbiAgICBzdHlsZTogc3R5bGUsXG4gICAgaWQ6IGlkLFxuICAgIHJlZjogZnVsbFRhYmxlUmVmXG4gIH0sIGFyaWFQcm9wcyksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE1lbW9UYWJsZUNvbnRlbnQsIHtcbiAgICBwaW5nTGVmdDogcGluZ2VkTGVmdCxcbiAgICBwaW5nUmlnaHQ6IHBpbmdlZFJpZ2h0LFxuICAgIHByb3BzOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHByb3BzKSwge30sIHtcbiAgICAgIHN0aWNreU9mZnNldHM6IHN0aWNreU9mZnNldHMsXG4gICAgICBtZXJnZWRFeHBhbmRlZEtleXM6IG1lcmdlZEV4cGFuZGVkS2V5c1xuICAgIH0pXG4gIH0sIHRpdGxlICYmIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFBhbmVsLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXRpdGxlXCIpXG4gIH0sIHRpdGxlKG1lcmdlZERhdGEpKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb250YWluZXJcIilcbiAgfSwgZ3JvdXBUYWJsZU5vZGUpLCBmb290ZXIgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZWwsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZm9vdGVyXCIpXG4gIH0sIGZvb3RlcihtZXJnZWREYXRhKSkpKTtcblxuICBpZiAoaG9yaXpvblNjcm9sbCkge1xuICAgIGZ1bGxUYWJsZSA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlc2l6ZU9ic2VydmVyLCB7XG4gICAgICBvblJlc2l6ZTogb25GdWxsVGFibGVSZXNpemVcbiAgICB9LCBmdWxsVGFibGUpO1xuICB9XG5cbiAgdmFyIFRhYmxlQ29udGV4dFZhbHVlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgZ2V0Q29tcG9uZW50OiBnZXRDb21wb25lbnQsXG4gICAgICBzY3JvbGxiYXJTaXplOiBzY3JvbGxiYXJTaXplLFxuICAgICAgZGlyZWN0aW9uOiBkaXJlY3Rpb24sXG4gICAgICBmaXhlZEluZm9MaXN0OiBmbGF0dGVuQ29sdW1ucy5tYXAoZnVuY3Rpb24gKF8sIGNvbEluZGV4KSB7XG4gICAgICAgIHJldHVybiBnZXRDZWxsRml4ZWRJbmZvKGNvbEluZGV4LCBjb2xJbmRleCwgZmxhdHRlbkNvbHVtbnMsIHN0aWNreU9mZnNldHMsIGRpcmVjdGlvbik7XG4gICAgICB9KSxcbiAgICAgIGlzU3RpY2t5OiBpc1N0aWNreVxuICAgIH07XG4gIH0sIFtwcmVmaXhDbHMsIGdldENvbXBvbmVudCwgc2Nyb2xsYmFyU2l6ZSwgZGlyZWN0aW9uLCBmbGF0dGVuQ29sdW1ucywgc3RpY2t5T2Zmc2V0cywgZGlyZWN0aW9uLCBpc1N0aWNreV0pO1xuICB2YXIgQm9keUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGNvbHVtbkNvbnRleHQpLCB7fSwge1xuICAgICAgdGFibGVMYXlvdXQ6IG1lcmdlZFRhYmxlTGF5b3V0LFxuICAgICAgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsXG4gICAgICBleHBhbmRlZFJvd0NsYXNzTmFtZTogZXhwYW5kZWRSb3dDbGFzc05hbWUsXG4gICAgICBjb21wb25lbnRXaWR0aDogY29tcG9uZW50V2lkdGgsXG4gICAgICBmaXhIZWFkZXI6IGZpeEhlYWRlcixcbiAgICAgIGZpeENvbHVtbjogZml4Q29sdW1uLFxuICAgICAgaG9yaXpvblNjcm9sbDogaG9yaXpvblNjcm9sbCxcbiAgICAgIGV4cGFuZEljb246IG1lcmdlZEV4cGFuZEljb24sXG4gICAgICBleHBhbmRhYmxlVHlwZTogZXhwYW5kYWJsZVR5cGUsXG4gICAgICBleHBhbmRSb3dCeUNsaWNrOiBleHBhbmRSb3dCeUNsaWNrLFxuICAgICAgZXhwYW5kZWRSb3dSZW5kZXI6IGV4cGFuZGVkUm93UmVuZGVyLFxuICAgICAgb25UcmlnZ2VyRXhwYW5kOiBvblRyaWdnZXJFeHBhbmQsXG4gICAgICBleHBhbmRJY29uQ29sdW1uSW5kZXg6IGV4cGFuZEljb25Db2x1bW5JbmRleCxcbiAgICAgIGluZGVudFNpemU6IGluZGVudFNpemVcbiAgICB9KTtcbiAgfSwgW2NvbHVtbkNvbnRleHQsIG1lcmdlZFRhYmxlTGF5b3V0LCByb3dDbGFzc05hbWUsIGV4cGFuZGVkUm93Q2xhc3NOYW1lLCBjb21wb25lbnRXaWR0aCwgZml4SGVhZGVyLCBmaXhDb2x1bW4sIGhvcml6b25TY3JvbGwsIG1lcmdlZEV4cGFuZEljb24sIGV4cGFuZGFibGVUeXBlLCBleHBhbmRSb3dCeUNsaWNrLCBleHBhbmRlZFJvd1JlbmRlciwgb25UcmlnZ2VyRXhwYW5kLCBleHBhbmRJY29uQ29sdW1uSW5kZXgsIGluZGVudFNpemVdKTtcbiAgdmFyIFJlc2l6ZUNvbnRleHRWYWx1ZSA9IFJlYWN0LnVzZU1lbW8oZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBvbkNvbHVtblJlc2l6ZTogb25Db2x1bW5SZXNpemVcbiAgICB9O1xuICB9LCBbb25Db2x1bW5SZXNpemVdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFRhYmxlQ29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBUYWJsZUNvbnRleHRWYWx1ZVxuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChCb2R5Q29udGV4dC5Qcm92aWRlciwge1xuICAgIHZhbHVlOiBCb2R5Q29udGV4dFZhbHVlXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlc2l6ZUNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogUmVzaXplQ29udGV4dFZhbHVlXG4gIH0sIGZ1bGxUYWJsZSkpKTtcbn1cblxuVGFibGUuQ29sdW1uID0gQ29sdW1uO1xuVGFibGUuQ29sdW1uR3JvdXAgPSBDb2x1bW5Hcm91cDtcblRhYmxlLlN1bW1hcnkgPSBGb290ZXJDb21wb25lbnRzO1xuVGFibGUuZGVmYXVsdFByb3BzID0ge1xuICByb3dLZXk6ICdrZXknLFxuICBwcmVmaXhDbHM6ICdyYy10YWJsZScsXG4gIGVtcHR5VGV4dDogZnVuY3Rpb24gZW1wdHlUZXh0KCkge1xuICAgIHJldHVybiAnTm8gRGF0YSc7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCBUYWJsZTsiLCJpbXBvcnQgVGFibGUgZnJvbSAnLi9UYWJsZSc7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnRzIGFzIFN1bW1hcnkgfSBmcm9tICcuL0Zvb3Rlcic7XG5pbXBvcnQgQ29sdW1uIGZyb20gJy4vc3VnYXIvQ29sdW1uJztcbmltcG9ydCBDb2x1bW5Hcm91cCBmcm9tICcuL3N1Z2FyL0NvbHVtbkdyb3VwJztcbmltcG9ydCB7IElOVEVSTkFMX0NPTF9ERUZJTkUgfSBmcm9tICcuL3V0aWxzL2xlZ2FjeVV0aWwnO1xuZXhwb3J0IHsgU3VtbWFyeSwgQ29sdW1uLCBDb2x1bW5Hcm91cCwgSU5URVJOQUxfQ09MX0RFRklORSB9O1xuZXhwb3J0IGRlZmF1bHQgVGFibGU7IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxudmFyIHVuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbCA9IGZ1bmN0aW9uIHVuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG5cbiAgaWYgKCFwcm90b3R5cGUgfHwgIXByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gb25seSBwb2x5ZmlsbCBjbGFzcyBjb21wb25lbnRzJyk7XG4gIH0gLy8gb25seSBoYW5kbGUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1xuXG5cbiAgaWYgKHR5cGVvZiBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBDb21wb25lbnQ7XG4gIH0gLy8gSW4gUmVhY3QgMTYuOSwgUmVhY3QuUHJvZmlsZXIgd2FzIGludHJvZHVjZWQgdG9nZXRoZXIgd2l0aCBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1xuICAvLyBodHRwczovL3JlYWN0anMub3JnL2Jsb2cvMjAxOS8wOC8wOC9yZWFjdC12MTYuOS4wLmh0bWwjcGVyZm9ybWFuY2UtbWVhc3VyZW1lbnRzLXdpdGgtcmVhY3Rwcm9maWxlclxuXG5cbiAgaWYgKCFSZWFjdC5Qcm9maWxlcikge1xuICAgIHJldHVybiBDb21wb25lbnQ7XG4gIH0gLy8gSGVyZSBwb2x5ZmlsbCBnZXQgc3RhcnRlZFxuXG5cbiAgcHJvdG90eXBlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID0gcHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM7XG4gIGRlbGV0ZSBwcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcztcbiAgcmV0dXJuIENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHVuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbDsiLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheUNoaWxkcmVuKGNoaWxkcmVuKSB7XG4gIHZhciByZXQgPSBbXTtcbiAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0LnB1c2goY2hpbGQpO1xuICB9KTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5KSB7XG4gIHZhciByZXQgPSBudWxsO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKHJldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgcmV0ID0gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5KGNoaWxkcmVuLCBrZXksIHNob3dQcm9wKSB7XG4gIHZhciByZXQgPSBudWxsO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLmtleSA9PT0ga2V5ICYmIGNoaWxkLnByb3BzW3Nob3dQcm9wXSkge1xuICAgICAgICBpZiAocmV0KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0d28gY2hpbGQgd2l0aCBzYW1lIGtleSBmb3IgPHJjLWFuaW1hdGU+IGNoaWxkcmVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gY2hpbGQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRIaWRkZW5DaGlsZEluQ2hpbGRyZW5CeUtleShjaGlsZHJlbiwga2V5LCBzaG93UHJvcCkge1xuICB2YXIgZm91bmQgPSAwO1xuICBpZiAoY2hpbGRyZW4pIHtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZvdW5kID0gY2hpbGQgJiYgY2hpbGQua2V5ID09PSBrZXkgJiYgIWNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZm91bmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhbWVDaGlsZHJlbihjMSwgYzIsIHNob3dQcm9wKSB7XG4gIHZhciBzYW1lID0gYzEubGVuZ3RoID09PSBjMi5sZW5ndGg7XG4gIGlmIChzYW1lKSB7XG4gICAgYzEuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQsIGluZGV4KSB7XG4gICAgICB2YXIgY2hpbGQyID0gYzJbaW5kZXhdO1xuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkMikge1xuICAgICAgICBpZiAoY2hpbGQgJiYgIWNoaWxkMiB8fCAhY2hpbGQgJiYgY2hpbGQyKSB7XG4gICAgICAgICAgc2FtZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLmtleSAhPT0gY2hpbGQyLmtleSkge1xuICAgICAgICAgIHNhbWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzaG93UHJvcCAmJiBjaGlsZC5wcm9wc1tzaG93UHJvcF0gIT09IGNoaWxkMi5wcm9wc1tzaG93UHJvcF0pIHtcbiAgICAgICAgICBzYW1lID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gc2FtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ2hpbGRyZW4ocHJldiwgbmV4dCkge1xuICB2YXIgcmV0ID0gW107XG5cbiAgLy8gRm9yIGVhY2gga2V5IG9mIGBuZXh0YCwgdGhlIGxpc3Qgb2Yga2V5cyB0byBpbnNlcnQgYmVmb3JlIHRoYXQga2V5IGluXG4gIC8vIHRoZSBjb21iaW5lZCBsaXN0XG4gIHZhciBuZXh0Q2hpbGRyZW5QZW5kaW5nID0ge307XG4gIHZhciBwZW5kaW5nQ2hpbGRyZW4gPSBbXTtcbiAgcHJldi5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCAmJiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkobmV4dCwgY2hpbGQua2V5KSkge1xuICAgICAgaWYgKHBlbmRpbmdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgbmV4dENoaWxkcmVuUGVuZGluZ1tjaGlsZC5rZXldID0gcGVuZGluZ0NoaWxkcmVuO1xuICAgICAgICBwZW5kaW5nQ2hpbGRyZW4gPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGVuZGluZ0NoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIH1cbiAgfSk7XG5cbiAgbmV4dC5mb3JFYWNoKGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobmV4dENoaWxkcmVuUGVuZGluZywgY2hpbGQua2V5KSkge1xuICAgICAgcmV0ID0gcmV0LmNvbmNhdChuZXh0Q2hpbGRyZW5QZW5kaW5nW2NoaWxkLmtleV0pO1xuICAgIH1cbiAgICByZXQucHVzaChjaGlsZCk7XG4gIH0pO1xuXG4gIHJldCA9IHJldC5jb25jYXQocGVuZGluZ0NoaWxkcmVuKTtcblxuICByZXR1cm4gcmV0O1xufSIsInZhciB1dGlsID0ge1xuICBpc0FwcGVhclN1cHBvcnRlZDogZnVuY3Rpb24gaXNBcHBlYXJTdXBwb3J0ZWQocHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMudHJhbnNpdGlvbkFwcGVhciB8fCBwcm9wcy5hbmltYXRpb24uYXBwZWFyO1xuICB9LFxuICBpc0VudGVyU3VwcG9ydGVkOiBmdW5jdGlvbiBpc0VudGVyU3VwcG9ydGVkKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25OYW1lICYmIHByb3BzLnRyYW5zaXRpb25FbnRlciB8fCBwcm9wcy5hbmltYXRpb24uZW50ZXI7XG4gIH0sXG4gIGlzTGVhdmVTdXBwb3J0ZWQ6IGZ1bmN0aW9uIGlzTGVhdmVTdXBwb3J0ZWQocHJvcHMpIHtcbiAgICByZXR1cm4gcHJvcHMudHJhbnNpdGlvbk5hbWUgJiYgcHJvcHMudHJhbnNpdGlvbkxlYXZlIHx8IHByb3BzLmFuaW1hdGlvbi5sZWF2ZTtcbiAgfSxcbiAgYWxsb3dBcHBlYXJDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dBcHBlYXJDYWxsYmFjayhwcm9wcykge1xuICAgIHJldHVybiBwcm9wcy50cmFuc2l0aW9uQXBwZWFyIHx8IHByb3BzLmFuaW1hdGlvbi5hcHBlYXI7XG4gIH0sXG4gIGFsbG93RW50ZXJDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dFbnRlckNhbGxiYWNrKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25FbnRlciB8fCBwcm9wcy5hbmltYXRpb24uZW50ZXI7XG4gIH0sXG4gIGFsbG93TGVhdmVDYWxsYmFjazogZnVuY3Rpb24gYWxsb3dMZWF2ZUNhbGxiYWNrKHByb3BzKSB7XG4gICAgcmV0dXJuIHByb3BzLnRyYW5zaXRpb25MZWF2ZSB8fCBwcm9wcy5hbmltYXRpb24ubGVhdmU7XG4gIH1cbn07XG5leHBvcnQgZGVmYXVsdCB1dGlsOyIsImltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NsYXNzQ2FsbENoZWNrJztcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzJztcbmltcG9ydCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybic7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9pbmhlcml0cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNzc0FuaW1hdGUsIHsgaXNDc3NBbmltYXRpb25TdXBwb3J0ZWQgfSBmcm9tICdjc3MtYW5pbWF0aW9uJztcbmltcG9ydCBhbmltVXRpbCBmcm9tICcuL3V0aWwvYW5pbWF0ZSc7XG5cbnZhciB0cmFuc2l0aW9uTWFwID0ge1xuICBlbnRlcjogJ3RyYW5zaXRpb25FbnRlcicsXG4gIGFwcGVhcjogJ3RyYW5zaXRpb25BcHBlYXInLFxuICBsZWF2ZTogJ3RyYW5zaXRpb25MZWF2ZSdcbn07XG5cbnZhciBBbmltYXRlQ2hpbGQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQW5pbWF0ZUNoaWxkLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBBbmltYXRlQ2hpbGQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFuaW1hdGVDaGlsZCk7XG5cbiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKEFuaW1hdGVDaGlsZC5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEFuaW1hdGVDaGlsZCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEFuaW1hdGVDaGlsZCwgW3tcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5zdG9wKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbEVudGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbEVudGVyKGRvbmUpIHtcbiAgICAgIGlmIChhbmltVXRpbC5pc0VudGVyU3VwcG9ydGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbignZW50ZXInLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsQXBwZWFyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbEFwcGVhcihkb25lKSB7XG4gICAgICBpZiAoYW5pbVV0aWwuaXNBcHBlYXJTdXBwb3J0ZWQodGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uKCdhcHBlYXInLCBkb25lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsTGVhdmUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsTGVhdmUoZG9uZSkge1xuICAgICAgaWYgKGFuaW1VdGlsLmlzTGVhdmVTdXBwb3J0ZWQodGhpcy5wcm9wcykpIHtcbiAgICAgICAgdGhpcy50cmFuc2l0aW9uKCdsZWF2ZScsIGRvbmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gYWx3YXlzIHN5bmMsIGRvIG5vdCBpbnRlcnVwdCB3aXRoIHJlYWN0IGNvbXBvbmVudCBsaWZlIGN5Y2xlXG4gICAgICAgIC8vIHVwZGF0ZSBoaWRkZW4gLT4gYW5pbWF0ZSBoaWRkZW4gLT5cbiAgICAgICAgLy8gZGlkVXBkYXRlIC0+IGFuaW1hdGUgbGVhdmUgLT4gdW5tb3VudCAoaWYgYW5pbWF0ZSBpcyBub25lKVxuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAndHJhbnNpdGlvbicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRyYW5zaXRpb24oYW5pbWF0aW9uVHlwZSwgZmluaXNoQ2FsbGJhY2spIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgbm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKHRoaXMpO1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IHByb3BzLnRyYW5zaXRpb25OYW1lO1xuICAgICAgdmFyIG5hbWVJc09iaiA9IHR5cGVvZiB0cmFuc2l0aW9uTmFtZSA9PT0gJ29iamVjdCc7XG4gICAgICB0aGlzLnN0b3AoKTtcbiAgICAgIHZhciBlbmQgPSBmdW5jdGlvbiBlbmQoKSB7XG4gICAgICAgIF90aGlzMi5zdG9wcGVyID0gbnVsbDtcbiAgICAgICAgZmluaXNoQ2FsbGJhY2soKTtcbiAgICAgIH07XG4gICAgICBpZiAoKGlzQ3NzQW5pbWF0aW9uU3VwcG9ydGVkIHx8ICFwcm9wcy5hbmltYXRpb25bYW5pbWF0aW9uVHlwZV0pICYmIHRyYW5zaXRpb25OYW1lICYmIHByb3BzW3RyYW5zaXRpb25NYXBbYW5pbWF0aW9uVHlwZV1dKSB7XG4gICAgICAgIHZhciBuYW1lID0gbmFtZUlzT2JqID8gdHJhbnNpdGlvbk5hbWVbYW5pbWF0aW9uVHlwZV0gOiB0cmFuc2l0aW9uTmFtZSArICctJyArIGFuaW1hdGlvblR5cGU7XG4gICAgICAgIHZhciBhY3RpdmVOYW1lID0gbmFtZSArICctYWN0aXZlJztcbiAgICAgICAgaWYgKG5hbWVJc09iaiAmJiB0cmFuc2l0aW9uTmFtZVthbmltYXRpb25UeXBlICsgJ0FjdGl2ZSddKSB7XG4gICAgICAgICAgYWN0aXZlTmFtZSA9IHRyYW5zaXRpb25OYW1lW2FuaW1hdGlvblR5cGUgKyAnQWN0aXZlJ107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9wcGVyID0gY3NzQW5pbWF0ZShub2RlLCB7XG4gICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICBhY3RpdmU6IGFjdGl2ZU5hbWVcbiAgICAgICAgfSwgZW5kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RvcHBlciA9IHByb3BzLmFuaW1hdGlvblthbmltYXRpb25UeXBlXShub2RlLCBlbmQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3N0b3AnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzdG9wKCkge1xuICAgICAgdmFyIHN0b3BwZXIgPSB0aGlzLnN0b3BwZXI7XG4gICAgICBpZiAoc3RvcHBlcikge1xuICAgICAgICB0aGlzLnN0b3BwZXIgPSBudWxsO1xuICAgICAgICBzdG9wcGVyLnN0b3AoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gQW5pbWF0ZUNoaWxkO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5BbmltYXRlQ2hpbGQucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgYW5pbWF0aW9uOiBQcm9wVHlwZXMuYW55LFxuICB0cmFuc2l0aW9uTmFtZTogUHJvcFR5cGVzLmFueVxufTtcbmV4cG9ydCBkZWZhdWx0IEFuaW1hdGVDaGlsZDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2V4dGVuZHMnO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHknO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2snO1xuaW1wb3J0IF9jcmVhdGVDbGFzcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3MnO1xuaW1wb3J0IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuJztcbmltcG9ydCBfaW5oZXJpdHMgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2luaGVyaXRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHVuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbCBmcm9tICdyYy11dGlsL2VzL3Vuc2FmZUxpZmVjeWNsZXNQb2x5ZmlsbCc7XG5pbXBvcnQgeyB0b0FycmF5Q2hpbGRyZW4sIG1lcmdlQ2hpbGRyZW4sIGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5LCBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXksIGlzU2FtZUNoaWxkcmVuIH0gZnJvbSAnLi9DaGlsZHJlblV0aWxzJztcbmltcG9ydCBBbmltYXRlQ2hpbGQgZnJvbSAnLi9BbmltYXRlQ2hpbGQnO1xuaW1wb3J0IGFuaW1VdGlsIGZyb20gJy4vdXRpbC9hbmltYXRlJztcblxudmFyIGRlZmF1bHRLZXkgPSAncmNfYW5pbWF0ZV8nICsgRGF0ZS5ub3coKTtcblxuZnVuY3Rpb24gZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpIHtcbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICBpZiAoIWNoaWxkcmVuLmtleSkge1xuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZHJlbiwge1xuICAgICAgICBrZXk6IGRlZmF1bHRLZXlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG52YXIgQW5pbWF0ZSA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhBbmltYXRlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgZnVuY3Rpb24gQW5pbWF0ZShwcm9wcykge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBbmltYXRlKTtcblxuICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChBbmltYXRlLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQW5pbWF0ZSkpLmNhbGwodGhpcywgcHJvcHMpKTtcblxuICAgIF9pbml0aWFsaXNlUHJvcHMuY2FsbChfdGhpcyk7XG5cbiAgICBfdGhpcy5jdXJyZW50bHlBbmltYXRpbmdLZXlzID0ge307XG4gICAgX3RoaXMua2V5c1RvRW50ZXIgPSBbXTtcbiAgICBfdGhpcy5rZXlzVG9MZWF2ZSA9IFtdO1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBjaGlsZHJlbjogdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKHByb3BzKSlcbiAgICB9O1xuXG4gICAgX3RoaXMuY2hpbGRyZW5SZWZzID0ge307XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKEFuaW1hdGUsIFt7XG4gICAga2V5OiAnY29tcG9uZW50RGlkTW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgc2hvd1Byb3AgPSB0aGlzLnByb3BzLnNob3dQcm9wO1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5zdGF0ZS5jaGlsZHJlbjtcbiAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICByZXR1cm4gISFjaGlsZC5wcm9wc1tzaG93UHJvcF07XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgaWYgKGNoaWxkKSB7XG4gICAgICAgICAgX3RoaXMyLnBlcmZvcm1BcHBlYXIoY2hpbGQua2V5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgdGhpcy5uZXh0UHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgICB2YXIgbmV4dENoaWxkcmVuID0gdG9BcnJheUNoaWxkcmVuKGdldENoaWxkcmVuRnJvbVByb3BzKG5leHRQcm9wcykpO1xuICAgICAgdmFyIHByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIC8vIGV4Y2x1c2l2ZSBuZWVkcyBpbW1lZGlhdGUgcmVzcG9uc2VcbiAgICAgIGlmIChwcm9wcy5leGNsdXNpdmUpIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5jdXJyZW50bHlBbmltYXRpbmdLZXlzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICBfdGhpczMuc3RvcChrZXkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHZhciBzaG93UHJvcCA9IHByb3BzLnNob3dQcm9wO1xuICAgICAgdmFyIGN1cnJlbnRseUFuaW1hdGluZ0tleXMgPSB0aGlzLmN1cnJlbnRseUFuaW1hdGluZ0tleXM7XG4gICAgICAvLyBsYXN0IHByb3BzIGNoaWxkcmVuIGlmIGV4Y2x1c2l2ZVxuICAgICAgdmFyIGN1cnJlbnRDaGlsZHJlbiA9IHByb3BzLmV4Y2x1c2l2ZSA/IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykpIDogdGhpcy5zdGF0ZS5jaGlsZHJlbjtcbiAgICAgIC8vIGluIGNhc2UgZGVzdHJveSBpbiBzaG93UHJvcCBtb2RlXG4gICAgICB2YXIgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICBjdXJyZW50Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY3VycmVudENoaWxkKSB7XG4gICAgICAgICAgdmFyIG5leHRDaGlsZCA9IGN1cnJlbnRDaGlsZCAmJiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkobmV4dENoaWxkcmVuLCBjdXJyZW50Q2hpbGQua2V5KTtcbiAgICAgICAgICB2YXIgbmV3Q2hpbGQgPSB2b2lkIDA7XG4gICAgICAgICAgaWYgKCghbmV4dENoaWxkIHx8ICFuZXh0Q2hpbGQucHJvcHNbc2hvd1Byb3BdKSAmJiBjdXJyZW50Q2hpbGQucHJvcHNbc2hvd1Byb3BdKSB7XG4gICAgICAgICAgICBuZXdDaGlsZCA9IFJlYWN0LmNsb25lRWxlbWVudChuZXh0Q2hpbGQgfHwgY3VycmVudENoaWxkLCBfZGVmaW5lUHJvcGVydHkoe30sIHNob3dQcm9wLCB0cnVlKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0NoaWxkID0gbmV4dENoaWxkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobmV3Q2hpbGQpIHtcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2gobmV3Q2hpbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG5leHRDaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uIChuZXh0Q2hpbGQpIHtcbiAgICAgICAgICBpZiAoIW5leHRDaGlsZCB8fCAhZmluZENoaWxkSW5DaGlsZHJlbkJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwgbmV4dENoaWxkLmtleSkpIHtcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2gobmV4dENoaWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3Q2hpbGRyZW4gPSBtZXJnZUNoaWxkcmVuKGN1cnJlbnRDaGlsZHJlbiwgbmV4dENoaWxkcmVuKTtcbiAgICAgIH1cblxuICAgICAgLy8gbmVlZCByZW5kZXIgdG8gYXZvaWQgdXBkYXRlXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2hpbGRyZW46IG5ld0NoaWxkcmVuXG4gICAgICB9KTtcblxuICAgICAgbmV4dENoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHZhciBrZXkgPSBjaGlsZCAmJiBjaGlsZC5rZXk7XG4gICAgICAgIGlmIChjaGlsZCAmJiBjdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhhc1ByZXYgPSBjaGlsZCAmJiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpO1xuICAgICAgICBpZiAoc2hvd1Byb3ApIHtcbiAgICAgICAgICB2YXIgc2hvd0luTmV4dCA9IGNoaWxkLnByb3BzW3Nob3dQcm9wXTtcbiAgICAgICAgICBpZiAoaGFzUHJldikge1xuICAgICAgICAgICAgdmFyIHNob3dJbk5vdyA9IGZpbmRTaG93bkNoaWxkSW5DaGlsZHJlbkJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5LCBzaG93UHJvcCk7XG4gICAgICAgICAgICBpZiAoIXNob3dJbk5vdyAmJiBzaG93SW5OZXh0KSB7XG4gICAgICAgICAgICAgIF90aGlzMy5rZXlzVG9FbnRlci5wdXNoKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChzaG93SW5OZXh0KSB7XG4gICAgICAgICAgICBfdGhpczMua2V5c1RvRW50ZXIucHVzaChrZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghaGFzUHJldikge1xuICAgICAgICAgIF90aGlzMy5rZXlzVG9FbnRlci5wdXNoKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjdXJyZW50Q2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgdmFyIGtleSA9IGNoaWxkICYmIGNoaWxkLmtleTtcbiAgICAgICAgaWYgKGNoaWxkICYmIGN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaGFzTmV4dCA9IGNoaWxkICYmIGZpbmRDaGlsZEluQ2hpbGRyZW5CeUtleShuZXh0Q2hpbGRyZW4sIGtleSk7XG4gICAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICAgIHZhciBzaG93SW5Ob3cgPSBjaGlsZC5wcm9wc1tzaG93UHJvcF07XG4gICAgICAgICAgaWYgKGhhc05leHQpIHtcbiAgICAgICAgICAgIHZhciBzaG93SW5OZXh0ID0gZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXkobmV4dENoaWxkcmVuLCBrZXksIHNob3dQcm9wKTtcbiAgICAgICAgICAgIGlmICghc2hvd0luTmV4dCAmJiBzaG93SW5Ob3cpIHtcbiAgICAgICAgICAgICAgX3RoaXMzLmtleXNUb0xlYXZlLnB1c2goa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHNob3dJbk5vdykge1xuICAgICAgICAgICAgX3RoaXMzLmtleXNUb0xlYXZlLnB1c2goa2V5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIWhhc05leHQpIHtcbiAgICAgICAgICBfdGhpczMua2V5c1RvTGVhdmUucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnREaWRVcGRhdGUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICB2YXIga2V5c1RvRW50ZXIgPSB0aGlzLmtleXNUb0VudGVyO1xuICAgICAgdGhpcy5rZXlzVG9FbnRlciA9IFtdO1xuICAgICAga2V5c1RvRW50ZXIuZm9yRWFjaCh0aGlzLnBlcmZvcm1FbnRlcik7XG4gICAgICB2YXIga2V5c1RvTGVhdmUgPSB0aGlzLmtleXNUb0xlYXZlO1xuICAgICAgdGhpcy5rZXlzVG9MZWF2ZSA9IFtdO1xuICAgICAga2V5c1RvTGVhdmUuZm9yRWFjaCh0aGlzLnBlcmZvcm1MZWF2ZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaXNWYWxpZENoaWxkQnlLZXknLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc1ZhbGlkQ2hpbGRCeUtleShjdXJyZW50Q2hpbGRyZW4sIGtleSkge1xuICAgICAgdmFyIHNob3dQcm9wID0gdGhpcy5wcm9wcy5zaG93UHJvcDtcbiAgICAgIGlmIChzaG93UHJvcCkge1xuICAgICAgICByZXR1cm4gZmluZFNob3duQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXksIHNob3dQcm9wKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaW5kQ2hpbGRJbkNoaWxkcmVuQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3N0b3AnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzdG9wKGtleSkge1xuICAgICAgZGVsZXRlIHRoaXMuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldO1xuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuY2hpbGRyZW5SZWZzW2tleV07XG4gICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgIGNvbXBvbmVudC5zdG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgIHZhciBwcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICB0aGlzLm5leHRQcm9wcyA9IHByb3BzO1xuICAgICAgdmFyIHN0YXRlQ2hpbGRyZW4gPSB0aGlzLnN0YXRlLmNoaWxkcmVuO1xuICAgICAgdmFyIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIGlmIChzdGF0ZUNoaWxkcmVuKSB7XG4gICAgICAgIGNoaWxkcmVuID0gc3RhdGVDaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgaWYgKGNoaWxkID09PSBudWxsIHx8IGNoaWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjaGlsZC5rZXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbXVzdCBzZXQga2V5IGZvciA8cmMtYW5pbWF0ZT4gY2hpbGRyZW4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICBBbmltYXRlQ2hpbGQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogY2hpbGQua2V5LFxuICAgICAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZihub2RlKSB7XG4gICAgICAgICAgICAgICAgX3RoaXM0LmNoaWxkcmVuUmVmc1tjaGlsZC5rZXldID0gbm9kZTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBwcm9wcy5hbmltYXRpb24sXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25OYW1lOiBwcm9wcy50cmFuc2l0aW9uTmFtZSxcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkVudGVyOiBwcm9wcy50cmFuc2l0aW9uRW50ZXIsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25BcHBlYXI6IHByb3BzLnRyYW5zaXRpb25BcHBlYXIsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25MZWF2ZTogcHJvcHMudHJhbnNpdGlvbkxlYXZlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHZhciBDb21wb25lbnQgPSBwcm9wcy5jb21wb25lbnQ7XG4gICAgICBpZiAoQ29tcG9uZW50KSB7XG4gICAgICAgIHZhciBwYXNzZWRQcm9wcyA9IHByb3BzO1xuICAgICAgICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBwYXNzZWRQcm9wcyA9IF9leHRlbmRzKHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgICAgc3R5bGU6IHByb3BzLnN0eWxlXG4gICAgICAgICAgfSwgcHJvcHMuY29tcG9uZW50UHJvcHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBSZWFjdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICBwYXNzZWRQcm9wcyxcbiAgICAgICAgICBjaGlsZHJlblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNoaWxkcmVuWzBdIHx8IG51bGw7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIEFuaW1hdGU7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbkFuaW1hdGUuaXNBbmltYXRlID0gdHJ1ZTtcbkFuaW1hdGUucHJvcFR5cGVzID0ge1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBjb21wb25lbnQ6IFByb3BUeXBlcy5hbnksXG4gIGNvbXBvbmVudFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LFxuICBhbmltYXRpb246IFByb3BUeXBlcy5vYmplY3QsXG4gIHRyYW5zaXRpb25OYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSksXG4gIHRyYW5zaXRpb25FbnRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIHRyYW5zaXRpb25BcHBlYXI6IFByb3BUeXBlcy5ib29sLFxuICBleGNsdXNpdmU6IFByb3BUeXBlcy5ib29sLFxuICB0cmFuc2l0aW9uTGVhdmU6IFByb3BUeXBlcy5ib29sLFxuICBvbkVuZDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uRW50ZXI6IFByb3BUeXBlcy5mdW5jLFxuICBvbkxlYXZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25BcHBlYXI6IFByb3BUeXBlcy5mdW5jLFxuICBzaG93UHJvcDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG59O1xuQW5pbWF0ZS5kZWZhdWx0UHJvcHMgPSB7XG4gIGFuaW1hdGlvbjoge30sXG4gIGNvbXBvbmVudDogJ3NwYW4nLFxuICBjb21wb25lbnRQcm9wczoge30sXG4gIHRyYW5zaXRpb25FbnRlcjogdHJ1ZSxcbiAgdHJhbnNpdGlvbkxlYXZlOiB0cnVlLFxuICB0cmFuc2l0aW9uQXBwZWFyOiBmYWxzZSxcbiAgb25FbmQ6IG5vb3AsXG4gIG9uRW50ZXI6IG5vb3AsXG4gIG9uTGVhdmU6IG5vb3AsXG4gIG9uQXBwZWFyOiBub29wXG59O1xuXG52YXIgX2luaXRpYWxpc2VQcm9wcyA9IGZ1bmN0aW9uIF9pbml0aWFsaXNlUHJvcHMoKSB7XG4gIHZhciBfdGhpczUgPSB0aGlzO1xuXG4gIHRoaXMucGVyZm9ybUVudGVyID0gZnVuY3Rpb24gKGtleSkge1xuICAgIC8vIG1heSBhbHJlYWR5IHJlbW92ZSBieSBleGNsdXNpdmVcbiAgICBpZiAoX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldKSB7XG4gICAgICBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgIF90aGlzNS5jaGlsZHJlblJlZnNba2V5XS5jb21wb25lbnRXaWxsRW50ZXIoX3RoaXM1LmhhbmRsZURvbmVBZGRpbmcuYmluZChfdGhpczUsIGtleSwgJ2VudGVyJykpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLnBlcmZvcm1BcHBlYXIgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKF90aGlzNS5jaGlsZHJlblJlZnNba2V5XSkge1xuICAgICAgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XSA9IHRydWU7XG4gICAgICBfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0uY29tcG9uZW50V2lsbEFwcGVhcihfdGhpczUuaGFuZGxlRG9uZUFkZGluZy5iaW5kKF90aGlzNSwga2V5LCAnYXBwZWFyJykpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLmhhbmRsZURvbmVBZGRpbmcgPSBmdW5jdGlvbiAoa2V5LCB0eXBlKSB7XG4gICAgdmFyIHByb3BzID0gX3RoaXM1LnByb3BzO1xuICAgIGRlbGV0ZSBfdGhpczUuY3VycmVudGx5QW5pbWF0aW5nS2V5c1trZXldO1xuICAgIC8vIGlmIHVwZGF0ZSBvbiBleGNsdXNpdmUgbW9kZSwgc2tpcCBjaGVja1xuICAgIGlmIChwcm9wcy5leGNsdXNpdmUgJiYgcHJvcHMgIT09IF90aGlzNS5uZXh0UHJvcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGN1cnJlbnRDaGlsZHJlbiA9IHRvQXJyYXlDaGlsZHJlbihnZXRDaGlsZHJlbkZyb21Qcm9wcyhwcm9wcykpO1xuICAgIGlmICghX3RoaXM1LmlzVmFsaWRDaGlsZEJ5S2V5KGN1cnJlbnRDaGlsZHJlbiwga2V5KSkge1xuICAgICAgLy8gZXhjbHVzaXZlIHdpbGwgbm90IG5lZWQgdGhpc1xuICAgICAgX3RoaXM1LnBlcmZvcm1MZWF2ZShrZXkpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FwcGVhcicpIHtcbiAgICAgIGlmIChhbmltVXRpbC5hbGxvd0FwcGVhckNhbGxiYWNrKHByb3BzKSkge1xuICAgICAgICBwcm9wcy5vbkFwcGVhcihrZXkpO1xuICAgICAgICBwcm9wcy5vbkVuZChrZXksIHRydWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYW5pbVV0aWwuYWxsb3dFbnRlckNhbGxiYWNrKHByb3BzKSkge1xuICAgICAgcHJvcHMub25FbnRlcihrZXkpO1xuICAgICAgcHJvcHMub25FbmQoa2V5LCB0cnVlKTtcbiAgICB9XG4gIH07XG5cbiAgdGhpcy5wZXJmb3JtTGVhdmUgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgLy8gbWF5IGFscmVhZHkgcmVtb3ZlIGJ5IGV4Y2x1c2l2ZVxuICAgIGlmIChfdGhpczUuY2hpbGRyZW5SZWZzW2tleV0pIHtcbiAgICAgIF90aGlzNS5jdXJyZW50bHlBbmltYXRpbmdLZXlzW2tleV0gPSB0cnVlO1xuICAgICAgX3RoaXM1LmNoaWxkcmVuUmVmc1trZXldLmNvbXBvbmVudFdpbGxMZWF2ZShfdGhpczUuaGFuZGxlRG9uZUxlYXZpbmcuYmluZChfdGhpczUsIGtleSkpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLmhhbmRsZURvbmVMZWF2aW5nID0gZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBwcm9wcyA9IF90aGlzNS5wcm9wcztcbiAgICBkZWxldGUgX3RoaXM1LmN1cnJlbnRseUFuaW1hdGluZ0tleXNba2V5XTtcbiAgICAvLyBpZiB1cGRhdGUgb24gZXhjbHVzaXZlIG1vZGUsIHNraXAgY2hlY2tcbiAgICBpZiAocHJvcHMuZXhjbHVzaXZlICYmIHByb3BzICE9PSBfdGhpczUubmV4dFByb3BzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciBjdXJyZW50Q2hpbGRyZW4gPSB0b0FycmF5Q2hpbGRyZW4oZ2V0Q2hpbGRyZW5Gcm9tUHJvcHMocHJvcHMpKTtcbiAgICAvLyBpbiBjYXNlIHN0YXRlIGNoYW5nZSBpcyB0b28gZmFzdFxuICAgIGlmIChfdGhpczUuaXNWYWxpZENoaWxkQnlLZXkoY3VycmVudENoaWxkcmVuLCBrZXkpKSB7XG4gICAgICBfdGhpczUucGVyZm9ybUVudGVyKGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBlbmQgPSBmdW5jdGlvbiBlbmQoKSB7XG4gICAgICAgIGlmIChhbmltVXRpbC5hbGxvd0xlYXZlQ2FsbGJhY2socHJvcHMpKSB7XG4gICAgICAgICAgcHJvcHMub25MZWF2ZShrZXkpO1xuICAgICAgICAgIHByb3BzLm9uRW5kKGtleSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKCFpc1NhbWVDaGlsZHJlbihfdGhpczUuc3RhdGUuY2hpbGRyZW4sIGN1cnJlbnRDaGlsZHJlbiwgcHJvcHMuc2hvd1Byb3ApKSB7XG4gICAgICAgIF90aGlzNS5zZXRTdGF0ZSh7XG4gICAgICAgICAgY2hpbGRyZW46IGN1cnJlbnRDaGlsZHJlblxuICAgICAgICB9LCBlbmQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgdW5zYWZlTGlmZWN5Y2xlc1BvbHlmaWxsKEFuaW1hdGUpOyIsImltcG9ydCBfZXh0ZW5kcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZXh0ZW5kc1wiO1xuaW1wb3J0IF9kZWZpbmVQcm9wZXJ0eSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vZGVmaW5lUHJvcGVydHlcIjtcbmltcG9ydCBfY2xhc3NDYWxsQ2hlY2sgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NsYXNzQ2FsbENoZWNrXCI7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVDbGFzc1wiO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vaW5oZXJpdHNcIjtcbmltcG9ydCBfY3JlYXRlU3VwZXIgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZVN1cGVyXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG52YXIgTm90aWNlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhOb3RpY2UsIF9Db21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoTm90aWNlKTtcblxuICBmdW5jdGlvbiBOb3RpY2UoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE5vdGljZSk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIF90aGlzLmNsb3NlVGltZXIgPSBudWxsO1xuXG4gICAgX3RoaXMuY2xvc2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuY2xlYXJDbG9zZVRpbWVyKCk7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIG9uQ2xvc2UgPSBfdGhpcyRwcm9wcy5vbkNsb3NlLFxuICAgICAgICAgIG5vdGljZUtleSA9IF90aGlzJHByb3BzLm5vdGljZUtleTtcblxuICAgICAgaWYgKG9uQ2xvc2UpIHtcbiAgICAgICAgb25DbG9zZShub3RpY2VLZXkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5zdGFydENsb3NlVGltZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMuZHVyYXRpb24pIHtcbiAgICAgICAgX3RoaXMuY2xvc2VUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpcy5jbG9zZSgpO1xuICAgICAgICB9LCBfdGhpcy5wcm9wcy5kdXJhdGlvbiAqIDEwMDApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdGhpcy5jbGVhckNsb3NlVGltZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoX3RoaXMuY2xvc2VUaW1lcikge1xuICAgICAgICBjbGVhclRpbWVvdXQoX3RoaXMuY2xvc2VUaW1lcik7XG4gICAgICAgIF90aGlzLmNsb3NlVGltZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTm90aWNlLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuc3RhcnRDbG9zZVRpbWVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5kdXJhdGlvbiAhPT0gcHJldlByb3BzLmR1cmF0aW9uIHx8IHRoaXMucHJvcHMudXBkYXRlTWFyayAhPT0gcHJldlByb3BzLnVwZGF0ZU1hcmspIHtcbiAgICAgICAgdGhpcy5yZXN0YXJ0Q2xvc2VUaW1lcigpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuY2xlYXJDbG9zZVRpbWVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlc3RhcnRDbG9zZVRpbWVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlc3RhcnRDbG9zZVRpbWVyKCkge1xuICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICAgIHRoaXMuc3RhcnRDbG9zZVRpbWVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdmFyIF90aGlzJHByb3BzMiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMyLnByZWZpeENscyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wczIuY2xhc3NOYW1lLFxuICAgICAgICAgIGNsb3NhYmxlID0gX3RoaXMkcHJvcHMyLmNsb3NhYmxlLFxuICAgICAgICAgIGNsb3NlSWNvbiA9IF90aGlzJHByb3BzMi5jbG9zZUljb24sXG4gICAgICAgICAgc3R5bGUgPSBfdGhpcyRwcm9wczIuc3R5bGUsXG4gICAgICAgICAgb25DbGljayA9IF90aGlzJHByb3BzMi5vbkNsaWNrLFxuICAgICAgICAgIGNoaWxkcmVuID0gX3RoaXMkcHJvcHMyLmNoaWxkcmVuLFxuICAgICAgICAgIGhvbGRlciA9IF90aGlzJHByb3BzMi5ob2xkZXI7XG4gICAgICB2YXIgY29tcG9uZW50Q2xhc3MgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5vdGljZVwiKTtcbiAgICAgIHZhciBkYXRhT3JBcmlhQXR0cmlidXRlUHJvcHMgPSBPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywga2V5KSB7XG4gICAgICAgIGlmIChrZXkuc3Vic3RyKDAsIDUpID09PSAnZGF0YS0nIHx8IGtleS5zdWJzdHIoMCwgNSkgPT09ICdhcmlhLScgfHwga2V5ID09PSAncm9sZScpIHtcbiAgICAgICAgICBhY2Nba2V5XSA9IF90aGlzMi5wcm9wc1trZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgICAgIHZhciBub2RlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6IGNsYXNzTmFtZXMoY29tcG9uZW50Q2xhc3MsIGNsYXNzTmFtZSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChjb21wb25lbnRDbGFzcywgXCItY2xvc2FibGVcIiksIGNsb3NhYmxlKSksXG4gICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgb25Nb3VzZUVudGVyOiB0aGlzLmNsZWFyQ2xvc2VUaW1lcixcbiAgICAgICAgb25Nb3VzZUxlYXZlOiB0aGlzLnN0YXJ0Q2xvc2VUaW1lcixcbiAgICAgICAgb25DbGljazogb25DbGlja1xuICAgICAgfSwgZGF0YU9yQXJpYUF0dHJpYnV0ZVByb3BzKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KGNvbXBvbmVudENsYXNzLCBcIi1jb250ZW50XCIpXG4gICAgICB9LCBjaGlsZHJlbiksIGNsb3NhYmxlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtcbiAgICAgICAgdGFiSW5kZXg6IDAsXG4gICAgICAgIG9uQ2xpY2s6IHRoaXMuY2xvc2UsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY29tcG9uZW50Q2xhc3MsIFwiLWNsb3NlXCIpXG4gICAgICB9LCBjbG9zZUljb24gfHwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjb21wb25lbnRDbGFzcywgXCItY2xvc2UteFwiKVxuICAgICAgfSkpIDogbnVsbCk7XG5cbiAgICAgIGlmIChob2xkZXIpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdERPTS5jcmVhdGVQb3J0YWwobm9kZSwgaG9sZGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5vdGljZTtcbn0oQ29tcG9uZW50KTtcblxuZXhwb3J0IHsgTm90aWNlIGFzIGRlZmF1bHQgfTtcbk5vdGljZS5kZWZhdWx0UHJvcHMgPSB7XG4gIG9uQ2xvc2U6IGZ1bmN0aW9uIG9uQ2xvc2UoKSB7fSxcbiAgZHVyYXRpb246IDEuNVxufTsiLCJpbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vb2JqZWN0U3ByZWFkMlwiO1xuaW1wb3J0IF9jbGFzc0NhbGxDaGVjayBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY2xhc3NDYWxsQ2hlY2tcIjtcbmltcG9ydCBfY3JlYXRlQ2xhc3MgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2NyZWF0ZUNsYXNzXCI7XG5pbXBvcnQgX2luaGVyaXRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pbmhlcml0c1wiO1xuaW1wb3J0IF9jcmVhdGVTdXBlciBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlU3VwZXJcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBDU1NNb3Rpb25MaXN0IH0gZnJvbSAncmMtbW90aW9uJztcbmltcG9ydCBOb3RpY2UgZnJvbSAnLi9Ob3RpY2UnO1xuaW1wb3J0IF91c2VOb3RpZmljYXRpb24gZnJvbSAnLi91c2VOb3RpZmljYXRpb24nO1xudmFyIHNlZWQgPSAwO1xudmFyIG5vdyA9IERhdGUubm93KCk7XG5cbmZ1bmN0aW9uIGdldFV1aWQoKSB7XG4gIHZhciBpZCA9IHNlZWQ7XG4gIHNlZWQgKz0gMTtcbiAgcmV0dXJuIFwicmNOb3RpZmljYXRpb25fXCIuY29uY2F0KG5vdywgXCJfXCIpLmNvbmNhdChpZCk7XG59XG5cbnZhciBOb3RpZmljYXRpb24gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKE5vdGlmaWNhdGlvbiwgX0NvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihOb3RpZmljYXRpb24pO1xuXG4gIGZ1bmN0aW9uIE5vdGlmaWNhdGlvbigpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTm90aWZpY2F0aW9uKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBub3RpY2VzOiBbXVxuICAgIH07XG4gICAgX3RoaXMuaG9va1JlZnMgPSBuZXcgTWFwKCk7XG5cbiAgICBfdGhpcy5hZGQgPSBmdW5jdGlvbiAob3JpZ2luTm90aWNlLCBob2xkZXJDYWxsYmFjaykge1xuICAgICAgdmFyIGtleSA9IG9yaWdpbk5vdGljZS5rZXkgfHwgZ2V0VXVpZCgpO1xuXG4gICAgICB2YXIgbm90aWNlID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBvcmlnaW5Ob3RpY2UpLCB7fSwge1xuICAgICAgICBrZXk6IGtleVxuICAgICAgfSk7XG5cbiAgICAgIHZhciBtYXhDb3VudCA9IF90aGlzLnByb3BzLm1heENvdW50O1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZShmdW5jdGlvbiAocHJldmlvdXNTdGF0ZSkge1xuICAgICAgICB2YXIgbm90aWNlcyA9IHByZXZpb3VzU3RhdGUubm90aWNlcztcbiAgICAgICAgdmFyIG5vdGljZUluZGV4ID0gbm90aWNlcy5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgICByZXR1cm4gdi5ub3RpY2Uua2V5O1xuICAgICAgICB9KS5pbmRleE9mKGtleSk7XG4gICAgICAgIHZhciB1cGRhdGVkTm90aWNlcyA9IG5vdGljZXMuY29uY2F0KCk7XG5cbiAgICAgICAgaWYgKG5vdGljZUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIHVwZGF0ZWROb3RpY2VzLnNwbGljZShub3RpY2VJbmRleCwgMSwge1xuICAgICAgICAgICAgbm90aWNlOiBub3RpY2UsXG4gICAgICAgICAgICBob2xkZXJDYWxsYmFjazogaG9sZGVyQ2FsbGJhY2tcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobWF4Q291bnQgJiYgbm90aWNlcy5sZW5ndGggPj0gbWF4Q291bnQpIHtcbiAgICAgICAgICAgIC8vIFhYWCwgdXNlIGtleSBvZiBmaXJzdCBpdGVtIHRvIHVwZGF0ZSBuZXcgYWRkZWQgKGxldCBSZWFjdCB0byBtb3ZlIGV4c2l0aW5nXG4gICAgICAgICAgICAvLyBpbnN0ZWFkIG9mIHJlbW92ZSBhbmQgbW91bnQpLiBTYW1lIGtleSB3YXMgdXNlZCBiZWZvcmUgZm9yIGJvdGggYSkgZXh0ZXJuYWxcbiAgICAgICAgICAgIC8vIG1hbnVhbCBjb250cm9sIGFuZCBiKSBpbnRlcm5hbCByZWFjdCAna2V5JyBwcm9wICwgd2hpY2ggaXMgbm90IHRoYXQgZ29vZC5cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICAgICAgLy8gem9tYmllSjogTm90IGtub3cgd2h5IHVzZSBgdXBkYXRlS2V5YC4gVGhpcyBtYWtlcyBOb3RpY2UgaW5maW5pdGUgbG9vcCBpbiBqZXN0LlxuICAgICAgICAgICAgLy8gQ2hhbmdlIHRvIGB1cGRhdGVNYXJrYCBmb3IgY29tcGFyZSBpbnN0ZWFkLlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC9ub3RpZmljYXRpb24vY29tbWl0LzMyMjk5ZTZiZTM5NmY5NDA0MGJmYTgyNTE3ZWVhOTQwZGI5NDdlY2VcbiAgICAgICAgICAgIG5vdGljZS5rZXkgPSB1cGRhdGVkTm90aWNlc1swXS5ub3RpY2Uua2V5O1xuICAgICAgICAgICAgbm90aWNlLnVwZGF0ZU1hcmsgPSBnZXRVdWlkKCk7IC8vIHpvbWJpZUo6IFRoYXQncyB3aHkuIFVzZXIgbWF5IGNsb3NlIGJ5IGtleSBkaXJlY3RseS5cbiAgICAgICAgICAgIC8vIFdlIG5lZWQgcmVjb3JkIHRoaXMgYnV0IG5vdCByZS1yZW5kZXIgdG8gYXZvaWQgdXBwZXIgaXNzdWVcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1jb21wb25lbnQvbm90aWZpY2F0aW9uL2lzc3Vlcy8xMjlcblxuICAgICAgICAgICAgbm90aWNlLnVzZXJQYXNzS2V5ID0ga2V5O1xuICAgICAgICAgICAgdXBkYXRlZE5vdGljZXMuc2hpZnQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB1cGRhdGVkTm90aWNlcy5wdXNoKHtcbiAgICAgICAgICAgIG5vdGljZTogbm90aWNlLFxuICAgICAgICAgICAgaG9sZGVyQ2FsbGJhY2s6IGhvbGRlckNhbGxiYWNrXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5vdGljZXM6IHVwZGF0ZWROb3RpY2VzXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVtb3ZlID0gZnVuY3Rpb24gKHJlbW92ZUtleSkge1xuICAgICAgX3RoaXMuc2V0U3RhdGUoZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgdmFyIG5vdGljZXMgPSBfcmVmLm5vdGljZXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm90aWNlczogbm90aWNlcy5maWx0ZXIoZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgICAgICB2YXIgX3JlZjIkbm90aWNlID0gX3JlZjIubm90aWNlLFxuICAgICAgICAgICAgICAgIGtleSA9IF9yZWYyJG5vdGljZS5rZXksXG4gICAgICAgICAgICAgICAgdXNlclBhc3NLZXkgPSBfcmVmMiRub3RpY2UudXNlclBhc3NLZXk7XG4gICAgICAgICAgICB2YXIgbWVyZ2VkS2V5ID0gdXNlclBhc3NLZXkgfHwga2V5O1xuICAgICAgICAgICAgcmV0dXJuIG1lcmdlZEtleSAhPT0gcmVtb3ZlS2V5O1xuICAgICAgICAgIH0pXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3RoaXMubm90aWNlUHJvcHNNYXAgPSB7fTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoTm90aWZpY2F0aW9uLCBbe1xuICAgIGtleTogXCJnZXRUcmFuc2l0aW9uTmFtZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRUcmFuc2l0aW9uTmFtZSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgcHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIGFuaW1hdGlvbiA9IF90aGlzJHByb3BzLmFuaW1hdGlvbjtcbiAgICAgIHZhciB0cmFuc2l0aW9uTmFtZSA9IHRoaXMucHJvcHMudHJhbnNpdGlvbk5hbWU7XG5cbiAgICAgIGlmICghdHJhbnNpdGlvbk5hbWUgJiYgYW5pbWF0aW9uKSB7XG4gICAgICAgIHRyYW5zaXRpb25OYW1lID0gXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KGFuaW1hdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cmFuc2l0aW9uTmFtZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgbm90aWNlcyA9IHRoaXMuc3RhdGUubm90aWNlcztcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzMi5wcmVmaXhDbHMsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMyLmNsYXNzTmFtZSxcbiAgICAgICAgICBjbG9zZUljb24gPSBfdGhpcyRwcm9wczIuY2xvc2VJY29uLFxuICAgICAgICAgIHN0eWxlID0gX3RoaXMkcHJvcHMyLnN0eWxlO1xuICAgICAgdmFyIG5vdGljZUtleXMgPSBbXTtcbiAgICAgIG5vdGljZXMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZjMsIGluZGV4KSB7XG4gICAgICAgIHZhciBub3RpY2UgPSBfcmVmMy5ub3RpY2UsXG4gICAgICAgICAgICBob2xkZXJDYWxsYmFjayA9IF9yZWYzLmhvbGRlckNhbGxiYWNrO1xuICAgICAgICB2YXIgdXBkYXRlTWFyayA9IGluZGV4ID09PSBub3RpY2VzLmxlbmd0aCAtIDEgPyBub3RpY2UudXBkYXRlTWFyayA6IHVuZGVmaW5lZDtcbiAgICAgICAgdmFyIGtleSA9IG5vdGljZS5rZXksXG4gICAgICAgICAgICB1c2VyUGFzc0tleSA9IG5vdGljZS51c2VyUGFzc0tleTtcblxuICAgICAgICB2YXIgbm90aWNlUHJvcHMgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7XG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHMsXG4gICAgICAgICAgY2xvc2VJY29uOiBjbG9zZUljb25cbiAgICAgICAgfSwgbm90aWNlKSwgbm90aWNlLnByb3BzKSwge30sIHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICBub3RpY2VLZXk6IHVzZXJQYXNzS2V5IHx8IGtleSxcbiAgICAgICAgICB1cGRhdGVNYXJrOiB1cGRhdGVNYXJrLFxuICAgICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uIG9uQ2xvc2Uobm90aWNlS2V5KSB7XG4gICAgICAgICAgICB2YXIgX25vdGljZSRvbkNsb3NlO1xuXG4gICAgICAgICAgICBfdGhpczIucmVtb3ZlKG5vdGljZUtleSk7XG5cbiAgICAgICAgICAgIChfbm90aWNlJG9uQ2xvc2UgPSBub3RpY2Uub25DbG9zZSkgPT09IG51bGwgfHwgX25vdGljZSRvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm90aWNlJG9uQ2xvc2UuY2FsbChub3RpY2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb25DbGljazogbm90aWNlLm9uQ2xpY2ssXG4gICAgICAgICAgY2hpbGRyZW46IG5vdGljZS5jb250ZW50XG4gICAgICAgIH0pOyAvLyBHaXZlIHRvIG1vdGlvblxuXG5cbiAgICAgICAgbm90aWNlS2V5cy5wdXNoKGtleSk7XG4gICAgICAgIF90aGlzMi5ub3RpY2VQcm9wc01hcFtrZXldID0ge1xuICAgICAgICAgIHByb3BzOiBub3RpY2VQcm9wcyxcbiAgICAgICAgICBob2xkZXJDYWxsYmFjazogaG9sZGVyQ2FsbGJhY2tcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVzKHByZWZpeENscywgY2xhc3NOYW1lKSxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChDU1NNb3Rpb25MaXN0LCB7XG4gICAgICAgIGtleXM6IG5vdGljZUtleXMsXG4gICAgICAgIG1vdGlvbk5hbWU6IHRoaXMuZ2V0VHJhbnNpdGlvbk5hbWUoKSxcbiAgICAgICAgb25WaXNpYmxlQ2hhbmdlZDogZnVuY3Rpb24gb25WaXNpYmxlQ2hhbmdlZChjaGFuZ2VkVmlzaWJsZSwgX3JlZjQpIHtcbiAgICAgICAgICB2YXIga2V5ID0gX3JlZjQua2V5O1xuXG4gICAgICAgICAgaWYgKCFjaGFuZ2VkVmlzaWJsZSkge1xuICAgICAgICAgICAgZGVsZXRlIF90aGlzMi5ub3RpY2VQcm9wc01hcFtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgZnVuY3Rpb24gKF9yZWY1KSB7XG4gICAgICAgIHZhciBrZXkgPSBfcmVmNS5rZXksXG4gICAgICAgICAgICBtb3Rpb25DbGFzc05hbWUgPSBfcmVmNS5jbGFzc05hbWUsXG4gICAgICAgICAgICBtb3Rpb25TdHlsZSA9IF9yZWY1LnN0eWxlO1xuICAgICAgICB2YXIgX3RoaXMyJG5vdGljZVByb3BzTWFwID0gX3RoaXMyLm5vdGljZVByb3BzTWFwW2tleV0sXG4gICAgICAgICAgICBub3RpY2VQcm9wcyA9IF90aGlzMiRub3RpY2VQcm9wc01hcC5wcm9wcyxcbiAgICAgICAgICAgIGhvbGRlckNhbGxiYWNrID0gX3RoaXMyJG5vdGljZVByb3BzTWFwLmhvbGRlckNhbGxiYWNrO1xuXG4gICAgICAgIGlmIChob2xkZXJDYWxsYmFjaykge1xuICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhtb3Rpb25DbGFzc05hbWUsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaG9vay1ob2xkZXJcIikpLFxuICAgICAgICAgICAgc3R5bGU6IF9vYmplY3RTcHJlYWQoe30sIG1vdGlvblN0eWxlKSxcbiAgICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKGRpdikge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoZGl2KSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLmhvb2tSZWZzLnNldChrZXksIGRpdik7XG5cbiAgICAgICAgICAgICAgICBob2xkZXJDYWxsYmFjayhkaXYsIG5vdGljZVByb3BzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBfdGhpczIuaG9va1JlZnMuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChOb3RpY2UsIF9leHRlbmRzKHt9LCBub3RpY2VQcm9wcywge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhtb3Rpb25DbGFzc05hbWUsIG5vdGljZVByb3BzID09PSBudWxsIHx8IG5vdGljZVByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub3RpY2VQcm9wcy5jbGFzc05hbWUpLFxuICAgICAgICAgIHN0eWxlOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG1vdGlvblN0eWxlKSwgbm90aWNlUHJvcHMgPT09IG51bGwgfHwgbm90aWNlUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG5vdGljZVByb3BzLnN0eWxlKVxuICAgICAgICB9KSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE5vdGlmaWNhdGlvbjtcbn0oQ29tcG9uZW50KTtcblxuTm90aWZpY2F0aW9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgcHJlZml4Q2xzOiAncmMtbm90aWZpY2F0aW9uJyxcbiAgYW5pbWF0aW9uOiAnZmFkZScsXG4gIHN0eWxlOiB7XG4gICAgdG9wOiA2NSxcbiAgICBsZWZ0OiAnNTAlJ1xuICB9XG59O1xuXG5Ob3RpZmljYXRpb24ubmV3SW5zdGFuY2UgPSBmdW5jdGlvbiBuZXdOb3RpZmljYXRpb25JbnN0YW5jZShwcm9wZXJ0aWVzLCBjYWxsYmFjaykge1xuICB2YXIgX3JlZjYgPSBwcm9wZXJ0aWVzIHx8IHt9LFxuICAgICAgZ2V0Q29udGFpbmVyID0gX3JlZjYuZ2V0Q29udGFpbmVyLFxuICAgICAgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjYsIFtcImdldENvbnRhaW5lclwiXSk7XG5cbiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gIGlmIChnZXRDb250YWluZXIpIHtcbiAgICB2YXIgcm9vdCA9IGdldENvbnRhaW5lcigpO1xuICAgIHJvb3QuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gIH1cblxuICB2YXIgY2FsbGVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gcmVmKG5vdGlmaWNhdGlvbikge1xuICAgIGlmIChjYWxsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYWxsZWQgPSB0cnVlO1xuICAgIGNhbGxiYWNrKHtcbiAgICAgIG5vdGljZTogZnVuY3Rpb24gbm90aWNlKG5vdGljZVByb3BzKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5hZGQobm90aWNlUHJvcHMpO1xuICAgICAgfSxcbiAgICAgIHJlbW92ZU5vdGljZTogZnVuY3Rpb24gcmVtb3ZlTm90aWNlKGtleSkge1xuICAgICAgICBub3RpZmljYXRpb24ucmVtb3ZlKGtleSk7XG4gICAgICB9LFxuICAgICAgY29tcG9uZW50OiBub3RpZmljYXRpb24sXG4gICAgICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95KCkge1xuICAgICAgICBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKGRpdik7XG5cbiAgICAgICAgaWYgKGRpdi5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC8vIEhvb2tzXG4gICAgICB1c2VOb3RpZmljYXRpb246IGZ1bmN0aW9uIHVzZU5vdGlmaWNhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF91c2VOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSAvLyBPbmx5IHVzZWQgZm9yIHRlc3QgY2FzZSB1c2FnZVxuXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAndGVzdCcgJiYgcHJvcGVydGllcy5URVNUX1JFTkRFUikge1xuICAgIHByb3BlcnRpZXMuVEVTVF9SRU5ERVIoIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KE5vdGlmaWNhdGlvbiwgX2V4dGVuZHMoe30sIHByb3BzLCB7XG4gICAgICByZWY6IHJlZlxuICAgIH0pKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgUmVhY3RET00ucmVuZGVyKCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChOb3RpZmljYXRpb24sIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgIHJlZjogcmVmXG4gIH0pKSwgZGl2KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbjsiLCJpbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheVwiO1xuaW1wb3J0IF9leHRlbmRzIGZyb20gXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9leHRlbmRzXCI7XG5pbXBvcnQgX3NsaWNlZFRvQXJyYXkgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3NsaWNlZFRvQXJyYXlcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBOb3RpY2UgZnJvbSAnLi9Ob3RpY2UnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbkluc3RhbmNlKSB7XG4gIHZhciBjcmVhdGVkUmVmID0gUmVhY3QudXNlUmVmKHt9KTtcblxuICB2YXIgX1JlYWN0JHVzZVN0YXRlID0gUmVhY3QudXNlU3RhdGUoW10pLFxuICAgICAgX1JlYWN0JHVzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgICBlbGVtZW50cyA9IF9SZWFjdCR1c2VTdGF0ZTJbMF0sXG4gICAgICBzZXRFbGVtZW50cyA9IF9SZWFjdCR1c2VTdGF0ZTJbMV07XG5cbiAgZnVuY3Rpb24gbm90aWZ5KG5vdGljZVByb3BzKSB7XG4gICAgdmFyIGZpcnN0TW91bnQgPSB0cnVlO1xuICAgIG5vdGlmaWNhdGlvbkluc3RhbmNlLmFkZChub3RpY2VQcm9wcywgZnVuY3Rpb24gKGRpdiwgcHJvcHMpIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wcy5rZXk7XG5cbiAgICAgIGlmIChkaXYgJiYgKCFjcmVhdGVkUmVmLmN1cnJlbnRba2V5XSB8fCBmaXJzdE1vdW50KSkge1xuICAgICAgICB2YXIgbm90aWNlRWxlID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoTm90aWNlLCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHtcbiAgICAgICAgICBob2xkZXI6IGRpdlxuICAgICAgICB9KSk7XG4gICAgICAgIGNyZWF0ZWRSZWYuY3VycmVudFtrZXldID0gbm90aWNlRWxlO1xuICAgICAgICBzZXRFbGVtZW50cyhmdW5jdGlvbiAob3JpZ2luRWxlbWVudHMpIHtcbiAgICAgICAgICB2YXIgaW5kZXggPSBvcmlnaW5FbGVtZW50cy5maW5kSW5kZXgoZnVuY3Rpb24gKGVsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZS5rZXkgPT09IHByb3BzLmtleTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KG9yaWdpbkVsZW1lbnRzKSwgW25vdGljZUVsZV0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBjbG9uZUxpc3QgPSBfdG9Db25zdW1hYmxlQXJyYXkob3JpZ2luRWxlbWVudHMpO1xuXG4gICAgICAgICAgY2xvbmVMaXN0W2luZGV4XSA9IG5vdGljZUVsZTtcbiAgICAgICAgICByZXR1cm4gY2xvbmVMaXN0O1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZmlyc3RNb3VudCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFtub3RpZnksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFJlYWN0LkZyYWdtZW50LCBudWxsLCBlbGVtZW50cyldO1xufSIsImltcG9ydCBOb3RpZmljYXRpb24gZnJvbSAnLi9Ob3RpZmljYXRpb24nO1xuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uOyIsImltcG9ydCBfZGVmaW5lUHJvcGVydHkgZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5JztcbmltcG9ydCBfZXh0ZW5kcyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcyc7XG5pbXBvcnQgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllcyc7XG5pbXBvcnQgX2NsYXNzQ2FsbENoZWNrIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjayc7XG5pbXBvcnQgX2NyZWF0ZUNsYXNzIGZyb20gJ2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcyc7XG5pbXBvcnQgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4gZnJvbSAnYmFiZWwtcnVudGltZS9oZWxwZXJzL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4nO1xuaW1wb3J0IF9pbmhlcml0cyBmcm9tICdiYWJlbC1ydW50aW1lL2hlbHBlcnMvaW5oZXJpdHMnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZ2VuZXJhdGUsIGdldFNlY29uZGFyeUNvbG9yLCBpc0ljb25EZWZpbml0aW9uLCBsb2csIE1pbmlNYXAsIHdpdGhTdWZmaXggfSBmcm9tICcuLi91dGlscyc7XG52YXIgdHdvVG9uZUNvbG9yUGFsZXR0ZSA9IHtcbiAgICBwcmltYXJ5Q29sb3I6ICcjMzMzJyxcbiAgICBzZWNvbmRhcnlDb2xvcjogJyNFNkU2RTYnXG59O1xuXG52YXIgSWNvbiA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKEljb24sIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gSWNvbigpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEljb24pO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoSWNvbi5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEljb24pKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoSWNvbiwgW3tcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfZXh0ZW5kczI7XG5cbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHR5cGUgPSBfcHJvcHMudHlwZSxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgPSBfcHJvcHMub25DbGljayxcbiAgICAgICAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3IgPSBfcHJvcHMucHJpbWFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeUNvbG9yID0gX3Byb3BzLnNlY29uZGFyeUNvbG9yLFxuICAgICAgICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzLCBbJ3R5cGUnLCAnY2xhc3NOYW1lJywgJ29uQ2xpY2snLCAnc3R5bGUnLCAncHJpbWFyeUNvbG9yJywgJ3NlY29uZGFyeUNvbG9yJ10pO1xuXG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gdm9pZCAwO1xuICAgICAgICAgICAgdmFyIGNvbG9ycyA9IHR3b1RvbmVDb2xvclBhbGV0dGU7XG4gICAgICAgICAgICBpZiAocHJpbWFyeUNvbG9yKSB7XG4gICAgICAgICAgICAgICAgY29sb3JzID0ge1xuICAgICAgICAgICAgICAgICAgICBwcmltYXJ5Q29sb3I6IHByaW1hcnlDb2xvcixcbiAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sb3I6IHNlY29uZGFyeUNvbG9yIHx8IGdldFNlY29uZGFyeUNvbG9yKHByaW1hcnlDb2xvcilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSWNvbkRlZmluaXRpb24odHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSB0eXBlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBJY29uLmdldCh0eXBlLCBjb2xvcnMpO1xuICAgICAgICAgICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxvZyhgQ291bGQgbm90IGZpbmQgaWNvbjogJHt0eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgIGxvZygndHlwZSBzaG91bGQgYmUgc3RyaW5nIG9yIGljb24gZGVmaW5pdG9uLCBidXQgZ290ICcgKyB0eXBlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gX2V4dGVuZHMoe30sIHRhcmdldCwge1xuICAgICAgICAgICAgICAgICAgICBpY29uOiB0YXJnZXQuaWNvbihjb2xvcnMucHJpbWFyeUNvbG9yLCBjb2xvcnMuc2Vjb25kYXJ5Q29sb3IpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGUodGFyZ2V0Lmljb24sICdzdmctJyArIHRhcmdldC5uYW1lLCBfZXh0ZW5kcygoX2V4dGVuZHMyID0ge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICAgICAgICB9LCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnZGF0YS1pY29uJywgdGFyZ2V0Lm5hbWUpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnd2lkdGgnLCAnMWVtJyksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsICdoZWlnaHQnLCAnMWVtJyksIF9kZWZpbmVQcm9wZXJ0eShfZXh0ZW5kczIsICdmaWxsJywgJ2N1cnJlbnRDb2xvcicpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnYXJpYS1oaWRkZW4nLCAndHJ1ZScpLCBfZGVmaW5lUHJvcGVydHkoX2V4dGVuZHMyLCAnZm9jdXNhYmxlJywgJ2ZhbHNlJyksIF9leHRlbmRzMiksIHJlc3QpKTtcbiAgICAgICAgfVxuICAgIH1dLCBbe1xuICAgICAgICBrZXk6ICdhZGQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gYWRkKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgICAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBpY29ucyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICAgICAgICAgIGljb25zW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpY29ucy5mb3JFYWNoKGZ1bmN0aW9uIChpY29uKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMyLmRlZmluaXRpb25zLnNldCh3aXRoU3VmZml4KGljb24ubmFtZSwgaWNvbi50aGVtZSksIGljb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ2NsZWFyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNsZWFyKCkge1xuICAgICAgICAgICAgdGhpcy5kZWZpbml0aW9ucy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdnZXQnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0KGtleSkge1xuICAgICAgICAgICAgdmFyIGNvbG9ycyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogdHdvVG9uZUNvbG9yUGFsZXR0ZTtcblxuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSB0aGlzLmRlZmluaXRpb25zLmdldChrZXkpO1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldC5pY29uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IF9leHRlbmRzKHt9LCB0YXJnZXQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IHRhcmdldC5pY29uKGNvbG9ycy5wcmltYXJ5Q29sb3IsIGNvbG9ycy5zZWNvbmRhcnlDb2xvcilcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogJ3NldFR3b1RvbmVDb2xvcnMnLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0VHdvVG9uZUNvbG9ycyhfcmVmKSB7XG4gICAgICAgICAgICB2YXIgcHJpbWFyeUNvbG9yID0gX3JlZi5wcmltYXJ5Q29sb3IsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5Q29sb3IgPSBfcmVmLnNlY29uZGFyeUNvbG9yO1xuXG4gICAgICAgICAgICB0d29Ub25lQ29sb3JQYWxldHRlLnByaW1hcnlDb2xvciA9IHByaW1hcnlDb2xvcjtcbiAgICAgICAgICAgIHR3b1RvbmVDb2xvclBhbGV0dGUuc2Vjb25kYXJ5Q29sb3IgPSBzZWNvbmRhcnlDb2xvciB8fCBnZXRTZWNvbmRhcnlDb2xvcihwcmltYXJ5Q29sb3IpO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6ICdnZXRUd29Ub25lQ29sb3JzJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldFR3b1RvbmVDb2xvcnMoKSB7XG4gICAgICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHR3b1RvbmVDb2xvclBhbGV0dGUpO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIEljb247XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbkljb24uZGlzcGxheU5hbWUgPSAnSWNvblJlYWN0Jztcbkljb24uZGVmaW5pdGlvbnMgPSBuZXcgTWluaU1hcCgpO1xuZXhwb3J0IGRlZmF1bHQgSWNvbjsiLCIvKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiwgdGhhdCwgYXMgbG9uZyBhcyBpdCBjb250aW51ZXMgdG8gYmUgaW52b2tlZCwgd2lsbCBub3RcbiAqIGJlIHRyaWdnZXJlZC4gVGhlIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGFmdGVyIGl0IHN0b3BzIGJlaW5nIGNhbGxlZCBmb3JcbiAqIE4gbWlsbGlzZWNvbmRzLiBJZiBgaW1tZWRpYXRlYCBpcyBwYXNzZWQsIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIG9uIHRoZVxuICogbGVhZGluZyBlZGdlLCBpbnN0ZWFkIG9mIHRoZSB0cmFpbGluZy4gVGhlIGZ1bmN0aW9uIGFsc28gaGFzIGEgcHJvcGVydHkgJ2NsZWFyJyBcbiAqIHRoYXQgaXMgYSBmdW5jdGlvbiB3aGljaCB3aWxsIGNsZWFyIHRoZSB0aW1lciB0byBwcmV2ZW50IHByZXZpb3VzbHkgc2NoZWR1bGVkIGV4ZWN1dGlvbnMuIFxuICpcbiAqIEBzb3VyY2UgdW5kZXJzY29yZS5qc1xuICogQHNlZSBodHRwOi8vdW5zY3JpcHRhYmxlLmNvbS8yMDA5LzAzLzIwL2RlYm91bmNpbmctamF2YXNjcmlwdC1tZXRob2RzL1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuY3Rpb24gdG8gd3JhcFxuICogQHBhcmFtIHtOdW1iZXJ9IHRpbWVvdXQgaW4gbXMgKGAxMDBgKVxuICogQHBhcmFtIHtCb29sZWFufSB3aGV0aGVyIHRvIGV4ZWN1dGUgYXQgdGhlIGJlZ2lubmluZyAoYGZhbHNlYClcbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSl7XG4gIHZhciB0aW1lb3V0LCBhcmdzLCBjb250ZXh0LCB0aW1lc3RhbXAsIHJlc3VsdDtcbiAgaWYgKG51bGwgPT0gd2FpdCkgd2FpdCA9IDEwMDtcblxuICBmdW5jdGlvbiBsYXRlcigpIHtcbiAgICB2YXIgbGFzdCA9IERhdGUubm93KCkgLSB0aW1lc3RhbXA7XG5cbiAgICBpZiAobGFzdCA8IHdhaXQgJiYgbGFzdCA+PSAwKSB7XG4gICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCAtIGxhc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICghaW1tZWRpYXRlKSB7XG4gICAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgIGNvbnRleHQgPSBhcmdzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdmFyIGRlYm91bmNlZCA9IGZ1bmN0aW9uKCl7XG4gICAgY29udGV4dCA9IHRoaXM7XG4gICAgYXJncyA9IGFyZ3VtZW50cztcbiAgICB0aW1lc3RhbXAgPSBEYXRlLm5vdygpO1xuICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0O1xuICAgIGlmICghdGltZW91dCkgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuICAgIGlmIChjYWxsTm93KSB7XG4gICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgY29udGV4dCA9IGFyZ3MgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgZGVib3VuY2VkLmNsZWFyID0gZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgXG4gIGRlYm91bmNlZC5mbHVzaCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0aW1lb3V0KSB7XG4gICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgY29udGV4dCA9IGFyZ3MgPSBudWxsO1xuICAgICAgXG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGRlYm91bmNlZDtcbn07XG5cbi8vIEFkZHMgY29tcGF0aWJpbGl0eSBmb3IgRVMgbW9kdWxlc1xuZGVib3VuY2UuZGVib3VuY2UgPSBkZWJvdW5jZTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWJvdW5jZTtcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN5bWJvbE9ic2VydmFibGVQb255ZmlsbChyb290KSB7XG5cdHZhciByZXN1bHQ7XG5cdHZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuXHRpZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdGlmIChTeW1ib2wub2JzZXJ2YWJsZSkge1xuXHRcdFx0cmVzdWx0ID0gU3ltYm9sLm9ic2VydmFibGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdCA9IFN5bWJvbCgnb2JzZXJ2YWJsZScpO1xuXHRcdFx0U3ltYm9sLm9ic2VydmFibGUgPSByZXN1bHQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJlc3VsdCA9ICdAQG9ic2VydmFibGUnO1xuXHR9XG5cblx0cmV0dXJuIHJlc3VsdDtcbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgX0lucHV0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9JbnB1dFwiKSk7XG5cbnZhciBfR3JvdXAgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0dyb3VwXCIpKTtcblxudmFyIF9TZWFyY2ggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1NlYXJjaFwiKSk7XG5cbnZhciBfVGV4dEFyZWEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1RleHRBcmVhXCIpKTtcblxudmFyIF9QYXNzd29yZCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vUGFzc3dvcmRcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuX0lucHV0W1wiZGVmYXVsdFwiXS5Hcm91cCA9IF9Hcm91cFtcImRlZmF1bHRcIl07XG5fSW5wdXRbXCJkZWZhdWx0XCJdLlNlYXJjaCA9IF9TZWFyY2hbXCJkZWZhdWx0XCJdO1xuX0lucHV0W1wiZGVmYXVsdFwiXS5UZXh0QXJlYSA9IF9UZXh0QXJlYVtcImRlZmF1bHRcIl07XG5fSW5wdXRbXCJkZWZhdWx0XCJdLlBhc3N3b3JkID0gX1Bhc3N3b3JkW1wiZGVmYXVsdFwiXTtcbnZhciBfZGVmYXVsdCA9IF9JbnB1dFtcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9faW1wb3J0RGVmYXVsdCA9ICh0aGlzICYmIHRoaXMuX19pbXBvcnREZWZhdWx0KSB8fCBmdW5jdGlvbiAobW9kKSB7XG4gICAgcmV0dXJuIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpID8gbW9kIDogeyBcImRlZmF1bHRcIjogbW9kIH07XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGdlbmVyYXRlXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vZ2VuZXJhdGVcIikpO1xuZXhwb3J0cy5nZW5lcmF0ZSA9IGdlbmVyYXRlXzEuZGVmYXVsdDtcbnZhciBwcmVzZXRQcmltYXJ5Q29sb3JzID0ge1xuICAgIHJlZDogJyNGNTIyMkQnLFxuICAgIHZvbGNhbm86ICcjRkE1NDFDJyxcbiAgICBvcmFuZ2U6ICcjRkE4QzE2JyxcbiAgICBnb2xkOiAnI0ZBQUQxNCcsXG4gICAgeWVsbG93OiAnI0ZBREIxNCcsXG4gICAgbGltZTogJyNBMEQ5MTEnLFxuICAgIGdyZWVuOiAnIzUyQzQxQScsXG4gICAgY3lhbjogJyMxM0MyQzInLFxuICAgIGJsdWU6ICcjMTg5MEZGJyxcbiAgICBnZWVrYmx1ZTogJyMyRjU0RUInLFxuICAgIHB1cnBsZTogJyM3MjJFRDEnLFxuICAgIG1hZ2VudGE6ICcjRUIyRjk2JyxcbiAgICBncmV5OiAnIzY2NjY2NicsXG59O1xuZXhwb3J0cy5wcmVzZXRQcmltYXJ5Q29sb3JzID0gcHJlc2V0UHJpbWFyeUNvbG9ycztcbnZhciBwcmVzZXRQYWxldHRlcyA9IHt9O1xuZXhwb3J0cy5wcmVzZXRQYWxldHRlcyA9IHByZXNldFBhbGV0dGVzO1xuT2JqZWN0LmtleXMocHJlc2V0UHJpbWFyeUNvbG9ycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgcHJlc2V0UGFsZXR0ZXNba2V5XSA9IGdlbmVyYXRlXzEuZGVmYXVsdChwcmVzZXRQcmltYXJ5Q29sb3JzW2tleV0pO1xuICAgIHByZXNldFBhbGV0dGVzW2tleV0ucHJpbWFyeSA9IHByZXNldFBhbGV0dGVzW2tleV1bNl07XG59KTtcbnZhciByZWQgPSBwcmVzZXRQYWxldHRlcy5yZWQ7XG5leHBvcnRzLnJlZCA9IHJlZDtcbnZhciB2b2xjYW5vID0gcHJlc2V0UGFsZXR0ZXMudm9sY2FubztcbmV4cG9ydHMudm9sY2FubyA9IHZvbGNhbm87XG52YXIgZ29sZCA9IHByZXNldFBhbGV0dGVzLmdvbGQ7XG5leHBvcnRzLmdvbGQgPSBnb2xkO1xudmFyIHllbGxvdyA9IHByZXNldFBhbGV0dGVzLnllbGxvdztcbmV4cG9ydHMueWVsbG93ID0geWVsbG93O1xudmFyIGxpbWUgPSBwcmVzZXRQYWxldHRlcy5saW1lO1xuZXhwb3J0cy5saW1lID0gbGltZTtcbnZhciBncmVlbiA9IHByZXNldFBhbGV0dGVzLmdyZWVuO1xuZXhwb3J0cy5ncmVlbiA9IGdyZWVuO1xudmFyIGN5YW4gPSBwcmVzZXRQYWxldHRlcy5jeWFuO1xuZXhwb3J0cy5jeWFuID0gY3lhbjtcbnZhciBibHVlID0gcHJlc2V0UGFsZXR0ZXMuYmx1ZTtcbmV4cG9ydHMuYmx1ZSA9IGJsdWU7XG52YXIgZ2Vla2JsdWUgPSBwcmVzZXRQYWxldHRlcy5nZWVrYmx1ZTtcbmV4cG9ydHMuZ2Vla2JsdWUgPSBnZWVrYmx1ZTtcbnZhciBwdXJwbGUgPSBwcmVzZXRQYWxldHRlcy5wdXJwbGU7XG5leHBvcnRzLnB1cnBsZSA9IHB1cnBsZTtcbnZhciBtYWdlbnRhID0gcHJlc2V0UGFsZXR0ZXMubWFnZW50YTtcbmV4cG9ydHMubWFnZW50YSA9IG1hZ2VudGE7XG52YXIgZ3JleSA9IHByZXNldFBhbGV0dGVzLmdyZXk7XG5leHBvcnRzLmdyZXkgPSBncmV5O1xuIiwiLyogZ2xvYmFsIHdpbmRvdywgZXhwb3J0cywgZGVmaW5lICovXG5cbiFmdW5jdGlvbigpIHtcbiAgICAndXNlIHN0cmljdCdcblxuICAgIHZhciByZSA9IHtcbiAgICAgICAgbm90X3N0cmluZzogL1tec10vLFxuICAgICAgICBub3RfYm9vbDogL1tedF0vLFxuICAgICAgICBub3RfdHlwZTogL1teVF0vLFxuICAgICAgICBub3RfcHJpbWl0aXZlOiAvW152XS8sXG4gICAgICAgIG51bWJlcjogL1tkaWVmZ10vLFxuICAgICAgICBudW1lcmljX2FyZzogL1tiY2RpZWZndXhYXS8sXG4gICAgICAgIGpzb246IC9bal0vLFxuICAgICAgICBub3RfanNvbjogL1teal0vLFxuICAgICAgICB0ZXh0OiAvXlteXFx4MjVdKy8sXG4gICAgICAgIG1vZHVsbzogL15cXHgyNXsyfS8sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAvXlxceDI1KD86KFsxLTldXFxkKilcXCR8XFwoKFteKV0rKVxcKSk/KFxcKyk/KDB8J1teJF0pPygtKT8oXFxkKyk/KD86XFwuKFxcZCspKT8oW2ItZ2lqb3N0VHV2eFhdKS8sXG4gICAgICAgIGtleTogL14oW2Etel9dW2Etel9cXGRdKikvaSxcbiAgICAgICAga2V5X2FjY2VzczogL15cXC4oW2Etel9dW2Etel9cXGRdKikvaSxcbiAgICAgICAgaW5kZXhfYWNjZXNzOiAvXlxcWyhcXGQrKVxcXS8sXG4gICAgICAgIHNpZ246IC9eWystXS9cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzcHJpbnRmKGtleSkge1xuICAgICAgICAvLyBgYXJndW1lbnRzYCBpcyBub3QgYW4gYXJyYXksIGJ1dCBzaG91bGQgYmUgZmluZSBmb3IgdGhpcyBjYWxsXG4gICAgICAgIHJldHVybiBzcHJpbnRmX2Zvcm1hdChzcHJpbnRmX3BhcnNlKGtleSksIGFyZ3VtZW50cylcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2c3ByaW50ZihmbXQsIGFyZ3YpIHtcbiAgICAgICAgcmV0dXJuIHNwcmludGYuYXBwbHkobnVsbCwgW2ZtdF0uY29uY2F0KGFyZ3YgfHwgW10pKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNwcmludGZfZm9ybWF0KHBhcnNlX3RyZWUsIGFyZ3YpIHtcbiAgICAgICAgdmFyIGN1cnNvciA9IDEsIHRyZWVfbGVuZ3RoID0gcGFyc2VfdHJlZS5sZW5ndGgsIGFyZywgb3V0cHV0ID0gJycsIGksIGssIHBoLCBwYWQsIHBhZF9jaGFyYWN0ZXIsIHBhZF9sZW5ndGgsIGlzX3Bvc2l0aXZlLCBzaWduXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0cmVlX2xlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlX3RyZWVbaV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ICs9IHBhcnNlX3RyZWVbaV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwYXJzZV90cmVlW2ldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHBoID0gcGFyc2VfdHJlZVtpXSAvLyBjb252ZW5pZW5jZSBwdXJwb3NlcyBvbmx5XG4gICAgICAgICAgICAgICAgaWYgKHBoLmtleXMpIHsgLy8ga2V5d29yZCBhcmd1bWVudFxuICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd2W2N1cnNvcl1cbiAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IHBoLmtleXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHNwcmludGYoJ1tzcHJpbnRmXSBDYW5ub3QgYWNjZXNzIHByb3BlcnR5IFwiJXNcIiBvZiB1bmRlZmluZWQgdmFsdWUgXCIlc1wiJywgcGgua2V5c1trXSwgcGgua2V5c1trLTFdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ1twaC5rZXlzW2tdXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBoLnBhcmFtX25vKSB7IC8vIHBvc2l0aW9uYWwgYXJndW1lbnQgKGV4cGxpY2l0KVxuICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd2W3BoLnBhcmFtX25vXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHsgLy8gcG9zaXRpb25hbCBhcmd1bWVudCAoaW1wbGljaXQpXG4gICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3ZbY3Vyc29yKytdXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlLm5vdF90eXBlLnRlc3QocGgudHlwZSkgJiYgcmUubm90X3ByaW1pdGl2ZS50ZXN0KHBoLnR5cGUpICYmIGFyZyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZygpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHJlLm51bWVyaWNfYXJnLnRlc3QocGgudHlwZSkgJiYgKHR5cGVvZiBhcmcgIT09ICdudW1iZXInICYmIGlzTmFOKGFyZykpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3Ioc3ByaW50ZignW3NwcmludGZdIGV4cGVjdGluZyBudW1iZXIgYnV0IGZvdW5kICVUJywgYXJnKSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocmUubnVtYmVyLnRlc3QocGgudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmUgPSBhcmcgPj0gMFxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGgudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBhcnNlSW50KGFyZywgMTApLnRvU3RyaW5nKDIpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoYXJnLCAxMCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwYXJzZUludChhcmcsIDEwKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaic6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBKU09OLnN0cmluZ2lmeShhcmcsIG51bGwsIHBoLndpZHRoID8gcGFyc2VJbnQocGgud2lkdGgpIDogMClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGgucHJlY2lzaW9uID8gcGFyc2VGbG9hdChhcmcpLnRvRXhwb25lbnRpYWwocGgucHJlY2lzaW9uKSA6IHBhcnNlRmxvYXQoYXJnKS50b0V4cG9uZW50aWFsKClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gcGgucHJlY2lzaW9uID8gcGFyc2VGbG9hdChhcmcpLnRvRml4ZWQocGgucHJlY2lzaW9uKSA6IHBhcnNlRmxvYXQoYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBwaC5wcmVjaXNpb24gPyBTdHJpbmcoTnVtYmVyKGFyZy50b1ByZWNpc2lvbihwaC5wcmVjaXNpb24pKSkgOiBwYXJzZUZsb2F0KGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ28nOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBhcnNlSW50KGFyZywgMTApID4+PiAwKS50b1N0cmluZyg4KVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBTdHJpbmcoYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBoLnByZWNpc2lvbiA/IGFyZy5zdWJzdHJpbmcoMCwgcGgucHJlY2lzaW9uKSA6IGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gU3RyaW5nKCEhYXJnKVxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gKHBoLnByZWNpc2lvbiA/IGFyZy5zdWJzdHJpbmcoMCwgcGgucHJlY2lzaW9uKSA6IGFyZylcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZykuc2xpY2UoOCwgLTEpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwaC5wcmVjaXNpb24gPyBhcmcuc3Vic3RyaW5nKDAsIHBoLnByZWNpc2lvbikgOiBhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd1JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBhcnNlSW50KGFyZywgMTApID4+PiAwXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy52YWx1ZU9mKClcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwaC5wcmVjaXNpb24gPyBhcmcuc3Vic3RyaW5nKDAsIHBoLnByZWNpc2lvbikgOiBhcmcpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwYXJzZUludChhcmcsIDEwKSA+Pj4gMCkudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdYJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IChwYXJzZUludChhcmcsIDEwKSA+Pj4gMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZS5qc29uLnRlc3QocGgudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IGFyZ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlLm51bWJlci50ZXN0KHBoLnR5cGUpICYmICghaXNfcG9zaXRpdmUgfHwgcGguc2lnbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSBpc19wb3NpdGl2ZSA/ICcrJyA6ICctJ1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gYXJnLnRvU3RyaW5nKCkucmVwbGFjZShyZS5zaWduLCAnJylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAnJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHBhZF9jaGFyYWN0ZXIgPSBwaC5wYWRfY2hhciA/IHBoLnBhZF9jaGFyID09PSAnMCcgPyAnMCcgOiBwaC5wYWRfY2hhci5jaGFyQXQoMSkgOiAnICdcbiAgICAgICAgICAgICAgICAgICAgcGFkX2xlbmd0aCA9IHBoLndpZHRoIC0gKHNpZ24gKyBhcmcpLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICBwYWQgPSBwaC53aWR0aCA/IChwYWRfbGVuZ3RoID4gMCA/IHBhZF9jaGFyYWN0ZXIucmVwZWF0KHBhZF9sZW5ndGgpIDogJycpIDogJydcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IHBoLmFsaWduID8gc2lnbiArIGFyZyArIHBhZCA6IChwYWRfY2hhcmFjdGVyID09PSAnMCcgPyBzaWduICsgcGFkICsgYXJnIDogcGFkICsgc2lnbiArIGFyZylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dFxuICAgIH1cblxuICAgIHZhciBzcHJpbnRmX2NhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuXG4gICAgZnVuY3Rpb24gc3ByaW50Zl9wYXJzZShmbXQpIHtcbiAgICAgICAgaWYgKHNwcmludGZfY2FjaGVbZm10XSkge1xuICAgICAgICAgICAgcmV0dXJuIHNwcmludGZfY2FjaGVbZm10XVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIF9mbXQgPSBmbXQsIG1hdGNoLCBwYXJzZV90cmVlID0gW10sIGFyZ19uYW1lcyA9IDBcbiAgICAgICAgd2hpbGUgKF9mbXQpIHtcbiAgICAgICAgICAgIGlmICgobWF0Y2ggPSByZS50ZXh0LmV4ZWMoX2ZtdCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VfdHJlZS5wdXNoKG1hdGNoWzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoKG1hdGNoID0gcmUubW9kdWxvLmV4ZWMoX2ZtdCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VfdHJlZS5wdXNoKCclJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKChtYXRjaCA9IHJlLnBsYWNlaG9sZGVyLmV4ZWMoX2ZtdCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoWzJdKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ19uYW1lcyB8PSAxXG4gICAgICAgICAgICAgICAgICAgIHZhciBmaWVsZF9saXN0ID0gW10sIHJlcGxhY2VtZW50X2ZpZWxkID0gbWF0Y2hbMl0sIGZpZWxkX21hdGNoID0gW11cbiAgICAgICAgICAgICAgICAgICAgaWYgKChmaWVsZF9tYXRjaCA9IHJlLmtleS5leGVjKHJlcGxhY2VtZW50X2ZpZWxkKSkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2xpc3QucHVzaChmaWVsZF9tYXRjaFsxXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgocmVwbGFjZW1lbnRfZmllbGQgPSByZXBsYWNlbWVudF9maWVsZC5zdWJzdHJpbmcoZmllbGRfbWF0Y2hbMF0ubGVuZ3RoKSkgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChmaWVsZF9tYXRjaCA9IHJlLmtleV9hY2Nlc3MuZXhlYyhyZXBsYWNlbWVudF9maWVsZCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2xpc3QucHVzaChmaWVsZF9tYXRjaFsxXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKGZpZWxkX21hdGNoID0gcmUuaW5kZXhfYWNjZXNzLmV4ZWMocmVwbGFjZW1lbnRfZmllbGQpKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9saXN0LnB1c2goZmllbGRfbWF0Y2hbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ1tzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ1tzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5JylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXRjaFsyXSA9IGZpZWxkX2xpc3RcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ19uYW1lcyB8PSAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhcmdfbmFtZXMgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdbc3ByaW50Zl0gbWl4aW5nIHBvc2l0aW9uYWwgYW5kIG5hbWVkIHBsYWNlaG9sZGVycyBpcyBub3QgKHlldCkgc3VwcG9ydGVkJylcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJzZV90cmVlLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBtYXRjaFswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtX25vOiAgICBtYXRjaFsxXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXM6ICAgICAgICBtYXRjaFsyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ246ICAgICAgICBtYXRjaFszXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZF9jaGFyOiAgICBtYXRjaFs0XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAgICAgICBtYXRjaFs1XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAgICAgICBtYXRjaFs2XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbjogICBtYXRjaFs3XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICAgICAgICBtYXRjaFs4XVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKCdbc3ByaW50Zl0gdW5leHBlY3RlZCBwbGFjZWhvbGRlcicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfZm10ID0gX2ZtdC5zdWJzdHJpbmcobWF0Y2hbMF0ubGVuZ3RoKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcHJpbnRmX2NhY2hlW2ZtdF0gPSBwYXJzZV90cmVlXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZXhwb3J0IHRvIGVpdGhlciBicm93c2VyIG9yIG5vZGUuanNcbiAgICAgKi9cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBxdW90ZS1wcm9wcyAqL1xuICAgIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZXhwb3J0c1snc3ByaW50ZiddID0gc3ByaW50ZlxuICAgICAgICBleHBvcnRzWyd2c3ByaW50ZiddID0gdnNwcmludGZcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvd1snc3ByaW50ZiddID0gc3ByaW50ZlxuICAgICAgICB3aW5kb3dbJ3ZzcHJpbnRmJ10gPSB2c3ByaW50ZlxuXG4gICAgICAgIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZVsnYW1kJ10pIHtcbiAgICAgICAgICAgIGRlZmluZShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAnc3ByaW50Zic6IHNwcmludGYsXG4gICAgICAgICAgICAgICAgICAgICd2c3ByaW50Zic6IHZzcHJpbnRmXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiBlc2xpbnQtZW5hYmxlIHF1b3RlLXByb3BzICovXG59KCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBSZWFjdERPTSA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdC1kb21cIikpO1xuXG52YXIgX3JjQW5pbWF0ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLWFuaW1hdGVcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG52YXIgX2dldERhdGFPckFyaWFQcm9wcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL2dldERhdGFPckFyaWFQcm9wc1wiKSk7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG5mdW5jdGlvbiBub29wKCkge31cblxudmFyIEFsZXJ0ID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhBbGVydCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihBbGVydCk7XG5cbiAgZnVuY3Rpb24gQWxlcnQocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQWxlcnQpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5oYW5kbGVDbG9zZSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB2YXIgZG9tID0gUmVhY3RET00uZmluZERPTU5vZGUoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcykpO1xuICAgICAgZG9tLnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KGRvbS5vZmZzZXRIZWlnaHQsIFwicHhcIik7IC8vIE1hZ2ljIGNvZGVcbiAgICAgIC8vIOmHjeWkjeS4gOasoeWQjuaJjeiDveato+ehruiuvue9riBoZWlnaHRcblxuICAgICAgZG9tLnN0eWxlLmhlaWdodCA9IFwiXCIuY29uY2F0KGRvbS5vZmZzZXRIZWlnaHQsIFwicHhcIik7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2xvc2luZzogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIChfdGhpcy5wcm9wcy5vbkNsb3NlIHx8IG5vb3ApKGUpO1xuICAgIH07XG5cbiAgICBfdGhpcy5hbmltYXRpb25FbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsb3Npbmc6IGZhbHNlLFxuICAgICAgICBjbG9zZWQ6IHRydWVcbiAgICAgIH0pO1xuXG4gICAgICAoX3RoaXMucHJvcHMuYWZ0ZXJDbG9zZSB8fCBub29wKSgpO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJBbGVydCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgX2NsYXNzTmFtZXM7XG5cbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGRlc2NyaXB0aW9uID0gX3RoaXMkcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX3RoaXMkcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIG1lc3NhZ2UgPSBfdGhpcyRwcm9wcy5tZXNzYWdlLFxuICAgICAgICAgIGNsb3NlVGV4dCA9IF90aGlzJHByb3BzLmNsb3NlVGV4dCxcbiAgICAgICAgICBiYW5uZXIgPSBfdGhpcyRwcm9wcy5iYW5uZXIsXG4gICAgICAgICAgX3RoaXMkcHJvcHMkY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzJGNsYXNzTmFtZSA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRwcm9wcyRjbGFzc05hbWUsXG4gICAgICAgICAgc3R5bGUgPSBfdGhpcyRwcm9wcy5zdHlsZSxcbiAgICAgICAgICBpY29uID0gX3RoaXMkcHJvcHMuaWNvbjtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBjbG9zYWJsZSA9IF90aGlzJHByb3BzMi5jbG9zYWJsZSxcbiAgICAgICAgICB0eXBlID0gX3RoaXMkcHJvcHMyLnR5cGUsXG4gICAgICAgICAgc2hvd0ljb24gPSBfdGhpcyRwcm9wczIuc2hvd0ljb24sXG4gICAgICAgICAgaWNvblR5cGUgPSBfdGhpcyRwcm9wczIuaWNvblR5cGU7XG4gICAgICB2YXIgX3RoaXMkc3RhdGUgPSBfdGhpcy5zdGF0ZSxcbiAgICAgICAgICBjbG9zaW5nID0gX3RoaXMkc3RhdGUuY2xvc2luZyxcbiAgICAgICAgICBjbG9zZWQgPSBfdGhpcyRzdGF0ZS5jbG9zZWQ7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdhbGVydCcsIGN1c3RvbWl6ZVByZWZpeENscyk7IC8vIGJhbm5lcuaooeW8j+m7mOiupOaciSBJY29uXG5cbiAgICAgIHNob3dJY29uID0gYmFubmVyICYmIHNob3dJY29uID09PSB1bmRlZmluZWQgPyB0cnVlIDogc2hvd0ljb247IC8vIGJhbm5lcuaooeW8j+m7mOiupOS4uuitpuWRilxuXG4gICAgICB0eXBlID0gYmFubmVyICYmIHR5cGUgPT09IHVuZGVmaW5lZCA/ICd3YXJuaW5nJyA6IHR5cGUgfHwgJ2luZm8nO1xuICAgICAgdmFyIGljb25UaGVtZSA9ICdmaWxsZWQnO1xuXG4gICAgICBpZiAoIWljb25UeXBlKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgaWNvblR5cGUgPSAnY2hlY2stY2lyY2xlJztcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgICBpY29uVHlwZSA9ICdpbmZvLWNpcmNsZSc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgIGljb25UeXBlID0gJ2Nsb3NlLWNpcmNsZSc7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgaWNvblR5cGUgPSAnZXhjbGFtYXRpb24tY2lyY2xlJztcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGljb25UeXBlID0gJ2RlZmF1bHQnO1xuICAgICAgICB9IC8vIHVzZSBvdXRsaW5lIGljb24gaW4gYWxlcnQgd2l0aCBkZXNjcmlwdGlvblxuXG5cbiAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgaWNvblRoZW1lID0gJ291dGxpbmVkJztcbiAgICAgICAgfVxuICAgICAgfSAvLyBjbG9zZWFibGUgd2hlbiBjbG9zZVRleHQgaXMgYXNzaWduZWRcblxuXG4gICAgICBpZiAoY2xvc2VUZXh0KSB7XG4gICAgICAgIGNsb3NhYmxlID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFsZXJ0Q2xzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkocHJlZml4Q2xzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLVwiKS5jb25jYXQodHlwZSksIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItY2xvc2luZ1wiKSwgY2xvc2luZyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi13aXRoLWRlc2NyaXB0aW9uXCIpLCAhIWRlc2NyaXB0aW9uKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5vLWljb25cIiksICFzaG93SWNvbiksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1iYW5uZXJcIiksICEhYmFubmVyKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsb3NhYmxlXCIpLCBjbG9zYWJsZSksIF9jbGFzc05hbWVzKSwgY2xhc3NOYW1lKTtcbiAgICAgIHZhciBjbG9zZUljb24gPSBjbG9zYWJsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIsIHtcbiAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgb25DbGljazogX3RoaXMuaGFuZGxlQ2xvc2UsXG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jbG9zZS1pY29uXCIpLFxuICAgICAgICB0YWJJbmRleDogMFxuICAgICAgfSwgY2xvc2VUZXh0ID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWNsb3NlLXRleHRcIilcbiAgICAgIH0sIGNsb3NlVGV4dCkgOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgdHlwZTogXCJjbG9zZVwiXG4gICAgICB9KSkgOiBudWxsO1xuICAgICAgdmFyIGRhdGFPckFyaWFQcm9wcyA9ICgwLCBfZ2V0RGF0YU9yQXJpYVByb3BzW1wiZGVmYXVsdFwiXSkoX3RoaXMucHJvcHMpO1xuICAgICAgdmFyIGljb25Ob2RlID0gaWNvbiAmJiAoIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChpY29uKSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoaWNvbiwge1xuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaWNvblwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBpY29uLnByb3BzLmNsYXNzTmFtZSwgaWNvbi5wcm9wcy5jbGFzc05hbWUpKVxuICAgICAgfSkgOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaWNvblwiKVxuICAgICAgfSwgaWNvbikpIHx8IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaWNvblwiKSxcbiAgICAgICAgdHlwZTogaWNvblR5cGUsXG4gICAgICAgIHRoZW1lOiBpY29uVGhlbWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNsb3NlZCA/IG51bGwgOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfcmNBbmltYXRlW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBjb21wb25lbnQ6IFwiXCIsXG4gICAgICAgIHNob3dQcm9wOiBcImRhdGEtc2hvd1wiLFxuICAgICAgICB0cmFuc2l0aW9uTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbGlkZS11cFwiKSxcbiAgICAgICAgb25FbmQ6IF90aGlzLmFuaW1hdGlvbkVuZFxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBcImRhdGEtc2hvd1wiOiAhY2xvc2luZyxcbiAgICAgICAgY2xhc3NOYW1lOiBhbGVydENscyxcbiAgICAgICAgc3R5bGU6IHN0eWxlXG4gICAgICB9LCBkYXRhT3JBcmlhUHJvcHMpLCBzaG93SWNvbiA/IGljb25Ob2RlIDogbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW1lc3NhZ2VcIilcbiAgICAgIH0sIG1lc3NhZ2UpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGVzY3JpcHRpb25cIilcbiAgICAgIH0sIGRlc2NyaXB0aW9uKSwgY2xvc2VJY29uKSk7XG4gICAgfTtcblxuICAgICgwLCBfd2FybmluZ1tcImRlZmF1bHRcIl0pKCEoJ2ljb25UeXBlJyBpbiBwcm9wcyksICdBbGVydCcsICdgaWNvblR5cGVgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYGljb25gIGluc3RlYWQuJyk7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBjbG9zaW5nOiBmYWxzZSxcbiAgICAgIGNsb3NlZDogZmFsc2VcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhBbGVydCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyQWxlcnQpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBBbGVydDtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBBbGVydDsiLCJ2YXIgYXJyYXlXaXRob3V0SG9sZXMgPSByZXF1aXJlKFwiLi9hcnJheVdpdGhvdXRIb2xlcy5qc1wiKTtcblxudmFyIGl0ZXJhYmxlVG9BcnJheSA9IHJlcXVpcmUoXCIuL2l0ZXJhYmxlVG9BcnJheS5qc1wiKTtcblxudmFyIHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5ID0gcmVxdWlyZShcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIik7XG5cbnZhciBub25JdGVyYWJsZVNwcmVhZCA9IHJlcXVpcmUoXCIuL25vbkl0ZXJhYmxlU3ByZWFkLmpzXCIpO1xuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdG9Db25zdW1hYmxlQXJyYXk7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfVGFibGUgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1RhYmxlXCIpKTtcblxudmFyIF9kZWZhdWx0ID0gX1RhYmxlW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsImZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gIFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjtcblxuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcblxuICAgIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfTtcblxuICAgIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mKG9iaik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX3R5cGVvZjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsImZ1bmN0aW9uIF9leHRlbmRzKCkge1xuICBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH07XG5cbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbmZ1bmN0aW9uIF9pbmhlcml0c0xvb3NlKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7XG4gIHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpO1xuICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzcztcblxuICBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2Yobykge1xuICAgIHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7XG4gIH07XG4gIHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7XG59XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkge1xuICAgIG8uX19wcm90b19fID0gcDtcbiAgICByZXR1cm4gbztcbiAgfTtcblxuICByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApO1xufVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkge1xuICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7XG4gIGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7XG5cbiAgdHJ5IHtcbiAgICBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2NvbnN0cnVjdChQYXJlbnQsIGFyZ3MsIENsYXNzKSB7XG4gIGlmIChfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkpIHtcbiAgICBfY29uc3RydWN0ID0gUmVmbGVjdC5jb25zdHJ1Y3Q7XG4gIH0gZWxzZSB7XG4gICAgX2NvbnN0cnVjdCA9IGZ1bmN0aW9uIF9jb25zdHJ1Y3QoUGFyZW50LCBhcmdzLCBDbGFzcykge1xuICAgICAgdmFyIGEgPSBbbnVsbF07XG4gICAgICBhLnB1c2guYXBwbHkoYSwgYXJncyk7XG4gICAgICB2YXIgQ29uc3RydWN0b3IgPSBGdW5jdGlvbi5iaW5kLmFwcGx5KFBhcmVudCwgYSk7XG4gICAgICB2YXIgaW5zdGFuY2UgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgICAgIGlmIChDbGFzcykgX3NldFByb3RvdHlwZU9mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpO1xuICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gX2NvbnN0cnVjdC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xufVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVGdW5jdGlvbihmbikge1xuICByZXR1cm4gRnVuY3Rpb24udG9TdHJpbmcuY2FsbChmbikuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIikgIT09IC0xO1xufVxuXG5mdW5jdGlvbiBfd3JhcE5hdGl2ZVN1cGVyKENsYXNzKSB7XG4gIHZhciBfY2FjaGUgPSB0eXBlb2YgTWFwID09PSBcImZ1bmN0aW9uXCIgPyBuZXcgTWFwKCkgOiB1bmRlZmluZWQ7XG5cbiAgX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IG51bGwgfHwgIV9pc05hdGl2ZUZ1bmN0aW9uKENsYXNzKSkgcmV0dXJuIENsYXNzO1xuXG4gICAgaWYgKHR5cGVvZiBDbGFzcyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBfY2FjaGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGlmIChfY2FjaGUuaGFzKENsYXNzKSkgcmV0dXJuIF9jYWNoZS5nZXQoQ2xhc3MpO1xuXG4gICAgICBfY2FjaGUuc2V0KENsYXNzLCBXcmFwcGVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBXcmFwcGVyKCkge1xuICAgICAgcmV0dXJuIF9jb25zdHJ1Y3QoQ2xhc3MsIGFyZ3VtZW50cywgX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yKTtcbiAgICB9XG5cbiAgICBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoQ2xhc3MucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogV3JhcHBlcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gX3NldFByb3RvdHlwZU9mKFdyYXBwZXIsIENsYXNzKTtcbiAgfTtcblxuICByZXR1cm4gX3dyYXBOYXRpdmVTdXBlcihDbGFzcyk7XG59XG5cbi8qIGVzbGludCBuby1jb25zb2xlOjAgKi9cbnZhciBmb3JtYXRSZWdFeHAgPSAvJVtzZGolXS9nO1xudmFyIHdhcm5pbmcgPSBmdW5jdGlvbiB3YXJuaW5nKCkge307IC8vIGRvbid0IHByaW50IHdhcm5pbmcgbWVzc2FnZSB3aGVuIGluIHByb2R1Y3Rpb24gZW52IG9yIG5vZGUgcnVudGltZVxuXG5pZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmIHByb2Nlc3MuZW52ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICB3YXJuaW5nID0gZnVuY3Rpb24gd2FybmluZyh0eXBlLCBlcnJvcnMpIHtcbiAgICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgaWYgKGVycm9ycy5ldmVyeShmdW5jdGlvbiAoZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGUgPT09ICdzdHJpbmcnO1xuICAgICAgfSkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKHR5cGUsIGVycm9ycyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0RmllbGRzRXJyb3IoZXJyb3JzKSB7XG4gIGlmICghZXJyb3JzIHx8ICFlcnJvcnMubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgdmFyIGZpZWxkcyA9IHt9O1xuICBlcnJvcnMuZm9yRWFjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICB2YXIgZmllbGQgPSBlcnJvci5maWVsZDtcbiAgICBmaWVsZHNbZmllbGRdID0gZmllbGRzW2ZpZWxkXSB8fCBbXTtcbiAgICBmaWVsZHNbZmllbGRdLnB1c2goZXJyb3IpO1xuICB9KTtcbiAgcmV0dXJuIGZpZWxkcztcbn1cbmZ1bmN0aW9uIGZvcm1hdCgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgfVxuXG4gIHZhciBpID0gMTtcbiAgdmFyIGYgPSBhcmdzWzBdO1xuICB2YXIgbGVuID0gYXJncy5sZW5ndGg7XG5cbiAgaWYgKHR5cGVvZiBmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncy5zbGljZSgxKSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGYgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIHN0ciA9IFN0cmluZyhmKS5yZXBsYWNlKGZvcm1hdFJlZ0V4cCwgZnVuY3Rpb24gKHgpIHtcbiAgICAgIGlmICh4ID09PSAnJSUnKSB7XG4gICAgICAgIHJldHVybiAnJSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChpID49IGxlbikge1xuICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cblxuICAgICAgc3dpdGNoICh4KSB7XG4gICAgICAgIGNhc2UgJyVzJzpcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKGFyZ3NbaSsrXSk7XG5cbiAgICAgICAgY2FzZSAnJWQnOlxuICAgICAgICAgIHJldHVybiBOdW1iZXIoYXJnc1tpKytdKTtcblxuICAgICAgICBjYXNlICclaic6XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pO1xuICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4geDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgcmV0dXJuIGY7XG59XG5cbmZ1bmN0aW9uIGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlID09PSAndXJsJyB8fCB0eXBlID09PSAnaGV4JyB8fCB0eXBlID09PSAnZW1haWwnIHx8IHR5cGUgPT09ICdkYXRlJyB8fCB0eXBlID09PSAncGF0dGVybic7XG59XG5cbmZ1bmN0aW9uIGlzRW1wdHlWYWx1ZSh2YWx1ZSwgdHlwZSkge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09ICdhcnJheScgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgIXZhbHVlLmxlbmd0aCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGlzTmF0aXZlU3RyaW5nVHlwZSh0eXBlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhc3luY1BhcmFsbGVsQXJyYXkoYXJyLCBmdW5jLCBjYWxsYmFjaykge1xuICB2YXIgcmVzdWx0cyA9IFtdO1xuICB2YXIgdG90YWwgPSAwO1xuICB2YXIgYXJyTGVuZ3RoID0gYXJyLmxlbmd0aDtcblxuICBmdW5jdGlvbiBjb3VudChlcnJvcnMpIHtcbiAgICByZXN1bHRzLnB1c2guYXBwbHkocmVzdWx0cywgZXJyb3JzKTtcbiAgICB0b3RhbCsrO1xuXG4gICAgaWYgKHRvdGFsID09PSBhcnJMZW5ndGgpIHtcbiAgICAgIGNhbGxiYWNrKHJlc3VsdHMpO1xuICAgIH1cbiAgfVxuXG4gIGFyci5mb3JFYWNoKGZ1bmN0aW9uIChhKSB7XG4gICAgZnVuYyhhLCBjb3VudCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhc3luY1NlcmlhbEFycmF5KGFyciwgZnVuYywgY2FsbGJhY2spIHtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGFyckxlbmd0aCA9IGFyci5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcbiAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9ycyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIG9yaWdpbmFsID0gaW5kZXg7XG4gICAgaW5kZXggPSBpbmRleCArIDE7XG5cbiAgICBpZiAob3JpZ2luYWwgPCBhcnJMZW5ndGgpIHtcbiAgICAgIGZ1bmMoYXJyW29yaWdpbmFsXSwgbmV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKFtdKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KFtdKTtcbn1cblxuZnVuY3Rpb24gZmxhdHRlbk9iakFycihvYmpBcnIpIHtcbiAgdmFyIHJldCA9IFtdO1xuICBPYmplY3Qua2V5cyhvYmpBcnIpLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIG9iakFycltrXSk7XG4gIH0pO1xuICByZXR1cm4gcmV0O1xufVxuXG52YXIgQXN5bmNWYWxpZGF0aW9uRXJyb3IgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9FcnJvcikge1xuICBfaW5oZXJpdHNMb29zZShBc3luY1ZhbGlkYXRpb25FcnJvciwgX0Vycm9yKTtcblxuICBmdW5jdGlvbiBBc3luY1ZhbGlkYXRpb25FcnJvcihlcnJvcnMsIGZpZWxkcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF90aGlzID0gX0Vycm9yLmNhbGwodGhpcywgJ0FzeW5jIFZhbGlkYXRpb24gRXJyb3InKSB8fCB0aGlzO1xuICAgIF90aGlzLmVycm9ycyA9IGVycm9ycztcbiAgICBfdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgcmV0dXJuIEFzeW5jVmFsaWRhdGlvbkVycm9yO1xufSggLyojX19QVVJFX18qL193cmFwTmF0aXZlU3VwZXIoRXJyb3IpKTtcbmZ1bmN0aW9uIGFzeW5jTWFwKG9iakFyciwgb3B0aW9uLCBmdW5jLCBjYWxsYmFjaykge1xuICBpZiAob3B0aW9uLmZpcnN0KSB7XG4gICAgdmFyIF9wZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIG5leHQgPSBmdW5jdGlvbiBuZXh0KGVycm9ycykge1xuICAgICAgICBjYWxsYmFjayhlcnJvcnMpO1xuICAgICAgICByZXR1cm4gZXJyb3JzLmxlbmd0aCA/IHJlamVjdChuZXcgQXN5bmNWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLCBjb252ZXJ0RmllbGRzRXJyb3IoZXJyb3JzKSkpIDogcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgdmFyIGZsYXR0ZW5BcnIgPSBmbGF0dGVuT2JqQXJyKG9iakFycik7XG4gICAgICBhc3luY1NlcmlhbEFycmF5KGZsYXR0ZW5BcnIsIGZ1bmMsIG5leHQpO1xuICAgIH0pO1xuXG4gICAgX3BlbmRpbmdbXCJjYXRjaFwiXShmdW5jdGlvbiAoZSkge1xuICAgICAgcmV0dXJuIGU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX3BlbmRpbmc7XG4gIH1cblxuICB2YXIgZmlyc3RGaWVsZHMgPSBvcHRpb24uZmlyc3RGaWVsZHMgfHwgW107XG5cbiAgaWYgKGZpcnN0RmllbGRzID09PSB0cnVlKSB7XG4gICAgZmlyc3RGaWVsZHMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xuICB9XG5cbiAgdmFyIG9iakFycktleXMgPSBPYmplY3Qua2V5cyhvYmpBcnIpO1xuICB2YXIgb2JqQXJyTGVuZ3RoID0gb2JqQXJyS2V5cy5sZW5ndGg7XG4gIHZhciB0b3RhbCA9IDA7XG4gIHZhciByZXN1bHRzID0gW107XG4gIHZhciBwZW5kaW5nID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHZhciBuZXh0ID0gZnVuY3Rpb24gbmV4dChlcnJvcnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaC5hcHBseShyZXN1bHRzLCBlcnJvcnMpO1xuICAgICAgdG90YWwrKztcblxuICAgICAgaWYgKHRvdGFsID09PSBvYmpBcnJMZW5ndGgpIHtcbiAgICAgICAgY2FsbGJhY2socmVzdWx0cyk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmxlbmd0aCA/IHJlamVjdChuZXcgQXN5bmNWYWxpZGF0aW9uRXJyb3IocmVzdWx0cywgY29udmVydEZpZWxkc0Vycm9yKHJlc3VsdHMpKSkgOiByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghb2JqQXJyS2V5cy5sZW5ndGgpIHtcbiAgICAgIGNhbGxiYWNrKHJlc3VsdHMpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIG9iakFycktleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICB2YXIgYXJyID0gb2JqQXJyW2tleV07XG5cbiAgICAgIGlmIChmaXJzdEZpZWxkcy5pbmRleE9mKGtleSkgIT09IC0xKSB7XG4gICAgICAgIGFzeW5jU2VyaWFsQXJyYXkoYXJyLCBmdW5jLCBuZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzeW5jUGFyYWxsZWxBcnJheShhcnIsIGZ1bmMsIG5leHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgcGVuZGluZ1tcImNhdGNoXCJdKGZ1bmN0aW9uIChlKSB7XG4gICAgcmV0dXJuIGU7XG4gIH0pO1xuICByZXR1cm4gcGVuZGluZztcbn1cbmZ1bmN0aW9uIGNvbXBsZW1lbnRFcnJvcihydWxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAob2UpIHtcbiAgICBpZiAob2UgJiYgb2UubWVzc2FnZSkge1xuICAgICAgb2UuZmllbGQgPSBvZS5maWVsZCB8fCBydWxlLmZ1bGxGaWVsZDtcbiAgICAgIHJldHVybiBvZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogdHlwZW9mIG9lID09PSAnZnVuY3Rpb24nID8gb2UoKSA6IG9lLFxuICAgICAgZmllbGQ6IG9lLmZpZWxkIHx8IHJ1bGUuZnVsbEZpZWxkXG4gICAgfTtcbiAgfTtcbn1cbmZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoc291cmNlKSB7XG4gICAgZm9yICh2YXIgcyBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChzb3VyY2UuaGFzT3duUHJvcGVydHkocykpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gc291cmNlW3NdO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXRbc10gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGFyZ2V0W3NdID0gX2V4dGVuZHMoe30sIHRhcmdldFtzXSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtzXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuLyoqXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyByZXF1aXJlZCBmaWVsZHMuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gcmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKSB7XG4gIGlmIChydWxlLnJlcXVpcmVkICYmICghc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpIHx8IGlzRW1wdHlWYWx1ZSh2YWx1ZSwgdHlwZSB8fCBydWxlLnR5cGUpKSkge1xuICAgIGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLnJlcXVpcmVkLCBydWxlLmZ1bGxGaWVsZCkpO1xuICB9XG59XG5cbi8qKlxuICogIFJ1bGUgZm9yIHZhbGlkYXRpbmcgd2hpdGVzcGFjZS5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cbiAqICBAcGFyYW0gZXJyb3JzIEFuIGFycmF5IG9mIGVycm9ycyB0aGF0IHRoaXMgcnVsZSBtYXkgYWRkXG4gKiAgdmFsaWRhdGlvbiBlcnJvcnMgdG8uXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiB3aGl0ZXNwYWNlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xuICBpZiAoL15cXHMrJC8udGVzdCh2YWx1ZSkgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXMud2hpdGVzcGFjZSwgcnVsZS5mdWxsRmllbGQpKTtcbiAgfVxufVxuXG4vKiBlc2xpbnQgbWF4LWxlbjowICovXG5cbnZhciBwYXR0ZXJuID0ge1xuICAvLyBodHRwOi8vZW1haWxyZWdleC5jb20vXG4gIGVtYWlsOiAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLyxcbiAgdXJsOiBuZXcgUmVnRXhwKFwiXig/IW1haWx0bzopKD86KD86aHR0cHxodHRwc3xmdHApOi8vfC8vKSg/OlxcXFxTKyg/OjpcXFxcUyopP0ApPyg/Oig/Oig/OlsxLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMDFdXFxcXGR8MjJbMC0zXSkoPzpcXFxcLig/OjE/XFxcXGR7MSwyfXwyWzAtNF1cXFxcZHwyNVswLTVdKSl7Mn0oPzpcXFxcLig/OlswLTldXFxcXGQ/fDFcXFxcZFxcXFxkfDJbMC00XVxcXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rLSopKlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSspKig/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmZdezIsfSkpKXxsb2NhbGhvc3QpKD86OlxcXFxkezIsNX0pPyg/OigvfFxcXFw/fCMpW15cXFxcc10qKT8kXCIsICdpJyksXG4gIGhleDogL14jPyhbYS1mMC05XXs2fXxbYS1mMC05XXszfSkkL2lcbn07XG52YXIgdHlwZXMgPSB7XG4gIGludGVnZXI6IGZ1bmN0aW9uIGludGVnZXIodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZXMubnVtYmVyKHZhbHVlKSAmJiBwYXJzZUludCh2YWx1ZSwgMTApID09PSB2YWx1ZTtcbiAgfSxcbiAgXCJmbG9hdFwiOiBmdW5jdGlvbiBmbG9hdCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlcy5udW1iZXIodmFsdWUpICYmICF0eXBlcy5pbnRlZ2VyKHZhbHVlKTtcbiAgfSxcbiAgYXJyYXk6IGZ1bmN0aW9uIGFycmF5KHZhbHVlKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICB9LFxuICByZWdleHA6IGZ1bmN0aW9uIHJlZ2V4cCh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAhIW5ldyBSZWdFeHAodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0sXG4gIGRhdGU6IGZ1bmN0aW9uIGRhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlLmdldFRpbWUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbHVlLmdldE1vbnRoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWx1ZS5nZXRZZWFyID09PSAnZnVuY3Rpb24nICYmICFpc05hTih2YWx1ZS5nZXRUaW1lKCkpO1xuICB9LFxuICBudW1iZXI6IGZ1bmN0aW9uIG51bWJlcih2YWx1ZSkge1xuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJztcbiAgfSxcbiAgb2JqZWN0OiBmdW5jdGlvbiBvYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhdHlwZXMuYXJyYXkodmFsdWUpO1xuICB9LFxuICBtZXRob2Q6IGZ1bmN0aW9uIG1ldGhvZCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG4gIH0sXG4gIGVtYWlsOiBmdW5jdGlvbiBlbWFpbCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICEhdmFsdWUubWF0Y2gocGF0dGVybi5lbWFpbCkgJiYgdmFsdWUubGVuZ3RoIDwgMjU1O1xuICB9LFxuICB1cmw6IGZ1bmN0aW9uIHVybCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICEhdmFsdWUubWF0Y2gocGF0dGVybi51cmwpO1xuICB9LFxuICBoZXg6IGZ1bmN0aW9uIGhleCh2YWx1ZSkge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICEhdmFsdWUubWF0Y2gocGF0dGVybi5oZXgpO1xuICB9XG59O1xuLyoqXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyB0aGUgdHlwZSBvZiBhIHZhbHVlLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBlcnJvcnMgQW4gYXJyYXkgb2YgZXJyb3JzIHRoYXQgdGhpcyBydWxlIG1heSBhZGRcbiAqICB2YWxpZGF0aW9uIGVycm9ycyB0by5cbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICovXG5cbmZ1bmN0aW9uIHR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIGlmIChydWxlLnJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBjdXN0b20gPSBbJ2ludGVnZXInLCAnZmxvYXQnLCAnYXJyYXknLCAncmVnZXhwJywgJ29iamVjdCcsICdtZXRob2QnLCAnZW1haWwnLCAnbnVtYmVyJywgJ2RhdGUnLCAndXJsJywgJ2hleCddO1xuICB2YXIgcnVsZVR5cGUgPSBydWxlLnR5cGU7XG5cbiAgaWYgKGN1c3RvbS5pbmRleE9mKHJ1bGVUeXBlKSA+IC0xKSB7XG4gICAgaWYgKCF0eXBlc1tydWxlVHlwZV0odmFsdWUpKSB7XG4gICAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy50eXBlc1tydWxlVHlwZV0sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLnR5cGUpKTtcbiAgICB9IC8vIHN0cmFpZ2h0IHR5cGVvZiBjaGVja1xuXG4gIH0gZWxzZSBpZiAocnVsZVR5cGUgJiYgdHlwZW9mIHZhbHVlICE9PSBydWxlLnR5cGUpIHtcbiAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy50eXBlc1tydWxlVHlwZV0sIHJ1bGUuZnVsbEZpZWxkLCBydWxlLnR5cGUpKTtcbiAgfVxufVxuXG4vKipcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIG1pbmltdW0gYW5kIG1heGltdW0gYWxsb3dlZCB2YWx1ZXMuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gcmFuZ2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKSB7XG4gIHZhciBsZW4gPSB0eXBlb2YgcnVsZS5sZW4gPT09ICdudW1iZXInO1xuICB2YXIgbWluID0gdHlwZW9mIHJ1bGUubWluID09PSAnbnVtYmVyJztcbiAgdmFyIG1heCA9IHR5cGVvZiBydWxlLm1heCA9PT0gJ251bWJlcic7IC8vIOato+WImeWMuemFjeeggeeCueiMg+WbtOS7jlUrMDEwMDAw5LiA55u05YiwVSsxMEZGRkbnmoTmloflrZfvvIjooaXlhYXlubPpnaJTdXBwbGVtZW50YXJ5IFBsYW5l77yJXG5cbiAgdmFyIHNwUmVnZXhwID0gL1tcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl0vZztcbiAgdmFyIHZhbCA9IHZhbHVlO1xuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIG51bSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XG4gIHZhciBzdHIgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuICB2YXIgYXJyID0gQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG5cbiAgaWYgKG51bSkge1xuICAgIGtleSA9ICdudW1iZXInO1xuICB9IGVsc2UgaWYgKHN0cikge1xuICAgIGtleSA9ICdzdHJpbmcnO1xuICB9IGVsc2UgaWYgKGFycikge1xuICAgIGtleSA9ICdhcnJheSc7XG4gIH0gLy8gaWYgdGhlIHZhbHVlIGlzIG5vdCBvZiBhIHN1cHBvcnRlZCB0eXBlIGZvciByYW5nZSB2YWxpZGF0aW9uXG4gIC8vIHRoZSB2YWxpZGF0aW9uIHJ1bGUgcnVsZSBzaG91bGQgdXNlIHRoZVxuICAvLyB0eXBlIHByb3BlcnR5IHRvIGFsc28gdGVzdCBmb3IgYSBwYXJ0aWN1bGFyIHR5cGVcblxuXG4gIGlmICgha2V5KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGFycikge1xuICAgIHZhbCA9IHZhbHVlLmxlbmd0aDtcbiAgfVxuXG4gIGlmIChzdHIpIHtcbiAgICAvLyDlpITnkIbnoIHngrnlpKfkuo5VKzAxMDAwMOeahOaWh+Wtl2xlbmd0aOWxnuaAp+S4jeWHhuehrueahGJ1Z++8jOWmglwi8KCut/CgrrfwoK63XCIubGVuZ2h0ICE9PSAzXG4gICAgdmFsID0gdmFsdWUucmVwbGFjZShzcFJlZ2V4cCwgJ18nKS5sZW5ndGg7XG4gIH1cblxuICBpZiAobGVuKSB7XG4gICAgaWYgKHZhbCAhPT0gcnVsZS5sZW4pIHtcbiAgICAgIGVycm9ycy5wdXNoKGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzW2tleV0ubGVuLCBydWxlLmZ1bGxGaWVsZCwgcnVsZS5sZW4pKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobWluICYmICFtYXggJiYgdmFsIDwgcnVsZS5taW4pIHtcbiAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLm1pbiwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubWluKSk7XG4gIH0gZWxzZSBpZiAobWF4ICYmICFtaW4gJiYgdmFsID4gcnVsZS5tYXgpIHtcbiAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlc1trZXldLm1heCwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubWF4KSk7XG4gIH0gZWxzZSBpZiAobWluICYmIG1heCAmJiAodmFsIDwgcnVsZS5taW4gfHwgdmFsID4gcnVsZS5tYXgpKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNba2V5XS5yYW5nZSwgcnVsZS5mdWxsRmllbGQsIHJ1bGUubWluLCBydWxlLm1heCkpO1xuICB9XG59XG5cbnZhciBFTlVNID0gJ2VudW0nO1xuLyoqXG4gKiAgUnVsZSBmb3IgdmFsaWRhdGluZyBhIHZhbHVlIGV4aXN0cyBpbiBhbiBlbnVtZXJhYmxlIGxpc3QuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gZW51bWVyYWJsZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpIHtcbiAgcnVsZVtFTlVNXSA9IEFycmF5LmlzQXJyYXkocnVsZVtFTlVNXSkgPyBydWxlW0VOVU1dIDogW107XG5cbiAgaWYgKHJ1bGVbRU5VTV0uaW5kZXhPZih2YWx1ZSkgPT09IC0xKSB7XG4gICAgZXJyb3JzLnB1c2goZm9ybWF0KG9wdGlvbnMubWVzc2FnZXNbRU5VTV0sIHJ1bGUuZnVsbEZpZWxkLCBydWxlW0VOVU1dLmpvaW4oJywgJykpKTtcbiAgfVxufVxuXG4vKipcbiAqICBSdWxlIGZvciB2YWxpZGF0aW5nIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIGVycm9ycyBBbiBhcnJheSBvZiBlcnJvcnMgdGhhdCB0aGlzIHJ1bGUgbWF5IGFkZFxuICogIHZhbGlkYXRpb24gZXJyb3JzIHRvLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gcGF0dGVybiQxKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucykge1xuICBpZiAocnVsZS5wYXR0ZXJuKSB7XG4gICAgaWYgKHJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgLy8gaWYgYSBSZWdFeHAgaW5zdGFuY2UgaXMgcGFzc2VkLCByZXNldCBgbGFzdEluZGV4YCBpbiBjYXNlIGl0cyBgZ2xvYmFsYFxuICAgICAgLy8gZmxhZyBpcyBhY2NpZGVudGFsbHkgc2V0IHRvIGB0cnVlYCwgd2hpY2ggaW4gYSB2YWxpZGF0aW9uIHNjZW5hcmlvXG4gICAgICAvLyBpcyBub3QgbmVjZXNzYXJ5IGFuZCB0aGUgcmVzdWx0IG1pZ2h0IGJlIG1pc2xlYWRpbmdcbiAgICAgIHJ1bGUucGF0dGVybi5sYXN0SW5kZXggPSAwO1xuXG4gICAgICBpZiAoIXJ1bGUucGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJ1bGUucGF0dGVybiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhciBfcGF0dGVybiA9IG5ldyBSZWdFeHAocnVsZS5wYXR0ZXJuKTtcblxuICAgICAgaWYgKCFfcGF0dGVybi50ZXN0KHZhbHVlKSkge1xuICAgICAgICBlcnJvcnMucHVzaChmb3JtYXQob3B0aW9ucy5tZXNzYWdlcy5wYXR0ZXJuLm1pc21hdGNoLCBydWxlLmZ1bGxGaWVsZCwgdmFsdWUsIHJ1bGUucGF0dGVybikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgcnVsZXMgPSB7XG4gIHJlcXVpcmVkOiByZXF1aXJlZCxcbiAgd2hpdGVzcGFjZTogd2hpdGVzcGFjZSxcbiAgdHlwZTogdHlwZSxcbiAgcmFuZ2U6IHJhbmdlLFxuICBcImVudW1cIjogZW51bWVyYWJsZSxcbiAgcGF0dGVybjogcGF0dGVybiQxXG59O1xuXG4vKipcbiAqICBQZXJmb3JtcyB2YWxpZGF0aW9uIGZvciBzdHJpbmcgdHlwZXMuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICovXG5cbmZ1bmN0aW9uIHN0cmluZyhydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuXG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUsICdzdHJpbmcnKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCAnc3RyaW5nJyk7XG5cbiAgICBpZiAoIWlzRW1wdHlWYWx1ZSh2YWx1ZSwgJ3N0cmluZycpKSB7XG4gICAgICBydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICBydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgcnVsZXMucGF0dGVybihydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAocnVsZS53aGl0ZXNwYWNlID09PSB0cnVlKSB7XG4gICAgICAgIHJ1bGVzLndoaXRlc3BhY2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcnMpO1xufVxuXG4vKipcbiAqICBWYWxpZGF0ZXMgYSBmdW5jdGlvbi5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gbWV0aG9kKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG5cbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbi8qKlxuICogIFZhbGlkYXRlcyBhIG51bWJlci5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gbnVtYmVyKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG5cbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgcnVsZXMucmFuZ2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcnMpO1xufVxuXG4vKipcbiAqICBWYWxpZGF0ZXMgYSBib29sZWFuLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiBfYm9vbGVhbihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuXG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcnMpO1xufVxuXG4vKipcbiAqICBWYWxpZGF0ZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0eXBlLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiByZWdleHAocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbi8qKlxuICogIFZhbGlkYXRlcyBhIG51bWJlciBpcyBhbiBpbnRlZ2VyLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiBpbnRlZ2VyKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG5cbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgcnVsZXMucmFuZ2UocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcnMpO1xufVxuXG4vKipcbiAqICBWYWxpZGF0ZXMgYSBudW1iZXIgaXMgYSBmbG9hdGluZyBwb2ludCBudW1iZXIuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICovXG5cbmZ1bmN0aW9uIGZsb2F0Rm4ocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcblxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBydWxlcy50eXBlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgICBydWxlcy5yYW5nZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbi8qKlxuICogIFZhbGlkYXRlcyBhbiBhcnJheS5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gYXJyYXkocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMsICdhcnJheScpO1xuXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICAgIHJ1bGVzLnJhbmdlKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn1cblxuLyoqXG4gKiAgVmFsaWRhdGVzIGFuIG9iamVjdC5cbiAqXG4gKiAgQHBhcmFtIHJ1bGUgVGhlIHZhbGlkYXRpb24gcnVsZS5cbiAqICBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBmaWVsZCBvbiB0aGUgc291cmNlIG9iamVjdC5cbiAqICBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogIEBwYXJhbSBzb3VyY2UgVGhlIHNvdXJjZSBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLlxuICogIEBwYXJhbSBvcHRpb25zIFRoZSB2YWxpZGF0aW9uIG9wdGlvbnMuXG4gKiAgQHBhcmFtIG9wdGlvbnMubWVzc2FnZXMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cblxuZnVuY3Rpb24gb2JqZWN0KHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7XG5cbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgaWYgKGlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG5cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbnZhciBFTlVNJDEgPSAnZW51bSc7XG4vKipcbiAqICBWYWxpZGF0ZXMgYW4gZW51bWVyYWJsZSBsaXN0LlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiBlbnVtZXJhYmxlJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcblxuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBydWxlc1tFTlVNJDFdKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgY2FsbGJhY2soZXJyb3JzKTtcbn1cblxuLyoqXG4gKiAgVmFsaWRhdGVzIGEgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4uXG4gKlxuICogIFBlcmZvcm1zIHZhbGlkYXRpb24gd2hlbiBhIHJ1bGUgb25seSBjb250YWluc1xuICogIGEgcGF0dGVybiBwcm9wZXJ0eSBidXQgaXMgbm90IGRlY2xhcmVkIGFzIGEgc3RyaW5nIHR5cGUuXG4gKlxuICogIEBwYXJhbSBydWxlIFRoZSB2YWxpZGF0aW9uIHJ1bGUuXG4gKiAgQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgb24gdGhlIHNvdXJjZSBvYmplY3QuXG4gKiAgQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqICBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IGJlaW5nIHZhbGlkYXRlZC5cbiAqICBAcGFyYW0gb3B0aW9ucyBUaGUgdmFsaWRhdGlvbiBvcHRpb25zLlxuICogIEBwYXJhbSBvcHRpb25zLm1lc3NhZ2VzIFRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICovXG5cbmZ1bmN0aW9uIHBhdHRlcm4kMihydWxlLCB2YWx1ZSwgY2FsbGJhY2ssIHNvdXJjZSwgb3B0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG4gIHZhciB2YWxpZGF0ZSA9IHJ1bGUucmVxdWlyZWQgfHwgIXJ1bGUucmVxdWlyZWQgJiYgc291cmNlLmhhc093blByb3BlcnR5KHJ1bGUuZmllbGQpO1xuXG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIGlmIChpc0VtcHR5VmFsdWUodmFsdWUsICdzdHJpbmcnKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNFbXB0eVZhbHVlKHZhbHVlLCAnc3RyaW5nJykpIHtcbiAgICAgIHJ1bGVzLnBhdHRlcm4ocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBjYWxsYmFjayhlcnJvcnMpO1xufVxuXG5mdW5jdGlvbiBkYXRlKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIC8vIGNvbnNvbGUubG9nKCdpbnRlZ2VyIHJ1bGUgY2FsbGVkICVqJywgcnVsZSk7XG4gIHZhciBlcnJvcnMgPSBbXTtcbiAgdmFyIHZhbGlkYXRlID0gcnVsZS5yZXF1aXJlZCB8fCAhcnVsZS5yZXF1aXJlZCAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkocnVsZS5maWVsZCk7IC8vIGNvbnNvbGUubG9nKCd2YWxpZGF0ZSBvbiAlcyB2YWx1ZScsIHZhbHVlKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCAnZGF0ZScpICYmICFydWxlLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICB9XG5cbiAgICBydWxlcy5yZXF1aXJlZChydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc0VtcHR5VmFsdWUodmFsdWUsICdkYXRlJykpIHtcbiAgICAgIHZhciBkYXRlT2JqZWN0O1xuXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIGRhdGVPYmplY3QgPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRhdGVPYmplY3QgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJ1bGVzLnR5cGUocnVsZSwgZGF0ZU9iamVjdCwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAoZGF0ZU9iamVjdCkge1xuICAgICAgICBydWxlcy5yYW5nZShydWxlLCBkYXRlT2JqZWN0LmdldFRpbWUoKSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbmZ1bmN0aW9uIHJlcXVpcmVkJDEocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdHlwZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gJ2FycmF5JyA6IHR5cGVvZiB2YWx1ZTtcbiAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zLCB0eXBlKTtcbiAgY2FsbGJhY2soZXJyb3JzKTtcbn1cblxuZnVuY3Rpb24gdHlwZSQxKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaywgc291cmNlLCBvcHRpb25zKSB7XG4gIHZhciBydWxlVHlwZSA9IHJ1bGUudHlwZTtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlLCBydWxlVHlwZSkgJiYgIXJ1bGUucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHJ1bGVzLnJlcXVpcmVkKHJ1bGUsIHZhbHVlLCBzb3VyY2UsIGVycm9ycywgb3B0aW9ucywgcnVsZVR5cGUpO1xuXG4gICAgaWYgKCFpc0VtcHR5VmFsdWUodmFsdWUsIHJ1bGVUeXBlKSkge1xuICAgICAgcnVsZXMudHlwZShydWxlLCB2YWx1ZSwgc291cmNlLCBlcnJvcnMsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbi8qKlxuICogIFBlcmZvcm1zIHZhbGlkYXRpb24gZm9yIGFueSB0eXBlLlxuICpcbiAqICBAcGFyYW0gcnVsZSBUaGUgdmFsaWRhdGlvbiBydWxlLlxuICogIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGZpZWxkIG9uIHRoZSBzb3VyY2Ugb2JqZWN0LlxuICogIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKiAgQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIG9iamVjdCBiZWluZyB2YWxpZGF0ZWQuXG4gKiAgQHBhcmFtIG9wdGlvbnMgVGhlIHZhbGlkYXRpb24gb3B0aW9ucy5cbiAqICBAcGFyYW0gb3B0aW9ucy5tZXNzYWdlcyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuXG5mdW5jdGlvbiBhbnkocnVsZSwgdmFsdWUsIGNhbGxiYWNrLCBzb3VyY2UsIG9wdGlvbnMpIHtcbiAgdmFyIGVycm9ycyA9IFtdO1xuICB2YXIgdmFsaWRhdGUgPSBydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShydWxlLmZpZWxkKTtcblxuICBpZiAodmFsaWRhdGUpIHtcbiAgICBpZiAoaXNFbXB0eVZhbHVlKHZhbHVlKSAmJiAhcnVsZS5yZXF1aXJlZCkge1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcnVsZXMucmVxdWlyZWQocnVsZSwgdmFsdWUsIHNvdXJjZSwgZXJyb3JzLCBvcHRpb25zKTtcbiAgfVxuXG4gIGNhbGxiYWNrKGVycm9ycyk7XG59XG5cbnZhciB2YWxpZGF0b3JzID0ge1xuICBzdHJpbmc6IHN0cmluZyxcbiAgbWV0aG9kOiBtZXRob2QsXG4gIG51bWJlcjogbnVtYmVyLFxuICBcImJvb2xlYW5cIjogX2Jvb2xlYW4sXG4gIHJlZ2V4cDogcmVnZXhwLFxuICBpbnRlZ2VyOiBpbnRlZ2VyLFxuICBcImZsb2F0XCI6IGZsb2F0Rm4sXG4gIGFycmF5OiBhcnJheSxcbiAgb2JqZWN0OiBvYmplY3QsXG4gIFwiZW51bVwiOiBlbnVtZXJhYmxlJDEsXG4gIHBhdHRlcm46IHBhdHRlcm4kMixcbiAgZGF0ZTogZGF0ZSxcbiAgdXJsOiB0eXBlJDEsXG4gIGhleDogdHlwZSQxLFxuICBlbWFpbDogdHlwZSQxLFxuICByZXF1aXJlZDogcmVxdWlyZWQkMSxcbiAgYW55OiBhbnlcbn07XG5cbmZ1bmN0aW9uIG5ld01lc3NhZ2VzKCkge1xuICByZXR1cm4ge1xuICAgIFwiZGVmYXVsdFwiOiAnVmFsaWRhdGlvbiBlcnJvciBvbiBmaWVsZCAlcycsXG4gICAgcmVxdWlyZWQ6ICclcyBpcyByZXF1aXJlZCcsXG4gICAgXCJlbnVtXCI6ICclcyBtdXN0IGJlIG9uZSBvZiAlcycsXG4gICAgd2hpdGVzcGFjZTogJyVzIGNhbm5vdCBiZSBlbXB0eScsXG4gICAgZGF0ZToge1xuICAgICAgZm9ybWF0OiAnJXMgZGF0ZSAlcyBpcyBpbnZhbGlkIGZvciBmb3JtYXQgJXMnLFxuICAgICAgcGFyc2U6ICclcyBkYXRlIGNvdWxkIG5vdCBiZSBwYXJzZWQsICVzIGlzIGludmFsaWQgJyxcbiAgICAgIGludmFsaWQ6ICclcyBkYXRlICVzIGlzIGludmFsaWQnXG4gICAgfSxcbiAgICB0eXBlczoge1xuICAgICAgc3RyaW5nOiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgbWV0aG9kOiAnJXMgaXMgbm90IGEgJXMgKGZ1bmN0aW9uKScsXG4gICAgICBhcnJheTogJyVzIGlzIG5vdCBhbiAlcycsXG4gICAgICBvYmplY3Q6ICclcyBpcyBub3QgYW4gJXMnLFxuICAgICAgbnVtYmVyOiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgZGF0ZTogJyVzIGlzIG5vdCBhICVzJyxcbiAgICAgIFwiYm9vbGVhblwiOiAnJXMgaXMgbm90IGEgJXMnLFxuICAgICAgaW50ZWdlcjogJyVzIGlzIG5vdCBhbiAlcycsXG4gICAgICBcImZsb2F0XCI6ICclcyBpcyBub3QgYSAlcycsXG4gICAgICByZWdleHA6ICclcyBpcyBub3QgYSB2YWxpZCAlcycsXG4gICAgICBlbWFpbDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcbiAgICAgIHVybDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJyxcbiAgICAgIGhleDogJyVzIGlzIG5vdCBhIHZhbGlkICVzJ1xuICAgIH0sXG4gICAgc3RyaW5nOiB7XG4gICAgICBsZW46ICclcyBtdXN0IGJlIGV4YWN0bHkgJXMgY2hhcmFjdGVycycsXG4gICAgICBtaW46ICclcyBtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLFxuICAgICAgbWF4OiAnJXMgY2Fubm90IGJlIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnLFxuICAgICAgcmFuZ2U6ICclcyBtdXN0IGJlIGJldHdlZW4gJXMgYW5kICVzIGNoYXJhY3RlcnMnXG4gICAgfSxcbiAgICBudW1iZXI6IHtcbiAgICAgIGxlbjogJyVzIG11c3QgZXF1YWwgJXMnLFxuICAgICAgbWluOiAnJXMgY2Fubm90IGJlIGxlc3MgdGhhbiAlcycsXG4gICAgICBtYXg6ICclcyBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuICVzJyxcbiAgICAgIHJhbmdlOiAnJXMgbXVzdCBiZSBiZXR3ZWVuICVzIGFuZCAlcydcbiAgICB9LFxuICAgIGFycmF5OiB7XG4gICAgICBsZW46ICclcyBtdXN0IGJlIGV4YWN0bHkgJXMgaW4gbGVuZ3RoJyxcbiAgICAgIG1pbjogJyVzIGNhbm5vdCBiZSBsZXNzIHRoYW4gJXMgaW4gbGVuZ3RoJyxcbiAgICAgIG1heDogJyVzIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJXMgaW4gbGVuZ3RoJyxcbiAgICAgIHJhbmdlOiAnJXMgbXVzdCBiZSBiZXR3ZWVuICVzIGFuZCAlcyBpbiBsZW5ndGgnXG4gICAgfSxcbiAgICBwYXR0ZXJuOiB7XG4gICAgICBtaXNtYXRjaDogJyVzIHZhbHVlICVzIGRvZXMgbm90IG1hdGNoIHBhdHRlcm4gJXMnXG4gICAgfSxcbiAgICBjbG9uZTogZnVuY3Rpb24gY2xvbmUoKSB7XG4gICAgICB2YXIgY2xvbmVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzKSk7XG4gICAgICBjbG9uZWQuY2xvbmUgPSB0aGlzLmNsb25lO1xuICAgICAgcmV0dXJuIGNsb25lZDtcbiAgICB9XG4gIH07XG59XG52YXIgbWVzc2FnZXMgPSBuZXdNZXNzYWdlcygpO1xuXG4vKipcbiAqICBFbmNhcHN1bGF0ZXMgYSB2YWxpZGF0aW9uIHNjaGVtYS5cbiAqXG4gKiAgQHBhcmFtIGRlc2NyaXB0b3IgQW4gb2JqZWN0IGRlY2xhcmluZyB2YWxpZGF0aW9uIHJ1bGVzXG4gKiAgZm9yIHRoaXMgc2NoZW1hLlxuICovXG5cbmZ1bmN0aW9uIFNjaGVtYShkZXNjcmlwdG9yKSB7XG4gIHRoaXMucnVsZXMgPSBudWxsO1xuICB0aGlzLl9tZXNzYWdlcyA9IG1lc3NhZ2VzO1xuICB0aGlzLmRlZmluZShkZXNjcmlwdG9yKTtcbn1cblxuU2NoZW1hLnByb3RvdHlwZSA9IHtcbiAgbWVzc2FnZXM6IGZ1bmN0aW9uIG1lc3NhZ2VzKF9tZXNzYWdlcykge1xuICAgIGlmIChfbWVzc2FnZXMpIHtcbiAgICAgIHRoaXMuX21lc3NhZ2VzID0gZGVlcE1lcmdlKG5ld01lc3NhZ2VzKCksIF9tZXNzYWdlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VzO1xuICB9LFxuICBkZWZpbmU6IGZ1bmN0aW9uIGRlZmluZShydWxlcykge1xuICAgIGlmICghcnVsZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbmZpZ3VyZSBhIHNjaGVtYSB3aXRoIG5vIHJ1bGVzJyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBydWxlcyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShydWxlcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUnVsZXMgbXVzdCBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bGVzID0ge307XG4gICAgdmFyIHo7XG4gICAgdmFyIGl0ZW07XG5cbiAgICBmb3IgKHogaW4gcnVsZXMpIHtcbiAgICAgIGlmIChydWxlcy5oYXNPd25Qcm9wZXJ0eSh6KSkge1xuICAgICAgICBpdGVtID0gcnVsZXNbel07XG4gICAgICAgIHRoaXMucnVsZXNbel0gPSBBcnJheS5pc0FycmF5KGl0ZW0pID8gaXRlbSA6IFtpdGVtXTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShzb3VyY2VfLCBvLCBvYykge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBpZiAobyA9PT0gdm9pZCAwKSB7XG4gICAgICBvID0ge307XG4gICAgfVxuXG4gICAgaWYgKG9jID09PSB2b2lkIDApIHtcbiAgICAgIG9jID0gZnVuY3Rpb24gb2MoKSB7fTtcbiAgICB9XG5cbiAgICB2YXIgc291cmNlID0gc291cmNlXztcbiAgICB2YXIgb3B0aW9ucyA9IG87XG4gICAgdmFyIGNhbGxiYWNrID0gb2M7XG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgIG9wdGlvbnMgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucnVsZXMgfHwgT2JqZWN0LmtleXModGhpcy5ydWxlcykubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXBsZXRlKHJlc3VsdHMpIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGVycm9ycyA9IFtdO1xuICAgICAgdmFyIGZpZWxkcyA9IHt9O1xuXG4gICAgICBmdW5jdGlvbiBhZGQoZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlKSkge1xuICAgICAgICAgIHZhciBfZXJyb3JzO1xuXG4gICAgICAgICAgZXJyb3JzID0gKF9lcnJvcnMgPSBlcnJvcnMpLmNvbmNhdC5hcHBseShfZXJyb3JzLCBlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnJvcnMucHVzaChlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBhZGQocmVzdWx0c1tpXSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICBlcnJvcnMgPSBudWxsO1xuICAgICAgICBmaWVsZHMgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGRzID0gY29udmVydEZpZWxkc0Vycm9yKGVycm9ycyk7XG4gICAgICB9XG5cbiAgICAgIGNhbGxiYWNrKGVycm9ycywgZmllbGRzKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5tZXNzYWdlcykge1xuICAgICAgdmFyIG1lc3NhZ2VzJDEgPSB0aGlzLm1lc3NhZ2VzKCk7XG5cbiAgICAgIGlmIChtZXNzYWdlcyQxID09PSBtZXNzYWdlcykge1xuICAgICAgICBtZXNzYWdlcyQxID0gbmV3TWVzc2FnZXMoKTtcbiAgICAgIH1cblxuICAgICAgZGVlcE1lcmdlKG1lc3NhZ2VzJDEsIG9wdGlvbnMubWVzc2FnZXMpO1xuICAgICAgb3B0aW9ucy5tZXNzYWdlcyA9IG1lc3NhZ2VzJDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdGlvbnMubWVzc2FnZXMgPSB0aGlzLm1lc3NhZ2VzKCk7XG4gICAgfVxuXG4gICAgdmFyIGFycjtcbiAgICB2YXIgdmFsdWU7XG4gICAgdmFyIHNlcmllcyA9IHt9O1xuICAgIHZhciBrZXlzID0gb3B0aW9ucy5rZXlzIHx8IE9iamVjdC5rZXlzKHRoaXMucnVsZXMpO1xuICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoeikge1xuICAgICAgYXJyID0gX3RoaXMucnVsZXNbel07XG4gICAgICB2YWx1ZSA9IHNvdXJjZVt6XTtcbiAgICAgIGFyci5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7XG4gICAgICAgIHZhciBydWxlID0gcjtcblxuICAgICAgICBpZiAodHlwZW9mIHJ1bGUudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgaWYgKHNvdXJjZSA9PT0gc291cmNlXykge1xuICAgICAgICAgICAgc291cmNlID0gX2V4dGVuZHMoe30sIHNvdXJjZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFsdWUgPSBzb3VyY2Vbel0gPSBydWxlLnRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHJ1bGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBydWxlID0ge1xuICAgICAgICAgICAgdmFsaWRhdG9yOiBydWxlXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBydWxlID0gX2V4dGVuZHMoe30sIHJ1bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVsZS52YWxpZGF0b3IgPSBfdGhpcy5nZXRWYWxpZGF0aW9uTWV0aG9kKHJ1bGUpO1xuICAgICAgICBydWxlLmZpZWxkID0gejtcbiAgICAgICAgcnVsZS5mdWxsRmllbGQgPSBydWxlLmZ1bGxGaWVsZCB8fCB6O1xuICAgICAgICBydWxlLnR5cGUgPSBfdGhpcy5nZXRUeXBlKHJ1bGUpO1xuXG4gICAgICAgIGlmICghcnVsZS52YWxpZGF0b3IpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXJpZXNbel0gPSBzZXJpZXNbel0gfHwgW107XG4gICAgICAgIHNlcmllc1t6XS5wdXNoKHtcbiAgICAgICAgICBydWxlOiBydWxlLFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICAgICAgICBmaWVsZDogelxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHZhciBlcnJvckZpZWxkcyA9IHt9O1xuICAgIHJldHVybiBhc3luY01hcChzZXJpZXMsIG9wdGlvbnMsIGZ1bmN0aW9uIChkYXRhLCBkb0l0KSB7XG4gICAgICB2YXIgcnVsZSA9IGRhdGEucnVsZTtcbiAgICAgIHZhciBkZWVwID0gKHJ1bGUudHlwZSA9PT0gJ29iamVjdCcgfHwgcnVsZS50eXBlID09PSAnYXJyYXknKSAmJiAodHlwZW9mIHJ1bGUuZmllbGRzID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgcnVsZS5kZWZhdWx0RmllbGQgPT09ICdvYmplY3QnKTtcbiAgICAgIGRlZXAgPSBkZWVwICYmIChydWxlLnJlcXVpcmVkIHx8ICFydWxlLnJlcXVpcmVkICYmIGRhdGEudmFsdWUpO1xuICAgICAgcnVsZS5maWVsZCA9IGRhdGEuZmllbGQ7XG5cbiAgICAgIGZ1bmN0aW9uIGFkZEZ1bGxmaWVsZChrZXksIHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHNjaGVtYSwge1xuICAgICAgICAgIGZ1bGxGaWVsZDogcnVsZS5mdWxsRmllbGQgKyBcIi5cIiArIGtleVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gY2IoZSkge1xuICAgICAgICBpZiAoZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGVycm9ycyA9IGU7XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVycm9ycykpIHtcbiAgICAgICAgICBlcnJvcnMgPSBbZXJyb3JzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3B0aW9ucy5zdXBwcmVzc1dhcm5pbmcgJiYgZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgIFNjaGVtYS53YXJuaW5nKCdhc3luYy12YWxpZGF0b3I6JywgZXJyb3JzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoICYmIHJ1bGUubWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZXJyb3JzID0gW10uY29uY2F0KHJ1bGUubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBlcnJvcnMgPSBlcnJvcnMubWFwKGNvbXBsZW1lbnRFcnJvcihydWxlKSk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZmlyc3QgJiYgZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICAgIGVycm9yRmllbGRzW3J1bGUuZmllbGRdID0gMTtcbiAgICAgICAgICByZXR1cm4gZG9JdChlcnJvcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkZWVwKSB7XG4gICAgICAgICAgZG9JdChlcnJvcnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGlmIHJ1bGUgaXMgcmVxdWlyZWQgYnV0IHRoZSB0YXJnZXQgb2JqZWN0XG4gICAgICAgICAgLy8gZG9lcyBub3QgZXhpc3QgZmFpbCBhdCB0aGUgcnVsZSBsZXZlbCBhbmQgZG9uJ3RcbiAgICAgICAgICAvLyBnbyBkZWVwZXJcbiAgICAgICAgICBpZiAocnVsZS5yZXF1aXJlZCAmJiAhZGF0YS52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHJ1bGUubWVzc2FnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGVycm9ycyA9IFtdLmNvbmNhdChydWxlLm1lc3NhZ2UpLm1hcChjb21wbGVtZW50RXJyb3IocnVsZSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmVycm9yKSB7XG4gICAgICAgICAgICAgIGVycm9ycyA9IFtvcHRpb25zLmVycm9yKHJ1bGUsIGZvcm1hdChvcHRpb25zLm1lc3NhZ2VzLnJlcXVpcmVkLCBydWxlLmZpZWxkKSldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZG9JdChlcnJvcnMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBmaWVsZHNTY2hlbWEgPSB7fTtcblxuICAgICAgICAgIGlmIChydWxlLmRlZmF1bHRGaWVsZCkge1xuICAgICAgICAgICAgZm9yICh2YXIgayBpbiBkYXRhLnZhbHVlKSB7XG4gICAgICAgICAgICAgIGlmIChkYXRhLnZhbHVlLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgICAgICAgICAgZmllbGRzU2NoZW1hW2tdID0gcnVsZS5kZWZhdWx0RmllbGQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmaWVsZHNTY2hlbWEgPSBfZXh0ZW5kcyh7fSwgZmllbGRzU2NoZW1hLCBkYXRhLnJ1bGUuZmllbGRzKTtcblxuICAgICAgICAgIGZvciAodmFyIGYgaW4gZmllbGRzU2NoZW1hKSB7XG4gICAgICAgICAgICBpZiAoZmllbGRzU2NoZW1hLmhhc093blByb3BlcnR5KGYpKSB7XG4gICAgICAgICAgICAgIHZhciBmaWVsZFNjaGVtYSA9IEFycmF5LmlzQXJyYXkoZmllbGRzU2NoZW1hW2ZdKSA/IGZpZWxkc1NjaGVtYVtmXSA6IFtmaWVsZHNTY2hlbWFbZl1dO1xuICAgICAgICAgICAgICBmaWVsZHNTY2hlbWFbZl0gPSBmaWVsZFNjaGVtYS5tYXAoYWRkRnVsbGZpZWxkLmJpbmQobnVsbCwgZikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBzY2hlbWEgPSBuZXcgU2NoZW1hKGZpZWxkc1NjaGVtYSk7XG4gICAgICAgICAgc2NoZW1hLm1lc3NhZ2VzKG9wdGlvbnMubWVzc2FnZXMpO1xuXG4gICAgICAgICAgaWYgKGRhdGEucnVsZS5vcHRpb25zKSB7XG4gICAgICAgICAgICBkYXRhLnJ1bGUub3B0aW9ucy5tZXNzYWdlcyA9IG9wdGlvbnMubWVzc2FnZXM7XG4gICAgICAgICAgICBkYXRhLnJ1bGUub3B0aW9ucy5lcnJvciA9IG9wdGlvbnMuZXJyb3I7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2NoZW1hLnZhbGlkYXRlKGRhdGEudmFsdWUsIGRhdGEucnVsZS5vcHRpb25zIHx8IG9wdGlvbnMsIGZ1bmN0aW9uIChlcnJzKSB7XG4gICAgICAgICAgICB2YXIgZmluYWxFcnJvcnMgPSBbXTtcblxuICAgICAgICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGZpbmFsRXJyb3JzLnB1c2guYXBwbHkoZmluYWxFcnJvcnMsIGVycm9ycyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChlcnJzICYmIGVycnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGZpbmFsRXJyb3JzLnB1c2guYXBwbHkoZmluYWxFcnJvcnMsIGVycnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkb0l0KGZpbmFsRXJyb3JzLmxlbmd0aCA/IGZpbmFsRXJyb3JzIDogbnVsbCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHJlcztcblxuICAgICAgaWYgKHJ1bGUuYXN5bmNWYWxpZGF0b3IpIHtcbiAgICAgICAgcmVzID0gcnVsZS5hc3luY1ZhbGlkYXRvcihydWxlLCBkYXRhLnZhbHVlLCBjYiwgZGF0YS5zb3VyY2UsIG9wdGlvbnMpO1xuICAgICAgfSBlbHNlIGlmIChydWxlLnZhbGlkYXRvcikge1xuICAgICAgICByZXMgPSBydWxlLnZhbGlkYXRvcihydWxlLCBkYXRhLnZhbHVlLCBjYiwgZGF0YS5zb3VyY2UsIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChyZXMgPT09IHRydWUpIHtcbiAgICAgICAgICBjYigpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBjYihydWxlLm1lc3NhZ2UgfHwgcnVsZS5maWVsZCArIFwiIGZhaWxzXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlcyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgY2IocmVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZXMgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGNiKHJlcy5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzICYmIHJlcy50aGVuKSB7XG4gICAgICAgIHJlcy50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY2IoKTtcbiAgICAgICAgfSwgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICByZXR1cm4gY2IoZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChyZXN1bHRzKSB7XG4gICAgICBjb21wbGV0ZShyZXN1bHRzKTtcbiAgICB9KTtcbiAgfSxcbiAgZ2V0VHlwZTogZnVuY3Rpb24gZ2V0VHlwZShydWxlKSB7XG4gICAgaWYgKHJ1bGUudHlwZSA9PT0gdW5kZWZpbmVkICYmIHJ1bGUucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcnVsZS50eXBlID0gJ3BhdHRlcm4nO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcnVsZS52YWxpZGF0b3IgIT09ICdmdW5jdGlvbicgJiYgcnVsZS50eXBlICYmICF2YWxpZGF0b3JzLmhhc093blByb3BlcnR5KHJ1bGUudHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihmb3JtYXQoJ1Vua25vd24gcnVsZSB0eXBlICVzJywgcnVsZS50eXBlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGUudHlwZSB8fCAnc3RyaW5nJztcbiAgfSxcbiAgZ2V0VmFsaWRhdGlvbk1ldGhvZDogZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbk1ldGhvZChydWxlKSB7XG4gICAgaWYgKHR5cGVvZiBydWxlLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHJ1bGUudmFsaWRhdG9yO1xuICAgIH1cblxuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMocnVsZSk7XG4gICAgdmFyIG1lc3NhZ2VJbmRleCA9IGtleXMuaW5kZXhPZignbWVzc2FnZScpO1xuXG4gICAgaWYgKG1lc3NhZ2VJbmRleCAhPT0gLTEpIHtcbiAgICAgIGtleXMuc3BsaWNlKG1lc3NhZ2VJbmRleCwgMSk7XG4gICAgfVxuXG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAxICYmIGtleXNbMF0gPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgIHJldHVybiB2YWxpZGF0b3JzLnJlcXVpcmVkO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JzW3RoaXMuZ2V0VHlwZShydWxlKV0gfHwgZmFsc2U7XG4gIH1cbn07XG5cblNjaGVtYS5yZWdpc3RlciA9IGZ1bmN0aW9uIHJlZ2lzdGVyKHR5cGUsIHZhbGlkYXRvcikge1xuICBpZiAodHlwZW9mIHZhbGlkYXRvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZ2lzdGVyIGEgdmFsaWRhdG9yIGJ5IHR5cGUsIHZhbGlkYXRvciBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgdmFsaWRhdG9yc1t0eXBlXSA9IHZhbGlkYXRvcjtcbn07XG5cblNjaGVtYS53YXJuaW5nID0gd2FybmluZztcblNjaGVtYS5tZXNzYWdlcyA9IG1lc3NhZ2VzO1xuU2NoZW1hLnZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzO1xuXG5leHBvcnQgZGVmYXVsdCBTY2hlbWE7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXBcbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIG1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7XG4gICAgICByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgICB9O1xuXG4gICAgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIF90eXBlb2Yob2JqKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfdHlwZW9mO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZShcInJlYWN0LWxpZmVjeWNsZXMtY29tcGF0XCIpO1xuXG52YXIgX3JjVG9vbHRpcCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJjLXRvb2x0aXBcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9wbGFjZW1lbnRzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9wbGFjZW1lbnRzXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbnZhciBzcGxpdE9iamVjdCA9IGZ1bmN0aW9uIHNwbGl0T2JqZWN0KG9iaiwga2V5cykge1xuICB2YXIgcGlja2VkID0ge307XG5cbiAgdmFyIG9taXR0ZWQgPSBfZXh0ZW5kcyh7fSwgb2JqKTtcblxuICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChvYmogJiYga2V5IGluIG9iaikge1xuICAgICAgcGlja2VkW2tleV0gPSBvYmpba2V5XTtcbiAgICAgIGRlbGV0ZSBvbWl0dGVkW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBwaWNrZWQ6IHBpY2tlZCxcbiAgICBvbWl0dGVkOiBvbWl0dGVkXG4gIH07XG59OyAvLyBGaXggVG9vbHRpcCB3b24ndCBoaWRlIGF0IGRpc2FibGVkIGJ1dHRvblxuLy8gbW91c2UgZXZlbnRzIGRvbid0IHRyaWdnZXIgYXQgZGlzYWJsZWQgYnV0dG9uIGluIENocm9tZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0LWNvbXBvbmVudC90b29sdGlwL2lzc3Vlcy8xOFxuXG5cbmZ1bmN0aW9uIGdldERpc2FibGVkQ29tcGF0aWJsZUNoaWxkcmVuKGVsZW1lbnQpIHtcbiAgdmFyIGVsZW1lbnRUeXBlID0gZWxlbWVudC50eXBlO1xuXG4gIGlmICgoZWxlbWVudFR5cGUuX19BTlRfQlVUVE9OID09PSB0cnVlIHx8IGVsZW1lbnRUeXBlLl9fQU5UX1NXSVRDSCA9PT0gdHJ1ZSB8fCBlbGVtZW50VHlwZS5fX0FOVF9DSEVDS0JPWCA9PT0gdHJ1ZSB8fCBlbGVtZW50LnR5cGUgPT09ICdidXR0b24nKSAmJiBlbGVtZW50LnByb3BzLmRpc2FibGVkKSB7XG4gICAgLy8gUGljayBzb21lIGxheW91dCByZWxhdGVkIHN0eWxlIHByb3BlcnRpZXMgdXAgdG8gc3BhblxuICAgIC8vIFByZXZlbnQgbGF5b3V0IGJ1Z3MgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy81MjU0XG4gICAgdmFyIF9zcGxpdE9iamVjdCA9IHNwbGl0T2JqZWN0KGVsZW1lbnQucHJvcHMuc3R5bGUsIFsncG9zaXRpb24nLCAnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJywgJ2Zsb2F0JywgJ2Rpc3BsYXknLCAnekluZGV4J10pLFxuICAgICAgICBwaWNrZWQgPSBfc3BsaXRPYmplY3QucGlja2VkLFxuICAgICAgICBvbWl0dGVkID0gX3NwbGl0T2JqZWN0Lm9taXR0ZWQ7XG5cbiAgICB2YXIgc3BhblN0eWxlID0gX2V4dGVuZHMoX2V4dGVuZHMoe1xuICAgICAgZGlzcGxheTogJ2lubGluZS1ibG9jaydcbiAgICB9LCBwaWNrZWQpLCB7XG4gICAgICBjdXJzb3I6ICdub3QtYWxsb3dlZCcsXG4gICAgICB3aWR0aDogZWxlbWVudC5wcm9wcy5ibG9jayA/ICcxMDAlJyA6IG51bGxcbiAgICB9KTtcblxuICAgIHZhciBidXR0b25TdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKHt9LCBvbWl0dGVkKSwge1xuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnXG4gICAgfSk7XG5cbiAgICB2YXIgY2hpbGQgPSAvKiNfX1BVUkVfXyovUmVhY3QuY2xvbmVFbGVtZW50KGVsZW1lbnQsIHtcbiAgICAgIHN0eWxlOiBidXR0b25TdHlsZSxcbiAgICAgIGNsYXNzTmFtZTogbnVsbFxuICAgIH0pO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgc3R5bGU6IHNwYW5TdHlsZSxcbiAgICAgIGNsYXNzTmFtZTogZWxlbWVudC5wcm9wcy5jbGFzc05hbWVcbiAgICB9LCBjaGlsZCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cblxudmFyIFRvb2x0aXAgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRvb2x0aXAsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVG9vbHRpcCk7XG5cbiAgZnVuY3Rpb24gVG9vbHRpcChwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUb29sdGlwKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMub25WaXNpYmxlQ2hhbmdlID0gZnVuY3Rpb24gKHZpc2libGUpIHtcbiAgICAgIHZhciBvblZpc2libGVDaGFuZ2UgPSBfdGhpcy5wcm9wcy5vblZpc2libGVDaGFuZ2U7XG5cbiAgICAgIGlmICghKCd2aXNpYmxlJyBpbiBfdGhpcy5wcm9wcykpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHZpc2libGU6IF90aGlzLmlzTm9UaXRsZSgpID8gZmFsc2UgOiB2aXNpYmxlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAob25WaXNpYmxlQ2hhbmdlICYmICFfdGhpcy5pc05vVGl0bGUoKSkge1xuICAgICAgICBvblZpc2libGVDaGFuZ2UodmlzaWJsZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnNhdmVUb29sdGlwID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLnRvb2x0aXAgPSBub2RlO1xuICAgIH07IC8vIOWKqOaAgeiuvue9ruWKqOeUu+eCuVxuXG5cbiAgICBfdGhpcy5vblBvcHVwQWxpZ24gPSBmdW5jdGlvbiAoZG9tTm9kZSwgYWxpZ24pIHtcbiAgICAgIHZhciBwbGFjZW1lbnRzID0gX3RoaXMuZ2V0UGxhY2VtZW50cygpOyAvLyDlvZPliY3ov5Tlm57nmoTkvY3nva5cblxuXG4gICAgICB2YXIgcGxhY2VtZW50ID0gT2JqZWN0LmtleXMocGxhY2VtZW50cykuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmV0dXJuIHBsYWNlbWVudHNba2V5XS5wb2ludHNbMF0gPT09IGFsaWduLnBvaW50c1swXSAmJiBwbGFjZW1lbnRzW2tleV0ucG9pbnRzWzFdID09PSBhbGlnbi5wb2ludHNbMV07XG4gICAgICB9KVswXTtcblxuICAgICAgaWYgKCFwbGFjZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyDmoLnmja7lvZPliY3lnZDmoIforr7nva7liqjnlLvngrlcblxuXG4gICAgICB2YXIgcmVjdCA9IGRvbU5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB2YXIgdHJhbnNmb3JtT3JpZ2luID0ge1xuICAgICAgICB0b3A6ICc1MCUnLFxuICAgICAgICBsZWZ0OiAnNTAlJ1xuICAgICAgfTtcblxuICAgICAgaWYgKHBsYWNlbWVudC5pbmRleE9mKCd0b3AnKSA+PSAwIHx8IHBsYWNlbWVudC5pbmRleE9mKCdCb3R0b20nKSA+PSAwKSB7XG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbi50b3AgPSBcIlwiLmNvbmNhdChyZWN0LmhlaWdodCAtIGFsaWduLm9mZnNldFsxXSwgXCJweFwiKTtcbiAgICAgIH0gZWxzZSBpZiAocGxhY2VtZW50LmluZGV4T2YoJ1RvcCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ2JvdHRvbScpID49IDApIHtcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luLnRvcCA9IFwiXCIuY29uY2F0KC1hbGlnbi5vZmZzZXRbMV0sIFwicHhcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChwbGFjZW1lbnQuaW5kZXhPZignbGVmdCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ1JpZ2h0JykgPj0gMCkge1xuICAgICAgICB0cmFuc2Zvcm1PcmlnaW4ubGVmdCA9IFwiXCIuY29uY2F0KHJlY3Qud2lkdGggLSBhbGlnbi5vZmZzZXRbMF0sIFwicHhcIik7XG4gICAgICB9IGVsc2UgaWYgKHBsYWNlbWVudC5pbmRleE9mKCdyaWdodCcpID49IDAgfHwgcGxhY2VtZW50LmluZGV4T2YoJ0xlZnQnKSA+PSAwKSB7XG4gICAgICAgIHRyYW5zZm9ybU9yaWdpbi5sZWZ0ID0gXCJcIi5jb25jYXQoLWFsaWduLm9mZnNldFswXSwgXCJweFwiKTtcbiAgICAgIH1cblxuICAgICAgZG9tTm9kZS5zdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBcIlwiLmNvbmNhdCh0cmFuc2Zvcm1PcmlnaW4ubGVmdCwgXCIgXCIpLmNvbmNhdCh0cmFuc2Zvcm1PcmlnaW4udG9wKTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyVG9vbHRpcCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgZ2V0Q29udGV4dFBvcHVwQ29udGFpbmVyID0gX3JlZi5nZXRQb3B1cENvbnRhaW5lcixcbiAgICAgICAgICBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIHByb3BzID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnByb3BzLFxuICAgICAgICAgIHN0YXRlID0gX2Fzc2VydFRoaXNJbml0aWFsaXplLnN0YXRlO1xuXG4gICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzLFxuICAgICAgICAgIG9wZW5DbGFzc05hbWUgPSBwcm9wcy5vcGVuQ2xhc3NOYW1lLFxuICAgICAgICAgIGdldFBvcHVwQ29udGFpbmVyID0gcHJvcHMuZ2V0UG9wdXBDb250YWluZXIsXG4gICAgICAgICAgZ2V0VG9vbHRpcENvbnRhaW5lciA9IHByb3BzLmdldFRvb2x0aXBDb250YWluZXI7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ3Rvb2x0aXAnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIHZpc2libGUgPSBzdGF0ZS52aXNpYmxlOyAvLyBIaWRlIHRvb2x0aXAgd2hlbiB0aGVyZSBpcyBubyB0aXRsZVxuXG4gICAgICBpZiAoISgndmlzaWJsZScgaW4gcHJvcHMpICYmIF90aGlzLmlzTm9UaXRsZSgpKSB7XG4gICAgICAgIHZpc2libGUgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGNoaWxkID0gZ2V0RGlzYWJsZWRDb21wYXRpYmxlQ2hpbGRyZW4oIC8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikgPyBjaGlsZHJlbiA6IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCBudWxsLCBjaGlsZHJlbikpO1xuICAgICAgdmFyIGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgIHZhciBjaGlsZENscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGNoaWxkUHJvcHMuY2xhc3NOYW1lLCBfZGVmaW5lUHJvcGVydHkoe30sIG9wZW5DbGFzc05hbWUgfHwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1vcGVuXCIpLCB0cnVlKSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX3JjVG9vbHRpcFtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgZ2V0VG9vbHRpcENvbnRhaW5lcjogZ2V0UG9wdXBDb250YWluZXIgfHwgZ2V0VG9vbHRpcENvbnRhaW5lciB8fCBnZXRDb250ZXh0UG9wdXBDb250YWluZXIsXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZVRvb2x0aXAsXG4gICAgICAgIGJ1aWx0aW5QbGFjZW1lbnRzOiBfdGhpcy5nZXRQbGFjZW1lbnRzKCksXG4gICAgICAgIG92ZXJsYXk6IF90aGlzLmdldE92ZXJsYXkoKSxcbiAgICAgICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgb25WaXNpYmxlQ2hhbmdlOiBfdGhpcy5vblZpc2libGVDaGFuZ2UsXG4gICAgICAgIG9uUG9wdXBBbGlnbjogX3RoaXMub25Qb3B1cEFsaWduXG4gICAgICB9KSwgdmlzaWJsZSA/IC8qI19fUFVSRV9fKi9SZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjaGlsZENsc1xuICAgICAgfSkgOiBjaGlsZCk7XG4gICAgfTtcblxuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgdmlzaWJsZTogISFwcm9wcy52aXNpYmxlIHx8ICEhcHJvcHMuZGVmYXVsdFZpc2libGVcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUb29sdGlwLCBbe1xuICAgIGtleTogXCJnZXRQb3B1cERvbU5vZGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0UG9wdXBEb21Ob2RlKCkge1xuICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcC5nZXRQb3B1cERvbU5vZGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiZ2V0UGxhY2VtZW50c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRQbGFjZW1lbnRzKCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBidWlsdGluUGxhY2VtZW50cyA9IF90aGlzJHByb3BzLmJ1aWx0aW5QbGFjZW1lbnRzLFxuICAgICAgICAgIGFycm93UG9pbnRBdENlbnRlciA9IF90aGlzJHByb3BzLmFycm93UG9pbnRBdENlbnRlcixcbiAgICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3cgPSBfdGhpcyRwcm9wcy5hdXRvQWRqdXN0T3ZlcmZsb3c7XG4gICAgICByZXR1cm4gYnVpbHRpblBsYWNlbWVudHMgfHwgKDAsIF9wbGFjZW1lbnRzW1wiZGVmYXVsdFwiXSkoe1xuICAgICAgICBhcnJvd1BvaW50QXRDZW50ZXI6IGFycm93UG9pbnRBdENlbnRlcixcbiAgICAgICAgdmVydGljYWxBcnJvd1NoaWZ0OiA4LFxuICAgICAgICBhdXRvQWRqdXN0T3ZlcmZsb3c6IGF1dG9BZGp1c3RPdmVyZmxvd1xuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzTm9UaXRsZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc05vVGl0bGUoKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHMyID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICB0aXRsZSA9IF90aGlzJHByb3BzMi50aXRsZSxcbiAgICAgICAgICBvdmVybGF5ID0gX3RoaXMkcHJvcHMyLm92ZXJsYXk7XG4gICAgICByZXR1cm4gIXRpdGxlICYmICFvdmVybGF5ICYmIHRpdGxlICE9PSAwOyAvLyBvdmVybGF5IGZvciBvbGQgdmVyc2lvbiBjb21wYXRpYmlsaXR5XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImdldE92ZXJsYXlcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0T3ZlcmxheSgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRpdGxlID0gX3RoaXMkcHJvcHMzLnRpdGxlLFxuICAgICAgICAgIG92ZXJsYXkgPSBfdGhpcyRwcm9wczMub3ZlcmxheTtcblxuICAgICAgaWYgKHRpdGxlID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0aXRsZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG92ZXJsYXkgfHwgdGl0bGUgfHwgJyc7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlclRvb2x0aXApO1xuICAgIH1cbiAgfV0sIFt7XG4gICAga2V5OiBcImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICBpZiAoJ3Zpc2libGUnIGluIG5leHRQcm9wcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZpc2libGU6IG5leHRQcm9wcy52aXNpYmxlXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUb29sdGlwO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5Ub29sdGlwLmRlZmF1bHRQcm9wcyA9IHtcbiAgcGxhY2VtZW50OiAndG9wJyxcbiAgdHJhbnNpdGlvbk5hbWU6ICd6b29tLWJpZy1mYXN0JyxcbiAgbW91c2VFbnRlckRlbGF5OiAwLjEsXG4gIG1vdXNlTGVhdmVEZWxheTogMC4xLFxuICBhcnJvd1BvaW50QXRDZW50ZXI6IGZhbHNlLFxuICBhdXRvQWRqdXN0T3ZlcmZsb3c6IHRydWVcbn07XG4oMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVG9vbHRpcCk7XG52YXIgX2RlZmF1bHQgPSBUb29sdGlwO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJmdW5jdGlvbiBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIGtleSwgYXJnKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpO1xuICAgIHZhciB2YWx1ZSA9IGluZm8udmFsdWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVqZWN0KGVycm9yKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaW5mby5kb25lKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9hc3luY1RvR2VuZXJhdG9yKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzLFxuICAgICAgICBhcmdzID0gYXJndW1lbnRzO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG5cbiAgICAgIGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gX3Rocm93KGVycikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoZ2VuLCByZXNvbHZlLCByZWplY3QsIF9uZXh0LCBfdGhyb3csIFwidGhyb3dcIiwgZXJyKTtcbiAgICAgIH1cblxuICAgICAgX25leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXN5bmNUb0dlbmVyYXRvcjtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCIndXNlIHN0cmljdCc7XG52YXIgc3RyaWN0VXJpRW5jb2RlID0gcmVxdWlyZSgnc3RyaWN0LXVyaS1lbmNvZGUnKTtcbnZhciBvYmplY3RBc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG52YXIgZGVjb2RlQ29tcG9uZW50ID0gcmVxdWlyZSgnZGVjb2RlLXVyaS1jb21wb25lbnQnKTtcblxuZnVuY3Rpb24gZW5jb2RlckZvckFycmF5Rm9ybWF0KG9wdHMpIHtcblx0c3dpdGNoIChvcHRzLmFycmF5Rm9ybWF0KSB7XG5cdFx0Y2FzZSAnaW5kZXgnOlxuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uIChrZXksIHZhbHVlLCBpbmRleCkge1xuXHRcdFx0XHRyZXR1cm4gdmFsdWUgPT09IG51bGwgPyBbXG5cdFx0XHRcdFx0ZW5jb2RlKGtleSwgb3B0cyksXG5cdFx0XHRcdFx0J1snLFxuXHRcdFx0XHRcdGluZGV4LFxuXHRcdFx0XHRcdCddJ1xuXHRcdFx0XHRdLmpvaW4oJycpIDogW1xuXHRcdFx0XHRcdGVuY29kZShrZXksIG9wdHMpLFxuXHRcdFx0XHRcdCdbJyxcblx0XHRcdFx0XHRlbmNvZGUoaW5kZXgsIG9wdHMpLFxuXHRcdFx0XHRcdCddPScsXG5cdFx0XHRcdFx0ZW5jb2RlKHZhbHVlLCBvcHRzKVxuXHRcdFx0XHRdLmpvaW4oJycpO1xuXHRcdFx0fTtcblxuXHRcdGNhc2UgJ2JyYWNrZXQnOlxuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/IGVuY29kZShrZXksIG9wdHMpIDogW1xuXHRcdFx0XHRcdGVuY29kZShrZXksIG9wdHMpLFxuXHRcdFx0XHRcdCdbXT0nLFxuXHRcdFx0XHRcdGVuY29kZSh2YWx1ZSwgb3B0cylcblx0XHRcdFx0XS5qb2luKCcnKTtcblx0XHRcdH07XG5cblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/IGVuY29kZShrZXksIG9wdHMpIDogW1xuXHRcdFx0XHRcdGVuY29kZShrZXksIG9wdHMpLFxuXHRcdFx0XHRcdCc9Jyxcblx0XHRcdFx0XHRlbmNvZGUodmFsdWUsIG9wdHMpXG5cdFx0XHRcdF0uam9pbignJyk7XG5cdFx0XHR9O1xuXHR9XG59XG5cbmZ1bmN0aW9uIHBhcnNlckZvckFycmF5Rm9ybWF0KG9wdHMpIHtcblx0dmFyIHJlc3VsdDtcblxuXHRzd2l0Y2ggKG9wdHMuYXJyYXlGb3JtYXQpIHtcblx0XHRjYXNlICdpbmRleCc6XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUsIGFjY3VtdWxhdG9yKSB7XG5cdFx0XHRcdHJlc3VsdCA9IC9cXFsoXFxkKilcXF0kLy5leGVjKGtleSk7XG5cblx0XHRcdFx0a2V5ID0ga2V5LnJlcGxhY2UoL1xcW1xcZCpcXF0kLywgJycpO1xuXG5cdFx0XHRcdGlmICghcmVzdWx0KSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IHZhbHVlO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChhY2N1bXVsYXRvcltrZXldID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0ge307XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldW3Jlc3VsdFsxXV0gPSB2YWx1ZTtcblx0XHRcdH07XG5cblx0XHRjYXNlICdicmFja2V0Jzpcblx0XHRcdHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpIHtcblx0XHRcdFx0cmVzdWx0ID0gLyhcXFtcXF0pJC8uZXhlYyhrZXkpO1xuXHRcdFx0XHRrZXkgPSBrZXkucmVwbGFjZSgvXFxbXFxdJC8sICcnKTtcblxuXHRcdFx0XHRpZiAoIXJlc3VsdCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH0gZWxzZSBpZiAoYWNjdW11bGF0b3Jba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFt2YWx1ZV07XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YWNjdW11bGF0b3Jba2V5XSA9IFtdLmNvbmNhdChhY2N1bXVsYXRvcltrZXldLCB2YWx1ZSk7XG5cdFx0XHR9O1xuXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgYWNjdW11bGF0b3IpIHtcblx0XHRcdFx0aWYgKGFjY3VtdWxhdG9yW2tleV0gPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGFjY3VtdWxhdG9yW2tleV0gPSB2YWx1ZTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhY2N1bXVsYXRvcltrZXldID0gW10uY29uY2F0KGFjY3VtdWxhdG9yW2tleV0sIHZhbHVlKTtcblx0XHRcdH07XG5cdH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlKHZhbHVlLCBvcHRzKSB7XG5cdGlmIChvcHRzLmVuY29kZSkge1xuXHRcdHJldHVybiBvcHRzLnN0cmljdCA/IHN0cmljdFVyaUVuY29kZSh2YWx1ZSkgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuXHR9XG5cblx0cmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBrZXlzU29ydGVyKGlucHV0KSB7XG5cdGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuXHRcdHJldHVybiBpbnB1dC5zb3J0KCk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0Jykge1xuXHRcdHJldHVybiBrZXlzU29ydGVyKE9iamVjdC5rZXlzKGlucHV0KSkuc29ydChmdW5jdGlvbiAoYSwgYikge1xuXHRcdFx0cmV0dXJuIE51bWJlcihhKSAtIE51bWJlcihiKTtcblx0XHR9KS5tYXAoZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0cmV0dXJuIGlucHV0W2tleV07XG5cdFx0fSk7XG5cdH1cblxuXHRyZXR1cm4gaW5wdXQ7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3Qoc3RyKSB7XG5cdHZhciBxdWVyeVN0YXJ0ID0gc3RyLmluZGV4T2YoJz8nKTtcblx0aWYgKHF1ZXJ5U3RhcnQgPT09IC0xKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cdHJldHVybiBzdHIuc2xpY2UocXVlcnlTdGFydCArIDEpO1xufVxuXG5mdW5jdGlvbiBwYXJzZShzdHIsIG9wdHMpIHtcblx0b3B0cyA9IG9iamVjdEFzc2lnbih7YXJyYXlGb3JtYXQ6ICdub25lJ30sIG9wdHMpO1xuXG5cdHZhciBmb3JtYXR0ZXIgPSBwYXJzZXJGb3JBcnJheUZvcm1hdChvcHRzKTtcblxuXHQvLyBDcmVhdGUgYW4gb2JqZWN0IHdpdGggbm8gcHJvdG90eXBlXG5cdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvcXVlcnktc3RyaW5nL2lzc3Vlcy80N1xuXHR2YXIgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuXHRpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0c3RyID0gc3RyLnRyaW0oKS5yZXBsYWNlKC9eWz8jJl0vLCAnJyk7XG5cblx0aWYgKCFzdHIpIHtcblx0XHRyZXR1cm4gcmV0O1xuXHR9XG5cblx0c3RyLnNwbGl0KCcmJykuZm9yRWFjaChmdW5jdGlvbiAocGFyYW0pIHtcblx0XHR2YXIgcGFydHMgPSBwYXJhbS5yZXBsYWNlKC9cXCsvZywgJyAnKS5zcGxpdCgnPScpO1xuXHRcdC8vIEZpcmVmb3ggKHByZSA0MCkgZGVjb2RlcyBgJTNEYCB0byBgPWBcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3F1ZXJ5LXN0cmluZy9wdWxsLzM3XG5cdFx0dmFyIGtleSA9IHBhcnRzLnNoaWZ0KCk7XG5cdFx0dmFyIHZhbCA9IHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0cy5qb2luKCc9JykgOiB1bmRlZmluZWQ7XG5cblx0XHQvLyBtaXNzaW5nIGA9YCBzaG91bGQgYmUgYG51bGxgOlxuXHRcdC8vIGh0dHA6Ly93My5vcmcvVFIvMjAxMi9XRC11cmwtMjAxMjA1MjQvI2NvbGxlY3QtdXJsLXBhcmFtZXRlcnNcblx0XHR2YWwgPSB2YWwgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZWNvZGVDb21wb25lbnQodmFsKTtcblxuXHRcdGZvcm1hdHRlcihkZWNvZGVDb21wb25lbnQoa2V5KSwgdmFsLCByZXQpO1xuXHR9KTtcblxuXHRyZXR1cm4gT2JqZWN0LmtleXMocmV0KS5zb3J0KCkucmVkdWNlKGZ1bmN0aW9uIChyZXN1bHQsIGtleSkge1xuXHRcdHZhciB2YWwgPSByZXRba2V5XTtcblx0XHRpZiAoQm9vbGVhbih2YWwpICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbCkpIHtcblx0XHRcdC8vIFNvcnQgb2JqZWN0IGtleXMsIG5vdCB2YWx1ZXNcblx0XHRcdHJlc3VsdFtrZXldID0ga2V5c1NvcnRlcih2YWwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXN1bHRba2V5XSA9IHZhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcbn1cblxuZXhwb3J0cy5leHRyYWN0ID0gZXh0cmFjdDtcbmV4cG9ydHMucGFyc2UgPSBwYXJzZTtcblxuZXhwb3J0cy5zdHJpbmdpZnkgPSBmdW5jdGlvbiAob2JqLCBvcHRzKSB7XG5cdHZhciBkZWZhdWx0cyA9IHtcblx0XHRlbmNvZGU6IHRydWUsXG5cdFx0c3RyaWN0OiB0cnVlLFxuXHRcdGFycmF5Rm9ybWF0OiAnbm9uZSdcblx0fTtcblxuXHRvcHRzID0gb2JqZWN0QXNzaWduKGRlZmF1bHRzLCBvcHRzKTtcblxuXHRpZiAob3B0cy5zb3J0ID09PSBmYWxzZSkge1xuXHRcdG9wdHMuc29ydCA9IGZ1bmN0aW9uICgpIHt9O1xuXHR9XG5cblx0dmFyIGZvcm1hdHRlciA9IGVuY29kZXJGb3JBcnJheUZvcm1hdChvcHRzKTtcblxuXHRyZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKS5zb3J0KG9wdHMuc29ydCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcblx0XHR2YXIgdmFsID0gb2JqW2tleV07XG5cblx0XHRpZiAodmFsID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cblx0XHRpZiAodmFsID09PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gZW5jb2RlKGtleSwgb3B0cyk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuXHRcdFx0dmFyIHJlc3VsdCA9IFtdO1xuXG5cdFx0XHR2YWwuc2xpY2UoKS5mb3JFYWNoKGZ1bmN0aW9uICh2YWwyKSB7XG5cdFx0XHRcdGlmICh2YWwyID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXN1bHQucHVzaChmb3JtYXR0ZXIoa2V5LCB2YWwyLCByZXN1bHQubGVuZ3RoKSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIHJlc3VsdC5qb2luKCcmJyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVuY29kZShrZXksIG9wdHMpICsgJz0nICsgZW5jb2RlKHZhbCwgb3B0cyk7XG5cdH0pLmZpbHRlcihmdW5jdGlvbiAoeCkge1xuXHRcdHJldHVybiB4Lmxlbmd0aCA+IDA7XG5cdH0pLmpvaW4oJyYnKSA6ICcnO1xufTtcblxuZXhwb3J0cy5wYXJzZVVybCA9IGZ1bmN0aW9uIChzdHIsIG9wdHMpIHtcblx0cmV0dXJuIHtcblx0XHR1cmw6IHN0ci5zcGxpdCgnPycpWzBdIHx8ICcnLFxuXHRcdHF1ZXJ5OiBwYXJzZShleHRyYWN0KHN0ciksIG9wdHMpXG5cdH07XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX01vZGFsID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vTW9kYWxcIikpO1xuXG52YXIgX2NvbmZpcm0gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL2NvbmZpcm1cIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIG1vZGFsV2Fybihwcm9wcykge1xuICB2YXIgY29uZmlnID0gX2V4dGVuZHMoe1xuICAgIHR5cGU6ICd3YXJuaW5nJyxcbiAgICBpY29uOiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgIHR5cGU6IFwiZXhjbGFtYXRpb24tY2lyY2xlXCJcbiAgICB9KSxcbiAgICBva0NhbmNlbDogZmFsc2VcbiAgfSwgcHJvcHMpO1xuXG4gIHJldHVybiAoMCwgX2NvbmZpcm1bXCJkZWZhdWx0XCJdKShjb25maWcpO1xufVxuXG5fTW9kYWxbXCJkZWZhdWx0XCJdLmluZm8gPSBmdW5jdGlvbiBpbmZvRm4ocHJvcHMpIHtcbiAgdmFyIGNvbmZpZyA9IF9leHRlbmRzKHtcbiAgICB0eXBlOiAnaW5mbycsXG4gICAgaWNvbjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICB0eXBlOiBcImluZm8tY2lyY2xlXCJcbiAgICB9KSxcbiAgICBva0NhbmNlbDogZmFsc2VcbiAgfSwgcHJvcHMpO1xuXG4gIHJldHVybiAoMCwgX2NvbmZpcm1bXCJkZWZhdWx0XCJdKShjb25maWcpO1xufTtcblxuX01vZGFsW1wiZGVmYXVsdFwiXS5zdWNjZXNzID0gZnVuY3Rpb24gc3VjY2Vzc0ZuKHByb3BzKSB7XG4gIHZhciBjb25maWcgPSBfZXh0ZW5kcyh7XG4gICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgIGljb246IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9pY29uW1wiZGVmYXVsdFwiXSwge1xuICAgICAgdHlwZTogXCJjaGVjay1jaXJjbGVcIlxuICAgIH0pLFxuICAgIG9rQ2FuY2VsOiBmYWxzZVxuICB9LCBwcm9wcyk7XG5cbiAgcmV0dXJuICgwLCBfY29uZmlybVtcImRlZmF1bHRcIl0pKGNvbmZpZyk7XG59O1xuXG5fTW9kYWxbXCJkZWZhdWx0XCJdLmVycm9yID0gZnVuY3Rpb24gZXJyb3JGbihwcm9wcykge1xuICB2YXIgY29uZmlnID0gX2V4dGVuZHMoe1xuICAgIHR5cGU6ICdlcnJvcicsXG4gICAgaWNvbjogLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICB0eXBlOiBcImNsb3NlLWNpcmNsZVwiXG4gICAgfSksXG4gICAgb2tDYW5jZWw6IGZhbHNlXG4gIH0sIHByb3BzKTtcblxuICByZXR1cm4gKDAsIF9jb25maXJtW1wiZGVmYXVsdFwiXSkoY29uZmlnKTtcbn07XG5cbl9Nb2RhbFtcImRlZmF1bHRcIl0ud2FybmluZyA9IG1vZGFsV2Fybjtcbl9Nb2RhbFtcImRlZmF1bHRcIl0ud2FybiA9IG1vZGFsV2FybjtcblxuX01vZGFsW1wiZGVmYXVsdFwiXS5jb25maXJtID0gZnVuY3Rpb24gY29uZmlybUZuKHByb3BzKSB7XG4gIHZhciBjb25maWcgPSBfZXh0ZW5kcyh7XG4gICAgdHlwZTogJ2NvbmZpcm0nLFxuICAgIG9rQ2FuY2VsOiB0cnVlXG4gIH0sIHByb3BzKTtcblxuICByZXR1cm4gKDAsIF9jb25maXJtW1wiZGVmYXVsdFwiXSkoY29uZmlnKTtcbn07XG5cbl9Nb2RhbFtcImRlZmF1bHRcIl0uZGVzdHJveUFsbCA9IGZ1bmN0aW9uIGRlc3Ryb3lBbGxGbigpIHtcbiAgd2hpbGUgKF9Nb2RhbC5kZXN0cm95Rm5zLmxlbmd0aCkge1xuICAgIHZhciBjbG9zZSA9IF9Nb2RhbC5kZXN0cm95Rm5zLnBvcCgpO1xuXG4gICAgaWYgKGNsb3NlKSB7XG4gICAgICBjbG9zZSgpO1xuICAgIH1cbiAgfVxufTtcblxudmFyIF9kZWZhdWx0ID0gX01vZGFsW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIFByb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfb21pdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIm9taXQuanNcIikpO1xuXG52YXIgX2RlYm91bmNlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwibG9kYXNoL2RlYm91bmNlXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfdHlwZSA9IHJlcXVpcmUoXCIuLi9fdXRpbC90eXBlXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfZXh0ZW5kcygpIHsgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9OyByZXR1cm4gX2V4dGVuZHMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7IGlmIChrZXkgaW4gb2JqKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgeyB2YWx1ZTogdmFsdWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7IH0gZWxzZSB7IG9ialtrZXldID0gdmFsdWU7IH0gcmV0dXJuIG9iajsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgX19yZXN0ID0gdm9pZCAwICYmICh2b2lkIDApLl9fcmVzdCB8fCBmdW5jdGlvbiAocywgZSkge1xuICB2YXIgdCA9IHt9O1xuXG4gIGZvciAodmFyIHAgaW4gcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMCkgdFtwXSA9IHNbcF07XG4gIH1cblxuICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpIHRbcFtpXV0gPSBzW3BbaV1dO1xuICB9XG4gIHJldHVybiB0O1xufTtcblxudmFyIFNwaW5TaXplcyA9ICgwLCBfdHlwZS50dXBsZSkoJ3NtYWxsJywgJ2RlZmF1bHQnLCAnbGFyZ2UnKTsgLy8gUmVuZGVyIGluZGljYXRvclxuXG52YXIgZGVmYXVsdEluZGljYXRvciA9IG51bGw7XG5cbmZ1bmN0aW9uIHJlbmRlckluZGljYXRvcihwcmVmaXhDbHMsIHByb3BzKSB7XG4gIHZhciBpbmRpY2F0b3IgPSBwcm9wcy5pbmRpY2F0b3I7XG4gIHZhciBkb3RDbGFzc05hbWUgPSBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRvdFwiKTsgLy8gc2hvdWxkIG5vdCBiZSByZW5kZXIgZGVmYXVsdCBpbmRpY2F0b3Igd2hlbiBpbmRpY2F0b3IgdmFsdWUgaXMgbnVsbFxuXG4gIGlmIChpbmRpY2F0b3IgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICggLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGluZGljYXRvcikpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChpbmRpY2F0b3IsIHtcbiAgICAgIGNsYXNzTmFtZTogKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoaW5kaWNhdG9yLnByb3BzLmNsYXNzTmFtZSwgZG90Q2xhc3NOYW1lKVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKCAvKiNfX1BVUkVfXyovUmVhY3QuaXNWYWxpZEVsZW1lbnQoZGVmYXVsdEluZGljYXRvcikpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChkZWZhdWx0SW5kaWNhdG9yLCB7XG4gICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGRlZmF1bHRJbmRpY2F0b3IucHJvcHMuY2xhc3NOYW1lLCBkb3RDbGFzc05hbWUpXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKGRvdENsYXNzTmFtZSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kb3Qtc3BpblwiKSlcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZG90LWl0ZW1cIilcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiaVwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRvdC1pdGVtXCIpXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImlcIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1kb3QtaXRlbVwiKVxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpXCIsIHtcbiAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZG90LWl0ZW1cIilcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiBzaG91bGREZWxheShzcGlubmluZywgZGVsYXkpIHtcbiAgcmV0dXJuICEhc3Bpbm5pbmcgJiYgISFkZWxheSAmJiAhaXNOYU4oTnVtYmVyKGRlbGF5KSk7XG59XG5cbnZhciBTcGluID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTcGluLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFNwaW4pO1xuXG4gIGZ1bmN0aW9uIFNwaW4ocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU3Bpbik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcblxuICAgIF90aGlzLmRlYm91bmNpZnlVcGRhdGVTcGlubmluZyA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgICAgdmFyIF9yZWYgPSBwcm9wcyB8fCBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBkZWxheSA9IF9yZWYuZGVsYXk7XG5cbiAgICAgIGlmIChkZWxheSkge1xuICAgICAgICBfdGhpcy5jYW5jZWxFeGlzdGluZ1NwaW4oKTtcblxuICAgICAgICBfdGhpcy51cGRhdGVTcGlubmluZyA9ICgwLCBfZGVib3VuY2VbXCJkZWZhdWx0XCJdKShfdGhpcy5vcmlnaW5hbFVwZGF0ZVNwaW5uaW5nLCBkZWxheSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnVwZGF0ZVNwaW5uaW5nID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHNwaW5uaW5nID0gX3RoaXMucHJvcHMuc3Bpbm5pbmc7XG4gICAgICB2YXIgY3VycmVudFNwaW5uaW5nID0gX3RoaXMuc3RhdGUuc3Bpbm5pbmc7XG5cbiAgICAgIGlmIChjdXJyZW50U3Bpbm5pbmcgIT09IHNwaW5uaW5nKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzcGlubmluZzogc3Bpbm5pbmdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlclNwaW4gPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYyLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSxcbiAgICAgICAgICBzaXplID0gX2Euc2l6ZSxcbiAgICAgICAgICB0aXAgPSBfYS50aXAsXG4gICAgICAgICAgd3JhcHBlckNsYXNzTmFtZSA9IF9hLndyYXBwZXJDbGFzc05hbWUsXG4gICAgICAgICAgc3R5bGUgPSBfYS5zdHlsZSxcbiAgICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QoX2EsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcInNpemVcIiwgXCJ0aXBcIiwgXCJ3cmFwcGVyQ2xhc3NOYW1lXCIsIFwic3R5bGVcIl0pO1xuXG4gICAgICB2YXIgc3Bpbm5pbmcgPSBfdGhpcy5zdGF0ZS5zcGlubmluZztcbiAgICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ3NwaW4nLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIHNwaW5DbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc21cIiksIHNpemUgPT09ICdzbWFsbCcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItbGdcIiksIHNpemUgPT09ICdsYXJnZScpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItc3Bpbm5pbmdcIiksIHNwaW5uaW5nKSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLXNob3ctdGV4dFwiKSwgISF0aXApLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZSk7IC8vIGZpeCBodHRwczovL2ZiLm1lL3JlYWN0LXVua25vd24tcHJvcFxuXG4gICAgICB2YXIgZGl2UHJvcHMgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShyZXN0UHJvcHMsIFsnc3Bpbm5pbmcnLCAnZGVsYXknLCAnaW5kaWNhdG9yJ10pO1xuICAgICAgdmFyIHNwaW5FbGVtZW50ID0gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIGRpdlByb3BzLCB7XG4gICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgY2xhc3NOYW1lOiBzcGluQ2xhc3NOYW1lXG4gICAgICB9KSwgcmVuZGVySW5kaWNhdG9yKHByZWZpeENscywgX3RoaXMucHJvcHMpLCB0aXAgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi10ZXh0XCIpXG4gICAgICB9LCB0aXApIDogbnVsbCk7XG5cbiAgICAgIGlmIChfdGhpcy5pc05lc3RlZFBhdHRlcm4oKSkge1xuICAgICAgICB2YXIgY29udGFpbmVyQ2xhc3NOYW1lID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkoXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb250YWluZXJcIiksIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1ibHVyXCIpLCBzcGlubmluZykpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIGRpdlByb3BzLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5lc3RlZC1sb2FkaW5nXCIpLCB3cmFwcGVyQ2xhc3NOYW1lKVxuICAgICAgICB9KSwgc3Bpbm5pbmcgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGtleTogXCJsb2FkaW5nXCJcbiAgICAgICAgfSwgc3BpbkVsZW1lbnQpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjb250YWluZXJDbGFzc05hbWUsXG4gICAgICAgICAga2V5OiBcImNvbnRhaW5lclwiXG4gICAgICAgIH0sIF90aGlzLnByb3BzLmNoaWxkcmVuKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzcGluRWxlbWVudDtcbiAgICB9O1xuXG4gICAgdmFyIHNwaW5uaW5nID0gcHJvcHMuc3Bpbm5pbmcsXG4gICAgICAgIGRlbGF5ID0gcHJvcHMuZGVsYXk7XG4gICAgdmFyIHNob3VsZEJlRGVsYXllZCA9IHNob3VsZERlbGF5KHNwaW5uaW5nLCBkZWxheSk7XG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBzcGlubmluZzogc3Bpbm5pbmcgJiYgIXNob3VsZEJlRGVsYXllZFxuICAgIH07XG4gICAgX3RoaXMub3JpZ2luYWxVcGRhdGVTcGlubmluZyA9IF90aGlzLnVwZGF0ZVNwaW5uaW5nO1xuXG4gICAgX3RoaXMuZGVib3VuY2lmeVVwZGF0ZVNwaW5uaW5nKHByb3BzKTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhTcGluLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMudXBkYXRlU3Bpbm5pbmcoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIHRoaXMuZGVib3VuY2lmeVVwZGF0ZVNwaW5uaW5nKCk7XG4gICAgICB0aGlzLnVwZGF0ZVNwaW5uaW5nKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdGhpcy5jYW5jZWxFeGlzdGluZ1NwaW4oKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY2FuY2VsRXhpc3RpbmdTcGluXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNhbmNlbEV4aXN0aW5nU3BpbigpIHtcbiAgICAgIHZhciB1cGRhdGVTcGlubmluZyA9IHRoaXMudXBkYXRlU3Bpbm5pbmc7XG5cbiAgICAgIGlmICh1cGRhdGVTcGlubmluZyAmJiB1cGRhdGVTcGlubmluZy5jYW5jZWwpIHtcbiAgICAgICAgdXBkYXRlU3Bpbm5pbmcuY2FuY2VsKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImlzTmVzdGVkUGF0dGVyblwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc05lc3RlZFBhdHRlcm4oKSB7XG4gICAgICByZXR1cm4gISEodGhpcy5wcm9wcyAmJiB0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIHRoaXMucmVuZGVyU3Bpbik7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwic2V0RGVmYXVsdEluZGljYXRvclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXREZWZhdWx0SW5kaWNhdG9yKGluZGljYXRvcikge1xuICAgICAgZGVmYXVsdEluZGljYXRvciA9IGluZGljYXRvcjtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU3Bpbjtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuU3Bpbi5kZWZhdWx0UHJvcHMgPSB7XG4gIHNwaW5uaW5nOiB0cnVlLFxuICBzaXplOiAnZGVmYXVsdCcsXG4gIHdyYXBwZXJDbGFzc05hbWU6ICcnXG59O1xuU3Bpbi5wcm9wVHlwZXMgPSB7XG4gIHByZWZpeENsczogUHJvcFR5cGVzLnN0cmluZyxcbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzcGlubmluZzogUHJvcFR5cGVzLmJvb2wsXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihTcGluU2l6ZXMpLFxuICB3cmFwcGVyQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpbmRpY2F0b3I6IFByb3BUeXBlcy5lbGVtZW50XG59O1xudmFyIF9kZWZhdWx0ID0gU3BpbjtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiLy8gVGhpcyBpcyBhIGNhY2hlIG9mIGluLWZsaWdodCByZXF1ZXN0cy4gRWFjaCByZXF1ZXN0IGtleSBtYXBzIHRvIGFuXG4vLyBhcnJheSBvZiBQcm9taXNlcy4gV2hlbiB0aGUgcmVxdWVzdCByZXNvbHZlcywgZWFjaCBwcm9taXNlIGluIHRoZVxuLy8gYXJyYXkgaXMgcHVzaGVkIHRvLlxudmFyIHJlcXVlc3RzID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0S2V5KCkge1xuICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgICBfcmVmJHVybCA9IF9yZWYudXJsLFxuICAgICAgdXJsID0gX3JlZiR1cmwgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiR1cmwsXG4gICAgICBfcmVmJG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgbWV0aG9kID0gX3JlZiRtZXRob2QgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiRtZXRob2QsXG4gICAgICBfcmVmJHJlc3BvbnNlVHlwZSA9IF9yZWYucmVzcG9uc2VUeXBlLFxuICAgICAgcmVzcG9uc2VUeXBlID0gX3JlZiRyZXNwb25zZVR5cGUgPT09IHVuZGVmaW5lZCA/ICcnIDogX3JlZiRyZXNwb25zZVR5cGUsXG4gICAgICBfcmVmJGJvZHkgPSBfcmVmLmJvZHksXG4gICAgICBib2R5ID0gX3JlZiRib2R5ID09PSB1bmRlZmluZWQgPyAnJyA6IF9yZWYkYm9keTtcblxuICByZXR1cm4gW3VybCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIHJlc3BvbnNlVHlwZSwgYm9keV0uam9pbignfHwnKTtcbn1cblxuLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYSByZXF1ZXN0IHdpdGggYHJlcXVlc3RLZXlgIGlzIGluIGZsaWdodCxcbi8vIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RJbkZsaWdodChyZXF1ZXN0S2V5KSB7XG4gIHJldHVybiBCb29sZWFuKHJlcXVlc3RzW3JlcXVlc3RLZXldKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyUmVxdWVzdENhY2hlKCkge1xuICByZXF1ZXN0cyA9IHt9O1xufVxuXG4vLyBUaGlzIGxvb3BzIHRocm91Z2ggYWxsIG9mIHRoZSBoYW5kbGVycyBmb3IgdGhlIHJlcXVlc3QgYW5kIGVpdGhlclxuLy8gcmVzb2x2ZXMgb3IgcmVqZWN0cyB0aGVtLlxuZnVuY3Rpb24gcmVzb2x2ZVJlcXVlc3QoX3JlZjIpIHtcbiAgdmFyIHJlcXVlc3RLZXkgPSBfcmVmMi5yZXF1ZXN0S2V5LFxuICAgICAgcmVzID0gX3JlZjIucmVzLFxuICAgICAgZXJyID0gX3JlZjIuZXJyO1xuXG4gIHZhciBoYW5kbGVycyA9IHJlcXVlc3RzW3JlcXVlc3RLZXldIHx8IFtdO1xuXG4gIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAgICBpZiAocmVzKSB7XG4gICAgICBoYW5kbGVyLnJlc29sdmUocmVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlci5yZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRoaXMgbGlzdCBvZiBoYW5kbGVycyBoYXMgYmVlbiwgd2VsbCwgaGFuZGxlZC4gU28gd2VcbiAgLy8gY2xlYXIgdGhlIGhhbmRsZXJzIGZvciB0aGUgbmV4dCByZXF1ZXN0LlxuICByZXF1ZXN0c1tyZXF1ZXN0S2V5XSA9IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmZXRjaERlZHVwZShpbnB1dCkge1xuICB2YXIgaW5pdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBkZWR1cGVPcHRpb25zID0gYXJndW1lbnRzWzJdO1xuXG4gIHZhciBvcHRzID0gdm9pZCAwLFxuICAgICAgaW5pdFRvVXNlID0gdm9pZCAwO1xuICBpZiAoZGVkdXBlT3B0aW9ucykge1xuICAgIG9wdHMgPSBkZWR1cGVPcHRpb25zO1xuICAgIGluaXRUb1VzZSA9IGluaXQ7XG4gIH0gZWxzZSBpZiAoaW5pdC5yZXNwb25zZVR5cGUpIHtcbiAgICBvcHRzID0gaW5pdDtcbiAgICBpbml0VG9Vc2UgPSB7fTtcbiAgfSBlbHNlIHtcbiAgICBvcHRzID0ge307XG4gICAgaW5pdFRvVXNlID0gaW5pdDtcbiAgfVxuXG4gIHZhciBfb3B0cyA9IG9wdHMsXG4gICAgICByZXF1ZXN0S2V5ID0gX29wdHMucmVxdWVzdEtleSxcbiAgICAgIF9vcHRzJHJlc3BvbnNlVHlwZSA9IF9vcHRzLnJlc3BvbnNlVHlwZSxcbiAgICAgIHJlc3BvbnNlVHlwZSA9IF9vcHRzJHJlc3BvbnNlVHlwZSA9PT0gdW5kZWZpbmVkID8gJycgOiBfb3B0cyRyZXNwb25zZVR5cGUsXG4gICAgICBfb3B0cyRkZWR1cGUgPSBfb3B0cy5kZWR1cGUsXG4gICAgICBkZWR1cGUgPSBfb3B0cyRkZWR1cGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBfb3B0cyRkZWR1cGU7XG5cbiAgLy8gQnVpbGQgdGhlIGRlZmF1bHQgcmVxdWVzdCBrZXkgaWYgb25lIGlzIG5vdCBwYXNzZWRcblxuICB2YXIgcmVxdWVzdEtleVRvVXNlID0gcmVxdWVzdEtleSB8fCBnZXRSZXF1ZXN0S2V5KHtcbiAgICAvLyBJZiBgaW5wdXRgIGlzIGEgcmVxdWVzdCwgdGhlbiB3ZSB1c2UgdGhhdCBVUkxcbiAgICB1cmw6IGlucHV0LnVybCB8fCBpbnB1dCxcbiAgICAvLyBXZSBwcmVmZXIgdmFsdWVzIGZyb20gYGluaXRgIG92ZXIgcmVxdWVzdCBvYmplY3RzLiBXaXRoIGBmZXRjaCgpYCwgaW5pdFxuICAgIC8vIHRha2VzIHByaW9yaXR5IG92ZXIgYSBwYXNzZWQtaW4gcmVxdWVzdFxuICAgIG1ldGhvZDogaW5pdFRvVXNlLm1ldGhvZCB8fCBpbnB1dC5tZXRob2QgfHwgJycsXG4gICAgYm9keTogaW5pdFRvVXNlLmJvZHkgfHwgaW5wdXQuYm9keSB8fCAnJ1xuICB9KTtcblxuICB2YXIgcHJveHlSZXEgPSB2b2lkIDA7XG4gIGlmIChkZWR1cGUpIHtcbiAgICBpZiAoIXJlcXVlc3RzW3JlcXVlc3RLZXlUb1VzZV0pIHtcbiAgICAgIHJlcXVlc3RzW3JlcXVlc3RLZXlUb1VzZV0gPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgaGFuZGxlcnMgPSByZXF1ZXN0c1tyZXF1ZXN0S2V5VG9Vc2VdO1xuICAgIHZhciByZXF1ZXN0SW5GbGlnaHQgPSBCb29sZWFuKGhhbmRsZXJzLmxlbmd0aCk7XG4gICAgdmFyIHJlcXVlc3RIYW5kbGVyID0ge307XG4gICAgcHJveHlSZXEgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZXF1ZXN0SGFuZGxlci5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgIHJlcXVlc3RIYW5kbGVyLnJlamVjdCA9IHJlamVjdDtcbiAgICB9KTtcblxuICAgIGhhbmRsZXJzLnB1c2gocmVxdWVzdEhhbmRsZXIpO1xuXG4gICAgaWYgKHJlcXVlc3RJbkZsaWdodCkge1xuICAgICAgcmV0dXJuIHByb3h5UmVxO1xuICAgIH1cbiAgfVxuXG4gIHZhciByZXF1ZXN0ID0gZmV0Y2goaW5wdXQsIGluaXRUb1VzZSkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgdmFyIHJlc3BvbnNlVHlwZVRvVXNlID0gdm9pZCAwO1xuICAgIGlmIChyZXNwb25zZVR5cGUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcmVzcG9uc2VUeXBlVG9Vc2UgPSByZXNwb25zZVR5cGUocmVzKTtcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlVHlwZSkge1xuICAgICAgcmVzcG9uc2VUeXBlVG9Vc2UgPSByZXNwb25zZVR5cGU7XG4gICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSAyMDQpIHtcbiAgICAgIHJlc3BvbnNlVHlwZVRvVXNlID0gJ3RleHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZVR5cGVUb1VzZSA9ICdqc29uJztcbiAgICB9XG4gICAgLy8gVGhlIHJlc3BvbnNlIGJvZHkgaXMgYSBSZWFkYWJsZVN0cmVhbS4gUmVhZGFibGVTdHJlYW1zIGNhbiBvbmx5IGJlIHJlYWQgYSBzaW5nbGVcbiAgICAvLyB0aW1lLCBzbyB3ZSBtdXN0IGhhbmRsZSB0aGF0IGluIGEgY2VudHJhbCBsb2NhdGlvbiwgaGVyZSwgYmVmb3JlIHJlc29sdmluZ1xuICAgIC8vIHRoZSBmZXRjaC5cbiAgICByZXR1cm4gcmVzW3Jlc3BvbnNlVHlwZVRvVXNlXSgpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgIHJlcy5kYXRhID0gZGF0YTtcblxuICAgICAgaWYgKGRlZHVwZSkge1xuICAgICAgICByZXNvbHZlUmVxdWVzdCh7IHJlcXVlc3RLZXk6IHJlcXVlc3RLZXlUb1VzZSwgcmVzOiByZXMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlcy5kYXRhID0gbnVsbDtcblxuICAgICAgaWYgKGRlZHVwZSkge1xuICAgICAgICByZXNvbHZlUmVxdWVzdCh7IHJlcXVlc3RLZXk6IHJlcXVlc3RLZXlUb1VzZSwgcmVzOiByZXMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgcmVzb2x2ZVJlcXVlc3QoeyByZXF1ZXN0S2V5OiByZXF1ZXN0S2V5VG9Vc2UsIGVycjogZXJyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWR1cGUpIHtcbiAgICByZXR1cm4gcHJveHlSZXE7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cbn0iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xudmFyIEZldGNoQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQobnVsbCk7XG5cbmV4cG9ydCB2YXIgdXNlRmV0Y2hDb250ZXh0ID0gZnVuY3Rpb24gdXNlRmV0Y2hDb250ZXh0KCkge1xuICB2YXIgY2FjaGUgPSB1c2VDb250ZXh0KEZldGNoQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNhY2hlO1xufTtcblxuZnVuY3Rpb24gRmV0Y2hQcm92aWRlcihfcmVmKSB7XG4gIHZhciBjYWNoZSA9IF9yZWYuY2FjaGUsXG4gICAgICBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW47XG5cbiAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXG4gICAgRmV0Y2hDb250ZXh0LlByb3ZpZGVyLFxuICAgIHsgdmFsdWU6IGNhY2hlIH0sXG4gICAgY2hpbGRyZW5cbiAgKTtcbn1cblxuZXhwb3J0IHsgRmV0Y2hQcm92aWRlciB9OyIsImV4cG9ydCB2YXIgZ2V0SGVhZGVyID0gZnVuY3Rpb24gZ2V0SGVhZGVyKGhlYWRlcnMsIGtleVRvRmluZCkge1xuICBpZiAoIWhlYWRlcnMpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEhlYWRlcnMnIGdldCgpIGlzIGNhc2UgaW5zZW5zaXRpdmVcbiAgaWYgKGhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnMuZ2V0KGtleVRvRmluZCk7XG4gIH1cblxuICB2YXIga2V5VG9GaW5kTG93ZXJjYXNlID0ga2V5VG9GaW5kLnRvTG93ZXJDYXNlKCk7XG4gIC8vIENvbnZlcnQga2V5cyB0byBsb3dlckNhc2Ugc28gd2UgZG9uJ3QgcnVuIGludG8gY2FzZSBzZW5zaXRpdml0eSBpc3N1ZXNcbiAgdmFyIGhlYWRlcktleSA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoZnVuY3Rpb24gKGhlYWRlcktleSkge1xuICAgIHJldHVybiBoZWFkZXJLZXkudG9Mb3dlckNhc2UoKSA9PT0ga2V5VG9GaW5kTG93ZXJjYXNlO1xuICB9KTtcblxuICByZXR1cm4gaGVhZGVyS2V5ID8gaGVhZGVyc1toZWFkZXJLZXldIDogbnVsbDtcbn07XG5cbmV4cG9ydCB2YXIgc3RyaW5naWZ5SWZKU09OID0gZnVuY3Rpb24gc3RyaW5naWZ5SWZKU09OKGZldGNoT3B0aW9ucykge1xuICB2YXIgY29udGVudFR5cGUgPSBnZXRIZWFkZXIoZmV0Y2hPcHRpb25zLmhlYWRlcnMsIFwiQ29udGVudC1UeXBlXCIpO1xuXG4gIGlmIChjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKFwiYXBwbGljYXRpb24vanNvblwiKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZmV0Y2hPcHRpb25zLmJvZHkpO1xuICB9XG5cbiAgcmV0dXJuIGZldGNoT3B0aW9ucy5ib2R5O1xufTtcblxuZXhwb3J0IHZhciBpc1JlYWRSZXF1ZXN0ID0gZnVuY3Rpb24gaXNSZWFkUmVxdWVzdChtZXRob2QpIHtcbiAgbWV0aG9kID0gbWV0aG9kLnRvVXBwZXJDYXNlKCk7XG5cbiAgcmV0dXJuIG1ldGhvZCA9PT0gXCJHRVRcIiB8fCBtZXRob2QgPT09IFwiSEVBRFwiIHx8IG1ldGhvZCA9PT0gXCJPUFRJT05TXCI7XG59OyIsInZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZmV0Y2hEZWR1cGUsIGdldFJlcXVlc3RLZXkgfSBmcm9tIFwiZmV0Y2gtZGVkdXBlXCI7XG5pbXBvcnQgeyB1c2VGZXRjaENvbnRleHQgfSBmcm9tIFwiLi9GZXRjaFByb3ZpZGVyXCI7XG5pbXBvcnQgeyBzdHJpbmdpZnlJZkpTT04sIGlzUmVhZFJlcXVlc3QgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG52YXIgQ0FDSEVfUE9MSUNJRVMgPSB7XG4gIE5FVFdPUktfT05MWTogXCJuZXR3b3JrLW9ubHlcIixcbiAgQ0FDSEVfQU5EX05FVFdPUks6IFwiY2FjaGUtYW5kLW5ldHdvcmtcIixcbiAgRVhBQ1RfQ0FDSEVfQU5EX05FVFdPUks6IFwiZXhhY3QtY2FjaGUtYW5kLW5ldHdvcmtcIixcbiAgQ0FDSEVfRklSU1Q6IFwiY2FjaGUtZmlyc3RcIlxufTtcblxudmFyIGdldERlZmF1bHRDYWNoZVN0cmF0ZWd5ID0gZnVuY3Rpb24gZ2V0RGVmYXVsdENhY2hlU3RyYXRlZ3kobWV0aG9kKSB7XG4gIG1ldGhvZCA9IG1ldGhvZC50b1VwcGVyQ2FzZSgpO1xuXG4gIGlmIChtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiB8fCBtZXRob2QgPT09IFwiT1BUSU9OU1wiKSB7XG4gICAgcmV0dXJuIENBQ0hFX1BPTElDSUVTLkNBQ0hFX0ZJUlNUO1xuICB9XG5cbiAgcmV0dXJuIENBQ0hFX1BPTElDSUVTLk5FVFdPUktfT05MWTtcbn07XG5cbnZhciBkZWZhdWx0T25FcnJvciA9IGZ1bmN0aW9uIGRlZmF1bHRPbkVycm9yKGVycm9yKSB7XG4gIHJldHVybiBjb25zb2xlLmVycm9yKGVycm9yKTtcbn07XG52YXIgZGVmYXVsdE9uU3VjY2VzcyA9IGZ1bmN0aW9uIGRlZmF1bHRPblN1Y2Nlc3MoKSB7XG4gIHJldHVybiBudWxsO1xufTtcblxuZnVuY3Rpb24gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIFwiaW4tZmxpZ2h0XCI6XG4gICAgICB7XG4gICAgICAgIC8vIEF2b2lkIHVwZGF0aW5nIHN0YXRlIHVubmVjZXNzYXJpbHlcbiAgICAgICAgLy8gQnkgcmV0dXJuaW5nIHVuY2hhbmdlZCBzdGF0ZSBSZWFjdCB3b24ndCByZS1yZW5kZXJcbiAgICAgICAgaWYgKHN0YXRlLmZldGNoaW5nID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9leHRlbmRzKHt9LCBzdGF0ZSwge1xuICAgICAgICAgIGZldGNoaW5nOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSBcInJlc3BvbnNlXCI6XG4gICAgICB7XG4gICAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgc3RhdGUsIHtcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICBmZXRjaGluZzogYWN0aW9uLnBheWxvYWQuZmV0Y2hpbmcsXG4gICAgICAgICAgcmVzcG9uc2U6IGFjdGlvbi5wYXlsb2FkLnJlc3BvbnNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgY2FzZSBcImVycm9yXCI6XG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0YXRlLCB7XG4gICAgICAgIGZldGNoaW5nOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5wYXlsb2FkLmVycm9yXG4gICAgICB9KTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxudmFyIGRlZmF1bHRSZWZyZXNoRG9GZXRjaCA9IGZ1bmN0aW9uIGRlZmF1bHRSZWZyZXNoRG9GZXRjaChyZXF1ZXN0S2V5KSB7XG4gIHJldHVybiByZXF1ZXN0S2V5O1xufTtcblxuZnVuY3Rpb24gdXNlRmV0Y2goX3JlZikge1xuICB2YXIgdXJsID0gX3JlZi51cmwsXG4gICAgICBfcmVmJG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgbWV0aG9kID0gX3JlZiRtZXRob2QgPT09IHVuZGVmaW5lZCA/IFwiR0VUXCIgOiBfcmVmJG1ldGhvZCxcbiAgICAgIF9yZWYkbGF6eSA9IF9yZWYubGF6eSxcbiAgICAgIGxhenkgPSBfcmVmJGxhenkgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBfcmVmJGxhenksXG4gICAgICBfcmVmJHJlcXVlc3RLZXkgPSBfcmVmLnJlcXVlc3RLZXksXG4gICAgICByZXF1ZXN0S2V5ID0gX3JlZiRyZXF1ZXN0S2V5ID09PSB1bmRlZmluZWQgPyBudWxsIDogX3JlZiRyZXF1ZXN0S2V5LFxuICAgICAgX3JlZiRpbml0ID0gX3JlZi5pbml0LFxuICAgICAgaW5pdCA9IF9yZWYkaW5pdCA9PT0gdW5kZWZpbmVkID8ge30gOiBfcmVmJGluaXQsXG4gICAgICBfcmVmJGRlZHVwZU9wdGlvbnMgPSBfcmVmLmRlZHVwZU9wdGlvbnMsXG4gICAgICBkZWR1cGVPcHRpb25zID0gX3JlZiRkZWR1cGVPcHRpb25zID09PSB1bmRlZmluZWQgPyB7fSA6IF9yZWYkZGVkdXBlT3B0aW9ucyxcbiAgICAgIF9yZWYkY2FjaGVQb2xpY3kgPSBfcmVmLmNhY2hlUG9saWN5LFxuICAgICAgY2FjaGVQb2xpY3kgPSBfcmVmJGNhY2hlUG9saWN5ID09PSB1bmRlZmluZWQgPyBudWxsIDogX3JlZiRjYWNoZVBvbGljeSxcbiAgICAgIF9yZWYkY2FjaGVSZXNwb25zZSA9IF9yZWYuY2FjaGVSZXNwb25zZSxcbiAgICAgIGNhY2hlUmVzcG9uc2UgPSBfcmVmJGNhY2hlUmVzcG9uc2UgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBfcmVmJGNhY2hlUmVzcG9uc2UsXG4gICAgICBfcmVmJG9uRXJyb3IgPSBfcmVmLm9uRXJyb3IsXG4gICAgICBvbkVycm9yID0gX3JlZiRvbkVycm9yID09PSB1bmRlZmluZWQgPyBkZWZhdWx0T25FcnJvciA6IF9yZWYkb25FcnJvcixcbiAgICAgIF9yZWYkb25TdWNjZXNzID0gX3JlZi5vblN1Y2Nlc3MsXG4gICAgICBvblN1Y2Nlc3MgPSBfcmVmJG9uU3VjY2VzcyA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdE9uU3VjY2VzcyA6IF9yZWYkb25TdWNjZXNzLFxuICAgICAgX3JlZiRyZWZyZXNoRG9GZXRjaCA9IF9yZWYucmVmcmVzaERvRmV0Y2gsXG4gICAgICByZWZyZXNoRG9GZXRjaCA9IF9yZWYkcmVmcmVzaERvRmV0Y2ggPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRSZWZyZXNoRG9GZXRjaCA6IF9yZWYkcmVmcmVzaERvRmV0Y2g7XG5cbiAgdmFyIHJlc3BvbnNlQ2FjaGUgPSB1c2VGZXRjaENvbnRleHQoKTtcblxuICB2YXIgYWJvcnRDb250cm9sbGVyUmVmID0gdXNlUmVmKCk7XG5cbiAgLy8gRGVmYXVsdCBHRVR8SEVBRHxPUFRJT05TIHJlcXVlc3RzIHRvIG5vbi1sYXp5IChhdXRvbWF0aWNhbGx5IHJlcXVlc3Qgb25Nb3VudClcbiAgLy8gYWxsIGVsc2UgbGF6eSAob25seSByZXF1ZXN0ZWQgd2hlbiBkb0ZldGNoIGlzIGNhbGxlZClcbiAgdmFyIGlzTGF6eSA9IGxhenkgPT0gbnVsbCA/ICFpc1JlYWRSZXF1ZXN0KG1ldGhvZCkgOiBsYXp5O1xuXG4gIHZhciBjYWNoZVN0cmF0ZWd5ID0gY2FjaGVQb2xpY3kgPT09IG51bGwgPyBnZXREZWZhdWx0Q2FjaGVTdHJhdGVneShtZXRob2QpIDogY2FjaGVQb2xpY3k7XG5cbiAgdmFyIF91c2VSZWR1Y2VyID0gdXNlUmVkdWNlcihyZWR1Y2VyLCB7XG4gICAgcmVzcG9uc2U6IG51bGwsXG4gICAgZmV0Y2hpbmc6ICFpc0xhenksXG4gICAgZXJyb3I6IG51bGxcbiAgfSksXG4gICAgICBzdGF0ZSA9IF91c2VSZWR1Y2VyWzBdLFxuICAgICAgZGlzcGF0Y2ggPSBfdXNlUmVkdWNlclsxXTtcblxuICAvLyBCdWlsZHMgYSBrZXkgYmFzZWQgb24gVVJMLCBtZXRob2QgYW5kIGhlYWRlcnMuXG4gIC8vIHJlcXVlc3RLZXkgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBoYXZlIGNoYW5nZWRcbiAgLy8gYW5kIGFzIGtleSBpbiB0aGUgcmVzcG9uc2UgY2FjaGUuXG5cblxuICB2YXIgZmluYWxSZXF1ZXN0S2V5ID0gcmVxdWVzdEtleSA/IHJlcXVlc3RLZXkgOiBnZXRSZXF1ZXN0S2V5KF9leHRlbmRzKHsgdXJsOiB1cmwsIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCkgfSwgaW5pdCkpO1xuXG4gIGZ1bmN0aW9uIHNldEZldGNoaW5nKCkge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJpbi1mbGlnaHRcIiB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldFJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgdmFyIGZldGNoaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNwb25zZVwiLCBwYXlsb2FkOiB7IHJlc3BvbnNlOiByZXNwb25zZSwgZmV0Y2hpbmc6IGZldGNoaW5nIH0gfSk7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRFcnJvcihlcnJvcikge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJlcnJvclwiLCBwYXlsb2FkOiB7IGVycm9yOiBlcnJvciB9IH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gY2FuY2VsUnVubmluZ1JlcXVlc3QoKSB7XG4gICAgaWYgKGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50KSB7XG4gICAgICAvLyBDYW5jZWwgY3VycmVudCByZXF1ZXN0XG4gICAgICBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5hYm9ydCgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHNob3VsZENhY2hlUmVzcG9uc2UoKSB7XG4gICAgaWYgKGNhY2hlUmVzcG9uc2UgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBjYWNoZVJlc3BvbnNlO1xuICAgIH1cblxuICAgIHJldHVybiBpc1JlYWRSZXF1ZXN0KG1ldGhvZCk7XG4gIH1cblxuICB2YXIgZG9GZXRjaCA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZG9GZXRjaEluaXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBkb0ZldGNoRGVkdXBlT3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG5cbiAgICBjYW5jZWxSdW5uaW5nUmVxdWVzdCgpO1xuXG4gICAgYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgICBzZXRGZXRjaGluZyh0cnVlKTtcblxuICAgIHZhciBmaW5hbEluaXQgPSBfZXh0ZW5kcyh7fSwgaW5pdCwgZG9GZXRjaEluaXQpO1xuXG4gICAgdmFyIGZpbmFsRGVkdXBlT3B0aW9ucyA9IF9leHRlbmRzKHt9LCBkZWR1cGVPcHRpb25zLCBkb0ZldGNoRGVkdXBlT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmV0Y2hEZWR1cGUoZmluYWxJbml0LnVybCB8fCB1cmwsIF9leHRlbmRzKHt9LCBmaW5hbEluaXQsIHtcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXJSZWYuY3VycmVudC5zaWduYWwsXG4gICAgICBib2R5OiBmaW5hbEluaXQuYm9keSA/IHN0cmluZ2lmeUlmSlNPTihmaW5hbEluaXQpIDogdW5kZWZpbmVkXG4gICAgfSksIGZpbmFsRGVkdXBlT3B0aW9ucykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgc2V0RXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBvbkVycm9yKHJlc3BvbnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzaG91bGRDYWNoZVJlc3BvbnNlKCkpIHtcbiAgICAgICAgICByZXNwb25zZUNhY2hlLnNldChmaW5hbFJlcXVlc3RLZXksIHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgIG9uU3VjY2VzcyhyZXNwb25zZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmICghYWJvcnRDb250cm9sbGVyUmVmLmN1cnJlbnQuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBvbkVycm9yKGVycm9yKTtcblxuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH0pLmZpbmFsbHkoZnVuY3Rpb24gKCkge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBhYm9ydCBjb250cm9sbGVyIG5vdyB0aGF0IHRoZSByZXF1ZXN0IGlzIGRvbmVcbiAgICAgIGFib3J0Q29udHJvbGxlclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9KTtcbiAgfSwgW3JlZnJlc2hEb0ZldGNoKGZpbmFsUmVxdWVzdEtleSldKTtcblxuICAvLyBTdGFydCByZXF1ZXN0aW5nIG9uTW91bnQgaWYgbm90IGxhenlcbiAgLy8gU3RhcnQgcmVxdWVzdGluZyBpZiBpc0xhenkgZ29lcyBmcm9tIHRydWUgdG8gZmFsc2VcbiAgLy8gU3RhcnQgcmVxdWVzdGluZyBldmVyeSB0aW1lIHRoZSByZXF1ZXN0IGtleSBjaGFuZ2VzIChpLmUuIFVSTCwgbWV0aG9kLCBpbml0LmJvZHkgb3IgaW5pdC5yZXNwb25zZVR5cGUpIGlmIG5vdCBsYXp5XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgLy8gRG8gbm90IHN0YXJ0IHJlcXVlc3QgYXV0b21hdGljYWxseSB3aGVuIGluIGxhenkgbW9kZVxuICAgIGlmIChpc0xhenkgPT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgY2FjaGVkUmVzcG9uc2UgPSByZXNwb25zZUNhY2hlLmdldChmaW5hbFJlcXVlc3RLZXkpO1xuXG4gICAgLy8gUmV0dXJuIGNhY2hlZCByZXNwb25zZSBpZiBpdCBleGlzdHNcbiAgICBpZiAoY2FjaGVTdHJhdGVneSA9PT0gQ0FDSEVfUE9MSUNJRVMuQ0FDSEVfRklSU1QgJiYgY2FjaGVkUmVzcG9uc2UpIHtcbiAgICAgIG9uU3VjY2VzcyhjYWNoZWRSZXNwb25zZSk7XG4gICAgICByZXR1cm4gc2V0UmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiBhbnkgY2FjaGVkIGRhdGEgaW1tZWRpYXRlbHksIGJ1dCBpbml0aWF0ZSByZXF1ZXN0IGFueXdheSBpbiBvcmRlciB0byByZWZyZXNoIGFueSBzdGFsZSBkYXRhXG4gICAgaWYgKGNhY2hlU3RyYXRlZ3kgPT09IENBQ0hFX1BPTElDSUVTLkNBQ0hFX0FORF9ORVRXT1JLICYmIGNhY2hlZFJlc3BvbnNlKSB7XG4gICAgICBvblN1Y2Nlc3MoY2FjaGVkUmVzcG9uc2UpO1xuICAgICAgc2V0UmVzcG9uc2UoY2FjaGVkUmVzcG9uc2UsIHRydWUpO1xuICAgIH1cblxuICAgIC8vIEFsbW9zdCBsaWtlICdjYWNoZS1hbmQtbmV0d29yaycsIGJ1dCB0aGlzIGNsZWFycyB0aGUgcHJldmlvdXMgcmVxdWVzdCBrZXkncyByZXNwb25zZVxuICAgIC8vIGFuZCBvbmx5IHNob3dzIGEgY2FjaGVkIHJlc3BvbnNlIGlmIHRoZSByZXF1ZXN0IGtleXMgYXJlIGlkZW50aWNhbFxuICAgIC8vIEluIG90aGVyIHdvcmRzIGl0IHdvbid0IHNob3cgdGhlIHByZXZpb3VzIHJlcXVlc3Qga2V5J3MgZGF0YSB3aGlsZSBmZXRjaGluZ1xuICAgIGlmIChjYWNoZVN0cmF0ZWd5ID09PSBDQUNIRV9QT0xJQ0lFUy5FWEFDVF9DQUNIRV9BTkRfTkVUV09SSykge1xuICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlKSB7XG4gICAgICAgIG9uU3VjY2VzcyhjYWNoZWRSZXNwb25zZSk7XG4gICAgICAgIHNldFJlc3BvbnNlKGNhY2hlZFJlc3BvbnNlLCB0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFJlc3BvbnNlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFsd2F5cyBmZXRjaCBuZXcgZGF0YSBpZiByZXF1ZXN0IHBhcmFtcyBjaGFuZ2VcbiAgICBpZiAoY2FjaGVTdHJhdGVneSA9PT0gQ0FDSEVfUE9MSUNJRVMuTkVUV09SS19PTkxZKSB7XG4gICAgICAvLyBSZXNldCByZXNwb25zZSBzdGF0ZSBzaW5jZSB3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIGFueSBjYWNoZWQgcmVzcG9uc2UgZnJvbSBwcmV2aW91cyByZXF1ZXN0XG4gICAgICBzZXRSZXNwb25zZShudWxsKTtcbiAgICB9XG5cbiAgICBkb0ZldGNoKGluaXQpO1xuICB9LCBbZmluYWxSZXF1ZXN0S2V5LCBpc0xhenldKTtcblxuICAvLyBDYW5jZWwgYW55IHJ1bm5pbmcgcmVxdWVzdCB3aGVuIHVubW91bnRpbmcgdG8gYXZvaWQgdXBkYXRpbmcgc3RhdGUgYWZ0ZXIgY29tcG9uZW50IGhhcyB1bm1vdW50ZWRcbiAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGEgcmVxdWVzdCdzIHByb21pc2UgcmVzb2x2ZXMgYWZ0ZXIgY29tcG9uZW50IHVubW91bnRzXG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbmNlbFJ1bm5pbmdSZXF1ZXN0KCk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2U6IHN0YXRlLnJlc3BvbnNlLFxuICAgIGRhdGE6IHN0YXRlLnJlc3BvbnNlID8gc3RhdGUucmVzcG9uc2UuZGF0YSA6IG51bGwsXG4gICAgZmV0Y2hpbmc6IHN0YXRlLmZldGNoaW5nLFxuICAgIGVycm9yOiBzdGF0ZS5lcnJvcixcbiAgICByZXF1ZXN0S2V5OiBmaW5hbFJlcXVlc3RLZXksXG4gICAgZG9GZXRjaDogZG9GZXRjaFxuICB9O1xufVxuXG5leHBvcnQgeyB1c2VGZXRjaCB9OyIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuOS4wXG4gKiByZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0Jzt2YXIgaD1yZXF1aXJlKFwib2JqZWN0LWFzc2lnblwiKSxuPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5mb3IscD1uP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLHE9bj9TeW1ib2wuZm9yKFwicmVhY3QucG9ydGFsXCIpOjYwMTA2LHI9bj9TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIik6NjAxMDcsdD1uP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCx1PW4/U3ltYm9sLmZvcihcInJlYWN0LnByb2ZpbGVyXCIpOjYwMTE0LHY9bj9TeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik6NjAxMDksdz1uP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLHg9bj9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIseT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKTo2MDExMyxhYT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpOjYwMTIwLGJhPW4/U3ltYm9sLmZvcihcInJlYWN0Lm1lbW9cIik6XG42MDExNSxjYT1uP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2O24mJlN5bWJvbC5mb3IoXCJyZWFjdC5mdW5kYW1lbnRhbFwiKTtuJiZTeW1ib2wuZm9yKFwicmVhY3QucmVzcG9uZGVyXCIpO3ZhciB6PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcjtcbmZ1bmN0aW9uIEEoYSl7Zm9yKHZhciBiPWEubWVzc2FnZSxkPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYixjPTE7Yzxhcmd1bWVudHMubGVuZ3RoO2MrKylkKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tjXSk7YS5tZXNzYWdlPVwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2IrXCI7IHZpc2l0IFwiK2QrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiBcIjtyZXR1cm4gYX12YXIgQj17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sQz17fTtcbmZ1bmN0aW9uIEQoYSxiLGQpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9Qzt0aGlzLnVwZGF0ZXI9ZHx8Qn1ELnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9O0QucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGEsYil7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhJiZcImZ1bmN0aW9uXCIhPT10eXBlb2YgYSYmbnVsbCE9YSl0aHJvdyBBKEVycm9yKDg1KSk7dGhpcy51cGRhdGVyLmVucXVldWVTZXRTdGF0ZSh0aGlzLGEsYixcInNldFN0YXRlXCIpfTtELnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihhKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsYSxcImZvcmNlVXBkYXRlXCIpfTtmdW5jdGlvbiBFKCl7fUUucHJvdG90eXBlPUQucHJvdG90eXBlO2Z1bmN0aW9uIEYoYSxiLGQpe3RoaXMucHJvcHM9YTt0aGlzLmNvbnRleHQ9Yjt0aGlzLnJlZnM9Qzt0aGlzLnVwZGF0ZXI9ZHx8Qn12YXIgRz1GLnByb3RvdHlwZT1uZXcgRTtcbkcuY29uc3RydWN0b3I9RjtoKEcsRC5wcm90b3R5cGUpO0cuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIEg9e2N1cnJlbnQ6bnVsbH0sST17c3VzcGVuc2U6bnVsbH0sSj17Y3VycmVudDpudWxsfSxLPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksTD17a2V5OiEwLHJlZjohMCxfX3NlbGY6ITAsX19zb3VyY2U6ITB9O1xuZnVuY3Rpb24gTShhLGIsZCl7dmFyIGM9dm9pZCAwLGU9e30sZz1udWxsLGs9bnVsbDtpZihudWxsIT1iKWZvcihjIGluIHZvaWQgMCE9PWIucmVmJiYoaz1iLnJlZiksdm9pZCAwIT09Yi5rZXkmJihnPVwiXCIrYi5rZXkpLGIpSy5jYWxsKGIsYykmJiFMLmhhc093blByb3BlcnR5KGMpJiYoZVtjXT1iW2NdKTt2YXIgZj1hcmd1bWVudHMubGVuZ3RoLTI7aWYoMT09PWYpZS5jaGlsZHJlbj1kO2Vsc2UgaWYoMTxmKXtmb3IodmFyIGw9QXJyYXkoZiksbT0wO208ZjttKyspbFttXT1hcmd1bWVudHNbbSsyXTtlLmNoaWxkcmVuPWx9aWYoYSYmYS5kZWZhdWx0UHJvcHMpZm9yKGMgaW4gZj1hLmRlZmF1bHRQcm9wcyxmKXZvaWQgMD09PWVbY10mJihlW2NdPWZbY10pO3JldHVybnskJHR5cGVvZjpwLHR5cGU6YSxrZXk6ZyxyZWY6ayxwcm9wczplLF9vd25lcjpKLmN1cnJlbnR9fVxuZnVuY3Rpb24gZGEoYSxiKXtyZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmEudHlwZSxrZXk6YixyZWY6YS5yZWYscHJvcHM6YS5wcm9wcyxfb3duZXI6YS5fb3duZXJ9fWZ1bmN0aW9uIE4oYSl7cmV0dXJuXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PXB9ZnVuY3Rpb24gZXNjYXBlKGEpe3ZhciBiPXtcIj1cIjpcIj0wXCIsXCI6XCI6XCI9MlwifTtyZXR1cm5cIiRcIisoXCJcIithKS5yZXBsYWNlKC9bPTpdL2csZnVuY3Rpb24oYSl7cmV0dXJuIGJbYV19KX12YXIgTz0vXFwvKy9nLFA9W107ZnVuY3Rpb24gUShhLGIsZCxjKXtpZihQLmxlbmd0aCl7dmFyIGU9UC5wb3AoKTtlLnJlc3VsdD1hO2Uua2V5UHJlZml4PWI7ZS5mdW5jPWQ7ZS5jb250ZXh0PWM7ZS5jb3VudD0wO3JldHVybiBlfXJldHVybntyZXN1bHQ6YSxrZXlQcmVmaXg6YixmdW5jOmQsY29udGV4dDpjLGNvdW50OjB9fVxuZnVuY3Rpb24gUihhKXthLnJlc3VsdD1udWxsO2Eua2V5UHJlZml4PW51bGw7YS5mdW5jPW51bGw7YS5jb250ZXh0PW51bGw7YS5jb3VudD0wOzEwPlAubGVuZ3RoJiZQLnB1c2goYSl9XG5mdW5jdGlvbiBTKGEsYixkLGMpe3ZhciBlPXR5cGVvZiBhO2lmKFwidW5kZWZpbmVkXCI9PT1lfHxcImJvb2xlYW5cIj09PWUpYT1udWxsO3ZhciBnPSExO2lmKG51bGw9PT1hKWc9ITA7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJudW1iZXJcIjpnPSEwO2JyZWFrO2Nhc2UgXCJvYmplY3RcIjpzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBwOmNhc2UgcTpnPSEwfX1pZihnKXJldHVybiBkKGMsYSxcIlwiPT09Yj9cIi5cIitUKGEsMCk6YiksMTtnPTA7Yj1cIlwiPT09Yj9cIi5cIjpiK1wiOlwiO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBrPTA7azxhLmxlbmd0aDtrKyspe2U9YVtrXTt2YXIgZj1iK1QoZSxrKTtnKz1TKGUsZixkLGMpfWVsc2UgaWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYT9mPW51bGw6KGY9eiYmYVt6XXx8YVtcIkBAaXRlcmF0b3JcIl0sZj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgZj9mOm51bGwpLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmKWZvcihhPWYuY2FsbChhKSxrPVxuMDshKGU9YS5uZXh0KCkpLmRvbmU7KWU9ZS52YWx1ZSxmPWIrVChlLGsrKyksZys9UyhlLGYsZCxjKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1lKXRocm93IGQ9XCJcIithLEEoRXJyb3IoMzEpLFwiW29iamVjdCBPYmplY3RdXCI9PT1kP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYSkuam9pbihcIiwgXCIpK1wifVwiOmQsXCJcIik7cmV0dXJuIGd9ZnVuY3Rpb24gVShhLGIsZCl7cmV0dXJuIG51bGw9PWE/MDpTKGEsXCJcIixiLGQpfWZ1bmN0aW9uIFQoYSxiKXtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJm51bGwhPT1hJiZudWxsIT1hLmtleT9lc2NhcGUoYS5rZXkpOmIudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGVhKGEsYil7YS5mdW5jLmNhbGwoYS5jb250ZXh0LGIsYS5jb3VudCsrKX1cbmZ1bmN0aW9uIGZhKGEsYixkKXt2YXIgYz1hLnJlc3VsdCxlPWEua2V5UHJlZml4O2E9YS5mdW5jLmNhbGwoYS5jb250ZXh0LGIsYS5jb3VudCsrKTtBcnJheS5pc0FycmF5KGEpP1YoYSxjLGQsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KTpudWxsIT1hJiYoTihhKSYmKGE9ZGEoYSxlKyghYS5rZXl8fGImJmIua2V5PT09YS5rZXk/XCJcIjooXCJcIithLmtleSkucmVwbGFjZShPLFwiJCYvXCIpK1wiL1wiKStkKSksYy5wdXNoKGEpKX1mdW5jdGlvbiBWKGEsYixkLGMsZSl7dmFyIGc9XCJcIjtudWxsIT1kJiYoZz0oXCJcIitkKS5yZXBsYWNlKE8sXCIkJi9cIikrXCIvXCIpO2I9UShiLGcsYyxlKTtVKGEsZmEsYik7UihiKX1mdW5jdGlvbiBXKCl7dmFyIGE9SC5jdXJyZW50O2lmKG51bGw9PT1hKXRocm93IEEoRXJyb3IoMzIxKSk7cmV0dXJuIGF9XG52YXIgWD17Q2hpbGRyZW46e21hcDpmdW5jdGlvbihhLGIsZCl7aWYobnVsbD09YSlyZXR1cm4gYTt2YXIgYz1bXTtWKGEsYyxudWxsLGIsZCk7cmV0dXJuIGN9LGZvckVhY2g6ZnVuY3Rpb24oYSxiLGQpe2lmKG51bGw9PWEpcmV0dXJuIGE7Yj1RKG51bGwsbnVsbCxiLGQpO1UoYSxlYSxiKTtSKGIpfSxjb3VudDpmdW5jdGlvbihhKXtyZXR1cm4gVShhLGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LG51bGwpfSx0b0FycmF5OmZ1bmN0aW9uKGEpe3ZhciBiPVtdO1YoYSxiLG51bGwsZnVuY3Rpb24oYSl7cmV0dXJuIGF9KTtyZXR1cm4gYn0sb25seTpmdW5jdGlvbihhKXtpZighTihhKSl0aHJvdyBBKEVycm9yKDE0MykpO3JldHVybiBhfX0sY3JlYXRlUmVmOmZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LENvbXBvbmVudDpELFB1cmVDb21wb25lbnQ6RixjcmVhdGVDb250ZXh0OmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09YiYmKGI9bnVsbCk7YT17JCR0eXBlb2Y6dyxfY2FsY3VsYXRlQ2hhbmdlZEJpdHM6Yixcbl9jdXJyZW50VmFsdWU6YSxfY3VycmVudFZhbHVlMjphLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH07YS5Qcm92aWRlcj17JCR0eXBlb2Y6dixfY29udGV4dDphfTtyZXR1cm4gYS5Db25zdW1lcj1hfSxmb3J3YXJkUmVmOmZ1bmN0aW9uKGEpe3JldHVybnskJHR5cGVvZjp4LHJlbmRlcjphfX0sbGF6eTpmdW5jdGlvbihhKXtyZXR1cm57JCR0eXBlb2Y6Y2EsX2N0b3I6YSxfc3RhdHVzOi0xLF9yZXN1bHQ6bnVsbH19LG1lbW86ZnVuY3Rpb24oYSxiKXtyZXR1cm57JCR0eXBlb2Y6YmEsdHlwZTphLGNvbXBhcmU6dm9pZCAwPT09Yj9udWxsOmJ9fSx1c2VDYWxsYmFjazpmdW5jdGlvbihhLGIpe3JldHVybiBXKCkudXNlQ2FsbGJhY2soYSxiKX0sdXNlQ29udGV4dDpmdW5jdGlvbihhLGIpe3JldHVybiBXKCkudXNlQ29udGV4dChhLGIpfSx1c2VFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZUVmZmVjdChhLGIpfSx1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGEsXG5iLGQpe3JldHVybiBXKCkudXNlSW1wZXJhdGl2ZUhhbmRsZShhLGIsZCl9LHVzZURlYnVnVmFsdWU6ZnVuY3Rpb24oKXt9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBXKCkudXNlTGF5b3V0RWZmZWN0KGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVygpLnVzZU1lbW8oYSxiKX0sdXNlUmVkdWNlcjpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIFcoKS51c2VSZWR1Y2VyKGEsYixkKX0sdXNlUmVmOmZ1bmN0aW9uKGEpe3JldHVybiBXKCkudXNlUmVmKGEpfSx1c2VTdGF0ZTpmdW5jdGlvbihhKXtyZXR1cm4gVygpLnVzZVN0YXRlKGEpfSxGcmFnbWVudDpyLFByb2ZpbGVyOnUsU3RyaWN0TW9kZTp0LFN1c3BlbnNlOnksdW5zdGFibGVfU3VzcGVuc2VMaXN0OmFhLGNyZWF0ZUVsZW1lbnQ6TSxjbG9uZUVsZW1lbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKG51bGw9PT1hfHx2b2lkIDA9PT1hKXRocm93IEEoRXJyb3IoMjY3KSxhKTt2YXIgYz12b2lkIDAsZT1cbmgoe30sYS5wcm9wcyksZz1hLmtleSxrPWEucmVmLGY9YS5fb3duZXI7aWYobnVsbCE9Yil7dm9pZCAwIT09Yi5yZWYmJihrPWIucmVmLGY9Si5jdXJyZW50KTt2b2lkIDAhPT1iLmtleSYmKGc9XCJcIitiLmtleSk7dmFyIGw9dm9pZCAwO2EudHlwZSYmYS50eXBlLmRlZmF1bHRQcm9wcyYmKGw9YS50eXBlLmRlZmF1bHRQcm9wcyk7Zm9yKGMgaW4gYilLLmNhbGwoYixjKSYmIUwuaGFzT3duUHJvcGVydHkoYykmJihlW2NdPXZvaWQgMD09PWJbY10mJnZvaWQgMCE9PWw/bFtjXTpiW2NdKX1jPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YyllLmNoaWxkcmVuPWQ7ZWxzZSBpZigxPGMpe2w9QXJyYXkoYyk7Zm9yKHZhciBtPTA7bTxjO20rKylsW21dPWFyZ3VtZW50c1ttKzJdO2UuY2hpbGRyZW49bH1yZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmEudHlwZSxrZXk6ZyxyZWY6ayxwcm9wczplLF9vd25lcjpmfX0sY3JlYXRlRmFjdG9yeTpmdW5jdGlvbihhKXt2YXIgYj1NLmJpbmQobnVsbCxhKTtcbmIudHlwZT1hO3JldHVybiBifSxpc1ZhbGlkRWxlbWVudDpOLHZlcnNpb246XCIxNi45LjBcIix1bnN0YWJsZV93aXRoU3VzcGVuc2VDb25maWc6ZnVuY3Rpb24oYSxiKXt2YXIgZD1JLnN1c3BlbnNlO0kuc3VzcGVuc2U9dm9pZCAwPT09Yj9udWxsOmI7dHJ5e2EoKX1maW5hbGx5e0kuc3VzcGVuc2U9ZH19LF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEOntSZWFjdEN1cnJlbnREaXNwYXRjaGVyOkgsUmVhY3RDdXJyZW50QmF0Y2hDb25maWc6SSxSZWFjdEN1cnJlbnRPd25lcjpKLElzU29tZVJlbmRlcmVyQWN0aW5nOntjdXJyZW50OiExfSxhc3NpZ246aH19LFk9e2RlZmF1bHQ6WH0sWj1ZJiZYfHxZO21vZHVsZS5leHBvcnRzPVouZGVmYXVsdHx8WjtcbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuOS4wXG4gKiByZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4vKlxuIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuKi9cbid1c2Ugc3RyaWN0Jzt2YXIgYWE9cmVxdWlyZShcInJlYWN0XCIpLG09cmVxdWlyZShcIm9iamVjdC1hc3NpZ25cIikscT1yZXF1aXJlKFwic2NoZWR1bGVyXCIpO2Z1bmN0aW9uIHQoYSl7Zm9yKHZhciBiPWEubWVzc2FnZSxjPVwiaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2Vycm9yLWRlY29kZXIuaHRtbD9pbnZhcmlhbnQ9XCIrYixkPTE7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKyljKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1tkXSk7YS5tZXNzYWdlPVwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2IrXCI7IHZpc2l0IFwiK2MrXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiBcIjtyZXR1cm4gYX1pZighYWEpdGhyb3cgdChFcnJvcigyMjcpKTt2YXIgYmE9bnVsbCxjYT17fTtcbmZ1bmN0aW9uIGRhKCl7aWYoYmEpZm9yKHZhciBhIGluIGNhKXt2YXIgYj1jYVthXSxjPWJhLmluZGV4T2YoYSk7aWYoISgtMTxjKSl0aHJvdyB0KEVycm9yKDk2KSxhKTtpZighZWFbY10pe2lmKCFiLmV4dHJhY3RFdmVudHMpdGhyb3cgdChFcnJvcig5NyksYSk7ZWFbY109YjtjPWIuZXZlbnRUeXBlcztmb3IodmFyIGQgaW4gYyl7dmFyIGU9dm9pZCAwO3ZhciBmPWNbZF0saD1iLGc9ZDtpZihmYS5oYXNPd25Qcm9wZXJ0eShnKSl0aHJvdyB0KEVycm9yKDk5KSxnKTtmYVtnXT1mO3ZhciBrPWYucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM7aWYoayl7Zm9yKGUgaW4gaylrLmhhc093blByb3BlcnR5KGUpJiZoYShrW2VdLGgsZyk7ZT0hMH1lbHNlIGYucmVnaXN0cmF0aW9uTmFtZT8oaGEoZi5yZWdpc3RyYXRpb25OYW1lLGgsZyksZT0hMCk6ZT0hMTtpZighZSl0aHJvdyB0KEVycm9yKDk4KSxkLGEpO319fX1cbmZ1bmN0aW9uIGhhKGEsYixjKXtpZihpYVthXSl0aHJvdyB0KEVycm9yKDEwMCksYSk7aWFbYV09YjtqYVthXT1iLmV2ZW50VHlwZXNbY10uZGVwZW5kZW5jaWVzfXZhciBlYT1bXSxmYT17fSxpYT17fSxqYT17fTtmdW5jdGlvbiBrYShhLGIsYyxkLGUsZixoLGcsayl7dmFyIGw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpO3RyeXtiLmFwcGx5KGMsbCl9Y2F0Y2gobil7dGhpcy5vbkVycm9yKG4pfX12YXIgbGE9ITEsbWE9bnVsbCxuYT0hMSxvYT1udWxsLHBhPXtvbkVycm9yOmZ1bmN0aW9uKGEpe2xhPSEwO21hPWF9fTtmdW5jdGlvbiBxYShhLGIsYyxkLGUsZixoLGcsayl7bGE9ITE7bWE9bnVsbDtrYS5hcHBseShwYSxhcmd1bWVudHMpfVxuZnVuY3Rpb24gcmEoYSxiLGMsZCxlLGYsaCxnLGspe3FhLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihsYSl7aWYobGEpe3ZhciBsPW1hO2xhPSExO21hPW51bGx9ZWxzZSB0aHJvdyB0KEVycm9yKDE5OCkpO25hfHwobmE9ITAsb2E9bCl9fXZhciBzYT1udWxsLHRhPW51bGwsdmE9bnVsbDtmdW5jdGlvbiB3YShhLGIsYyl7dmFyIGQ9YS50eXBlfHxcInVua25vd24tZXZlbnRcIjthLmN1cnJlbnRUYXJnZXQ9dmEoYyk7cmEoZCxiLHZvaWQgMCxhKTthLmN1cnJlbnRUYXJnZXQ9bnVsbH1mdW5jdGlvbiB4YShhLGIpe2lmKG51bGw9PWIpdGhyb3cgdChFcnJvcigzMCkpO2lmKG51bGw9PWEpcmV0dXJuIGI7aWYoQXJyYXkuaXNBcnJheShhKSl7aWYoQXJyYXkuaXNBcnJheShiKSlyZXR1cm4gYS5wdXNoLmFwcGx5KGEsYiksYTthLnB1c2goYik7cmV0dXJuIGF9cmV0dXJuIEFycmF5LmlzQXJyYXkoYik/W2FdLmNvbmNhdChiKTpbYSxiXX1cbmZ1bmN0aW9uIHlhKGEsYixjKXtBcnJheS5pc0FycmF5KGEpP2EuZm9yRWFjaChiLGMpOmEmJmIuY2FsbChjLGEpfXZhciB6YT1udWxsO2Z1bmN0aW9uIEFhKGEpe2lmKGEpe3ZhciBiPWEuX2Rpc3BhdGNoTGlzdGVuZXJzLGM9YS5fZGlzcGF0Y2hJbnN0YW5jZXM7aWYoQXJyYXkuaXNBcnJheShiKSlmb3IodmFyIGQ9MDtkPGIubGVuZ3RoJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpO2QrKyl3YShhLGJbZF0sY1tkXSk7ZWxzZSBiJiZ3YShhLGIsYyk7YS5fZGlzcGF0Y2hMaXN0ZW5lcnM9bnVsbDthLl9kaXNwYXRjaEluc3RhbmNlcz1udWxsO2EuaXNQZXJzaXN0ZW50KCl8fGEuY29uc3RydWN0b3IucmVsZWFzZShhKX19ZnVuY3Rpb24gQmEoYSl7bnVsbCE9PWEmJih6YT14YSh6YSxhKSk7YT16YTt6YT1udWxsO2lmKGEpe3lhKGEsQWEpO2lmKHphKXRocm93IHQoRXJyb3IoOTUpKTtpZihuYSl0aHJvdyBhPW9hLG5hPSExLG9hPW51bGwsYTt9fVxudmFyIENhPXtpbmplY3RFdmVudFBsdWdpbk9yZGVyOmZ1bmN0aW9uKGEpe2lmKGJhKXRocm93IHQoRXJyb3IoMTAxKSk7YmE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYSk7ZGEoKX0saW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lOmZ1bmN0aW9uKGEpe3ZhciBiPSExLGM7Zm9yKGMgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGMpKXt2YXIgZD1hW2NdO2lmKCFjYS5oYXNPd25Qcm9wZXJ0eShjKXx8Y2FbY10hPT1kKXtpZihjYVtjXSl0aHJvdyB0KEVycm9yKDEwMiksYyk7Y2FbY109ZDtiPSEwfX1iJiZkYSgpfX07XG5mdW5jdGlvbiBEYShhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO2lmKCFjKXJldHVybiBudWxsO3ZhciBkPXNhKGMpO2lmKCFkKXJldHVybiBudWxsO2M9ZFtiXTthOnN3aXRjaChiKXtjYXNlIFwib25DbGlja1wiOmNhc2UgXCJvbkNsaWNrQ2FwdHVyZVwiOmNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6Y2FzZSBcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZSBcIm9uTW91c2VEb3duXCI6Y2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOmNhc2UgXCJvbk1vdXNlTW92ZVwiOmNhc2UgXCJvbk1vdXNlTW92ZUNhcHR1cmVcIjpjYXNlIFwib25Nb3VzZVVwXCI6Y2FzZSBcIm9uTW91c2VVcENhcHR1cmVcIjooZD0hZC5kaXNhYmxlZCl8fChhPWEudHlwZSxkPSEoXCJidXR0b25cIj09PWF8fFwiaW5wdXRcIj09PWF8fFwic2VsZWN0XCI9PT1hfHxcInRleHRhcmVhXCI9PT1hKSk7YT0hZDticmVhayBhO2RlZmF1bHQ6YT0hMX1pZihhKXJldHVybiBudWxsO2lmKGMmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjKXRocm93IHQoRXJyb3IoMjMxKSxiLHR5cGVvZiBjKTtcbnJldHVybiBjfXZhciBFYT1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxGYT1cIl9fcmVhY3RJbnRlcm5hbEluc3RhbmNlJFwiK0VhLEdhPVwiX19yZWFjdEV2ZW50SGFuZGxlcnMkXCIrRWE7ZnVuY3Rpb24gSGEoYSl7aWYoYVtGYV0pcmV0dXJuIGFbRmFdO2Zvcig7IWFbRmFdOylpZihhLnBhcmVudE5vZGUpYT1hLnBhcmVudE5vZGU7ZWxzZSByZXR1cm4gbnVsbDthPWFbRmFdO3JldHVybiA1PT09YS50YWd8fDY9PT1hLnRhZz9hOm51bGx9ZnVuY3Rpb24gSWEoYSl7YT1hW0ZhXTtyZXR1cm4hYXx8NSE9PWEudGFnJiY2IT09YS50YWc/bnVsbDphfWZ1bmN0aW9uIEphKGEpe2lmKDU9PT1hLnRhZ3x8Nj09PWEudGFnKXJldHVybiBhLnN0YXRlTm9kZTt0aHJvdyB0KEVycm9yKDMzKSk7fWZ1bmN0aW9uIEthKGEpe3JldHVybiBhW0dhXXx8bnVsbH1mdW5jdGlvbiBMYShhKXtkbyBhPWEucmV0dXJuO3doaWxlKGEmJjUhPT1hLnRhZyk7cmV0dXJuIGE/YTpudWxsfVxuZnVuY3Rpb24gTWEoYSxiLGMpe2lmKGI9RGEoYSxjLmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzW2JdKSljLl9kaXNwYXRjaExpc3RlbmVycz14YShjLl9kaXNwYXRjaExpc3RlbmVycyxiKSxjLl9kaXNwYXRjaEluc3RhbmNlcz14YShjLl9kaXNwYXRjaEluc3RhbmNlcyxhKX1mdW5jdGlvbiBOYShhKXtpZihhJiZhLmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKXtmb3IodmFyIGI9YS5fdGFyZ2V0SW5zdCxjPVtdO2I7KWMucHVzaChiKSxiPUxhKGIpO2ZvcihiPWMubGVuZ3RoOzA8Yi0tOylNYShjW2JdLFwiY2FwdHVyZWRcIixhKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKU1hKGNbYl0sXCJidWJibGVkXCIsYSl9fVxuZnVuY3Rpb24gT2EoYSxiLGMpe2EmJmMmJmMuZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSYmKGI9RGEoYSxjLmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpKSYmKGMuX2Rpc3BhdGNoTGlzdGVuZXJzPXhhKGMuX2Rpc3BhdGNoTGlzdGVuZXJzLGIpLGMuX2Rpc3BhdGNoSW5zdGFuY2VzPXhhKGMuX2Rpc3BhdGNoSW5zdGFuY2VzLGEpKX1mdW5jdGlvbiBQYShhKXthJiZhLmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUmJk9hKGEuX3RhcmdldEluc3QsbnVsbCxhKX1mdW5jdGlvbiBRYShhKXt5YShhLE5hKX12YXIgUmE9IShcInVuZGVmaW5lZFwiPT09dHlwZW9mIHdpbmRvd3x8XCJ1bmRlZmluZWRcIj09PXR5cGVvZiB3aW5kb3cuZG9jdW1lbnR8fFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuZnVuY3Rpb24gU2EoYSxiKXt2YXIgYz17fTtjW2EudG9Mb3dlckNhc2UoKV09Yi50b0xvd2VyQ2FzZSgpO2NbXCJXZWJraXRcIithXT1cIndlYmtpdFwiK2I7Y1tcIk1velwiK2FdPVwibW96XCIrYjtyZXR1cm4gY312YXIgVGE9e2FuaW1hdGlvbmVuZDpTYShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uRW5kXCIpLGFuaW1hdGlvbml0ZXJhdGlvbjpTYShcIkFuaW1hdGlvblwiLFwiQW5pbWF0aW9uSXRlcmF0aW9uXCIpLGFuaW1hdGlvbnN0YXJ0OlNhKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25TdGFydFwiKSx0cmFuc2l0aW9uZW5kOlNhKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkVuZFwiKX0sVWE9e30sVmE9e307XG5SYSYmKFZhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJBbmltYXRpb25FdmVudFwiaW4gd2luZG93fHwoZGVsZXRlIFRhLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIFRhLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIFRhLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXCJUcmFuc2l0aW9uRXZlbnRcImluIHdpbmRvd3x8ZGVsZXRlIFRhLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gV2EoYSl7aWYoVWFbYV0pcmV0dXJuIFVhW2FdO2lmKCFUYVthXSlyZXR1cm4gYTt2YXIgYj1UYVthXSxjO2ZvcihjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSYmYyBpbiBWYSlyZXR1cm4gVWFbYV09YltjXTtyZXR1cm4gYX1cbnZhciBYYT1XYShcImFuaW1hdGlvbmVuZFwiKSxZYT1XYShcImFuaW1hdGlvbml0ZXJhdGlvblwiKSxaYT1XYShcImFuaW1hdGlvbnN0YXJ0XCIpLGFiPVdhKFwidHJhbnNpdGlvbmVuZFwiKSxiYj1cImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2Ugc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksY2I9bnVsbCxkYj1udWxsLGViPW51bGw7XG5mdW5jdGlvbiBmYigpe2lmKGViKXJldHVybiBlYjt2YXIgYSxiPWRiLGM9Yi5sZW5ndGgsZCxlPVwidmFsdWVcImluIGNiP2NiLnZhbHVlOmNiLnRleHRDb250ZW50LGY9ZS5sZW5ndGg7Zm9yKGE9MDthPGMmJmJbYV09PT1lW2FdO2ErKyk7dmFyIGg9Yy1hO2ZvcihkPTE7ZDw9aCYmYltjLWRdPT09ZVtmLWRdO2QrKyk7cmV0dXJuIGViPWUuc2xpY2UoYSwxPGQ/MS1kOnZvaWQgMCl9ZnVuY3Rpb24gZ2IoKXtyZXR1cm4hMH1mdW5jdGlvbiBoYigpe3JldHVybiExfVxuZnVuY3Rpb24geShhLGIsYyxkKXt0aGlzLmRpc3BhdGNoQ29uZmlnPWE7dGhpcy5fdGFyZ2V0SW5zdD1iO3RoaXMubmF0aXZlRXZlbnQ9YzthPXRoaXMuY29uc3RydWN0b3IuSW50ZXJmYWNlO2Zvcih2YXIgZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJigoYj1hW2VdKT90aGlzW2VdPWIoYyk6XCJ0YXJnZXRcIj09PWU/dGhpcy50YXJnZXQ9ZDp0aGlzW2VdPWNbZV0pO3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1jLmRlZmF1bHRQcmV2ZW50ZWQ/Yy5kZWZhdWx0UHJldmVudGVkOiExPT09Yy5yZXR1cm5WYWx1ZSk/Z2I6aGI7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1oYjtyZXR1cm4gdGhpc31cbm0oeS5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOlwidW5rbm93blwiIT09dHlwZW9mIGEucmV0dXJuVmFsdWUmJihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1nYil9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPT10eXBlb2YgYS5jYW5jZWxCdWJibGUmJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1nYil9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt0aGlzLmlzUGVyc2lzdGVudD1nYn0saXNQZXJzaXN0ZW50OmhiLGRlc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZSxcbmI7Zm9yKGIgaW4gYSl0aGlzW2JdPW51bGw7dGhpcy5uYXRpdmVFdmVudD10aGlzLl90YXJnZXRJbnN0PXRoaXMuZGlzcGF0Y2hDb25maWc9bnVsbDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWhiO3RoaXMuX2Rpc3BhdGNoSW5zdGFuY2VzPXRoaXMuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGx9fSk7eS5JbnRlcmZhY2U9e3R5cGU6bnVsbCx0YXJnZXQ6bnVsbCxjdXJyZW50VGFyZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGV2ZW50UGhhc2U6bnVsbCxidWJibGVzOm51bGwsY2FuY2VsYWJsZTpudWxsLHRpbWVTdGFtcDpmdW5jdGlvbihhKXtyZXR1cm4gYS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6bnVsbCxpc1RydXN0ZWQ6bnVsbH07XG55LmV4dGVuZD1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIGMoKXtyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGQ9dGhpcztiLnByb3RvdHlwZT1kLnByb3RvdHlwZTt2YXIgZT1uZXcgYjttKGUsYy5wcm90b3R5cGUpO2MucHJvdG90eXBlPWU7Yy5wcm90b3R5cGUuY29uc3RydWN0b3I9YztjLkludGVyZmFjZT1tKHt9LGQuSW50ZXJmYWNlLGEpO2MuZXh0ZW5kPWQuZXh0ZW5kO2liKGMpO3JldHVybiBjfTtpYih5KTtmdW5jdGlvbiBqYihhLGIsYyxkKXtpZih0aGlzLmV2ZW50UG9vbC5sZW5ndGgpe3ZhciBlPXRoaXMuZXZlbnRQb29sLnBvcCgpO3RoaXMuY2FsbChlLGEsYixjLGQpO3JldHVybiBlfXJldHVybiBuZXcgdGhpcyhhLGIsYyxkKX1cbmZ1bmN0aW9uIGtiKGEpe2lmKCEoYSBpbnN0YW5jZW9mIHRoaXMpKXRocm93IHQoRXJyb3IoMjc5KSk7YS5kZXN0cnVjdG9yKCk7MTA+dGhpcy5ldmVudFBvb2wubGVuZ3RoJiZ0aGlzLmV2ZW50UG9vbC5wdXNoKGEpfWZ1bmN0aW9uIGliKGEpe2EuZXZlbnRQb29sPVtdO2EuZ2V0UG9vbGVkPWpiO2EucmVsZWFzZT1rYn12YXIgbGI9eS5leHRlbmQoe2RhdGE6bnVsbH0pLG1iPXkuZXh0ZW5kKHtkYXRhOm51bGx9KSxuYj1bOSwxMywyNywzMl0sb2I9UmEmJlwiQ29tcG9zaXRpb25FdmVudFwiaW4gd2luZG93LHBiPW51bGw7UmEmJlwiZG9jdW1lbnRNb2RlXCJpbiBkb2N1bWVudCYmKHBiPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7XG52YXIgcWI9UmEmJlwiVGV4dEV2ZW50XCJpbiB3aW5kb3cmJiFwYixzYj1SYSYmKCFvYnx8cGImJjg8cGImJjExPj1wYiksdGI9U3RyaW5nLmZyb21DaGFyQ29kZSgzMiksdWI9e2JlZm9yZUlucHV0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQmVmb3JlSW5wdXRcIixjYXB0dXJlZDpcIm9uQmVmb3JlSW5wdXRDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpbXCJjb21wb3NpdGlvbmVuZFwiLFwia2V5cHJlc3NcIixcInRleHRJbnB1dFwiLFwicGFzdGVcIl19LGNvbXBvc2l0aW9uRW5kOntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ29tcG9zaXRpb25FbmRcIixjYXB0dXJlZDpcIm9uQ29tcG9zaXRpb25FbmRDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29tcG9zaXRpb25lbmQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd25cIi5zcGxpdChcIiBcIil9LGNvbXBvc2l0aW9uU3RhcnQ6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOlwib25Db21wb3NpdGlvblN0YXJ0XCIsXG5jYXB0dXJlZDpcIm9uQ29tcG9zaXRpb25TdGFydENhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOlwiYmx1ciBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpfSxjb21wb3NpdGlvblVwZGF0ZTp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsY2FwdHVyZWQ6XCJvbkNvbXBvc2l0aW9uVXBkYXRlQ2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6XCJibHVyIGNvbXBvc2l0aW9udXBkYXRlIGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpfX0sdmI9ITE7XG5mdW5jdGlvbiB3YihhLGIpe3N3aXRjaChhKXtjYXNlIFwia2V5dXBcIjpyZXR1cm4tMSE9PW5iLmluZGV4T2YoYi5rZXlDb2RlKTtjYXNlIFwia2V5ZG93blwiOnJldHVybiAyMjkhPT1iLmtleUNvZGU7Y2FzZSBcImtleXByZXNzXCI6Y2FzZSBcIm1vdXNlZG93blwiOmNhc2UgXCJibHVyXCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24geGIoYSl7YT1hLmRldGFpbDtyZXR1cm5cIm9iamVjdFwiPT09dHlwZW9mIGEmJlwiZGF0YVwiaW4gYT9hLmRhdGE6bnVsbH12YXIgeWI9ITE7ZnVuY3Rpb24gQWIoYSxiKXtzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIHhiKGIpO2Nhc2UgXCJrZXlwcmVzc1wiOmlmKDMyIT09Yi53aGljaClyZXR1cm4gbnVsbDt2Yj0hMDtyZXR1cm4gdGI7Y2FzZSBcInRleHRJbnB1dFwiOnJldHVybiBhPWIuZGF0YSxhPT09dGImJnZiP251bGw6YTtkZWZhdWx0OnJldHVybiBudWxsfX1cbmZ1bmN0aW9uIEJiKGEsYil7aWYoeWIpcmV0dXJuXCJjb21wb3NpdGlvbmVuZFwiPT09YXx8IW9iJiZ3YihhLGIpPyhhPWZiKCksZWI9ZGI9Y2I9bnVsbCx5Yj0hMSxhKTpudWxsO3N3aXRjaChhKXtjYXNlIFwicGFzdGVcIjpyZXR1cm4gbnVsbDtjYXNlIFwia2V5cHJlc3NcIjppZighKGIuY3RybEtleXx8Yi5hbHRLZXl8fGIubWV0YUtleSl8fGIuY3RybEtleSYmYi5hbHRLZXkpe2lmKGIuY2hhciYmMTxiLmNoYXIubGVuZ3RoKXJldHVybiBiLmNoYXI7aWYoYi53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShiLndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gc2ImJlwia29cIiE9PWIubG9jYWxlP251bGw6Yi5kYXRhO2RlZmF1bHQ6cmV0dXJuIG51bGx9fVxudmFyIENiPXtldmVudFR5cGVzOnViLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dm9pZCAwO3ZhciBmPXZvaWQgMDtpZihvYiliOntzd2l0Y2goYSl7Y2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjplPXViLmNvbXBvc2l0aW9uU3RhcnQ7YnJlYWsgYjtjYXNlIFwiY29tcG9zaXRpb25lbmRcIjplPXViLmNvbXBvc2l0aW9uRW5kO2JyZWFrIGI7Y2FzZSBcImNvbXBvc2l0aW9udXBkYXRlXCI6ZT11Yi5jb21wb3NpdGlvblVwZGF0ZTticmVhayBifWU9dm9pZCAwfWVsc2UgeWI/d2IoYSxjKSYmKGU9dWIuY29tcG9zaXRpb25FbmQpOlwia2V5ZG93blwiPT09YSYmMjI5PT09Yy5rZXlDb2RlJiYoZT11Yi5jb21wb3NpdGlvblN0YXJ0KTtlPyhzYiYmXCJrb1wiIT09Yy5sb2NhbGUmJih5Ynx8ZSE9PXViLmNvbXBvc2l0aW9uU3RhcnQ/ZT09PXViLmNvbXBvc2l0aW9uRW5kJiZ5YiYmKGY9ZmIoKSk6KGNiPWQsZGI9XCJ2YWx1ZVwiaW4gY2I/Y2IudmFsdWU6Y2IudGV4dENvbnRlbnQseWI9XG4hMCkpLGU9bGIuZ2V0UG9vbGVkKGUsYixjLGQpLGY/ZS5kYXRhPWY6KGY9eGIoYyksbnVsbCE9PWYmJihlLmRhdGE9ZikpLFFhKGUpLGY9ZSk6Zj1udWxsOyhhPXFiP0FiKGEsYyk6QmIoYSxjKSk/KGI9bWIuZ2V0UG9vbGVkKHViLmJlZm9yZUlucHV0LGIsYyxkKSxiLmRhdGE9YSxRYShiKSk6Yj1udWxsO3JldHVybiBudWxsPT09Zj9iOm51bGw9PT1iP2Y6W2YsYl19fSxEYj1udWxsLEViPW51bGwsRmI9bnVsbDtmdW5jdGlvbiBHYihhKXtpZihhPXRhKGEpKXtpZihcImZ1bmN0aW9uXCIhPT10eXBlb2YgRGIpdGhyb3cgdChFcnJvcigyODApKTt2YXIgYj1zYShhLnN0YXRlTm9kZSk7RGIoYS5zdGF0ZU5vZGUsYS50eXBlLGIpfX1mdW5jdGlvbiBIYihhKXtFYj9GYj9GYi5wdXNoKGEpOkZiPVthXTpFYj1hfWZ1bmN0aW9uIEliKCl7aWYoRWIpe3ZhciBhPUViLGI9RmI7RmI9RWI9bnVsbDtHYihhKTtpZihiKWZvcihhPTA7YTxiLmxlbmd0aDthKyspR2IoYlthXSl9fVxuZnVuY3Rpb24gSmIoYSxiKXtyZXR1cm4gYShiKX1mdW5jdGlvbiBLYihhLGIsYyxkKXtyZXR1cm4gYShiLGMsZCl9ZnVuY3Rpb24gTGIoKXt9dmFyIE1iPUpiLE5iPSExO2Z1bmN0aW9uIE9iKCl7aWYobnVsbCE9PUVifHxudWxsIT09RmIpTGIoKSxJYigpfXZhciBQYj17Y29sb3I6ITAsZGF0ZTohMCxkYXRldGltZTohMCxcImRhdGV0aW1lLWxvY2FsXCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBRYihhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09Yj8hIVBiW2EudHlwZV06XCJ0ZXh0YXJlYVwiPT09Yj8hMDohMX1cbmZ1bmN0aW9uIFJiKGEpe2E9YS50YXJnZXR8fGEuc3JjRWxlbWVudHx8d2luZG93O2EuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQmJihhPWEuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpO3JldHVybiAzPT09YS5ub2RlVHlwZT9hLnBhcmVudE5vZGU6YX1mdW5jdGlvbiBTYihhKXtpZighUmEpcmV0dXJuITE7YT1cIm9uXCIrYTt2YXIgYj1hIGluIGRvY3VtZW50O2J8fChiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksYi5zZXRBdHRyaWJ1dGUoYSxcInJldHVybjtcIiksYj1cImZ1bmN0aW9uXCI9PT10eXBlb2YgYlthXSk7cmV0dXJuIGJ9ZnVuY3Rpb24gVGIoYSl7dmFyIGI9YS50eXBlO3JldHVybihhPWEubm9kZU5hbWUpJiZcImlucHV0XCI9PT1hLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1ifHxcInJhZGlvXCI9PT1iKX1cbmZ1bmN0aW9uIFViKGEpe3ZhciBiPVRiKGEpP1wiY2hlY2tlZFwiOlwidmFsdWVcIixjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsYiksZD1cIlwiK2FbYl07aWYoIWEuaGFzT3duUHJvcGVydHkoYikmJlwidW5kZWZpbmVkXCIhPT10eXBlb2YgYyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGMuZ2V0JiZcImZ1bmN0aW9uXCI9PT10eXBlb2YgYy5zZXQpe3ZhciBlPWMuZ2V0LGY9Yy5zZXQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsYix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LHNldDpmdW5jdGlvbihhKXtkPVwiXCIrYTtmLmNhbGwodGhpcyxhKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxiLHtlbnVtZXJhYmxlOmMuZW51bWVyYWJsZX0pO3JldHVybntnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBkfSxzZXRWYWx1ZTpmdW5jdGlvbihhKXtkPVwiXCIrYX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7YS5fdmFsdWVUcmFja2VyPVxubnVsbDtkZWxldGUgYVtiXX19fX1mdW5jdGlvbiBWYihhKXthLl92YWx1ZVRyYWNrZXJ8fChhLl92YWx1ZVRyYWNrZXI9VWIoYSkpfWZ1bmN0aW9uIFdiKGEpe2lmKCFhKXJldHVybiExO3ZhciBiPWEuX3ZhbHVlVHJhY2tlcjtpZighYilyZXR1cm4hMDt2YXIgYz1iLmdldFZhbHVlKCk7dmFyIGQ9XCJcIjthJiYoZD1UYihhKT9hLmNoZWNrZWQ/XCJ0cnVlXCI6XCJmYWxzZVwiOmEudmFsdWUpO2E9ZDtyZXR1cm4gYSE9PWM/KGIuc2V0VmFsdWUoYSksITApOiExfXZhciBYYj1hYS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtYYi5oYXNPd25Qcm9wZXJ0eShcIlJlYWN0Q3VycmVudERpc3BhdGNoZXJcIil8fChYYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyPXtjdXJyZW50Om51bGx9KTtYYi5oYXNPd25Qcm9wZXJ0eShcIlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnXCIpfHwoWGIuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc9e3N1c3BlbnNlOm51bGx9KTtcbnZhciBZYj0vXiguKilbXFxcXFxcL10vLEI9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcixaYj1CP1N5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpOjYwMTAzLCRiPUI/U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKTo2MDEwNixhYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKTo2MDEwNyxiYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTo2MDEwOCxjYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTo2MDExNCxkYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTo2MDEwOSxlYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpOjYwMTEwLGZjPUI/U3ltYm9sLmZvcihcInJlYWN0LmNvbmN1cnJlbnRfbW9kZVwiKTo2MDExMSxnYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKTo2MDExMixoYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKTo2MDExMyxpYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZV9saXN0XCIpOlxuNjAxMjAsamM9Qj9TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKTo2MDExNSxrYz1CP1N5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpOjYwMTE2O0ImJlN5bWJvbC5mb3IoXCJyZWFjdC5mdW5kYW1lbnRhbFwiKTtCJiZTeW1ib2wuZm9yKFwicmVhY3QucmVzcG9uZGVyXCIpO3ZhciBsYz1cImZ1bmN0aW9uXCI9PT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3I7ZnVuY3Rpb24gbWMoYSl7aWYobnVsbD09PWF8fFwib2JqZWN0XCIhPT10eXBlb2YgYSlyZXR1cm4gbnVsbDthPWxjJiZhW2xjXXx8YVtcIkBAaXRlcmF0b3JcIl07cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YTpudWxsfVxuZnVuY3Rpb24gb2MoYSl7aWYobnVsbD09YSlyZXR1cm4gbnVsbDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYSlyZXR1cm4gYS5kaXNwbGF5TmFtZXx8YS5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PT10eXBlb2YgYSlyZXR1cm4gYTtzd2l0Y2goYSl7Y2FzZSBhYzpyZXR1cm5cIkZyYWdtZW50XCI7Y2FzZSAkYjpyZXR1cm5cIlBvcnRhbFwiO2Nhc2UgY2M6cmV0dXJuXCJQcm9maWxlclwiO2Nhc2UgYmM6cmV0dXJuXCJTdHJpY3RNb2RlXCI7Y2FzZSBoYzpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBpYzpyZXR1cm5cIlN1c3BlbnNlTGlzdFwifWlmKFwib2JqZWN0XCI9PT10eXBlb2YgYSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBlYzpyZXR1cm5cIkNvbnRleHQuQ29uc3VtZXJcIjtjYXNlIGRjOnJldHVyblwiQ29udGV4dC5Qcm92aWRlclwiO2Nhc2UgZ2M6dmFyIGI9YS5yZW5kZXI7Yj1iLmRpc3BsYXlOYW1lfHxiLm5hbWV8fFwiXCI7cmV0dXJuIGEuZGlzcGxheU5hbWV8fChcIlwiIT09Yj9cIkZvcndhcmRSZWYoXCIrYitcIilcIjpcblwiRm9yd2FyZFJlZlwiKTtjYXNlIGpjOnJldHVybiBvYyhhLnR5cGUpO2Nhc2Uga2M6aWYoYT0xPT09YS5fc3RhdHVzP2EuX3Jlc3VsdDpudWxsKXJldHVybiBvYyhhKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwYyhhKXt2YXIgYj1cIlwiO2Rve2E6c3dpdGNoKGEudGFnKXtjYXNlIDM6Y2FzZSA0OmNhc2UgNjpjYXNlIDc6Y2FzZSAxMDpjYXNlIDk6dmFyIGM9XCJcIjticmVhayBhO2RlZmF1bHQ6dmFyIGQ9YS5fZGVidWdPd25lcixlPWEuX2RlYnVnU291cmNlLGY9b2MoYS50eXBlKTtjPW51bGw7ZCYmKGM9b2MoZC50eXBlKSk7ZD1mO2Y9XCJcIjtlP2Y9XCIgKGF0IFwiK2UuZmlsZU5hbWUucmVwbGFjZShZYixcIlwiKStcIjpcIitlLmxpbmVOdW1iZXIrXCIpXCI6YyYmKGY9XCIgKGNyZWF0ZWQgYnkgXCIrYytcIilcIik7Yz1cIlxcbiAgICBpbiBcIisoZHx8XCJVbmtub3duXCIpK2Z9Yis9YzthPWEucmV0dXJufXdoaWxlKGEpO3JldHVybiBifVxudmFyIHFjPS9eWzpBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXVs6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSokLyxyYz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHNjPXt9LHRjPXt9O1xuZnVuY3Rpb24gdWMoYSl7aWYocmMuY2FsbCh0YyxhKSlyZXR1cm4hMDtpZihyYy5jYWxsKHNjLGEpKXJldHVybiExO2lmKHFjLnRlc3QoYSkpcmV0dXJuIHRjW2FdPSEwO3NjW2FdPSEwO3JldHVybiExfWZ1bmN0aW9uIHZjKGEsYixjLGQpe2lmKG51bGwhPT1jJiYwPT09Yy50eXBlKXJldHVybiExO3N3aXRjaCh0eXBlb2YgYil7Y2FzZSBcImZ1bmN0aW9uXCI6Y2FzZSBcInN5bWJvbFwiOnJldHVybiEwO2Nhc2UgXCJib29sZWFuXCI6aWYoZClyZXR1cm4hMTtpZihudWxsIT09YylyZXR1cm4hYy5hY2NlcHRzQm9vbGVhbnM7YT1hLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtyZXR1cm5cImRhdGEtXCIhPT1hJiZcImFyaWEtXCIhPT1hO2RlZmF1bHQ6cmV0dXJuITF9fVxuZnVuY3Rpb24gd2MoYSxiLGMsZCl7aWYobnVsbD09PWJ8fFwidW5kZWZpbmVkXCI9PT10eXBlb2YgYnx8dmMoYSxiLGMsZCkpcmV0dXJuITA7aWYoZClyZXR1cm4hMTtpZihudWxsIT09Yylzd2l0Y2goYy50eXBlKXtjYXNlIDM6cmV0dXJuIWI7Y2FzZSA0OnJldHVybiExPT09YjtjYXNlIDU6cmV0dXJuIGlzTmFOKGIpO2Nhc2UgNjpyZXR1cm4gaXNOYU4oYil8fDE+Yn1yZXR1cm4hMX1mdW5jdGlvbiBEKGEsYixjLGQsZSxmKXt0aGlzLmFjY2VwdHNCb29sZWFucz0yPT09Ynx8Mz09PWJ8fDQ9PT1iO3RoaXMuYXR0cmlidXRlTmFtZT1kO3RoaXMuYXR0cmlidXRlTmFtZXNwYWNlPWU7dGhpcy5tdXN0VXNlUHJvcGVydHk9Yzt0aGlzLnByb3BlcnR5TmFtZT1hO3RoaXMudHlwZT1iO3RoaXMuc2FuaXRpemVVUkw9Zn12YXIgRj17fTtcblwiY2hpbGRyZW4gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgZGVmYXVsdFZhbHVlIGRlZmF1bHRDaGVja2VkIGlubmVySFRNTCBzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIHN0eWxlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDAsITEsYSxudWxsLCExKX0pO1tbXCJhY2NlcHRDaGFyc2V0XCIsXCJhY2NlcHQtY2hhcnNldFwiXSxbXCJjbGFzc05hbWVcIixcImNsYXNzXCJdLFtcImh0bWxGb3JcIixcImZvclwiXSxbXCJodHRwRXF1aXZcIixcImh0dHAtZXF1aXZcIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7dmFyIGI9YVswXTtGW2JdPW5ldyBEKGIsMSwhMSxhWzFdLG51bGwsITEpfSk7W1wiY29udGVudEVkaXRhYmxlXCIsXCJkcmFnZ2FibGVcIixcInNwZWxsQ2hlY2tcIixcInZhbHVlXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDIsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7XG5bXCJhdXRvUmV2ZXJzZVwiLFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFwiZm9jdXNhYmxlXCIsXCJwcmVzZXJ2ZUFscGhhXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDIsITEsYSxudWxsLCExKX0pO1wiYWxsb3dGdWxsU2NyZWVuIGFzeW5jIGF1dG9Gb2N1cyBhdXRvUGxheSBjb250cm9scyBkZWZhdWx0IGRlZmVyIGRpc2FibGVkIGRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIGZvcm1Ob1ZhbGlkYXRlIGhpZGRlbiBsb29wIG5vTW9kdWxlIG5vVmFsaWRhdGUgb3BlbiBwbGF5c0lubGluZSByZWFkT25seSByZXF1aXJlZCByZXZlcnNlZCBzY29wZWQgc2VhbWxlc3MgaXRlbVNjb3BlXCIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDMsITEsYS50b0xvd2VyQ2FzZSgpLG51bGwsITEpfSk7XG5bXCJjaGVja2VkXCIsXCJtdWx0aXBsZVwiLFwibXV0ZWRcIixcInNlbGVjdGVkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDMsITAsYSxudWxsLCExKX0pO1tcImNhcHR1cmVcIixcImRvd25sb2FkXCJdLmZvckVhY2goZnVuY3Rpb24oYSl7RlthXT1uZXcgRChhLDQsITEsYSxudWxsLCExKX0pO1tcImNvbHNcIixcInJvd3NcIixcInNpemVcIixcInNwYW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtGW2FdPW5ldyBEKGEsNiwhMSxhLG51bGwsITEpfSk7W1wicm93U3BhblwiLFwic3RhcnRcIl0uZm9yRWFjaChmdW5jdGlvbihhKXtGW2FdPW5ldyBEKGEsNSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSl9KTt2YXIgeGM9L1tcXC06XShbYS16XSkvZztmdW5jdGlvbiB5YyhhKXtyZXR1cm4gYVsxXS50b1VwcGVyQ2FzZSgpfVxuXCJhY2NlbnQtaGVpZ2h0IGFsaWdubWVudC1iYXNlbGluZSBhcmFiaWMtZm9ybSBiYXNlbGluZS1zaGlmdCBjYXAtaGVpZ2h0IGNsaXAtcGF0aCBjbGlwLXJ1bGUgY29sb3ItaW50ZXJwb2xhdGlvbiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMgY29sb3ItcHJvZmlsZSBjb2xvci1yZW5kZXJpbmcgZG9taW5hbnQtYmFzZWxpbmUgZW5hYmxlLWJhY2tncm91bmQgZmlsbC1vcGFjaXR5IGZpbGwtcnVsZSBmbG9vZC1jb2xvciBmbG9vZC1vcGFjaXR5IGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSBmb250LXNpemUtYWRqdXN0IGZvbnQtc3RyZXRjaCBmb250LXN0eWxlIGZvbnQtdmFyaWFudCBmb250LXdlaWdodCBnbHlwaC1uYW1lIGdseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwgZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwgaG9yaXotYWR2LXggaG9yaXotb3JpZ2luLXggaW1hZ2UtcmVuZGVyaW5nIGxldHRlci1zcGFjaW5nIGxpZ2h0aW5nLWNvbG9yIG1hcmtlci1lbmQgbWFya2VyLW1pZCBtYXJrZXItc3RhcnQgb3ZlcmxpbmUtcG9zaXRpb24gb3ZlcmxpbmUtdGhpY2tuZXNzIHBhaW50LW9yZGVyIHBhbm9zZS0xIHBvaW50ZXItZXZlbnRzIHJlbmRlcmluZy1pbnRlbnQgc2hhcGUtcmVuZGVyaW5nIHN0b3AtY29sb3Igc3RvcC1vcGFjaXR5IHN0cmlrZXRocm91Z2gtcG9zaXRpb24gc3RyaWtldGhyb3VnaC10aGlja25lc3Mgc3Ryb2tlLWRhc2hhcnJheSBzdHJva2UtZGFzaG9mZnNldCBzdHJva2UtbGluZWNhcCBzdHJva2UtbGluZWpvaW4gc3Ryb2tlLW1pdGVybGltaXQgc3Ryb2tlLW9wYWNpdHkgc3Ryb2tlLXdpZHRoIHRleHQtYW5jaG9yIHRleHQtZGVjb3JhdGlvbiB0ZXh0LXJlbmRlcmluZyB1bmRlcmxpbmUtcG9zaXRpb24gdW5kZXJsaW5lLXRoaWNrbmVzcyB1bmljb2RlLWJpZGkgdW5pY29kZS1yYW5nZSB1bml0cy1wZXItZW0gdi1hbHBoYWJldGljIHYtaGFuZ2luZyB2LWlkZW9ncmFwaGljIHYtbWF0aGVtYXRpY2FsIHZlY3Rvci1lZmZlY3QgdmVydC1hZHYteSB2ZXJ0LW9yaWdpbi14IHZlcnQtb3JpZ2luLXkgd29yZC1zcGFjaW5nIHdyaXRpbmctbW9kZSB4bWxuczp4bGluayB4LWhlaWdodFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZSh4YyxcbnljKTtGW2JdPW5ldyBEKGIsMSwhMSxhLG51bGwsITEpfSk7XCJ4bGluazphY3R1YXRlIHhsaW5rOmFyY3JvbGUgeGxpbms6cm9sZSB4bGluazpzaG93IHhsaW5rOnRpdGxlIHhsaW5rOnR5cGVcIi5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoeGMseWMpO0ZbYl09bmV3IEQoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsITEpfSk7W1wieG1sOmJhc2VcIixcInhtbDpsYW5nXCIsXCJ4bWw6c3BhY2VcIl0uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoeGMseWMpO0ZbYl09bmV3IEQoYiwxLCExLGEsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIiwhMSl9KTtbXCJ0YWJJbmRleFwiLFwiY3Jvc3NPcmlnaW5cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtGW2FdPW5ldyBEKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMSl9KTtcbkYueGxpbmtIcmVmPW5ldyBEKFwieGxpbmtIcmVmXCIsMSwhMSxcInhsaW5rOmhyZWZcIixcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiwhMCk7W1wic3JjXCIsXCJocmVmXCIsXCJhY3Rpb25cIixcImZvcm1BY3Rpb25cIl0uZm9yRWFjaChmdW5jdGlvbihhKXtGW2FdPW5ldyBEKGEsMSwhMSxhLnRvTG93ZXJDYXNlKCksbnVsbCwhMCl9KTtcbmZ1bmN0aW9uIHpjKGEsYixjLGQpe3ZhciBlPUYuaGFzT3duUHJvcGVydHkoYik/RltiXTpudWxsO3ZhciBmPW51bGwhPT1lPzA9PT1lLnR5cGU6ZD8hMTohKDI8Yi5sZW5ndGgpfHxcIm9cIiE9PWJbMF0mJlwiT1wiIT09YlswXXx8XCJuXCIhPT1iWzFdJiZcIk5cIiE9PWJbMV0/ITE6ITA7Znx8KHdjKGIsYyxlLGQpJiYoYz1udWxsKSxkfHxudWxsPT09ZT91YyhiKSYmKG51bGw9PT1jP2EucmVtb3ZlQXR0cmlidXRlKGIpOmEuc2V0QXR0cmlidXRlKGIsXCJcIitjKSk6ZS5tdXN0VXNlUHJvcGVydHk/YVtlLnByb3BlcnR5TmFtZV09bnVsbD09PWM/Mz09PWUudHlwZT8hMTpcIlwiOmM6KGI9ZS5hdHRyaWJ1dGVOYW1lLGQ9ZS5hdHRyaWJ1dGVOYW1lc3BhY2UsbnVsbD09PWM/YS5yZW1vdmVBdHRyaWJ1dGUoYik6KGU9ZS50eXBlLGM9Mz09PWV8fDQ9PT1lJiYhMD09PWM/XCJcIjpcIlwiK2MsZD9hLnNldEF0dHJpYnV0ZU5TKGQsYixjKTphLnNldEF0dHJpYnV0ZShiLGMpKSkpfVxuZnVuY3Rpb24gQWMoYSl7c3dpdGNoKHR5cGVvZiBhKXtjYXNlIFwiYm9vbGVhblwiOmNhc2UgXCJudW1iZXJcIjpjYXNlIFwib2JqZWN0XCI6Y2FzZSBcInN0cmluZ1wiOmNhc2UgXCJ1bmRlZmluZWRcIjpyZXR1cm4gYTtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIEJjKGEsYil7dmFyIGM9Yi5jaGVja2VkO3JldHVybiBtKHt9LGIse2RlZmF1bHRDaGVja2VkOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLHZhbHVlOnZvaWQgMCxjaGVja2VkOm51bGwhPWM/YzphLl93cmFwcGVyU3RhdGUuaW5pdGlhbENoZWNrZWR9KX1cbmZ1bmN0aW9uIENjKGEsYil7dmFyIGM9bnVsbD09Yi5kZWZhdWx0VmFsdWU/XCJcIjpiLmRlZmF1bHRWYWx1ZSxkPW51bGwhPWIuY2hlY2tlZD9iLmNoZWNrZWQ6Yi5kZWZhdWx0Q2hlY2tlZDtjPUFjKG51bGwhPWIudmFsdWU/Yi52YWx1ZTpjKTthLl93cmFwcGVyU3RhdGU9e2luaXRpYWxDaGVja2VkOmQsaW5pdGlhbFZhbHVlOmMsY29udHJvbGxlZDpcImNoZWNrYm94XCI9PT1iLnR5cGV8fFwicmFkaW9cIj09PWIudHlwZT9udWxsIT1iLmNoZWNrZWQ6bnVsbCE9Yi52YWx1ZX19ZnVuY3Rpb24gRGMoYSxiKXtiPWIuY2hlY2tlZDtudWxsIT1iJiZ6YyhhLFwiY2hlY2tlZFwiLGIsITEpfVxuZnVuY3Rpb24gRWMoYSxiKXtEYyhhLGIpO3ZhciBjPUFjKGIudmFsdWUpLGQ9Yi50eXBlO2lmKG51bGwhPWMpaWYoXCJudW1iZXJcIj09PWQpe2lmKDA9PT1jJiZcIlwiPT09YS52YWx1ZXx8YS52YWx1ZSE9YylhLnZhbHVlPVwiXCIrY31lbHNlIGEudmFsdWUhPT1cIlwiK2MmJihhLnZhbHVlPVwiXCIrYyk7ZWxzZSBpZihcInN1Ym1pdFwiPT09ZHx8XCJyZXNldFwiPT09ZCl7YS5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtyZXR1cm59Yi5oYXNPd25Qcm9wZXJ0eShcInZhbHVlXCIpP0ZjKGEsYi50eXBlLGMpOmIuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0VmFsdWVcIikmJkZjKGEsYi50eXBlLEFjKGIuZGVmYXVsdFZhbHVlKSk7bnVsbD09Yi5jaGVja2VkJiZudWxsIT1iLmRlZmF1bHRDaGVja2VkJiYoYS5kZWZhdWx0Q2hlY2tlZD0hIWIuZGVmYXVsdENoZWNrZWQpfVxuZnVuY3Rpb24gR2MoYSxiLGMpe2lmKGIuaGFzT3duUHJvcGVydHkoXCJ2YWx1ZVwiKXx8Yi5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRWYWx1ZVwiKSl7dmFyIGQ9Yi50eXBlO2lmKCEoXCJzdWJtaXRcIiE9PWQmJlwicmVzZXRcIiE9PWR8fHZvaWQgMCE9PWIudmFsdWUmJm51bGwhPT1iLnZhbHVlKSlyZXR1cm47Yj1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU7Y3x8Yj09PWEudmFsdWV8fChhLnZhbHVlPWIpO2EuZGVmYXVsdFZhbHVlPWJ9Yz1hLm5hbWU7XCJcIiE9PWMmJihhLm5hbWU9XCJcIik7YS5kZWZhdWx0Q2hlY2tlZD0hYS5kZWZhdWx0Q2hlY2tlZDthLmRlZmF1bHRDaGVja2VkPSEhYS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkO1wiXCIhPT1jJiYoYS5uYW1lPWMpfVxuZnVuY3Rpb24gRmMoYSxiLGMpe2lmKFwibnVtYmVyXCIhPT1ifHxhLm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PWEpbnVsbD09Yz9hLmRlZmF1bHRWYWx1ZT1cIlwiK2EuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWU6YS5kZWZhdWx0VmFsdWUhPT1cIlwiK2MmJihhLmRlZmF1bHRWYWx1ZT1cIlwiK2MpfXZhciBIYz17Y2hhbmdlOntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDpcIm9uQ2hhbmdlXCIsY2FwdHVyZWQ6XCJvbkNoYW5nZUNhcHR1cmVcIn0sZGVwZW5kZW5jaWVzOlwiYmx1ciBjaGFuZ2UgY2xpY2sgZm9jdXMgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIil9fTtmdW5jdGlvbiBJYyhhLGIsYyl7YT15LmdldFBvb2xlZChIYy5jaGFuZ2UsYSxiLGMpO2EudHlwZT1cImNoYW5nZVwiO0hiKGMpO1FhKGEpO3JldHVybiBhfXZhciBKYz1udWxsLEtjPW51bGw7ZnVuY3Rpb24gTGMoYSl7QmEoYSl9XG5mdW5jdGlvbiBNYyhhKXt2YXIgYj1KYShhKTtpZihXYihiKSlyZXR1cm4gYX1mdW5jdGlvbiBOYyhhLGIpe2lmKFwiY2hhbmdlXCI9PT1hKXJldHVybiBifXZhciBPYz0hMTtSYSYmKE9jPVNiKFwiaW5wdXRcIikmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSkpO2Z1bmN0aW9uIFBjKCl7SmMmJihKYy5kZXRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixRYyksS2M9SmM9bnVsbCl9ZnVuY3Rpb24gUWMoYSl7aWYoXCJ2YWx1ZVwiPT09YS5wcm9wZXJ0eU5hbWUmJk1jKEtjKSlpZihhPUljKEtjLGEsUmIoYSkpLE5iKUJhKGEpO2Vsc2V7TmI9ITA7dHJ5e0piKExjLGEpfWZpbmFsbHl7TmI9ITEsT2IoKX19fWZ1bmN0aW9uIFJjKGEsYixjKXtcImZvY3VzXCI9PT1hPyhQYygpLEpjPWIsS2M9YyxKYy5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIixRYykpOlwiYmx1clwiPT09YSYmUGMoKX1cbmZ1bmN0aW9uIFNjKGEpe2lmKFwic2VsZWN0aW9uY2hhbmdlXCI9PT1hfHxcImtleXVwXCI9PT1hfHxcImtleWRvd25cIj09PWEpcmV0dXJuIE1jKEtjKX1mdW5jdGlvbiBUYyhhLGIpe2lmKFwiY2xpY2tcIj09PWEpcmV0dXJuIE1jKGIpfWZ1bmN0aW9uIFVjKGEsYil7aWYoXCJpbnB1dFwiPT09YXx8XCJjaGFuZ2VcIj09PWEpcmV0dXJuIE1jKGIpfVxudmFyIFZjPXtldmVudFR5cGVzOkhjLF9pc0lucHV0RXZlbnRTdXBwb3J0ZWQ6T2MsZXh0cmFjdEV2ZW50czpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iP0phKGIpOndpbmRvdyxmPXZvaWQgMCxoPXZvaWQgMCxnPWUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcInNlbGVjdFwiPT09Z3x8XCJpbnB1dFwiPT09ZyYmXCJmaWxlXCI9PT1lLnR5cGU/Zj1OYzpRYihlKT9PYz9mPVVjOihmPVNjLGg9UmMpOihnPWUubm9kZU5hbWUpJiZcImlucHV0XCI9PT1nLnRvTG93ZXJDYXNlKCkmJihcImNoZWNrYm94XCI9PT1lLnR5cGV8fFwicmFkaW9cIj09PWUudHlwZSkmJihmPVRjKTtpZihmJiYoZj1mKGEsYikpKXJldHVybiBJYyhmLGMsZCk7aCYmaChhLGUsYik7XCJibHVyXCI9PT1hJiYoYT1lLl93cmFwcGVyU3RhdGUpJiZhLmNvbnRyb2xsZWQmJlwibnVtYmVyXCI9PT1lLnR5cGUmJkZjKGUsXCJudW1iZXJcIixlLnZhbHVlKX19LFdjPXkuZXh0ZW5kKHt2aWV3Om51bGwsZGV0YWlsOm51bGx9KSxYYz17QWx0OlwiYWx0S2V5XCIsXG5Db250cm9sOlwiY3RybEtleVwiLE1ldGE6XCJtZXRhS2V5XCIsU2hpZnQ6XCJzaGlmdEtleVwifTtmdW5jdGlvbiBZYyhhKXt2YXIgYj10aGlzLm5hdGl2ZUV2ZW50O3JldHVybiBiLmdldE1vZGlmaWVyU3RhdGU/Yi5nZXRNb2RpZmllclN0YXRlKGEpOihhPVhjW2FdKT8hIWJbYV06ITF9ZnVuY3Rpb24gWmMoKXtyZXR1cm4gWWN9XG52YXIgJGM9MCxhZD0wLGJkPSExLGNkPSExLGRkPVdjLmV4dGVuZCh7c2NyZWVuWDpudWxsLHNjcmVlblk6bnVsbCxjbGllbnRYOm51bGwsY2xpZW50WTpudWxsLHBhZ2VYOm51bGwscGFnZVk6bnVsbCxjdHJsS2V5Om51bGwsc2hpZnRLZXk6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpaYyxidXR0b246bnVsbCxidXR0b25zOm51bGwscmVsYXRlZFRhcmdldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZWxhdGVkVGFyZ2V0fHwoYS5mcm9tRWxlbWVudD09PWEuc3JjRWxlbWVudD9hLnRvRWxlbWVudDphLmZyb21FbGVtZW50KX0sbW92ZW1lbnRYOmZ1bmN0aW9uKGEpe2lmKFwibW92ZW1lbnRYXCJpbiBhKXJldHVybiBhLm1vdmVtZW50WDt2YXIgYj0kYzskYz1hLnNjcmVlblg7cmV0dXJuIGJkP1wibW91c2Vtb3ZlXCI9PT1hLnR5cGU/YS5zY3JlZW5YLWI6MDooYmQ9ITAsMCl9LG1vdmVtZW50WTpmdW5jdGlvbihhKXtpZihcIm1vdmVtZW50WVwiaW4gYSlyZXR1cm4gYS5tb3ZlbWVudFk7XG52YXIgYj1hZDthZD1hLnNjcmVlblk7cmV0dXJuIGNkP1wibW91c2Vtb3ZlXCI9PT1hLnR5cGU/YS5zY3JlZW5ZLWI6MDooY2Q9ITAsMCl9fSksZWQ9ZGQuZXh0ZW5kKHtwb2ludGVySWQ6bnVsbCx3aWR0aDpudWxsLGhlaWdodDpudWxsLHByZXNzdXJlOm51bGwsdGFuZ2VudGlhbFByZXNzdXJlOm51bGwsdGlsdFg6bnVsbCx0aWx0WTpudWxsLHR3aXN0Om51bGwscG9pbnRlclR5cGU6bnVsbCxpc1ByaW1hcnk6bnVsbH0pLGZkPXttb3VzZUVudGVyOntyZWdpc3RyYXRpb25OYW1lOlwib25Nb3VzZUVudGVyXCIsZGVwZW5kZW5jaWVzOltcIm1vdXNlb3V0XCIsXCJtb3VzZW92ZXJcIl19LG1vdXNlTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6XCJvbk1vdXNlTGVhdmVcIixkZXBlbmRlbmNpZXM6W1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXX0scG9pbnRlckVudGVyOntyZWdpc3RyYXRpb25OYW1lOlwib25Qb2ludGVyRW50ZXJcIixkZXBlbmRlbmNpZXM6W1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl19LHBvaW50ZXJMZWF2ZTp7cmVnaXN0cmF0aW9uTmFtZTpcIm9uUG9pbnRlckxlYXZlXCIsXG5kZXBlbmRlbmNpZXM6W1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl19fSxnZD17ZXZlbnRUeXBlczpmZCxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVwibW91c2VvdmVyXCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hLGY9XCJtb3VzZW91dFwiPT09YXx8XCJwb2ludGVyb3V0XCI9PT1hO2lmKGUmJihjLnJlbGF0ZWRUYXJnZXR8fGMuZnJvbUVsZW1lbnQpfHwhZiYmIWUpcmV0dXJuIG51bGw7ZT1kLndpbmRvdz09PWQ/ZDooZT1kLm93bmVyRG9jdW1lbnQpP2UuZGVmYXVsdFZpZXd8fGUucGFyZW50V2luZG93OndpbmRvdztmPyhmPWIsYj0oYj1jLnJlbGF0ZWRUYXJnZXR8fGMudG9FbGVtZW50KT9IYShiKTpudWxsKTpmPW51bGw7aWYoZj09PWIpcmV0dXJuIG51bGw7dmFyIGg9dm9pZCAwLGc9dm9pZCAwLGs9dm9pZCAwLGw9dm9pZCAwO2lmKFwibW91c2VvdXRcIj09PWF8fFwibW91c2VvdmVyXCI9PT1hKWg9ZGQsZz1mZC5tb3VzZUxlYXZlLGs9ZmQubW91c2VFbnRlcixsPVwibW91c2VcIjtcbmVsc2UgaWYoXCJwb2ludGVyb3V0XCI9PT1hfHxcInBvaW50ZXJvdmVyXCI9PT1hKWg9ZWQsZz1mZC5wb2ludGVyTGVhdmUsaz1mZC5wb2ludGVyRW50ZXIsbD1cInBvaW50ZXJcIjt2YXIgbj1udWxsPT1mP2U6SmEoZik7ZT1udWxsPT1iP2U6SmEoYik7YT1oLmdldFBvb2xlZChnLGYsYyxkKTthLnR5cGU9bCtcImxlYXZlXCI7YS50YXJnZXQ9bjthLnJlbGF0ZWRUYXJnZXQ9ZTtjPWguZ2V0UG9vbGVkKGssYixjLGQpO2MudHlwZT1sK1wiZW50ZXJcIjtjLnRhcmdldD1lO2MucmVsYXRlZFRhcmdldD1uO2Q9YjtpZihmJiZkKWE6e2I9ZjtlPWQ7bD0wO2ZvcihoPWI7aDtoPUxhKGgpKWwrKztoPTA7Zm9yKGs9ZTtrO2s9TGEoaykpaCsrO2Zvcig7MDxsLWg7KWI9TGEoYiksbC0tO2Zvcig7MDxoLWw7KWU9TGEoZSksaC0tO2Zvcig7bC0tOyl7aWYoYj09PWV8fGI9PT1lLmFsdGVybmF0ZSlicmVhayBhO2I9TGEoYik7ZT1MYShlKX1iPW51bGx9ZWxzZSBiPW51bGw7ZT1iO2ZvcihiPVtdO2YmJmYhPT1lOyl7bD1cbmYuYWx0ZXJuYXRlO2lmKG51bGwhPT1sJiZsPT09ZSlicmVhaztiLnB1c2goZik7Zj1MYShmKX1mb3IoZj1bXTtkJiZkIT09ZTspe2w9ZC5hbHRlcm5hdGU7aWYobnVsbCE9PWwmJmw9PT1lKWJyZWFrO2YucHVzaChkKTtkPUxhKGQpfWZvcihkPTA7ZDxiLmxlbmd0aDtkKyspT2EoYltkXSxcImJ1YmJsZWRcIixhKTtmb3IoZD1mLmxlbmd0aDswPGQtLTspT2EoZltkXSxcImNhcHR1cmVkXCIsYyk7cmV0dXJuW2EsY119fTtmdW5jdGlvbiBoZChhLGIpe3JldHVybiBhPT09YiYmKDAhPT1hfHwxL2E9PT0xL2IpfHxhIT09YSYmYiE9PWJ9dmFyIGlkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5mdW5jdGlvbiBqZChhLGIpe2lmKGhkKGEsYikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9PXR5cGVvZiBhfHxudWxsPT09YXx8XCJvYmplY3RcIiE9PXR5cGVvZiBifHxudWxsPT09YilyZXR1cm4hMTt2YXIgYz1PYmplY3Qua2V5cyhhKSxkPU9iamVjdC5rZXlzKGIpO2lmKGMubGVuZ3RoIT09ZC5sZW5ndGgpcmV0dXJuITE7Zm9yKGQ9MDtkPGMubGVuZ3RoO2QrKylpZighaWQuY2FsbChiLGNbZF0pfHwhaGQoYVtjW2RdXSxiW2NbZF1dKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBrZChhLGIpe3JldHVybntyZXNwb25kZXI6YSxwcm9wczpifX1uZXcgTWFwO25ldyBNYXA7bmV3IFNldDtuZXcgTWFwO1xuZnVuY3Rpb24gbGQoYSl7dmFyIGI9YTtpZihhLmFsdGVybmF0ZSlmb3IoO2IucmV0dXJuOyliPWIucmV0dXJuO2Vsc2V7aWYoMCE9PShiLmVmZmVjdFRhZyYyKSlyZXR1cm4gMTtmb3IoO2IucmV0dXJuOylpZihiPWIucmV0dXJuLDAhPT0oYi5lZmZlY3RUYWcmMikpcmV0dXJuIDF9cmV0dXJuIDM9PT1iLnRhZz8yOjN9ZnVuY3Rpb24gb2QoYSl7aWYoMiE9PWxkKGEpKXRocm93IHQoRXJyb3IoMTg4KSk7fVxuZnVuY3Rpb24gcGQoYSl7dmFyIGI9YS5hbHRlcm5hdGU7aWYoIWIpe2I9bGQoYSk7aWYoMz09PWIpdGhyb3cgdChFcnJvcigxODgpKTtyZXR1cm4gMT09PWI/bnVsbDphfWZvcih2YXIgYz1hLGQ9Yjs7KXt2YXIgZT1jLnJldHVybjtpZihudWxsPT09ZSlicmVhazt2YXIgZj1lLmFsdGVybmF0ZTtpZihudWxsPT09Zil7ZD1lLnJldHVybjtpZihudWxsIT09ZCl7Yz1kO2NvbnRpbnVlfWJyZWFrfWlmKGUuY2hpbGQ9PT1mLmNoaWxkKXtmb3IoZj1lLmNoaWxkO2Y7KXtpZihmPT09YylyZXR1cm4gb2QoZSksYTtpZihmPT09ZClyZXR1cm4gb2QoZSksYjtmPWYuc2libGluZ310aHJvdyB0KEVycm9yKDE4OCkpO31pZihjLnJldHVybiE9PWQucmV0dXJuKWM9ZSxkPWY7ZWxzZXtmb3IodmFyIGg9ITEsZz1lLmNoaWxkO2c7KXtpZihnPT09Yyl7aD0hMDtjPWU7ZD1mO2JyZWFrfWlmKGc9PT1kKXtoPSEwO2Q9ZTtjPWY7YnJlYWt9Zz1nLnNpYmxpbmd9aWYoIWgpe2ZvcihnPWYuY2hpbGQ7Zzspe2lmKGc9PT1cbmMpe2g9ITA7Yz1mO2Q9ZTticmVha31pZihnPT09ZCl7aD0hMDtkPWY7Yz1lO2JyZWFrfWc9Zy5zaWJsaW5nfWlmKCFoKXRocm93IHQoRXJyb3IoMTg5KSk7fX1pZihjLmFsdGVybmF0ZSE9PWQpdGhyb3cgdChFcnJvcigxOTApKTt9aWYoMyE9PWMudGFnKXRocm93IHQoRXJyb3IoMTg4KSk7cmV0dXJuIGMuc3RhdGVOb2RlLmN1cnJlbnQ9PT1jP2E6Yn1mdW5jdGlvbiBxZChhKXthPXBkKGEpO2lmKCFhKXJldHVybiBudWxsO2Zvcih2YXIgYj1hOzspe2lmKDU9PT1iLnRhZ3x8Nj09PWIudGFnKXJldHVybiBiO2lmKGIuY2hpbGQpYi5jaGlsZC5yZXR1cm49YixiPWIuY2hpbGQ7ZWxzZXtpZihiPT09YSlicmVhaztmb3IoOyFiLnNpYmxpbmc7KXtpZighYi5yZXR1cm58fGIucmV0dXJuPT09YSlyZXR1cm4gbnVsbDtiPWIucmV0dXJufWIuc2libGluZy5yZXR1cm49Yi5yZXR1cm47Yj1iLnNpYmxpbmd9fXJldHVybiBudWxsfVxudmFyIHJkPXkuZXh0ZW5kKHthbmltYXRpb25OYW1lOm51bGwsZWxhcHNlZFRpbWU6bnVsbCxwc2V1ZG9FbGVtZW50Om51bGx9KSxzZD15LmV4dGVuZCh7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihhKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGE/YS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pLHRkPVdjLmV4dGVuZCh7cmVsYXRlZFRhcmdldDpudWxsfSk7ZnVuY3Rpb24gdWQoYSl7dmFyIGI9YS5rZXlDb2RlO1wiY2hhckNvZGVcImluIGE/KGE9YS5jaGFyQ29kZSwwPT09YSYmMTM9PT1iJiYoYT0xMykpOmE9YjsxMD09PWEmJihhPTEzKTtyZXR1cm4gMzI8PWF8fDEzPT09YT9hOjB9XG52YXIgdmQ9e0VzYzpcIkVzY2FwZVwiLFNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LHdkPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLFxuMTE2OlwiRjVcIiwxMTc6XCJGNlwiLDExODpcIkY3XCIsMTE5OlwiRjhcIiwxMjA6XCJGOVwiLDEyMTpcIkYxMFwiLDEyMjpcIkYxMVwiLDEyMzpcIkYxMlwiLDE0NDpcIk51bUxvY2tcIiwxNDU6XCJTY3JvbGxMb2NrXCIsMjI0OlwiTWV0YVwifSx4ZD1XYy5leHRlbmQoe2tleTpmdW5jdGlvbihhKXtpZihhLmtleSl7dmFyIGI9dmRbYS5rZXldfHxhLmtleTtpZihcIlVuaWRlbnRpZmllZFwiIT09YilyZXR1cm4gYn1yZXR1cm5cImtleXByZXNzXCI9PT1hLnR5cGU/KGE9dWQoYSksMTM9PT1hP1wiRW50ZXJcIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP3dkW2Eua2V5Q29kZV18fFwiVW5pZGVudGlmaWVkXCI6XCJcIn0sbG9jYXRpb246bnVsbCxjdHJsS2V5Om51bGwsc2hpZnRLZXk6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwscmVwZWF0Om51bGwsbG9jYWxlOm51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpaYyxjaGFyQ29kZTpmdW5jdGlvbihhKXtyZXR1cm5cImtleXByZXNzXCI9PT1cbmEudHlwZT91ZChhKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5ZG93blwiPT09YS50eXBlfHxcImtleXVwXCI9PT1hLnR5cGU/YS5rZXlDb2RlOjB9LHdoaWNoOmZ1bmN0aW9uKGEpe3JldHVyblwia2V5cHJlc3NcIj09PWEudHlwZT91ZChhKTpcImtleWRvd25cIj09PWEudHlwZXx8XCJrZXl1cFwiPT09YS50eXBlP2Eua2V5Q29kZTowfX0pLHlkPWRkLmV4dGVuZCh7ZGF0YVRyYW5zZmVyOm51bGx9KSx6ZD1XYy5leHRlbmQoe3RvdWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNoaWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTpaY30pLEFkPXkuZXh0ZW5kKHtwcm9wZXJ0eU5hbWU6bnVsbCxlbGFwc2VkVGltZTpudWxsLHBzZXVkb0VsZW1lbnQ6bnVsbH0pLEJkPWRkLmV4dGVuZCh7ZGVsdGFYOmZ1bmN0aW9uKGEpe3JldHVyblwiZGVsdGFYXCJpbiBhP2EuZGVsdGFYOlwid2hlZWxEZWx0YVhcImluXG5hPy1hLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihhKXtyZXR1cm5cImRlbHRhWVwiaW4gYT9hLmRlbHRhWTpcIndoZWVsRGVsdGFZXCJpbiBhPy1hLndoZWVsRGVsdGFZOlwid2hlZWxEZWx0YVwiaW4gYT8tYS53aGVlbERlbHRhOjB9LGRlbHRhWjpudWxsLGRlbHRhTW9kZTpudWxsfSksQ2Q9W1tcImJsdXJcIixcImJsdXJcIiwwXSxbXCJjYW5jZWxcIixcImNhbmNlbFwiLDBdLFtcImNsaWNrXCIsXCJjbGlja1wiLDBdLFtcImNsb3NlXCIsXCJjbG9zZVwiLDBdLFtcImNvbnRleHRtZW51XCIsXCJjb250ZXh0TWVudVwiLDBdLFtcImNvcHlcIixcImNvcHlcIiwwXSxbXCJjdXRcIixcImN1dFwiLDBdLFtcImF1eGNsaWNrXCIsXCJhdXhDbGlja1wiLDBdLFtcImRibGNsaWNrXCIsXCJkb3VibGVDbGlja1wiLDBdLFtcImRyYWdlbmRcIixcImRyYWdFbmRcIiwwXSxbXCJkcmFnc3RhcnRcIixcImRyYWdTdGFydFwiLDBdLFtcImRyb3BcIixcImRyb3BcIiwwXSxbXCJmb2N1c1wiLFwiZm9jdXNcIiwwXSxbXCJpbnB1dFwiLFwiaW5wdXRcIiwwXSxbXCJpbnZhbGlkXCIsXCJpbnZhbGlkXCIsMF0sXG5bXCJrZXlkb3duXCIsXCJrZXlEb3duXCIsMF0sW1wia2V5cHJlc3NcIixcImtleVByZXNzXCIsMF0sW1wia2V5dXBcIixcImtleVVwXCIsMF0sW1wibW91c2Vkb3duXCIsXCJtb3VzZURvd25cIiwwXSxbXCJtb3VzZXVwXCIsXCJtb3VzZVVwXCIsMF0sW1wicGFzdGVcIixcInBhc3RlXCIsMF0sW1wicGF1c2VcIixcInBhdXNlXCIsMF0sW1wicGxheVwiLFwicGxheVwiLDBdLFtcInBvaW50ZXJjYW5jZWxcIixcInBvaW50ZXJDYW5jZWxcIiwwXSxbXCJwb2ludGVyZG93blwiLFwicG9pbnRlckRvd25cIiwwXSxbXCJwb2ludGVydXBcIixcInBvaW50ZXJVcFwiLDBdLFtcInJhdGVjaGFuZ2VcIixcInJhdGVDaGFuZ2VcIiwwXSxbXCJyZXNldFwiLFwicmVzZXRcIiwwXSxbXCJzZWVrZWRcIixcInNlZWtlZFwiLDBdLFtcInN1Ym1pdFwiLFwic3VibWl0XCIsMF0sW1widG91Y2hjYW5jZWxcIixcInRvdWNoQ2FuY2VsXCIsMF0sW1widG91Y2hlbmRcIixcInRvdWNoRW5kXCIsMF0sW1widG91Y2hzdGFydFwiLFwidG91Y2hTdGFydFwiLDBdLFtcInZvbHVtZWNoYW5nZVwiLFwidm9sdW1lQ2hhbmdlXCIsMF0sW1wiZHJhZ1wiLFwiZHJhZ1wiLFxuMV0sW1wiZHJhZ2VudGVyXCIsXCJkcmFnRW50ZXJcIiwxXSxbXCJkcmFnZXhpdFwiLFwiZHJhZ0V4aXRcIiwxXSxbXCJkcmFnbGVhdmVcIixcImRyYWdMZWF2ZVwiLDFdLFtcImRyYWdvdmVyXCIsXCJkcmFnT3ZlclwiLDFdLFtcIm1vdXNlbW92ZVwiLFwibW91c2VNb3ZlXCIsMV0sW1wibW91c2VvdXRcIixcIm1vdXNlT3V0XCIsMV0sW1wibW91c2VvdmVyXCIsXCJtb3VzZU92ZXJcIiwxXSxbXCJwb2ludGVybW92ZVwiLFwicG9pbnRlck1vdmVcIiwxXSxbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyT3V0XCIsMV0sW1wicG9pbnRlcm92ZXJcIixcInBvaW50ZXJPdmVyXCIsMV0sW1wic2Nyb2xsXCIsXCJzY3JvbGxcIiwxXSxbXCJ0b2dnbGVcIixcInRvZ2dsZVwiLDFdLFtcInRvdWNobW92ZVwiLFwidG91Y2hNb3ZlXCIsMV0sW1wid2hlZWxcIixcIndoZWVsXCIsMV0sW1wiYWJvcnRcIixcImFib3J0XCIsMl0sW1hhLFwiYW5pbWF0aW9uRW5kXCIsMl0sW1lhLFwiYW5pbWF0aW9uSXRlcmF0aW9uXCIsMl0sW1phLFwiYW5pbWF0aW9uU3RhcnRcIiwyXSxbXCJjYW5wbGF5XCIsXCJjYW5QbGF5XCIsMl0sW1wiY2FucGxheXRocm91Z2hcIixcblwiY2FuUGxheVRocm91Z2hcIiwyXSxbXCJkdXJhdGlvbmNoYW5nZVwiLFwiZHVyYXRpb25DaGFuZ2VcIiwyXSxbXCJlbXB0aWVkXCIsXCJlbXB0aWVkXCIsMl0sW1wiZW5jcnlwdGVkXCIsXCJlbmNyeXB0ZWRcIiwyXSxbXCJlbmRlZFwiLFwiZW5kZWRcIiwyXSxbXCJlcnJvclwiLFwiZXJyb3JcIiwyXSxbXCJnb3Rwb2ludGVyY2FwdHVyZVwiLFwiZ290UG9pbnRlckNhcHR1cmVcIiwyXSxbXCJsb2FkXCIsXCJsb2FkXCIsMl0sW1wibG9hZGVkZGF0YVwiLFwibG9hZGVkRGF0YVwiLDJdLFtcImxvYWRlZG1ldGFkYXRhXCIsXCJsb2FkZWRNZXRhZGF0YVwiLDJdLFtcImxvYWRzdGFydFwiLFwibG9hZFN0YXJ0XCIsMl0sW1wibG9zdHBvaW50ZXJjYXB0dXJlXCIsXCJsb3N0UG9pbnRlckNhcHR1cmVcIiwyXSxbXCJwbGF5aW5nXCIsXCJwbGF5aW5nXCIsMl0sW1wicHJvZ3Jlc3NcIixcInByb2dyZXNzXCIsMl0sW1wic2Vla2luZ1wiLFwic2Vla2luZ1wiLDJdLFtcInN0YWxsZWRcIixcInN0YWxsZWRcIiwyXSxbXCJzdXNwZW5kXCIsXCJzdXNwZW5kXCIsMl0sW1widGltZXVwZGF0ZVwiLFwidGltZVVwZGF0ZVwiLFxuMl0sW2FiLFwidHJhbnNpdGlvbkVuZFwiLDJdLFtcIndhaXRpbmdcIixcIndhaXRpbmdcIiwyXV0sRGQ9e30sRWQ9e30sRmQ9MDtmb3IoO0ZkPENkLmxlbmd0aDtGZCsrKXt2YXIgR2Q9Q2RbRmRdLEhkPUdkWzBdLElkPUdkWzFdLEpkPUdkWzJdLEtkPVwib25cIisoSWRbMF0udG9VcHBlckNhc2UoKStJZC5zbGljZSgxKSksTGQ9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOktkLGNhcHR1cmVkOktkK1wiQ2FwdHVyZVwifSxkZXBlbmRlbmNpZXM6W0hkXSxldmVudFByaW9yaXR5OkpkfTtEZFtJZF09TGQ7RWRbSGRdPUxkfVxudmFyIE1kPXtldmVudFR5cGVzOkRkLGdldEV2ZW50UHJpb3JpdHk6ZnVuY3Rpb24oYSl7YT1FZFthXTtyZXR1cm4gdm9pZCAwIT09YT9hLmV2ZW50UHJpb3JpdHk6Mn0sZXh0cmFjdEV2ZW50czpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1FZFthXTtpZighZSlyZXR1cm4gbnVsbDtzd2l0Y2goYSl7Y2FzZSBcImtleXByZXNzXCI6aWYoMD09PXVkKGMpKXJldHVybiBudWxsO2Nhc2UgXCJrZXlkb3duXCI6Y2FzZSBcImtleXVwXCI6YT14ZDticmVhaztjYXNlIFwiYmx1clwiOmNhc2UgXCJmb2N1c1wiOmE9dGQ7YnJlYWs7Y2FzZSBcImNsaWNrXCI6aWYoMj09PWMuYnV0dG9uKXJldHVybiBudWxsO2Nhc2UgXCJhdXhjbGlja1wiOmNhc2UgXCJkYmxjbGlja1wiOmNhc2UgXCJtb3VzZWRvd25cIjpjYXNlIFwibW91c2Vtb3ZlXCI6Y2FzZSBcIm1vdXNldXBcIjpjYXNlIFwibW91c2VvdXRcIjpjYXNlIFwibW91c2VvdmVyXCI6Y2FzZSBcImNvbnRleHRtZW51XCI6YT1kZDticmVhaztjYXNlIFwiZHJhZ1wiOmNhc2UgXCJkcmFnZW5kXCI6Y2FzZSBcImRyYWdlbnRlclwiOmNhc2UgXCJkcmFnZXhpdFwiOmNhc2UgXCJkcmFnbGVhdmVcIjpjYXNlIFwiZHJhZ292ZXJcIjpjYXNlIFwiZHJhZ3N0YXJ0XCI6Y2FzZSBcImRyb3BcIjphPVxueWQ7YnJlYWs7Y2FzZSBcInRvdWNoY2FuY2VsXCI6Y2FzZSBcInRvdWNoZW5kXCI6Y2FzZSBcInRvdWNobW92ZVwiOmNhc2UgXCJ0b3VjaHN0YXJ0XCI6YT16ZDticmVhaztjYXNlIFhhOmNhc2UgWWE6Y2FzZSBaYTphPXJkO2JyZWFrO2Nhc2UgYWI6YT1BZDticmVhaztjYXNlIFwic2Nyb2xsXCI6YT1XYzticmVhaztjYXNlIFwid2hlZWxcIjphPUJkO2JyZWFrO2Nhc2UgXCJjb3B5XCI6Y2FzZSBcImN1dFwiOmNhc2UgXCJwYXN0ZVwiOmE9c2Q7YnJlYWs7Y2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6Y2FzZSBcImxvc3Rwb2ludGVyY2FwdHVyZVwiOmNhc2UgXCJwb2ludGVyY2FuY2VsXCI6Y2FzZSBcInBvaW50ZXJkb3duXCI6Y2FzZSBcInBvaW50ZXJtb3ZlXCI6Y2FzZSBcInBvaW50ZXJvdXRcIjpjYXNlIFwicG9pbnRlcm92ZXJcIjpjYXNlIFwicG9pbnRlcnVwXCI6YT1lZDticmVhaztkZWZhdWx0OmE9eX1iPWEuZ2V0UG9vbGVkKGUsYixjLGQpO1FhKGIpO3JldHVybiBifX0sTmQ9TWQuZ2V0RXZlbnRQcmlvcml0eSxPZD1bXTtcbmZ1bmN0aW9uIFBkKGEpe3ZhciBiPWEudGFyZ2V0SW5zdCxjPWI7ZG97aWYoIWMpe2EuYW5jZXN0b3JzLnB1c2goYyk7YnJlYWt9dmFyIGQ7Zm9yKGQ9YztkLnJldHVybjspZD1kLnJldHVybjtkPTMhPT1kLnRhZz9udWxsOmQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoIWQpYnJlYWs7YS5hbmNlc3RvcnMucHVzaChjKTtjPUhhKGQpfXdoaWxlKGMpO2ZvcihjPTA7YzxhLmFuY2VzdG9ycy5sZW5ndGg7YysrKXtiPWEuYW5jZXN0b3JzW2NdO3ZhciBlPVJiKGEubmF0aXZlRXZlbnQpO2Q9YS50b3BMZXZlbFR5cGU7Zm9yKHZhciBmPWEubmF0aXZlRXZlbnQsaD1udWxsLGc9MDtnPGVhLmxlbmd0aDtnKyspe3ZhciBrPWVhW2ddO2smJihrPWsuZXh0cmFjdEV2ZW50cyhkLGIsZixlKSkmJihoPXhhKGgsaykpfUJhKGgpfX12YXIgUWQ9ITA7ZnVuY3Rpb24gRyhhLGIpe1JkKGIsYSwhMSl9XG5mdW5jdGlvbiBSZChhLGIsYyl7c3dpdGNoKE5kKGIpKXtjYXNlIDA6dmFyIGQ9U2QuYmluZChudWxsLGIsMSk7YnJlYWs7Y2FzZSAxOmQ9VGQuYmluZChudWxsLGIsMSk7YnJlYWs7ZGVmYXVsdDpkPVVkLmJpbmQobnVsbCxiLDEpfWM/YS5hZGRFdmVudExpc3RlbmVyKGIsZCwhMCk6YS5hZGRFdmVudExpc3RlbmVyKGIsZCwhMSl9ZnVuY3Rpb24gU2QoYSxiLGMpe05ifHxMYigpO3ZhciBkPVVkLGU9TmI7TmI9ITA7dHJ5e0tiKGQsYSxiLGMpfWZpbmFsbHl7KE5iPWUpfHxPYigpfX1mdW5jdGlvbiBUZChhLGIsYyl7VWQoYSxiLGMpfVxuZnVuY3Rpb24gVWQoYSxiLGMpe2lmKFFkKXtiPVJiKGMpO2I9SGEoYik7bnVsbD09PWJ8fFwibnVtYmVyXCIhPT10eXBlb2YgYi50YWd8fDI9PT1sZChiKXx8KGI9bnVsbCk7aWYoT2QubGVuZ3RoKXt2YXIgZD1PZC5wb3AoKTtkLnRvcExldmVsVHlwZT1hO2QubmF0aXZlRXZlbnQ9YztkLnRhcmdldEluc3Q9YjthPWR9ZWxzZSBhPXt0b3BMZXZlbFR5cGU6YSxuYXRpdmVFdmVudDpjLHRhcmdldEluc3Q6YixhbmNlc3RvcnM6W119O3RyeXtpZihjPWEsTmIpUGQoYyx2b2lkIDApO2Vsc2V7TmI9ITA7dHJ5e01iKFBkLGMsdm9pZCAwKX1maW5hbGx5e05iPSExLE9iKCl9fX1maW5hbGx5e2EudG9wTGV2ZWxUeXBlPW51bGwsYS5uYXRpdmVFdmVudD1udWxsLGEudGFyZ2V0SW5zdD1udWxsLGEuYW5jZXN0b3JzLmxlbmd0aD0wLDEwPk9kLmxlbmd0aCYmT2QucHVzaChhKX19fXZhciBWZD1uZXcgKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwKTtcbmZ1bmN0aW9uIFdkKGEpe3ZhciBiPVZkLmdldChhKTt2b2lkIDA9PT1iJiYoYj1uZXcgU2V0LFZkLnNldChhLGIpKTtyZXR1cm4gYn1mdW5jdGlvbiBYZChhKXthPWF8fChcInVuZGVmaW5lZFwiIT09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50OnZvaWQgMCk7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBhKXJldHVybiBudWxsO3RyeXtyZXR1cm4gYS5hY3RpdmVFbGVtZW50fHxhLmJvZHl9Y2F0Y2goYil7cmV0dXJuIGEuYm9keX19ZnVuY3Rpb24gWWQoYSl7Zm9yKDthJiZhLmZpcnN0Q2hpbGQ7KWE9YS5maXJzdENoaWxkO3JldHVybiBhfVxuZnVuY3Rpb24gWmQoYSxiKXt2YXIgYz1ZZChhKTthPTA7Zm9yKHZhciBkO2M7KXtpZigzPT09Yy5ub2RlVHlwZSl7ZD1hK2MudGV4dENvbnRlbnQubGVuZ3RoO2lmKGE8PWImJmQ+PWIpcmV0dXJue25vZGU6YyxvZmZzZXQ6Yi1hfTthPWR9YTp7Zm9yKDtjOyl7aWYoYy5uZXh0U2libGluZyl7Yz1jLm5leHRTaWJsaW5nO2JyZWFrIGF9Yz1jLnBhcmVudE5vZGV9Yz12b2lkIDB9Yz1ZZChjKX19ZnVuY3Rpb24gJGQoYSxiKXtyZXR1cm4gYSYmYj9hPT09Yj8hMDphJiYzPT09YS5ub2RlVHlwZT8hMTpiJiYzPT09Yi5ub2RlVHlwZT8kZChhLGIucGFyZW50Tm9kZSk6XCJjb250YWluc1wiaW4gYT9hLmNvbnRhaW5zKGIpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSYxNik6ITE6ITF9XG5mdW5jdGlvbiBhZSgpe2Zvcih2YXIgYT13aW5kb3csYj1YZCgpO2IgaW5zdGFuY2VvZiBhLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBjPVwic3RyaW5nXCI9PT10eXBlb2YgYi5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZCl7Yz0hMX1pZihjKWE9Yi5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7Yj1YZChhLmRvY3VtZW50KX1yZXR1cm4gYn1mdW5jdGlvbiBiZShhKXt2YXIgYj1hJiZhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIGImJihcImlucHV0XCI9PT1iJiYoXCJ0ZXh0XCI9PT1hLnR5cGV8fFwic2VhcmNoXCI9PT1hLnR5cGV8fFwidGVsXCI9PT1hLnR5cGV8fFwidXJsXCI9PT1hLnR5cGV8fFwicGFzc3dvcmRcIj09PWEudHlwZSl8fFwidGV4dGFyZWFcIj09PWJ8fFwidHJ1ZVwiPT09YS5jb250ZW50RWRpdGFibGUpfVxudmFyIGNlPVJhJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsZGU9e3NlbGVjdDp7cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6e2J1YmJsZWQ6XCJvblNlbGVjdFwiLGNhcHR1cmVkOlwib25TZWxlY3RDYXB0dXJlXCJ9LGRlcGVuZGVuY2llczpcImJsdXIgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1cyBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKX19LGVlPW51bGwsZmU9bnVsbCxnZT1udWxsLGhlPSExO1xuZnVuY3Rpb24gaWUoYSxiKXt2YXIgYz1iLndpbmRvdz09PWI/Yi5kb2N1bWVudDo5PT09Yi5ub2RlVHlwZT9iOmIub3duZXJEb2N1bWVudDtpZihoZXx8bnVsbD09ZWV8fGVlIT09WGQoYykpcmV0dXJuIG51bGw7Yz1lZTtcInNlbGVjdGlvblN0YXJ0XCJpbiBjJiZiZShjKT9jPXtzdGFydDpjLnNlbGVjdGlvblN0YXJ0LGVuZDpjLnNlbGVjdGlvbkVuZH06KGM9KGMub3duZXJEb2N1bWVudCYmYy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpLGM9e2FuY2hvck5vZGU6Yy5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpjLmFuY2hvck9mZnNldCxmb2N1c05vZGU6Yy5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6Yy5mb2N1c09mZnNldH0pO3JldHVybiBnZSYmamQoZ2UsYyk/bnVsbDooZ2U9YyxhPXkuZ2V0UG9vbGVkKGRlLnNlbGVjdCxmZSxhLGIpLGEudHlwZT1cInNlbGVjdFwiLGEudGFyZ2V0PWVlLFFhKGEpLGEpfVxudmFyIGplPXtldmVudFR5cGVzOmRlLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZC53aW5kb3c9PT1kP2QuZG9jdW1lbnQ6OT09PWQubm9kZVR5cGU/ZDpkLm93bmVyRG9jdW1lbnQsZjtpZighKGY9IWUpKXthOntlPVdkKGUpO2Y9amEub25TZWxlY3Q7Zm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspaWYoIWUuaGFzKGZbaF0pKXtlPSExO2JyZWFrIGF9ZT0hMH1mPSFlfWlmKGYpcmV0dXJuIG51bGw7ZT1iP0phKGIpOndpbmRvdztzd2l0Y2goYSl7Y2FzZSBcImZvY3VzXCI6aWYoUWIoZSl8fFwidHJ1ZVwiPT09ZS5jb250ZW50RWRpdGFibGUpZWU9ZSxmZT1iLGdlPW51bGw7YnJlYWs7Y2FzZSBcImJsdXJcIjpnZT1mZT1lZT1udWxsO2JyZWFrO2Nhc2UgXCJtb3VzZWRvd25cIjpoZT0hMDticmVhaztjYXNlIFwiY29udGV4dG1lbnVcIjpjYXNlIFwibW91c2V1cFwiOmNhc2UgXCJkcmFnZW5kXCI6cmV0dXJuIGhlPSExLGllKGMsZCk7Y2FzZSBcInNlbGVjdGlvbmNoYW5nZVwiOmlmKGNlKWJyZWFrO1xuY2FzZSBcImtleWRvd25cIjpjYXNlIFwia2V5dXBcIjpyZXR1cm4gaWUoYyxkKX1yZXR1cm4gbnVsbH19O0NhLmluamVjdEV2ZW50UGx1Z2luT3JkZXIoXCJSZXNwb25kZXJFdmVudFBsdWdpbiBTaW1wbGVFdmVudFBsdWdpbiBFbnRlckxlYXZlRXZlbnRQbHVnaW4gQ2hhbmdlRXZlbnRQbHVnaW4gU2VsZWN0RXZlbnRQbHVnaW4gQmVmb3JlSW5wdXRFdmVudFBsdWdpblwiLnNwbGl0KFwiIFwiKSk7c2E9S2E7dGE9SWE7dmE9SmE7Q2EuaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lKHtTaW1wbGVFdmVudFBsdWdpbjpNZCxFbnRlckxlYXZlRXZlbnRQbHVnaW46Z2QsQ2hhbmdlRXZlbnRQbHVnaW46VmMsU2VsZWN0RXZlbnRQbHVnaW46amUsQmVmb3JlSW5wdXRFdmVudFBsdWdpbjpDYn0pO2Z1bmN0aW9uIGtlKGEpe3ZhciBiPVwiXCI7YWEuQ2hpbGRyZW4uZm9yRWFjaChhLGZ1bmN0aW9uKGEpe251bGwhPWEmJihiKz1hKX0pO3JldHVybiBifVxuZnVuY3Rpb24gbGUoYSxiKXthPW0oe2NoaWxkcmVuOnZvaWQgMH0sYik7aWYoYj1rZShiLmNoaWxkcmVuKSlhLmNoaWxkcmVuPWI7cmV0dXJuIGF9ZnVuY3Rpb24gbWUoYSxiLGMsZCl7YT1hLm9wdGlvbnM7aWYoYil7Yj17fTtmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyliW1wiJFwiK2NbZV1dPSEwO2ZvcihjPTA7YzxhLmxlbmd0aDtjKyspZT1iLmhhc093blByb3BlcnR5KFwiJFwiK2FbY10udmFsdWUpLGFbY10uc2VsZWN0ZWQhPT1lJiYoYVtjXS5zZWxlY3RlZD1lKSxlJiZkJiYoYVtjXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Yz1cIlwiK0FjKGMpO2I9bnVsbDtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKXtpZihhW2VdLnZhbHVlPT09Yyl7YVtlXS5zZWxlY3RlZD0hMDtkJiYoYVtlXS5kZWZhdWx0U2VsZWN0ZWQ9ITApO3JldHVybn1udWxsIT09Ynx8YVtlXS5kaXNhYmxlZHx8KGI9YVtlXSl9bnVsbCE9PWImJihiLnNlbGVjdGVkPSEwKX19XG5mdW5jdGlvbiBuZShhLGIpe2lmKG51bGwhPWIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpdGhyb3cgdChFcnJvcig5MSkpO3JldHVybiBtKHt9LGIse3ZhbHVlOnZvaWQgMCxkZWZhdWx0VmFsdWU6dm9pZCAwLGNoaWxkcmVuOlwiXCIrYS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZX0pfWZ1bmN0aW9uIG9lKGEsYil7dmFyIGM9Yi52YWx1ZTtpZihudWxsPT1jKXtjPWIuZGVmYXVsdFZhbHVlO2I9Yi5jaGlsZHJlbjtpZihudWxsIT1iKXtpZihudWxsIT1jKXRocm93IHQoRXJyb3IoOTIpKTtpZihBcnJheS5pc0FycmF5KGIpKXtpZighKDE+PWIubGVuZ3RoKSl0aHJvdyB0KEVycm9yKDkzKSk7Yj1iWzBdfWM9Yn1udWxsPT1jJiYoYz1cIlwiKX1hLl93cmFwcGVyU3RhdGU9e2luaXRpYWxWYWx1ZTpBYyhjKX19XG5mdW5jdGlvbiBwZShhLGIpe3ZhciBjPUFjKGIudmFsdWUpLGQ9QWMoYi5kZWZhdWx0VmFsdWUpO251bGwhPWMmJihjPVwiXCIrYyxjIT09YS52YWx1ZSYmKGEudmFsdWU9YyksbnVsbD09Yi5kZWZhdWx0VmFsdWUmJmEuZGVmYXVsdFZhbHVlIT09YyYmKGEuZGVmYXVsdFZhbHVlPWMpKTtudWxsIT1kJiYoYS5kZWZhdWx0VmFsdWU9XCJcIitkKX1mdW5jdGlvbiBxZShhKXt2YXIgYj1hLnRleHRDb250ZW50O2I9PT1hLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlJiYoYS52YWx1ZT1iKX12YXIgcmU9e2h0bWw6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsbWF0aG1sOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLHN2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9O1xuZnVuY3Rpb24gc2UoYSl7c3dpdGNoKGEpe2Nhc2UgXCJzdmdcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI7Y2FzZSBcIm1hdGhcIjpyZXR1cm5cImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIjtkZWZhdWx0OnJldHVyblwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwifX1mdW5jdGlvbiB0ZShhLGIpe3JldHVybiBudWxsPT1hfHxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIj09PWE/c2UoYik6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YSYmXCJmb3JlaWduT2JqZWN0XCI9PT1iP1wiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiOmF9XG52YXIgdWU9dm9pZCAwLHZlPWZ1bmN0aW9uKGEpe3JldHVyblwidW5kZWZpbmVkXCIhPT10eXBlb2YgTVNBcHAmJk1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uP2Z1bmN0aW9uKGIsYyxkLGUpe01TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKGZ1bmN0aW9uKCl7cmV0dXJuIGEoYixjLGQsZSl9KX06YX0oZnVuY3Rpb24oYSxiKXtpZihhLm5hbWVzcGFjZVVSSSE9PXJlLnN2Z3x8XCJpbm5lckhUTUxcImluIGEpYS5pbm5lckhUTUw9YjtlbHNle3VlPXVlfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3VlLmlubmVySFRNTD1cIjxzdmc+XCIrYitcIjwvc3ZnPlwiO2ZvcihiPXVlLmZpcnN0Q2hpbGQ7YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKDtiLmZpcnN0Q2hpbGQ7KWEuYXBwZW5kQ2hpbGQoYi5maXJzdENoaWxkKX19KTtcbmZ1bmN0aW9uIHdlKGEsYil7aWYoYil7dmFyIGM9YS5maXJzdENoaWxkO2lmKGMmJmM9PT1hLmxhc3RDaGlsZCYmMz09PWMubm9kZVR5cGUpe2Mubm9kZVZhbHVlPWI7cmV0dXJufX1hLnRleHRDb250ZW50PWJ9XG52YXIgeGU9e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGJvcmRlckltYWdlT3V0c2V0OiEwLGJvcmRlckltYWdlU2xpY2U6ITAsYm9yZGVySW1hZ2VXaWR0aDohMCxib3hGbGV4OiEwLGJveEZsZXhHcm91cDohMCxib3hPcmRpbmFsR3JvdXA6ITAsY29sdW1uQ291bnQ6ITAsY29sdW1uczohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3NpdGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3JkZXI6ITAsZ3JpZEFyZWE6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTcGFuOiEwLGdyaWRSb3dTdGFydDohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblNwYW46ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGZvbnRXZWlnaHQ6ITAsbGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLFxuZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZURhc2hhcnJheTohMCxzdHJva2VEYXNob2Zmc2V0OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMCxzdHJva2VXaWR0aDohMH0seWU9W1wiV2Via2l0XCIsXCJtc1wiLFwiTW96XCIsXCJPXCJdO09iamVjdC5rZXlzKHhlKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3llLmZvckVhY2goZnVuY3Rpb24oYil7Yj1iK2EuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSk7eGVbYl09eGVbYV19KX0pO2Z1bmN0aW9uIHplKGEsYixjKXtyZXR1cm4gbnVsbD09Ynx8XCJib29sZWFuXCI9PT10eXBlb2YgYnx8XCJcIj09PWI/XCJcIjpjfHxcIm51bWJlclwiIT09dHlwZW9mIGJ8fDA9PT1ifHx4ZS5oYXNPd25Qcm9wZXJ0eShhKSYmeGVbYV0/KFwiXCIrYikudHJpbSgpOmIrXCJweFwifVxuZnVuY3Rpb24gQWUoYSxiKXthPWEuc3R5bGU7Zm9yKHZhciBjIGluIGIpaWYoYi5oYXNPd25Qcm9wZXJ0eShjKSl7dmFyIGQ9MD09PWMuaW5kZXhPZihcIi0tXCIpLGU9emUoYyxiW2NdLGQpO1wiZmxvYXRcIj09PWMmJihjPVwiY3NzRmxvYXRcIik7ZD9hLnNldFByb3BlcnR5KGMsZSk6YVtjXT1lfX12YXIgQ2U9bSh7bWVudWl0ZW06ITB9LHthcmVhOiEwLGJhc2U6ITAsYnI6ITAsY29sOiEwLGVtYmVkOiEwLGhyOiEwLGltZzohMCxpbnB1dDohMCxrZXlnZW46ITAsbGluazohMCxtZXRhOiEwLHBhcmFtOiEwLHNvdXJjZTohMCx0cmFjazohMCx3YnI6ITB9KTtcbmZ1bmN0aW9uIERlKGEsYil7aWYoYil7aWYoQ2VbYV0mJihudWxsIT1iLmNoaWxkcmVufHxudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSl0aHJvdyB0KEVycm9yKDEzNyksYSxcIlwiKTtpZihudWxsIT1iLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKXtpZihudWxsIT1iLmNoaWxkcmVuKXRocm93IHQoRXJyb3IoNjApKTtpZighKFwib2JqZWN0XCI9PT10eXBlb2YgYi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmXCJfX2h0bWxcImluIGIuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKXRocm93IHQoRXJyb3IoNjEpKTt9aWYobnVsbCE9Yi5zdHlsZSYmXCJvYmplY3RcIiE9PXR5cGVvZiBiLnN0eWxlKXRocm93IHQoRXJyb3IoNjIpLFwiXCIpO319XG5mdW5jdGlvbiBFZShhLGIpe2lmKC0xPT09YS5pbmRleE9mKFwiLVwiKSlyZXR1cm5cInN0cmluZ1wiPT09dHlwZW9mIGIuaXM7c3dpdGNoKGEpe2Nhc2UgXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2UgXCJjb2xvci1wcm9maWxlXCI6Y2FzZSBcImZvbnQtZmFjZVwiOmNhc2UgXCJmb250LWZhY2Utc3JjXCI6Y2FzZSBcImZvbnQtZmFjZS11cmlcIjpjYXNlIFwiZm9udC1mYWNlLWZvcm1hdFwiOmNhc2UgXCJmb250LWZhY2UtbmFtZVwiOmNhc2UgXCJtaXNzaW5nLWdseXBoXCI6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMH19XG5mdW5jdGlvbiBGZShhLGIpe2E9OT09PWEubm9kZVR5cGV8fDExPT09YS5ub2RlVHlwZT9hOmEub3duZXJEb2N1bWVudDt2YXIgYz1XZChhKTtiPWphW2JdO2Zvcih2YXIgZD0wO2Q8Yi5sZW5ndGg7ZCsrKXt2YXIgZT1iW2RdO2lmKCFjLmhhcyhlKSl7c3dpdGNoKGUpe2Nhc2UgXCJzY3JvbGxcIjpSZChhLFwic2Nyb2xsXCIsITApO2JyZWFrO2Nhc2UgXCJmb2N1c1wiOmNhc2UgXCJibHVyXCI6UmQoYSxcImZvY3VzXCIsITApO1JkKGEsXCJibHVyXCIsITApO2MuYWRkKFwiYmx1clwiKTtjLmFkZChcImZvY3VzXCIpO2JyZWFrO2Nhc2UgXCJjYW5jZWxcIjpjYXNlIFwiY2xvc2VcIjpTYihlKSYmUmQoYSxlLCEwKTticmVhaztjYXNlIFwiaW52YWxpZFwiOmNhc2UgXCJzdWJtaXRcIjpjYXNlIFwicmVzZXRcIjpicmVhaztkZWZhdWx0Oi0xPT09YmIuaW5kZXhPZihlKSYmRyhlLGEpfWMuYWRkKGUpfX19ZnVuY3Rpb24gR2UoKXt9dmFyIEhlPW51bGwsSWU9bnVsbDtcbmZ1bmN0aW9uIEplKGEsYil7c3dpdGNoKGEpe2Nhc2UgXCJidXR0b25cIjpjYXNlIFwiaW5wdXRcIjpjYXNlIFwic2VsZWN0XCI6Y2FzZSBcInRleHRhcmVhXCI6cmV0dXJuISFiLmF1dG9Gb2N1c31yZXR1cm4hMX1mdW5jdGlvbiBLZShhLGIpe3JldHVyblwidGV4dGFyZWFcIj09PWF8fFwib3B0aW9uXCI9PT1hfHxcIm5vc2NyaXB0XCI9PT1hfHxcInN0cmluZ1wiPT09dHlwZW9mIGIuY2hpbGRyZW58fFwibnVtYmVyXCI9PT10eXBlb2YgYi5jaGlsZHJlbnx8XCJvYmplY3RcIj09PXR5cGVvZiBiLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT09Yi5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9Yi5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWx9dmFyIExlPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLE1lPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMDtcbmZ1bmN0aW9uIE5lKGEpe2Zvcig7bnVsbCE9YTthPWEubmV4dFNpYmxpbmcpe3ZhciBiPWEubm9kZVR5cGU7aWYoMT09PWJ8fDM9PT1iKWJyZWFrfXJldHVybiBhfW5ldyBTZXQ7dmFyIE9lPVtdLFBlPS0xO2Z1bmN0aW9uIEgoYSl7MD5QZXx8KGEuY3VycmVudD1PZVtQZV0sT2VbUGVdPW51bGwsUGUtLSl9ZnVuY3Rpb24gSihhLGIpe1BlKys7T2VbUGVdPWEuY3VycmVudDthLmN1cnJlbnQ9Yn12YXIgUWU9e30sTD17Y3VycmVudDpRZX0sTT17Y3VycmVudDohMX0sUmU9UWU7XG5mdW5jdGlvbiBTZShhLGIpe3ZhciBjPWEudHlwZS5jb250ZXh0VHlwZXM7aWYoIWMpcmV0dXJuIFFlO3ZhciBkPWEuc3RhdGVOb2RlO2lmKGQmJmQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dD09PWIpcmV0dXJuIGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNYXNrZWRDaGlsZENvbnRleHQ7dmFyIGU9e30sZjtmb3IoZiBpbiBjKWVbZl09YltmXTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9YixhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWUpO3JldHVybiBlfWZ1bmN0aW9uIE4oYSl7YT1hLmNoaWxkQ29udGV4dFR5cGVzO3JldHVybiBudWxsIT09YSYmdm9pZCAwIT09YX1mdW5jdGlvbiBUZShhKXtIKE0sYSk7SChMLGEpfWZ1bmN0aW9uIFVlKGEpe0goTSxhKTtIKEwsYSl9XG5mdW5jdGlvbiBWZShhLGIsYyl7aWYoTC5jdXJyZW50IT09UWUpdGhyb3cgdChFcnJvcigxNjgpKTtKKEwsYixhKTtKKE0sYyxhKX1mdW5jdGlvbiBXZShhLGIsYyl7dmFyIGQ9YS5zdGF0ZU5vZGU7YT1iLmNoaWxkQ29udGV4dFR5cGVzO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBkLmdldENoaWxkQ29udGV4dClyZXR1cm4gYztkPWQuZ2V0Q2hpbGRDb250ZXh0KCk7Zm9yKHZhciBlIGluIGQpaWYoIShlIGluIGEpKXRocm93IHQoRXJyb3IoMTA4KSxvYyhiKXx8XCJVbmtub3duXCIsZSk7cmV0dXJuIG0oe30sYyxkKX1mdW5jdGlvbiBYZShhKXt2YXIgYj1hLnN0YXRlTm9kZTtiPWImJmIuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHR8fFFlO1JlPUwuY3VycmVudDtKKEwsYixhKTtKKE0sTS5jdXJyZW50LGEpO3JldHVybiEwfVxuZnVuY3Rpb24gWWUoYSxiLGMpe3ZhciBkPWEuc3RhdGVOb2RlO2lmKCFkKXRocm93IHQoRXJyb3IoMTY5KSk7Yz8oYj1XZShhLGIsUmUpLGQuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQ9YixIKE0sYSksSChMLGEpLEooTCxiLGEpKTpIKE0sYSk7SihNLGMsYSl9XG52YXIgWmU9cS51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHksJGU9cS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGFmPXEudW5zdGFibGVfY2FuY2VsQ2FsbGJhY2ssYmY9cS51bnN0YWJsZV9zaG91bGRZaWVsZCxjZj1xLnVuc3RhYmxlX3JlcXVlc3RQYWludCxkZj1xLnVuc3RhYmxlX25vdyxlZj1xLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsLGZmPXEudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHksaGY9cS51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSxqZj1xLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LGtmPXEudW5zdGFibGVfTG93UHJpb3JpdHksbGY9cS51bnN0YWJsZV9JZGxlUHJpb3JpdHksbWY9e30sbmY9dm9pZCAwIT09Y2Y/Y2Y6ZnVuY3Rpb24oKXt9LG9mPW51bGwscGY9bnVsbCxxZj0hMSxyZj1kZigpLHNmPTFFND5yZj9kZjpmdW5jdGlvbigpe3JldHVybiBkZigpLXJmfTtcbmZ1bmN0aW9uIHRmKCl7c3dpdGNoKGVmKCkpe2Nhc2UgZmY6cmV0dXJuIDk5O2Nhc2UgaGY6cmV0dXJuIDk4O2Nhc2UgamY6cmV0dXJuIDk3O2Nhc2Uga2Y6cmV0dXJuIDk2O2Nhc2UgbGY6cmV0dXJuIDk1O2RlZmF1bHQ6dGhyb3cgdChFcnJvcigzMzIpKTt9fWZ1bmN0aW9uIHVmKGEpe3N3aXRjaChhKXtjYXNlIDk5OnJldHVybiBmZjtjYXNlIDk4OnJldHVybiBoZjtjYXNlIDk3OnJldHVybiBqZjtjYXNlIDk2OnJldHVybiBrZjtjYXNlIDk1OnJldHVybiBsZjtkZWZhdWx0OnRocm93IHQoRXJyb3IoMzMyKSk7fX1mdW5jdGlvbiB2ZihhLGIpe2E9dWYoYSk7cmV0dXJuIFplKGEsYil9ZnVuY3Rpb24gd2YoYSxiLGMpe2E9dWYoYSk7cmV0dXJuICRlKGEsYixjKX1mdW5jdGlvbiB4ZihhKXtudWxsPT09b2Y/KG9mPVthXSxwZj0kZShmZix5ZikpOm9mLnB1c2goYSk7cmV0dXJuIG1mfWZ1bmN0aW9uIE8oKXtudWxsIT09cGYmJmFmKHBmKTt5ZigpfVxuZnVuY3Rpb24geWYoKXtpZighcWYmJm51bGwhPT1vZil7cWY9ITA7dmFyIGE9MDt0cnl7dmFyIGI9b2Y7dmYoOTksZnVuY3Rpb24oKXtmb3IoO2E8Yi5sZW5ndGg7YSsrKXt2YXIgYz1iW2FdO2RvIGM9YyghMCk7d2hpbGUobnVsbCE9PWMpfX0pO29mPW51bGx9Y2F0Y2goYyl7dGhyb3cgbnVsbCE9PW9mJiYob2Y9b2Yuc2xpY2UoYSsxKSksJGUoZmYsTyksYzt9ZmluYWxseXtxZj0hMX19fWZ1bmN0aW9uIHpmKGEsYil7aWYoMTA3Mzc0MTgyMz09PWIpcmV0dXJuIDk5O2lmKDE9PT1iKXJldHVybiA5NTthPTEwKigxMDczNzQxODIxLWIpLTEwKigxMDczNzQxODIxLWEpO3JldHVybiAwPj1hPzk5OjI1MD49YT85ODo1MjUwPj1hPzk3Ojk1fWZ1bmN0aW9uIEFmKGEsYil7aWYoYSYmYS5kZWZhdWx0UHJvcHMpe2I9bSh7fSxiKTthPWEuZGVmYXVsdFByb3BzO2Zvcih2YXIgYyBpbiBhKXZvaWQgMD09PWJbY10mJihiW2NdPWFbY10pfXJldHVybiBifVxuZnVuY3Rpb24gQmYoYSl7dmFyIGI9YS5fcmVzdWx0O3N3aXRjaChhLl9zdGF0dXMpe2Nhc2UgMTpyZXR1cm4gYjtjYXNlIDI6dGhyb3cgYjtjYXNlIDA6dGhyb3cgYjtkZWZhdWx0OmEuX3N0YXR1cz0wO2I9YS5fY3RvcjtiPWIoKTtiLnRoZW4oZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGI9Yi5kZWZhdWx0LGEuX3N0YXR1cz0xLGEuX3Jlc3VsdD1iKX0sZnVuY3Rpb24oYil7MD09PWEuX3N0YXR1cyYmKGEuX3N0YXR1cz0yLGEuX3Jlc3VsdD1iKX0pO3N3aXRjaChhLl9zdGF0dXMpe2Nhc2UgMTpyZXR1cm4gYS5fcmVzdWx0O2Nhc2UgMjp0aHJvdyBhLl9yZXN1bHQ7fWEuX3Jlc3VsdD1iO3Rocm93IGI7fX12YXIgQ2Y9e2N1cnJlbnQ6bnVsbH0sRGY9bnVsbCxFZj1udWxsLEZmPW51bGw7ZnVuY3Rpb24gR2YoKXtGZj1FZj1EZj1udWxsfVxuZnVuY3Rpb24gSGYoYSxiKXt2YXIgYz1hLnR5cGUuX2NvbnRleHQ7SihDZixjLl9jdXJyZW50VmFsdWUsYSk7Yy5fY3VycmVudFZhbHVlPWJ9ZnVuY3Rpb24gSWYoYSl7dmFyIGI9Q2YuY3VycmVudDtIKENmLGEpO2EudHlwZS5fY29udGV4dC5fY3VycmVudFZhbHVlPWJ9ZnVuY3Rpb24gSmYoYSxiKXtmb3IoO251bGwhPT1hOyl7dmFyIGM9YS5hbHRlcm5hdGU7aWYoYS5jaGlsZEV4cGlyYXRpb25UaW1lPGIpYS5jaGlsZEV4cGlyYXRpb25UaW1lPWIsbnVsbCE9PWMmJmMuY2hpbGRFeHBpcmF0aW9uVGltZTxiJiYoYy5jaGlsZEV4cGlyYXRpb25UaW1lPWIpO2Vsc2UgaWYobnVsbCE9PWMmJmMuY2hpbGRFeHBpcmF0aW9uVGltZTxiKWMuY2hpbGRFeHBpcmF0aW9uVGltZT1iO2Vsc2UgYnJlYWs7YT1hLnJldHVybn19XG5mdW5jdGlvbiBLZihhLGIpe0RmPWE7RmY9RWY9bnVsbDthPWEuZGVwZW5kZW5jaWVzO251bGwhPT1hJiZudWxsIT09YS5maXJzdENvbnRleHQmJihhLmV4cGlyYXRpb25UaW1lPj1iJiYoTGY9ITApLGEuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIE1mKGEsYil7aWYoRmYhPT1hJiYhMSE9PWImJjAhPT1iKXtpZihcIm51bWJlclwiIT09dHlwZW9mIGJ8fDEwNzM3NDE4MjM9PT1iKUZmPWEsYj0xMDczNzQxODIzO2I9e2NvbnRleHQ6YSxvYnNlcnZlZEJpdHM6YixuZXh0Om51bGx9O2lmKG51bGw9PT1FZil7aWYobnVsbD09PURmKXRocm93IHQoRXJyb3IoMzA4KSk7RWY9YjtEZi5kZXBlbmRlbmNpZXM9e2V4cGlyYXRpb25UaW1lOjAsZmlyc3RDb250ZXh0OmIscmVzcG9uZGVyczpudWxsfX1lbHNlIEVmPUVmLm5leHQ9Yn1yZXR1cm4gYS5fY3VycmVudFZhbHVlfXZhciBOZj0hMTtcbmZ1bmN0aW9uIE9mKGEpe3JldHVybntiYXNlU3RhdGU6YSxmaXJzdFVwZGF0ZTpudWxsLGxhc3RVcGRhdGU6bnVsbCxmaXJzdENhcHR1cmVkVXBkYXRlOm51bGwsbGFzdENhcHR1cmVkVXBkYXRlOm51bGwsZmlyc3RFZmZlY3Q6bnVsbCxsYXN0RWZmZWN0Om51bGwsZmlyc3RDYXB0dXJlZEVmZmVjdDpudWxsLGxhc3RDYXB0dXJlZEVmZmVjdDpudWxsfX1mdW5jdGlvbiBQZihhKXtyZXR1cm57YmFzZVN0YXRlOmEuYmFzZVN0YXRlLGZpcnN0VXBkYXRlOmEuZmlyc3RVcGRhdGUsbGFzdFVwZGF0ZTphLmxhc3RVcGRhdGUsZmlyc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGxhc3RDYXB0dXJlZFVwZGF0ZTpudWxsLGZpcnN0RWZmZWN0Om51bGwsbGFzdEVmZmVjdDpudWxsLGZpcnN0Q2FwdHVyZWRFZmZlY3Q6bnVsbCxsYXN0Q2FwdHVyZWRFZmZlY3Q6bnVsbH19XG5mdW5jdGlvbiBRZihhLGIpe3JldHVybntleHBpcmF0aW9uVGltZTphLHN1c3BlbnNlQ29uZmlnOmIsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsLG5leHRFZmZlY3Q6bnVsbH19ZnVuY3Rpb24gUmYoYSxiKXtudWxsPT09YS5sYXN0VXBkYXRlP2EuZmlyc3RVcGRhdGU9YS5sYXN0VXBkYXRlPWI6KGEubGFzdFVwZGF0ZS5uZXh0PWIsYS5sYXN0VXBkYXRlPWIpfVxuZnVuY3Rpb24gU2YoYSxiKXt2YXIgYz1hLmFsdGVybmF0ZTtpZihudWxsPT09Yyl7dmFyIGQ9YS51cGRhdGVRdWV1ZTt2YXIgZT1udWxsO251bGw9PT1kJiYoZD1hLnVwZGF0ZVF1ZXVlPU9mKGEubWVtb2l6ZWRTdGF0ZSkpfWVsc2UgZD1hLnVwZGF0ZVF1ZXVlLGU9Yy51cGRhdGVRdWV1ZSxudWxsPT09ZD9udWxsPT09ZT8oZD1hLnVwZGF0ZVF1ZXVlPU9mKGEubWVtb2l6ZWRTdGF0ZSksZT1jLnVwZGF0ZVF1ZXVlPU9mKGMubWVtb2l6ZWRTdGF0ZSkpOmQ9YS51cGRhdGVRdWV1ZT1QZihlKTpudWxsPT09ZSYmKGU9Yy51cGRhdGVRdWV1ZT1QZihkKSk7bnVsbD09PWV8fGQ9PT1lP1JmKGQsYik6bnVsbD09PWQubGFzdFVwZGF0ZXx8bnVsbD09PWUubGFzdFVwZGF0ZT8oUmYoZCxiKSxSZihlLGIpKTooUmYoZCxiKSxlLmxhc3RVcGRhdGU9Yil9XG5mdW5jdGlvbiBUZihhLGIpe3ZhciBjPWEudXBkYXRlUXVldWU7Yz1udWxsPT09Yz9hLnVwZGF0ZVF1ZXVlPU9mKGEubWVtb2l6ZWRTdGF0ZSk6VWYoYSxjKTtudWxsPT09Yy5sYXN0Q2FwdHVyZWRVcGRhdGU/Yy5maXJzdENhcHR1cmVkVXBkYXRlPWMubGFzdENhcHR1cmVkVXBkYXRlPWI6KGMubGFzdENhcHR1cmVkVXBkYXRlLm5leHQ9YixjLmxhc3RDYXB0dXJlZFVwZGF0ZT1iKX1mdW5jdGlvbiBVZihhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiZiPT09Yy51cGRhdGVRdWV1ZSYmKGI9YS51cGRhdGVRdWV1ZT1QZihiKSk7cmV0dXJuIGJ9XG5mdW5jdGlvbiBWZihhLGIsYyxkLGUsZil7c3dpdGNoKGMudGFnKXtjYXNlIDE6cmV0dXJuIGE9Yy5wYXlsb2FkLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhP2EuY2FsbChmLGQsZSk6YTtjYXNlIDM6YS5lZmZlY3RUYWc9YS5lZmZlY3RUYWcmLTIwNDl8NjQ7Y2FzZSAwOmE9Yy5wYXlsb2FkO2U9XCJmdW5jdGlvblwiPT09dHlwZW9mIGE/YS5jYWxsKGYsZCxlKTphO2lmKG51bGw9PT1lfHx2b2lkIDA9PT1lKWJyZWFrO3JldHVybiBtKHt9LGQsZSk7Y2FzZSAyOk5mPSEwfXJldHVybiBkfVxuZnVuY3Rpb24gV2YoYSxiLGMsZCxlKXtOZj0hMTtiPVVmKGEsYik7Zm9yKHZhciBmPWIuYmFzZVN0YXRlLGg9bnVsbCxnPTAsaz1iLmZpcnN0VXBkYXRlLGw9ZjtudWxsIT09azspe3ZhciBuPWsuZXhwaXJhdGlvblRpbWU7bjxlPyhudWxsPT09aCYmKGg9ayxmPWwpLGc8biYmKGc9bikpOihYZihuLGsuc3VzcGVuc2VDb25maWcpLGw9VmYoYSxiLGssbCxjLGQpLG51bGwhPT1rLmNhbGxiYWNrJiYoYS5lZmZlY3RUYWd8PTMyLGsubmV4dEVmZmVjdD1udWxsLG51bGw9PT1iLmxhc3RFZmZlY3Q/Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9azooYi5sYXN0RWZmZWN0Lm5leHRFZmZlY3Q9ayxiLmxhc3RFZmZlY3Q9aykpKTtrPWsubmV4dH1uPW51bGw7Zm9yKGs9Yi5maXJzdENhcHR1cmVkVXBkYXRlO251bGwhPT1rOyl7dmFyIHo9ay5leHBpcmF0aW9uVGltZTt6PGU/KG51bGw9PT1uJiYobj1rLG51bGw9PT1oJiYoZj1sKSksZzx6JiYoZz16KSk6KGw9VmYoYSxiLGssbCxjLGQpLG51bGwhPT1cbmsuY2FsbGJhY2smJihhLmVmZmVjdFRhZ3w9MzIsay5uZXh0RWZmZWN0PW51bGwsbnVsbD09PWIubGFzdENhcHR1cmVkRWZmZWN0P2IuZmlyc3RDYXB0dXJlZEVmZmVjdD1iLmxhc3RDYXB0dXJlZEVmZmVjdD1rOihiLmxhc3RDYXB0dXJlZEVmZmVjdC5uZXh0RWZmZWN0PWssYi5sYXN0Q2FwdHVyZWRFZmZlY3Q9aykpKTtrPWsubmV4dH1udWxsPT09aCYmKGIubGFzdFVwZGF0ZT1udWxsKTtudWxsPT09bj9iLmxhc3RDYXB0dXJlZFVwZGF0ZT1udWxsOmEuZWZmZWN0VGFnfD0zMjtudWxsPT09aCYmbnVsbD09PW4mJihmPWwpO2IuYmFzZVN0YXRlPWY7Yi5maXJzdFVwZGF0ZT1oO2IuZmlyc3RDYXB0dXJlZFVwZGF0ZT1uO2EuZXhwaXJhdGlvblRpbWU9ZzthLm1lbW9pemVkU3RhdGU9bH1cbmZ1bmN0aW9uIFlmKGEsYixjKXtudWxsIT09Yi5maXJzdENhcHR1cmVkVXBkYXRlJiYobnVsbCE9PWIubGFzdFVwZGF0ZSYmKGIubGFzdFVwZGF0ZS5uZXh0PWIuZmlyc3RDYXB0dXJlZFVwZGF0ZSxiLmxhc3RVcGRhdGU9Yi5sYXN0Q2FwdHVyZWRVcGRhdGUpLGIuZmlyc3RDYXB0dXJlZFVwZGF0ZT1iLmxhc3RDYXB0dXJlZFVwZGF0ZT1udWxsKTtaZihiLmZpcnN0RWZmZWN0LGMpO2IuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PW51bGw7WmYoYi5maXJzdENhcHR1cmVkRWZmZWN0LGMpO2IuZmlyc3RDYXB0dXJlZEVmZmVjdD1iLmxhc3RDYXB0dXJlZEVmZmVjdD1udWxsfWZ1bmN0aW9uIFpmKGEsYil7Zm9yKDtudWxsIT09YTspe3ZhciBjPWEuY2FsbGJhY2s7aWYobnVsbCE9PWMpe2EuY2FsbGJhY2s9bnVsbDt2YXIgZD1iO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBjKXRocm93IHQoRXJyb3IoMTkxKSxjKTtjLmNhbGwoZCl9YT1hLm5leHRFZmZlY3R9fVxudmFyICRmPVhiLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLGFnPShuZXcgYWEuQ29tcG9uZW50KS5yZWZzO2Z1bmN0aW9uIGJnKGEsYixjLGQpe2I9YS5tZW1vaXplZFN0YXRlO2M9YyhkLGIpO2M9bnVsbD09PWN8fHZvaWQgMD09PWM/YjptKHt9LGIsYyk7YS5tZW1vaXplZFN0YXRlPWM7ZD1hLnVwZGF0ZVF1ZXVlO251bGwhPT1kJiYwPT09YS5leHBpcmF0aW9uVGltZSYmKGQuYmFzZVN0YXRlPWMpfVxudmFyIGZnPXtpc01vdW50ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5fcmVhY3RJbnRlcm5hbEZpYmVyKT8yPT09bGQoYSk6ITF9LGVucXVldWVTZXRTdGF0ZTpmdW5jdGlvbihhLGIsYyl7YT1hLl9yZWFjdEludGVybmFsRmliZXI7dmFyIGQ9Y2coKSxlPSRmLnN1c3BlbnNlO2Q9ZGcoZCxhLGUpO2U9UWYoZCxlKTtlLnBheWxvYWQ9Yjt2b2lkIDAhPT1jJiZudWxsIT09YyYmKGUuY2FsbGJhY2s9Yyk7U2YoYSxlKTtlZyhhLGQpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGEsYixjKXthPWEuX3JlYWN0SW50ZXJuYWxGaWJlcjt2YXIgZD1jZygpLGU9JGYuc3VzcGVuc2U7ZD1kZyhkLGEsZSk7ZT1RZihkLGUpO2UudGFnPTE7ZS5wYXlsb2FkPWI7dm9pZCAwIT09YyYmbnVsbCE9PWMmJihlLmNhbGxiYWNrPWMpO1NmKGEsZSk7ZWcoYSxkKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGEsYil7YT1hLl9yZWFjdEludGVybmFsRmliZXI7dmFyIGM9Y2coKSxkPSRmLnN1c3BlbnNlO1xuYz1kZyhjLGEsZCk7ZD1RZihjLGQpO2QudGFnPTI7dm9pZCAwIT09YiYmbnVsbCE9PWImJihkLmNhbGxiYWNrPWIpO1NmKGEsZCk7ZWcoYSxjKX19O2Z1bmN0aW9uIGdnKGEsYixjLGQsZSxmLGgpe2E9YS5zdGF0ZU5vZGU7cmV0dXJuXCJmdW5jdGlvblwiPT09dHlwZW9mIGEuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Euc2hvdWxkQ29tcG9uZW50VXBkYXRlKGQsZixoKTpiLnByb3RvdHlwZSYmYi5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQ/IWpkKGMsZCl8fCFqZChlLGYpOiEwfVxuZnVuY3Rpb24gaGcoYSxiLGMpe3ZhciBkPSExLGU9UWU7dmFyIGY9Yi5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGYmJm51bGwhPT1mP2Y9TWYoZik6KGU9TihiKT9SZTpMLmN1cnJlbnQsZD1iLmNvbnRleHRUeXBlcyxmPShkPW51bGwhPT1kJiZ2b2lkIDAhPT1kKT9TZShhLGUpOlFlKTtiPW5ldyBiKGMsZik7YS5tZW1vaXplZFN0YXRlPW51bGwhPT1iLnN0YXRlJiZ2b2lkIDAhPT1iLnN0YXRlP2Iuc3RhdGU6bnVsbDtiLnVwZGF0ZXI9Zmc7YS5zdGF0ZU5vZGU9YjtiLl9yZWFjdEludGVybmFsRmliZXI9YTtkJiYoYT1hLnN0YXRlTm9kZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQ9ZSxhLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0PWYpO3JldHVybiBifVxuZnVuY3Rpb24gaWcoYSxiLGMsZCl7YT1iLnN0YXRlO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJmIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhjLGQpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZiLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKGMsZCk7Yi5zdGF0ZSE9PWEmJmZnLmVucXVldWVSZXBsYWNlU3RhdGUoYixiLnN0YXRlLG51bGwpfVxuZnVuY3Rpb24gamcoYSxiLGMsZCl7dmFyIGU9YS5zdGF0ZU5vZGU7ZS5wcm9wcz1jO2Uuc3RhdGU9YS5tZW1vaXplZFN0YXRlO2UucmVmcz1hZzt2YXIgZj1iLmNvbnRleHRUeXBlO1wib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWY/ZS5jb250ZXh0PU1mKGYpOihmPU4oYik/UmU6TC5jdXJyZW50LGUuY29udGV4dD1TZShhLGYpKTtmPWEudXBkYXRlUXVldWU7bnVsbCE9PWYmJihXZihhLGYsYyxlLGQpLGUuc3RhdGU9YS5tZW1vaXplZFN0YXRlKTtmPWIuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBmJiYoYmcoYSxiLGYsYyksZS5zdGF0ZT1hLm1lbW9pemVkU3RhdGUpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBiLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT09dHlwZW9mIGUuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PVxudHlwZW9mIGUuY29tcG9uZW50V2lsbE1vdW50fHwoYj1lLnN0YXRlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudFdpbGxNb3VudCYmZS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxiIT09ZS5zdGF0ZSYmZmcuZW5xdWV1ZVJlcGxhY2VTdGF0ZShlLGUuc3RhdGUsbnVsbCksZj1hLnVwZGF0ZVF1ZXVlLG51bGwhPT1mJiYoV2YoYSxmLGMsZSxkKSxlLnN0YXRlPWEubWVtb2l6ZWRTdGF0ZSkpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBlLmNvbXBvbmVudERpZE1vdW50JiYoYS5lZmZlY3RUYWd8PTQpfXZhciBrZz1BcnJheS5pc0FycmF5O1xuZnVuY3Rpb24gbGcoYSxiLGMpe2E9Yy5yZWY7aWYobnVsbCE9PWEmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBhJiZcIm9iamVjdFwiIT09dHlwZW9mIGEpe2lmKGMuX293bmVyKXtjPWMuX293bmVyO3ZhciBkPXZvaWQgMDtpZihjKXtpZigxIT09Yy50YWcpdGhyb3cgdChFcnJvcigzMDkpKTtkPWMuc3RhdGVOb2RlfWlmKCFkKXRocm93IHQoRXJyb3IoMTQ3KSxhKTt2YXIgZT1cIlwiK2E7aWYobnVsbCE9PWImJm51bGwhPT1iLnJlZiYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGIucmVmJiZiLnJlZi5fc3RyaW5nUmVmPT09ZSlyZXR1cm4gYi5yZWY7Yj1mdW5jdGlvbihhKXt2YXIgYj1kLnJlZnM7Yj09PWFnJiYoYj1kLnJlZnM9e30pO251bGw9PT1hP2RlbGV0ZSBiW2VdOmJbZV09YX07Yi5fc3RyaW5nUmVmPWU7cmV0dXJuIGJ9aWYoXCJzdHJpbmdcIiE9PXR5cGVvZiBhKXRocm93IHQoRXJyb3IoMjg0KSk7aWYoIWMuX293bmVyKXRocm93IHQoRXJyb3IoMjkwKSxhKTt9cmV0dXJuIGF9XG5mdW5jdGlvbiBtZyhhLGIpe2lmKFwidGV4dGFyZWFcIiE9PWEudHlwZSl0aHJvdyB0KEVycm9yKDMxKSxcIltvYmplY3QgT2JqZWN0XVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGIpP1wib2JqZWN0IHdpdGgga2V5cyB7XCIrT2JqZWN0LmtleXMoYikuam9pbihcIiwgXCIpK1wifVwiOmIsXCJcIik7fVxuZnVuY3Rpb24gbmcoYSl7ZnVuY3Rpb24gYihiLGMpe2lmKGEpe3ZhciBkPWIubGFzdEVmZmVjdDtudWxsIT09ZD8oZC5uZXh0RWZmZWN0PWMsYi5sYXN0RWZmZWN0PWMpOmIuZmlyc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0PWM7Yy5uZXh0RWZmZWN0PW51bGw7Yy5lZmZlY3RUYWc9OH19ZnVuY3Rpb24gYyhjLGQpe2lmKCFhKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PWQ7KWIoYyxkKSxkPWQuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGEsYil7Zm9yKGE9bmV3IE1hcDtudWxsIT09YjspbnVsbCE9PWIua2V5P2Euc2V0KGIua2V5LGIpOmEuc2V0KGIuaW5kZXgsYiksYj1iLnNpYmxpbmc7cmV0dXJuIGF9ZnVuY3Rpb24gZShhLGIsYyl7YT1vZyhhLGIsYyk7YS5pbmRleD0wO2Euc2libGluZz1udWxsO3JldHVybiBhfWZ1bmN0aW9uIGYoYixjLGQpe2IuaW5kZXg9ZDtpZighYSlyZXR1cm4gYztkPWIuYWx0ZXJuYXRlO2lmKG51bGwhPT1kKXJldHVybiBkPWQuaW5kZXgsZDxjPyhiLmVmZmVjdFRhZz1cbjIsYyk6ZDtiLmVmZmVjdFRhZz0yO3JldHVybiBjfWZ1bmN0aW9uIGgoYil7YSYmbnVsbD09PWIuYWx0ZXJuYXRlJiYoYi5lZmZlY3RUYWc9Mik7cmV0dXJuIGJ9ZnVuY3Rpb24gZyhhLGIsYyxkKXtpZihudWxsPT09Ynx8NiE9PWIudGFnKXJldHVybiBiPXBnKGMsYS5tb2RlLGQpLGIucmV0dXJuPWEsYjtiPWUoYixjLGQpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24gayhhLGIsYyxkKXtpZihudWxsIT09YiYmYi5lbGVtZW50VHlwZT09PWMudHlwZSlyZXR1cm4gZD1lKGIsYy5wcm9wcyxkKSxkLnJlZj1sZyhhLGIsYyksZC5yZXR1cm49YSxkO2Q9cWcoYy50eXBlLGMua2V5LGMucHJvcHMsbnVsbCxhLm1vZGUsZCk7ZC5yZWY9bGcoYSxiLGMpO2QucmV0dXJuPWE7cmV0dXJuIGR9ZnVuY3Rpb24gbChhLGIsYyxkKXtpZihudWxsPT09Ynx8NCE9PWIudGFnfHxiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09Yy5jb250YWluZXJJbmZvfHxiLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PVxuYy5pbXBsZW1lbnRhdGlvbilyZXR1cm4gYj1yZyhjLGEubW9kZSxkKSxiLnJldHVybj1hLGI7Yj1lKGIsYy5jaGlsZHJlbnx8W10sZCk7Yi5yZXR1cm49YTtyZXR1cm4gYn1mdW5jdGlvbiBuKGEsYixjLGQsZil7aWYobnVsbD09PWJ8fDchPT1iLnRhZylyZXR1cm4gYj1zZyhjLGEubW9kZSxkLGYpLGIucmV0dXJuPWEsYjtiPWUoYixjLGQpO2IucmV0dXJuPWE7cmV0dXJuIGJ9ZnVuY3Rpb24geihhLGIsYyl7aWYoXCJzdHJpbmdcIj09PXR5cGVvZiBifHxcIm51bWJlclwiPT09dHlwZW9mIGIpcmV0dXJuIGI9cGcoXCJcIitiLGEubW9kZSxjKSxiLnJldHVybj1hLGI7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBiJiZudWxsIT09Yil7c3dpdGNoKGIuJCR0eXBlb2Ype2Nhc2UgWmI6cmV0dXJuIGM9cWcoYi50eXBlLGIua2V5LGIucHJvcHMsbnVsbCxhLm1vZGUsYyksYy5yZWY9bGcoYSxudWxsLGIpLGMucmV0dXJuPWEsYztjYXNlICRiOnJldHVybiBiPXJnKGIsYS5tb2RlLGMpLGIucmV0dXJuPWEsYn1pZihrZyhiKXx8XG5tYyhiKSlyZXR1cm4gYj1zZyhiLGEubW9kZSxjLG51bGwpLGIucmV0dXJuPWEsYjttZyhhLGIpfXJldHVybiBudWxsfWZ1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGU9bnVsbCE9PWI/Yi5rZXk6bnVsbDtpZihcInN0cmluZ1wiPT09dHlwZW9mIGN8fFwibnVtYmVyXCI9PT10eXBlb2YgYylyZXR1cm4gbnVsbCE9PWU/bnVsbDpnKGEsYixcIlwiK2MsZCk7aWYoXCJvYmplY3RcIj09PXR5cGVvZiBjJiZudWxsIT09Yyl7c3dpdGNoKGMuJCR0eXBlb2Ype2Nhc2UgWmI6cmV0dXJuIGMua2V5PT09ZT9jLnR5cGU9PT1hYz9uKGEsYixjLnByb3BzLmNoaWxkcmVuLGQsZSk6ayhhLGIsYyxkKTpudWxsO2Nhc2UgJGI6cmV0dXJuIGMua2V5PT09ZT9sKGEsYixjLGQpOm51bGx9aWYoa2coYyl8fG1jKGMpKXJldHVybiBudWxsIT09ZT9udWxsOm4oYSxiLGMsZCxudWxsKTttZyhhLGMpfXJldHVybiBudWxsfWZ1bmN0aW9uIHYoYSxiLGMsZCxlKXtpZihcInN0cmluZ1wiPT09dHlwZW9mIGR8fFwibnVtYmVyXCI9PT10eXBlb2YgZClyZXR1cm4gYT1cbmEuZ2V0KGMpfHxudWxsLGcoYixhLFwiXCIrZCxlKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGQmJm51bGwhPT1kKXtzd2l0Y2goZC4kJHR5cGVvZil7Y2FzZSBaYjpyZXR1cm4gYT1hLmdldChudWxsPT09ZC5rZXk/YzpkLmtleSl8fG51bGwsZC50eXBlPT09YWM/bihiLGEsZC5wcm9wcy5jaGlsZHJlbixlLGQua2V5KTprKGIsYSxkLGUpO2Nhc2UgJGI6cmV0dXJuIGE9YS5nZXQobnVsbD09PWQua2V5P2M6ZC5rZXkpfHxudWxsLGwoYixhLGQsZSl9aWYoa2coZCl8fG1jKGQpKXJldHVybiBhPWEuZ2V0KGMpfHxudWxsLG4oYixhLGQsZSxudWxsKTttZyhiLGQpfXJldHVybiBudWxsfWZ1bmN0aW9uIHJiKGUsaCxnLGspe2Zvcih2YXIgbD1udWxsLHU9bnVsbCxuPWgsdz1oPTAsQz1udWxsO251bGwhPT1uJiZ3PGcubGVuZ3RoO3crKyl7bi5pbmRleD53PyhDPW4sbj1udWxsKTpDPW4uc2libGluZzt2YXIgcD14KGUsbixnW3ddLGspO2lmKG51bGw9PT1wKXtudWxsPT09biYmKG49Qyk7YnJlYWt9YSYmXG5uJiZudWxsPT09cC5hbHRlcm5hdGUmJmIoZSxuKTtoPWYocCxoLHcpO251bGw9PT11P2w9cDp1LnNpYmxpbmc9cDt1PXA7bj1DfWlmKHc9PT1nLmxlbmd0aClyZXR1cm4gYyhlLG4pLGw7aWYobnVsbD09PW4pe2Zvcig7dzxnLmxlbmd0aDt3Kyspbj16KGUsZ1t3XSxrKSxudWxsIT09biYmKGg9ZihuLGgsdyksbnVsbD09PXU/bD1uOnUuc2libGluZz1uLHU9bik7cmV0dXJuIGx9Zm9yKG49ZChlLG4pO3c8Zy5sZW5ndGg7dysrKUM9dihuLGUsdyxnW3ddLGspLG51bGwhPT1DJiYoYSYmbnVsbCE9PUMuYWx0ZXJuYXRlJiZuLmRlbGV0ZShudWxsPT09Qy5rZXk/dzpDLmtleSksaD1mKEMsaCx3KSxudWxsPT09dT9sPUM6dS5zaWJsaW5nPUMsdT1DKTthJiZuLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIGIoZSxhKX0pO3JldHVybiBsfWZ1bmN0aW9uIEJlKGUsaCxnLGspe3ZhciBsPW1jKGcpO2lmKFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBsKXRocm93IHQoRXJyb3IoMTUwKSk7Zz1sLmNhbGwoZyk7XG5pZihudWxsPT1nKXRocm93IHQoRXJyb3IoMTUxKSk7Zm9yKHZhciBuPWw9bnVsbCx1PWgsdz1oPTAsQz1udWxsLHA9Zy5uZXh0KCk7bnVsbCE9PXUmJiFwLmRvbmU7dysrLHA9Zy5uZXh0KCkpe3UuaW5kZXg+dz8oQz11LHU9bnVsbCk6Qz11LnNpYmxpbmc7dmFyIHI9eChlLHUscC52YWx1ZSxrKTtpZihudWxsPT09cil7bnVsbD09PXUmJih1PUMpO2JyZWFrfWEmJnUmJm51bGw9PT1yLmFsdGVybmF0ZSYmYihlLHUpO2g9ZihyLGgsdyk7bnVsbD09PW4/bD1yOm4uc2libGluZz1yO249cjt1PUN9aWYocC5kb25lKXJldHVybiBjKGUsdSksbDtpZihudWxsPT09dSl7Zm9yKDshcC5kb25lO3crKyxwPWcubmV4dCgpKXA9eihlLHAudmFsdWUsayksbnVsbCE9PXAmJihoPWYocCxoLHcpLG51bGw9PT1uP2w9cDpuLnNpYmxpbmc9cCxuPXApO3JldHVybiBsfWZvcih1PWQoZSx1KTshcC5kb25lO3crKyxwPWcubmV4dCgpKXA9dih1LGUsdyxwLnZhbHVlLGspLG51bGwhPT1wJiYoYSYmbnVsbCE9PVxucC5hbHRlcm5hdGUmJnUuZGVsZXRlKG51bGw9PT1wLmtleT93OnAua2V5KSxoPWYocCxoLHcpLG51bGw9PT1uP2w9cDpuLnNpYmxpbmc9cCxuPXApO2EmJnUuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gYihlLGEpfSk7cmV0dXJuIGx9cmV0dXJuIGZ1bmN0aW9uKGEsZCxmLGcpe3ZhciBrPVwib2JqZWN0XCI9PT10eXBlb2YgZiYmbnVsbCE9PWYmJmYudHlwZT09PWFjJiZudWxsPT09Zi5rZXk7ayYmKGY9Zi5wcm9wcy5jaGlsZHJlbik7dmFyIGw9XCJvYmplY3RcIj09PXR5cGVvZiBmJiZudWxsIT09ZjtpZihsKXN3aXRjaChmLiQkdHlwZW9mKXtjYXNlIFpiOmE6e2w9Zi5rZXk7Zm9yKGs9ZDtudWxsIT09azspe2lmKGsua2V5PT09bCl7aWYoNz09PWsudGFnP2YudHlwZT09PWFjOmsuZWxlbWVudFR5cGU9PT1mLnR5cGUpe2MoYSxrLnNpYmxpbmcpO2Q9ZShrLGYudHlwZT09PWFjP2YucHJvcHMuY2hpbGRyZW46Zi5wcm9wcyxnKTtkLnJlZj1sZyhhLGssZik7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1jKGEsXG5rKTticmVha31lbHNlIGIoYSxrKTtrPWsuc2libGluZ31mLnR5cGU9PT1hYz8oZD1zZyhmLnByb3BzLmNoaWxkcmVuLGEubW9kZSxnLGYua2V5KSxkLnJldHVybj1hLGE9ZCk6KGc9cWcoZi50eXBlLGYua2V5LGYucHJvcHMsbnVsbCxhLm1vZGUsZyksZy5yZWY9bGcoYSxkLGYpLGcucmV0dXJuPWEsYT1nKX1yZXR1cm4gaChhKTtjYXNlICRiOmE6e2ZvcihrPWYua2V5O251bGwhPT1kOyl7aWYoZC5rZXk9PT1rKXtpZig0PT09ZC50YWcmJmQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1mLmNvbnRhaW5lckluZm8mJmQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09Zi5pbXBsZW1lbnRhdGlvbil7YyhhLGQuc2libGluZyk7ZD1lKGQsZi5jaGlsZHJlbnx8W10sZyk7ZC5yZXR1cm49YTthPWQ7YnJlYWsgYX1jKGEsZCk7YnJlYWt9ZWxzZSBiKGEsZCk7ZD1kLnNpYmxpbmd9ZD1yZyhmLGEubW9kZSxnKTtkLnJldHVybj1hO2E9ZH1yZXR1cm4gaChhKX1pZihcInN0cmluZ1wiPT09dHlwZW9mIGZ8fFxuXCJudW1iZXJcIj09PXR5cGVvZiBmKXJldHVybiBmPVwiXCIrZixudWxsIT09ZCYmNj09PWQudGFnPyhjKGEsZC5zaWJsaW5nKSxkPWUoZCxmLGcpLGQucmV0dXJuPWEsYT1kKTooYyhhLGQpLGQ9cGcoZixhLm1vZGUsZyksZC5yZXR1cm49YSxhPWQpLGgoYSk7aWYoa2coZikpcmV0dXJuIHJiKGEsZCxmLGcpO2lmKG1jKGYpKXJldHVybiBCZShhLGQsZixnKTtsJiZtZyhhLGYpO2lmKFwidW5kZWZpbmVkXCI9PT10eXBlb2YgZiYmIWspc3dpdGNoKGEudGFnKXtjYXNlIDE6Y2FzZSAwOnRocm93IGE9YS50eXBlLHQoRXJyb3IoMTUyKSxhLmRpc3BsYXlOYW1lfHxhLm5hbWV8fFwiQ29tcG9uZW50XCIpO31yZXR1cm4gYyhhLGQpfX12YXIgdGc9bmcoITApLHVnPW5nKCExKSx2Zz17fSx3Zz17Y3VycmVudDp2Z30seGc9e2N1cnJlbnQ6dmd9LHlnPXtjdXJyZW50OnZnfTtmdW5jdGlvbiB6ZyhhKXtpZihhPT09dmcpdGhyb3cgdChFcnJvcigxNzQpKTtyZXR1cm4gYX1cbmZ1bmN0aW9uIEFnKGEsYil7Sih5ZyxiLGEpO0ooeGcsYSxhKTtKKHdnLHZnLGEpO3ZhciBjPWIubm9kZVR5cGU7c3dpdGNoKGMpe2Nhc2UgOTpjYXNlIDExOmI9KGI9Yi5kb2N1bWVudEVsZW1lbnQpP2IubmFtZXNwYWNlVVJJOnRlKG51bGwsXCJcIik7YnJlYWs7ZGVmYXVsdDpjPTg9PT1jP2IucGFyZW50Tm9kZTpiLGI9Yy5uYW1lc3BhY2VVUkl8fG51bGwsYz1jLnRhZ05hbWUsYj10ZShiLGMpfUgod2csYSk7Sih3ZyxiLGEpfWZ1bmN0aW9uIEJnKGEpe0god2csYSk7SCh4ZyxhKTtIKHlnLGEpfWZ1bmN0aW9uIENnKGEpe3pnKHlnLmN1cnJlbnQpO3ZhciBiPXpnKHdnLmN1cnJlbnQpO3ZhciBjPXRlKGIsYS50eXBlKTtiIT09YyYmKEooeGcsYSxhKSxKKHdnLGMsYSkpfWZ1bmN0aW9uIERnKGEpe3hnLmN1cnJlbnQ9PT1hJiYoSCh3ZyxhKSxIKHhnLGEpKX12YXIgRWc9MSxGZz0xLEdnPTIsUD17Y3VycmVudDowfTtcbmZ1bmN0aW9uIEhnKGEpe2Zvcih2YXIgYj1hO251bGwhPT1iOyl7aWYoMTM9PT1iLnRhZyl7aWYobnVsbCE9PWIubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gYn1lbHNlIGlmKDE5PT09Yi50YWcmJnZvaWQgMCE9PWIubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlcil7aWYoMCE9PShiLmVmZmVjdFRhZyY2NCkpcmV0dXJuIGJ9ZWxzZSBpZihudWxsIT09Yi5jaGlsZCl7Yi5jaGlsZC5yZXR1cm49YjtiPWIuY2hpbGQ7Y29udGludWV9aWYoYj09PWEpYnJlYWs7Zm9yKDtudWxsPT09Yi5zaWJsaW5nOyl7aWYobnVsbD09PWIucmV0dXJufHxiLnJldHVybj09PWEpcmV0dXJuIG51bGw7Yj1iLnJldHVybn1iLnNpYmxpbmcucmV0dXJuPWIucmV0dXJuO2I9Yi5zaWJsaW5nfXJldHVybiBudWxsfVxudmFyIElnPTAsSmc9MixLZz00LExnPTgsTWc9MTYsTmc9MzIsT2c9NjQsUGc9MTI4LFFnPVhiLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsUmc9MCxTZz1udWxsLFE9bnVsbCxUZz1udWxsLFVnPW51bGwsUj1udWxsLFZnPW51bGwsV2c9MCxYZz1udWxsLFlnPTAsWmc9ITEsJGc9bnVsbCxhaD0wO2Z1bmN0aW9uIGJoKCl7dGhyb3cgdChFcnJvcigzMjEpKTt9ZnVuY3Rpb24gY2goYSxiKXtpZihudWxsPT09YilyZXR1cm4hMTtmb3IodmFyIGM9MDtjPGIubGVuZ3RoJiZjPGEubGVuZ3RoO2MrKylpZighaGQoYVtjXSxiW2NdKSlyZXR1cm4hMTtyZXR1cm4hMH1cbmZ1bmN0aW9uIGRoKGEsYixjLGQsZSxmKXtSZz1mO1NnPWI7VGc9bnVsbCE9PWE/YS5tZW1vaXplZFN0YXRlOm51bGw7UWcuY3VycmVudD1udWxsPT09VGc/ZWg6Zmg7Yj1jKGQsZSk7aWYoWmcpe2RvIFpnPSExLGFoKz0xLFRnPW51bGwhPT1hP2EubWVtb2l6ZWRTdGF0ZTpudWxsLFZnPVVnLFhnPVI9UT1udWxsLFFnLmN1cnJlbnQ9ZmgsYj1jKGQsZSk7d2hpbGUoWmcpOyRnPW51bGw7YWg9MH1RZy5jdXJyZW50PWhoO2E9U2c7YS5tZW1vaXplZFN0YXRlPVVnO2EuZXhwaXJhdGlvblRpbWU9V2c7YS51cGRhdGVRdWV1ZT1YZzthLmVmZmVjdFRhZ3w9WWc7YT1udWxsIT09USYmbnVsbCE9PVEubmV4dDtSZz0wO1ZnPVI9VWc9VGc9UT1TZz1udWxsO1dnPTA7WGc9bnVsbDtZZz0wO2lmKGEpdGhyb3cgdChFcnJvcigzMDApKTtyZXR1cm4gYn1cbmZ1bmN0aW9uIGloKCl7UWcuY3VycmVudD1oaDtSZz0wO1ZnPVI9VWc9VGc9UT1TZz1udWxsO1dnPTA7WGc9bnVsbDtZZz0wO1pnPSExOyRnPW51bGw7YWg9MH1mdW5jdGlvbiBqaCgpe3ZhciBhPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwscXVldWU6bnVsbCxiYXNlVXBkYXRlOm51bGwsbmV4dDpudWxsfTtudWxsPT09Uj9VZz1SPWE6Uj1SLm5leHQ9YTtyZXR1cm4gUn1mdW5jdGlvbiBraCgpe2lmKG51bGwhPT1WZylSPVZnLFZnPVIubmV4dCxRPVRnLFRnPW51bGwhPT1RP1EubmV4dDpudWxsO2Vsc2V7aWYobnVsbD09PVRnKXRocm93IHQoRXJyb3IoMzEwKSk7UT1UZzt2YXIgYT17bWVtb2l6ZWRTdGF0ZTpRLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOlEuYmFzZVN0YXRlLHF1ZXVlOlEucXVldWUsYmFzZVVwZGF0ZTpRLmJhc2VVcGRhdGUsbmV4dDpudWxsfTtSPW51bGw9PT1SP1VnPWE6Ui5uZXh0PWE7VGc9US5uZXh0fXJldHVybiBSfVxuZnVuY3Rpb24gbGgoYSxiKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT10eXBlb2YgYj9iKGEpOmJ9XG5mdW5jdGlvbiBtaChhKXt2YXIgYj1raCgpLGM9Yi5xdWV1ZTtpZihudWxsPT09Yyl0aHJvdyB0KEVycm9yKDMxMSkpO2MubGFzdFJlbmRlcmVkUmVkdWNlcj1hO2lmKDA8YWgpe3ZhciBkPWMuZGlzcGF0Y2g7aWYobnVsbCE9PSRnKXt2YXIgZT0kZy5nZXQoYyk7aWYodm9pZCAwIT09ZSl7JGcuZGVsZXRlKGMpO3ZhciBmPWIubWVtb2l6ZWRTdGF0ZTtkbyBmPWEoZixlLmFjdGlvbiksZT1lLm5leHQ7d2hpbGUobnVsbCE9PWUpO2hkKGYsYi5tZW1vaXplZFN0YXRlKXx8KExmPSEwKTtiLm1lbW9pemVkU3RhdGU9ZjtiLmJhc2VVcGRhdGU9PT1jLmxhc3QmJihiLmJhc2VTdGF0ZT1mKTtjLmxhc3RSZW5kZXJlZFN0YXRlPWY7cmV0dXJuW2YsZF19fXJldHVybltiLm1lbW9pemVkU3RhdGUsZF19ZD1jLmxhc3Q7dmFyIGg9Yi5iYXNlVXBkYXRlO2Y9Yi5iYXNlU3RhdGU7bnVsbCE9PWg/KG51bGwhPT1kJiYoZC5uZXh0PW51bGwpLGQ9aC5uZXh0KTpkPW51bGwhPT1kP2QubmV4dDpudWxsO2lmKG51bGwhPT1cbmQpe3ZhciBnPWU9bnVsbCxrPWQsbD0hMTtkb3t2YXIgbj1rLmV4cGlyYXRpb25UaW1lO248Umc/KGx8fChsPSEwLGc9aCxlPWYpLG4+V2cmJihXZz1uKSk6KFhmKG4say5zdXNwZW5zZUNvbmZpZyksZj1rLmVhZ2VyUmVkdWNlcj09PWE/ay5lYWdlclN0YXRlOmEoZixrLmFjdGlvbikpO2g9aztrPWsubmV4dH13aGlsZShudWxsIT09ayYmayE9PWQpO2x8fChnPWgsZT1mKTtoZChmLGIubWVtb2l6ZWRTdGF0ZSl8fChMZj0hMCk7Yi5tZW1vaXplZFN0YXRlPWY7Yi5iYXNlVXBkYXRlPWc7Yi5iYXNlU3RhdGU9ZTtjLmxhc3RSZW5kZXJlZFN0YXRlPWZ9cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxjLmRpc3BhdGNoXX1cbmZ1bmN0aW9uIG5oKGEsYixjLGQpe2E9e3RhZzphLGNyZWF0ZTpiLGRlc3Ryb3k6YyxkZXBzOmQsbmV4dDpudWxsfTtudWxsPT09WGc/KFhnPXtsYXN0RWZmZWN0Om51bGx9LFhnLmxhc3RFZmZlY3Q9YS5uZXh0PWEpOihiPVhnLmxhc3RFZmZlY3QsbnVsbD09PWI/WGcubGFzdEVmZmVjdD1hLm5leHQ9YTooYz1iLm5leHQsYi5uZXh0PWEsYS5uZXh0PWMsWGcubGFzdEVmZmVjdD1hKSk7cmV0dXJuIGF9ZnVuY3Rpb24gb2goYSxiLGMsZCl7dmFyIGU9amgoKTtZZ3w9YTtlLm1lbW9pemVkU3RhdGU9bmgoYixjLHZvaWQgMCx2b2lkIDA9PT1kP251bGw6ZCl9XG5mdW5jdGlvbiBwaChhLGIsYyxkKXt2YXIgZT1raCgpO2Q9dm9pZCAwPT09ZD9udWxsOmQ7dmFyIGY9dm9pZCAwO2lmKG51bGwhPT1RKXt2YXIgaD1RLm1lbW9pemVkU3RhdGU7Zj1oLmRlc3Ryb3k7aWYobnVsbCE9PWQmJmNoKGQsaC5kZXBzKSl7bmgoSWcsYyxmLGQpO3JldHVybn19WWd8PWE7ZS5tZW1vaXplZFN0YXRlPW5oKGIsYyxmLGQpfWZ1bmN0aW9uIHFoKGEsYil7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGIpcmV0dXJuIGE9YSgpLGIoYSksZnVuY3Rpb24oKXtiKG51bGwpfTtpZihudWxsIT09YiYmdm9pZCAwIT09YilyZXR1cm4gYT1hKCksYi5jdXJyZW50PWEsZnVuY3Rpb24oKXtiLmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gcmgoKXt9XG5mdW5jdGlvbiBzaChhLGIsYyl7aWYoISgyNT5haCkpdGhyb3cgdChFcnJvcigzMDEpKTt2YXIgZD1hLmFsdGVybmF0ZTtpZihhPT09U2d8fG51bGwhPT1kJiZkPT09U2cpaWYoWmc9ITAsYT17ZXhwaXJhdGlvblRpbWU6Umcsc3VzcGVuc2VDb25maWc6bnVsbCxhY3Rpb246YyxlYWdlclJlZHVjZXI6bnVsbCxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxudWxsPT09JGcmJigkZz1uZXcgTWFwKSxjPSRnLmdldChiKSx2b2lkIDA9PT1jKSRnLnNldChiLGEpO2Vsc2V7Zm9yKGI9YztudWxsIT09Yi5uZXh0OyliPWIubmV4dDtiLm5leHQ9YX1lbHNle3ZhciBlPWNnKCksZj0kZi5zdXNwZW5zZTtlPWRnKGUsYSxmKTtmPXtleHBpcmF0aW9uVGltZTplLHN1c3BlbnNlQ29uZmlnOmYsYWN0aW9uOmMsZWFnZXJSZWR1Y2VyOm51bGwsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07dmFyIGg9Yi5sYXN0O2lmKG51bGw9PT1oKWYubmV4dD1mO2Vsc2V7dmFyIGc9aC5uZXh0O251bGwhPT1nJiZcbihmLm5leHQ9Zyk7aC5uZXh0PWZ9Yi5sYXN0PWY7aWYoMD09PWEuZXhwaXJhdGlvblRpbWUmJihudWxsPT09ZHx8MD09PWQuZXhwaXJhdGlvblRpbWUpJiYoZD1iLmxhc3RSZW5kZXJlZFJlZHVjZXIsbnVsbCE9PWQpKXRyeXt2YXIgaz1iLmxhc3RSZW5kZXJlZFN0YXRlLGw9ZChrLGMpO2YuZWFnZXJSZWR1Y2VyPWQ7Zi5lYWdlclN0YXRlPWw7aWYoaGQobCxrKSlyZXR1cm59Y2F0Y2gobil7fWZpbmFsbHl7fWVnKGEsZSl9fVxudmFyIGhoPXtyZWFkQ29udGV4dDpNZix1c2VDYWxsYmFjazpiaCx1c2VDb250ZXh0OmJoLHVzZUVmZmVjdDpiaCx1c2VJbXBlcmF0aXZlSGFuZGxlOmJoLHVzZUxheW91dEVmZmVjdDpiaCx1c2VNZW1vOmJoLHVzZVJlZHVjZXI6YmgsdXNlUmVmOmJoLHVzZVN0YXRlOmJoLHVzZURlYnVnVmFsdWU6YmgsdXNlUmVzcG9uZGVyOmJofSxlaD17cmVhZENvbnRleHQ6TWYsdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXtqaCgpLm1lbW9pemVkU3RhdGU9W2Esdm9pZCAwPT09Yj9udWxsOmJdO3JldHVybiBhfSx1c2VDb250ZXh0Ok1mLHVzZUVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBvaCg1MTYsUGd8T2csYSxiKX0sdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihhLGIsYyl7Yz1udWxsIT09YyYmdm9pZCAwIT09Yz9jLmNvbmNhdChbYV0pOm51bGw7cmV0dXJuIG9oKDQsS2d8TmcscWguYmluZChudWxsLGIsYSksYyl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBvaCg0LFxuS2d8TmcsYSxiKX0sdXNlTWVtbzpmdW5jdGlvbihhLGIpe3ZhciBjPWpoKCk7Yj12b2lkIDA9PT1iP251bGw6YjthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWpoKCk7Yj12b2lkIDAhPT1jP2MoYik6YjtkLm1lbW9pemVkU3RhdGU9ZC5iYXNlU3RhdGU9YjthPWQucXVldWU9e2xhc3Q6bnVsbCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6YSxsYXN0UmVuZGVyZWRTdGF0ZTpifTthPWEuZGlzcGF0Y2g9c2guYmluZChudWxsLFNnLGEpO3JldHVybltkLm1lbW9pemVkU3RhdGUsYV19LHVzZVJlZjpmdW5jdGlvbihhKXt2YXIgYj1qaCgpO2E9e2N1cnJlbnQ6YX07cmV0dXJuIGIubWVtb2l6ZWRTdGF0ZT1hfSx1c2VTdGF0ZTpmdW5jdGlvbihhKXt2YXIgYj1qaCgpO1wiZnVuY3Rpb25cIj09PXR5cGVvZiBhJiYoYT1hKCkpO2IubWVtb2l6ZWRTdGF0ZT1iLmJhc2VTdGF0ZT1hO2E9Yi5xdWV1ZT1cbntsYXN0Om51bGwsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOmxoLGxhc3RSZW5kZXJlZFN0YXRlOmF9O2E9YS5kaXNwYXRjaD1zaC5iaW5kKG51bGwsU2csYSk7cmV0dXJuW2IubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlRGVidWdWYWx1ZTpyaCx1c2VSZXNwb25kZXI6a2R9LGZoPXtyZWFkQ29udGV4dDpNZix1c2VDYWxsYmFjazpmdW5jdGlvbihhLGIpe3ZhciBjPWtoKCk7Yj12b2lkIDA9PT1iP251bGw6Yjt2YXIgZD1jLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWQmJm51bGwhPT1iJiZjaChiLGRbMV0pKXJldHVybiBkWzBdO2MubWVtb2l6ZWRTdGF0ZT1bYSxiXTtyZXR1cm4gYX0sdXNlQ29udGV4dDpNZix1c2VFZmZlY3Q6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcGgoNTE2LFBnfE9nLGEsYil9LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oYSxiLGMpe2M9bnVsbCE9PWMmJnZvaWQgMCE9PWM/Yy5jb25jYXQoW2FdKTpudWxsO3JldHVybiBwaCg0LEtnfE5nLHFoLmJpbmQobnVsbCxcbmIsYSksYyl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihhLGIpe3JldHVybiBwaCg0LEtnfE5nLGEsYil9LHVzZU1lbW86ZnVuY3Rpb24oYSxiKXt2YXIgYz1raCgpO2I9dm9pZCAwPT09Yj9udWxsOmI7dmFyIGQ9Yy5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1kJiZudWxsIT09YiYmY2goYixkWzFdKSlyZXR1cm4gZFswXTthPWEoKTtjLm1lbW9pemVkU3RhdGU9W2EsYl07cmV0dXJuIGF9LHVzZVJlZHVjZXI6bWgsdXNlUmVmOmZ1bmN0aW9uKCl7cmV0dXJuIGtoKCkubWVtb2l6ZWRTdGF0ZX0sdXNlU3RhdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG1oKGxoLGEpfSx1c2VEZWJ1Z1ZhbHVlOnJoLHVzZVJlc3BvbmRlcjprZH0sdGg9bnVsbCx1aD1udWxsLHZoPSExO1xuZnVuY3Rpb24gd2goYSxiKXt2YXIgYz14aCg1LG51bGwsbnVsbCwwKTtjLmVsZW1lbnRUeXBlPVwiREVMRVRFRFwiO2MudHlwZT1cIkRFTEVURURcIjtjLnN0YXRlTm9kZT1iO2MucmV0dXJuPWE7Yy5lZmZlY3RUYWc9ODtudWxsIT09YS5sYXN0RWZmZWN0PyhhLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGEubGFzdEVmZmVjdD1jKTphLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1jfWZ1bmN0aW9uIHloKGEsYil7c3dpdGNoKGEudGFnKXtjYXNlIDU6dmFyIGM9YS50eXBlO2I9MSE9PWIubm9kZVR5cGV8fGMudG9Mb3dlckNhc2UoKSE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9udWxsOmI7cmV0dXJuIG51bGwhPT1iPyhhLnN0YXRlTm9kZT1iLCEwKTohMTtjYXNlIDY6cmV0dXJuIGI9XCJcIj09PWEucGVuZGluZ1Byb3BzfHwzIT09Yi5ub2RlVHlwZT9udWxsOmIsbnVsbCE9PWI/KGEuc3RhdGVOb2RlPWIsITApOiExO2Nhc2UgMTM6cmV0dXJuITE7ZGVmYXVsdDpyZXR1cm4hMX19XG5mdW5jdGlvbiB6aChhKXtpZih2aCl7dmFyIGI9dWg7aWYoYil7dmFyIGM9YjtpZigheWgoYSxiKSl7Yj1OZShjLm5leHRTaWJsaW5nKTtpZighYnx8IXloKGEsYikpe2EuZWZmZWN0VGFnfD0yO3ZoPSExO3RoPWE7cmV0dXJufXdoKHRoLGMpfXRoPWE7dWg9TmUoYi5maXJzdENoaWxkKX1lbHNlIGEuZWZmZWN0VGFnfD0yLHZoPSExLHRoPWF9fWZ1bmN0aW9uIEFoKGEpe2ZvcihhPWEucmV0dXJuO251bGwhPT1hJiY1IT09YS50YWcmJjMhPT1hLnRhZyYmMTghPT1hLnRhZzspYT1hLnJldHVybjt0aD1hfVxuZnVuY3Rpb24gQmgoYSl7aWYoYSE9PXRoKXJldHVybiExO2lmKCF2aClyZXR1cm4gQWgoYSksdmg9ITAsITE7dmFyIGI9YS50eXBlO2lmKDUhPT1hLnRhZ3x8XCJoZWFkXCIhPT1iJiZcImJvZHlcIiE9PWImJiFLZShiLGEubWVtb2l6ZWRQcm9wcykpZm9yKGI9dWg7Yjspd2goYSxiKSxiPU5lKGIubmV4dFNpYmxpbmcpO0FoKGEpO3VoPXRoP05lKGEuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIENoKCl7dWg9dGg9bnVsbDt2aD0hMX12YXIgRGg9WGIuUmVhY3RDdXJyZW50T3duZXIsTGY9ITE7ZnVuY3Rpb24gUyhhLGIsYyxkKXtiLmNoaWxkPW51bGw9PT1hP3VnKGIsbnVsbCxjLGQpOnRnKGIsYS5jaGlsZCxjLGQpfVxuZnVuY3Rpb24gRWgoYSxiLGMsZCxlKXtjPWMucmVuZGVyO3ZhciBmPWIucmVmO0tmKGIsZSk7ZD1kaChhLGIsYyxkLGYsZSk7aWYobnVsbCE9PWEmJiFMZilyZXR1cm4gYi51cGRhdGVRdWV1ZT1hLnVwZGF0ZVF1ZXVlLGIuZWZmZWN0VGFnJj0tNTE3LGEuZXhwaXJhdGlvblRpbWU8PWUmJihhLmV4cGlyYXRpb25UaW1lPTApLEZoKGEsYixlKTtiLmVmZmVjdFRhZ3w9MTtTKGEsYixkLGUpO3JldHVybiBiLmNoaWxkfVxuZnVuY3Rpb24gR2goYSxiLGMsZCxlLGYpe2lmKG51bGw9PT1hKXt2YXIgaD1jLnR5cGU7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGgmJiFIaChoKSYmdm9pZCAwPT09aC5kZWZhdWx0UHJvcHMmJm51bGw9PT1jLmNvbXBhcmUmJnZvaWQgMD09PWMuZGVmYXVsdFByb3BzKXJldHVybiBiLnRhZz0xNSxiLnR5cGU9aCxJaChhLGIsaCxkLGUsZik7YT1xZyhjLnR5cGUsbnVsbCxkLG51bGwsYi5tb2RlLGYpO2EucmVmPWIucmVmO2EucmV0dXJuPWI7cmV0dXJuIGIuY2hpbGQ9YX1oPWEuY2hpbGQ7aWYoZTxmJiYoZT1oLm1lbW9pemVkUHJvcHMsYz1jLmNvbXBhcmUsYz1udWxsIT09Yz9jOmpkLGMoZSxkKSYmYS5yZWY9PT1iLnJlZikpcmV0dXJuIEZoKGEsYixmKTtiLmVmZmVjdFRhZ3w9MTthPW9nKGgsZCxmKTthLnJlZj1iLnJlZjthLnJldHVybj1iO3JldHVybiBiLmNoaWxkPWF9XG5mdW5jdGlvbiBJaChhLGIsYyxkLGUsZil7cmV0dXJuIG51bGwhPT1hJiZqZChhLm1lbW9pemVkUHJvcHMsZCkmJmEucmVmPT09Yi5yZWYmJihMZj0hMSxlPGYpP0ZoKGEsYixmKTpKaChhLGIsYyxkLGYpfWZ1bmN0aW9uIEtoKGEsYil7dmFyIGM9Yi5yZWY7aWYobnVsbD09PWEmJm51bGwhPT1jfHxudWxsIT09YSYmYS5yZWYhPT1jKWIuZWZmZWN0VGFnfD0xMjh9ZnVuY3Rpb24gSmgoYSxiLGMsZCxlKXt2YXIgZj1OKGMpP1JlOkwuY3VycmVudDtmPVNlKGIsZik7S2YoYixlKTtjPWRoKGEsYixjLGQsZixlKTtpZihudWxsIT09YSYmIUxmKXJldHVybiBiLnVwZGF0ZVF1ZXVlPWEudXBkYXRlUXVldWUsYi5lZmZlY3RUYWcmPS01MTcsYS5leHBpcmF0aW9uVGltZTw9ZSYmKGEuZXhwaXJhdGlvblRpbWU9MCksRmgoYSxiLGUpO2IuZWZmZWN0VGFnfD0xO1MoYSxiLGMsZSk7cmV0dXJuIGIuY2hpbGR9XG5mdW5jdGlvbiBMaChhLGIsYyxkLGUpe2lmKE4oYykpe3ZhciBmPSEwO1hlKGIpfWVsc2UgZj0hMTtLZihiLGUpO2lmKG51bGw9PT1iLnN0YXRlTm9kZSludWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmVmZmVjdFRhZ3w9MiksaGcoYixjLGQsZSksamcoYixjLGQsZSksZD0hMDtlbHNlIGlmKG51bGw9PT1hKXt2YXIgaD1iLnN0YXRlTm9kZSxnPWIubWVtb2l6ZWRQcm9wcztoLnByb3BzPWc7dmFyIGs9aC5jb250ZXh0LGw9Yy5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT09dHlwZW9mIGwmJm51bGwhPT1sP2w9TWYobCk6KGw9TihjKT9SZTpMLmN1cnJlbnQsbD1TZShiLGwpKTt2YXIgbj1jLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyx6PVwiZnVuY3Rpb25cIj09PXR5cGVvZiBufHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTt6fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXG5cImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwoZyE9PWR8fGshPT1sKSYmaWcoYixoLGQsbCk7TmY9ITE7dmFyIHg9Yi5tZW1vaXplZFN0YXRlO2s9aC5zdGF0ZT14O3ZhciB2PWIudXBkYXRlUXVldWU7bnVsbCE9PXYmJihXZihiLHYsZCxoLGUpLGs9Yi5tZW1vaXplZFN0YXRlKTtnIT09ZHx8eCE9PWt8fE0uY3VycmVudHx8TmY/KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBuJiYoYmcoYixjLG4sZCksaz1iLm1lbW9pemVkU3RhdGUpLChnPU5mfHxnZyhiLGMsZyxkLHgsayxsKSk/KHp8fFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxNb3VudHx8KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxNb3VudCYmaC5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcbmguVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRNb3VudCYmKGIuZWZmZWN0VGFnfD00KSk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmNvbXBvbmVudERpZE1vdW50JiYoYi5lZmZlY3RUYWd8PTQpLGIubWVtb2l6ZWRQcm9wcz1kLGIubWVtb2l6ZWRTdGF0ZT1rKSxoLnByb3BzPWQsaC5zdGF0ZT1rLGguY29udGV4dD1sLGQ9Zyk6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmNvbXBvbmVudERpZE1vdW50JiYoYi5lZmZlY3RUYWd8PTQpLGQ9ITEpfWVsc2UgaD1iLnN0YXRlTm9kZSxnPWIubWVtb2l6ZWRQcm9wcyxoLnByb3BzPWIudHlwZT09PWIuZWxlbWVudFR5cGU/ZzpBZihiLnR5cGUsZyksaz1oLmNvbnRleHQsbD1jLmNvbnRleHRUeXBlLFwib2JqZWN0XCI9PT10eXBlb2YgbCYmbnVsbCE9PWw/bD1NZihsKToobD1OKGMpP1JlOkwuY3VycmVudCxsPVNlKGIsbCkpLG49Yy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsKHo9XG5cImZ1bmN0aW9uXCI9PT10eXBlb2Ygbnx8XCJmdW5jdGlvblwiPT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGguY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGchPT1kfHxrIT09bCkmJmlnKGIsaCxkLGwpLE5mPSExLGs9Yi5tZW1vaXplZFN0YXRlLHg9aC5zdGF0ZT1rLHY9Yi51cGRhdGVRdWV1ZSxudWxsIT09diYmKFdmKGIsdixkLGgsZSkseD1iLm1lbW9pemVkU3RhdGUpLGchPT1kfHxrIT09eHx8TS5jdXJyZW50fHxOZj8oXCJmdW5jdGlvblwiPT09dHlwZW9mIG4mJihiZyhiLGMsbixkKSx4PWIubWVtb2l6ZWRTdGF0ZSksKG49TmZ8fGdnKGIsYyxnLGQsayx4LGwpKT8oenx8XCJmdW5jdGlvblwiIT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJlwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxVcGRhdGV8fFxuKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBoLmNvbXBvbmVudFdpbGxVcGRhdGUmJmguY29tcG9uZW50V2lsbFVwZGF0ZShkLHgsbCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJmguVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUoZCx4LGwpKSxcImZ1bmN0aW9uXCI9PT10eXBlb2YgaC5jb21wb25lbnREaWRVcGRhdGUmJihiLmVmZmVjdFRhZ3w9NCksXCJmdW5jdGlvblwiPT09dHlwZW9mIGguZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihiLmVmZmVjdFRhZ3w9MjU2KSk6KFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmNvbXBvbmVudERpZFVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD00KSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgaC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8Zz09PWEubWVtb2l6ZWRQcm9wcyYmaz09PWEubWVtb2l6ZWRTdGF0ZXx8KGIuZWZmZWN0VGFnfD0yNTYpLGIubWVtb2l6ZWRQcm9wcz1cbmQsYi5tZW1vaXplZFN0YXRlPXgpLGgucHJvcHM9ZCxoLnN0YXRlPXgsaC5jb250ZXh0PWwsZD1uKTooXCJmdW5jdGlvblwiIT09dHlwZW9mIGguY29tcG9uZW50RGlkVXBkYXRlfHxnPT09YS5tZW1vaXplZFByb3BzJiZrPT09YS5tZW1vaXplZFN0YXRlfHwoYi5lZmZlY3RUYWd8PTQpLFwiZnVuY3Rpb25cIiE9PXR5cGVvZiBoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxnPT09YS5tZW1vaXplZFByb3BzJiZrPT09YS5tZW1vaXplZFN0YXRlfHwoYi5lZmZlY3RUYWd8PTI1NiksZD0hMSk7cmV0dXJuIE1oKGEsYixjLGQsZixlKX1cbmZ1bmN0aW9uIE1oKGEsYixjLGQsZSxmKXtLaChhLGIpO3ZhciBoPTAhPT0oYi5lZmZlY3RUYWcmNjQpO2lmKCFkJiYhaClyZXR1cm4gZSYmWWUoYixjLCExKSxGaChhLGIsZik7ZD1iLnN0YXRlTm9kZTtEaC5jdXJyZW50PWI7dmFyIGc9aCYmXCJmdW5jdGlvblwiIT09dHlwZW9mIGMuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6ZC5yZW5kZXIoKTtiLmVmZmVjdFRhZ3w9MTtudWxsIT09YSYmaD8oYi5jaGlsZD10ZyhiLGEuY2hpbGQsbnVsbCxmKSxiLmNoaWxkPXRnKGIsbnVsbCxnLGYpKTpTKGEsYixnLGYpO2IubWVtb2l6ZWRTdGF0ZT1kLnN0YXRlO2UmJlllKGIsYywhMCk7cmV0dXJuIGIuY2hpbGR9ZnVuY3Rpb24gTmgoYSl7dmFyIGI9YS5zdGF0ZU5vZGU7Yi5wZW5kaW5nQ29udGV4dD9WZShhLGIucGVuZGluZ0NvbnRleHQsYi5wZW5kaW5nQ29udGV4dCE9PWIuY29udGV4dCk6Yi5jb250ZXh0JiZWZShhLGIuY29udGV4dCwhMSk7QWcoYSxiLmNvbnRhaW5lckluZm8pfVxudmFyIE9oPXt9O1xuZnVuY3Rpb24gUGgoYSxiLGMpe3ZhciBkPWIubW9kZSxlPWIucGVuZGluZ1Byb3BzLGY9UC5jdXJyZW50LGg9bnVsbCxnPSExLGs7KGs9MCE9PShiLmVmZmVjdFRhZyY2NCkpfHwoaz0wIT09KGYmR2cpJiYobnVsbD09PWF8fG51bGwhPT1hLm1lbW9pemVkU3RhdGUpKTtrPyhoPU9oLGc9ITAsYi5lZmZlY3RUYWcmPS02NSk6bnVsbCE9PWEmJm51bGw9PT1hLm1lbW9pemVkU3RhdGV8fHZvaWQgMD09PWUuZmFsbGJhY2t8fCEwPT09ZS51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFja3x8KGZ8PUZnKTtmJj1FZztKKFAsZixiKTtpZihudWxsPT09YSlpZihnKXtlPWUuZmFsbGJhY2s7YT1zZyhudWxsLGQsMCxudWxsKTthLnJldHVybj1iO2lmKDA9PT0oYi5tb2RlJjIpKWZvcihnPW51bGwhPT1iLm1lbW9pemVkU3RhdGU/Yi5jaGlsZC5jaGlsZDpiLmNoaWxkLGEuY2hpbGQ9ZztudWxsIT09ZzspZy5yZXR1cm49YSxnPWcuc2libGluZztjPXNnKGUsZCxjLG51bGwpO2MucmV0dXJuPWI7YS5zaWJsaW5nPVxuYztkPWF9ZWxzZSBkPWM9dWcoYixudWxsLGUuY2hpbGRyZW4sYyk7ZWxzZXtpZihudWxsIT09YS5tZW1vaXplZFN0YXRlKWlmKGY9YS5jaGlsZCxkPWYuc2libGluZyxnKXtlPWUuZmFsbGJhY2s7Yz1vZyhmLGYucGVuZGluZ1Byb3BzLDApO2MucmV0dXJuPWI7aWYoMD09PShiLm1vZGUmMikmJihnPW51bGwhPT1iLm1lbW9pemVkU3RhdGU/Yi5jaGlsZC5jaGlsZDpiLmNoaWxkLGchPT1mLmNoaWxkKSlmb3IoYy5jaGlsZD1nO251bGwhPT1nOylnLnJldHVybj1jLGc9Zy5zaWJsaW5nO2U9b2coZCxlLGQuZXhwaXJhdGlvblRpbWUpO2UucmV0dXJuPWI7Yy5zaWJsaW5nPWU7ZD1jO2MuY2hpbGRFeHBpcmF0aW9uVGltZT0wO2M9ZX1lbHNlIGQ9Yz10ZyhiLGYuY2hpbGQsZS5jaGlsZHJlbixjKTtlbHNlIGlmKGY9YS5jaGlsZCxnKXtnPWUuZmFsbGJhY2s7ZT1zZyhudWxsLGQsMCxudWxsKTtlLnJldHVybj1iO2UuY2hpbGQ9ZjtudWxsIT09ZiYmKGYucmV0dXJuPWUpO2lmKDA9PT0oYi5tb2RlJlxuMikpZm9yKGY9bnVsbCE9PWIubWVtb2l6ZWRTdGF0ZT9iLmNoaWxkLmNoaWxkOmIuY2hpbGQsZS5jaGlsZD1mO251bGwhPT1mOylmLnJldHVybj1lLGY9Zi5zaWJsaW5nO2M9c2coZyxkLGMsbnVsbCk7Yy5yZXR1cm49YjtlLnNpYmxpbmc9YztjLmVmZmVjdFRhZ3w9MjtkPWU7ZS5jaGlsZEV4cGlyYXRpb25UaW1lPTB9ZWxzZSBjPWQ9dGcoYixmLGUuY2hpbGRyZW4sYyk7Yi5zdGF0ZU5vZGU9YS5zdGF0ZU5vZGV9Yi5tZW1vaXplZFN0YXRlPWg7Yi5jaGlsZD1kO3JldHVybiBjfWZ1bmN0aW9uIFFoKGEsYixjLGQsZSl7dmFyIGY9YS5tZW1vaXplZFN0YXRlO251bGw9PT1mP2EubWVtb2l6ZWRTdGF0ZT17aXNCYWNrd2FyZHM6YixyZW5kZXJpbmc6bnVsbCxsYXN0OmQsdGFpbDpjLHRhaWxFeHBpcmF0aW9uOjAsdGFpbE1vZGU6ZX06KGYuaXNCYWNrd2FyZHM9YixmLnJlbmRlcmluZz1udWxsLGYubGFzdD1kLGYudGFpbD1jLGYudGFpbEV4cGlyYXRpb249MCxmLnRhaWxNb2RlPWUpfVxuZnVuY3Rpb24gUmgoYSxiLGMpe3ZhciBkPWIucGVuZGluZ1Byb3BzLGU9ZC5yZXZlYWxPcmRlcixmPWQudGFpbDtTKGEsYixkLmNoaWxkcmVuLGMpO2Q9UC5jdXJyZW50O2lmKDAhPT0oZCZHZykpZD1kJkVnfEdnLGIuZWZmZWN0VGFnfD02NDtlbHNle2lmKG51bGwhPT1hJiYwIT09KGEuZWZmZWN0VGFnJjY0KSlhOmZvcihhPWIuY2hpbGQ7bnVsbCE9PWE7KXtpZigxMz09PWEudGFnKXtpZihudWxsIT09YS5tZW1vaXplZFN0YXRlKXthLmV4cGlyYXRpb25UaW1lPGMmJihhLmV4cGlyYXRpb25UaW1lPWMpO3ZhciBoPWEuYWx0ZXJuYXRlO251bGwhPT1oJiZoLmV4cGlyYXRpb25UaW1lPGMmJihoLmV4cGlyYXRpb25UaW1lPWMpO0pmKGEucmV0dXJuLGMpfX1lbHNlIGlmKG51bGwhPT1hLmNoaWxkKXthLmNoaWxkLnJldHVybj1hO2E9YS5jaGlsZDtjb250aW51ZX1pZihhPT09YilicmVhayBhO2Zvcig7bnVsbD09PWEuc2libGluZzspe2lmKG51bGw9PT1hLnJldHVybnx8YS5yZXR1cm49PT1cbmIpYnJlYWsgYTthPWEucmV0dXJufWEuc2libGluZy5yZXR1cm49YS5yZXR1cm47YT1hLnNpYmxpbmd9ZCY9RWd9SihQLGQsYik7aWYoMD09PShiLm1vZGUmMikpYi5tZW1vaXplZFN0YXRlPW51bGw7ZWxzZSBzd2l0Y2goZSl7Y2FzZSBcImZvcndhcmRzXCI6Yz1iLmNoaWxkO2ZvcihlPW51bGw7bnVsbCE9PWM7KWQ9Yy5hbHRlcm5hdGUsbnVsbCE9PWQmJm51bGw9PT1IZyhkKSYmKGU9YyksYz1jLnNpYmxpbmc7Yz1lO251bGw9PT1jPyhlPWIuY2hpbGQsYi5jaGlsZD1udWxsKTooZT1jLnNpYmxpbmcsYy5zaWJsaW5nPW51bGwpO1FoKGIsITEsZSxjLGYpO2JyZWFrO2Nhc2UgXCJiYWNrd2FyZHNcIjpjPW51bGw7ZT1iLmNoaWxkO2ZvcihiLmNoaWxkPW51bGw7bnVsbCE9PWU7KXtkPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1kJiZudWxsPT09SGcoZCkpe2IuY2hpbGQ9ZTticmVha31kPWUuc2libGluZztlLnNpYmxpbmc9YztjPWU7ZT1kfVFoKGIsITAsYyxudWxsLGYpO2JyZWFrO2Nhc2UgXCJ0b2dldGhlclwiOlFoKGIsXG4hMSxudWxsLG51bGwsdm9pZCAwKTticmVhaztkZWZhdWx0OmIubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiBiLmNoaWxkfWZ1bmN0aW9uIEZoKGEsYixjKXtudWxsIT09YSYmKGIuZGVwZW5kZW5jaWVzPWEuZGVwZW5kZW5jaWVzKTtpZihiLmNoaWxkRXhwaXJhdGlvblRpbWU8YylyZXR1cm4gbnVsbDtpZihudWxsIT09YSYmYi5jaGlsZCE9PWEuY2hpbGQpdGhyb3cgdChFcnJvcigxNTMpKTtpZihudWxsIT09Yi5jaGlsZCl7YT1iLmNoaWxkO2M9b2coYSxhLnBlbmRpbmdQcm9wcyxhLmV4cGlyYXRpb25UaW1lKTtiLmNoaWxkPWM7Zm9yKGMucmV0dXJuPWI7bnVsbCE9PWEuc2libGluZzspYT1hLnNpYmxpbmcsYz1jLnNpYmxpbmc9b2coYSxhLnBlbmRpbmdQcm9wcyxhLmV4cGlyYXRpb25UaW1lKSxjLnJldHVybj1iO2Muc2libGluZz1udWxsfXJldHVybiBiLmNoaWxkfWZ1bmN0aW9uIFNoKGEpe2EuZWZmZWN0VGFnfD00fVxudmFyIFRoPXZvaWQgMCxVaD12b2lkIDAsVmg9dm9pZCAwLFdoPXZvaWQgMDtUaD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1iLmNoaWxkO251bGwhPT1jOyl7aWYoNT09PWMudGFnfHw2PT09Yy50YWcpYS5hcHBlbmRDaGlsZChjLnN0YXRlTm9kZSk7ZWxzZSBpZigyMD09PWMudGFnKWEuYXBwZW5kQ2hpbGQoYy5zdGF0ZU5vZGUuaW5zdGFuY2UpO2Vsc2UgaWYoNCE9PWMudGFnJiZudWxsIT09Yy5jaGlsZCl7Yy5jaGlsZC5yZXR1cm49YztjPWMuY2hpbGQ7Y29udGludWV9aWYoYz09PWIpYnJlYWs7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxjLnJldHVybj09PWIpcmV0dXJuO2M9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtjPWMuc2libGluZ319O1VoPWZ1bmN0aW9uKCl7fTtcblZoPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9YS5tZW1vaXplZFByb3BzO2lmKGYhPT1kKXt2YXIgaD1iLnN0YXRlTm9kZTt6Zyh3Zy5jdXJyZW50KTthPW51bGw7c3dpdGNoKGMpe2Nhc2UgXCJpbnB1dFwiOmY9QmMoaCxmKTtkPUJjKGgsZCk7YT1bXTticmVhaztjYXNlIFwib3B0aW9uXCI6Zj1sZShoLGYpO2Q9bGUoaCxkKTthPVtdO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpmPW0oe30sZix7dmFsdWU6dm9pZCAwfSk7ZD1tKHt9LGQse3ZhbHVlOnZvaWQgMH0pO2E9W107YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6Zj1uZShoLGYpO2Q9bmUoaCxkKTthPVtdO2JyZWFrO2RlZmF1bHQ6XCJmdW5jdGlvblwiIT09dHlwZW9mIGYub25DbGljayYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGQub25DbGljayYmKGgub25jbGljaz1HZSl9RGUoYyxkKTtoPWM9dm9pZCAwO3ZhciBnPW51bGw7Zm9yKGMgaW4gZilpZighZC5oYXNPd25Qcm9wZXJ0eShjKSYmZi5oYXNPd25Qcm9wZXJ0eShjKSYmbnVsbCE9ZltjXSlpZihcInN0eWxlXCI9PT1cbmMpe3ZhciBrPWZbY107Zm9yKGggaW4gaylrLmhhc093blByb3BlcnR5KGgpJiYoZ3x8KGc9e30pLGdbaF09XCJcIil9ZWxzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiE9PWMmJlwiY2hpbGRyZW5cIiE9PWMmJlwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCIhPT1jJiZcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiIT09YyYmXCJhdXRvRm9jdXNcIiE9PWMmJihpYS5oYXNPd25Qcm9wZXJ0eShjKT9hfHwoYT1bXSk6KGE9YXx8W10pLnB1c2goYyxudWxsKSk7Zm9yKGMgaW4gZCl7dmFyIGw9ZFtjXTtrPW51bGwhPWY/ZltjXTp2b2lkIDA7aWYoZC5oYXNPd25Qcm9wZXJ0eShjKSYmbCE9PWsmJihudWxsIT1sfHxudWxsIT1rKSlpZihcInN0eWxlXCI9PT1jKWlmKGspe2ZvcihoIGluIGspIWsuaGFzT3duUHJvcGVydHkoaCl8fGwmJmwuaGFzT3duUHJvcGVydHkoaCl8fChnfHwoZz17fSksZ1toXT1cIlwiKTtmb3IoaCBpbiBsKWwuaGFzT3duUHJvcGVydHkoaCkmJmtbaF0hPT1sW2hdJiYoZ3x8XG4oZz17fSksZ1toXT1sW2hdKX1lbHNlIGd8fChhfHwoYT1bXSksYS5wdXNoKGMsZykpLGc9bDtlbHNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09Yz8obD1sP2wuX19odG1sOnZvaWQgMCxrPWs/ay5fX2h0bWw6dm9pZCAwLG51bGwhPWwmJmshPT1sJiYoYT1hfHxbXSkucHVzaChjLFwiXCIrbCkpOlwiY2hpbGRyZW5cIj09PWM/az09PWx8fFwic3RyaW5nXCIhPT10eXBlb2YgbCYmXCJudW1iZXJcIiE9PXR5cGVvZiBsfHwoYT1hfHxbXSkucHVzaChjLFwiXCIrbCk6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWMmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1jJiYoaWEuaGFzT3duUHJvcGVydHkoYyk/KG51bGwhPWwmJkZlKGUsYyksYXx8az09PWx8fChhPVtdKSk6KGE9YXx8W10pLnB1c2goYyxsKSl9ZyYmKGE9YXx8W10pLnB1c2goXCJzdHlsZVwiLGcpO2U9YTsoYi51cGRhdGVRdWV1ZT1lKSYmU2goYil9fTtXaD1mdW5jdGlvbihhLGIsYyxkKXtjIT09ZCYmU2goYil9O1xuZnVuY3Rpb24gJGgoYSxiKXtzd2l0Y2goYS50YWlsTW9kZSl7Y2FzZSBcImhpZGRlblwiOmI9YS50YWlsO2Zvcih2YXIgYz1udWxsO251bGwhPT1iOyludWxsIT09Yi5hbHRlcm5hdGUmJihjPWIpLGI9Yi5zaWJsaW5nO251bGw9PT1jP2EudGFpbD1udWxsOmMuc2libGluZz1udWxsO2JyZWFrO2Nhc2UgXCJjb2xsYXBzZWRcIjpjPWEudGFpbDtmb3IodmFyIGQ9bnVsbDtudWxsIT09YzspbnVsbCE9PWMuYWx0ZXJuYXRlJiYoZD1jKSxjPWMuc2libGluZztudWxsPT09ZD9ifHxudWxsPT09YS50YWlsP2EudGFpbD1udWxsOmEudGFpbC5zaWJsaW5nPW51bGw6ZC5zaWJsaW5nPW51bGx9fVxuZnVuY3Rpb24gYWkoYSl7c3dpdGNoKGEudGFnKXtjYXNlIDE6TihhLnR5cGUpJiZUZShhKTt2YXIgYj1hLmVmZmVjdFRhZztyZXR1cm4gYiYyMDQ4PyhhLmVmZmVjdFRhZz1iJi0yMDQ5fDY0LGEpOm51bGw7Y2FzZSAzOkJnKGEpO1VlKGEpO2I9YS5lZmZlY3RUYWc7aWYoMCE9PShiJjY0KSl0aHJvdyB0KEVycm9yKDI4NSkpO2EuZWZmZWN0VGFnPWImLTIwNDl8NjQ7cmV0dXJuIGE7Y2FzZSA1OnJldHVybiBEZyhhKSxudWxsO2Nhc2UgMTM6cmV0dXJuIEgoUCxhKSxiPWEuZWZmZWN0VGFnLGImMjA0OD8oYS5lZmZlY3RUYWc9YiYtMjA0OXw2NCxhKTpudWxsO2Nhc2UgMTg6cmV0dXJuIG51bGw7Y2FzZSAxOTpyZXR1cm4gSChQLGEpLG51bGw7Y2FzZSA0OnJldHVybiBCZyhhKSxudWxsO2Nhc2UgMTA6cmV0dXJuIElmKGEpLG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gYmkoYSxiKXtyZXR1cm57dmFsdWU6YSxzb3VyY2U6YixzdGFjazpwYyhiKX19XG52YXIgY2k9XCJmdW5jdGlvblwiPT09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQ7ZnVuY3Rpb24gZGkoYSxiKXt2YXIgYz1iLnNvdXJjZSxkPWIuc3RhY2s7bnVsbD09PWQmJm51bGwhPT1jJiYoZD1wYyhjKSk7bnVsbCE9PWMmJm9jKGMudHlwZSk7Yj1iLnZhbHVlO251bGwhPT1hJiYxPT09YS50YWcmJm9jKGEudHlwZSk7dHJ5e2NvbnNvbGUuZXJyb3IoYil9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGU7fSl9fWZ1bmN0aW9uIGVpKGEsYil7dHJ5e2IucHJvcHM9YS5tZW1vaXplZFByb3BzLGIuc3RhdGU9YS5tZW1vaXplZFN0YXRlLGIuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChjKXtmaShhLGMpfX1mdW5jdGlvbiBnaShhKXt2YXIgYj1hLnJlZjtpZihudWxsIT09YilpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYil0cnl7YihudWxsKX1jYXRjaChjKXtmaShhLGMpfWVsc2UgYi5jdXJyZW50PW51bGx9XG5mdW5jdGlvbiBoaShhLGIsYyl7Yz1jLnVwZGF0ZVF1ZXVlO2M9bnVsbCE9PWM/Yy5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWMpe3ZhciBkPWM9Yy5uZXh0O2Rve2lmKChkLnRhZyZhKSE9PUlnKXt2YXIgZT1kLmRlc3Ryb3k7ZC5kZXN0cm95PXZvaWQgMDt2b2lkIDAhPT1lJiZlKCl9KGQudGFnJmIpIT09SWcmJihlPWQuY3JlYXRlLGQuZGVzdHJveT1lKCkpO2Q9ZC5uZXh0fXdoaWxlKGQhPT1jKX19XG5mdW5jdGlvbiBpaShhLGIpe1wiZnVuY3Rpb25cIj09PXR5cGVvZiBqaSYmamkoYSk7c3dpdGNoKGEudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6dmFyIGM9YS51cGRhdGVRdWV1ZTtpZihudWxsIT09YyYmKGM9Yy5sYXN0RWZmZWN0LG51bGwhPT1jKSl7dmFyIGQ9Yy5uZXh0O3ZmKDk3PGI/OTc6YixmdW5jdGlvbigpe3ZhciBiPWQ7ZG97dmFyIGM9Yi5kZXN0cm95O2lmKHZvaWQgMCE9PWMpe3ZhciBoPWE7dHJ5e2MoKX1jYXRjaChnKXtmaShoLGcpfX1iPWIubmV4dH13aGlsZShiIT09ZCl9KX1icmVhaztjYXNlIDE6Z2koYSk7Yj1hLnN0YXRlTm9kZTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgYi5jb21wb25lbnRXaWxsVW5tb3VudCYmZWkoYSxiKTticmVhaztjYXNlIDU6Z2koYSk7YnJlYWs7Y2FzZSA0OmtpKGEsYil9fVxuZnVuY3Rpb24gbGkoYSxiKXtmb3IodmFyIGM9YTs7KWlmKGlpKGMsYiksbnVsbCE9PWMuY2hpbGQmJjQhPT1jLnRhZyljLmNoaWxkLnJldHVybj1jLGM9Yy5jaGlsZDtlbHNle2lmKGM9PT1hKWJyZWFrO2Zvcig7bnVsbD09PWMuc2libGluZzspe2lmKG51bGw9PT1jLnJldHVybnx8Yy5yZXR1cm49PT1hKXJldHVybjtjPWMucmV0dXJufWMuc2libGluZy5yZXR1cm49Yy5yZXR1cm47Yz1jLnNpYmxpbmd9fWZ1bmN0aW9uIG1pKGEpe3JldHVybiA1PT09YS50YWd8fDM9PT1hLnRhZ3x8ND09PWEudGFnfVxuZnVuY3Rpb24gbmkoYSl7YTp7Zm9yKHZhciBiPWEucmV0dXJuO251bGwhPT1iOyl7aWYobWkoYikpe3ZhciBjPWI7YnJlYWsgYX1iPWIucmV0dXJufXRocm93IHQoRXJyb3IoMTYwKSk7fWI9Yy5zdGF0ZU5vZGU7c3dpdGNoKGMudGFnKXtjYXNlIDU6dmFyIGQ9ITE7YnJlYWs7Y2FzZSAzOmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7Y2FzZSA0OmI9Yi5jb250YWluZXJJbmZvO2Q9ITA7YnJlYWs7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDE2MSkpO31jLmVmZmVjdFRhZyYxNiYmKHdlKGIsXCJcIiksYy5lZmZlY3RUYWcmPS0xNyk7YTpiOmZvcihjPWE7Oyl7Zm9yKDtudWxsPT09Yy5zaWJsaW5nOyl7aWYobnVsbD09PWMucmV0dXJufHxtaShjLnJldHVybikpe2M9bnVsbDticmVhayBhfWM9Yy5yZXR1cm59Yy5zaWJsaW5nLnJldHVybj1jLnJldHVybjtmb3IoYz1jLnNpYmxpbmc7NSE9PWMudGFnJiY2IT09Yy50YWcmJjE4IT09Yy50YWc7KXtpZihjLmVmZmVjdFRhZyYyKWNvbnRpbnVlIGI7XG5pZihudWxsPT09Yy5jaGlsZHx8ND09PWMudGFnKWNvbnRpbnVlIGI7ZWxzZSBjLmNoaWxkLnJldHVybj1jLGM9Yy5jaGlsZH1pZighKGMuZWZmZWN0VGFnJjIpKXtjPWMuc3RhdGVOb2RlO2JyZWFrIGF9fWZvcih2YXIgZT1hOzspe3ZhciBmPTU9PT1lLnRhZ3x8Nj09PWUudGFnO2lmKGZ8fDIwPT09ZS50YWcpe3ZhciBoPWY/ZS5zdGF0ZU5vZGU6ZS5zdGF0ZU5vZGUuaW5zdGFuY2U7aWYoYylpZihkKXtmPWI7dmFyIGc9aDtoPWM7OD09PWYubm9kZVR5cGU/Zi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLGgpOmYuaW5zZXJ0QmVmb3JlKGcsaCl9ZWxzZSBiLmluc2VydEJlZm9yZShoLGMpO2Vsc2UgZD8oZz1iLDg9PT1nLm5vZGVUeXBlPyhmPWcucGFyZW50Tm9kZSxmLmluc2VydEJlZm9yZShoLGcpKTooZj1nLGYuYXBwZW5kQ2hpbGQoaCkpLGc9Zy5fcmVhY3RSb290Q29udGFpbmVyLG51bGwhPT1nJiZ2b2lkIDAhPT1nfHxudWxsIT09Zi5vbmNsaWNrfHwoZi5vbmNsaWNrPUdlKSk6XG5iLmFwcGVuZENoaWxkKGgpfWVsc2UgaWYoNCE9PWUudGFnJiZudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZTtlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PWEpYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PWEpcmV0dXJuO2U9ZS5yZXR1cm59ZS5zaWJsaW5nLnJldHVybj1lLnJldHVybjtlPWUuc2libGluZ319XG5mdW5jdGlvbiBraShhLGIpe2Zvcih2YXIgYz1hLGQ9ITEsZT12b2lkIDAsZj12b2lkIDA7Oyl7aWYoIWQpe2Q9Yy5yZXR1cm47YTpmb3IoOzspe2lmKG51bGw9PT1kKXRocm93IHQoRXJyb3IoMTYwKSk7ZT1kLnN0YXRlTm9kZTtzd2l0Y2goZC50YWcpe2Nhc2UgNTpmPSExO2JyZWFrIGE7Y2FzZSAzOmU9ZS5jb250YWluZXJJbmZvO2Y9ITA7YnJlYWsgYTtjYXNlIDQ6ZT1lLmNvbnRhaW5lckluZm87Zj0hMDticmVhayBhfWQ9ZC5yZXR1cm59ZD0hMH1pZig1PT09Yy50YWd8fDY9PT1jLnRhZylpZihsaShjLGIpLGYpe3ZhciBoPWUsZz1jLnN0YXRlTm9kZTs4PT09aC5ub2RlVHlwZT9oLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyk6aC5yZW1vdmVDaGlsZChnKX1lbHNlIGUucmVtb3ZlQ2hpbGQoYy5zdGF0ZU5vZGUpO2Vsc2UgaWYoMjA9PT1jLnRhZylnPWMuc3RhdGVOb2RlLmluc3RhbmNlLGxpKGMsYiksZj8oaD1lLDg9PT1oLm5vZGVUeXBlP2gucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKTpcbmgucmVtb3ZlQ2hpbGQoZykpOmUucmVtb3ZlQ2hpbGQoZyk7ZWxzZSBpZig0PT09Yy50YWcpe2lmKG51bGwhPT1jLmNoaWxkKXtlPWMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87Zj0hMDtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX19ZWxzZSBpZihpaShjLGIpLG51bGwhPT1jLmNoaWxkKXtjLmNoaWxkLnJldHVybj1jO2M9Yy5jaGlsZDtjb250aW51ZX1pZihjPT09YSlicmVhaztmb3IoO251bGw9PT1jLnNpYmxpbmc7KXtpZihudWxsPT09Yy5yZXR1cm58fGMucmV0dXJuPT09YSlyZXR1cm47Yz1jLnJldHVybjs0PT09Yy50YWcmJihkPSExKX1jLnNpYmxpbmcucmV0dXJuPWMucmV0dXJuO2M9Yy5zaWJsaW5nfX1cbmZ1bmN0aW9uIG9pKGEsYil7c3dpdGNoKGIudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aGkoS2csTGcsYik7YnJlYWs7Y2FzZSAxOmJyZWFrO2Nhc2UgNTp2YXIgYz1iLnN0YXRlTm9kZTtpZihudWxsIT1jKXt2YXIgZD1iLm1lbW9pemVkUHJvcHMsZT1udWxsIT09YT9hLm1lbW9pemVkUHJvcHM6ZDthPWIudHlwZTt2YXIgZj1iLnVwZGF0ZVF1ZXVlO2IudXBkYXRlUXVldWU9bnVsbDtpZihudWxsIT09Zil7Y1tHYV09ZDtcImlucHV0XCI9PT1hJiZcInJhZGlvXCI9PT1kLnR5cGUmJm51bGwhPWQubmFtZSYmRGMoYyxkKTtFZShhLGUpO2I9RWUoYSxkKTtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSs9Mil7dmFyIGg9ZltlXSxnPWZbZSsxXTtcInN0eWxlXCI9PT1oP0FlKGMsZyk6XCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiPT09aD92ZShjLGcpOlwiY2hpbGRyZW5cIj09PWg/d2UoYyxnKTp6YyhjLGgsZyxiKX1zd2l0Y2goYSl7Y2FzZSBcImlucHV0XCI6RWMoYyxkKTticmVhaztjYXNlIFwidGV4dGFyZWFcIjpwZShjLFxuZCk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmI9Yy5fd3JhcHBlclN0YXRlLndhc011bHRpcGxlLGMuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZT0hIWQubXVsdGlwbGUsYT1kLnZhbHVlLG51bGwhPWE/bWUoYywhIWQubXVsdGlwbGUsYSwhMSk6YiE9PSEhZC5tdWx0aXBsZSYmKG51bGwhPWQuZGVmYXVsdFZhbHVlP21lKGMsISFkLm11bHRpcGxlLGQuZGVmYXVsdFZhbHVlLCEwKTptZShjLCEhZC5tdWx0aXBsZSxkLm11bHRpcGxlP1tdOlwiXCIsITEpKX19fWJyZWFrO2Nhc2UgNjppZihudWxsPT09Yi5zdGF0ZU5vZGUpdGhyb3cgdChFcnJvcigxNjIpKTtiLnN0YXRlTm9kZS5ub2RlVmFsdWU9Yi5tZW1vaXplZFByb3BzO2JyZWFrO2Nhc2UgMzpicmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgMTM6Yz1iO251bGw9PT1iLm1lbW9pemVkU3RhdGU/ZD0hMTooZD0hMCxjPWIuY2hpbGQscGk9c2YoKSk7aWYobnVsbCE9PWMpYTpmb3IoYT1jOzspe2lmKDU9PT1hLnRhZylmPWEuc3RhdGVOb2RlLGQ/KGY9XG5mLnN0eWxlLFwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLnNldFByb3BlcnR5P2Yuc2V0UHJvcGVydHkoXCJkaXNwbGF5XCIsXCJub25lXCIsXCJpbXBvcnRhbnRcIik6Zi5kaXNwbGF5PVwibm9uZVwiKTooZj1hLnN0YXRlTm9kZSxlPWEubWVtb2l6ZWRQcm9wcy5zdHlsZSxlPXZvaWQgMCE9PWUmJm51bGwhPT1lJiZlLmhhc093blByb3BlcnR5KFwiZGlzcGxheVwiKT9lLmRpc3BsYXk6bnVsbCxmLnN0eWxlLmRpc3BsYXk9emUoXCJkaXNwbGF5XCIsZSkpO2Vsc2UgaWYoNj09PWEudGFnKWEuc3RhdGVOb2RlLm5vZGVWYWx1ZT1kP1wiXCI6YS5tZW1vaXplZFByb3BzO2Vsc2UgaWYoMTM9PT1hLnRhZyYmbnVsbCE9PWEubWVtb2l6ZWRTdGF0ZSl7Zj1hLmNoaWxkLnNpYmxpbmc7Zi5yZXR1cm49YTthPWY7Y29udGludWV9ZWxzZSBpZihudWxsIT09YS5jaGlsZCl7YS5jaGlsZC5yZXR1cm49YTthPWEuY2hpbGQ7Y29udGludWV9aWYoYT09PWMpYnJlYWsgYTtmb3IoO251bGw9PT1hLnNpYmxpbmc7KXtpZihudWxsPT09XG5hLnJldHVybnx8YS5yZXR1cm49PT1jKWJyZWFrIGE7YT1hLnJldHVybn1hLnNpYmxpbmcucmV0dXJuPWEucmV0dXJuO2E9YS5zaWJsaW5nfXFpKGIpO2JyZWFrO2Nhc2UgMTk6cWkoYik7YnJlYWs7Y2FzZSAxNzpicmVhaztjYXNlIDIwOmJyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjMpKTt9fWZ1bmN0aW9uIHFpKGEpe3ZhciBiPWEudXBkYXRlUXVldWU7aWYobnVsbCE9PWIpe2EudXBkYXRlUXVldWU9bnVsbDt2YXIgYz1hLnN0YXRlTm9kZTtudWxsPT09YyYmKGM9YS5zdGF0ZU5vZGU9bmV3IGNpKTtiLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIGQ9cmkuYmluZChudWxsLGEsYik7Yy5oYXMoYil8fChjLmFkZChiKSxiLnRoZW4oZCxkKSl9KX19dmFyIHNpPVwiZnVuY3Rpb25cIj09PXR5cGVvZiBXZWFrTWFwP1dlYWtNYXA6TWFwO1xuZnVuY3Rpb24gdGkoYSxiLGMpe2M9UWYoYyxudWxsKTtjLnRhZz0zO2MucGF5bG9hZD17ZWxlbWVudDpudWxsfTt2YXIgZD1iLnZhbHVlO2MuY2FsbGJhY2s9ZnVuY3Rpb24oKXt1aXx8KHVpPSEwLHZpPWQpO2RpKGEsYil9O3JldHVybiBjfVxuZnVuY3Rpb24gd2koYSxiLGMpe2M9UWYoYyxudWxsKTtjLnRhZz0zO3ZhciBkPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGQpe3ZhciBlPWIudmFsdWU7Yy5wYXlsb2FkPWZ1bmN0aW9uKCl7ZGkoYSxiKTtyZXR1cm4gZChlKX19dmFyIGY9YS5zdGF0ZU5vZGU7bnVsbCE9PWYmJlwiZnVuY3Rpb25cIj09PXR5cGVvZiBmLmNvbXBvbmVudERpZENhdGNoJiYoYy5jYWxsYmFjaz1mdW5jdGlvbigpe1wiZnVuY3Rpb25cIiE9PXR5cGVvZiBkJiYobnVsbD09PXhpP3hpPW5ldyBTZXQoW3RoaXNdKTp4aS5hZGQodGhpcyksZGkoYSxiKSk7dmFyIGM9Yi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKGIudmFsdWUse2NvbXBvbmVudFN0YWNrOm51bGwhPT1jP2M6XCJcIn0pfSk7cmV0dXJuIGN9XG52YXIgeWk9TWF0aC5jZWlsLHppPVhiLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsQWk9WGIuUmVhY3RDdXJyZW50T3duZXIsVD0wLEJpPTgsQ2k9MTYsRGk9MzIsRWk9MCxGaT0xLEdpPTIsSGk9MyxJaT00LFU9VCxKaT1udWxsLFY9bnVsbCxXPTAsWD1FaSxLaT0xMDczNzQxODIzLExpPTEwNzM3NDE4MjMsTWk9bnVsbCxOaT0hMSxwaT0wLE9pPTUwMCxZPW51bGwsdWk9ITEsdmk9bnVsbCx4aT1udWxsLFBpPSExLFFpPW51bGwsUmk9OTAsU2k9MCxUaT1udWxsLFVpPTAsVmk9bnVsbCxXaT0wO2Z1bmN0aW9uIGNnKCl7cmV0dXJuKFUmKENpfERpKSkhPT1UPzEwNzM3NDE4MjEtKHNmKCkvMTB8MCk6MCE9PVdpP1dpOldpPTEwNzM3NDE4MjEtKHNmKCkvMTB8MCl9XG5mdW5jdGlvbiBkZyhhLGIsYyl7Yj1iLm1vZGU7aWYoMD09PShiJjIpKXJldHVybiAxMDczNzQxODIzO3ZhciBkPXRmKCk7aWYoMD09PShiJjQpKXJldHVybiA5OT09PWQ/MTA3Mzc0MTgyMzoxMDczNzQxODIyO2lmKChVJkNpKSE9PVQpcmV0dXJuIFc7aWYobnVsbCE9PWMpYT0xMDczNzQxODIxLTI1KigoKDEwNzM3NDE4MjEtYSsoYy50aW1lb3V0TXN8MHx8NUUzKS8xMCkvMjV8MCkrMSk7ZWxzZSBzd2l0Y2goZCl7Y2FzZSA5OTphPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA5ODphPTEwNzM3NDE4MjEtMTAqKCgoMTA3Mzc0MTgyMS1hKzE1KS8xMHwwKSsxKTticmVhaztjYXNlIDk3OmNhc2UgOTY6YT0xMDczNzQxODIxLTI1KigoKDEwNzM3NDE4MjEtYSs1MDApLzI1fDApKzEpO2JyZWFrO2Nhc2UgOTU6YT0xO2JyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigzMjYpKTt9bnVsbCE9PUppJiZhPT09VyYmLS1hO3JldHVybiBhfXZhciBYaT0wO1xuZnVuY3Rpb24gZWcoYSxiKXtpZig1MDxVaSl0aHJvdyBVaT0wLFZpPW51bGwsdChFcnJvcigxODUpKTthPVlpKGEsYik7aWYobnVsbCE9PWEpe2EucGluZ1RpbWU9MDt2YXIgYz10ZigpO2lmKDEwNzM3NDE4MjM9PT1iKWlmKChVJkJpKSE9PVQmJihVJihDaXxEaSkpPT09VClmb3IodmFyIGQ9WihhLDEwNzM3NDE4MjMsITApO251bGwhPT1kOylkPWQoITApO2Vsc2UgWmkoYSw5OSwxMDczNzQxODIzKSxVPT09VCYmTygpO2Vsc2UgWmkoYSxjLGIpOyhVJjQpPT09VHx8OTghPT1jJiY5OSE9PWN8fChudWxsPT09VGk/VGk9bmV3IE1hcChbW2EsYl1dKTooYz1UaS5nZXQoYSksKHZvaWQgMD09PWN8fGM+YikmJlRpLnNldChhLGIpKSl9fVxuZnVuY3Rpb24gWWkoYSxiKXthLmV4cGlyYXRpb25UaW1lPGImJihhLmV4cGlyYXRpb25UaW1lPWIpO3ZhciBjPWEuYWx0ZXJuYXRlO251bGwhPT1jJiZjLmV4cGlyYXRpb25UaW1lPGImJihjLmV4cGlyYXRpb25UaW1lPWIpO3ZhciBkPWEucmV0dXJuLGU9bnVsbDtpZihudWxsPT09ZCYmMz09PWEudGFnKWU9YS5zdGF0ZU5vZGU7ZWxzZSBmb3IoO251bGwhPT1kOyl7Yz1kLmFsdGVybmF0ZTtkLmNoaWxkRXhwaXJhdGlvblRpbWU8YiYmKGQuY2hpbGRFeHBpcmF0aW9uVGltZT1iKTtudWxsIT09YyYmYy5jaGlsZEV4cGlyYXRpb25UaW1lPGImJihjLmNoaWxkRXhwaXJhdGlvblRpbWU9Yik7aWYobnVsbD09PWQucmV0dXJuJiYzPT09ZC50YWcpe2U9ZC5zdGF0ZU5vZGU7YnJlYWt9ZD1kLnJldHVybn1udWxsIT09ZSYmKGI+ZS5maXJzdFBlbmRpbmdUaW1lJiYoZS5maXJzdFBlbmRpbmdUaW1lPWIpLGE9ZS5sYXN0UGVuZGluZ1RpbWUsMD09PWF8fGI8YSkmJihlLmxhc3RQZW5kaW5nVGltZT1cbmIpO3JldHVybiBlfWZ1bmN0aW9uIFppKGEsYixjKXtpZihhLmNhbGxiYWNrRXhwaXJhdGlvblRpbWU8Yyl7dmFyIGQ9YS5jYWxsYmFja05vZGU7bnVsbCE9PWQmJmQhPT1tZiYmYWYoZCk7YS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPWM7MTA3Mzc0MTgyMz09PWM/YS5jYWxsYmFja05vZGU9eGYoJGkuYmluZChudWxsLGEsWi5iaW5kKG51bGwsYSxjKSkpOihkPW51bGwsMSE9PWMmJihkPXt0aW1lb3V0OjEwKigxMDczNzQxODIxLWMpLXNmKCl9KSxhLmNhbGxiYWNrTm9kZT13ZihiLCRpLmJpbmQobnVsbCxhLFouYmluZChudWxsLGEsYykpLGQpKX19ZnVuY3Rpb24gJGkoYSxiLGMpe3ZhciBkPWEuY2FsbGJhY2tOb2RlLGU9bnVsbDt0cnl7cmV0dXJuIGU9YihjKSxudWxsIT09ZT8kaS5iaW5kKG51bGwsYSxlKTpudWxsfWZpbmFsbHl7bnVsbD09PWUmJmQ9PT1hLmNhbGxiYWNrTm9kZSYmKGEuY2FsbGJhY2tOb2RlPW51bGwsYS5jYWxsYmFja0V4cGlyYXRpb25UaW1lPTApfX1cbmZ1bmN0aW9uIGFqKCl7KFUmKDF8Q2l8RGkpKT09PVQmJihiaigpLGNqKCkpfWZ1bmN0aW9uIGRqKGEsYil7dmFyIGM9YS5maXJzdEJhdGNoO3JldHVybiBudWxsIT09YyYmYy5fZGVmZXImJmMuX2V4cGlyYXRpb25UaW1lPj1iPyh3Zig5NyxmdW5jdGlvbigpe2MuX29uQ29tcGxldGUoKTtyZXR1cm4gbnVsbH0pLCEwKTohMX1mdW5jdGlvbiBiaigpe2lmKG51bGwhPT1UaSl7dmFyIGE9VGk7VGk9bnVsbDthLmZvckVhY2goZnVuY3Rpb24oYSxjKXt4ZihaLmJpbmQobnVsbCxjLGEpKX0pO08oKX19ZnVuY3Rpb24gZWooYSxiKXt2YXIgYz1VO1V8PTE7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7VT1jLFU9PT1UJiZPKCl9fWZ1bmN0aW9uIGZqKGEsYixjLGQpe3ZhciBlPVU7VXw9NDt0cnl7cmV0dXJuIHZmKDk4LGEuYmluZChudWxsLGIsYyxkKSl9ZmluYWxseXtVPWUsVT09PVQmJk8oKX19XG5mdW5jdGlvbiBnaihhLGIpe3ZhciBjPVU7VSY9LTI7VXw9Qmk7dHJ5e3JldHVybiBhKGIpfWZpbmFsbHl7VT1jLFU9PT1UJiZPKCl9fVxuZnVuY3Rpb24gaGooYSxiKXthLmZpbmlzaGVkV29yaz1udWxsO2EuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wO3ZhciBjPWEudGltZW91dEhhbmRsZTstMSE9PWMmJihhLnRpbWVvdXRIYW5kbGU9LTEsTWUoYykpO2lmKG51bGwhPT1WKWZvcihjPVYucmV0dXJuO251bGwhPT1jOyl7dmFyIGQ9Yztzd2l0Y2goZC50YWcpe2Nhc2UgMTp2YXIgZT1kLnR5cGUuY2hpbGRDb250ZXh0VHlwZXM7bnVsbCE9PWUmJnZvaWQgMCE9PWUmJlRlKGQpO2JyZWFrO2Nhc2UgMzpCZyhkKTtVZShkKTticmVhaztjYXNlIDU6RGcoZCk7YnJlYWs7Y2FzZSA0OkJnKGQpO2JyZWFrO2Nhc2UgMTM6SChQLGQpO2JyZWFrO2Nhc2UgMTk6SChQLGQpO2JyZWFrO2Nhc2UgMTA6SWYoZCl9Yz1jLnJldHVybn1KaT1hO1Y9b2coYS5jdXJyZW50LG51bGwsYik7Vz1iO1g9RWk7TGk9S2k9MTA3Mzc0MTgyMztNaT1udWxsO05pPSExfVxuZnVuY3Rpb24gWihhLGIsYyl7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMzI3KSk7aWYoYS5maXJzdFBlbmRpbmdUaW1lPGIpcmV0dXJuIG51bGw7aWYoYyYmYS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPT09YilyZXR1cm4gaWouYmluZChudWxsLGEpO2NqKCk7aWYoYSE9PUppfHxiIT09VyloaihhLGIpO2Vsc2UgaWYoWD09PUhpKWlmKE5pKWhqKGEsYik7ZWxzZXt2YXIgZD1hLmxhc3RQZW5kaW5nVGltZTtpZihkPGIpcmV0dXJuIFouYmluZChudWxsLGEsZCl9aWYobnVsbCE9PVYpe2Q9VTtVfD1DaTt2YXIgZT16aS5jdXJyZW50O251bGw9PT1lJiYoZT1oaCk7emkuY3VycmVudD1oaDtpZihjKXtpZigxMDczNzQxODIzIT09Yil7dmFyIGY9Y2coKTtpZihmPGIpcmV0dXJuIFU9ZCxHZigpLHppLmN1cnJlbnQ9ZSxaLmJpbmQobnVsbCxhLGYpfX1lbHNlIFdpPTA7ZG8gdHJ5e2lmKGMpZm9yKDtudWxsIT09VjspVj1qaihWKTtlbHNlIGZvcig7bnVsbCE9PVYmJiFiZigpOylWPVxuamooVik7YnJlYWt9Y2F0Y2gocmIpe0dmKCk7aWgoKTtmPVY7aWYobnVsbD09PWZ8fG51bGw9PT1mLnJldHVybil0aHJvdyBoaihhLGIpLFU9ZCxyYjthOnt2YXIgaD1hLGc9Zi5yZXR1cm4saz1mLGw9cmIsbj1XO2suZWZmZWN0VGFnfD0xMDI0O2suZmlyc3RFZmZlY3Q9ay5sYXN0RWZmZWN0PW51bGw7aWYobnVsbCE9PWwmJlwib2JqZWN0XCI9PT10eXBlb2YgbCYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGwudGhlbil7dmFyIHo9bCx4PTAhPT0oUC5jdXJyZW50JkZnKTtsPWc7ZG97dmFyIHY7aWYodj0xMz09PWwudGFnKW51bGwhPT1sLm1lbW9pemVkU3RhdGU/dj0hMToodj1sLm1lbW9pemVkUHJvcHMsdj12b2lkIDA9PT12LmZhbGxiYWNrPyExOiEwIT09di51bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjaz8hMDp4PyExOiEwKTtpZih2KXtnPWwudXBkYXRlUXVldWU7bnVsbD09PWc/KGc9bmV3IFNldCxnLmFkZCh6KSxsLnVwZGF0ZVF1ZXVlPWcpOmcuYWRkKHopO2lmKDA9PT0obC5tb2RlJlxuMikpe2wuZWZmZWN0VGFnfD02NDtrLmVmZmVjdFRhZyY9LTE5NTc7MT09PWsudGFnJiYobnVsbD09PWsuYWx0ZXJuYXRlP2sudGFnPTE3OihuPVFmKDEwNzM3NDE4MjMsbnVsbCksbi50YWc9MixTZihrLG4pKSk7ay5leHBpcmF0aW9uVGltZT0xMDczNzQxODIzO2JyZWFrIGF9az1oO2g9bjt4PWsucGluZ0NhY2hlO251bGw9PT14Pyh4PWsucGluZ0NhY2hlPW5ldyBzaSxnPW5ldyBTZXQseC5zZXQoeixnKSk6KGc9eC5nZXQoeiksdm9pZCAwPT09ZyYmKGc9bmV3IFNldCx4LnNldCh6LGcpKSk7Zy5oYXMoaCl8fChnLmFkZChoKSxrPWtqLmJpbmQobnVsbCxrLHosaCksei50aGVuKGssaykpO2wuZWZmZWN0VGFnfD0yMDQ4O2wuZXhwaXJhdGlvblRpbWU9bjticmVhayBhfWw9bC5yZXR1cm59d2hpbGUobnVsbCE9PWwpO2w9RXJyb3IoKG9jKGsudHlwZSl8fFwiQSBSZWFjdCBjb21wb25lbnRcIikrXCIgc3VzcGVuZGVkIHdoaWxlIHJlbmRlcmluZywgYnV0IG5vIGZhbGxiYWNrIFVJIHdhcyBzcGVjaWZpZWQuXFxuXFxuQWRkIGEgPFN1c3BlbnNlIGZhbGxiYWNrPS4uLj4gY29tcG9uZW50IGhpZ2hlciBpbiB0aGUgdHJlZSB0byBwcm92aWRlIGEgbG9hZGluZyBpbmRpY2F0b3Igb3IgcGxhY2Vob2xkZXIgdG8gZGlzcGxheS5cIitcbnBjKGspKX1YIT09SWkmJihYPUZpKTtsPWJpKGwsayk7az1nO2Rve3N3aXRjaChrLnRhZyl7Y2FzZSAzOmsuZWZmZWN0VGFnfD0yMDQ4O2suZXhwaXJhdGlvblRpbWU9bjtuPXRpKGssbCxuKTtUZihrLG4pO2JyZWFrIGE7Y2FzZSAxOmlmKHo9bCxoPWsudHlwZSxnPWsuc3RhdGVOb2RlLDA9PT0oay5lZmZlY3RUYWcmNjQpJiYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGguZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxudWxsIT09ZyYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGcuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09eGl8fCF4aS5oYXMoZykpKSl7ay5lZmZlY3RUYWd8PTIwNDg7ay5leHBpcmF0aW9uVGltZT1uO249d2koayx6LG4pO1RmKGssbik7YnJlYWsgYX19az1rLnJldHVybn13aGlsZShudWxsIT09ayl9Vj1saihmKX13aGlsZSgxKTtVPWQ7R2YoKTt6aS5jdXJyZW50PWU7aWYobnVsbCE9PVYpcmV0dXJuIFouYmluZChudWxsLGEsYil9YS5maW5pc2hlZFdvcms9YS5jdXJyZW50LmFsdGVybmF0ZTtcbmEuZmluaXNoZWRFeHBpcmF0aW9uVGltZT1iO2lmKGRqKGEsYikpcmV0dXJuIG51bGw7Smk9bnVsbDtzd2l0Y2goWCl7Y2FzZSBFaTp0aHJvdyB0KEVycm9yKDMyOCkpO2Nhc2UgRmk6cmV0dXJuIGQ9YS5sYXN0UGVuZGluZ1RpbWUsZDxiP1ouYmluZChudWxsLGEsZCk6Yz9pai5iaW5kKG51bGwsYSk6KGhqKGEsYikseGYoWi5iaW5kKG51bGwsYSxiKSksbnVsbCk7Y2FzZSBHaTppZigxMDczNzQxODIzPT09S2kmJiFjJiYoYz1waStPaS1zZigpLDEwPGMpKXtpZihOaSlyZXR1cm4gaGooYSxiKSxaLmJpbmQobnVsbCxhLGIpO2Q9YS5sYXN0UGVuZGluZ1RpbWU7aWYoZDxiKXJldHVybiBaLmJpbmQobnVsbCxhLGQpO2EudGltZW91dEhhbmRsZT1MZShpai5iaW5kKG51bGwsYSksYyk7cmV0dXJuIG51bGx9cmV0dXJuIGlqLmJpbmQobnVsbCxhKTtjYXNlIEhpOmlmKCFjKXtpZihOaSlyZXR1cm4gaGooYSxiKSxaLmJpbmQobnVsbCxhLGIpO2M9YS5sYXN0UGVuZGluZ1RpbWU7aWYoYzxiKXJldHVybiBaLmJpbmQobnVsbCxcbmEsYyk7MTA3Mzc0MTgyMyE9PUxpP2M9MTAqKDEwNzM3NDE4MjEtTGkpLXNmKCk6MTA3Mzc0MTgyMz09PUtpP2M9MDooYz0xMCooMTA3Mzc0MTgyMS1LaSktNUUzLGQ9c2YoKSxiPTEwKigxMDczNzQxODIxLWIpLWQsYz1kLWMsMD5jJiYoYz0wKSxjPSgxMjA+Yz8xMjA6NDgwPmM/NDgwOjEwODA+Yz8xMDgwOjE5MjA+Yz8xOTIwOjNFMz5jPzNFMzo0MzIwPmM/NDMyMDoxOTYwKnlpKGMvMTk2MCkpLWMsYjxjJiYoYz1iKSk7aWYoMTA8YylyZXR1cm4gYS50aW1lb3V0SGFuZGxlPUxlKGlqLmJpbmQobnVsbCxhKSxjKSxudWxsfXJldHVybiBpai5iaW5kKG51bGwsYSk7Y2FzZSBJaTpyZXR1cm4hYyYmMTA3Mzc0MTgyMyE9PUtpJiZudWxsIT09TWkmJihkPUtpLGU9TWksYj1lLmJ1c3lNaW5EdXJhdGlvbk1zfDAsMD49Yj9iPTA6KGM9ZS5idXN5RGVsYXlNc3wwLGQ9c2YoKS0oMTAqKDEwNzM3NDE4MjEtZCktKGUudGltZW91dE1zfDB8fDVFMykpLGI9ZDw9Yz8wOmMrYi1kKSwxMDxiKT8oYS50aW1lb3V0SGFuZGxlPVxuTGUoaWouYmluZChudWxsLGEpLGIpLG51bGwpOmlqLmJpbmQobnVsbCxhKTtkZWZhdWx0OnRocm93IHQoRXJyb3IoMzI5KSk7fX1mdW5jdGlvbiBYZihhLGIpe2E8S2kmJjE8YSYmKEtpPWEpO251bGwhPT1iJiZhPExpJiYxPGEmJihMaT1hLE1pPWIpfWZ1bmN0aW9uIGpqKGEpe3ZhciBiPW1qKGEuYWx0ZXJuYXRlLGEsVyk7YS5tZW1vaXplZFByb3BzPWEucGVuZGluZ1Byb3BzO251bGw9PT1iJiYoYj1saihhKSk7QWkuY3VycmVudD1udWxsO3JldHVybiBifVxuZnVuY3Rpb24gbGooYSl7Vj1hO2Rve3ZhciBiPVYuYWx0ZXJuYXRlO2E9Vi5yZXR1cm47aWYoMD09PShWLmVmZmVjdFRhZyYxMDI0KSl7YTp7dmFyIGM9YjtiPVY7dmFyIGQ9VyxlPWIucGVuZGluZ1Byb3BzO3N3aXRjaChiLnRhZyl7Y2FzZSAyOmJyZWFrO2Nhc2UgMTY6YnJlYWs7Y2FzZSAxNTpjYXNlIDA6YnJlYWs7Y2FzZSAxOk4oYi50eXBlKSYmVGUoYik7YnJlYWs7Y2FzZSAzOkJnKGIpO1VlKGIpO2Q9Yi5zdGF0ZU5vZGU7ZC5wZW5kaW5nQ29udGV4dCYmKGQuY29udGV4dD1kLnBlbmRpbmdDb250ZXh0LGQucGVuZGluZ0NvbnRleHQ9bnVsbCk7aWYobnVsbD09PWN8fG51bGw9PT1jLmNoaWxkKUJoKGIpLGIuZWZmZWN0VGFnJj0tMztVaChiKTticmVhaztjYXNlIDU6RGcoYik7ZD16Zyh5Zy5jdXJyZW50KTt2YXIgZj1iLnR5cGU7aWYobnVsbCE9PWMmJm51bGwhPWIuc3RhdGVOb2RlKVZoKGMsYixmLGUsZCksYy5yZWYhPT1iLnJlZiYmKGIuZWZmZWN0VGFnfD0xMjgpO2Vsc2UgaWYoZSl7dmFyIGg9XG56Zyh3Zy5jdXJyZW50KTtpZihCaChiKSl7Yz1iO2U9dm9pZCAwO2Y9Yy5zdGF0ZU5vZGU7dmFyIGc9Yy50eXBlLGs9Yy5tZW1vaXplZFByb3BzO2ZbRmFdPWM7ZltHYV09aztzd2l0Y2goZyl7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpHKFwibG9hZFwiLGYpO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcih2YXIgbD0wO2w8YmIubGVuZ3RoO2wrKylHKGJiW2xdLGYpO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixmKTticmVhaztjYXNlIFwiaW1nXCI6Y2FzZSBcImltYWdlXCI6Y2FzZSBcImxpbmtcIjpHKFwiZXJyb3JcIixmKTtHKFwibG9hZFwiLGYpO2JyZWFrO2Nhc2UgXCJmb3JtXCI6RyhcInJlc2V0XCIsZik7RyhcInN1Ym1pdFwiLGYpO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RyhcInRvZ2dsZVwiLGYpO2JyZWFrO2Nhc2UgXCJpbnB1dFwiOkNjKGYsayk7RyhcImludmFsaWRcIixmKTtGZShkLFwib25DaGFuZ2VcIik7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmYuX3dyYXBwZXJTdGF0ZT1cbnt3YXNNdWx0aXBsZTohIWsubXVsdGlwbGV9O0coXCJpbnZhbGlkXCIsZik7RmUoZCxcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOm9lKGYsayksRyhcImludmFsaWRcIixmKSxGZShkLFwib25DaGFuZ2VcIil9RGUoZyxrKTtsPW51bGw7Zm9yKGUgaW4gaylrLmhhc093blByb3BlcnR5KGUpJiYoaD1rW2VdLFwiY2hpbGRyZW5cIj09PWU/XCJzdHJpbmdcIj09PXR5cGVvZiBoP2YudGV4dENvbnRlbnQhPT1oJiYobD1bXCJjaGlsZHJlblwiLGhdKTpcIm51bWJlclwiPT09dHlwZW9mIGgmJmYudGV4dENvbnRlbnQhPT1cIlwiK2gmJihsPVtcImNoaWxkcmVuXCIsXCJcIitoXSk6aWEuaGFzT3duUHJvcGVydHkoZSkmJm51bGwhPWgmJkZlKGQsZSkpO3N3aXRjaChnKXtjYXNlIFwiaW5wdXRcIjpWYihmKTtHYyhmLGssITApO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOlZiKGYpO3FlKGYsayk7YnJlYWs7Y2FzZSBcInNlbGVjdFwiOmNhc2UgXCJvcHRpb25cIjpicmVhaztkZWZhdWx0OlwiZnVuY3Rpb25cIj09PXR5cGVvZiBrLm9uQ2xpY2smJlxuKGYub25jbGljaz1HZSl9ZD1sO2MudXBkYXRlUXVldWU9ZDtudWxsIT09ZCYmU2goYil9ZWxzZXtrPWY7Yz1lO2c9YjtsPTk9PT1kLm5vZGVUeXBlP2Q6ZC5vd25lckRvY3VtZW50O2g9PT1yZS5odG1sJiYoaD1zZShrKSk7aD09PXJlLmh0bWw/XCJzY3JpcHRcIj09PWs/KGs9bC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGsuaW5uZXJIVE1MPVwiPHNjcmlwdD5cXHgzYy9zY3JpcHQ+XCIsbD1rLnJlbW92ZUNoaWxkKGsuZmlyc3RDaGlsZCkpOlwic3RyaW5nXCI9PT10eXBlb2YgYy5pcz9sPWwuY3JlYXRlRWxlbWVudChrLHtpczpjLmlzfSk6KGw9bC5jcmVhdGVFbGVtZW50KGspLFwic2VsZWN0XCI9PT1rJiYoaz1sLGMubXVsdGlwbGU/ay5tdWx0aXBsZT0hMDpjLnNpemUmJihrLnNpemU9Yy5zaXplKSkpOmw9bC5jcmVhdGVFbGVtZW50TlMoaCxrKTtrPWw7a1tGYV09ZztrW0dhXT1jO2M9aztUaChjLGIsITEsITEpO2c9Yzt2YXIgbj1kLHo9RWUoZixlKTtzd2l0Y2goZil7Y2FzZSBcImlmcmFtZVwiOmNhc2UgXCJvYmplY3RcIjpjYXNlIFwiZW1iZWRcIjpHKFwibG9hZFwiLFxuZyk7ZD1lO2JyZWFrO2Nhc2UgXCJ2aWRlb1wiOmNhc2UgXCJhdWRpb1wiOmZvcihkPTA7ZDxiYi5sZW5ndGg7ZCsrKUcoYmJbZF0sZyk7ZD1lO2JyZWFrO2Nhc2UgXCJzb3VyY2VcIjpHKFwiZXJyb3JcIixnKTtkPWU7YnJlYWs7Y2FzZSBcImltZ1wiOmNhc2UgXCJpbWFnZVwiOmNhc2UgXCJsaW5rXCI6RyhcImVycm9yXCIsZyk7RyhcImxvYWRcIixnKTtkPWU7YnJlYWs7Y2FzZSBcImZvcm1cIjpHKFwicmVzZXRcIixnKTtHKFwic3VibWl0XCIsZyk7ZD1lO2JyZWFrO2Nhc2UgXCJkZXRhaWxzXCI6RyhcInRvZ2dsZVwiLGcpO2Q9ZTticmVhaztjYXNlIFwiaW5wdXRcIjpDYyhnLGUpO2Q9QmMoZyxlKTtHKFwiaW52YWxpZFwiLGcpO0ZlKG4sXCJvbkNoYW5nZVwiKTticmVhaztjYXNlIFwib3B0aW9uXCI6ZD1sZShnLGUpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpnLl93cmFwcGVyU3RhdGU9e3dhc011bHRpcGxlOiEhZS5tdWx0aXBsZX07ZD1tKHt9LGUse3ZhbHVlOnZvaWQgMH0pO0coXCJpbnZhbGlkXCIsZyk7RmUobixcIm9uQ2hhbmdlXCIpO2JyZWFrO2Nhc2UgXCJ0ZXh0YXJlYVwiOm9lKGcsXG5lKTtkPW5lKGcsZSk7RyhcImludmFsaWRcIixnKTtGZShuLFwib25DaGFuZ2VcIik7YnJlYWs7ZGVmYXVsdDpkPWV9RGUoZixkKTtrPXZvaWQgMDtsPWY7aD1nO3ZhciB4PWQ7Zm9yKGsgaW4geClpZih4Lmhhc093blByb3BlcnR5KGspKXt2YXIgdj14W2tdO1wic3R5bGVcIj09PWs/QWUoaCx2KTpcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI9PT1rPyh2PXY/di5fX2h0bWw6dm9pZCAwLG51bGwhPXYmJnZlKGgsdikpOlwiY2hpbGRyZW5cIj09PWs/XCJzdHJpbmdcIj09PXR5cGVvZiB2PyhcInRleHRhcmVhXCIhPT1sfHxcIlwiIT09dikmJndlKGgsdik6XCJudW1iZXJcIj09PXR5cGVvZiB2JiZ3ZShoLFwiXCIrdik6XCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIiE9PWsmJlwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCIhPT1rJiZcImF1dG9Gb2N1c1wiIT09ayYmKGlhLmhhc093blByb3BlcnR5KGspP251bGwhPXYmJkZlKG4sayk6bnVsbCE9diYmemMoaCxrLHYseikpfXN3aXRjaChmKXtjYXNlIFwiaW5wdXRcIjpWYihnKTtcbkdjKGcsZSwhMSk7YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6VmIoZyk7cWUoZyxlKTticmVhaztjYXNlIFwib3B0aW9uXCI6bnVsbCE9ZS52YWx1ZSYmZy5zZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiLFwiXCIrQWMoZS52YWx1ZSkpO2JyZWFrO2Nhc2UgXCJzZWxlY3RcIjpkPWc7Zz1lO2QubXVsdGlwbGU9ISFnLm11bHRpcGxlO2s9Zy52YWx1ZTtudWxsIT1rP21lKGQsISFnLm11bHRpcGxlLGssITEpOm51bGwhPWcuZGVmYXVsdFZhbHVlJiZtZShkLCEhZy5tdWx0aXBsZSxnLmRlZmF1bHRWYWx1ZSwhMCk7YnJlYWs7ZGVmYXVsdDpcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5vbkNsaWNrJiYoZy5vbmNsaWNrPUdlKX1KZShmLGUpJiZTaChiKTtiLnN0YXRlTm9kZT1jfW51bGwhPT1iLnJlZiYmKGIuZWZmZWN0VGFnfD0xMjgpfWVsc2UgaWYobnVsbD09PWIuc3RhdGVOb2RlKXRocm93IHQoRXJyb3IoMTY2KSk7YnJlYWs7Y2FzZSA2OmlmKGMmJm51bGwhPWIuc3RhdGVOb2RlKVdoKGMsYixjLm1lbW9pemVkUHJvcHMsXG5lKTtlbHNle2lmKFwic3RyaW5nXCIhPT10eXBlb2YgZSYmbnVsbD09PWIuc3RhdGVOb2RlKXRocm93IHQoRXJyb3IoMTY2KSk7Yz16Zyh5Zy5jdXJyZW50KTt6Zyh3Zy5jdXJyZW50KTtCaChiKT8oZD1iLnN0YXRlTm9kZSxjPWIubWVtb2l6ZWRQcm9wcyxkW0ZhXT1iLGQubm9kZVZhbHVlIT09YyYmU2goYikpOihkPWIsYz0oOT09PWMubm9kZVR5cGU/YzpjLm93bmVyRG9jdW1lbnQpLmNyZWF0ZVRleHROb2RlKGUpLGNbRmFdPWIsZC5zdGF0ZU5vZGU9Yyl9YnJlYWs7Y2FzZSAxMTpicmVhaztjYXNlIDEzOkgoUCxiKTtlPWIubWVtb2l6ZWRTdGF0ZTtpZigwIT09KGIuZWZmZWN0VGFnJjY0KSl7Yi5leHBpcmF0aW9uVGltZT1kO2JyZWFrIGF9ZD1udWxsIT09ZTtlPSExO251bGw9PT1jP0JoKGIpOihmPWMubWVtb2l6ZWRTdGF0ZSxlPW51bGwhPT1mLGR8fG51bGw9PT1mfHwoZj1jLmNoaWxkLnNpYmxpbmcsbnVsbCE9PWYmJihnPWIuZmlyc3RFZmZlY3QsbnVsbCE9PWc/KGIuZmlyc3RFZmZlY3Q9XG5mLGYubmV4dEVmZmVjdD1nKTooYi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9ZixmLm5leHRFZmZlY3Q9bnVsbCksZi5lZmZlY3RUYWc9OCkpKTtpZihkJiYhZSYmMCE9PShiLm1vZGUmMikpaWYobnVsbD09PWMmJiEwIT09Yi5tZW1vaXplZFByb3BzLnVuc3RhYmxlX2F2b2lkVGhpc0ZhbGxiYWNrfHwwIT09KFAuY3VycmVudCZGZykpWD09PUVpJiYoWD1HaSk7ZWxzZSBpZihYPT09RWl8fFg9PT1HaSlYPUhpO2lmKGR8fGUpYi5lZmZlY3RUYWd8PTQ7YnJlYWs7Y2FzZSA3OmJyZWFrO2Nhc2UgODpicmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgNDpCZyhiKTtVaChiKTticmVhaztjYXNlIDEwOklmKGIpO2JyZWFrO2Nhc2UgOTpicmVhaztjYXNlIDE0OmJyZWFrO2Nhc2UgMTc6TihiLnR5cGUpJiZUZShiKTticmVhaztjYXNlIDE4OmJyZWFrO2Nhc2UgMTk6SChQLGIpO2U9Yi5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1lKWJyZWFrO2Y9MCE9PShiLmVmZmVjdFRhZyY2NCk7Zz1lLnJlbmRlcmluZztcbmlmKG51bGw9PT1nKWlmKGYpJGgoZSwhMSk7ZWxzZXtpZihYIT09RWl8fG51bGwhPT1jJiYwIT09KGMuZWZmZWN0VGFnJjY0KSlmb3IoYz1iLmNoaWxkO251bGwhPT1jOyl7Zz1IZyhjKTtpZihudWxsIT09Zyl7Yi5lZmZlY3RUYWd8PTY0OyRoKGUsITEpO2M9Zy51cGRhdGVRdWV1ZTtudWxsIT09YyYmKGIudXBkYXRlUXVldWU9YyxiLmVmZmVjdFRhZ3w9NCk7Yi5maXJzdEVmZmVjdD1iLmxhc3RFZmZlY3Q9bnVsbDtmb3IoYz1iLmNoaWxkO251bGwhPT1jOyllPWMsZj1kLGUuZWZmZWN0VGFnJj0yLGUubmV4dEVmZmVjdD1udWxsLGUuZmlyc3RFZmZlY3Q9bnVsbCxlLmxhc3RFZmZlY3Q9bnVsbCxnPWUuYWx0ZXJuYXRlLG51bGw9PT1nPyhlLmNoaWxkRXhwaXJhdGlvblRpbWU9MCxlLmV4cGlyYXRpb25UaW1lPWYsZS5jaGlsZD1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUudXBkYXRlUXVldWU9bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsKTooZS5jaGlsZEV4cGlyYXRpb25UaW1lPVxuZy5jaGlsZEV4cGlyYXRpb25UaW1lLGUuZXhwaXJhdGlvblRpbWU9Zy5leHBpcmF0aW9uVGltZSxlLmNoaWxkPWcuY2hpbGQsZS5tZW1vaXplZFByb3BzPWcubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9Zy5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9Zy51cGRhdGVRdWV1ZSxmPWcuZGVwZW5kZW5jaWVzLGUuZGVwZW5kZW5jaWVzPW51bGw9PT1mP251bGw6e2V4cGlyYXRpb25UaW1lOmYuZXhwaXJhdGlvblRpbWUsZmlyc3RDb250ZXh0OmYuZmlyc3RDb250ZXh0LHJlc3BvbmRlcnM6Zi5yZXNwb25kZXJzfSksYz1jLnNpYmxpbmc7SihQLFAuY3VycmVudCZFZ3xHZyxiKTtiPWIuY2hpbGQ7YnJlYWsgYX1jPWMuc2libGluZ319ZWxzZXtpZighZilpZihjPUhnKGcpLG51bGwhPT1jKXtpZihiLmVmZmVjdFRhZ3w9NjQsZj0hMCwkaChlLCEwKSxudWxsPT09ZS50YWlsJiZcImhpZGRlblwiPT09ZS50YWlsTW9kZSl7ZD1jLnVwZGF0ZVF1ZXVlO251bGwhPT1kJiYoYi51cGRhdGVRdWV1ZT1cbmQsYi5lZmZlY3RUYWd8PTQpO2I9Yi5sYXN0RWZmZWN0PWUubGFzdEVmZmVjdDtudWxsIT09YiYmKGIubmV4dEVmZmVjdD1udWxsKTticmVha319ZWxzZSBzZigpPmUudGFpbEV4cGlyYXRpb24mJjE8ZCYmKGIuZWZmZWN0VGFnfD02NCxmPSEwLCRoKGUsITEpLGIuZXhwaXJhdGlvblRpbWU9Yi5jaGlsZEV4cGlyYXRpb25UaW1lPWQtMSk7ZS5pc0JhY2t3YXJkcz8oZy5zaWJsaW5nPWIuY2hpbGQsYi5jaGlsZD1nKTooZD1lLmxhc3QsbnVsbCE9PWQ/ZC5zaWJsaW5nPWc6Yi5jaGlsZD1nLGUubGFzdD1nKX1pZihudWxsIT09ZS50YWlsKXswPT09ZS50YWlsRXhwaXJhdGlvbiYmKGUudGFpbEV4cGlyYXRpb249c2YoKSs1MDApO2Q9ZS50YWlsO2UucmVuZGVyaW5nPWQ7ZS50YWlsPWQuc2libGluZztlLmxhc3RFZmZlY3Q9Yi5sYXN0RWZmZWN0O2Quc2libGluZz1udWxsO2M9UC5jdXJyZW50O2M9Zj9jJkVnfEdnOmMmRWc7SihQLGMsYik7Yj1kO2JyZWFrIGF9YnJlYWs7Y2FzZSAyMDpicmVhaztcbmRlZmF1bHQ6dGhyb3cgdChFcnJvcigxNTYpKTt9Yj1udWxsfWQ9VjtpZigxPT09V3x8MSE9PWQuY2hpbGRFeHBpcmF0aW9uVGltZSl7Yz0wO2ZvcihlPWQuY2hpbGQ7bnVsbCE9PWU7KWY9ZS5leHBpcmF0aW9uVGltZSxnPWUuY2hpbGRFeHBpcmF0aW9uVGltZSxmPmMmJihjPWYpLGc+YyYmKGM9ZyksZT1lLnNpYmxpbmc7ZC5jaGlsZEV4cGlyYXRpb25UaW1lPWN9aWYobnVsbCE9PWIpcmV0dXJuIGI7bnVsbCE9PWEmJjA9PT0oYS5lZmZlY3RUYWcmMTAyNCkmJihudWxsPT09YS5maXJzdEVmZmVjdCYmKGEuZmlyc3RFZmZlY3Q9Vi5maXJzdEVmZmVjdCksbnVsbCE9PVYubGFzdEVmZmVjdCYmKG51bGwhPT1hLmxhc3RFZmZlY3QmJihhLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1WLmZpcnN0RWZmZWN0KSxhLmxhc3RFZmZlY3Q9Vi5sYXN0RWZmZWN0KSwxPFYuZWZmZWN0VGFnJiYobnVsbCE9PWEubGFzdEVmZmVjdD9hLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1WOmEuZmlyc3RFZmZlY3Q9VixcbmEubGFzdEVmZmVjdD1WKSl9ZWxzZXtiPWFpKFYsVyk7aWYobnVsbCE9PWIpcmV0dXJuIGIuZWZmZWN0VGFnJj0xMDIzLGI7bnVsbCE9PWEmJihhLmZpcnN0RWZmZWN0PWEubGFzdEVmZmVjdD1udWxsLGEuZWZmZWN0VGFnfD0xMDI0KX1iPVYuc2libGluZztpZihudWxsIT09YilyZXR1cm4gYjtWPWF9d2hpbGUobnVsbCE9PVYpO1g9PT1FaSYmKFg9SWkpO3JldHVybiBudWxsfWZ1bmN0aW9uIGlqKGEpe3ZhciBiPXRmKCk7dmYoOTksbmouYmluZChudWxsLGEsYikpO251bGwhPT1RaSYmd2YoOTcsZnVuY3Rpb24oKXtjaigpO3JldHVybiBudWxsfSk7cmV0dXJuIG51bGx9XG5mdW5jdGlvbiBuaihhLGIpe2NqKCk7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMzI3KSk7dmFyIGM9YS5maW5pc2hlZFdvcmssZD1hLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU7aWYobnVsbD09PWMpcmV0dXJuIG51bGw7YS5maW5pc2hlZFdvcms9bnVsbDthLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9MDtpZihjPT09YS5jdXJyZW50KXRocm93IHQoRXJyb3IoMTc3KSk7YS5jYWxsYmFja05vZGU9bnVsbDthLmNhbGxiYWNrRXhwaXJhdGlvblRpbWU9MDt2YXIgZT1jLmV4cGlyYXRpb25UaW1lLGY9Yy5jaGlsZEV4cGlyYXRpb25UaW1lO2U9Zj5lP2Y6ZTthLmZpcnN0UGVuZGluZ1RpbWU9ZTtlPGEubGFzdFBlbmRpbmdUaW1lJiYoYS5sYXN0UGVuZGluZ1RpbWU9ZSk7YT09PUppJiYoVj1KaT1udWxsLFc9MCk7MTxjLmVmZmVjdFRhZz9udWxsIT09Yy5sYXN0RWZmZWN0PyhjLmxhc3RFZmZlY3QubmV4dEVmZmVjdD1jLGU9Yy5maXJzdEVmZmVjdCk6ZT1jOmU9Yy5maXJzdEVmZmVjdDtcbmlmKG51bGwhPT1lKXtmPVU7VXw9RGk7QWkuY3VycmVudD1udWxsO0hlPVFkO3ZhciBoPWFlKCk7aWYoYmUoaCkpe2lmKFwic2VsZWN0aW9uU3RhcnRcImluIGgpdmFyIGc9e3N0YXJ0Omguc2VsZWN0aW9uU3RhcnQsZW5kOmguc2VsZWN0aW9uRW5kfTtlbHNlIGE6e2c9KGc9aC5vd25lckRvY3VtZW50KSYmZy5kZWZhdWx0Vmlld3x8d2luZG93O3ZhciBrPWcuZ2V0U2VsZWN0aW9uJiZnLmdldFNlbGVjdGlvbigpO2lmKGsmJjAhPT1rLnJhbmdlQ291bnQpe2c9ay5hbmNob3JOb2RlO3ZhciBsPWsuYW5jaG9yT2Zmc2V0LG49ay5mb2N1c05vZGU7az1rLmZvY3VzT2Zmc2V0O3RyeXtnLm5vZGVUeXBlLG4ubm9kZVR5cGV9Y2F0Y2goemIpe2c9bnVsbDticmVhayBhfXZhciB6PTAseD0tMSx2PS0xLHJiPTAsQmU9MCx1PWgsdz1udWxsO2I6Zm9yKDs7KXtmb3IodmFyIEM7Oyl7dSE9PWd8fDAhPT1sJiYzIT09dS5ub2RlVHlwZXx8KHg9eitsKTt1IT09bnx8MCE9PWsmJjMhPT11Lm5vZGVUeXBlfHxcbih2PXorayk7Mz09PXUubm9kZVR5cGUmJih6Kz11Lm5vZGVWYWx1ZS5sZW5ndGgpO2lmKG51bGw9PT0oQz11LmZpcnN0Q2hpbGQpKWJyZWFrO3c9dTt1PUN9Zm9yKDs7KXtpZih1PT09aClicmVhayBiO3c9PT1nJiYrK3JiPT09bCYmKHg9eik7dz09PW4mJisrQmU9PT1rJiYodj16KTtpZihudWxsIT09KEM9dS5uZXh0U2libGluZykpYnJlYWs7dT13O3c9dS5wYXJlbnROb2RlfXU9Q31nPS0xPT09eHx8LTE9PT12P251bGw6e3N0YXJ0OngsZW5kOnZ9fWVsc2UgZz1udWxsfWc9Z3x8e3N0YXJ0OjAsZW5kOjB9fWVsc2UgZz1udWxsO0llPXtmb2N1c2VkRWxlbTpoLHNlbGVjdGlvblJhbmdlOmd9O1FkPSExO1k9ZTtkbyB0cnl7Zm9yKDtudWxsIT09WTspe2lmKDAhPT0oWS5lZmZlY3RUYWcmMjU2KSl7dmFyIEk9WS5hbHRlcm5hdGU7aD1ZO3N3aXRjaChoLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpoaShKZyxJZyxoKTticmVhaztjYXNlIDE6aWYoaC5lZmZlY3RUYWcmMjU2JiZudWxsIT09XG5JKXt2YXIgRT1JLm1lbW9pemVkUHJvcHMsdWE9SS5tZW1vaXplZFN0YXRlLGdoPWguc3RhdGVOb2RlLG9qPWdoLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGguZWxlbWVudFR5cGU9PT1oLnR5cGU/RTpBZihoLnR5cGUsRSksdWEpO2doLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlPW9qfWJyZWFrO2Nhc2UgMzpjYXNlIDU6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigxNjMpKTt9fVk9WS5uZXh0RWZmZWN0fX1jYXRjaCh6Yil7aWYobnVsbD09PVkpdGhyb3cgdChFcnJvcigzMzApKTtmaShZLHpiKTtZPVkubmV4dEVmZmVjdH13aGlsZShudWxsIT09WSk7WT1lO2RvIHRyeXtmb3IoST1iO251bGwhPT1ZOyl7dmFyIEE9WS5lZmZlY3RUYWc7QSYxNiYmd2UoWS5zdGF0ZU5vZGUsXCJcIik7aWYoQSYxMjgpe3ZhciBwPVkuYWx0ZXJuYXRlO2lmKG51bGwhPT1wKXt2YXIgcj1wLnJlZjtudWxsIT09ciYmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiByP1xucihudWxsKTpyLmN1cnJlbnQ9bnVsbCl9fXN3aXRjaChBJjE0KXtjYXNlIDI6bmkoWSk7WS5lZmZlY3RUYWcmPS0zO2JyZWFrO2Nhc2UgNjpuaShZKTtZLmVmZmVjdFRhZyY9LTM7b2koWS5hbHRlcm5hdGUsWSk7YnJlYWs7Y2FzZSA0Om9pKFkuYWx0ZXJuYXRlLFkpO2JyZWFrO2Nhc2UgODpFPVk7a2koRSxJKTtFLnJldHVybj1udWxsO0UuY2hpbGQ9bnVsbDtFLm1lbW9pemVkU3RhdGU9bnVsbDtFLnVwZGF0ZVF1ZXVlPW51bGw7RS5kZXBlbmRlbmNpZXM9bnVsbDt2YXIgSz1FLmFsdGVybmF0ZTtudWxsIT09SyYmKEsucmV0dXJuPW51bGwsSy5jaGlsZD1udWxsLEsubWVtb2l6ZWRTdGF0ZT1udWxsLEsudXBkYXRlUXVldWU9bnVsbCxLLmRlcGVuZGVuY2llcz1udWxsKX1ZPVkubmV4dEVmZmVjdH19Y2F0Y2goemIpe2lmKG51bGw9PT1ZKXRocm93IHQoRXJyb3IoMzMwKSk7ZmkoWSx6Yik7WT1ZLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVkpO3I9SWU7cD1hZSgpO0E9ci5mb2N1c2VkRWxlbTtcbkk9ci5zZWxlY3Rpb25SYW5nZTtpZihwIT09QSYmQSYmQS5vd25lckRvY3VtZW50JiYkZChBLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEEpKXtudWxsIT09SSYmYmUoQSkmJihwPUkuc3RhcnQscj1JLmVuZCx2b2lkIDA9PT1yJiYocj1wKSxcInNlbGVjdGlvblN0YXJ0XCJpbiBBPyhBLnNlbGVjdGlvblN0YXJ0PXAsQS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4ocixBLnZhbHVlLmxlbmd0aCkpOihyPShwPUEub3duZXJEb2N1bWVudHx8ZG9jdW1lbnQpJiZwLmRlZmF1bHRWaWV3fHx3aW5kb3csci5nZXRTZWxlY3Rpb24mJihyPXIuZ2V0U2VsZWN0aW9uKCksRT1BLnRleHRDb250ZW50Lmxlbmd0aCxLPU1hdGgubWluKEkuc3RhcnQsRSksST12b2lkIDA9PT1JLmVuZD9LOk1hdGgubWluKEkuZW5kLEUpLCFyLmV4dGVuZCYmSz5JJiYoRT1JLEk9SyxLPUUpLEU9WmQoQSxLKSx1YT1aZChBLEkpLEUmJnVhJiYoMSE9PXIucmFuZ2VDb3VudHx8ci5hbmNob3JOb2RlIT09RS5ub2RlfHxyLmFuY2hvck9mZnNldCE9PVxuRS5vZmZzZXR8fHIuZm9jdXNOb2RlIT09dWEubm9kZXx8ci5mb2N1c09mZnNldCE9PXVhLm9mZnNldCkmJihwPXAuY3JlYXRlUmFuZ2UoKSxwLnNldFN0YXJ0KEUubm9kZSxFLm9mZnNldCksci5yZW1vdmVBbGxSYW5nZXMoKSxLPkk/KHIuYWRkUmFuZ2UocCksci5leHRlbmQodWEubm9kZSx1YS5vZmZzZXQpKToocC5zZXRFbmQodWEubm9kZSx1YS5vZmZzZXQpLHIuYWRkUmFuZ2UocCkpKSkpKTtwPVtdO2ZvcihyPUE7cj1yLnBhcmVudE5vZGU7KTE9PT1yLm5vZGVUeXBlJiZwLnB1c2goe2VsZW1lbnQ6cixsZWZ0OnIuc2Nyb2xsTGVmdCx0b3A6ci5zY3JvbGxUb3B9KTtcImZ1bmN0aW9uXCI9PT10eXBlb2YgQS5mb2N1cyYmQS5mb2N1cygpO2ZvcihBPTA7QTxwLmxlbmd0aDtBKyspcj1wW0FdLHIuZWxlbWVudC5zY3JvbGxMZWZ0PXIubGVmdCxyLmVsZW1lbnQuc2Nyb2xsVG9wPXIudG9wfUllPW51bGw7UWQ9ISFIZTtIZT1udWxsO2EuY3VycmVudD1jO1k9ZTtkbyB0cnl7Zm9yKEE9ZDtudWxsIT09XG5ZOyl7dmFyICRhPVkuZWZmZWN0VGFnO2lmKCRhJjM2KXt2YXIgbmM9WS5hbHRlcm5hdGU7cD1ZO3I9QTtzd2l0Y2gocC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aGkoTWcsTmcscCk7YnJlYWs7Y2FzZSAxOnZhciBtZD1wLnN0YXRlTm9kZTtpZihwLmVmZmVjdFRhZyY0KWlmKG51bGw9PT1uYyltZC5jb21wb25lbnREaWRNb3VudCgpO2Vsc2V7dmFyIEZqPXAuZWxlbWVudFR5cGU9PT1wLnR5cGU/bmMubWVtb2l6ZWRQcm9wczpBZihwLnR5cGUsbmMubWVtb2l6ZWRQcm9wcyk7bWQuY29tcG9uZW50RGlkVXBkYXRlKEZqLG5jLm1lbW9pemVkU3RhdGUsbWQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpfXZhciBYaD1wLnVwZGF0ZVF1ZXVlO251bGwhPT1YaCYmWWYocCxYaCxtZCxyKTticmVhaztjYXNlIDM6dmFyIFloPXAudXBkYXRlUXVldWU7aWYobnVsbCE9PVloKXtLPW51bGw7aWYobnVsbCE9PXAuY2hpbGQpc3dpdGNoKHAuY2hpbGQudGFnKXtjYXNlIDU6Sz1cbnAuY2hpbGQuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMTpLPXAuY2hpbGQuc3RhdGVOb2RlfVlmKHAsWWgsSyxyKX1icmVhaztjYXNlIDU6dmFyIEdqPXAuc3RhdGVOb2RlO251bGw9PT1uYyYmcC5lZmZlY3RUYWcmNCYmKHI9R2osSmUocC50eXBlLHAubWVtb2l6ZWRQcm9wcykmJnIuZm9jdXMoKSk7YnJlYWs7Y2FzZSA2OmJyZWFrO2Nhc2UgNDpicmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgMTM6Y2FzZSAxOTpjYXNlIDE3OmNhc2UgMjA6YnJlYWs7ZGVmYXVsdDp0aHJvdyB0KEVycm9yKDE2MykpO319aWYoJGEmMTI4KXt2YXIgbmQ9WS5yZWY7aWYobnVsbCE9PW5kKXt2YXIgWmg9WS5zdGF0ZU5vZGU7c3dpdGNoKFkudGFnKXtjYXNlIDU6dmFyIGdmPVpoO2JyZWFrO2RlZmF1bHQ6Z2Y9Wmh9XCJmdW5jdGlvblwiPT09dHlwZW9mIG5kP25kKGdmKTpuZC5jdXJyZW50PWdmfX0kYSY1MTImJihQaT0hMCk7WT1ZLm5leHRFZmZlY3R9fWNhdGNoKHpiKXtpZihudWxsPT09WSl0aHJvdyB0KEVycm9yKDMzMCkpO1xuZmkoWSx6Yik7WT1ZLm5leHRFZmZlY3R9d2hpbGUobnVsbCE9PVkpO1k9bnVsbDtuZigpO1U9Zn1lbHNlIGEuY3VycmVudD1jO2lmKFBpKVBpPSExLFFpPWEsU2k9ZCxSaT1iO2Vsc2UgZm9yKFk9ZTtudWxsIT09WTspYj1ZLm5leHRFZmZlY3QsWS5uZXh0RWZmZWN0PW51bGwsWT1iO2I9YS5maXJzdFBlbmRpbmdUaW1lOzAhPT1iPygkYT1jZygpLCRhPXpmKCRhLGIpLFppKGEsJGEsYikpOnhpPW51bGw7XCJmdW5jdGlvblwiPT09dHlwZW9mIHBqJiZwaihjLnN0YXRlTm9kZSxkKTsxMDczNzQxODIzPT09Yj9hPT09Vmk/VWkrKzooVWk9MCxWaT1hKTpVaT0wO2lmKHVpKXRocm93IHVpPSExLGE9dmksdmk9bnVsbCxhO2lmKChVJkJpKSE9PVQpcmV0dXJuIG51bGw7TygpO3JldHVybiBudWxsfVxuZnVuY3Rpb24gY2ooKXtpZihudWxsPT09UWkpcmV0dXJuITE7dmFyIGE9UWksYj1TaSxjPVJpO1FpPW51bGw7U2k9MDtSaT05MDtyZXR1cm4gdmYoOTc8Yz85NzpjLHFqLmJpbmQobnVsbCxhLGIpKX1mdW5jdGlvbiBxaihhKXtpZigoVSYoQ2l8RGkpKSE9PVQpdGhyb3cgdChFcnJvcigzMzEpKTt2YXIgYj1VO1V8PURpO2ZvcihhPWEuY3VycmVudC5maXJzdEVmZmVjdDtudWxsIT09YTspe3RyeXt2YXIgYz1hO2lmKDAhPT0oYy5lZmZlY3RUYWcmNTEyKSlzd2l0Y2goYy50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aGkoUGcsSWcsYyksaGkoSWcsT2csYyl9fWNhdGNoKGQpe2lmKG51bGw9PT1hKXRocm93IHQoRXJyb3IoMzMwKSk7ZmkoYSxkKX1jPWEubmV4dEVmZmVjdDthLm5leHRFZmZlY3Q9bnVsbDthPWN9VT1iO08oKTtyZXR1cm4hMH1cbmZ1bmN0aW9uIHJqKGEsYixjKXtiPWJpKGMsYik7Yj10aShhLGIsMTA3Mzc0MTgyMyk7U2YoYSxiKTthPVlpKGEsMTA3Mzc0MTgyMyk7bnVsbCE9PWEmJlppKGEsOTksMTA3Mzc0MTgyMyl9ZnVuY3Rpb24gZmkoYSxiKXtpZigzPT09YS50YWcpcmooYSxhLGIpO2Vsc2UgZm9yKHZhciBjPWEucmV0dXJuO251bGwhPT1jOyl7aWYoMz09PWMudGFnKXtyaihjLGEsYik7YnJlYWt9ZWxzZSBpZigxPT09Yy50YWcpe3ZhciBkPWMuc3RhdGVOb2RlO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBjLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PT10eXBlb2YgZC5jb21wb25lbnREaWRDYXRjaCYmKG51bGw9PT14aXx8IXhpLmhhcyhkKSkpe2E9YmkoYixhKTthPXdpKGMsYSwxMDczNzQxODIzKTtTZihjLGEpO2M9WWkoYywxMDczNzQxODIzKTtudWxsIT09YyYmWmkoYyw5OSwxMDczNzQxODIzKTticmVha319Yz1jLnJldHVybn19XG5mdW5jdGlvbiBraihhLGIsYyl7dmFyIGQ9YS5waW5nQ2FjaGU7bnVsbCE9PWQmJmQuZGVsZXRlKGIpO0ppPT09YSYmVz09PWM/WD09PUhpfHxYPT09R2kmJjEwNzM3NDE4MjM9PT1LaSYmc2YoKS1waTxPaT9oaihhLFcpOk5pPSEwOmEubGFzdFBlbmRpbmdUaW1lPGN8fChiPWEucGluZ1RpbWUsMCE9PWImJmI8Y3x8KGEucGluZ1RpbWU9YyxhLmZpbmlzaGVkRXhwaXJhdGlvblRpbWU9PT1jJiYoYS5maW5pc2hlZEV4cGlyYXRpb25UaW1lPTAsYS5maW5pc2hlZFdvcms9bnVsbCksYj1jZygpLGI9emYoYixjKSxaaShhLGIsYykpKX1mdW5jdGlvbiByaShhLGIpe3ZhciBjPWEuc3RhdGVOb2RlO251bGwhPT1jJiZjLmRlbGV0ZShiKTtjPWNnKCk7Yj1kZyhjLGEsbnVsbCk7Yz16ZihjLGIpO2E9WWkoYSxiKTtudWxsIT09YSYmWmkoYSxjLGIpfXZhciBtaj12b2lkIDA7XG5taj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9Yi5leHBpcmF0aW9uVGltZTtpZihudWxsIT09YSl7dmFyIGU9Yi5wZW5kaW5nUHJvcHM7aWYoYS5tZW1vaXplZFByb3BzIT09ZXx8TS5jdXJyZW50KUxmPSEwO2Vsc2UgaWYoZDxjKXtMZj0hMTtzd2l0Y2goYi50YWcpe2Nhc2UgMzpOaChiKTtDaCgpO2JyZWFrO2Nhc2UgNTpDZyhiKTtpZihiLm1vZGUmNCYmMSE9PWMmJmUuaGlkZGVuKXJldHVybiBiLmV4cGlyYXRpb25UaW1lPWIuY2hpbGRFeHBpcmF0aW9uVGltZT0xLG51bGw7YnJlYWs7Y2FzZSAxOk4oYi50eXBlKSYmWGUoYik7YnJlYWs7Y2FzZSA0OkFnKGIsYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpIZihiLGIubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAxMzppZihudWxsIT09Yi5tZW1vaXplZFN0YXRlKXtkPWIuY2hpbGQuY2hpbGRFeHBpcmF0aW9uVGltZTtpZigwIT09ZCYmZD49YylyZXR1cm4gUGgoYSxiLGMpO0ooUCxQLmN1cnJlbnQmXG5FZyxiKTtiPUZoKGEsYixjKTtyZXR1cm4gbnVsbCE9PWI/Yi5zaWJsaW5nOm51bGx9SihQLFAuY3VycmVudCZFZyxiKTticmVhaztjYXNlIDE5OmQ9Yi5jaGlsZEV4cGlyYXRpb25UaW1lPj1jO2lmKDAhPT0oYS5lZmZlY3RUYWcmNjQpKXtpZihkKXJldHVybiBSaChhLGIsYyk7Yi5lZmZlY3RUYWd8PTY0fWU9Yi5tZW1vaXplZFN0YXRlO251bGwhPT1lJiYoZS5yZW5kZXJpbmc9bnVsbCxlLnRhaWw9bnVsbCk7SihQLFAuY3VycmVudCxiKTtpZighZClyZXR1cm4gbnVsbH1yZXR1cm4gRmgoYSxiLGMpfX1lbHNlIExmPSExO2IuZXhwaXJhdGlvblRpbWU9MDtzd2l0Y2goYi50YWcpe2Nhc2UgMjpkPWIudHlwZTtudWxsIT09YSYmKGEuYWx0ZXJuYXRlPW51bGwsYi5hbHRlcm5hdGU9bnVsbCxiLmVmZmVjdFRhZ3w9Mik7YT1iLnBlbmRpbmdQcm9wcztlPVNlKGIsTC5jdXJyZW50KTtLZihiLGMpO2U9ZGgobnVsbCxiLGQsYSxlLGMpO2IuZWZmZWN0VGFnfD0xO2lmKFwib2JqZWN0XCI9PT10eXBlb2YgZSYmXG5udWxsIT09ZSYmXCJmdW5jdGlvblwiPT09dHlwZW9mIGUucmVuZGVyJiZ2b2lkIDA9PT1lLiQkdHlwZW9mKXtiLnRhZz0xO2loKCk7aWYoTihkKSl7dmFyIGY9ITA7WGUoYil9ZWxzZSBmPSExO2IubWVtb2l6ZWRTdGF0ZT1udWxsIT09ZS5zdGF0ZSYmdm9pZCAwIT09ZS5zdGF0ZT9lLnN0YXRlOm51bGw7dmFyIGg9ZC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XCJmdW5jdGlvblwiPT09dHlwZW9mIGgmJmJnKGIsZCxoLGEpO2UudXBkYXRlcj1mZztiLnN0YXRlTm9kZT1lO2UuX3JlYWN0SW50ZXJuYWxGaWJlcj1iO2pnKGIsZCxhLGMpO2I9TWgobnVsbCxiLGQsITAsZixjKX1lbHNlIGIudGFnPTAsUyhudWxsLGIsZSxjKSxiPWIuY2hpbGQ7cmV0dXJuIGI7Y2FzZSAxNjplPWIuZWxlbWVudFR5cGU7bnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpO2E9Yi5wZW5kaW5nUHJvcHM7ZT1CZihlKTtiLnR5cGU9ZTtmPWIudGFnPXNqKGUpO1xuYT1BZihlLGEpO3N3aXRjaChmKXtjYXNlIDA6Yj1KaChudWxsLGIsZSxhLGMpO2JyZWFrO2Nhc2UgMTpiPUxoKG51bGwsYixlLGEsYyk7YnJlYWs7Y2FzZSAxMTpiPUVoKG51bGwsYixlLGEsYyk7YnJlYWs7Y2FzZSAxNDpiPUdoKG51bGwsYixlLEFmKGUudHlwZSxhKSxkLGMpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgdChFcnJvcigzMDYpLGUsXCJcIik7fXJldHVybiBiO2Nhc2UgMDpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6QWYoZCxlKSxKaChhLGIsZCxlLGMpO2Nhc2UgMTpyZXR1cm4gZD1iLnR5cGUsZT1iLnBlbmRpbmdQcm9wcyxlPWIuZWxlbWVudFR5cGU9PT1kP2U6QWYoZCxlKSxMaChhLGIsZCxlLGMpO2Nhc2UgMzpOaChiKTtkPWIudXBkYXRlUXVldWU7aWYobnVsbD09PWQpdGhyb3cgdChFcnJvcigyODIpKTtlPWIubWVtb2l6ZWRTdGF0ZTtlPW51bGwhPT1lP2UuZWxlbWVudDpudWxsO1dmKGIsZCxiLnBlbmRpbmdQcm9wcyxcbm51bGwsYyk7ZD1iLm1lbW9pemVkU3RhdGUuZWxlbWVudDtpZihkPT09ZSlDaCgpLGI9RmgoYSxiLGMpO2Vsc2V7ZT1iLnN0YXRlTm9kZTtpZihlPShudWxsPT09YXx8bnVsbD09PWEuY2hpbGQpJiZlLmh5ZHJhdGUpdWg9TmUoYi5zdGF0ZU5vZGUuY29udGFpbmVySW5mby5maXJzdENoaWxkKSx0aD1iLGU9dmg9ITA7ZT8oYi5lZmZlY3RUYWd8PTIsYi5jaGlsZD11ZyhiLG51bGwsZCxjKSk6KFMoYSxiLGQsYyksQ2goKSk7Yj1iLmNoaWxkfXJldHVybiBiO2Nhc2UgNTpyZXR1cm4gQ2coYiksbnVsbD09PWEmJnpoKGIpLGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZj1udWxsIT09YT9hLm1lbW9pemVkUHJvcHM6bnVsbCxoPWUuY2hpbGRyZW4sS2UoZCxlKT9oPW51bGw6bnVsbCE9PWYmJktlKGQsZikmJihiLmVmZmVjdFRhZ3w9MTYpLEtoKGEsYiksYi5tb2RlJjQmJjEhPT1jJiZlLmhpZGRlbj8oYi5leHBpcmF0aW9uVGltZT1iLmNoaWxkRXhwaXJhdGlvblRpbWU9MSxiPW51bGwpOlxuKFMoYSxiLGgsYyksYj1iLmNoaWxkKSxiO2Nhc2UgNjpyZXR1cm4gbnVsbD09PWEmJnpoKGIpLG51bGw7Y2FzZSAxMzpyZXR1cm4gUGgoYSxiLGMpO2Nhc2UgNDpyZXR1cm4gQWcoYixiLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkPWIucGVuZGluZ1Byb3BzLG51bGw9PT1hP2IuY2hpbGQ9dGcoYixudWxsLGQsYyk6UyhhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTE6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksRWgoYSxiLGQsZSxjKTtjYXNlIDc6cmV0dXJuIFMoYSxiLGIucGVuZGluZ1Byb3BzLGMpLGIuY2hpbGQ7Y2FzZSA4OnJldHVybiBTKGEsYixiLnBlbmRpbmdQcm9wcy5jaGlsZHJlbixjKSxiLmNoaWxkO2Nhc2UgMTI6cmV0dXJuIFMoYSxiLGIucGVuZGluZ1Byb3BzLmNoaWxkcmVuLGMpLGIuY2hpbGQ7Y2FzZSAxMDphOntkPWIudHlwZS5fY29udGV4dDtlPWIucGVuZGluZ1Byb3BzO2g9Yi5tZW1vaXplZFByb3BzO1xuZj1lLnZhbHVlO0hmKGIsZik7aWYobnVsbCE9PWgpe3ZhciBnPWgudmFsdWU7Zj1oZChnLGYpPzA6KFwiZnVuY3Rpb25cIj09PXR5cGVvZiBkLl9jYWxjdWxhdGVDaGFuZ2VkQml0cz9kLl9jYWxjdWxhdGVDaGFuZ2VkQml0cyhnLGYpOjEwNzM3NDE4MjMpfDA7aWYoMD09PWYpe2lmKGguY2hpbGRyZW49PT1lLmNoaWxkcmVuJiYhTS5jdXJyZW50KXtiPUZoKGEsYixjKTticmVhayBhfX1lbHNlIGZvcihnPWIuY2hpbGQsbnVsbCE9PWcmJihnLnJldHVybj1iKTtudWxsIT09Zzspe3ZhciBrPWcuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1rKXtoPWcuY2hpbGQ7Zm9yKHZhciBsPWsuZmlyc3RDb250ZXh0O251bGwhPT1sOyl7aWYobC5jb250ZXh0PT09ZCYmMCE9PShsLm9ic2VydmVkQml0cyZmKSl7MT09PWcudGFnJiYobD1RZihjLG51bGwpLGwudGFnPTIsU2YoZyxsKSk7Zy5leHBpcmF0aW9uVGltZTxjJiYoZy5leHBpcmF0aW9uVGltZT1jKTtsPWcuYWx0ZXJuYXRlO251bGwhPT1sJiZsLmV4cGlyYXRpb25UaW1lPFxuYyYmKGwuZXhwaXJhdGlvblRpbWU9Yyk7SmYoZy5yZXR1cm4sYyk7ay5leHBpcmF0aW9uVGltZTxjJiYoay5leHBpcmF0aW9uVGltZT1jKTticmVha31sPWwubmV4dH19ZWxzZSBoPTEwPT09Zy50YWc/Zy50eXBlPT09Yi50eXBlP251bGw6Zy5jaGlsZDpnLmNoaWxkO2lmKG51bGwhPT1oKWgucmV0dXJuPWc7ZWxzZSBmb3IoaD1nO251bGwhPT1oOyl7aWYoaD09PWIpe2g9bnVsbDticmVha31nPWguc2libGluZztpZihudWxsIT09Zyl7Zy5yZXR1cm49aC5yZXR1cm47aD1nO2JyZWFrfWg9aC5yZXR1cm59Zz1ofX1TKGEsYixlLmNoaWxkcmVuLGMpO2I9Yi5jaGlsZH1yZXR1cm4gYjtjYXNlIDk6cmV0dXJuIGU9Yi50eXBlLGY9Yi5wZW5kaW5nUHJvcHMsZD1mLmNoaWxkcmVuLEtmKGIsYyksZT1NZihlLGYudW5zdGFibGVfb2JzZXJ2ZWRCaXRzKSxkPWQoZSksYi5lZmZlY3RUYWd8PTEsUyhhLGIsZCxjKSxiLmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIGU9Yi50eXBlLGY9QWYoZSxiLnBlbmRpbmdQcm9wcyksXG5mPUFmKGUudHlwZSxmKSxHaChhLGIsZSxmLGQsYyk7Y2FzZSAxNTpyZXR1cm4gSWgoYSxiLGIudHlwZSxiLnBlbmRpbmdQcm9wcyxkLGMpO2Nhc2UgMTc6cmV0dXJuIGQ9Yi50eXBlLGU9Yi5wZW5kaW5nUHJvcHMsZT1iLmVsZW1lbnRUeXBlPT09ZD9lOkFmKGQsZSksbnVsbCE9PWEmJihhLmFsdGVybmF0ZT1udWxsLGIuYWx0ZXJuYXRlPW51bGwsYi5lZmZlY3RUYWd8PTIpLGIudGFnPTEsTihkKT8oYT0hMCxYZShiKSk6YT0hMSxLZihiLGMpLGhnKGIsZCxlLGMpLGpnKGIsZCxlLGMpLE1oKG51bGwsYixkLCEwLGEsYyk7Y2FzZSAxOTpyZXR1cm4gUmgoYSxiLGMpfXRocm93IHQoRXJyb3IoMTU2KSk7fTt2YXIgcGo9bnVsbCxqaT1udWxsO1xuZnVuY3Rpb24gdGooYSl7aWYoXCJ1bmRlZmluZWRcIj09PXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pcmV0dXJuITE7dmFyIGI9X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO2lmKGIuaXNEaXNhYmxlZHx8IWIuc3VwcG9ydHNGaWJlcilyZXR1cm4hMDt0cnl7dmFyIGM9Yi5pbmplY3QoYSk7cGo9ZnVuY3Rpb24oYSl7dHJ5e2Iub25Db21taXRGaWJlclJvb3QoYyxhLHZvaWQgMCw2ND09PShhLmN1cnJlbnQuZWZmZWN0VGFnJjY0KSl9Y2F0Y2goZSl7fX07amk9ZnVuY3Rpb24oYSl7dHJ5e2Iub25Db21taXRGaWJlclVubW91bnQoYyxhKX1jYXRjaChlKXt9fX1jYXRjaChkKXt9cmV0dXJuITB9XG5mdW5jdGlvbiB1aihhLGIsYyxkKXt0aGlzLnRhZz1hO3RoaXMua2V5PWM7dGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbDt0aGlzLmluZGV4PTA7dGhpcy5yZWY9bnVsbDt0aGlzLnBlbmRpbmdQcm9wcz1iO3RoaXMuZGVwZW5kZW5jaWVzPXRoaXMubWVtb2l6ZWRTdGF0ZT10aGlzLnVwZGF0ZVF1ZXVlPXRoaXMubWVtb2l6ZWRQcm9wcz1udWxsO3RoaXMubW9kZT1kO3RoaXMuZWZmZWN0VGFnPTA7dGhpcy5sYXN0RWZmZWN0PXRoaXMuZmlyc3RFZmZlY3Q9dGhpcy5uZXh0RWZmZWN0PW51bGw7dGhpcy5jaGlsZEV4cGlyYXRpb25UaW1lPXRoaXMuZXhwaXJhdGlvblRpbWU9MDt0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIHhoKGEsYixjLGQpe3JldHVybiBuZXcgdWooYSxiLGMsZCl9XG5mdW5jdGlvbiBIaChhKXthPWEucHJvdG90eXBlO3JldHVybiEoIWF8fCFhLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIHNqKGEpe2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKXJldHVybiBIaChhKT8xOjA7aWYodm9pZCAwIT09YSYmbnVsbCE9PWEpe2E9YS4kJHR5cGVvZjtpZihhPT09Z2MpcmV0dXJuIDExO2lmKGE9PT1qYylyZXR1cm4gMTR9cmV0dXJuIDJ9XG5mdW5jdGlvbiBvZyhhLGIpe3ZhciBjPWEuYWx0ZXJuYXRlO251bGw9PT1jPyhjPXhoKGEudGFnLGIsYS5rZXksYS5tb2RlKSxjLmVsZW1lbnRUeXBlPWEuZWxlbWVudFR5cGUsYy50eXBlPWEudHlwZSxjLnN0YXRlTm9kZT1hLnN0YXRlTm9kZSxjLmFsdGVybmF0ZT1hLGEuYWx0ZXJuYXRlPWMpOihjLnBlbmRpbmdQcm9wcz1iLGMuZWZmZWN0VGFnPTAsYy5uZXh0RWZmZWN0PW51bGwsYy5maXJzdEVmZmVjdD1udWxsLGMubGFzdEVmZmVjdD1udWxsKTtjLmNoaWxkRXhwaXJhdGlvblRpbWU9YS5jaGlsZEV4cGlyYXRpb25UaW1lO2MuZXhwaXJhdGlvblRpbWU9YS5leHBpcmF0aW9uVGltZTtjLmNoaWxkPWEuY2hpbGQ7Yy5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcztjLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlO2MudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZTtiPWEuZGVwZW5kZW5jaWVzO2MuZGVwZW5kZW5jaWVzPW51bGw9PT1iP251bGw6e2V4cGlyYXRpb25UaW1lOmIuZXhwaXJhdGlvblRpbWUsXG5maXJzdENvbnRleHQ6Yi5maXJzdENvbnRleHQscmVzcG9uZGVyczpiLnJlc3BvbmRlcnN9O2Muc2libGluZz1hLnNpYmxpbmc7Yy5pbmRleD1hLmluZGV4O2MucmVmPWEucmVmO3JldHVybiBjfVxuZnVuY3Rpb24gcWcoYSxiLGMsZCxlLGYpe3ZhciBoPTI7ZD1hO2lmKFwiZnVuY3Rpb25cIj09PXR5cGVvZiBhKUhoKGEpJiYoaD0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PT10eXBlb2YgYSloPTU7ZWxzZSBhOnN3aXRjaChhKXtjYXNlIGFjOnJldHVybiBzZyhjLmNoaWxkcmVuLGUsZixiKTtjYXNlIGZjOmg9ODtlfD03O2JyZWFrO2Nhc2UgYmM6aD04O2V8PTE7YnJlYWs7Y2FzZSBjYzpyZXR1cm4gYT14aCgxMixjLGIsZXw4KSxhLmVsZW1lbnRUeXBlPWNjLGEudHlwZT1jYyxhLmV4cGlyYXRpb25UaW1lPWYsYTtjYXNlIGhjOnJldHVybiBhPXhoKDEzLGMsYixlKSxhLnR5cGU9aGMsYS5lbGVtZW50VHlwZT1oYyxhLmV4cGlyYXRpb25UaW1lPWYsYTtjYXNlIGljOnJldHVybiBhPXhoKDE5LGMsYixlKSxhLmVsZW1lbnRUeXBlPWljLGEuZXhwaXJhdGlvblRpbWU9ZixhO2RlZmF1bHQ6aWYoXCJvYmplY3RcIj09PXR5cGVvZiBhJiZudWxsIT09YSlzd2l0Y2goYS4kJHR5cGVvZil7Y2FzZSBkYzpoPVxuMTA7YnJlYWsgYTtjYXNlIGVjOmg9OTticmVhayBhO2Nhc2UgZ2M6aD0xMTticmVhayBhO2Nhc2UgamM6aD0xNDticmVhayBhO2Nhc2Uga2M6aD0xNjtkPW51bGw7YnJlYWsgYX10aHJvdyB0KEVycm9yKDEzMCksbnVsbD09YT9hOnR5cGVvZiBhLFwiXCIpO31iPXhoKGgsYyxiLGUpO2IuZWxlbWVudFR5cGU9YTtiLnR5cGU9ZDtiLmV4cGlyYXRpb25UaW1lPWY7cmV0dXJuIGJ9ZnVuY3Rpb24gc2coYSxiLGMsZCl7YT14aCg3LGEsZCxiKTthLmV4cGlyYXRpb25UaW1lPWM7cmV0dXJuIGF9ZnVuY3Rpb24gcGcoYSxiLGMpe2E9eGgoNixhLG51bGwsYik7YS5leHBpcmF0aW9uVGltZT1jO3JldHVybiBhfVxuZnVuY3Rpb24gcmcoYSxiLGMpe2I9eGgoNCxudWxsIT09YS5jaGlsZHJlbj9hLmNoaWxkcmVuOltdLGEua2V5LGIpO2IuZXhwaXJhdGlvblRpbWU9YztiLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzphLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246YS5pbXBsZW1lbnRhdGlvbn07cmV0dXJuIGJ9XG5mdW5jdGlvbiB2aihhLGIsYyl7dGhpcy50YWc9Yjt0aGlzLmN1cnJlbnQ9bnVsbDt0aGlzLmNvbnRhaW5lckluZm89YTt0aGlzLnBpbmdDYWNoZT10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsO3RoaXMuZmluaXNoZWRFeHBpcmF0aW9uVGltZT0wO3RoaXMuZmluaXNoZWRXb3JrPW51bGw7dGhpcy50aW1lb3V0SGFuZGxlPS0xO3RoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PW51bGw7dGhpcy5oeWRyYXRlPWM7dGhpcy5jYWxsYmFja05vZGU9dGhpcy5maXJzdEJhdGNoPW51bGw7dGhpcy5waW5nVGltZT10aGlzLmxhc3RQZW5kaW5nVGltZT10aGlzLmZpcnN0UGVuZGluZ1RpbWU9dGhpcy5jYWxsYmFja0V4cGlyYXRpb25UaW1lPTB9ZnVuY3Rpb24gd2ooYSxiLGMpe2E9bmV3IHZqKGEsYixjKTtiPXhoKDMsbnVsbCxudWxsLDI9PT1iPzc6MT09PWI/MzowKTthLmN1cnJlbnQ9YjtyZXR1cm4gYi5zdGF0ZU5vZGU9YX1cbmZ1bmN0aW9uIHhqKGEsYixjLGQsZSxmKXt2YXIgaD1iLmN1cnJlbnQ7YTppZihjKXtjPWMuX3JlYWN0SW50ZXJuYWxGaWJlcjtiOntpZigyIT09bGQoYyl8fDEhPT1jLnRhZyl0aHJvdyB0KEVycm9yKDE3MCkpO3ZhciBnPWM7ZG97c3dpdGNoKGcudGFnKXtjYXNlIDM6Zz1nLnN0YXRlTm9kZS5jb250ZXh0O2JyZWFrIGI7Y2FzZSAxOmlmKE4oZy50eXBlKSl7Zz1nLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDticmVhayBifX1nPWcucmV0dXJufXdoaWxlKG51bGwhPT1nKTt0aHJvdyB0KEVycm9yKDE3MSkpO31pZigxPT09Yy50YWcpe3ZhciBrPWMudHlwZTtpZihOKGspKXtjPVdlKGMsayxnKTticmVhayBhfX1jPWd9ZWxzZSBjPVFlO251bGw9PT1iLmNvbnRleHQ/Yi5jb250ZXh0PWM6Yi5wZW5kaW5nQ29udGV4dD1jO2I9ZjtlPVFmKGQsZSk7ZS5wYXlsb2FkPXtlbGVtZW50OmF9O2I9dm9pZCAwPT09Yj9udWxsOmI7bnVsbCE9PWImJlxuKGUuY2FsbGJhY2s9Yik7U2YoaCxlKTtlZyhoLGQpO3JldHVybiBkfWZ1bmN0aW9uIHlqKGEsYixjLGQpe3ZhciBlPWIuY3VycmVudCxmPWNnKCksaD0kZi5zdXNwZW5zZTtlPWRnKGYsZSxoKTtyZXR1cm4geGooYSxiLGMsZSxoLGQpfWZ1bmN0aW9uIHpqKGEpe2E9YS5jdXJyZW50O2lmKCFhLmNoaWxkKXJldHVybiBudWxsO3N3aXRjaChhLmNoaWxkLnRhZyl7Y2FzZSA1OnJldHVybiBhLmNoaWxkLnN0YXRlTm9kZTtkZWZhdWx0OnJldHVybiBhLmNoaWxkLnN0YXRlTm9kZX19ZnVuY3Rpb24gQWooYSxiLGMpe3ZhciBkPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjokYixrZXk6bnVsbD09ZD9udWxsOlwiXCIrZCxjaGlsZHJlbjphLGNvbnRhaW5lckluZm86YixpbXBsZW1lbnRhdGlvbjpjfX1cbkRiPWZ1bmN0aW9uKGEsYixjKXtzd2l0Y2goYil7Y2FzZSBcImlucHV0XCI6RWMoYSxjKTtiPWMubmFtZTtpZihcInJhZGlvXCI9PT1jLnR5cGUmJm51bGwhPWIpe2ZvcihjPWE7Yy5wYXJlbnROb2RlOyljPWMucGFyZW50Tm9kZTtjPWMucXVlcnlTZWxlY3RvckFsbChcImlucHV0W25hbWU9XCIrSlNPTi5zdHJpbmdpZnkoXCJcIitiKSsnXVt0eXBlPVwicmFkaW9cIl0nKTtmb3IoYj0wO2I8Yy5sZW5ndGg7YisrKXt2YXIgZD1jW2JdO2lmKGQhPT1hJiZkLmZvcm09PT1hLmZvcm0pe3ZhciBlPUthKGQpO2lmKCFlKXRocm93IHQoRXJyb3IoOTApKTtXYihkKTtFYyhkLGUpfX19YnJlYWs7Y2FzZSBcInRleHRhcmVhXCI6cGUoYSxjKTticmVhaztjYXNlIFwic2VsZWN0XCI6Yj1jLnZhbHVlLG51bGwhPWImJm1lKGEsISFjLm11bHRpcGxlLGIsITEpfX07XG5mdW5jdGlvbiBCaihhKXt2YXIgYj0xMDczNzQxODIxLTI1KigoKDEwNzM3NDE4MjEtY2coKSs1MDApLzI1fDApKzEpO2I8PVhpJiYtLWI7dGhpcy5fZXhwaXJhdGlvblRpbWU9WGk9Yjt0aGlzLl9yb290PWE7dGhpcy5fY2FsbGJhY2tzPXRoaXMuX25leHQ9bnVsbDt0aGlzLl9oYXNDaGlsZHJlbj10aGlzLl9kaWRDb21wbGV0ZT0hMTt0aGlzLl9jaGlsZHJlbj1udWxsO3RoaXMuX2RlZmVyPSEwfUJqLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oYSl7aWYoIXRoaXMuX2RlZmVyKXRocm93IHQoRXJyb3IoMjUwKSk7dGhpcy5faGFzQ2hpbGRyZW49ITA7dGhpcy5fY2hpbGRyZW49YTt2YXIgYj10aGlzLl9yb290Ll9pbnRlcm5hbFJvb3QsYz10aGlzLl9leHBpcmF0aW9uVGltZSxkPW5ldyBDajt4aihhLGIsbnVsbCxjLG51bGwsZC5fb25Db21taXQpO3JldHVybiBkfTtcbkJqLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGEpe2lmKHRoaXMuX2RpZENvbXBsZXRlKWEoKTtlbHNle3ZhciBiPXRoaXMuX2NhbGxiYWNrcztudWxsPT09YiYmKGI9dGhpcy5fY2FsbGJhY2tzPVtdKTtiLnB1c2goYSl9fTtcbkJqLnByb3RvdHlwZS5jb21taXQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9yb290Ll9pbnRlcm5hbFJvb3QsYj1hLmZpcnN0QmF0Y2g7aWYoIXRoaXMuX2RlZmVyfHxudWxsPT09Yil0aHJvdyB0KEVycm9yKDI1MSkpO2lmKHRoaXMuX2hhc0NoaWxkcmVuKXt2YXIgYz10aGlzLl9leHBpcmF0aW9uVGltZTtpZihiIT09dGhpcyl7dGhpcy5faGFzQ2hpbGRyZW4mJihjPXRoaXMuX2V4cGlyYXRpb25UaW1lPWIuX2V4cGlyYXRpb25UaW1lLHRoaXMucmVuZGVyKHRoaXMuX2NoaWxkcmVuKSk7Zm9yKHZhciBkPW51bGwsZT1iO2UhPT10aGlzOylkPWUsZT1lLl9uZXh0O2lmKG51bGw9PT1kKXRocm93IHQoRXJyb3IoMjUxKSk7ZC5fbmV4dD1lLl9uZXh0O3RoaXMuX25leHQ9YjthLmZpcnN0QmF0Y2g9dGhpc310aGlzLl9kZWZlcj0hMTtiPWM7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMjUzKSk7eGYoWi5iaW5kKG51bGwsYSxiKSk7TygpO2I9dGhpcy5fbmV4dDt0aGlzLl9uZXh0PVxubnVsbDtiPWEuZmlyc3RCYXRjaD1iO251bGwhPT1iJiZiLl9oYXNDaGlsZHJlbiYmYi5yZW5kZXIoYi5fY2hpbGRyZW4pfWVsc2UgdGhpcy5fbmV4dD1udWxsLHRoaXMuX2RlZmVyPSExfTtCai5wcm90b3R5cGUuX29uQ29tcGxldGU9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGlkQ29tcGxldGUpe3RoaXMuX2RpZENvbXBsZXRlPSEwO3ZhciBhPXRoaXMuX2NhbGxiYWNrcztpZihudWxsIT09YSlmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKykoMCxhW2JdKSgpfX07ZnVuY3Rpb24gQ2ooKXt0aGlzLl9jYWxsYmFja3M9bnVsbDt0aGlzLl9kaWRDb21taXQ9ITE7dGhpcy5fb25Db21taXQ9dGhpcy5fb25Db21taXQuYmluZCh0aGlzKX1Dai5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihhKXtpZih0aGlzLl9kaWRDb21taXQpYSgpO2Vsc2V7dmFyIGI9dGhpcy5fY2FsbGJhY2tzO251bGw9PT1iJiYoYj10aGlzLl9jYWxsYmFja3M9W10pO2IucHVzaChhKX19O1xuQ2oucHJvdG90eXBlLl9vbkNvbW1pdD1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaWRDb21taXQpe3RoaXMuX2RpZENvbW1pdD0hMDt2YXIgYT10aGlzLl9jYWxsYmFja3M7aWYobnVsbCE9PWEpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspe3ZhciBjPWFbYl07aWYoXCJmdW5jdGlvblwiIT09dHlwZW9mIGMpdGhyb3cgdChFcnJvcigxOTEpLGMpO2MoKX19fTtmdW5jdGlvbiBEaihhLGIsYyl7dGhpcy5faW50ZXJuYWxSb290PXdqKGEsYixjKX1mdW5jdGlvbiBFaihhLGIpe3RoaXMuX2ludGVybmFsUm9vdD13aihhLDIsYil9RWoucHJvdG90eXBlLnJlbmRlcj1Eai5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5faW50ZXJuYWxSb290LGQ9bmV3IENqO2I9dm9pZCAwPT09Yj9udWxsOmI7bnVsbCE9PWImJmQudGhlbihiKTt5aihhLGMsbnVsbCxkLl9vbkNvbW1pdCk7cmV0dXJuIGR9O1xuRWoucHJvdG90eXBlLnVubW91bnQ9RGoucHJvdG90eXBlLnVubW91bnQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5faW50ZXJuYWxSb290LGM9bmV3IENqO2E9dm9pZCAwPT09YT9udWxsOmE7bnVsbCE9PWEmJmMudGhlbihhKTt5aihudWxsLGIsbnVsbCxjLl9vbkNvbW1pdCk7cmV0dXJuIGN9O0VqLnByb3RvdHlwZS5jcmVhdGVCYXRjaD1mdW5jdGlvbigpe3ZhciBhPW5ldyBCaih0aGlzKSxiPWEuX2V4cGlyYXRpb25UaW1lLGM9dGhpcy5faW50ZXJuYWxSb290LGQ9Yy5maXJzdEJhdGNoO2lmKG51bGw9PT1kKWMuZmlyc3RCYXRjaD1hLGEuX25leHQ9bnVsbDtlbHNle2ZvcihjPW51bGw7bnVsbCE9PWQmJmQuX2V4cGlyYXRpb25UaW1lPj1iOyljPWQsZD1kLl9uZXh0O2EuX25leHQ9ZDtudWxsIT09YyYmKGMuX25leHQ9YSl9cmV0dXJuIGF9O1xuZnVuY3Rpb24gSGooYSl7cmV0dXJuISghYXx8MSE9PWEubm9kZVR5cGUmJjkhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGUmJig4IT09YS5ub2RlVHlwZXx8XCIgcmVhY3QtbW91bnQtcG9pbnQtdW5zdGFibGUgXCIhPT1hLm5vZGVWYWx1ZSkpfUpiPWVqO0tiPWZqO0xiPWFqO01iPWZ1bmN0aW9uKGEsYil7dmFyIGM9VTtVfD0yO3RyeXtyZXR1cm4gYShiKX1maW5hbGx5e1U9YyxVPT09VCYmTygpfX07ZnVuY3Rpb24gSWooYSxiKXtifHwoYj1hPzk9PT1hLm5vZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEuZmlyc3RDaGlsZDpudWxsLGI9ISghYnx8MSE9PWIubm9kZVR5cGV8fCFiLmhhc0F0dHJpYnV0ZShcImRhdGEtcmVhY3Ryb290XCIpKSk7aWYoIWIpZm9yKHZhciBjO2M9YS5sYXN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYyk7cmV0dXJuIG5ldyBEaihhLDAsYil9XG5mdW5jdGlvbiBKaihhLGIsYyxkLGUpe3ZhciBmPWMuX3JlYWN0Um9vdENvbnRhaW5lcixoPXZvaWQgMDtpZihmKXtoPWYuX2ludGVybmFsUm9vdDtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgZSl7dmFyIGc9ZTtlPWZ1bmN0aW9uKCl7dmFyIGE9emooaCk7Zy5jYWxsKGEpfX15aihiLGgsYSxlKX1lbHNle2Y9Yy5fcmVhY3RSb290Q29udGFpbmVyPUlqKGMsZCk7aD1mLl9pbnRlcm5hbFJvb3Q7aWYoXCJmdW5jdGlvblwiPT09dHlwZW9mIGUpe3ZhciBrPWU7ZT1mdW5jdGlvbigpe3ZhciBhPXpqKGgpO2suY2FsbChhKX19Z2ooZnVuY3Rpb24oKXt5aihiLGgsYSxlKX0pfXJldHVybiB6aihoKX1mdW5jdGlvbiBLaihhLGIpe3ZhciBjPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKCFIaihiKSl0aHJvdyB0KEVycm9yKDIwMCkpO3JldHVybiBBaihhLGIsbnVsbCxjKX1cbnZhciBOaj17Y3JlYXRlUG9ydGFsOktqLGZpbmRET01Ob2RlOmZ1bmN0aW9uKGEpe2lmKG51bGw9PWEpYT1udWxsO2Vsc2UgaWYoMSE9PWEubm9kZVR5cGUpe3ZhciBiPWEuX3JlYWN0SW50ZXJuYWxGaWJlcjtpZih2b2lkIDA9PT1iKXtpZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgYS5yZW5kZXIpdGhyb3cgdChFcnJvcigxODgpKTt0aHJvdyB0KEVycm9yKDI2OCksT2JqZWN0LmtleXMoYSkpO31hPXFkKGIpO2E9bnVsbD09PWE/bnVsbDphLnN0YXRlTm9kZX1yZXR1cm4gYX0saHlkcmF0ZTpmdW5jdGlvbihhLGIsYyl7aWYoIUhqKGIpKXRocm93IHQoRXJyb3IoMjAwKSk7cmV0dXJuIEpqKG51bGwsYSxiLCEwLGMpfSxyZW5kZXI6ZnVuY3Rpb24oYSxiLGMpe2lmKCFIaihiKSl0aHJvdyB0KEVycm9yKDIwMCkpO3JldHVybiBKaihudWxsLGEsYiwhMSxjKX0sdW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXI6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoIUhqKGMpKXRocm93IHQoRXJyb3IoMjAwKSk7XG5pZihudWxsPT1hfHx2b2lkIDA9PT1hLl9yZWFjdEludGVybmFsRmliZXIpdGhyb3cgdChFcnJvcigzOCkpO3JldHVybiBKaihhLGIsYywhMSxkKX0sdW5tb3VudENvbXBvbmVudEF0Tm9kZTpmdW5jdGlvbihhKXtpZighSGooYSkpdGhyb3cgdChFcnJvcig0MCkpO3JldHVybiBhLl9yZWFjdFJvb3RDb250YWluZXI/KGdqKGZ1bmN0aW9uKCl7SmoobnVsbCxudWxsLGEsITEsZnVuY3Rpb24oKXthLl9yZWFjdFJvb3RDb250YWluZXI9bnVsbH0pfSksITApOiExfSx1bnN0YWJsZV9jcmVhdGVQb3J0YWw6ZnVuY3Rpb24oKXtyZXR1cm4gS2ouYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9LHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzOmVqLHVuc3RhYmxlX2ludGVyYWN0aXZlVXBkYXRlczpmdW5jdGlvbihhLGIsYyxkKXthaigpO3JldHVybiBmaihhLGIsYyxkKX0sdW5zdGFibGVfZGlzY3JldGVVcGRhdGVzOmZqLHVuc3RhYmxlX2ZsdXNoRGlzY3JldGVVcGRhdGVzOmFqLGZsdXNoU3luYzpmdW5jdGlvbihhLFxuYil7aWYoKFUmKENpfERpKSkhPT1UKXRocm93IHQoRXJyb3IoMTg3KSk7dmFyIGM9VTtVfD0xO3RyeXtyZXR1cm4gdmYoOTksYS5iaW5kKG51bGwsYikpfWZpbmFsbHl7VT1jLE8oKX19LHVuc3RhYmxlX2NyZWF0ZVJvb3Q6TGosdW5zdGFibGVfY3JlYXRlU3luY1Jvb3Q6TWosdW5zdGFibGVfZmx1c2hDb250cm9sbGVkOmZ1bmN0aW9uKGEpe3ZhciBiPVU7VXw9MTt0cnl7dmYoOTksYSl9ZmluYWxseXtVPWIsVT09PVQmJk8oKX19LF9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEOntFdmVudHM6W0lhLEphLEthLENhLmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZSxmYSxRYSxmdW5jdGlvbihhKXt5YShhLFBhKX0sSGIsSWIsVWQsQmEsY2ose2N1cnJlbnQ6ITF9XX19O1xuZnVuY3Rpb24gTGooYSxiKXtpZighSGooYSkpdGhyb3cgdChFcnJvcigyOTkpLFwidW5zdGFibGVfY3JlYXRlUm9vdFwiKTtyZXR1cm4gbmV3IEVqKGEsbnVsbCE9YiYmITA9PT1iLmh5ZHJhdGUpfWZ1bmN0aW9uIE1qKGEsYil7aWYoIUhqKGEpKXRocm93IHQoRXJyb3IoMjk5KSxcInVuc3RhYmxlX2NyZWF0ZVJvb3RcIik7cmV0dXJuIG5ldyBEaihhLDEsbnVsbCE9YiYmITA9PT1iLmh5ZHJhdGUpfVxuKGZ1bmN0aW9uKGEpe3ZhciBiPWEuZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U7cmV0dXJuIHRqKG0oe30sYSx7b3ZlcnJpZGVIb29rU3RhdGU6bnVsbCxvdmVycmlkZVByb3BzOm51bGwsc2V0U3VzcGVuc2VIYW5kbGVyOm51bGwsc2NoZWR1bGVVcGRhdGU6bnVsbCxjdXJyZW50RGlzcGF0Y2hlclJlZjpYYi5SZWFjdEN1cnJlbnREaXNwYXRjaGVyLGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOmZ1bmN0aW9uKGEpe2E9cWQoYSk7cmV0dXJuIG51bGw9PT1hP251bGw6YS5zdGF0ZU5vZGV9LGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlOmZ1bmN0aW9uKGEpe3JldHVybiBiP2IoYSk6bnVsbH0sZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOm51bGwsc2NoZWR1bGVSZWZyZXNoOm51bGwsc2NoZWR1bGVSb290Om51bGwsc2V0UmVmcmVzaEhhbmRsZXI6bnVsbCxnZXRDdXJyZW50RmliZXI6bnVsbH0pKX0pKHtmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTpIYSxidW5kbGVUeXBlOjAsdmVyc2lvbjpcIjE2LjkuMFwiLFxucmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwifSk7dmFyIE9qPXtkZWZhdWx0Ok5qfSxQaj1PaiYmTmp8fE9qO21vZHVsZS5leHBvcnRzPVBqLmRlZmF1bHR8fFBqO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MC4xNS4wXG4gKiBzY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIGQ9dm9pZCAwLGU9dm9pZCAwLGc9dm9pZCAwLG09dm9pZCAwLG49dm9pZCAwO2V4cG9ydHMudW5zdGFibGVfbm93PXZvaWQgMDtleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPXZvaWQgMDtcbmlmKFwidW5kZWZpbmVkXCI9PT10eXBlb2Ygd2luZG93fHxcImZ1bmN0aW9uXCIhPT10eXBlb2YgTWVzc2FnZUNoYW5uZWwpe3ZhciBwPW51bGwscT1udWxsLHI9ZnVuY3Rpb24oKXtpZihudWxsIT09cCl0cnl7dmFyIGE9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtwKCEwLGEpO3A9bnVsbH1jYXRjaChiKXt0aHJvdyBzZXRUaW1lb3V0KHIsMCksYjt9fTtleHBvcnRzLnVuc3RhYmxlX25vdz1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpfTtkPWZ1bmN0aW9uKGEpe251bGwhPT1wP3NldFRpbWVvdXQoZCwwLGEpOihwPWEsc2V0VGltZW91dChyLDApKX07ZT1mdW5jdGlvbihhLGIpe3E9c2V0VGltZW91dChhLGIpfTtnPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHEpfTttPWZ1bmN0aW9uKCl7cmV0dXJuITF9O249ZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZT1mdW5jdGlvbigpe319ZWxzZXt2YXIgdD13aW5kb3cucGVyZm9ybWFuY2UsdT13aW5kb3cuRGF0ZSx2PXdpbmRvdy5zZXRUaW1lb3V0LFxudz13aW5kb3cuY2xlYXJUaW1lb3V0LHg9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSx5PXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZTtcInVuZGVmaW5lZFwiIT09dHlwZW9mIGNvbnNvbGUmJihcImZ1bmN0aW9uXCIhPT10eXBlb2YgeCYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLiBNYWtlIHN1cmUgdGhhdCB5b3UgbG9hZCBhIHBvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL2ZiLm1lL3JlYWN0LXBvbHlmaWxsc1wiKSxcImZ1bmN0aW9uXCIhPT10eXBlb2YgeSYmY29uc29sZS5lcnJvcihcIlRoaXMgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgY2FuY2VsQW5pbWF0aW9uRnJhbWUuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vZmIubWUvcmVhY3QtcG9seWZpbGxzXCIpKTtleHBvcnRzLnVuc3RhYmxlX25vdz1cIm9iamVjdFwiPT09dHlwZW9mIHQmJlxuXCJmdW5jdGlvblwiPT09dHlwZW9mIHQubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHQubm93KCl9OmZ1bmN0aW9uKCl7cmV0dXJuIHUubm93KCl9O3ZhciB6PSExLEE9bnVsbCxCPS0xLEM9LTEsRD0zMy4zMyxFPS0xLEY9LTEsRz0wLEg9ITE7bT1mdW5jdGlvbigpe3JldHVybiBleHBvcnRzLnVuc3RhYmxlX25vdygpPj1HfTtuPWZ1bmN0aW9uKCl7fTtleHBvcnRzLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGEpezA+YXx8MTI1PGE/Y29uc29sZS5lcnJvcihcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3QgdW5zdXBwb3J0ZWRcIik6MDxhPyhEPU1hdGguZmxvb3IoMUUzL2EpLEg9ITApOihEPTMzLjMzLEg9ITEpfTt2YXIgSj1mdW5jdGlvbigpe2lmKG51bGwhPT1BKXt2YXIgYT1leHBvcnRzLnVuc3RhYmxlX25vdygpLGI9MDxHLWE7dHJ5e0EoYixcbmEpfHwoQT1udWxsKX1jYXRjaChjKXt0aHJvdyBJLnBvc3RNZXNzYWdlKG51bGwpLGM7fX19LEs9bmV3IE1lc3NhZ2VDaGFubmVsLEk9Sy5wb3J0MjtLLnBvcnQxLm9ubWVzc2FnZT1KO3ZhciBMPWZ1bmN0aW9uKGEpe2lmKG51bGw9PT1BKUY9RT0tMSx6PSExO2Vsc2V7ej0hMDt4KGZ1bmN0aW9uKGEpe3coQik7TChhKX0pO3ZhciBiPWZ1bmN0aW9uKCl7Rz1leHBvcnRzLnVuc3RhYmxlX25vdygpK0QvMjtKKCk7Qj12KGIsMypEKX07Qj12KGIsMypEKTtpZigtMSE9PUUmJi4xPGEtRSl7dmFyIGM9YS1FOyFIJiYtMSE9PUYmJmM8RCYmRjxEJiYoRD1jPEY/RjpjLDguMzM+RCYmKEQ9OC4zMykpO0Y9Y31FPWE7Rz1hK0Q7SS5wb3N0TWVzc2FnZShudWxsKX19O2Q9ZnVuY3Rpb24oYSl7QT1hO3p8fCh6PSEwLHgoZnVuY3Rpb24oYSl7TChhKX0pKX07ZT1mdW5jdGlvbihhLGIpe0M9dihmdW5jdGlvbigpe2EoZXhwb3J0cy51bnN0YWJsZV9ub3coKSl9LGIpfTtnPWZ1bmN0aW9uKCl7dyhDKTtcbkM9LTF9fXZhciBNPW51bGwsTj1udWxsLE89bnVsbCxQPTMsUT0hMSxSPSExLFM9ITE7XG5mdW5jdGlvbiBUKGEsYil7dmFyIGM9YS5uZXh0O2lmKGM9PT1hKU09bnVsbDtlbHNle2E9PT1NJiYoTT1jKTt2YXIgZj1hLnByZXZpb3VzO2YubmV4dD1jO2MucHJldmlvdXM9Zn1hLm5leHQ9YS5wcmV2aW91cz1udWxsO2M9YS5jYWxsYmFjaztmPVA7dmFyIGw9TztQPWEucHJpb3JpdHlMZXZlbDtPPWE7dHJ5e3ZhciBoPWEuZXhwaXJhdGlvblRpbWU8PWI7c3dpdGNoKFApe2Nhc2UgMTp2YXIgaz1jKGgpO2JyZWFrO2Nhc2UgMjprPWMoaCk7YnJlYWs7Y2FzZSAzOms9YyhoKTticmVhaztjYXNlIDQ6az1jKGgpO2JyZWFrO2Nhc2UgNTprPWMoaCl9fWNhdGNoKFope3Rocm93IFo7fWZpbmFsbHl7UD1mLE89bH1pZihcImZ1bmN0aW9uXCI9PT10eXBlb2YgaylpZihiPWEuZXhwaXJhdGlvblRpbWUsYS5jYWxsYmFjaz1rLG51bGw9PT1NKU09YS5uZXh0PWEucHJldmlvdXM9YTtlbHNle2s9bnVsbDtoPU07ZG97aWYoYjw9aC5leHBpcmF0aW9uVGltZSl7az1oO2JyZWFrfWg9aC5uZXh0fXdoaWxlKGghPT1cbk0pO251bGw9PT1rP2s9TTprPT09TSYmKE09YSk7Yj1rLnByZXZpb3VzO2IubmV4dD1rLnByZXZpb3VzPWE7YS5uZXh0PWs7YS5wcmV2aW91cz1ifX1mdW5jdGlvbiBVKGEpe2lmKG51bGwhPT1OJiZOLnN0YXJ0VGltZTw9YSl7ZG97dmFyIGI9TixjPWIubmV4dDtpZihiPT09YylOPW51bGw7ZWxzZXtOPWM7dmFyIGY9Yi5wcmV2aW91cztmLm5leHQ9YztjLnByZXZpb3VzPWZ9Yi5uZXh0PWIucHJldmlvdXM9bnVsbDtWKGIsYi5leHBpcmF0aW9uVGltZSl9d2hpbGUobnVsbCE9PU4mJk4uc3RhcnRUaW1lPD1hKX19ZnVuY3Rpb24gVyhhKXtTPSExO1UoYSk7Unx8KG51bGwhPT1NPyhSPSEwLGQoWCkpOm51bGwhPT1OJiZlKFcsTi5zdGFydFRpbWUtYSkpfVxuZnVuY3Rpb24gWChhLGIpe1I9ITE7UyYmKFM9ITEsZygpKTtVKGIpO1E9ITA7dHJ5e2lmKCFhKWZvcig7bnVsbCE9PU0mJk0uZXhwaXJhdGlvblRpbWU8PWI7KVQoTSxiKSxiPWV4cG9ydHMudW5zdGFibGVfbm93KCksVShiKTtlbHNlIGlmKG51bGwhPT1NKXtkbyBUKE0sYiksYj1leHBvcnRzLnVuc3RhYmxlX25vdygpLFUoYik7d2hpbGUobnVsbCE9PU0mJiFtKCkpfWlmKG51bGwhPT1NKXJldHVybiEwO251bGwhPT1OJiZlKFcsTi5zdGFydFRpbWUtYik7cmV0dXJuITF9ZmluYWxseXtRPSExfX1mdW5jdGlvbiBZKGEpe3N3aXRjaChhKXtjYXNlIDE6cmV0dXJuLTE7Y2FzZSAyOnJldHVybiAyNTA7Y2FzZSA1OnJldHVybiAxMDczNzQxODIzO2Nhc2UgNDpyZXR1cm4gMUU0O2RlZmF1bHQ6cmV0dXJuIDVFM319XG5mdW5jdGlvbiBWKGEsYil7aWYobnVsbD09PU0pTT1hLm5leHQ9YS5wcmV2aW91cz1hO2Vsc2V7dmFyIGM9bnVsbCxmPU07ZG97aWYoYjxmLmV4cGlyYXRpb25UaW1lKXtjPWY7YnJlYWt9Zj1mLm5leHR9d2hpbGUoZiE9PU0pO251bGw9PT1jP2M9TTpjPT09TSYmKE09YSk7Yj1jLnByZXZpb3VzO2IubmV4dD1jLnByZXZpb3VzPWE7YS5uZXh0PWM7YS5wcmV2aW91cz1ifX12YXIgYWE9bjtleHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5PTE7ZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yO2V4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk9MztleHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01O2V4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHk9NDtcbmV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDphPTN9dmFyIGM9UDtQPWE7dHJ5e3JldHVybiBiKCl9ZmluYWxseXtQPWN9fTtleHBvcnRzLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oYSl7c3dpdGNoKFApe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBiPTM7YnJlYWs7ZGVmYXVsdDpiPVB9dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhKCl9ZmluYWxseXtQPWN9fTtcbmV4cG9ydHMudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaz1mdW5jdGlvbihhLGIsYyl7dmFyIGY9ZXhwb3J0cy51bnN0YWJsZV9ub3coKTtpZihcIm9iamVjdFwiPT09dHlwZW9mIGMmJm51bGwhPT1jKXt2YXIgbD1jLmRlbGF5O2w9XCJudW1iZXJcIj09PXR5cGVvZiBsJiYwPGw/ZitsOmY7Yz1cIm51bWJlclwiPT09dHlwZW9mIGMudGltZW91dD9jLnRpbWVvdXQ6WShhKX1lbHNlIGM9WShhKSxsPWY7Yz1sK2M7YT17Y2FsbGJhY2s6Yixwcmlvcml0eUxldmVsOmEsc3RhcnRUaW1lOmwsZXhwaXJhdGlvblRpbWU6YyxuZXh0Om51bGwscHJldmlvdXM6bnVsbH07aWYobD5mKXtjPWw7aWYobnVsbD09PU4pTj1hLm5leHQ9YS5wcmV2aW91cz1hO2Vsc2V7Yj1udWxsO3ZhciBoPU47ZG97aWYoYzxoLnN0YXJ0VGltZSl7Yj1oO2JyZWFrfWg9aC5uZXh0fXdoaWxlKGghPT1OKTtudWxsPT09Yj9iPU46Yj09PU4mJihOPWEpO2M9Yi5wcmV2aW91cztjLm5leHQ9Yi5wcmV2aW91cz1hO2EubmV4dD1iO2EucHJldmlvdXM9XG5jfW51bGw9PT1NJiZOPT09YSYmKFM/ZygpOlM9ITAsZShXLGwtZikpfWVsc2UgVihhLGMpLFJ8fFF8fChSPSEwLGQoWCkpO3JldHVybiBhfTtleHBvcnRzLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPWEubmV4dDtpZihudWxsIT09Yil7aWYoYT09PWIpYT09PU0/TT1udWxsOmE9PT1OJiYoTj1udWxsKTtlbHNle2E9PT1NP009YjphPT09TiYmKE49Yik7dmFyIGM9YS5wcmV2aW91cztjLm5leHQ9YjtiLnByZXZpb3VzPWN9YS5uZXh0PWEucHJldmlvdXM9bnVsbH19O2V4cG9ydHMudW5zdGFibGVfd3JhcENhbGxiYWNrPWZ1bmN0aW9uKGEpe3ZhciBiPVA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9UDtQPWI7dHJ5e3JldHVybiBhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e1A9Y319fTtleHBvcnRzLnVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsPWZ1bmN0aW9uKCl7cmV0dXJuIFB9O1xuZXhwb3J0cy51bnN0YWJsZV9zaG91bGRZaWVsZD1mdW5jdGlvbigpe3ZhciBhPWV4cG9ydHMudW5zdGFibGVfbm93KCk7VShhKTtyZXR1cm4gbnVsbCE9PU8mJm51bGwhPT1NJiZNLnN0YXJ0VGltZTw9YSYmTS5leHBpcmF0aW9uVGltZTxPLmV4cGlyYXRpb25UaW1lfHxtKCl9O2V4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50PWFhO2V4cG9ydHMudW5zdGFibGVfY29udGludWVFeGVjdXRpb249ZnVuY3Rpb24oKXtSfHxRfHwoUj0hMCxkKFgpKX07ZXhwb3J0cy51bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbj1mdW5jdGlvbigpe307ZXhwb3J0cy51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZT1mdW5jdGlvbigpe3JldHVybiBNfTtcbiIsImZ1bmN0aW9uIF9hcnJheVdpdGhIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfYXJyYXlXaXRoSG9sZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwiZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2kgPSBhcnIgJiYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyW1wiQEBpdGVyYXRvclwiXSk7XG5cbiAgaWYgKF9pID09IG51bGwpIHJldHVybjtcbiAgdmFyIF9hcnIgPSBbXTtcbiAgdmFyIF9uID0gdHJ1ZTtcbiAgdmFyIF9kID0gZmFsc2U7XG5cbiAgdmFyIF9zLCBfZTtcblxuICB0cnkge1xuICAgIGZvciAoX2kgPSBfaS5jYWxsKGFycik7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7XG5cbiAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhaztcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIF9kID0gdHJ1ZTtcbiAgICBfZSA9IGVycjtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoX2QpIHRocm93IF9lO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfYXJyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9pdGVyYWJsZVRvQXJyYXlMaW1pdDtcbm1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsiLCJmdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF9ub25JdGVyYWJsZVJlc3Q7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvcmlnaW5hbE1vZHVsZSkge1xuXHRpZiAoIW9yaWdpbmFsTW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdHZhciBtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG9yaWdpbmFsTW9kdWxlKTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJleHBvcnRzXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWVcblx0XHR9KTtcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcblx0fVxuXHRyZXR1cm4gbW9kdWxlO1xufTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uKCkge31cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQoKSB7fVxuZW1wdHlGdW5jdGlvbldpdGhSZXNldC5yZXNldFdhcm5pbmdDYWNoZSA9IGVtcHR5RnVuY3Rpb247XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIHNoaW0ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICBpZiAoc2VjcmV0ID09PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgLy8gSXQgaXMgc3RpbGwgc2FmZSB3aGVuIGNhbGxlZCBmcm9tIFJlYWN0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB0aHJvdyBlcnI7XG4gIH07XG4gIHNoaW0uaXNSZXF1aXJlZCA9IHNoaW07XG4gIGZ1bmN0aW9uIGdldFNoaW0oKSB7XG4gICAgcmV0dXJuIHNoaW07XG4gIH07XG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2Fzc2lnblwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5hc3NpZ24nKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdC5hc3NpZ247XG4iLCIvLyAxOS4xLjMuMSBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYsICdPYmplY3QnLCB7IGFzc2lnbjogcmVxdWlyZSgnLi9fb2JqZWN0LWFzc2lnbicpIH0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gMTkuMS4yLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSwgLi4uKVxudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcbnZhciBnT1BTID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcHMnKTtcbnZhciBwSUUgPSByZXF1aXJlKCcuL19vYmplY3QtcGllJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyICRhc3NpZ24gPSBPYmplY3QuYXNzaWduO1xuXG4vLyBzaG91bGQgd29yayB3aXRoIHN5bWJvbHMgYW5kIHNob3VsZCBoYXZlIGRldGVybWluaXN0aWMgcHJvcGVydHkgb3JkZXIgKFY4IGJ1Zylcbm1vZHVsZS5leHBvcnRzID0gISRhc3NpZ24gfHwgcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHZhciBBID0ge307XG4gIHZhciBCID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICB2YXIgUyA9IFN5bWJvbCgpO1xuICB2YXIgSyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbU10gPSA3O1xuICBLLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChrKSB7IEJba10gPSBrOyB9KTtcbiAgcmV0dXJuICRhc3NpZ24oe30sIEEpW1NdICE9IDcgfHwgT2JqZWN0LmtleXMoJGFzc2lnbih7fSwgQikpLmpvaW4oJycpICE9IEs7XG59KSA/IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHZhciBUID0gdG9PYmplY3QodGFyZ2V0KTtcbiAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAxO1xuICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjtcbiAgdmFyIGlzRW51bSA9IHBJRS5mO1xuICB3aGlsZSAoYUxlbiA+IGluZGV4KSB7XG4gICAgdmFyIFMgPSBJT2JqZWN0KGFyZ3VtZW50c1tpbmRleCsrXSk7XG4gICAgdmFyIGtleXMgPSBnZXRTeW1ib2xzID8gZ2V0S2V5cyhTKS5jb25jYXQoZ2V0U3ltYm9scyhTKSkgOiBnZXRLZXlzKFMpO1xuICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICB2YXIgaiA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaikge1xuICAgICAga2V5ID0ga2V5c1tqKytdO1xuICAgICAgaWYgKCFERVNDUklQVE9SUyB8fCBpc0VudW0uY2FsbChTLCBrZXkpKSBUW2tleV0gPSBTW2tleV07XG4gICAgfVxuICB9IHJldHVybiBUO1xufSA6ICRhc3NpZ247XG4iLCIvLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgICAgaWYgKHZhbHVlICE9IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykge1xuICAgICAgaWYgKE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgbm9ybWFsVmlld0JveCA9ICcwIDAgMTAyNCAxMDI0JztcbnZhciBuZXdWaWV3Qm94ID0gJzY0IDY0IDg5NiA4OTYnO1xudmFyIGZpbGwgPSAnZmlsbCc7XG52YXIgb3V0bGluZSA9ICdvdXRsaW5lJztcbnZhciB0d290b25lID0gJ3R3b3RvbmUnO1xuZnVuY3Rpb24gZ2V0Tm9kZSh2aWV3Qm94KSB7XG4gICAgdmFyIHBhdGhzID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgcGF0aHNbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRhZzogJ3N2ZycsXG4gICAgICAgIGF0dHJzOiB7IHZpZXdCb3g6IHZpZXdCb3gsIGZvY3VzYWJsZTogZmFsc2UgfSxcbiAgICAgICAgY2hpbGRyZW46IHBhdGhzLm1hcChmdW5jdGlvbiAocGF0aCkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHBhdGhbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBkOiBwYXRoWzFdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0YWc6ICdwYXRoJyxcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkOiBwYXRoXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0SWNvbihuYW1lLCB0aGVtZSwgaWNvbikge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHRoZW1lOiB0aGVtZSxcbiAgICAgICAgaWNvbjogaWNvblxuICAgIH07XG59XG5leHBvcnRzLkFjY291bnRCb29rRmlsbCA9IGdldEljb24oJ2FjY291bnQtYm9vaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0OC4zIDQyNi44bC04Ny43IDE2MS4xaDQ1LjdjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40djI5LjdoNjMuNGM1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjRWNzUyYzAgNS41LTQuNSAxMC0xMCAxMGgtNDEuM2MtNS41IDAtMTAtNC41LTEwLTEwdi01MS44aC02My4xYy01LjUgMC0xMC00LjUtMTAtMTB2LTIxLjNjMC01LjUgNC41LTEwIDEwLTEwaDYzLjF2LTI5LjdoLTYzLjFjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNDUuMmwtODgtMTYxLjFjLTIuNi00LjgtLjktMTAuOSA0LTEzLjYgMS41LS44IDMuMS0xLjIgNC44LTEuMmg0NmMzLjggMCA3LjIgMi4xIDguOSA1LjVsNzIuOSAxNDQuMyA3My4yLTE0NC4zYTEwIDEwIDAgMCAxIDguOS01LjVoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOHonKSk7XG5leHBvcnRzLkFsZXJ0RmlsbCA9IGdldEljb24oJ2FsZXJ0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAyNDRjMTc2LjE4IDAgMzE5IDE0Mi44MiAzMTkgMzE5djIzM2EzMiAzMiAwIDAgMS0zMiAzMkgyMjVhMzIgMzIgMCAwIDEtMzItMzJWNTYzYzAtMTc2LjE4IDE0Mi44Mi0zMTkgMzE5LTMxOXpNNDg0IDY4aDU2YTggOCAwIDAgMSA4IDh2OTZhOCA4IDAgMCAxLTggOGgtNTZhOCA4IDAgMCAxLTgtOFY3NmE4IDggMCAwIDEgOC04ek0xNzcuMjUgMTkxLjY2YTggOCAwIDAgMSAxMS4zMiAwbDY3Ljg4IDY3Ljg4YTggOCAwIDAgMSAwIDExLjMxbC0zOS42IDM5LjZhOCA4IDAgMCAxLTExLjMxIDBsLTY3Ljg4LTY3Ljg4YTggOCAwIDAgMSAwLTExLjMxbDM5LjYtMzkuNnptNjY5LjYgMGwzOS42IDM5LjZhOCA4IDAgMCAxIDAgMTEuM2wtNjcuODggNjcuOWE4IDggMCAwIDEtMTEuMzIgMGwtMzkuNi0zOS42YTggOCAwIDAgMSAwLTExLjMybDY3Ljg5LTY3Ljg4YTggOCAwIDAgMSAxMS4zMSAwek0xOTIgODkyaDY0MGEzMiAzMiAwIDAgMSAzMiAzMnYyNGE4IDggMCAwIDEtOCA4SDE2OGE4IDggMCAwIDEtOC04di0yNGEzMiAzMiAwIDAgMSAzMi0zMnptMTQ4LTMxN3YyNTNoNjRWNTc1aC02NHonKSk7XG5leHBvcnRzLkFsaXBheVNxdWFyZUZpbGwgPSBnZXRJY29uKCdhbGlwYXktc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwOC42IDU0NS43Yy0xOS44IDItNTcuMSAxMC43LTc3LjQgMjguNi02MSA1My0yNC41IDE1MCA5OSAxNTAgNzEuOCAwIDE0My41LTQ1LjcgMTk5LjgtMTE5LTgwLjItMzguOS0xNDguMS02Ni44LTIyMS40LTU5LjZ6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptMjkuNCA2NjMuMlM3MDMgNjg5LjQgNTk4LjcgNjM5LjVDNTI4LjggNzI1LjIgNDM4LjYgNzc3LjMgMzQ1IDc3Ny4zYy0xNTguNCAwLTIxMi4xLTEzOC4xLTEzNy4yLTIyOSAxNi4zLTE5LjggNDQuMi0zOC43IDg3LjMtNDkuNCA2Ny41LTE2LjUgMTc1IDEwLjMgMjc1LjcgNDMuNCAxOC4xLTMzLjMgMzMuNC02OS45IDQ0LjctMTA4LjlIMzA1LjFWNDAyaDE2MHYtNTYuMkgyNzEuM3YtMzEuM2gxOTMuOHYtODAuMXMwLTEzLjUgMTMuNy0xMy41SDU1N3Y5My42aDE5MS43djMxLjNINTU3LjFWNDAyaDE1Ni40Yy0xNSA2MS4xLTM3LjcgMTE3LjQtNjYuMiAxNjYuOCA0Ny41IDE3LjEgOTAuMSAzMy4zIDEyMS44IDQzLjkgMTE0LjMgMzguMiAxNDAuMiA0MC4yIDE0MC4yIDQwLjJ2MTIyLjN6JykpO1xuZXhwb3J0cy5BbGl3YW5nd2FuZ0ZpbGwgPSBnZXRJY29uKCdhbGl3YW5nd2FuZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjguMiAzNzcuNGMtMTguOS00NS4xLTQ2LjMtODUuNi04MS4yLTEyMC42YTM3Ny4yNiAzNzcuMjYgMCAwIDAtMTIwLjUtODEuMkEzNzUuNjUgMzc1LjY1IDAgMCAwIDUxOSAxNDUuOGMtNDEuOSAwLTgyLjkgNi43LTEyMS45IDIwQzMwNiAxMjMuMyAyMDAuOCAxMjAgMTcwLjYgMTIwYy0yLjIgMC03LjQgMC05LjQuMi0xMS45LjQtMjIuOCA2LjUtMjkuMiAxNi40LTYuNSA5LjktNy43IDIyLjQtMy40IDMzLjVsNjQuMyAxNjEuNmEzNzguNTkgMzc4LjU5IDAgMCAwLTUyLjggMTkzLjJjMCA1MS40IDEwIDEwMSAyOS44IDE0Ny42IDE4LjkgNDUgNDYuMiA4NS42IDgxLjIgMTIwLjUgMzQuNyAzNC44IDc1LjQgNjIuMSAxMjAuNSA4MS4yQzQxOC4zIDg5NCA0NjcuOSA5MDQgNTE5IDkwNGM1MS4zIDAgMTAwLjktMTAgMTQ3LjctMjkuOCA0NC45LTE4LjkgODUuNS00Ni4zIDEyMC40LTgxLjIgMzQuNy0zNC44IDYyLjEtNzUuNCA4MS4yLTEyMC42YTM3Ni41IDM3Ni41IDAgMCAwIDI5LjgtMTQ3LjZjLS4yLTUxLjItMTAuMS0xMDAuOC0yOS45LTE0Ny40em0tMzI1LjIgNzljMCAyMC40LTE2LjYgMzcuMS0zNy4xIDM3LjEtMjAuNCAwLTM3LjEtMTYuNy0zNy4xLTM3LjF2LTU1LjFjMC0yMC40IDE2LjYtMzcuMSAzNy4xLTM3LjEgMjAuNCAwIDM3LjEgMTYuNiAzNy4xIDM3LjF2NTUuMXptMTc1LjIgMGMwIDIwLjQtMTYuNiAzNy4xLTM3LjEgMzcuMVM2NDQgNDc2LjggNjQ0IDQ1Ni40di01NS4xYzAtMjAuNCAxNi43LTM3LjEgMzcuMS0zNy4xIDIwLjQgMCAzNy4xIDE2LjYgMzcuMSAzNy4xdjU1LjF6JykpO1xuZXhwb3J0cy5BbGlwYXlDaXJjbGVGaWxsID0gZ2V0SWNvbignYWxpcGF5LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDguNiA1NDUuN2MtMTkuOCAyLTU3LjEgMTAuNy03Ny40IDI4LjYtNjEgNTMtMjQuNSAxNTAgOTkgMTUwIDcxLjggMCAxNDMuNS00NS43IDE5OS44LTExOS04MC4yLTM4LjktMTQ4LjEtNjYuOC0yMjEuNC01OS42em00NjAuNSA2N2MxMDAuMSAzMy40IDE1NC43IDQzIDE2Ni43IDQ0LjhBNDQ1LjkgNDQ1LjkgMCAwIDAgOTYwIDUxMmMwLTI0Ny40LTIwMC42LTQ0OC00NDgtNDQ4UzY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OGMxNTUuOSAwIDI5My4yLTc5LjcgMzczLjUtMjAwLjUtNzUuNi0yOS44LTIxMy42LTg1LTI4Ni44LTEyMC4xLTY5LjkgODUuNy0xNjAuMSAxMzcuOC0yNTMuNyAxMzcuOC0xNTguNCAwLTIxMi4xLTEzOC4xLTEzNy4yLTIyOSAxNi4zLTE5LjggNDQuMi0zOC43IDg3LjMtNDkuNCA2Ny41LTE2LjUgMTc1IDEwLjMgMjc1LjcgNDMuNCAxOC4xLTMzLjMgMzMuNC02OS45IDQ0LjctMTA4LjlIMzA1LjFWNDAyaDE2MHYtNTYuMkgyNzEuM3YtMzEuM2gxOTMuOHYtODAuMXMwLTEzLjUgMTMuNy0xMy41SDU1N3Y5My42aDE5MS43djMxLjNINTU3LjFWNDAyaDE1Ni40Yy0xNSA2MS4xLTM3LjcgMTE3LjQtNjYuMiAxNjYuOCA0Ny41IDE3LjEgOTAuMSAzMy4zIDEyMS44IDQzLjl6JykpO1xuZXhwb3J0cy5BbWF6b25DaXJjbGVGaWxsID0gZ2V0SWNvbignYW1hem9uLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODUgNDY3LjVjLTExLjYgNC45LTIwLjkgMTIuMi0yNy44IDIyLTYuOSA5LjgtMTAuNCAyMS42LTEwLjQgMzUuNSAwIDE3LjggNy41IDMxLjUgMjIuNCA0MS4yIDE0LjEgOS4xIDI4LjkgMTEuNCA0NC40IDYuOCAxNy45LTUuMiAzMC0xNy45IDM2LjQtMzguMSAzLTkuMyA0LjUtMTkuNyA0LjUtMzEuM3YtNTAuMmMtMTIuNi40LTI0LjQgMS42LTM1LjUgMy43LTExLjEgMi4xLTIyLjQgNS42LTM0IDEwLjR6TTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0zNS44IDI2Mi43Yy03LjItMTAuOS0yMC4xLTE2LjQtMzguNy0xNi40LTEuMyAwLTMgLjEtNS4zLjMtMi4yLjItNi42IDEuNS0xMi45IDMuN2E3OS40IDc5LjQgMCAwIDAtMTcuOSA5LjFjLTUuNSAzLjgtMTEuNSAxMC0xOCAxOC40LTYuNCA4LjUtMTEuNSAxOC40LTE1LjMgMjkuOGwtOTQtOC40YzAtMTIuNCAyLjQtMjQuNyA3LTM2LjkgNC43LTEyLjIgMTEuOC0yMy45IDIxLjQtMzUgOS42LTExLjIgMjEuMS0yMSAzNC41LTI5LjQgMTMuNC04LjUgMjkuNi0xNS4yIDQ4LjQtMjAuMyAxOC45LTUuMSAzOS4xLTcuNiA2MC45LTcuNiAyMS4zIDAgNDAuNiAyLjYgNTcuOCA3LjcgMTcuMiA1LjIgMzEuMSAxMS41IDQxLjQgMTkuMWExMTcgMTE3IDAgMCAxIDI1LjkgMjUuN2M2LjkgOS42IDExLjcgMTguNSAxNC40IDI2LjcgMi43IDguMiA0IDE1LjcgNCAyMi44djE4Mi41YzAgNi40IDEuNCAxMyA0LjMgMTkuOCAyLjkgNi44IDYuMyAxMi44IDEwLjIgMTggMy45IDUuMiA3LjkgOS45IDEyIDE0LjMgNC4xIDQuMyA3LjYgNy43IDEwLjYgOS45bDQuMSAzLjQtNzIuNSA2OS40Yy04LjUtNy43LTE2LjktMTUuNC0yNS4yLTIzLjQtOC4zLTgtMTQuNS0xNC0xOC41LTE4LjFsLTYuMS02LjJjLTIuNC0yLjMtNS01LjctOC0xMC4yLTguMSAxMi4yLTE4LjUgMjIuOC0zMS4xIDMxLjgtMTIuNyA5LTI2LjMgMTUuNi00MC43IDE5LjctMTQuNSA0LjEtMjkuNCA2LjUtNDQuNyA3LjEtMTUuMy42LTMwLTEuNS00My45LTYuNS0xMy45LTUtMjYuNS0xMS43LTM3LjYtMjAuMy0xMS4xLTguNi0xOS45LTIwLjItMjYuNS0zNS02LjYtMTQuOC05LjktMzEuNS05LjktNTAuNCAwLTE3LjQgMy0zMy4zIDguOS00Ny43IDYtMTQuNSAxMy42LTI2LjUgMjMtMzYuMSA5LjQtOS42IDIwLjctMTguMiAzNC0yNS43czI2LjQtMTMuNCAzOS4yLTE3LjdjMTIuOC00LjIgMjYuNi03LjggNDEuNS0xMC43IDE0LjktMi45IDI3LjYtNC44IDM4LjItNS43IDEwLjYtLjkgMjEuMi0xLjYgMzEuOC0ydi0zOS40YzAtMTMuNS0yLjMtMjMuNS02LjctMzAuMXptMTgwLjUgMzc5LjZjLTIuOCAzLjMtNy41IDcuOC0xNC4xIDEzLjVzLTE2LjggMTIuNy0zMC41IDIxLjFjLTEzLjcgOC40LTI4LjggMTYtNDUgMjIuOS0xNi4zIDYuOS0zNi4zIDEyLjktNjAuMSAxOC0yMy43IDUuMS00OC4yIDcuNi03My4zIDcuNi0yNS40IDAtNTAuNy0zLjItNzYuMS05LjYtMjUuNC02LjQtNDcuNi0xNC4zLTY2LjgtMjMuNy0xOS4xLTkuNC0zNy42LTIwLjItNTUuMS0zMi4yLTE3LjYtMTIuMS0zMS43LTIyLjktNDIuNC0zMi41LTEwLjYtOS42LTE5LjYtMTguNy0yNi44LTI3LjEtMS43LTEuOS0yLjgtMy42LTMuMi01LjEtLjQtMS41LS4zLTIuOC4zLTMuNy42LS45IDEuNS0xLjYgMi42LTIuMmE3LjQyIDcuNDIgMCAwIDEgNy40LjhjNDAuOSAyNC4yIDcyLjkgNDEuMyA5NS45IDUxLjQgODIuOSAzNi40IDE2OCA0NS43IDI1NS4zIDI3LjkgNDAuNS04LjMgODIuMS0yMi4yIDEyNC45LTQxLjggMy4yLTEuMiA2LTEuNSA4LjMtLjkgMi4zLjYgMy41IDIuNCAzLjUgNS40IDAgMi44LTEuNiA2LjMtNC44IDEwLjJ6bTU5LjktMjljLTEuOCAxMS4xLTQuOSAyMS42LTkuMSAzMS44LTcuMiAxNy4xLTE2LjMgMzAtMjcuMSAzOC40LTMuNiAyLjktNi40IDMuOC04LjMgMi44LTEuOS0xLTEuOS0zLjUgMC03LjQgNC41LTkuMyA5LjItMjEuOCAxNC4yLTM3LjcgNS0xNS44IDUuNy0yNiAyLjEtMzAuNS0xLjEtMS41LTIuNy0yLjYtNS0zLjYtMi4yLS45LTUuMS0xLjUtOC42LTEuOXMtNi43LS42LTkuNC0uOGMtMi44LS4yLTYuNS0uMi0xMS4yIDAtNC43LjItOCAuNC0xMC4xLjZhODc0LjQgODc0LjQgMCAwIDEtMTcuMSAxLjVjLTEuMy4yLTIuNy40LTQuMS41LTEuNS4xLTIuNy4yLTMuNS4zbC0yLjcuM2MtMSAuMS0xLjcuMi0yLjIuMmgtMy4ybC0xLS4yLS42LS41LS41LS45Yy0xLjMtMy4zIDMuNy03LjQgMTUtMTIuNHMyMi4zLTguMSAzMi45LTkuM2M5LjgtMS41IDIxLjMtMS41IDM0LjUtLjNzMjEuMyAzLjcgMjQuMyA3LjRjMi4zIDMuNSAyLjUgMTAuNy43IDIxLjd6JykpO1xuZXhwb3J0cy5BbmRyb2lkRmlsbCA9IGdldEljb24oJ2FuZHJvaWQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjcwLjEgNzQxLjdjMCAyMy40IDE5LjEgNDIuNSA0Mi42IDQyLjVoNDguN3YxMjAuNGMwIDMwLjUgMjQuNSA1NS40IDU0LjYgNTUuNCAzMC4yIDAgNTQuNi0yNC44IDU0LjYtNTUuNFY3ODQuMWg4NXYxMjAuNGMwIDMwLjUgMjQuNSA1NS40IDU0LjYgNTUuNCAzMC4yIDAgNTQuNi0yNC44IDU0LjYtNTUuNFY3ODQuMWg0OC43YzIzLjUgMCA0Mi42LTE5LjEgNDIuNi00Mi41VjM0Ni40aC00ODZ2Mzk1LjN6bTM1Ny4xLTYwMC4xbDQ0LjktNjVjMi42LTMuOCAyLTguOS0xLjUtMTEuNC0zLjUtMi40LTguNS0xLjItMTEuMSAyLjZsLTQ2LjYgNjcuNmMtMzAuNy0xMi4xLTY0LjktMTguOC0xMDAuOC0xOC44LTM1LjkgMC03MC4xIDYuNy0xMDAuOCAxOC44bC00Ni42LTY3LjVjLTIuNi0zLjgtNy42LTUuMS0xMS4xLTIuNi0zLjUgMi40LTQuMSA3LjQtMS41IDExLjRsNDQuOSA2NWMtNzEuNCAzMy4yLTEyMS40IDk2LjEtMTI3LjggMTY5LjZoNDg2Yy02LjYtNzMuNi01Ni43LTEzNi41LTEyOC0xNjkuN3pNNDA5LjUgMjQ0LjFhMjYuOSAyNi45IDAgMSAxIDI2LjktMjYuOSAyNi45NyAyNi45NyAwIDAgMS0yNi45IDI2Ljl6bTIwOC40IDBhMjYuOSAyNi45IDAgMSAxIDI2LjktMjYuOSAyNi45NyAyNi45NyAwIDAgMS0yNi45IDI2Ljl6bTIyMy40IDEwMC43Yy0zMC4yIDAtNTQuNiAyNC44LTU0LjYgNTUuNHYyMTYuNGMwIDMwLjUgMjQuNSA1NS40IDU0LjYgNTUuNCAzMC4yIDAgNTQuNi0yNC44IDU0LjYtNTUuNFY0MDAuMWMuMS0zMC42LTI0LjMtNTUuMy01NC42LTU1LjN6bS02NTguNiAwYy0zMC4yIDAtNTQuNiAyNC44LTU0LjYgNTUuNHYyMTYuNGMwIDMwLjUgMjQuNSA1NS40IDU0LjYgNTUuNCAzMC4yIDAgNTQuNi0yNC44IDU0LjYtNTUuNFY0MDAuMWMwLTMwLjYtMjQuNS01NS4zLTU0LjYtNTUuM3onKSk7XG5leHBvcnRzLkFtYXpvblNxdWFyZUZpbGwgPSBnZXRJY29uKCdhbWF6b24tc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTQ3LjggMzI2LjdjLTcuMi0xMC45LTIwLjEtMTYuNC0zOC43LTE2LjQtMS4zIDAtMyAuMS01LjMuMy0yLjIuMi02LjYgMS41LTEyLjkgMy43YTc5LjQgNzkuNCAwIDAgMC0xNy45IDkuMWMtNS41IDMuOC0xMS41IDEwLTE4IDE4LjQtNi40IDguNS0xMS41IDE4LjQtMTUuMyAyOS44bC05NC04LjRjMC0xMi40IDIuNC0yNC43IDctMzYuOXMxMS44LTIzLjkgMjEuNC0zNWM5LjYtMTEuMiAyMS4xLTIxIDM0LjUtMjkuNCAxMy40LTguNSAyOS42LTE1LjIgNDguNC0yMC4zIDE4LjktNS4xIDM5LjEtNy42IDYwLjktNy42IDIxLjMgMCA0MC42IDIuNiA1Ny44IDcuNyAxNy4yIDUuMiAzMS4xIDExLjUgNDEuNCAxOS4xYTExNyAxMTcgMCAwIDEgMjUuOSAyNS43YzYuOSA5LjYgMTEuNyAxOC41IDE0LjQgMjYuNyAyLjcgOC4yIDQgMTUuNyA0IDIyLjh2MTgyLjVjMCA2LjQgMS40IDEzIDQuMyAxOS44IDIuOSA2LjggNi4zIDEyLjggMTAuMiAxOCAzLjkgNS4yIDcuOSA5LjkgMTIgMTQuMyA0LjEgNC4zIDcuNiA3LjcgMTAuNiA5LjlsNC4xIDMuNC03Mi41IDY5LjRjLTguNS03LjctMTYuOS0xNS40LTI1LjItMjMuNC04LjMtOC0xNC41LTE0LTE4LjUtMTguMWwtNi4xLTYuMmMtMi40LTIuMy01LTUuNy04LTEwLjItOC4xIDEyLjItMTguNSAyMi44LTMxLjEgMzEuOC0xMi43IDktMjYuMyAxNS42LTQwLjcgMTkuNy0xNC41IDQuMS0yOS40IDYuNS00NC43IDcuMS0xNS4zLjYtMzAtMS41LTQzLjktNi41LTEzLjktNS0yNi41LTExLjctMzcuNi0yMC4zLTExLjEtOC42LTE5LjktMjAuMi0yNi41LTM1LTYuNi0xNC44LTkuOS0zMS41LTkuOS01MC40IDAtMTcuNCAzLTMzLjMgOC45LTQ3LjcgNi0xNC41IDEzLjYtMjYuNSAyMy0zNi4xIDkuNC05LjYgMjAuNy0xOC4yIDM0LTI1LjdzMjYuNC0xMy40IDM5LjItMTcuN2MxMi44LTQuMiAyNi42LTcuOCA0MS41LTEwLjcgMTQuOS0yLjkgMjcuNi00LjggMzguMi01LjcgMTAuNi0uOSAyMS4yLTEuNiAzMS44LTJ2LTM5LjRjMC0xMy41LTIuMy0yMy41LTYuNy0zMC4xem0xODAuNSAzNzkuNmMtMi44IDMuMy03LjUgNy44LTE0LjEgMTMuNXMtMTYuOCAxMi43LTMwLjUgMjEuMWMtMTMuNyA4LjQtMjguOCAxNi00NSAyMi45LTE2LjMgNi45LTM2LjMgMTIuOS02MC4xIDE4LTIzLjcgNS4xLTQ4LjIgNy42LTczLjMgNy42LTI1LjQgMC01MC43LTMuMi03Ni4xLTkuNi0yNS40LTYuNC00Ny42LTE0LjMtNjYuOC0yMy43LTE5LjEtOS40LTM3LjYtMjAuMi01NS4xLTMyLjItMTcuNi0xMi4xLTMxLjctMjIuOS00Mi40LTMyLjUtMTAuNi05LjYtMTkuNi0xOC43LTI2LjgtMjcuMS0xLjctMS45LTIuOC0zLjYtMy4yLTUuMS0uNC0xLjUtLjMtMi44LjMtMy43LjYtLjkgMS41LTEuNiAyLjYtMi4yYTcuNDIgNy40MiAwIDAgMSA3LjQuOGM0MC45IDI0LjIgNzIuOSA0MS4zIDk1LjkgNTEuNCA4Mi45IDM2LjQgMTY4IDQ1LjcgMjU1LjMgMjcuOSA0MC41LTguMyA4Mi4xLTIyLjIgMTI0LjktNDEuOCAzLjItMS4yIDYtMS41IDguMy0uOSAyLjMuNiAzLjUgMi40IDMuNSA1LjQgMCAyLjgtMS42IDYuMy00LjggMTAuMnptNTkuOS0yOWMtMS44IDExLjEtNC45IDIxLjYtOS4xIDMxLjgtNy4yIDE3LjEtMTYuMyAzMC0yNy4xIDM4LjQtMy42IDIuOS02LjQgMy44LTguMyAyLjgtMS45LTEtMS45LTMuNSAwLTcuNCA0LjUtOS4zIDkuMi0yMS44IDE0LjItMzcuNyA1LTE1LjggNS43LTI2IDIuMS0zMC41LTEuMS0xLjUtMi43LTIuNi01LTMuNi0yLjItLjktNS4xLTEuNS04LjYtMS45cy02LjctLjYtOS40LS44Yy0yLjgtLjItNi41LS4yLTExLjIgMC00LjcuMi04IC40LTEwLjEuNmE4NzQuNCA4NzQuNCAwIDAgMS0xNy4xIDEuNWMtMS4zLjItMi43LjQtNC4xLjUtMS41LjEtMi43LjItMy41LjNsLTIuNy4zYy0xIC4xLTEuNy4yLTIuMi4yaC0zLjJsLTEtLjItLjYtLjUtLjUtLjljLTEuMy0zLjMgMy43LTcuNCAxNS0xMi40czIyLjMtOC4xIDMyLjktOS4zYzkuOC0xLjUgMjEuMy0xLjUgMzQuNS0uM3MyMS4zIDMuNyAyNC4zIDcuNGMyLjMgMy41IDIuNSAxMC43LjcgMjEuN3pNNDg1IDQ2Ny41Yy0xMS42IDQuOS0yMC45IDEyLjItMjcuOCAyMi02LjkgOS44LTEwLjQgMjEuNi0xMC40IDM1LjUgMCAxNy44IDcuNSAzMS41IDIyLjQgNDEuMiAxNC4xIDkuMSAyOC45IDExLjQgNDQuNCA2LjggMTcuOS01LjIgMzAtMTcuOSAzNi40LTM4LjEgMy05LjMgNC41LTE5LjcgNC41LTMxLjN2LTUwLjJjLTEyLjYuNC0yNC40IDEuNi0zNS41IDMuNy0xMS4xIDIuMS0yMi40IDUuNi0zNCAxMC40eicpKTtcbmV4cG9ydHMuQXBpRmlsbCA9IGdldEljb24oJ2FwaScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTcuNyAxNDguOGwtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwIDAtMTEyLjEtMzQuM2MtNTEuMiAwLTEwMi40IDE5LjUtMTQxLjUgNTguNkw0MzIuMyAzMDguN2E4LjAzIDguMDMgMCAwIDAgMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek01NzguOSA1NDYuN2E4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUwMSA2MTMuMyA0MTAuNyA1MjNsNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNDQxIDQwOC42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMzYzIDQ3NS4zbC00My00M2E3Ljg1IDcuODUgMCAwIDAtNS43LTIuM2MtMiAwLTQuMS44LTUuNyAyLjNMMjA2LjggNTM0LjJjLTY4LjkgNjguOS03NyAxNzUuNy0yNC4zIDI1My41bC03Ni4xIDc2LjFhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi40IDQyLjRjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjNzNC4xLS44IDUuNy0yLjNsNzYuMS03Ni4xYzMzLjcgMjIuOSA3Mi45IDM0LjMgMTEyLjEgMzQuMyA1MS4yIDAgMTAyLjQtMTkuNSAxNDEuNS01OC42bDEwMS45LTEwMS45YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTQzLTQzIDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zNi42LTM2LjJ6JykpO1xuZXhwb3J0cy5BcHBzdG9yZUZpbGwgPSBnZXRJY29uKCdhcHBzdG9yZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMTQ0SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0wIDQwMEg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnpNNDY0IDE0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWMTYwYzAtOC44LTcuMi0xNi0xNi0xNnptMCA0MDBIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6JykpO1xuZXhwb3J0cy5BdWRpb0ZpbGwgPSBnZXRJY29uKCdhdWRpbycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjI0YzkzLjkgMCAxNzAtNzUuMiAxNzAtMTY4VjIzMmMwLTkyLjgtNzYuMS0xNjgtMTcwLTE2OHMtMTcwIDc1LjItMTcwIDE2OHYyMjRjMCA5Mi44IDc2LjEgMTY4IDE3MCAxNjh6bTMzMC0xNzBjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTRTMjU4IDU5NC4zIDI1OCA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTY4LjcgMTI2LjYgMzA3LjkgMjkwIDMyNy42Vjg4NEgzMjYuN2MtMTMuNyAwLTI0LjcgMTQuMy0yNC43IDMydjM2YzAgNC40IDIuOCA4IDYuMiA4aDQwNy42YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTM2YzAtMTcuNy0xMS0zMi0yNC43LTMySDU0OFY3ODIuMWMxNjUuMy0xOCAyOTQtMTU4IDI5NC0zMjguMXonKSk7XG5leHBvcnRzLkFwcGxlRmlsbCA9IGdldEljb24oJ2FwcGxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0Ny40IDUzNS43Yy0uNC02OC4yIDMwLjUtMTE5LjYgOTIuOS0xNTcuNS0zNC45LTUwLTg3LjctNzcuNS0xNTcuMy04Mi44LTY1LjktNS4yLTEzOCAzOC40LTE2NC40IDM4LjQtMjcuOSAwLTkxLjctMzYuNi0xNDEuOS0zNi42QzI3My4xIDI5OC44IDE2MyAzNzkuOCAxNjMgNTQ0LjZjMCA0OC43IDguOSA5OSAyNi43IDE1MC44IDIzLjggNjguMiAxMDkuNiAyMzUuMyAxOTkuMSAyMzIuNiA0Ni44LTEuMSA3OS45LTMzLjIgMTQwLjgtMzMuMiA1OS4xIDAgODkuNyAzMy4yIDE0MS45IDMzLjIgOTAuMy0xLjMgMTY3LjktMTUzLjIgMTkwLjUtMjIxLjYtMTIxLjEtNTcuMS0xMTQuNi0xNjcuMi0xMTQuNi0xNzAuN3ptLTEwNS4xLTMwNWM1MC43LTYwLjIgNDYuMS0xMTUgNDQuNi0xMzQuNy00NC44IDIuNi05Ni42IDMwLjUtMTI2LjEgNjQuOC0zMi41IDM2LjgtNTEuNiA4Mi4zLTQ3LjUgMTMzLjYgNDguNCAzLjcgOTIuNi0yMS4yIDEyOS02My43eicpKTtcbmV4cG9ydHMuQmFja3dhcmRGaWxsID0gZ2V0SWNvbignYmFja3dhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNDg1LjYgMjQ5LjlMMTk4LjIgNDk4Yy04LjMgNy4xLTguMyAyMC44IDAgMjcuOWwyODcuNCAyNDguMmMxMC43IDkuMiAyNi40LjkgMjYuNC0xNFYyNjMuOGMwLTE0LjgtMTUuNy0yMy4yLTI2LjQtMTMuOXptMzIwIDBMNTE4LjIgNDk4YTE4LjYgMTguNiAwIDAgMC02LjIgMTRjMCA1LjIgMi4xIDEwLjQgNi4yIDE0bDI4Ny40IDI0OC4yYzEwLjcgOS4yIDI2LjQuOSAyNi40LTE0VjI2My44YzAtMTQuOC0xNS43LTIzLjItMjYuNC0xMy45eicpKTtcbmV4cG9ydHMuQmFua0ZpbGwgPSBnZXRJY29uKCdiYW5rJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5NCA0NjJjMzAuOSAwIDQzLjgtMzkuNyAxOC43LTU4TDUzMC44IDEyNi4yYTMxLjgxIDMxLjgxIDAgMCAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTM4MSA4MzZIMjY0VjQ2MmgxMTd2Mzc0em0xODkgMEg0NTNWNDYyaDExN3YzNzR6bTE5MCAwSDY0MlY0NjJoMTE4djM3NHonKSk7XG5leHBvcnRzLkJlaGFuY2VDaXJjbGVGaWxsID0gZ2V0SWNvbignYmVoYW5jZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDIwLjMgNDcwLjNjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMCAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xYTUwLjUgNTAuNSAwIDAgMCAxNy44LTcuMmM1LjEtMy4zIDkuMi03LjggMTIuMy0xMy42IDMtNS44IDQuNS0xMy4yIDQuNS0yMi4xIDAtMTcuNy01LTMwLjItMTQuOS0zNy44ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptODYuNSAyODYuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwIDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwIDEtNDQuNiA1LjdIMjM2VjM0Mi4xaDE2MWMxNi4zIDAgMzEuMSAxLjUgNDQuNiA0LjMgMTMuNCAyLjggMjQuOCA3LjYgMzQuNCAxNC4xIDkuNSA2LjUgMTcgMTUuMiAyMi4zIDI2IDUuMiAxMC43IDcuOSAyNC4xIDcuOSA0MCAwIDE3LjItMy45IDMxLjQtMTEuNyA0Mi45LTcuOSAxMS41LTE5LjMgMjAuOC0zNC44IDI4LjEgMjEuMSA2IDM2LjYgMTYuNyA0Ni44IDMxLjcgMTAuNCAxNS4yIDE1LjUgMzMuNCAxNS41IDU0LjggMCAxNy40LTMuMyAzMi4zLTEwIDQ0Ljh6TTc5MC44IDU3Nkg2MTIuNGMwIDE5LjQgNi43IDM4IDE2LjggNDggMTAuMiA5LjkgMjQuOCAxNC45IDQzLjkgMTQuOSAxMy44IDAgMjUuNS0zLjUgMzUuNS0xMC40IDkuOS02LjkgMTUuOS0xNC4yIDE4LjEtMjEuOGg1OS44Yy05LjYgMjkuNy0yNC4yIDUwLjktNDQgNjMuNy0xOS42IDEyLjgtNDMuNiAxOS4yLTcxLjUgMTkuMi0xOS41IDAtMzctMy4yLTUyLjctOS4zLTE1LjEtNS45LTI4LjctMTQuOS0zOS45LTI2LjVhMTIxLjIgMTIxLjIgMCAwIDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwIDEgMzguNiAzMi44YzEwLjEgMTMuNyAxNy4yIDI5LjMgMjEuNyA0Ni45IDQuMyAxNy4zIDUuOCAzNS41IDQuNiA1NC43em0tMTIyLTk1LjZjLTEwLjggMC0xOS45IDEuOS0yNi45IDUuNi03IDMuNy0xMi44IDguMy0xNy4yIDEzLjZhNDguNCA0OC40IDAgMCAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3onKSk7XG5leHBvcnRzLkJlbGxGaWxsID0gZ2V0SWNvbignYmVsbCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MTYgNzY4aC0yNFY0MjhjMC0xNDEuMS0xMDQuMy0yNTcuOC0yNDAtMjc3LjJWMTEyYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwdjM4LjhDMzM2LjMgMTcwLjIgMjMyIDI4Ni45IDIzMiA0Mjh2MzQwaC0yNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDIxNmMwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyaDIxNmM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTIgODg4Yy0yNi41IDAtNDgtMjEuNS00OC00OGg5NmMwIDI2LjUtMjEuNSA0OC00OCA0OHonKSk7XG5leHBvcnRzLkJlaGFuY2VTcXVhcmVGaWxsID0gZ2V0SWNvbignYmVoYW5jZS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01OTguNSAzNTAuOWgxMzguNHYzMy43SDU5OC41di0zMy43ek01MTIgNjI4LjhhODkuNTIgODkuNTIgMCAwIDEtMjcgMzFjLTExLjggOC4yLTI0LjkgMTQuMi0zOC44IDE3LjdhMTY3LjQgMTY3LjQgMCAwIDEtNDQuNiA1LjdIMjM2VjM0Mi4xaDE2MWMxNi4zIDAgMzEuMSAxLjUgNDQuNiA0LjMgMTMuNCAyLjggMjQuOCA3LjYgMzQuNCAxNC4xIDkuNSA2LjUgMTcgMTUuMiAyMi4zIDI2IDUuMiAxMC43IDcuOSAyNC4xIDcuOSA0MCAwIDE3LjItMy45IDMxLjQtMTEuNyA0Mi45LTcuOSAxMS41LTE5LjMgMjAuOC0zNC44IDI4LjEgMjEuMSA2IDM2LjYgMTYuNyA0Ni44IDMxLjcgMTAuNCAxNS4yIDE1LjUgMzMuNCAxNS41IDU0LjggMCAxNy40LTMuMyAzMi4zLTEwIDQ0Ljh6TTc5MC44IDU3Nkg2MTIuNGMwIDE5LjQgNi43IDM4IDE2LjggNDggMTAuMiA5LjkgMjQuOCAxNC45IDQzLjkgMTQuOSAxMy44IDAgMjUuNS0zLjUgMzUuNS0xMC40IDkuOS02LjkgMTUuOS0xNC4yIDE4LjEtMjEuOGg1OS44Yy05LjYgMjkuNy0yNC4yIDUwLjktNDQgNjMuNy0xOS42IDEyLjgtNDMuNiAxOS4yLTcxLjUgMTkuMi0xOS41IDAtMzctMy4yLTUyLjctOS4zLTE1LjEtNS45LTI4LjctMTQuOS0zOS45LTI2LjVhMTIxLjIgMTIxLjIgMCAwIDEtMjUuMS00MS4yYy02LjEtMTYuOS05LjEtMzQuNy04LjktNTIuNiAwLTE4LjUgMy4xLTM1LjcgOS4xLTUxLjcgMTEuNS0zMS4xIDM1LjQtNTYgNjUuOS02OC45IDE2LjMtNi44IDMzLjgtMTAuMiA1MS41LTEwIDIxIDAgMzkuMiA0IDU1IDEyLjJhMTExLjYgMTExLjYgMCAwIDEgMzguNiAzMi44YzEwLjEgMTMuNyAxNy4yIDI5LjMgMjEuNyA0Ni45IDQuMyAxNy4zIDUuOCAzNS41IDQuNiA1NC43em0tMTIyLTk1LjZjLTEwLjggMC0xOS45IDEuOS0yNi45IDUuNi03IDMuNy0xMi44IDguMy0xNy4yIDEzLjZhNDguNCA0OC40IDAgMCAwLTkuMSAxNy40Yy0xLjYgNS4zLTIuNyAxMC43LTMuMSAxNi4ySDcyM2MtMS42LTE3LjMtNy42LTMwLjEtMTUuNi0zOS4xLTguNC04LjktMjEuOS0xMy43LTM4LjYtMTMuN3ptLTI0OC41LTEwLjFjOC43LTYuMyAxMi45LTE2LjcgMTIuOS0zMSAuMy02LjgtMS4xLTEzLjUtNC4xLTE5LjYtMi43LTQuOS02LjctOS0xMS42LTExLjlhNDQuOCA0NC44IDAgMCAwLTE2LjYtNmMtNi40LTEuMi0xMi45LTEuOC0xOS4zLTEuN2gtNzAuM3Y3OS43aDc2LjFjMTMuMS4xIDI0LjItMy4xIDMyLjktOS41em0xMS44IDcyYy05LjgtNy41LTIyLjktMTEuMi0zOS4yLTExLjJoLTgxLjh2OTRoODAuMmM3LjUgMCAxNC40LS43IDIxLjEtMi4xczEyLjctMy44IDE3LjgtNy4yYzUuMS0zLjMgOS4yLTcuOCAxMi4zLTEzLjYgMy01LjggNC41LTEzLjIgNC41LTIyLjEgMC0xNy43LTUtMzAuMi0xNC45LTM3Ljh6JykpO1xuZXhwb3J0cy5Cb29rRmlsbCA9IGdldEljb24oJ2Jvb2snLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY4IDM0NS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTI0aDk2djIyMS45eicpKTtcbmV4cG9ydHMuQm94UGxvdEZpbGwgPSBnZXRJY29uKCdib3gtcGxvdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEg0NDh2NDMyaDM0NGM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjI0NGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS03MjggODB2MTc2aC05MlYyMzJjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjE3MmMwIDQuNCAzLjYgOCA4IDhoMTUyVjI5NkgyMzJjLTQuNCAwLTggMy42LTggOHonKSk7XG5leHBvcnRzLkJ1Z0ZpbGwgPSBnZXRJY29uKCdidWcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzA0IDI4MGg0MTZjNC40IDAgOC0zLjYgOC04IDAtNDAtOC44LTc2LjctMjUuOS0xMDguMWExODQuMzEgMTg0LjMxIDAgMCAwLTc0LTc0QzU5Ni43IDcyLjggNTYwIDY0IDUyMCA2NGgtMTZjLTQwIDAtNzYuNyA4LjgtMTA4LjEgMjUuOWExODQuMzEgMTg0LjMxIDAgMCAwLTc0IDc0QzMwNC44IDE5NS4zIDI5NiAyMzIgMjk2IDI3MmMwIDQuNCAzLjYgOCA4IDh6JywgJ005NDAgNTEySDc5MlY0MTJjNzYuOCAwIDEzOS02Mi4yIDEzOS0xMzkgMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4YTYzIDYzIDAgMCAxLTYzIDYzSDIzMmE2MyA2MyAwIDAgMS02My02M2MwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDggMCA3Ni44IDYyLjIgMTM5IDEzOSAxMzl2MTAwSDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE0OHY5NmMwIDYuNS4yIDEzIC43IDE5LjNDMTY0LjEgNzI4LjYgMTE2IDc5Ni43IDExNiA4NzZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTQ0LjIgMjMuOS04Mi45IDU5LjYtMTAzLjdhMjczIDI3MyAwIDAgMCAyMi43IDQ5YzI0LjMgNDEuNSA1OSA3Ni4yIDEwMC41IDEwMC41IDI4LjkgMTYuOSA2MSAyOC44IDk1LjMgMzQuNSA0LjQgMCA4LTMuNiA4LThWNDg0YzAtNC40IDMuNi04IDgtOGg2MGM0LjQgMCA4IDMuNiA4IDh2NDY0LjJjMCA0LjQgMy42IDggOCA4IDM0LjMtNS43IDY2LjQtMTcuNiA5NS4zLTM0LjVhMjgxLjM4IDI4MS4zOCAwIDAgMCAxMjMuMi0xNDkuNUExMjAuNCAxMjAuNCAwIDAgMSA4MzYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC03OS4zLTQ4LjEtMTQ3LjQtMTE2LjctMTc2LjcuNC02LjQuNy0xMi44LjctMTkuM3YtOTZoMTQ4YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQ2FsY3VsYXRvckZpbGwgPSBnZXRJY29uKCdjYWxjdWxhdG9yJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDQwLjIgNzY1aC01MC44Yy0yLjIgMC00LjUtMS4xLTUuOS0yLjlMMzQ4IDcxOC42bC0zNS41IDQzLjVhNy4zOCA3LjM4IDAgMCAxLTUuOSAyLjloLTUwLjhjLTYuNiAwLTEwLjItNy45LTUuOC0xMy4xbDYyLjctNzYuOC02MS4yLTc0LjljLTQuMy01LjItLjctMTMuMSA1LjktMTMuMWg1MC45YzIuMiAwIDQuNSAxLjEgNS45IDIuOWwzNCA0MS42IDM0LTQxLjZjMS41LTEuOSAzLjYtMi45IDUuOS0yLjloNTAuOGM2LjYgMCAxMC4yIDcuOSA1LjkgMTMuMUwzODMuNSA2NzVsNjIuNyA3Ni44YzQuMiA1LjMuNiAxMy4yLTYgMTMuMnptNy44LTM4MmMwIDIuMi0xLjQgNC0zLjIgNEgzNzZ2NjguN2MwIDEuOS0xLjggMy4zLTQgMy4zaC00OGMtMi4yIDAtNC0xLjQtNC0zLjJWMzg3aC02OC44Yy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNEgzMjB2LTY4LjhjMC0xLjggMS44LTMuMiA0LTMuMmg0OGMyLjIgMCA0IDEuNCA0IDMuMlYzMzFoNjguN2MxLjkgMCAzLjMgMS44IDMuMyA0djQ4em0zMjggMzY5YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OGMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4em0wLTEwNGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDhjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OHptMC0yNjVjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDh6JykpO1xuZXhwb3J0cy5CdWxiRmlsbCA9IGdldEljb24oJ2J1bGInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzQ4IDY3Ni4xQzI1MCA2MTkuNCAxODQgNTEzLjQgMTg0IDM5MmMwLTE4MS4xIDE0Ni45LTMyOCAzMjgtMzI4czMyOCAxNDYuOSAzMjggMzI4YzAgMTIxLjQtNjYgMjI3LjQtMTY0IDI4NC4xVjc5MmMwIDE3LjctMTQuMyAzMi0zMiAzMkgzODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyVjY3Ni4xek0zOTIgODg4aDI0MGM0LjQgMCA4IDMuNiA4IDh2MzJjMCAxNy43LTE0LjMgMzItMzIgMzJINDE2Yy0xNy43IDAtMzItMTQuMy0zMi0zMnYtMzJjMC00LjQgMy42LTggOC04eicpKTtcbmV4cG9ydHMuQnVpbGRGaWxsID0gZ2V0SWNvbignYnVpbGQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTE2IDIxMEgzNzZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIzNkgxMDhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjI3MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTQ2aDIzNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6TTYxMiA3NDZINDEyVjU0NmgyMDB2MjAwem0yNjgtMjY4SDY4MFYyNzhoMjAwdjIwMHonKSk7XG5leHBvcnRzLkNhbGVuZGFyRmlsbCA9IGdldEljb24oJ2NhbGVuZGFyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTExMiA4ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ2MEgxMTJ2NDIwem03NjgtNjk2SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTc2aDgwMFYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6JykpO1xuZXhwb3J0cy5DYW1lcmFGaWxsID0gZ2V0SWNvbignY2FtZXJhJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCAyNjBINzI4bC0zMi40LTkwLjhhMzIuMDcgMzIuMDcgMCAwIDAtMzAuMi0yMS4ySDM1OC42Yy0xMy41IDAtMjUuNiA4LjUtMzAuMSAyMS4yTDI5NiAyNjBIMTYwYy00NC4yIDAtODAgMzUuOC04MCA4MHY0NTZjMCA0NC4yIDM1LjggODAgODAgODBoNzA0YzQ0LjIgMCA4MC0zNS44IDgwLTgwVjM0MGMwLTQ0LjItMzUuOC04MC04MC04MHpNNTEyIDcxNmMtODguNCAwLTE2MC03MS42LTE2MC0xNjBzNzEuNi0xNjAgMTYwLTE2MCAxNjAgNzEuNiAxNjAgMTYwLTcxLjYgMTYwLTE2MCAxNjB6bS05Ni0xNjBhOTYgOTYgMCAxIDAgMTkyIDAgOTYgOTYgMCAxIDAtMTkyIDB6JykpO1xuZXhwb3J0cy5DYXJGaWxsID0gZ2V0SWNvbignY2FyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1OSA0MTMuNEw5MzUuMyAzNzJhOCA4IDAgMCAwLTEwLjktMi45bC01MC43IDI5LjYtNzguMy0yMTYuMmE2My45IDYzLjkgMCAwIDAtNjAuOS00NC40SDMwMS4yYy0zNC43IDAtNjUuNSAyMi40LTc2LjIgNTUuNWwtNzQuNiAyMDUuMi01MC44LTI5LjZhOCA4IDAgMCAwLTEwLjkgMi45TDY1IDQxMy40Yy0yLjIgMy44LS45IDguNiAyLjkgMTAuOGw2MC40IDM1LjItMTQuNSA0MGMtMS4yIDMuMi0xLjggNi42LTEuOCAxMHYzNDguMmMwIDE1LjcgMTEuOCAyOC40IDI2LjMgMjguNGg2Ny42YzEyLjMgMCAyMy05LjMgMjUuNi0yMi4zbDcuNy0zNy43aDU0NS42bDcuNyAzNy43YzIuNyAxMyAxMy4zIDIyLjMgMjUuNiAyMi4zaDY3LjZjMTQuNSAwIDI2LjMtMTIuNyAyNi4zLTI4LjRWNTA5LjRjMC0zLjQtLjYtNi44LTEuOC0xMGwtMTQuNS00MCA2MC4zLTM1LjJhOCA4IDAgMCAwIDMtMTAuOHpNMjY0IDYyMWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTM4OCA3NWMwIDQuNC0zLjYgOC04IDhIMzgwYy00LjQgMC04LTMuNi04LTh2LTg0YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2MzZoMTY4di0zNmMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djg0em0xMDgtNzVjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwek0yMjAgNDE4bDcyLjctMTk5LjkuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIweicpKTtcbmV4cG9ydHMuQ2FyZXREb3duRmlsbCA9IGdldEljb24oJ2NhcmV0LWRvd24nLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODQwLjQgMzAwSDE4My42Yy0xOS43IDAtMzAuNyAyMC44LTE4LjUgMzVsMzI4LjQgMzgwLjhjOS40IDEwLjkgMjcuNSAxMC45IDM3IDBMODU4LjkgMzM1YzEyLjItMTQuMiAxLjItMzUtMTguNS0zNXonKSk7XG5leHBvcnRzLkNhcmV0TGVmdEZpbGwgPSBnZXRJY29uKCdjYXJldC1sZWZ0JywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTY4OSAxNjUuMUwzMDguMiA0OTMuNWMtMTAuOSA5LjQtMTAuOSAyNy41IDAgMzdMNjg5IDg1OC45YzE0LjIgMTIuMiAzNSAxLjIgMzUtMTguNVYxODMuNmMwLTE5LjctMjAuOC0zMC43LTM1LTE4LjV6JykpO1xuZXhwb3J0cy5DYXJldFJpZ2h0RmlsbCA9IGdldEljb24oJ2NhcmV0LXJpZ2h0JywgZmlsbCwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTcxNS44IDQ5My41TDMzNSAxNjUuMWMtMTQuMi0xMi4yLTM1LTEuMi0zNSAxOC41djY1Ni44YzAgMTkuNyAyMC44IDMwLjcgMzUgMTguNWwzODAuOC0zMjguNGMxMC45LTkuNCAxMC45LTI3LjYgMC0zN3onKSk7XG5leHBvcnRzLkNhcnJ5T3V0RmlsbCA9IGdldEljb24oJ2NhcnJ5LW91dCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5NC41IDQzMi43TDQ4MS45IDcyNS40YTE2LjEgMTYuMSAwIDAgMS0yNiAwbC0xMjYuNC0xNzRjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU1LjJjNS4xIDAgMTAgMi41IDEzIDYuNmw2NC43IDg5IDE1MC45LTIwNy44YzMtNC4xIDcuOC02LjYgMTMtNi42SDY4OGM2LjUuMSAxMC4zIDcuNSA2LjUgMTIuOHonKSk7XG5leHBvcnRzLkNhcmV0VXBGaWxsID0gZ2V0SWNvbignY2FyZXQtdXAnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODU4LjkgNjg5TDUzMC41IDMwOC4yYy05LjQtMTAuOS0yNy41LTEwLjktMzcgMEwxNjUuMSA2ODljLTEyLjIgMTQuMi0xLjIgMzUgMTguNSAzNWg2NTYuOGMxOS43IDAgMzAuNy0yMC44IDE4LjUtMzV6JykpO1xuZXhwb3J0cy5DaGVja0NpcmNsZUZpbGwgPSBnZXRJY29uKCdjaGVjay1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE5My41IDMwMS43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMCAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4zbDcxLjIgOTguOCAxNTcuMi0yMThjNi04LjMgMTUuNi0xMy4zIDI1LjktMTMuM0g2OTljNi41IDAgMTAuMyA3LjQgNi41IDEyLjd6JykpO1xuZXhwb3J0cy5DaGVja1NxdWFyZUZpbGwgPSBnZXRJY29uKCdjaGVjay1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02OTUuNSAzNjUuN2wtMjEwLjYgMjkyYTMxLjggMzEuOCAwIDAgMS01MS43IDBMMzA4LjUgNDg0LjljLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDQ2LjljMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuM2w3MS4yIDk4LjggMTU3LjItMjE4YzYtOC4zIDE1LjYtMTMuMyAyNS45LTEzLjNINjg5YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eicpKTtcbmV4cG9ydHMuQ2hyb21lRmlsbCA9IGdldEljb24oJ2Nocm9tZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNzEuOCA1MTJjMCA3Ny41IDYyLjcgMTQwLjIgMTQwLjIgMTQwLjJTNjUyLjIgNTg5LjUgNjUyLjIgNTEyIDU4OS41IDM3MS44IDUxMiAzNzEuOCAzNzEuOCA0MzQuNCAzNzEuOCA1MTJ6TTkwMCAzNjIuNGwtMjM0LjMgMTIuMWM2My42IDc0LjMgNjQuNiAxODEuNSAxMS4xIDI2My43bC0xODggMjg5LjJjNzggNC4yIDE1OC40LTEyLjkgMjMxLjItNTUuMiAxODAtMTA0IDI1My0zMjIuMSAxODAtNTA5Ljh6TTMyMC4zIDU5MS45TDE2My44IDI4NC4xQTQxNS4zNSA0MTUuMzUgMCAwIDAgOTYgNTEyYzAgMjA4IDE1Mi4zIDM4MC4zIDM1MS40IDQxMC44bDEwNi45LTIwOS40Yy05Ni42IDE4LjItMTg5LjktMzQuOC0yMzQtMTIxLjV6bTIxOC41LTI4NS41bDM0NC40IDE4LjFDODQ4IDI1NC43IDc5Mi42IDE5NCA3MTkuOCAxNTEuNyA2NTMuOSAxMTMuNiA1ODEuNSA5NS41IDUxMC41IDk2Yy0xMjIuNS41LTI0Mi4yIDU1LjItMzIyLjEgMTU0LjVsMTI4LjIgMTk2LjljMzItOTEuOSAxMjQuOC0xNDYuNyAyMjIuMi0xNDF6JykpO1xuZXhwb3J0cy5DaUNpcmNsZUZpbGwgPSBnZXRJY29uKCdjaS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS02My42IDY1NmMtMTAzIDAtMTYyLjQtNjguNi0xNjIuNC0xODIuNnYtNDlDMjg2IDM3My41IDM0NS40IDMwNCA0NDguMyAzMDRjODguMyAwIDE1Mi4zIDU2LjkgMTUyLjMgMTM4LjEgMCAyLjQtMiA0LjQtNC40IDQuNGgtNTIuNmMtNC4yIDAtNy42LTMuMi04LTcuNC00LTQ2LjEtMzcuNi03Ny42LTg3LTc3LjYtNjEuMSAwLTk1LjYgNDUuNC05NS42IDEyNi45djQ5LjNjMCA4MC4zIDM0LjUgMTI1LjEgOTUuNiAxMjUuMSA0OS4zIDAgODIuOC0yOS41IDg3LTcyLjQuNC00LjEgMy44LTcuMyA4LTcuM2g1Mi43YzIuNCAwIDQuNCAyIDQuNCA0LjQgMCA3Ny40LTY0LjMgMTMyLjUtMTUyLjMgMTMyLjV6TTczOCA3MDQuMWMwIDQuNC0zLjYgOC04IDhoLTUwLjRjLTQuNCAwLTgtMy42LTgtOFYzMTkuOWMwLTQuNCAzLjYtOCA4LThINzMwYzQuNCAwIDggMy42IDggOHYzODQuMnonKSk7XG5leHBvcnRzLkNsb2NrQ2lyY2xlRmlsbCA9IGdldEljb24oJ2Nsb2NrLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTc2LjUgNTg1LjdsLTI4LjYgMzlhNy45OSA3Ljk5IDAgMCAxLTExLjIgMS43TDQ4My4zIDU2OS44YTcuOTIgNy45MiAwIDAgMS0zLjMtNi41VjI4OGMwLTQuNCAzLjYtOCA4LThoNDguMWM0LjQgMCA4IDMuNiA4IDh2MjQ3LjVsMTQyLjYgMTAzLjFjMy42IDIuNSA0LjQgNy41IDEuOCAxMS4xeicpKTtcbmV4cG9ydHMuQ2xvc2VDaXJjbGVGaWxsID0gZ2V0SWNvbignY2xvc2UtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjUuNCA2MTguMmwtNjYtLjNMNTEyIDU2My40bC05OS4zIDExOC40LTY2LjEuM2MtNC40IDAtOC0zLjUtOC04IDAtMS45LjctMy43IDEuOS01LjJsMTMwLjEtMTU1TDM0MC41IDM1OWE4LjMyIDguMzIgMCAwIDEtMS45LTUuMmMwLTQuNCAzLjYtOCA4LThsNjYuMS4zTDUxMiA0NjQuNmw5OS4zLTExOC40IDY2LS4zYzQuNCAwIDggMy41IDggOCAwIDEuOS0uNyAzLjctMS45IDUuMkw1NTMuNSA1MTRsMTMwIDE1NWMxLjIgMS41IDEuOSAzLjMgMS45IDUuMiAwIDQuNC0zLjYgOC04IDh6JykpO1xuZXhwb3J0cy5DbG91ZEZpbGwgPSBnZXRJY29uKCdjbG91ZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MTEuNCA0MTguN0M3NjUuNiAyOTcuOSA2NDguOSAyMTIgNTEyLjIgMjEyUzI1OC44IDI5Ny44IDIxMyA0MTguNkMxMjcuMyA0NDEuMSA2NCA1MTkuMSA2NCA2MTJjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBoNDk2LjJDODcwLjUgODEyIDk2MCA3MjIuNSA5NjAgNjEyYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zeicpKTtcbmV4cG9ydHMuQ2xvc2VTcXVhcmVGaWxsID0gZ2V0SWNvbignY2xvc2Utc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjc2LjEgNjU3LjljNC40IDUuMi43IDEzLjEtNi4xIDEzLjFoLTU4LjljLTQuNyAwLTkuMi0yLjEtMTIuMy01LjdMNTEyIDU2MS44bC04Ni44IDEwMy41Yy0zIDMuNi03LjUgNS43LTEyLjMgNS43SDM1NGMtNi44IDAtMTAuNS03LjktNi4xLTEzLjFMNDcwLjIgNTEyIDM0Ny45IDM2Ni4xQTcuOTUgNy45NSAwIDAgMSAzNTQgMzUzaDU4LjljNC43IDAgOS4yIDIuMSAxMi4zIDUuN0w1MTIgNDYyLjJsODYuOC0xMDMuNWMzLTMuNiA3LjUtNS43IDEyLjMtNS43SDY3MGM2LjggMCAxMC41IDcuOSA2LjEgMTMuMUw1NTMuOCA1MTJsMTIyLjMgMTQ1Ljl6JykpO1xuZXhwb3J0cy5Db2RlU2FuZGJveFNxdWFyZUZpbGwgPSBnZXRJY29uKCdjb2RlLXNhbmRib3gtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwNy45IDUzNi43bDg3LjYgNDkuOVY2ODFsOTYuNyA1NS45VjUyNC44TDMwNy45IDQxOC40ek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc1NS43IDY1My4yTDUxMiA3OTQgMjY4LjMgNjUzLjJWMzcxLjhsMTEwLTYzLjYtLjQtLjJoLjJMNTEyIDIzMWwxMzQgNzdoLS4ybC0uMy4yIDExMC4xIDYzLjZ2MjgxLjR6bS0yMjMuOSA4My43bDk3LjMtNTYuMnYtOTQuMWw4Ny00OS41VjQxOC41TDUzMS44IDUyNXptLTIwLTM1Mkw0MTggMzMxbC05MS4xIDUyLjYgMTg1LjIgMTA3IDE4NS4yLTEwNi45LTkxLjQtNTIuOHonKSk7XG5leHBvcnRzLkNvZGVTYW5kYm94Q2lyY2xlRmlsbCA9IGdldEljb24oJ2NvZGUtc2FuZGJveC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI0My43IDU4OS4yTDUxMiA3OTQgMjY4LjMgNjUzLjJWMzcxLjhsMTEwLTYzLjYtLjQtLjJoLjJMNTEyIDIzMWwxMzQgNzdoLS4ybC0uMy4yIDExMC4xIDYzLjZ2MjgxLjR6TTMwNy45IDUzNi43bDg3LjYgNDkuOVY2ODFsOTYuNyA1NS45VjUyNC44TDMwNy45IDQxOC40em0yMDMuOS0xNTEuOEw0MTggMzMxbC05MS4xIDUyLjYgMTg1LjIgMTA3IDE4NS4yLTEwNi45LTkxLjQtNTIuOHptMjAgMzUybDk3LjMtNTYuMnYtOTQuMWw4Ny00OS41VjQxOC41TDUzMS44IDUyNXonKSk7XG5leHBvcnRzLkNvZGVGaWxsID0gZ2V0SWNvbignY29kZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMy4xIDUxOC4xbC0xOTIgMTYxYy01LjIgNC40LTEzLjEuNy0xMy4xLTYuMXYtNjIuN2MwLTIuMyAxLjEtNC42IDIuOS02LjFMNDIwLjcgNTEybC0xMDkuOC05Mi4yYTcuNjMgNy42MyAwIDAgMS0yLjktNi4xVjM1MWMwLTYuOCA3LjktMTAuNSAxMy4xLTYuMWwxOTIgMTYwLjljMy45IDMuMiAzLjkgOS4xIDAgMTIuM3pNNzE2IDY3M2MwIDQuNC0zLjQgOC03LjUgOGgtMTg1Yy00LjEgMC03LjUtMy42LTcuNS04di00OGMwLTQuNCAzLjQtOCA3LjUtOGgxODVjNC4xIDAgNy41IDMuNiA3LjUgOHY0OHonKSk7XG5leHBvcnRzLkNvbXBhc3NGaWxsID0gZ2V0SWNvbignY29tcGFzcycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMzI3LjMgNzAyLjRjLTIgLjktNC40IDAtNS4zLTIuMS0uNC0xLS40LTIuMiAwLTMuMmw5OC43LTIyNS41IDEzMi4xIDEzMi4xLTIyNS41IDk4Ljd6bTM3NS4xLTM3NS4xbC05OC43IDIyNS41LTEzMi4xLTEzMi4xTDY5Ny4xIDMyMmMyLS45IDQuNCAwIDUuMyAyLjEuNCAxIC40IDIuMSAwIDMuMnonKSk7XG5leHBvcnRzLkNvZGVwZW5DaXJjbGVGaWxsID0gZ2V0SWNvbignY29kZXBlbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDg4LjEgNDE0LjdWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHptMjU0LjEgMTM3Ljd2LTc5LjhsLTU5LjggMzkuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI3OCA1MzNjMCAxLjEtLjEgMi4xLS4yIDMuMSAwIC40LS4xLjctLjIgMWExNC4xNiAxNC4xNiAwIDAgMS0uOCAzLjJjLS4yLjYtLjQgMS4yLS42IDEuNy0uMi40LS40LjgtLjUgMS4yLS4zLjUtLjUgMS4xLS44IDEuNi0uMi40LS40LjctLjcgMS4xLS4zLjUtLjcgMS0xIDEuNS0uMy40LS41LjctLjggMS0uNC40LS44LjktMS4yIDEuMy0uMy4zLS42LjYtMSAuOS0uNC40LS45LjgtMS40IDEuMS0uNC4zLS43LjYtMS4xLjgtLjEuMS0uMy4yLS40LjNMNTI1LjIgNzg2Yy00IDIuNy04LjYgNC0xMy4yIDQtNC43IDAtOS4zLTEuNC0xMy4zLTRMMjQ0LjYgNjE2LjljLS4xLS4xLS4zLS4yLS40LS4zbC0xLjEtLjhjLS41LS40LS45LS43LTEuMy0xLjEtLjMtLjMtLjYtLjYtMS0uOS0uNC0uNC0uOC0uOC0xLjItMS4zYTcgNyAwIDAgMS0uOC0xYy0uNC0uNS0uNy0xLTEtMS41LS4yLS40LS41LS43LS43LTEuMS0uMy0uNS0uNi0xLjEtLjgtMS42LS4yLS40LS40LS44LS41LTEuMi0uMi0uNi0uNC0xLjItLjYtMS43LS4xLS40LS4zLS44LS40LTEuMi0uMi0uNy0uMy0xLjMtLjQtMi0uMS0uMy0uMS0uNy0uMi0xLS4xLTEtLjItMi4xLS4yLTMuMVY0MjcuOWMwLTEgLjEtMi4xLjItMy4xLjEtLjMuMS0uNy4yLTFhMTQuMTYgMTQuMTYgMCAwIDEgLjgtMy4yYy4yLS42LjQtMS4yLjYtMS43LjItLjQuNC0uOC41LTEuMi4yLS41LjUtMS4xLjgtMS42LjItLjQuNC0uNy43LTEuMS42LS45IDEuMi0xLjcgMS44LTIuNS40LS40LjgtLjkgMS4yLTEuMy4zLS4zLjYtLjYgMS0uOS40LS40LjktLjggMS4zLTEuMS40LS4zLjctLjYgMS4xLS44LjEtLjEuMy0uMi40LS4zTDQ5OC43IDIzOWM4LTUuMyAxOC41LTUuMyAyNi41IDBsMjU0LjEgMTY5LjFjLjEuMS4zLjIuNC4zbDEuMS44IDEuNCAxLjFjLjMuMy42LjYgMSAuOS40LjQuOC44IDEuMiAxLjMuNy44IDEuMyAxLjYgMS44IDIuNS4yLjQuNS43LjcgMS4xLjMuNS42IDEgLjggMS42LjIuNC40LjguNSAxLjIuMi42LjQgMS4yLjYgMS43LjEuNC4zLjguNCAxLjIuMi43LjMgMS4zLjQgMiAuMS4zLjEuNy4yIDEgLjEgMSAuMiAyLjEuMiAzLjFWNTk3em0tMjU0LjEgMTMuM3YxMTEuM0w3MjMuMSA1OTdsLTgzLjYtNTUuOHpNMjgxLjggNDcyLjZ2NzkuOGw1OS44LTM5Ljl6TTUxMiA0NTYuMWwtODQuNSA1Ni40IDg0LjUgNTYuNCA4NC41LTU2LjR6TTcyMy4xIDQyOEw1MzUuOSAzMDMuNHYxMTEuM2wxMDMuNiA2OS4xek0zODQuNSA1NDEuMkwzMDAuOSA1OTdsMTg3LjIgMTI0LjZWNjEwLjNsLTEwMy42LTY5LjF6JykpO1xuZXhwb3J0cy5Db2RlcGVuU3F1YXJlRmlsbCA9IGdldEljb24oJ2NvZGVwZW4tc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcyMy4xIDQyOEw1MzUuOSAzMDMuNHYxMTEuM2wxMDMuNiA2OS4xek01MTIgNDU2LjFsLTg0LjUgNTYuNCA4NC41IDU2LjQgODQuNS01Ni40em0yMy45IDE1NC4ydjExMS4zTDcyMy4xIDU5N2wtODMuNi01NS44em0tMTUxLjQtNjkuMUwzMDAuOSA1OTdsMTg3LjIgMTI0LjZWNjEwLjNsLTEwMy42LTY5LjF6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTkwIDQ4NWMwIDEuMS0uMSAyLjEtLjIgMy4xIDAgLjQtLjEuNy0uMiAxYTE0LjE2IDE0LjE2IDAgMCAxLS44IDMuMmMtLjIuNi0uNCAxLjItLjYgMS43LS4yLjQtLjQuOC0uNSAxLjItLjMuNS0uNSAxLjEtLjggMS42LS4yLjQtLjQuNy0uNyAxLjEtLjMuNS0uNyAxLTEgMS41LS4zLjQtLjUuNy0uOCAxLS40LjQtLjguOS0xLjIgMS4zLS4zLjMtLjYuNi0xIC45LS40LjQtLjkuOC0xLjQgMS4xLS40LjMtLjcuNi0xLjEuOC0uMS4xLS4zLjItLjQuM0w1MjUuMiA3ODZjLTQgMi43LTguNiA0LTEzLjIgNC00LjcgMC05LjMtMS40LTEzLjMtNEwyNDQuNiA2MTYuOWMtLjEtLjEtLjMtLjItLjQtLjNsLTEuMS0uOGMtLjUtLjQtLjktLjctMS4zLTEuMS0uMy0uMy0uNi0uNi0xLS45LS40LS40LS44LS44LTEuMi0xLjNhNyA3IDAgMCAxLS44LTFjLS40LS41LS43LTEtMS0xLjUtLjItLjQtLjUtLjctLjctMS4xLS4zLS41LS42LTEuMS0uOC0xLjYtLjItLjQtLjQtLjgtLjUtMS4yLS4yLS42LS40LTEuMi0uNi0xLjctLjEtLjQtLjMtLjgtLjQtMS4yLS4yLS43LS4zLTEuMy0uNC0yLS4xLS4zLS4xLS43LS4yLTEtLjEtMS0uMi0yLjEtLjItMy4xVjQyNy45YzAtMSAuMS0yLjEuMi0zLjEuMS0uMy4xLS43LjItMWExNC4xNiAxNC4xNiAwIDAgMSAuOC0zLjJjLjItLjYuNC0xLjIuNi0xLjcuMi0uNC40LS44LjUtMS4yLjItLjUuNS0xLjEuOC0xLjYuMi0uNC40LS43LjctMS4xLjYtLjkgMS4yLTEuNyAxLjgtMi41LjQtLjQuOC0uOSAxLjItMS4zLjMtLjMuNi0uNiAxLS45LjQtLjQuOS0uOCAxLjMtMS4xLjQtLjMuNy0uNiAxLjEtLjguMS0uMS4zLS4yLjQtLjNMNDk4LjcgMjM5YzgtNS4zIDE4LjUtNS4zIDI2LjUgMGwyNTQuMSAxNjkuMWMuMS4xLjMuMi40LjNsMS4xLjggMS40IDEuMWMuMy4zLjYuNiAxIC45LjQuNC44LjggMS4yIDEuMy43LjggMS4zIDEuNiAxLjggMi41LjIuNC41LjcuNyAxLjEuMy41LjYgMSAuOCAxLjYuMi40LjQuOC41IDEuMi4yLjYuNCAxLjIuNiAxLjcuMS40LjMuOC40IDEuMi4yLjcuMyAxLjMuNCAyIC4xLjMuMS43LjIgMSAuMSAxIC4yIDIuMS4yIDMuMVY1OTd6bS00Ny44LTQ0LjZ2LTc5LjhsLTU5LjggMzkuOXptLTQ2MC40LTc5Ljh2NzkuOGw1OS44LTM5Ljl6bTIwNi4zLTU3LjlWMzAzLjRMMzAwLjkgNDI4bDgzLjYgNTUuOHonKSk7XG5leHBvcnRzLkNvbnRhY3RzRmlsbCA9IGdldEljb24oJ2NvbnRhY3RzJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NjEgNzM2aC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjYtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDM2M2E4IDggMCAwIDEtOC04LjRjMi44LTUzLjMgMzItOTkuNyA3NC42LTEyNi4xYTExMS44IDExMS44IDAgMCAxLTI5LjEtNzUuNWMwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyIDYxLjUgMCAxMTEuNCA1MC4xIDExMS40IDExMiAwIDI5LjEtMTEgNTUuNS0yOS4xIDc1LjUgNDIuNyAyNi41IDcxLjggNzIuOCA3NC42IDEyNi4xLjQgNC42LTMuMiA4LjQtNy44IDguNHpNNTEyIDQ3NGMtMjguNSAwLTUxLjcgMjMuMy01MS43IDUyczIzLjIgNTIgNTEuNyA1MmMyOC41IDAgNTEuNy0yMy4zIDUxLjctNTJzLTIzLjItNTItNTEuNy01MnonKSk7XG5leHBvcnRzLkNvbnRyb2xGaWxsID0gZ2V0SWNvbignY29udHJvbCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQwNCA2ODN2NzdjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di03N2MtNDEuNy0xMy42LTcyLTUyLjgtNzItOTlzMzAuMy04NS41IDcyLTk5VjI2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djIyMWM0MS43IDEzLjYgNzIgNTIuOCA3MiA5OXMtMzAuMyA4NS41LTcyIDk5em0yNzkuNi0xNDMuOWMuMiAwIC4zLS4xLjQtLjF2MjIxYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1MzljLjIgMCAuMy4xLjQuMS00Mi0xMy40LTcyLjQtNTIuNy03Mi40LTk5LjEgMC00Ni40IDMwLjQtODUuNyA3Mi40LTk5LjEtLjIgMC0uMy4xLS40LjF2LTc3YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NzdjLS4yIDAtLjMtLjEtLjQtLjEgNDIgMTMuNCA3Mi40IDUyLjcgNzIuNCA5OS4xIDAgNDYuNC0zMC40IDg1LjctNzIuNCA5OS4xek02MTYgNDQwYTM2IDM2IDAgMSAwIDcyIDAgMzYgMzYgMCAxIDAtNzIgMHpNNDAzLjQgNTY2LjVsLTEuNS0yLjRjMC0uMS0uMS0uMS0uMS0uMmwtLjktMS4yYy0uMS0uMS0uMi0uMi0uMi0uMy0xLTEuMy0yLTIuNS0zLjItMy42bC0uMi0uMmMtLjQtLjQtLjgtLjgtMS4yLTEuMS0uOC0uOC0xLjctMS41LTIuNi0yLjFoLS4xbC0xLjItLjljLS4xLS4xLS4zLS4yLS40LS4zLTEuMi0uOC0yLjUtMS42LTMuOS0yLjItLjItLjEtLjUtLjItLjctLjQtLjQtLjItLjctLjMtMS4xLS41LS4zLS4xLS43LS4zLTEtLjQtLjUtLjItMS0uNC0xLjUtLjUtLjQtLjEtLjktLjMtMS4zLS40bC0uOS0uMy0xLjQtLjNjLS4yLS4xLS41LS4xLS43LS4yLS43LS4xLTEuNC0uMy0yLjEtLjQtLjIgMC0uNCAwLS42LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjIgMC0uNCAwLS43LS4xLS44IDAtMS41LS4xLTIuMy0uMXMtMS41IDAtMi4zLjFjLS4yIDAtLjQgMC0uNy4xLS42IDAtMS4yLjEtMS43LjItLjIgMC0uNCAwLS42LjEtLjcuMS0xLjQuMi0yLjEuNC0uMi4xLS41LjEtLjcuMmwtMS40LjMtLjkuM2MtLjQuMS0uOS4zLTEuMy40LS41LjItMSAuNC0xLjUuNS0uMy4xLS43LjMtMSAuNC0uNC4yLS43LjMtMS4xLjUtLjIuMS0uNS4yLS43LjQtMS4zLjctMi42IDEuNC0zLjkgMi4yLS4xLjEtLjMuMi0uNC4zbC0xLjIuOWgtLjFjLS45LjctMS44IDEuNC0yLjYgMi4xLS40LjQtLjguNy0xLjIgMS4xbC0uMi4yYTU0LjggNTQuOCAwIDAgMC0zLjIgMy42Yy0uMS4xLS4yLjItLjIuM2wtLjkgMS4yYzAgLjEtLjEuMS0uMS4ybC0xLjUgMi40Yy0uMS4yLS4yLjMtLjMuNS0yLjcgNS4xLTQuMyAxMC45LTQuMyAxN3MxLjYgMTIgNC4zIDE3Yy4xLjIuMi4zLjMuNWwxLjUgMi40YzAgLjEuMS4xLjEuMmwuOSAxLjJjLjEuMS4yLjIuMi4zIDEgMS4zIDIgMi41IDMuMiAzLjZsLjIuMmMuNC40LjguOCAxLjIgMS4xLjguOCAxLjcgMS41IDIuNiAyLjFoLjFsMS4yLjljLjEuMS4zLjIuNC4zIDEuMi44IDIuNSAxLjYgMy45IDIuMi4yLjEuNS4yLjcuNC40LjIuNy4zIDEuMS41LjMuMS43LjMgMSAuNC41LjIgMSAuNCAxLjUuNS40LjEuOS4zIDEuMy40bC45LjMgMS40LjNjLjIuMS41LjEuNy4yLjcuMSAxLjQuMyAyLjEuNC4yIDAgLjQgMCAuNi4xLjYuMSAxLjEuMSAxLjcuMi4yIDAgLjQgMCAuNy4xLjggMCAxLjUuMSAyLjMuMXMxLjUgMCAyLjMtLjFjLjIgMCAuNCAwIC43LS4xLjYgMCAxLjItLjEgMS43LS4yLjIgMCAuNCAwIC42LS4xLjctLjEgMS40LS4yIDIuMS0uNC4yLS4xLjUtLjEuNy0uMmwxLjQtLjMuOS0uM2MuNC0uMS45LS4zIDEuMy0uNC41LS4yIDEtLjQgMS41LS41LjMtLjEuNy0uMyAxLS40LjQtLjIuNy0uMyAxLjEtLjUuMi0uMS41LS4yLjctLjQgMS4zLS43IDIuNi0xLjQgMy45LTIuMi4xLS4xLjMtLjIuNC0uM2wxLjItLjloLjFjLjktLjcgMS44LTEuNCAyLjYtMi4xLjQtLjQuOC0uNyAxLjItMS4xbC4yLS4yYzEuMS0xLjEgMi4yLTIuNCAzLjItMy42LjEtLjEuMi0uMi4yLS4zbC45LTEuMmMwLS4xLjEtLjEuMS0uMmwxLjUtMi40Yy4xLS4yLjItLjMuMy0uNSAyLjctNS4xIDQuMy0xMC45IDQuMy0xN3MtMS42LTEyLTQuMy0xN2MtLjEtLjItLjItLjQtLjMtLjV6JykpO1xuZXhwb3J0cy5Db250YWluZXJGaWxsID0gZ2V0SWNvbignY29udGFpbmVyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjUyOWMwLS42LjQtMSAxLTFoMjE5LjNsNS4yIDI0LjdDMzk3LjYgNzA4LjUgNDUwLjggNzUyIDUxMiA3NTJzMTE0LjQtNDMuNSAxMjYuNC0xMDMuM2w1LjItMjQuN0g4NjNjLjYgMCAxIC40IDEgMVY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzEyIDQ5M2MwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzODRjNC40IDAgOCAzLjYgOCA4djQ4em0wLTE2MGMwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzODRjNC40IDAgOCAzLjYgOCA4djQ4em0xNTEgMzU0SDY5NC4xYy0xMS42IDMyLjgtMzIgNjIuMy01OS4xIDg0LjctMzQuNSAyOC42LTc4LjIgNDQuMy0xMjMgNDQuM3MtODguNS0xNS44LTEyMy00NC4zYTE5NC4wMiAxOTQuMDIgMCAwIDEtNTkuMS04NC43SDE2MWMtLjYgMC0xLS40LTEtMXYyNDJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjY4NmMwIC42LS40IDEtMSAxeicpKTtcbmV4cG9ydHMuQ29weUZpbGwgPSBnZXRJY29uKCdjb3B5JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNDk2djY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04Vjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MDQgMTkySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTMwLjdjMCA4LjUgMy40IDE2LjYgOS40IDIyLjZsMTczLjMgMTczLjNjMi4yIDIuMiA0LjcgNCA3LjQgNS41djEuOWg0LjJjMy41IDEuMyA3LjIgMiAxMSAySDcwNGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM4MiA4OTZoLS4yTDIzMiA3NDYuMnYtLjJoMTUwdjE1MHonKSk7XG5leHBvcnRzLkNvcHlyaWdodENpcmNsZUZpbGwgPSBnZXRJY29uKCdjb3B5cmlnaHQtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em01LjQgNjcwYy0xMTAgMC0xNzMuNC03My4yLTE3My40LTE5NC45di01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy42LTMuMi04LTcuNC00LTQ5LjUtNDAtODMuNC05My04My40LTY1LjMgMC0xMDIuMSA0OC41LTEwMi4xIDEzNS41djUyLjZjMCA4NS43IDM2LjkgMTMzLjYgMTAyLjEgMTMzLjYgNTIuOCAwIDg4LjctMzEuNyA5My03Ny44LjQtNC4xIDMuOC03LjMgOC03LjNoNTYuOGMyLjYgMCA0LjcgMi4xIDQuNyA0LjcgMCA4Mi42LTY4LjcgMTQxLjQtMTYyLjcgMTQxLjR6JykpO1xuZXhwb3J0cy5DcmVkaXRDYXJkRmlsbCA9IGdldEljb24oJ2NyZWRpdC1jYXJkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE2MGg4OTZWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NCA4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ0MEg2NHYzOTJ6bTU3OS0xODRjMC00LjQgMy42LTggOC04aDE2NWM0LjQgMCA4IDMuNiA4IDh2NzJjMCA0LjQtMy42IDgtOCA4SDY1MWMtNC40IDAtOC0zLjYtOC04di03MnonKSk7XG5leHBvcnRzLkNyb3duRmlsbCA9IGdldEljb24oJ2Nyb3duJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5OS42IDI3Ni41TDcwNSAzOTYuNCA1MTguNCAxNDcuNWE4LjA2IDguMDYgMCAwIDAtMTIuOSAwTDMxOSAzOTYuNCAxMjQuMyAyNzYuNWMtNS43LTMuNS0xMy4xIDEuMi0xMi4yIDcuOUwxODguNSA4NjVjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZjLjgtNi43LTYuNS0xMS40LTEyLjMtNy45ek01MTIgNzM0LjJjLTYyLjEgMC0xMTIuNi01MC41LTExMi42LTExMi42UzQ0OS45IDUwOSA1MTIgNTA5czExMi42IDUwLjUgMTEyLjYgMTEyLjZTNTc0LjEgNzM0LjIgNTEyIDczNC4yem0wLTE2MC45Yy0yNi42IDAtNDguMiAyMS42LTQ4LjIgNDguMyAwIDI2LjYgMjEuNiA0OC4zIDQ4LjIgNDguM3M0OC4yLTIxLjYgNDguMi00OC4zYzAtMjYuNi0yMS42LTQ4LjMtNDguMi00OC4zeicpKTtcbmV4cG9ydHMuQ3VzdG9tZXJTZXJ2aWNlRmlsbCA9IGdldEljb24oJ2N1c3RvbWVyLXNlcnZpY2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDEyOGMtMjEyLjEgMC0zODQgMTcxLjktMzg0IDM4NHYzNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjYyNGMwLTM1LjMtMjguNy02NC02NC02NEgyMDB2LTQ4YzAtMTcyLjMgMTM5LjctMzEyIDMxMi0zMTJzMzEyIDEzOS43IDMxMiAzMTJ2NDhINjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMTg0YzEzLjMgMCAyNC0xMC43IDI0LTI0VjUxMmMwLTIxMi4xLTE3MS45LTM4NC0zODQtMzg0eicpKTtcbmV4cG9ydHMuRGFzaGJvYXJkRmlsbCA9IGdldEljb24oJ2Rhc2hib2FyZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjQuOCAzODUuNmE0NDYuNyA0NDYuNyAwIDAgMC05Ni0xNDIuNCA0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMCAwLTE0Mi40IDk2IDQ0Ni43IDQ0Ni43IDAgMCAwLTk2IDE0Mi40Qzc1LjggNDQwLjkgNjQgNDk5LjUgNjQgNTYwYzAgMTMyLjcgNTguMyAyNTcuNyAxNTkuOSAzNDMuMWwxLjcgMS40YzUuOCA0LjggMTMuMSA3LjUgMjAuNiA3LjVoNTMxLjdjNy41IDAgMTQuOC0yLjcgMjAuNi03LjVsMS43LTEuNEM5MDEuNyA4MTcuNyA5NjAgNjkyLjcgOTYwIDU2MGMwLTYwLjUtMTEuOS0xMTkuMS0zNS4yLTE3NC40ek00ODIgMjMyYzAtNC40IDMuNi04IDgtOGg0NGM0LjQgMCA4IDMuNiA4IDh2ODBjMCA0LjQtMy42IDgtOCA4aC00NGMtNC40IDAtOC0zLjYtOC04di04MHpNMjcwIDU4MmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LTh2LTQ0YzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDR6bTkwLjctMjA0LjVsLTMxLjEgMzEuMWE4LjAzIDguMDMgMCAwIDEtMTEuMyAwTDI2MS43IDM1MmE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDMxLjEtMzEuMWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDU2LjYgNTYuNmMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zem0yOTEuMSA4My42bC04NC41IDg0LjVjNSAxOC43LjIgMzkuNC0xNC41IDU0LjFhNTUuOTUgNTUuOTUgMCAwIDEtNzkuMiAwIDU1Ljk1IDU1Ljk1IDAgMCAxIDAtNzkuMiA1NS44NyA1NS44NyAwIDAgMSA1NC4xLTE0LjVsODQuNS04NC41YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMSAwIDExLjN6bTQzLTUyLjRsLTMxLjEtMzEuMWE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDU2LjYtNTYuNmMzLjEtMy4xIDguMi0zLjEgMTEuMyAwbDMxLjEgMzEuMWMzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC01Ni42IDU2LjZhOC4wMyA4LjAzIDAgMCAxLTExLjMgMHpNODQ2IDU4MmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LTh2LTQ0YzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDR6JykpO1xuZXhwb3J0cy5EZWxldGVGaWxsID0gZ2V0SWNvbignZGVsZXRlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCAyNTZINzM2di04MGMwLTM1LjMtMjguNy02NC02NC02NEgzNTJjLTM1LjMgMC02NCAyOC43LTY0IDY0djgwSDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDYwLjRsMjQuNyA1MjNjMS42IDM0LjEgMjkuOCA2MSA2My45IDYxaDQ1NGMzNC4yIDAgNjIuMy0yNi44IDYzLjktNjFsMjQuNy01MjNIODg4YzQuNCAwIDgtMy42IDgtOHYtMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0yMDAgMEgzNjB2LTcyaDMwNHY3MnonKSk7XG5leHBvcnRzLkRpZmZGaWxsID0gZ2V0SWNvbignZGlmZicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuMiAzMDYuNkw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzek01NTMuNCAyMDEuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzA0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMlYzOTcuM2MwLTguNS0zLjQtMTYuNi05LjQtMjIuNkw1NTMuNCAyMDEuNHpNNTY4IDc1M2MwIDMuOC0zLjQgNy03LjUgN2gtMjI1Yy00LjEgMC03LjUtMy4yLTcuNS03di00MmMwLTMuOCAzLjQtNyA3LjUtN2gyMjVjNC4xIDAgNy41IDMuMiA3LjUgN3Y0MnptMC0yMjBjMCAzLjgtMy40IDctNy41IDdINDc2djg0LjljMCAzLjktMy4xIDcuMS03IDcuMWgtNDJjLTMuOCAwLTctMy4yLTctNy4xVjU0MGgtODQuNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjkgMy40LTcgNy41LTdINDIwdi04NC45YzAtMy45IDMuMi03LjEgNy03LjFoNDJjMy45IDAgNyAzLjIgNyA3LjFWNDg0aDg0LjVjNC4xIDAgNy41IDMuMSA3LjUgN3Y0MnonKSk7XG5leHBvcnRzLkRpbmd0YWxrQ2lyY2xlRmlsbCA9IGdldEljb24oJ2Rpbmd0YWxrLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjI3IDM4NS4zYy0xIDQuMi0zLjUgMTAuNC03IDE3LjhoLjFsLS40LjdjLTIwLjMgNDMuMS03My4xIDEyNy43LTczLjEgMTI3LjdzLS4xLS4yLS4zLS41bC0xNS41IDI2LjhoNzQuNUw1NzUuMSA4MTBsMzIuMy0xMjhoLTU4LjZsMjAuNC04NC43Yy0xNi41IDMuOS0zNS45IDkuNC01OSAxNi44IDAgMC0zMS4yIDE4LjItODkuOS0zNSAwIDAtMzkuNi0zNC43LTE2LjYtNDMuNCA5LjgtMy43IDQ3LjQtOC40IDc3LTEyLjMgNDAtNS40IDY0LjYtOC4yIDY0LjYtOC4yUzQyMiA1MTcgMzkyLjcgNTEyLjVjLTI5LjMtNC42LTY2LjQtNTMuMS03NC4zLTk1LjggMCAwLTEyLjItMjMuNCAyNi4zLTEyLjMgMzguNSAxMS4xIDE5Ny45IDQzLjIgMTk3LjkgNDMuMnMtMjA3LjQtNjMuMy0yMjEuMi03OC43Yy0xMy44LTE1LjQtNDAuNi04NC4yLTM3LjEtMTI2LjUgMCAwIDEuNS0xMC41IDEyLjQtNy43IDAgMCAxNTMuMyA2OS43IDI1OC4xIDEwNy45IDEwNC44IDM3LjkgMTk1LjkgNTcuMyAxODQuMiAxMDYuN3onKSk7XG5leHBvcnRzLkRhdGFiYXNlRmlsbCA9IGdldEljb24oJ2RhdGFiYXNlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIyNGg3MDRWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTI4OCAyMzJjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwek0xNjAgOTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY3MDRIMTYwdjIyNHptMTI4LTEzNmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTE2MCA2NDBoNzA0VjM4NEgxNjB2MjU2em0xMjgtMTY4YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHonKSk7XG5leHBvcnRzLkRpbmd0YWxrU3F1YXJlRmlsbCA9IGdldEljb24oJ2Rpbmd0YWxrLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTczOSA0NDkuM2MtMSA0LjItMy41IDEwLjQtNyAxNy44aC4xbC0uNC43Yy0yMC4zIDQzLjEtNzMuMSAxMjcuNy03My4xIDEyNy43cy0uMS0uMi0uMy0uNWwtMTUuNSAyNi44aDc0LjVMNTc1LjEgODEwbDMyLjMtMTI4aC01OC42bDIwLjQtODQuN2MtMTYuNSAzLjktMzUuOSA5LjQtNTkgMTYuOCAwIDAtMzEuMiAxOC4yLTg5LjktMzUgMCAwLTM5LjYtMzQuNy0xNi42LTQzLjQgOS44LTMuNyA0Ny40LTguNCA3Ny0xMi4zIDQwLTUuNCA2NC42LTguMiA2NC42LTguMlM0MjIgNTE3IDM5Mi43IDUxMi41Yy0yOS4zLTQuNi02Ni40LTUzLjEtNzQuMy05NS44IDAgMC0xMi4yLTIzLjQgMjYuMy0xMi4zIDM4LjUgMTEuMSAxOTcuOSA0My4yIDE5Ny45IDQzLjJzLTIwNy40LTYzLjMtMjIxLjItNzguN2MtMTMuOC0xNS40LTQwLjYtODQuMi0zNy4xLTEyNi41IDAgMCAxLjUtMTAuNSAxMi40LTcuNyAwIDAgMTUzLjMgNjkuNyAyNTguMSAxMDcuOSAxMDQuOCAzNy45IDE5NS45IDU3LjMgMTg0LjIgMTA2Ljd6JykpO1xuZXhwb3J0cy5EaXNsaWtlRmlsbCA9IGdldEljb24oJ2Rpc2xpa2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1LjkgNDkwLjNjMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtNTEuNi0zMC43LTk4LjEtNzguMy0xMTguNGE2Ni4xIDY2LjEgMCAwIDAtMjYuNS01LjRIMjczdjQyOGguM2w4NS44IDMxMC44QzM3Mi45IDg4OSA0MTguOSA5MjQgNDcwLjkgOTI0YzI5LjcgMCA1Ny40LTExLjggNzcuOS0zMy40IDIwLjUtMjEuNSAzMS00OS43IDI5LjUtNzkuNGwtNi0xMjIuOWgyMzkuOWMxMi4xIDAgMjMuOS0zLjIgMzQuMy05LjMgNDAuNC0yMy41IDY1LjUtNjYuMSA2NS41LTExMSAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43ek0xMTIgMTMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVYxMDBoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnonKSk7XG5leHBvcnRzLkRvbGxhckNpcmNsZUZpbGwgPSBnZXRJY29uKCdkb2xsYXItY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMi4zIDY2NS4ybC4yIDMxLjdjMCA0LjQtMy42IDguMS04IDguMWgtMjguNGMtNC40IDAtOC0zLjYtOC04di0zMS40QzQwMS4zIDcyMyAzNTkuNSA2NzIuNCAzNTUgNjE3LjRjLS40LTQuNyAzLjMtOC43IDgtOC43aDQ2LjJjMy45IDAgNy4zIDIuOCA3LjkgNi42IDUuMSAzMS43IDI5LjggNTUuNCA3NC4xIDYxLjNWNTMzLjlsLTI0LjctNi4zYy01Mi4zLTEyLjUtMTAyLjEtNDUuMS0xMDIuMS0xMTIuNyAwLTcyLjkgNTUuNC0xMTIuMSAxMjYuMi0xMTl2LTMzYzAtNC40IDMuNi04IDgtOGgyOC4xYzQuNCAwIDggMy42IDggOHYzMi43YzY4LjUgNi45IDExOS45IDQ2LjkgMTI1LjkgMTA5LjIuNSA0LjctMy4yIDguOC04IDguOGgtNDQuOWMtNCAwLTcuNC0zLTcuOS02LjktNC0yOS4yLTI3LjQtNTMtNjUuNS01OC4ydjEzNC4zbDI1LjQgNS45YzY0LjggMTYgMTA4LjkgNDcgMTA4LjkgMTE2LjQgMCA3NS4zLTU2IDExNy4zLTEzNC4zIDEyNC4xek00MjYuNiA0MTAuM2MwIDI1LjQgMTUuNyA0NS4xIDQ5LjUgNTcuMyA0LjcgMS45IDkuNCAzLjQgMTUgNXYtMTI0Yy0zNi45IDQuNy02NC41IDI1LjQtNjQuNSA2MS43em0xMTYuNSAxMzUuMmMtMi44LS42LTUuNi0xLjMtOC44LTIuMlY2NzdjNDIuNi0zLjggNzItMjcuMiA3Mi02Ni40IDAtMzAuNy0xNS45LTUwLjctNjMuMi02NS4xeicpKTtcbmV4cG9ydHMuRG93bkNpcmNsZUZpbGwgPSBnZXRJY29uKCdkb3duLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTg0LjUgMzUzLjdsLTE3OCAyNDZhNy45NSA3Ljk1IDAgMCAxLTEyLjkgMGwtMTc4LTI0NmMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdIMzgxYzEwLjIgMCAxOS45IDQuOSAyNS45IDEzLjJMNTEyIDU2My42bDEwNS4yLTE0NS40YzYtOC4zIDE1LjYtMTMuMiAyNS45LTEzLjJINjkwYzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eicpKTtcbmV4cG9ydHMuRG93blNxdWFyZUZpbGwgPSBnZXRJY29uKCdkb3duLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY5Ni41IDQxMi43bC0xNzggMjQ2YTcuOTUgNy45NSAwIDAgMS0xMi45IDBsLTE3OC0yNDZjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43SDM4MWMxMC4yIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NTguNmwxMDUuMi0xNDUuNGM2LTguMyAxNS42LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN3onKSk7XG5leHBvcnRzLkRyaWJiYmxlQ2lyY2xlRmlsbCA9IGdldEljb24oJ2RyaWJiYmxlLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NzUuMSAzMjguM2EyNDUuMiAyNDUuMiAwIDAgMC0yMjAuOC01NS4xYzYuOCA5LjEgNTEuNSA2OS45IDkxLjggMTQ0IDg3LjUtMzIuOCAxMjQuNS04Mi42IDEyOS04OC45ek01NTQgNTUyLjhjLTEzOC43IDQ4LjMtMTg4LjYgMTQ0LjYtMTkzIDE1My42IDQxLjcgMzIuNSA5NC4xIDUxLjkgMTUxIDUxLjkgMzQuMSAwIDY2LjYtNi45IDk2LjEtMTkuNS0zLjctMjEuNi0xNy45LTk2LjgtNTIuNS0xODYuNmwtMS42LjZ6bTQ3LjctMTEuOWMzMi4yIDg4LjQgNDUuMyAxNjAuNCA0Ny44IDE3NS40IDU1LjItMzcuMyA5NC41LTk2LjQgMTA1LjQtMTY0LjktOC40LTIuNi03Ni4xLTIyLjgtMTUzLjItMTAuNXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgNzM2Yy0xNTguOCAwLTI4OC0xMjkuMi0yODgtMjg4czEyOS4yLTI4OCAyODgtMjg4IDI4OCAxMjkuMiAyODggMjg4LTEyOS4yIDI4OC0yODggMjg4em01My4xLTM0Ni4yYzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek00OTguNiA0MzJjLTQwLjgtNzIuNS04NC43LTEzMy40LTkxLjItMTQyLjMtNjguOCAzMi41LTEyMC4zIDk1LjktMTM2LjIgMTcyLjIgMTEgLjIgMTEyLjQuNyAyMjcuNC0yOS45em0zMC42IDgyLjVjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6JykpO1xuZXhwb3J0cy5EcmliYmJsZVNxdWFyZUZpbGwgPSBnZXRJY29uKCdkcmliYmJsZS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDk4LjYgNDMyYy00MC44LTcyLjUtODQuNy0xMzMuNC05MS4yLTE0Mi4zLTY4LjggMzIuNS0xMjAuMyA5NS45LTEzNi4yIDE3Mi4yIDExIC4yIDExMi40LjcgMjI3LjQtMjkuOXptNjYuNSAyMS44YzUuNyAxMS43IDExLjIgMjMuNiAxNi4zIDM1LjYgMS44IDQuMiAzLjYgOC40IDUuMyAxMi43IDgxLjgtMTAuMyAxNjMuMiA2LjIgMTcxLjMgNy45LS41LTU4LjEtMjEuMy0xMTEuNC01NS41LTE1My4zLTUuMyA3LjEtNDYuNSA2MC0xMzcuNCA5Ny4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUxMiA4MDBjLTE1OC44IDAtMjg4LTEyOS4yLTI4OC0yODhzMTI5LjItMjg4IDI4OC0yODggMjg4IDEyOS4yIDI4OCAyODgtMTI5LjIgMjg4LTI4OCAyODh6bTg5LjctMjU5LjFjMzIuMiA4OC40IDQ1LjMgMTYwLjQgNDcuOCAxNzUuNCA1NS4yLTM3LjMgOTQuNS05Ni40IDEwNS40LTE2NC45LTguNC0yLjYtNzYuMS0yMi44LTE1My4yLTEwLjV6bS03Mi41LTI2LjRjMy4yLTEgNi40LTIgOS43LTIuOS02LjItMTQtMTIuOS0yOC0xOS45LTQxLjctMTIyLjggMzYuOC0yNDIuMSAzNS4yLTI1Mi44IDM1LS4xIDIuNS0uMSA1LS4xIDcuNSAwIDYzLjIgMjMuOSAxMjAuOSA2My4yIDE2NC41IDUuNS05LjYgNzMtMTIxLjQgMTk5LjktMTYyLjR6bTE0NS45LTE4Ni4yYTI0NS4yIDI0NS4yIDAgMCAwLTIyMC44LTU1LjFjNi44IDkuMSA1MS41IDY5LjkgOTEuOCAxNDQgODcuNS0zMi44IDEyNC41LTgyLjYgMTI5LTg4Ljl6TTU1NCA1NTIuOGMtMTM4LjcgNDguMy0xODguNiAxNDQuNi0xOTMgMTUzLjYgNDEuNyAzMi41IDk0LjEgNTEuOSAxNTEgNTEuOSAzNC4xIDAgNjYuNi02LjkgOTYuMS0xOS41LTMuNy0yMS42LTE3LjktOTYuOC01Mi41LTE4Ni42bC0xLjYuNnonKSk7XG5leHBvcnRzLkRyb3Bib3hDaXJjbGVGaWxsID0gZ2V0SWNvbignZHJvcGJveC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjYzLjggNDU1LjV6bS0xNTEuNS05My44bC0xNTEuOCA5My44IDE1MS44IDkzLjkgMTUxLjUtOTMuOXpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTE1MS4yIDU5NS41TDUxMi42IDc1MGwtMTUxLTkwLjV2LTMzLjFsNDUuNCAyOS40IDEwNS42LTg3LjcgMTA1LjYgODcuNyA0NS4xLTI5LjR2MzMuMXptLTQ1LjYtMjIuNGwtMTA1LjMtODcuN0w0MDcgNjM3LjFsLTE1MS05OS4yIDEwNC41LTgyLjRMMjU2IDM3MS4yIDQwNyAyNzRsMTA1LjMgODcuN0w2MTcuNiAyNzQgNzY4IDM3Mi4xbC0xMDQuMiA4My41TDc2OCA1MzlsLTE1MC40IDk4LjF6JykpO1xuZXhwb3J0cy5Ecm9wYm94U3F1YXJlRmlsbCA9IGdldEljb24oJ2Ryb3Bib3gtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjYzLjIgNjU5LjVMNTEyLjYgNzUwbC0xNTEtOTAuNXYtMzMuMWw0NS40IDI5LjQgMTA1LjYtODcuNyAxMDUuNiA4Ny43IDQ1LjEtMjkuNHYzMy4xem0tNDUuNi0yMi40bC0xMDUuMy04Ny43TDQwNyA2MzcuMWwtMTUxLTk5LjIgMTA0LjUtODIuNEwyNTYgMzcxLjIgNDA3IDI3NGwxMDUuMyA4Ny43TDYxNy42IDI3NCA3NjggMzcyLjFsLTEwNC4yIDgzLjVMNzY4IDUzOWwtMTUwLjQgOTguMXpNNTEyLjMgMzYxLjdsLTE1MS44IDkzLjggMTUxLjggOTMuOSAxNTEuNS05My45em0xNTEuNSA5My44eicpKTtcbmV4cG9ydHMuRW52aXJvbm1lbnRGaWxsID0gZ2V0SWNvbignZW52aXJvbm1lbnQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDMyN2MtMjkuOSAwLTU4IDExLjYtNzkuMiAzMi44QTExMS42IDExMS42IDAgMCAwIDQwMCA0MzljMCAyOS45IDExLjcgNTggMzIuOCA3OS4yQTExMS42IDExMS42IDAgMCAwIDUxMiA1NTFjMjkuOSAwIDU4LTExLjcgNzkuMi0zMi44QzYxMi40IDQ5NyA2MjQgNDY4LjkgNjI0IDQzOWMwLTI5LjktMTEuNi01OC0zMi44LTc5LjJTNTQxLjkgMzI3IDUxMiAzMjd6bTM0Mi42LTM3LjlhMzYyLjQ5IDM2Mi40OSAwIDAgMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwIDAtMTE4LjItNzcuOEM2MTAuNyA3Ni42IDU2Mi4xIDY3IDUxMiA2N2MtNTAuMSAwLTk4LjcgOS42LTE0NC41IDI4LjUtNDQuMyAxOC4zLTg0IDQ0LjUtMTE4LjIgNzcuOEEzNjMuNiAzNjMuNiAwIDAgMCAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAgMCAyMi40IDYuMWM3LjggMCAxNS41LTIgMjIuNC02LjEgMjMuOS0xNC4xIDEwOC4xLTY2LjggMTg4LjQtMTUzIDQ3LTUwLjQgODQuMy0xMDMuNiAxMTEtMTU4LjFDODY3LjEgNTcyIDg4NCA1MDEuOCA4ODQgNDMxLjFjMC00OS4yLTkuOS05Ny0yOS40LTE0MnpNNTEyIDYxNWMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6JykpO1xuZXhwb3J0cy5FZGl0RmlsbCA9IGdldEljb24oJ2VkaXQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDgzNkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di0zNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYyMi4zLTg0YzIgMCA0LS4yIDYtLjVMNDMxLjkgNzIyYzItLjQgMy45LTEuMyA1LjMtMi44bDQyMy45LTQyMy45YTkuOTYgOS45NiAwIDAgMCAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwIDAgOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXonKSk7XG5leHBvcnRzLkV4Y2xhbWF0aW9uQ2lyY2xlRmlsbCA9IGdldEljb24oJ2V4Y2xhbWF0aW9uLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTMyIDIzMmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djI3MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWMjk2em0zMiA0NDBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuRXVyb0NpcmNsZUZpbGwgPSBnZXRJY29uKCdldXJvLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptNjMuNSAzNzUuOGM0LjQgMCA4IDMuNiA4IDhWNDc1YzAgNC40LTMuNiA4LTggOGgtMTM2Yy0uMyA0LjQtLjMgOS4xLS4zIDEzLjh2MzZoMTM2LjJjNC40IDAgOCAzLjYgOCA4VjU2OGMwIDQuNC0zLjYgOC04IDhINDQ0LjljMTUuMyA2MiA2MS4zIDk4LjYgMTI5LjggOTguNiAxOS45IDAgMzcuMS0xLjIgNTEuOC00LjEgNC45LTEgOS41IDIuOCA5LjUgNy44djQyLjhjMCAzLjgtMi43IDctNi40IDcuOC0xNS45IDMuNC0zNC4zIDUuMS01NS4zIDUuMS0xMDkuOCAwLTE4My01OC44LTIwMC4yLTE1OEgzNDRjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMjYuMXYtMzYuOWMwLTQuNCAwLTguOC4zLTEyLjhIMzQ0Yy00LjQgMC04LTMuNi04LTh2LTI3LjJjMC00LjQgMy42LTggOC04aDMxLjdjMTkuNy05NC4yIDkyLTE0OS45IDE5OC42LTE0OS45IDIwLjkgMCAzOS40IDEuOSA1NS4zIDUuNCAzLjcuOCA2LjMgNCA2LjMgNy44VjM0NmguMWMwIDUuMS00LjYgOC44LTkuNiA3LjgtMTQuNy0yLjktMzEuOC00LjQtNTEuNy00LjQtNjUuNCAwLTExMC40IDMzLjUtMTI3LjYgOTAuNGgxMjguNHonKSk7XG5leHBvcnRzLkV4cGVyaW1lbnRGaWxsID0gZ2V0SWNvbignZXhwZXJpbWVudCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yMTguOSA2MzYuM2w0Mi42IDI2LjZjLjEuMS4zLjIuNC4zbDEyLjcgOCAuMy4zYTE4Ni45IDE4Ni45IDAgMCAwIDk0LjEgMjUuMWM0NC45IDAgODcuMi0xNS43IDEyMS00My44YTI1Ni4yNyAyNTYuMjcgMCAwIDEgMTY0LjktNTkuOWM1Mi4zIDAgMTAyLjIgMTUuNyAxNDQuNiA0NC41bDcuOSA1LTExMS42LTI4OVYxNzkuOGg2My41YzQuNCAwIDgtMy42IDgtOFYxMjBjMC00LjQtMy42LTgtOC04SDI2NC43Yy00LjQgMC04IDMuNi04IDh2NTEuOWMwIDQuNCAzLjYgOCA4IDhoNjMuNXYxNzMuNkwyMTguOSA2MzYuM3ptMzMzLTIwMy4xYzIyIDAgMzkuOSAxNy45IDM5LjkgMzkuOVM1NzMuOSA1MTMgNTUxLjkgNTEzIDUxMiA0OTUuMSA1MTIgNDczLjFzMTcuOS0zOS45IDM5LjktMzkuOXpNODc4IDgyNS4xbC0yOS45LTc3LjQtODUuNy01My41LS4xLjFjLS43LS41LTEuNS0xLTIuMi0xLjVsLTguMS01LS4zLS4zYy0yOS0xNy41LTYyLjMtMjYuOC05Ny0yNi44LTQ0LjkgMC04Ny4yIDE1LjctMTIxIDQzLjhhMjU2LjI3IDI1Ni4yNyAwIDAgMS0xNjQuOSA1OS45Yy01MyAwLTEwMy41LTE2LjEtMTQ2LjItNDUuNmwtMjguOS0xOC4xTDE0NiA4MjUuMWMtMi44IDcuNC00LjMgMTUuMi00LjMgMjMgMCAzNS4yIDI4LjYgNjMuOCA2My44IDYzLjhoNjEyLjljNy45IDAgMTUuNy0xLjUgMjMtNC4zYTYzLjYgNjMuNiAwIDAgMCAzNi42LTgyLjV6JykpO1xuZXhwb3J0cy5FeWVJbnZpc2libGVGaWxsID0gZ2V0SWNvbignZXllLWludmlzaWJsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MDggNjI0YTExMiAxMTIgMCAwIDAgMTEyLTExMmMwLTMuMjgtLjE1LTYuNTMtLjQzLTkuNzRMNDk4LjI2IDYyMy41N2MzLjIxLjI4IDYuNDUuNDMgOS43NC40M3ptMzcwLjcyLTQ1OC40NEw4MzYgMTIyLjg4YTggOCAwIDAgMC0xMS4zMSAwTDcxNS4zNyAyMzIuMjNRNjI0LjkxIDE4NiA1MTIgMTg2cS0yODguMyAwLTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVxNTYuNyAxMTkuNDMgMTM2LjU1IDE5MS40NUwxMTIuNTYgODM1YTggOCAwIDAgMCAwIDExLjMxTDE1NS4yNSA4ODlhOCA4IDAgMCAwIDExLjMxIDBsNzEyLjE2LTcxMi4xMmE4IDggMCAwIDAgMC0xMS4zMnpNMzMyIDUxMmExNzYgMTc2IDAgMCAxIDI1OC44OC0xNTUuMjhsLTQ4LjYyIDQ4LjYyYTExMi4wOCAxMTIuMDggMCAwIDAtMTQwLjkyIDE0MC45MmwtNDguNjIgNDguNjJBMTc1LjA5IDE3NS4wOSAwIDAgMSAzMzIgNTEyeicsICdNOTQyLjIgNDg2LjJRODg5LjQgMzc1IDgxNi41MSAzMDQuODVMNjcyLjM3IDQ0OUExNzYuMDggMTc2LjA4IDAgMCAxIDQ0NSA2NzYuMzdMMzIyLjc0IDc5OC42M1E0MDcuODIgODM4IDUxMiA4MzhxMjg4LjMgMCA0MzAuMi0zMDAuM2E2MC4yOSA2MC4yOSAwIDAgMCAwLTUxLjV6JykpO1xuZXhwb3J0cy5FeWVGaWxsID0gZ2V0SWNvbignZXllJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM5NiA1MTJhMTEyIDExMiAwIDEgMCAyMjQgMCAxMTIgMTEyIDAgMSAwLTIyNCAwem01NDYuMi0yNS44Qzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MDggNjg4Yy05Ny4yIDAtMTc2LTc4LjgtMTc2LTE3NnM3OC44LTE3NiAxNzYtMTc2IDE3NiA3OC44IDE3NiAxNzYtNzguOCAxNzYtMTc2IDE3NnonKSk7XG5leHBvcnRzLkZhY2Vib29rRmlsbCA9IGdldEljb24oJ2ZhY2Vib29rJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTkyLjQgMjMzLjVoLTYzLjljLTUwLjEgMC01OS44IDIzLjgtNTkuOCA1OC44djc3LjFoMTE5LjZsLTE1LjYgMTIwLjdoLTEwNFY5MTJINTM5LjJWNjAyLjJINDM0LjlWNDgxLjRoMTA0LjN2LTg5YzAtMTAzLjMgNjMuMS0xNTkuNiAxNTUuMy0xNTkuNiA0NC4yIDAgODIuMSAzLjMgOTMuMiA0Ljh2MTA3Ljl6JykpO1xuZXhwb3J0cy5GYXN0QmFja3dhcmRGaWxsID0gZ2V0SWNvbignZmFzdC1iYWNrd2FyZCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTcuNiAyNzMuNUwyMzAuMiA0OTkuM2ExNi4xNCAxNi4xNCAwIDAgMCAwIDI1LjRsMjg3LjQgMjI1LjhjMTAuNyA4LjQgMjYuNC44IDI2LjQtMTIuN1YyODYuMmMwLTEzLjUtMTUuNy0yMS4xLTI2LjQtMTIuN3ptMzIwIDBMNTUwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bS02MjAtMjUuNWgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZhc3RGb3J3YXJkRmlsbCA9IGdldEljb24oJ2Zhc3QtZm9yd2FyZCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003OTMuOCA0OTkuM0w1MDYuNCAyNzMuNWMtMTAuNy04LjQtMjYuNC0uOC0yNi40IDEyLjd2NDUxLjZjMCAxMy41IDE1LjcgMjEuMSAyNi40IDEyLjdsMjg3LjQtMjI1LjhhMTYuMTQgMTYuMTQgMCAwIDAgMC0yNS40em0tMzIwIDBMMTg2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS41YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YzQuMS0zLjIgNi4yLTggNi4yLTEyLjcgMC00LjYtMi4xLTkuNC02LjItMTIuNnpNODU3LjYgMjQ4aC01MS4yYy0zLjUgMC02LjQgMi43LTYuNCA2djUxNmMwIDMuMyAyLjkgNiA2LjQgNmg1MS4yYzMuNSAwIDYuNC0yLjcgNi40LTZWMjU0YzAtMy4zLTIuOS02LTYuNC02eicpKTtcbmV4cG9ydHMuRmlsZUFkZEZpbGwgPSBnZXRJY29uKCdmaWxlLWFkZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODAgNTgwSDM3MmE4IDggMCAwIDAtOCA4djQ4YTggOCAwIDAgMCA4IDhoMTA4djEwOGE4IDggMCAwIDAgOCA4aDQ4YTggOCAwIDAgMCA4LThWNjQ0aDEwOGE4IDggMCAwIDAgOC04di00OGE4IDggMCAwIDAtOC04SDU0NFY0NzJhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHYxMDh6bTM3NC42LTI5MS4zYzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6JykpO1xuZXhwb3J0cy5GaWxlRXhjZWxGaWxsID0gZ2V0SWNvbignZmlsZS1leGNlbCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01NzUuMzQgNDc3Ljg0bC02MS4yMiAxMDIuM0w0NTIuMyA0NzcuOGExMiAxMiAwIDAgMC0xMC4yNy01Ljc5aC0zOC40NGExMiAxMiAwIDAgMC02LjQgMS44NSAxMiAxMiAwIDAgMC0zLjc1IDE2LjU2bDgyLjM0IDEzMC40Mi04My40NSAxMzIuNzhhMTIgMTIgMCAwIDAtMS44NCA2LjM5IDEyIDEyIDAgMCAwIDEyIDEyaDM0LjQ2YTEyIDEyIDAgMCAwIDEwLjIxLTUuN2w2Mi43LTEwMS40NyA2Mi4zIDEwMS40NWExMiAxMiAwIDAgMCAxMC4yMyA1LjcyaDM3LjQ4YTEyIDEyIDAgMCAwIDYuNDgtMS45IDEyIDEyIDAgMCAwIDMuNjItMTYuNThsLTgzLjgzLTEzMC41NSA4NS4zLTEzMi40N2ExMiAxMiAwIDAgMCAxLjktNi41IDEyIDEyIDAgMCAwLTEyLTEyaC0zNS43YTEyIDEyIDAgMCAwLTEwLjI5IDUuODR6JykpO1xuZXhwb3J0cy5GaWxlRXhjbGFtYXRpb25GaWxsID0gZ2V0SWNvbignZmlsZS1leGNsYW1hdGlvbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01MTIgNzg0YTQwIDQwIDAgMSAwIDAtODAgNDAgNDAgMCAwIDAgMCA4MHptMzItMTUyVjQ0OGE4IDggMCAwIDAtOC04aC00OGE4IDggMCAwIDAtOCA4djE4NGE4IDggMCAwIDAgOCA4aDQ4YTggOCAwIDAgMCA4LTh6JykpO1xuZXhwb3J0cy5GaWxlSW1hZ2VGaWxsID0gZ2V0SWNvbignZmlsZS1pbWFnZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN0w2MzkuNCA3My40Yy02LTYtMTQuMi05LjQtMjIuNy05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42ek00MDAgNDAyYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMjk2IDI5NEgzMjhjLTYuNyAwLTEwLjQtNy43LTYuMy0xMi45bDk5LjgtMTI3LjJhOCA4IDAgMCAxIDEyLjYgMGw0MS4xIDUyLjQgNzcuOC05OS4yYTggOCAwIDAgMSAxMi42IDBsMTM2LjUgMTc0YzQuMyA1LjIuNSAxMi45LTYuMSAxMi45em0tOTQtMzcwVjEzNy44TDc5MC4yIDMyNkg2MDJ6JykpO1xuZXhwb3J0cy5GaWxlTWFya2Rvd25GaWxsID0gZ2V0SWNvbignZmlsZS1tYXJrZG93bicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek00MjYuMTMgNjAwLjkzbDU5LjExIDEzMi45N2ExNiAxNiAwIDAgMCAxNC42MiA5LjVoMjQuMDZhMTYgMTYgMCAwIDAgMTQuNjMtOS41MWw1OS4xLTEzMy4zNVY3NThhMTYgMTYgMCAwIDAgMTYuMDEgMTZINjQxYTE2IDE2IDAgMCAwIDE2LTE2VjQ4NmExNiAxNiAwIDAgMC0xNi0xNmgtMzQuNzVhMTYgMTYgMCAwIDAtMTQuNjcgOS42Mkw1MTIuMSA2NjIuMmwtNzkuNDgtMTgyLjU5YTE2IDE2IDAgMCAwLTE0LjY3LTkuNjFIMzgzYTE2IDE2IDAgMCAwLTE2IDE2djI3MmExNiAxNiAwIDAgMCAxNiAxNmgyNy4xM2ExNiAxNiAwIDAgMCAxNi0xNlY2MDAuOTN6JykpO1xuZXhwb3J0cy5GaWxlUGRmRmlsbCA9IGdldEljb24oJ2ZpbGUtcGRmJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTYzMy4yMiA2MzcuMjZjLTE1LjE4LS41LTMxLjMyLjY3LTQ5LjY1IDIuOTYtMjQuMy0xNC45OS00MC42Ni0zNS41OC01Mi4yOC02NS44M2wxLjA3LTQuMzggMS4yNC01LjE4YzQuMy0xOC4xMyA2LjYxLTMxLjM2IDcuMy00NC43LjUyLTEwLjA3LS4wNC0xOS4zNi0xLjgzLTI3Ljk3LTMuMy0xOC41OS0xNi40NS0yOS40Ni0zMy4wMi0zMC4xMy0xNS40NS0uNjMtMjkuNjUgOC0zMy4yOCAyMS4zNy01LjkxIDIxLjYyLTIuNDUgNTAuMDcgMTAuMDggOTguNTktMTUuOTYgMzguMDUtMzcuMDUgODIuNjYtNTEuMiAxMDcuNTQtMTguODkgOS43NC0zMy42IDE4LjYtNDUuOTYgMjguNDItMTYuMyAxMi45Ny0yNi40OCAyNi4zLTI5LjI4IDQwLjMtMS4zNiA2LjQ5LjY5IDE0Ljk3IDUuMzYgMjEuOTIgNS4zIDcuODggMTMuMjggMTMgMjIuODUgMTMuNzQgMjQuMTUgMS44NyA1My44My0yMy4wMyA4Ni42LTc5LjI2IDMuMjktMS4xIDYuNzctMi4yNiAxMS4wMi0zLjdsMTEuOS00LjAyYzcuNTMtMi41NCAxMi45OS00LjM2IDE4LjM5LTYuMTEgMjMuNC03LjYyIDQxLjEtMTIuNDMgNTcuMi0xNS4xNyAyNy45OCAxNC45OCA2MC4zMiAyNC44IDgyLjEgMjQuOCAxNy45OCAwIDMwLjEzLTkuMzIgMzQuNTItMjMuOTkgMy44NS0xMi44OC44LTI3LjgyLTcuNDgtMzYuMDgtOC41Ni04LjQxLTI0LjMtMTIuNDMtNDUuNjUtMTMuMTJ6TTM4NS4yMyA3NjUuNjh2LS4zNmwuMTMtLjM0YTU0Ljg2IDU0Ljg2IDAgMCAxIDUuNi0xMC43NmM0LjI4LTYuNTggMTAuMTctMTMuNSAxNy40Ny0yMC44NyAzLjkyLTMuOTUgOC03LjggMTIuNzktMTIuMTIgMS4wNy0uOTYgNy45MS03LjA1IDkuMTktOC4yNWwxMS4xNy0xMC40LTguMTIgMTIuOTNjLTEyLjMyIDE5LjY0LTIzLjQ2IDMzLjc4LTMzIDQzLTMuNTEgMy40LTYuNiA1LjktOS4xIDcuNTFhMTYuNDMgMTYuNDMgMCAwIDEtMi42MSAxLjQyYy0uNDEuMTctLjc3LjI3LTEuMTMuM2EyLjIgMi4yIDAgMCAxLTEuMTItLjE1IDIuMDcgMi4wNyAwIDAgMS0xLjI3LTEuOTF6TTUxMS4xNyA1NDcuNGwtMi4yNiA0LTEuNC00LjM4Yy0zLjEtOS44My01LjM4LTI0LjY0LTYuMDEtMzgtLjcyLTE1LjIuNDktMjQuMzIgNS4yOS0yNC4zMiA2Ljc0IDAgOS44MyAxMC44IDEwLjA3IDI3LjA1LjIyIDE0LjI4LTIuMDMgMjkuMTQtNS43IDM1LjY1em0tNS44MSA1OC40NmwxLjUzLTQuMDUgMi4wOSAzLjhjMTEuNjkgMjEuMjQgMjYuODYgMzguOTYgNDMuNTQgNTEuMzFsMy42IDIuNjYtNC4zOS45Yy0xNi4zMyAzLjM4LTMxLjU0IDguNDYtNTIuMzQgMTYuODUgMi4xNy0uODgtMjEuNjIgOC44Ni0yNy42NCAxMS4xN2wtNS4yNSAyLjAxIDIuOC00Ljg4YzEyLjM1LTIxLjUgMjMuNzYtNDcuMzIgMzYuMDUtNzkuNzd6bTE1Ny42MiA3Ni4yNmMtNy44NiAzLjEtMjQuNzguMzMtNTQuNTctMTIuMzlsLTcuNTYtMy4yMiA4LjItLjZjMjMuMy0xLjczIDM5LjgtLjQ1IDQ5LjQyIDMuMDcgNC4xIDEuNSA2LjgzIDMuMzkgOC4wNCA1LjU1YTQuNjQgNC42NCAwIDAgMS0xLjM2IDYuMzEgNi43IDYuNyAwIDAgMS0yLjE3IDEuMjh6JykpO1xuZXhwb3J0cy5GaWxlUHB0RmlsbCA9IGdldEljb24oJ2ZpbGUtcHB0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQ2OC41MyA3NjB2LTkxLjU0aDU5LjI3YzYwLjU3IDAgMTAwLjItMzkuNjUgMTAwLjItOTguMTIgMC01OC4yMi0zOS41OC05OC4zNC05OS45OC05OC4zNEg0MjRhMTIgMTIgMCAwIDAtMTIgMTJ2Mjc2YTEyIDEyIDAgMCAwIDEyIDEyaDMyLjUzYTEyIDEyIDAgMCAwIDEyLTEyem0wLTEzOS4zM2gzNC45YzQ3LjgyIDAgNjcuMTktMTIuOTMgNjcuMTktNTAuMzMgMC0zMi4wNS0xOC4xMi01MC4xMi00OS44Ny01MC4xMmgtNTIuMjJ2MTAwLjQ1eicpKTtcbmV4cG9ydHMuRmlsZVRleHRGaWxsID0gZ2V0SWNvbignZmlsZS10ZXh0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTMyMCA0ODJhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDM4NGE4IDggMCAwIDAgOC04di00OGE4IDggMCAwIDAtOC04SDMyMHptMCAxMzZhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDE4NGE4IDggMCAwIDAgOC04di00OGE4IDggMCAwIDAtOC04SDMyMHonKSk7XG5leHBvcnRzLkZpbGVXb3JkRmlsbCA9IGdldEljb24oJ2ZpbGUtd29yZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek01MTIgNTY2LjFsNTIuODEgMTk3YTEyIDEyIDAgMCAwIDExLjYgOC45aDMxLjc3YTEyIDEyIDAgMCAwIDExLjYtOC44OGw3NC4zNy0yNzZhMTIgMTIgMCAwIDAgLjQtMy4xMiAxMiAxMiAwIDAgMC0xMi0xMmgtMzUuNTdhMTIgMTIgMCAwIDAtMTEuNyA5LjMxbC00NS43OCAxOTkuMS00OS43Ni0xOTkuMzJBMTIgMTIgMCAwIDAgNTI4LjEgNDcyaC0zMi4yYTEyIDEyIDAgMCAwLTExLjY0IDkuMUw0MzQuNiA2ODAuMDEgMzg4LjUgNDgxLjNhMTIgMTIgMCAwIDAtMTEuNjgtOS4yOWgtMzUuMzlhMTIgMTIgMCAwIDAtMy4xMS40MSAxMiAxMiAwIDAgMC04LjQ3IDE0LjdsNzQuMTcgMjc2QTEyIDEyIDAgMCAwIDQxNS42IDc3MmgzMS45OWExMiAxMiAwIDAgMCAxMS41OS04LjlsNTIuODEtMTk3eicpKTtcbmV4cG9ydHMuRmlsZVVua25vd25GaWxsID0gZ2V0SWNvbignZmlsZS11bmtub3duJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6TTQwMiA1NDljMCA1LjQgNC40IDkuNSA5LjggOS41aDMyLjRjNS40IDAgOS44LTQuMiA5LjgtOS40IDAtMjguMiAyNS44LTUxLjYgNTgtNTEuNnM1OCAyMy40IDU4IDUxLjVjMCAyNS4zLTIxIDQ3LjItNDkuMyA1MC45LTE5LjMgMi44LTM0LjUgMjAuMy0zNC43IDQwLjF2MzJjMCA1LjUgNC41IDEwIDEwIDEwaDMyYzUuNSAwIDEwLTQuNSAxMC0xMHYtMTIuMmMwLTYgNC0xMS41IDkuNy0xMy4zIDQ0LjYtMTQuNCA3NS01NCA3NC4zLTk4LjktLjgtNTUuNS00OS4yLTEwMC44LTEwOC41LTEwMS42LTYxLjQtLjctMTExLjUgNDUuNi0xMTEuNSAxMDN6bTExMCAyMjdhMzIgMzIgMCAxIDAgMC02NCAzMiAzMiAwIDAgMCAwIDY0eicpKTtcbmV4cG9ydHMuRmlsZVppcEZpbGwgPSBnZXRJY29uKCdmaWxlLXppcCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguN2M2IDYgOS40IDE0LjEgOS40IDIyLjZWOTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMySDE5MmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWOTZjMC0xNy43IDE0LjMtMzIgMzItMzJoNDI0LjdjOC41IDAgMTYuNyAzLjQgMjIuNyA5LjRsMjE1LjIgMjE1LjN6TTc5MC4yIDMyNkw2MDIgMTM3LjhWMzI2aDE4OC4yek0yOTYgMTM2djY0aDY0di02NGgtNjR6bTY0IDY0djY0aDY0di02NGgtNjR6bS02NCA2NHY2NGg2NHYtNjRoLTY0em02NCA2NHY2NGg2NHYtNjRoLTY0em0tNjQgNjR2NjRoNjR2LTY0aC02NHptNjQgNjR2NjRoNjR2LTY0aC02NHptLTY0IDY0djY0aDY0di02NGgtNjR6bTAgNjR2MTYwaDEyOFY1ODRIMjk2em00OCA0OGgzMnY2NGgtMzJ2LTY0eicpKTtcbmV4cG9ydHMuRmlsZUZpbGwgPSBnZXRJY29uKCdmaWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43YzYgNiA5LjQgMTQuMSA5LjQgMjIuNlY5MjhjMCAxNy43LTE0LjMgMzItMzIgMzJIMTkyYy0xNy43IDAtMzItMTQuMy0zMi0zMlY5NmMwLTE3LjcgMTQuMy0zMiAzMi0zMmg0MjQuN2M4LjUgMCAxNi43IDMuNCAyMi43IDkuNGwyMTUuMiAyMTUuM3pNNzkwLjIgMzI2TDYwMiAxMzcuOFYzMjZoMTg4LjJ6JykpO1xuZXhwb3J0cy5GaWx0ZXJGaWxsID0gZ2V0SWNvbignZmlsdGVyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eicpKTtcbmV4cG9ydHMuRmlyZUZpbGwgPSBnZXRJY29uKCdmaXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzNC4xIDQ2OS4yQTM0Ny40OSAzNDcuNDkgMCAwIDAgNzUxLjIgMzU0bC0yOS4xLTI2LjdhOC4wOSA4LjA5IDAgMCAwLTEzIDMuM2wtMTMgMzcuM2MtOC4xIDIzLjQtMjMgNDcuMy00NC4xIDcwLjgtMS40IDEuNS0zIDEuOS00LjEgMi0xLjEuMS0yLjgtLjEtNC4zLTEuNS0xLjQtMS4yLTIuMS0zLTItNC44IDMuNy02MC4yLTE0LjMtMTI4LjEtNTMuNy0yMDJDNTU1LjMgMTcxIDUxMCAxMjMuMSA0NTMuNCA4OS43bC00MS4zLTI0LjNjLTUuNC0zLjItMTIuMyAxLTEyIDcuM2wyLjIgNDhjMS41IDMyLjgtMi4zIDYxLjgtMTEuMyA4NS45LTExIDI5LjUtMjYuOCA1Ni45LTQ3IDgxLjVhMjk1LjY0IDI5NS42NCAwIDAgMS00Ny41IDQ2LjEgMzUyLjYgMzUyLjYgMCAwIDAtMTAwLjMgMTIxLjVBMzQ3Ljc1IDM0Ny43NSAwIDAgMCAxNjAgNjEwYzAgNDcuMiA5LjMgOTIuOSAyNy43IDEzNmEzNDkuNCAzNDkuNCAwIDAgMCA3NS41IDExMC45YzMyLjQgMzIgNzAgNTcuMiAxMTEuOSA3NC43QzQxOC41IDk0OS44IDQ2NC41IDk1OSA1MTIgOTU5czkzLjUtOS4yIDEzNi45LTI3LjNBMzQ4LjYgMzQ4LjYgMCAwIDAgNzYwLjggODU3YzMyLjQtMzIgNTcuOC02OS40IDc1LjUtMTEwLjlhMzQ0LjIgMzQ0LjIgMCAwIDAgMjcuNy0xMzZjMC00OC44LTEwLTk2LjItMjkuOS0xNDAuOXonKSk7XG5leHBvcnRzLkZsYWdGaWxsID0gZ2V0SWNvbignZmxhZycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMzA1SDYyNFYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJIMTg0di00MGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2Nzg0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNjQwaDI0OHYxMTNjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDE2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzN2MwLTE3LjctMTQuMy0zMi0zMi0zMnonKSk7XG5leHBvcnRzLkZvbGRlckFkZEZpbGwgPSBnZXRJY29uKCdmb2xkZXItYWRkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MzIgNTc3YzAgMy44LTMuNCA3LTcuNSA3SDU0MHY4NC45YzAgMy45LTMuMiA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1ODRoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy44IDMuNC03IDcuNS03SDQ4NHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOCAwIDcgMy4yIDcgNy4xVjUyOGg4NC41YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6JykpO1xuZXhwb3J0cy5Gb2xkZXJGaWxsID0gZ2V0SWNvbignZm9sZGVyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuRm9sZGVyT3BlbkZpbGwgPSBnZXRJY29uKCdmb2xkZXItb3BlbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggNDQ0SDgyMFYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0NzNMMzU1LjcgMTg2LjJhOC4xNSA4LjE1IDAgMCAwLTUuNS0yLjJIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2OThjMTMgMCAyNC44LTcuOSAyOS43LTIwbDEzNC0zMzJjMS41LTMuOCAyLjMtNy45IDIuMy0xMiAwLTE3LjctMTQuMy0zMi0zMi0zMnptLTE4MCAwSDIzOGMtMTMgMC0yNC44IDcuOS0yOS43IDIwTDEzNiA2NDMuMlYyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NHonKSk7XG5leHBvcnRzLkZvcndhcmRGaWxsID0gZ2V0SWNvbignZm9yd2FyZCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ004MjUuOCA0OThMNTM4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMODI1LjggNTI2YzguMy03LjIgOC4zLTIwLjggMC0yOHptLTMyMCAwTDIxOC40IDI0OS45Yy0xMC43LTkuMi0yNi40LS45LTI2LjQgMTR2NDk2LjNjMCAxNC45IDE1LjcgMjMuMiAyNi40IDE0TDUwNS44IDUyNmM0LjEtMy42IDYuMi04LjggNi4yLTE0IDAtNS4yLTIuMS0xMC40LTYuMi0xNHonKSk7XG5leHBvcnRzLkZyb3duRmlsbCA9IGdldEljb24oJ2Zyb3duJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0yODggNDIxYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzc2IDI3MmgtNDguMWMtNC4yIDAtNy44LTMuMi04LjEtNy40QzYwNCA2MzYuMSA1NjIuNSA1OTcgNTEyIDU5N3MtOTIuMSAzOS4xLTk1LjggODguNmMtLjMgNC4yLTMuOSA3LjQtOC4xIDcuNEgzNjBhOCA4IDAgMCAxLTgtOC40YzQuNC04NC4zIDc0LjUtMTUxLjYgMTYwLTE1MS42czE1NS42IDY3LjMgMTYwIDE1MS42YTggOCAwIDAgMS04IDguNHptMjQtMjI0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkZ1bmRGaWxsID0gZ2V0SWNvbignZnVuZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjYgMTY0SDk0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTkyLjMgMTk0LjRsLTI5NyAyOTcuMmE4LjAzIDguMDMgMCAwIDEtMTEuMyAwTDQxMC45IDU0MS4xIDIzOC40IDcxMy43YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwIDEgMC0xMS4zbDIxNC45LTIxNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwTDUzMSA1NjVsMjU0LjUtMjU0LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzNi44IDM2LjhjMy4yIDMgMy4yIDguMS4xIDExLjJ6JykpO1xuZXhwb3J0cy5GdW5uZWxQbG90RmlsbCA9IGdldEljb24oJ2Z1bm5lbC1wbG90JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMzNi43IDU4NmgzNTAuNmw4NC45LTE0OEgyNTEuOHptNTQzLjQtNDMySDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMjE1IDM3NGg1OTRsOTguNy0xNzJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek0zNDkgODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjY1MEgzNDl2MTg4eicpKTtcbmV4cG9ydHMuR2lmdEZpbGwgPSBnZXRJY29uKCdnaWZ0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE2MCA4OTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjg2VjU1MEgxNjB2MzQ0em0zODYgMzJoMjg2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU1MEg1NDZ2Mzc2em0zMzQtNjE2SDczMi40YzEzLjYtMjEuNCAyMS42LTQ2LjggMjEuNi03NCAwLTc2LjEtNjEuOS0xMzgtMTM4LTEzOC00MS40IDAtNzguNyAxOC40LTEwNCA0Ny40LTI1LjMtMjktNjIuNi00Ny40LTEwNC00Ny40LTc2LjEgMC0xMzggNjEuOS0xMzggMTM4IDAgMjcuMiA3LjkgNTIuNiAyMS42IDc0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTQwaDM2NlYzMTBoNjh2MTcyaDM2NlYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MDItNGgtNzBjLTM4LjYgMC03MC0zMS40LTcwLTcwczMxLjQtNzAgNzAtNzAgNzAgMzEuNCA3MCA3MHY3MHptMTM4IDBoLTcwdi03MGMwLTM4LjYgMzEuNC03MCA3MC03MHM3MCAzMS40IDcwIDcwLTMxLjQgNzAtNzAgNzB6JykpO1xuZXhwb3J0cy5HaXRodWJGaWxsID0gZ2V0SWNvbignZ2l0aHViJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMS42IDc2LjNDMjY0LjMgNzYuMiA2NCAyNzYuNCA2NCA1MjMuNSA2NCA3MTguOSAxODkuMyA4ODUgMzYzLjggOTQ2YzIzLjUgNS45IDE5LjktMTAuOCAxOS45LTIyLjJ2LTc3LjVjLTEzNS43IDE1LjktMTQxLjItNzMuOS0xNTAuMy04OC45QzIxNSA3MjYgMTcxLjUgNzE4IDE4NC41IDcwM2MzMC45LTE1LjkgNjIuNCA0IDk4LjkgNTcuOSAyNi40IDM5LjEgNzcuOSAzMi41IDEwNCAyNiA1LjctMjMuNSAxNy45LTQ0LjUgMzQuNy02MC44LTE0MC42LTI1LjItMTk5LjItMTExLTE5OS4yLTIxMyAwLTQ5LjUgMTYuMy05NSA0OC4zLTEzMS43LTIwLjQtNjAuNSAxLjktMTEyLjMgNC45LTEyMCA1OC4xLTUuMiAxMTguNSA0MS42IDEyMy4yIDQ1LjMgMzMtOC45IDcwLjctMTMuNiAxMTIuOS0xMy42IDQyLjQgMCA4MC4yIDQuOSAxMTMuNSAxMy45IDExLjMtOC42IDY3LjMtNDguOCAxMjEuMy00My45IDIuOSA3LjcgMjQuNyA1OC4zIDUuNSAxMTggMzIuNCAzNi44IDQ4LjkgODIuNyA0OC45IDEzMi4zIDAgMTAyLjItNTkgMTg4LjEtMjAwIDIxMi45YTEyNy41IDEyNy41IDAgMCAxIDM4LjEgOTF2MTEyLjVjLjggOSAwIDE3LjkgMTUgMTcuOSAxNzcuMS01OS43IDMwNC42LTIyNyAzMDQuNi00MjQuMSAwLTI0Ny4yLTIwMC40LTQ0Ny4zLTQ0Ny41LTQ0Ny4zeicpKTtcbmV4cG9ydHMuR2l0bGFiRmlsbCA9IGdldEljb24oJ2dpdGxhYicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTAuNSA1NTMuMmwtMTA5LTM3MC44Yy02LjgtMjAuNC0yMy4xLTM0LjEtNDQuOS0zNC4xcy0zOS41IDEyLjMtNDYuMyAzMi43bC03Mi4yIDIxNS40SDM4Ni4yTDMxNCAxODEuMWMtNi44LTIwLjQtMjQuNS0zMi43LTQ2LjMtMzIuN3MtMzkuNSAxMy42LTQ0LjkgMzQuMUwxMTMuOSA1NTMuMmMtNC4xIDEzLjYgMS40IDI4LjYgMTIuMyAzNi44bDM4NS40IDI4OSAzODYuNy0yODljMTAuOC04LjEgMTYuMy0yMy4xIDEyLjItMzYuOHonKSk7XG5leHBvcnRzLkdvbGRlbkZpbGwgPSBnZXRJY29uKCdnb2xkZW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA1LjkgODA2LjdsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0g1OTYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC4zLS43IDcuMy00LjggNi42LTkuMnptLTQ3MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMTY2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4ek0zNDIgNDcyaDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gzODIuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Hb29nbGVDaXJjbGVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTY3IDYzMy42QzYzOC40IDczNSA1ODMgNzU3IDUxNi45IDc1N2MtOTUuNyAwLTE3OC41LTU0LjktMjE4LjgtMTM0LjlDMjgxLjUgNTg5IDI3MiA1NTEuNiAyNzIgNTEyczkuNS03NyAyNi4xLTExMC4xYzQwLjMtODAuMSAxMjMuMS0xMzUgMjE4LjgtMTM1IDY2IDAgMTIxLjQgMjQuMyAxNjMuOSA2My44TDYxMC42IDQwMWMtMjUuNC0yNC4zLTU3LjctMzYuNi05My42LTM2LjYtNjMuOCAwLTExNy44IDQzLjEtMTM3LjEgMTAxLTQuOSAxNC43LTcuNyAzMC40LTcuNyA0Ni42czIuOCAzMS45IDcuNyA0Ni42YzE5LjMgNTcuOSA3My4zIDEwMSAxMzcgMTAxIDMzIDAgNjEtOC43IDgyLjktMjMuNCAyNi0xNy40IDQzLjItNDMuMyA0OC45LTc0SDUxNi45di05NC44aDIzMC43YzIuOSAxNi4xIDQuNCAzMi44IDQuNCA1MC4xIDAgNzQuNy0yNi43IDEzNy40LTczIDE4MC4xeicpKTtcbmV4cG9ydHMuR29vZ2xlUGx1c0NpcmNsZUZpbGwgPSBnZXRJY29uKCdnb29nbGUtcGx1cy1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTM2LjUgNTU4LjhjLTQzLjkgNjEuOC0xMzIuMSA3OS44LTIwMC45IDUzLjMtNjktMjYuMy0xMTgtOTkuMi0xMTIuMS0xNzMuNSAxLjUtOTAuOSA4NS4yLTE3MC42IDE3Ni4xLTE2Ny41IDQzLjYtMiA4NC42IDE2LjkgMTE4IDQzLjYtMTQuMyAxNi4yLTI5IDMxLjgtNDQuOCA0Ni4zLTQwLjEtMjcuNy05Ny4yLTM1LjYtMTM3LjMtMy42LTU3LjQgMzkuNy02MCAxMzMuNC00LjggMTc2LjEgNTMuNyA0OC43IDE1NS4yIDI0LjUgMTcwLjEtNTAuMS0zMy42LS41LTY3LjQgMC0xMDEtMS4xLS4xLTIwLjEtLjItNDAuMS0uMS02MC4yIDU2LjItLjIgMTEyLjUtLjMgMTY4LjguMiAzLjMgNDcuMy0zIDk3LjUtMzIgMTM2LjV6TTc5MSA1MzYuNWMtMTYuOC4yLTMzLjYuMy01MC40LjQtLjIgMTYuOC0uMyAzMy42LS4zIDUwLjRINjkwYy0uMi0xNi44LS4yLTMzLjUtLjMtNTAuMy0xNi44LS4yLTMzLjYtLjMtNTAuNC0uNXYtNTAuMWMxNi44LS4yIDMzLjYtLjMgNTAuNC0uMy4xLTE2LjguMy0zMy42LjQtNTAuNGg1MC4ybC4zIDUwLjRjMTYuOC4yIDMzLjYuMiA1MC40LjN2NTAuMXonKSk7XG5leHBvcnRzLkdvb2dsZVBsdXNTcXVhcmVGaWxsID0gZ2V0SWNvbignZ29vZ2xlLXBsdXMtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTQ4LjUgNjIyLjhjLTQzLjkgNjEuOC0xMzIuMSA3OS44LTIwMC45IDUzLjMtNjktMjYuMy0xMTgtOTkuMi0xMTIuMS0xNzMuNSAxLjUtOTAuOSA4NS4yLTE3MC42IDE3Ni4xLTE2Ny41IDQzLjYtMiA4NC42IDE2LjkgMTE4IDQzLjYtMTQuMyAxNi4yLTI5IDMxLjgtNDQuOCA0Ni4zLTQwLjEtMjcuNy05Ny4yLTM1LjYtMTM3LjMtMy42LTU3LjQgMzkuNy02MCAxMzMuNC00LjggMTc2LjEgNTMuNyA0OC43IDE1NS4yIDI0LjUgMTcwLjEtNTAuMS0zMy42LS41LTY3LjQgMC0xMDEtMS4xLS4xLTIwLjEtLjItNDAuMS0uMS02MC4yIDU2LjItLjIgMTEyLjUtLjMgMTY4LjguMiAzLjMgNDcuMy0zIDk3LjUtMzIgMTM2LjV6TTc5MSA1MzYuNWMtMTYuOC4yLTMzLjYuMy01MC40LjQtLjIgMTYuOC0uMyAzMy42LS4zIDUwLjRINjkwYy0uMi0xNi44LS4yLTMzLjUtLjMtNTAuMy0xNi44LS4yLTMzLjYtLjMtNTAuNC0uNXYtNTAuMWMxNi44LS4yIDMzLjYtLjMgNTAuNC0uMy4xLTE2LjguMy0zMy42LjQtNTAuNGg1MC4ybC4zIDUwLjRjMTYuOC4yIDMzLjYuMiA1MC40LjN2NTAuMXonKSk7XG5leHBvcnRzLkdvb2dsZVNxdWFyZUZpbGwgPSBnZXRJY29uKCdnb29nbGUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjc5IDY5Ny42QzYzOC40IDczNSA1ODMgNzU3IDUxNi45IDc1N2MtOTUuNyAwLTE3OC41LTU0LjktMjE4LjgtMTM0LjlBMjQ1LjAyIDI0NS4wMiAwIDAgMSAyNzIgNTEyYzAtMzkuNiA5LjUtNzcgMjYuMS0xMTAuMSA0MC4zLTgwLjEgMTIzLjEtMTM1IDIxOC44LTEzNSA2NiAwIDEyMS40IDI0LjMgMTYzLjkgNjMuOEw2MTAuNiA0MDFjLTI1LjQtMjQuMy01Ny43LTM2LjYtOTMuNi0zNi42LTYzLjggMC0xMTcuOCA0My4xLTEzNy4xIDEwMS00LjkgMTQuNy03LjcgMzAuNC03LjcgNDYuNnMyLjggMzEuOSA3LjcgNDYuNmMxOS4zIDU3LjkgNzMuMyAxMDEgMTM3IDEwMSAzMyAwIDYxLTguNyA4Mi45LTIzLjQgMjYtMTcuNCA0My4yLTQzLjMgNDguOS03NEg1MTYuOXYtOTQuOGgyMzAuN2MyLjkgMTYuMSA0LjQgMzIuOCA0LjQgNTAuMSAwIDc0LjctMjYuNyAxMzcuNC03MyAxODAuMXonKSk7XG5leHBvcnRzLkhkZEZpbGwgPSBnZXRJY29uKCdoZGQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjI0aDcwNFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDU2IDIxNmMwIDQuNC0zLjYgOC04IDhIMjY0Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4ek0xNjAgOTI4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY3MDRIMTYwdjIyNHptNTc2LTEzNmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTE2MCA2NDBoNzA0VjM4NEgxNjB2MjU2em05Ni0xNTJjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDI2NGMtNC40IDAtOC0zLjYtOC04di00OHonKSk7XG5leHBvcnRzLkhlYXJ0RmlsbCA9IGdldEljb24oJ2hlYXJ0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyMyAyODMuNmEyNjAuMDQgMjYwLjA0IDAgMCAwLTU2LjktODIuOCAyNjQuNCAyNjQuNCAwIDAgMC04NC01NS41QTI2NS4zNCAyNjUuMzQgMCAwIDAgNjc5LjcgMTI1Yy00OS4zIDAtOTcuNCAxMy41LTEzOS4yIDM5LTEwIDYuMS0xOS41IDEyLjgtMjguNSAyMC4xLTktNy4zLTE4LjUtMTQtMjguNS0yMC4xLTQxLjgtMjUuNS04OS45LTM5LTEzOS4yLTM5LTM1LjUgMC02OS45IDYuOC0xMDIuNCAyMC4zLTMxLjQgMTMtNTkuNyAzMS43LTg0IDU1LjVhMjU4LjQ0IDI1OC40NCAwIDAgMC01Ni45IDgyLjhjLTEzLjkgMzIuMy0yMSA2Ni42LTIxIDEwMS45IDAgMzMuMyA2LjggNjggMjAuMyAxMDMuMyAxMS4zIDI5LjUgMjcuNSA2MC4xIDQ4LjIgOTEgMzIuOCA0OC45IDc3LjkgOTkuOSAxMzMuOSAxNTEuNiA5Mi44IDg1LjcgMTg0LjcgMTQ0LjkgMTg4LjYgMTQ3LjNsMjMuNyAxNS4yYzEwLjUgNi43IDI0IDYuNyAzNC41IDBsMjMuNy0xNS4yYzMuOS0yLjUgOTUuNy02MS42IDE4OC42LTE0Ny4zIDU2LTUxLjcgMTAxLjEtMTAyLjcgMTMzLjktMTUxLjYgMjAuNy0zMC45IDM3LTYxLjUgNDguMi05MSAxMy41LTM1LjMgMjAuMy03MCAyMC4zLTEwMy4zLjEtMzUuMy03LTY5LjYtMjAuOS0xMDEuOXonKSk7XG5leHBvcnRzLkhpZ2hsaWdodEZpbGwgPSBnZXRJY29uKCdoaWdobGlnaHQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU3LjYgNTA3LjRMNjAzLjIgMTU4LjJhNy45IDcuOSAwIDAgMC0xMS4yIDBMMzUzLjMgMzkzLjRhOC4wMyA4LjAzIDAgMCAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgMzkuNSAzOC45LTE4OS4xIDE4N0g3Mi4xYy00LjQgMC04LjEgMy42LTguMSA4Vjg2MGMwIDQuNCAzLjYgOCA4IDhoMzQ0LjljMi4xIDAgNC4xLS44IDUuNi0yLjNsNzYuMS03NS42IDQwLjQgMzkuOGE3LjkgNy45IDAgMCAwIDExLjIgMGwxMTcuMS0xMTUuNiA0MC4xIDM5LjVhNy45IDcuOSAwIDAgMCAxMS4yIDBsMjM4LjctMjM1LjJjMy40LTMgMy40LTggLjMtMTEuMnonKSk7XG5leHBvcnRzLkhvbWVGaWxsID0gZ2V0SWNvbignaG9tZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NDYuNSA1MDVMNTM0LjYgOTMuNGEzMS45MyAzMS45MyAwIDAgMC00NS4yIDBMNzcuNSA1MDVjLTEyIDEyLTE4LjggMjguMy0xOC44IDQ1LjMgMCAzNS4zIDI4LjcgNjQgNjQgNjRoNDMuNFY5MDhjMCAxNy43IDE0LjMgMzIgMzIgMzJINDQ4VjcxNmgxMTJ2MjI0aDI2NS45YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjYxNC4zaDQzLjRjMTcgMCAzMy4zLTYuNyA0NS4zLTE4LjggMjQuOS0yNSAyNC45LTY1LjUtLjEtOTAuNXonKSk7XG5leHBvcnRzLkhvdXJnbGFzc0ZpbGwgPSBnZXRJY29uKCdob3VyZ2xhc3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQyIDMxOFYxODRoODZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg2djEzNGMwIDgxLjUgNDIuNCAxNTMuMiAxMDYuNCAxOTQtNjQgNDAuOC0xMDYuNCAxMTIuNS0xMDYuNCAxOTR2MTM0aC04NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg2MzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTg2VjcwNmMwLTgxLjUtNDIuNC0xNTMuMi0xMDYuNC0xOTQgNjQtNDAuOCAxMDYuNC0xMTIuNSAxMDYuNC0xOTR6JykpO1xuZXhwb3J0cy5IdG1sNUZpbGwgPSBnZXRJY29uKCdodG1sNScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xNDUuMiA5Nmw2NiA3NDYuNkw1MTIgOTI4bDI5OS42LTg1LjRMODc4LjkgOTZIMTQ1LjJ6bTU5NSAxNzcuMWwtNC44IDQ3LjItMS43IDE5LjVIMzgyLjNsOC4yIDk0LjJoMzM1LjFsLTMuMyAyNC4zLTIxLjIgMjQyLjItMS43IDE2LjItMTg3IDUxLjZ2LjNoLTEuMmwtLjMuMXYtLjFoLS4xbC0xODguNi01MkwzMTAuOCA1NzJoOTEuMWw2LjUgNzMuMiAxMDIuNCAyNy43aC40bDEwMi0yNy42IDExLjQtMTE4LjZINTEwLjl2LS4xSDMwNmwtMjIuOC0yNTMuNS0xLjctMjQuM2g0NjAuM2wtMS42IDI0LjN6JykpO1xuZXhwb3J0cy5JZGNhcmRGaWxsID0gZ2V0SWNvbignaWRjYXJkJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM3MyA0MTFjLTI4LjUgMC01MS43IDIzLjMtNTEuNyA1MnMyMy4yIDUyIDUxLjcgNTIgNTEuNy0yMy4zIDUxLjctNTItMjMuMi01Mi01MS43LTUyem01NTUtMjUxSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjA4IDQyMGMwLTQuNCAxLTggMi4zLThoMTIzLjRjMS4zIDAgMi4zIDMuNiAyLjMgOHY0OGMwIDQuNC0xIDgtMi4zIDhINjEwLjNjLTEuMyAwLTIuMy0zLjYtMi4zLTh2LTQ4em0tODYgMjUzaC00My45Yy00LjIgMC03LjYtMy4zLTcuOS03LjUtMy44LTUwLjUtNDYtOTAuNS05Ny4yLTkwLjVzLTkzLjQgNDAtOTcuMiA5MC41Yy0uMyA0LjItMy43IDcuNS03LjkgNy41SDIyNGE4IDggMCAwIDEtOC04LjRjMi44LTUzLjMgMzItOTkuNyA3NC42LTEyNi4xYTExMS44IDExMS44IDAgMCAxLTI5LjEtNzUuNWMwLTYxLjkgNDkuOS0xMTIgMTExLjQtMTEyczExMS40IDUwLjEgMTExLjQgMTEyYzAgMjkuMS0xMSA1NS41LTI5LjEgNzUuNSA0Mi43IDI2LjUgNzEuOCA3Mi44IDc0LjYgMTI2LjEuNCA0LjYtMy4yIDguNC03LjggOC40em0yNzguOS01M0g2MTUuMWMtMy45IDAtNy4xLTMuNi03LjEtOHYtNDhjMC00LjQgMy4yLTggNy4xLThoMTg1LjdjMy45IDAgNy4xIDMuNiA3LjEgOHY0OGguMWMwIDQuNC0zLjIgOC03LjEgOHonKSk7XG5leHBvcnRzLkllQ2lyY2xlRmlsbCA9IGdldEljb24oJ2llLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTMuNiAyODQuNGMtMjQgMC01MS4xIDExLjctNzIuNiAyMiA0Ni4zIDE4IDg2IDU3LjMgMTEyLjMgOTkuNiA3LjEtMTguOSAxNC42LTQ3LjkgMTQuNi02Ny45IDAtMzItMjIuOC01My43LTU0LjMtNTMuN3pNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI1My45IDQ5Mi45SDQzNy4xYzAgMTAwLjQgMTQ0LjMgMTM2IDE5Ni44IDQ3LjRoMTIwLjhjLTMyLjYgOTEuNy0xMTkuNyAxNDYtMjE2LjggMTQ2LTM1LjEgMC03MC4zLS4xLTEwMS43LTE1LjYtODcuNCA0NC41LTE4MC4zIDU2LjYtMTgwLjMtNDIgMC00NS44IDIzLjItMTA3LjEgNDQtMTQ1QzMzNSA0ODQgMzgxLjMgNDIyLjggNDM1LjYgMzc0LjVjLTQzLjcgMTguOS05MS4xIDY2LjMtMTIyIDEwMS4yIDI1LjktMTEyLjggMTI5LjUtMTkzLjYgMjM3LjEtMTg2LjUgMTMwLTU5LjggMjA5LjctMzQuMSAyMDkuNyAzOC42IDAgMjcuNC0xMC42IDYzLjMtMjEuNCA4Ny45IDI1LjIgNDUuNSAzMy4zIDk3LjYgMjYuOSAxNDEuMnpNNTQwLjUgMzk5LjFjLTUzLjcgMC0xMDIgMzkuNy0xMDQgOTQuOWgyMDhjLTItNTUuMS01MC42LTk0LjktMTA0LTk0Ljl6TTMyMC42IDYwMi45Yy03MyAxNTIuNCAxMS41IDE3Mi4yIDEwMC4zIDEyMy4zLTQ2LjYtMjcuNS04Mi42LTcyLjItMTAwLjMtMTIzLjN6JykpO1xuZXhwb3J0cy5JZVNxdWFyZUZpbGwgPSBnZXRJY29uKCdpZS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03NjUuOSA1NTYuOUg0MzcuMWMwIDEwMC40IDE0NC4zIDEzNiAxOTYuOCA0Ny40aDEyMC44Yy0zMi42IDkxLjctMTE5LjcgMTQ2LTIxNi44IDE0Ni0zNS4xIDAtNzAuMy0uMS0xMDEuNy0xNS42LTg3LjQgNDQuNS0xODAuMyA1Ni42LTE4MC4zLTQyIDAtNDUuOCAyMy4yLTEwNy4xIDQ0LTE0NUMzMzUgNDg0IDM4MS4zIDQyMi44IDQzNS42IDM3NC41Yy00My43IDE4LjktOTEuMSA2Ni4zLTEyMiAxMDEuMiAyNS45LTExMi44IDEyOS41LTE5My42IDIzNy4xLTE4Ni41IDEzMC01OS44IDIwOS43LTM0LjEgMjA5LjcgMzguNiAwIDI3LjQtMTAuNiA2My4zLTIxLjQgODcuOSAyNS4yIDQ1LjUgMzMuMyA5Ny42IDI2LjkgMTQxLjJ6bS03Mi4zLTI3Mi41Yy0yNCAwLTUxLjEgMTEuNy03Mi42IDIyIDQ2LjMgMTggODYgNTcuMyAxMTIuMyA5OS42IDcuMS0xOC45IDE0LjYtNDcuOSAxNC42LTY3LjkgMC0zMi0yMi44LTUzLjctNTQuMy01My43ek01NDAuNSAzOTkuMWMtNTMuNyAwLTEwMiAzOS43LTEwNCA5NC45aDIwOGMtMi01NS4xLTUwLjYtOTQuOS0xMDQtOTQuOXpNMzIwLjYgNjAyLjljLTczIDE1Mi40IDExLjUgMTcyLjIgMTAwLjMgMTIzLjMtNDYuNi0yNy41LTgyLjYtNzIuMi0xMDAuMy0xMjMuM3onKSk7XG5leHBvcnRzLkluZm9DaXJjbGVGaWxsID0gZ2V0SWNvbignaW5mby1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTMyIDY2NGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2Mjcyem0tMzItMzQ0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkluc3RhZ3JhbUZpbGwgPSBnZXRJY29uKCdpbnN0YWdyYW0nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDM3OC43Yy03My40IDAtMTMzLjMgNTkuOS0xMzMuMyAxMzMuM1M0MzguNiA2NDUuMyA1MTIgNjQ1LjMgNjQ1LjMgNTg1LjQgNjQ1LjMgNTEyIDU4NS40IDM3OC43IDUxMiAzNzguN3pNOTExLjggNTEyYzAtNTUuMi41LTEwOS45LTIuNi0xNjUtMy4xLTY0LTE3LjctMTIwLjgtNjQuNS0xNjcuNi00Ni45LTQ2LjktMTAzLjYtNjEuNC0xNjcuNi02NC41LTU1LjItMy4xLTEwOS45LTIuNi0xNjUtMi42LTU1LjIgMC0xMDkuOS0uNS0xNjUgMi42LTY0IDMuMS0xMjAuOCAxNy43LTE2Ny42IDY0LjVDMTMyLjYgMjI2LjMgMTE4LjEgMjgzIDExNSAzNDdjLTMuMSA1NS4yLTIuNiAxMDkuOS0yLjYgMTY1cy0uNSAxMDkuOSAyLjYgMTY1YzMuMSA2NCAxNy43IDEyMC44IDY0LjUgMTY3LjYgNDYuOSA0Ni45IDEwMy42IDYxLjQgMTY3LjYgNjQuNSA1NS4yIDMuMSAxMDkuOSAyLjYgMTY1IDIuNiA1NS4yIDAgMTA5LjkuNSAxNjUtMi42IDY0LTMuMSAxMjAuOC0xNy43IDE2Ny42LTY0LjUgNDYuOS00Ni45IDYxLjQtMTAzLjYgNjQuNS0xNjcuNiAzLjItNTUuMSAyLjYtMTA5LjggMi42LTE2NXpNNTEyIDcxNy4xYy0xMTMuNSAwLTIwNS4xLTkxLjYtMjA1LjEtMjA1LjFTMzk4LjUgMzA2LjkgNTEyIDMwNi45IDcxNy4xIDM5OC41IDcxNy4xIDUxMiA2MjUuNSA3MTcuMSA1MTIgNzE3LjF6bTIxMy41LTM3MC43Yy0yNi41IDAtNDcuOS0yMS40LTQ3LjktNDcuOXMyMS40LTQ3LjkgNDcuOS00Ny45IDQ3LjkgMjEuNCA0Ny45IDQ3LjlhNDcuODQgNDcuODQgMCAwIDEtNDcuOSA0Ny45eicpKTtcbmV4cG9ydHMuSW5zdXJhbmNlRmlsbCA9IGdldEljb24oJ2luc3VyYW5jZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTkuOSAzNTguOGg5Ny45djQxLjZoLTk3Ljl6bTM0Ny0xODguOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTQxMS4zIDY1NmgtLjJjMCA0LjQtMy42IDgtOCA4aC0zNy4zYy00LjQgMC04LTMuNi04LThWNDcxLjRjLTcuNyA5LjItMTUuNCAxNy45LTIzLjEgMjZhNi4wNCA2LjA0IDAgMCAxLTEwLjItMi40bC0xMy4yLTQzLjVjLS42LTItLjItNC4xIDEuMi01LjYgMzctNDMuNCA2NC43LTk1LjEgODIuMi0xNTMuNiAxLjEtMy41IDUtNS4zIDguNC0zLjdsMzguNiAxOC4zYzIuNyAxLjMgNC4xIDQuNCAzLjIgNy4yYTQyOS4yIDQyOS4yIDAgMCAxLTMzLjYgNzlWNjU2em0yOTYuNS00OS4ybC0yNi4zIDM1LjNhNS45MiA1LjkyIDAgMCAxLTguOS43Yy0zMC42LTI5LjMtNTYuOC02NS4yLTc4LjEtMTA2LjlWNjU2YzAgNC40LTMuNiA4LTggOGgtMzYuMmMtNC40IDAtOC0zLjYtOC04VjUzNmMtMjIgNDQuNy00OSA4MC44LTgwLjYgMTA3LjZhNS45IDUuOSAwIDAgMS04LjktMS40TDQzMCA2MDUuN2E2IDYgMCAwIDEgMS42LTguMWMyOC42LTIwLjMgNTEuOS00NS4yIDcxLTc2aC01NS4xYy00LjQgMC04LTMuNi04LThWNDc4YzAtNC40IDMuNi04IDgtOGg5NC45di0xOC42aC02NS45Yy00LjQgMC04LTMuNi04LThWMzE2YzAtNC40IDMuNi04IDgtOGgxODQuN2M0LjQgMCA4IDMuNiA4IDh2MTI3LjJjMCA0LjQtMy42IDgtOCA4aC02Ni43djE4LjZoOTguOGM0LjQgMCA4IDMuNiA4IDh2MzUuNmMwIDQuNC0zLjYgOC04IDhoLTU5YzE4LjEgMjkuMSA0MS44IDU0LjMgNzIuMyA3Ni45IDIuNiAyLjEgMy4yIDUuOSAxLjIgOC41eicpKTtcbmV4cG9ydHMuSW50ZXJhY3Rpb25GaWxsID0gZ2V0SWNvbignaW50ZXJhY3Rpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MjYgNTg1LjdjMCA1NS4zLTQ0LjcgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS43LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC43bDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS4zIDEwLjkgNS4zdjUzLjRoMjA1LjdjMTkuNiAwIDM1LjUtMTYgMzUuNS0zNS42di03OC45YzAtMy43IDMtNi44IDYuOC02LjhoNTAuN2MzLjcgMCA2LjggMyA2LjggNi44djc5LjF6bS0yLjYtMjA5LjlsLTEwOS4xIDg1LjdjLTQuNCAzLjUtMTAuOS4zLTEwLjktNS4zdi01My40SDM5Ny43Yy0xOS42IDAtMzUuNSAxNi0zNS41IDM1LjZ2NzguOWMwIDMuNy0zIDYuOC02LjggNi44aC01MC43Yy0zLjcgMC02LjgtMy02LjgtNi44di03OC45YzAtNTUuMyA0NC43LTEwMC4xIDk5LjctMTAwLjFoMjA1Ljd2LTUzLjRjMC01LjcgNi41LTguOCAxMC45LTUuM2wxMDkuMSA4NS43YzMuNiAyLjUgMy42IDcuOC4xIDEwLjV6JykpO1xuZXhwb3J0cy5JbnRlcmF0aW9uRmlsbCA9IGdldEljb24oJ2ludGVyYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MjYgNTg1LjdjMCA1NS4zLTQ0LjcgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS43LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC43bDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS4zIDEwLjkgNS4zdjUzLjRoMjA1LjdjMTkuNiAwIDM1LjUtMTYgMzUuNS0zNS42di03OC45YzAtMy43IDMtNi44IDYuOC02LjhoNTAuN2MzLjcgMCA2LjggMyA2LjggNi44djc5LjF6bS0yLjYtMjA5LjlsLTEwOS4xIDg1LjdjLTQuNCAzLjUtMTAuOS4zLTEwLjktNS4zdi01My40SDM5Ny43Yy0xOS42IDAtMzUuNSAxNi0zNS41IDM1LjZ2NzguOWMwIDMuNy0zIDYuOC02LjggNi44aC01MC43Yy0zLjcgMC02LjgtMy02LjgtNi44di03OC45YzAtNTUuMyA0NC43LTEwMC4xIDk5LjctMTAwLjFoMjA1Ljd2LTUzLjRjMC01LjcgNi41LTguOCAxMC45LTUuM2wxMDkuMSA4NS43YzMuNiAyLjUgMy42IDcuOC4xIDEwLjV6JykpO1xuZXhwb3J0cy5MYXlvdXRGaWxsID0gZ2V0SWNvbignbGF5b3V0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM4NCA5MTJoNDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0MEgzODR2NTcyem00OTYtODAwSDM4NHYxNjRoNTI4VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTc2OCAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTc2VjExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeicpKTtcbmV4cG9ydHMuTGVmdENpcmNsZUZpbGwgPSBnZXRJY29uKCdsZWZ0LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTA0IDMxNi45YzAgMTAuMi00LjkgMTkuOS0xMy4yIDI1LjlMNDU3LjQgNTEybDE0NS40IDEwNS4yYzguMyA2IDEzLjIgMTUuNiAxMy4yIDI1LjlWNjkwYzAgNi41LTcuNCAxMC4zLTEyLjcgNi41bC0yNDYtMTc4YTcuOTUgNy45NSAwIDAgMSAwLTEyLjlsMjQ2LTE3OGE4IDggMCAwIDEgMTIuNyA2LjV2NDYuOHonKSk7XG5leHBvcnRzLkxlZnRTcXVhcmVGaWxsID0gZ2V0SWNvbignbGVmdC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02MjQgMzgwLjljMCAxMC4yLTQuOSAxOS45LTEzLjIgMjUuOUw0NjUuNCA1MTJsMTQ1LjQgMTA1LjJjOC4zIDYgMTMuMiAxNS42IDEzLjIgMjUuOVY2OTBjMCA2LjUtNy40IDEwLjMtMTIuNyA2LjVsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMCAxIDAtMTIuOWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2Ljh6JykpO1xuZXhwb3J0cy5MaWtlRmlsbCA9IGdldEljb24oJ2xpa2UnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1LjkgNTMzLjdjMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC00NC45LTI1LjEtODcuNC02NS41LTExMS4xYTY3LjY3IDY3LjY3IDAgMCAwLTM0LjMtOS4zSDU3Mi40bDYtMTIyLjljMS40LTI5LjctOS4xLTU3LjktMjkuNS03OS40QTEwNi42MiAxMDYuNjIgMCAwIDAgNDcxIDk5LjljLTUyIDAtOTggMzUtMTExLjggODUuMWwtODUuOSAzMTFoLS4zdjQyOGg0NzIuM2M5LjIgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjctLjItMTIuNi0yLTI1LjEtNS42LTM3LjF6TTExMiA1Mjh2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1VjQ5NmgtNjVjLTE3LjcgMC0zMiAxNC4zLTMyIDMyeicpKTtcbmV4cG9ydHMuTG9ja0ZpbGwgPSBnZXRJY29uKCdsb2NrJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA0NjRoLTY4VjI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01NDAgNzAxdjUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDEgNTYgMHptMTUyLTIzN0gzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjR6JykpO1xuZXhwb3J0cy5MaW5rZWRpbkZpbGwgPSBnZXRJY29uKCdsaW5rZWRpbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM0OS4zIDc5My43SDIzMC42VjQxMS45aDExOC43djM4MS44em0tNTkuMy00MzRhNjguOCA2OC44IDAgMSAxIDY4LjgtNjguOGMtLjEgMzgtMzAuOSA2OC44LTY4LjggNjguOHptNTAzLjcgNDM0SDY3NS4xVjYwOGMwLTQ0LjMtLjgtMTAxLjItNjEuNy0xMDEuMi02MS43IDAtNzEuMiA0OC4yLTcxLjIgOTh2MTg4LjlINDIzLjdWNDExLjloMTEzLjh2NTIuMmgxLjZjMTUuOC0zMCA1NC41LTYxLjcgMTEyLjMtNjEuNyAxMjAuMiAwIDE0Mi4zIDc5LjEgMTQyLjMgMTgxLjl2MjA5LjR6JykpO1xuZXhwb3J0cy5NYWlsRmlsbCA9IGdldEljb24oJ21haWwnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS04MC44IDEwOC45TDUzMS43IDUxNC40Yy03LjggNi4xLTE4LjcgNi4xLTI2LjUgMEwxODkuNiAyNjguOUE3LjIgNy4yIDAgMCAxIDE5NCAyNTZoNjQ4LjhhNy4yIDcuMiAwIDAgMSA0LjQgMTIuOXonKSk7XG5leHBvcnRzLk1lZGljaW5lQm94RmlsbCA9IGdldEljb24oJ21lZGljaW5lLWJveCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzkuMiAyNzguMWEzMiAzMiAwIDAgMC0zMC40LTIyLjFINzM2VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjExMmgtNzIuOGEzMS45IDMxLjkgMCAwIDAtMzAuNCAyMi4xTDExMiA1MDJ2Mzc4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MDJsLTcyLjgtMjIzLjl6TTY2MCA2MjhjMCA0LjQtMy42IDgtOCA4SDU0NHYxMDhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjYzNkgzNzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDEwOFY0NjRjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxMDhoMTA4YzQuNCAwIDggMy42IDggOHY0OHptNC0zNzJIMzYwdi03MmgzMDR2NzJ6JykpO1xuZXhwb3J0cy5NZWRpdW1DaXJjbGVGaWxsID0gZ2V0SWNvbignbWVkaXVtLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjU2IDI1My43bC00MC44IDM5LjFjLTMuNiAyLjctNS4zIDcuMS00LjYgMTEuNHYyODcuN2MtLjcgNC40IDEgOC44IDQuNiAxMS40bDQwIDM5LjF2OC43SDU2Ni40di04LjNsNDEuMy00MC4xYzQuMS00LjEgNC4xLTUuMyA0LjEtMTEuNFY0MjIuNWwtMTE1IDI5MS42aC0xNS41TDM0Ny41IDQyMi41VjYxOGMtMS4yIDguMiAxLjcgMTYuNSA3LjUgMjIuNGw1My44IDY1LjF2OC43SDI1NnYtOC43bDUzLjgtNjUuMWEyNi4xIDI2LjEgMCAwIDAgNy0yMi40VjM5MmMuNy02LjMtMS43LTEyLjQtNi41LTE2LjdsLTQ3LjgtNTcuNlYzMDlINDExbDExNC42IDI1MS41IDEwMC45LTI1MS4zSDc2OHY4LjV6JykpO1xuZXhwb3J0cy5NZWRpdW1TcXVhcmVGaWxsID0gZ2V0SWNvbignbWVkaXVtLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTc2OCAzMTcuN2wtNDAuOCAzOS4xYy0zLjYgMi43LTUuMyA3LjEtNC42IDExLjR2Mjg3LjdjLS43IDQuNCAxIDguOCA0LjYgMTEuNGw0MCAzOS4xdjguN0g1NjYuNHYtOC4zbDQxLjMtNDAuMWM0LjEtNC4xIDQuMS01LjMgNC4xLTExLjRWNDIyLjVsLTExNSAyOTEuNmgtMTUuNUwzNDcuNSA0MjIuNVY2MThjLTEuMiA4LjIgMS43IDE2LjUgNy41IDIyLjRsNTMuOCA2NS4xdjguN0gyNTZ2LTguN2w1My44LTY1LjFhMjYuMSAyNi4xIDAgMCAwIDctMjIuNFYzOTJjLjctNi4zLTEuNy0xMi40LTYuNS0xNi43bC00Ny44LTU3LjZWMzA5SDQxMWwxMTQuNiAyNTEuNSAxMDAuOS0yNTEuM0g3Njh2OC41eicpKTtcbmV4cG9ydHMuTWVoRmlsbCA9IGdldEljb24oJ21laCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTM4NCAyMDBjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzA0YzQuNCAwIDggMy42IDggOHY0OHptMTYtMTUyYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLk1lc3NhZ2VGaWxsID0gZ2V0SWNvbignbWVzc2FnZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjQuMyAzMzguNGE0NDcuNTcgNDQ3LjU3IDAgMCAwLTk2LjEtMTQzLjMgNDQzLjA5IDQ0My4wOSAwIDAgMC0xNDMtOTYuM0E0NDMuOTEgNDQzLjkxIDAgMCAwIDUxMiA2NGgtMmMtNjAuNS4zLTExOSAxMi4zLTE3NC4xIDM1LjlhNDQ0LjA4IDQ0NC4wOCAwIDAgMC0xNDEuNyA5Ni41IDQ0NSA0NDUgMCAwIDAtOTUgMTQyLjhBNDQ5Ljg5IDQ0OS44OSAwIDAgMCA2NSA1MTQuMWMuMyA2OS40IDE2LjkgMTM4LjMgNDcuOSAxOTkuOXYxNTJjMCAyNS40IDIwLjYgNDYgNDUuOSA0NmgxNTEuOGE0NDcuNzIgNDQ3LjcyIDAgMCAwIDE5OS41IDQ4aDIuMWM1OS44IDAgMTE3LjctMTEuNiAxNzIuMy0zNC4zQTQ0My4yIDQ0My4yIDAgMCAwIDgyNyA4MzAuNWM0MS4yLTQwLjkgNzMuNi04OC43IDk2LjMtMTQyIDIzLjUtNTUuMiAzNS41LTExMy45IDM1LjgtMTc0LjUuMi02MC45LTExLjYtMTIwLTM0LjgtMTc1LjZ6TTMxMi40IDU2MGMtMjYuNCAwLTQ3LjktMjEuNS00Ny45LTQ4czIxLjUtNDggNDcuOS00OCA0Ny45IDIxLjUgNDcuOSA0OC0yMS40IDQ4LTQ3LjkgNDh6bTE5OS42IDBjLTI2LjQgMC00Ny45LTIxLjUtNDcuOS00OHMyMS41LTQ4IDQ3LjktNDggNDcuOSAyMS41IDQ3LjkgNDgtMjEuNSA0OC00Ny45IDQ4em0xOTkuNiAwYy0yNi40IDAtNDcuOS0yMS41LTQ3LjktNDhzMjEuNS00OCA0Ny45LTQ4IDQ3LjkgMjEuNSA0Ny45IDQ4LTIxLjUgNDgtNDcuOSA0OHonKSk7XG5leHBvcnRzLk1pbnVzQ2lyY2xlRmlsbCA9IGdldEljb24oJ21pbnVzLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTkyIDQ3MmMwIDQuNC0zLjYgOC04IDhIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4eicpKTtcbmV4cG9ydHMuTWludXNTcXVhcmVGaWxsID0gZ2V0SWNvbignbWludXMtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzA0IDUzNmMwIDQuNC0zLjYgOC04IDhIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzNjhjNC40IDAgOCAzLjYgOCA4djQ4eicpKTtcbmV4cG9ydHMuTW9iaWxlRmlsbCA9IGdldEljb24oJ21vYmlsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDQgNjJIMjgwYy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNDY0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyNmMwLTM1LjMtMjguNy02NC02NC02NHpNNTEyIDgyNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6JykpO1xuZXhwb3J0cy5Nb25leUNvbGxlY3RGaWxsID0gZ2V0SWNvbignbW9uZXktY29sbGVjdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTEuNSA2OTkuN2E4IDggMCAwIDAtMTAuMy00LjhMODQwIDcxNy4yVjE3OWMwLTM3LjYtMzAuNC02OC02OC02OEgyNTJjLTM3LjYgMC02OCAzMC40LTY4IDY4djUzOC4ybC02MS4zLTIyLjNjLS45LS4zLTEuOC0uNS0yLjctLjUtNC40IDAtOCAzLjYtOCA4Vjc2MmMwIDMuMyAyLjEgNi4zIDUuMyA3LjVMNTAxIDkwOS4xYzcuMSAyLjYgMTQuOCAyLjYgMjEuOSAwbDM4My44LTEzOS41YzMuMi0xLjIgNS4zLTQuMiA1LjMtNy41di01OS42YzAtMS0uMi0xLjktLjUtMi44em0tMjQzLjgtMzc3TDU2NCA1MTQuM2g1Ny42YzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM3YzOWg3Ni4zYzQuNCAwIDggMy42IDggOHYyNy4xYzAgNC40LTMuNiA4LTggOGgtNzYuM1Y3MDNjMCA0LjQtMy42IDgtOCA4aC00OS45Yy00LjQgMC04LTMuNi04LTh2LTYzLjRoLTc2Yy00LjQgMC04LTMuNi04LTh2LTI3LjFjMC00LjQgMy42LTggOC04aDc2di0zOWgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNTdMMzU2LjUgMzIyLjhjLTIuMS0zLjgtLjctOC43IDMuMi0xMC44IDEuMi0uNyAyLjUtMSAzLjgtMWg1NS43YTggOCAwIDAgMSA3LjEgNC40TDUxMSA0ODQuMmgzLjNMNTk5IDMxNS40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDU0LjVjNC40IDAgOCAzLjYgOC4xIDcuOSAwIDEuMy0uNCAyLjYtMSAzLjh6JykpO1xuZXhwb3J0cy5QYXVzZUNpcmNsZUZpbGwgPSBnZXRJY29uKCdwYXVzZS1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS04MCA2MDBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHptMjI0IDBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHonKSk7XG5leHBvcnRzLlBheUNpcmNsZUZpbGwgPSBnZXRJY29uKCdwYXktY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjYuNiAyNDYuOEw1NjcuNSA1MTUuNmg2MmM0LjQgMCA4IDMuNiA4IDh2MjkuOWMwIDQuNC0zLjYgOC04IDhoLTgyVjYwM2g4MmM0LjQgMCA4IDMuNiA4IDh2MjkuOWMwIDQuNC0zLjYgOC04IDhoLTgyVjcxN2MwIDQuNC0zLjYgOC04IDhoLTU0LjNjLTQuNCAwLTgtMy42LTgtOHYtNjguMWgtODEuN2MtNC40IDAtOC0zLjYtOC04VjYxMWMwLTQuNCAzLjYtOCA4LThoODEuN3YtNDEuNWgtODEuN2MtNC40IDAtOC0zLjYtOC04di0yOS45YzAtNC40IDMuNi04IDgtOGg2MS40TDM0NS40IDMxMC44YTguMDcgOC4wNyAwIDAgMSA3LTExLjloNjAuN2MzIDAgNS44IDEuNyA3LjEgNC40bDkwLjYgMTgwaDMuNGw5MC42LTE4MGE4IDggMCAwIDEgNy4xLTQuNGg1OS41YzQuNCAwIDggMy42IDggOCAuMiAxLjQtLjIgMi43LS44IDMuOXonKSk7XG5leHBvcnRzLk5vdGlmaWNhdGlvbkZpbGwgPSBnZXRJY29uKCdub3RpZmljYXRpb24nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMmMtMy44IDAtNy43LjctMTEuNiAyLjNMMjkyIDM0NS45SDEyOGMtOC44IDAtMTYgNy40LTE2IDE2LjZ2Mjk5YzAgOS4yIDcuMiAxNi42IDE2IDE2LjZoMTAxLjZjLTMuNyAxMS42LTUuNiAyMy45LTUuNiAzNi40IDAgNjUuOSA1My44IDExOS41IDEyMCAxMTkuNSA1NS40IDAgMTAyLjEtMzcuNiAxMTUuOS04OC40bDQwOC42IDE2NC4yYzMuOSAxLjUgNy44IDIuMyAxMS42IDIuMyAxNi45IDAgMzItMTQuMiAzMi0zMy4yVjE0NS4yQzkxMiAxMjYuMiA4OTcgMTEyIDg4MCAxMTJ6TTM0NCA3NjIuM2MtMjYuNSAwLTQ4LTIxLjQtNDgtNDcuOCAwLTExLjIgMy45LTIxLjkgMTEtMzAuNGw4NC45IDM0LjFjLTIgMjQuNi0yMi43IDQ0LjEtNDcuOSA0NC4xeicpKTtcbmV4cG9ydHMuUGhvbmVGaWxsID0gZ2V0SWNvbigncGhvbmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg1LjYgMjMwLjJMNzc5LjEgMTIzLjhhODAuODMgODAuODMgMCAwIDAtNTcuMy0yMy44Yy0yMS43IDAtNDIuMSA4LjUtNTcuNCAyMy44TDU0OS44IDIzOC40YTgwLjgzIDgwLjgzIDAgMCAwLTIzLjggNTcuM2MwIDIxLjcgOC41IDQyLjEgMjMuOCA1Ny40bDgzLjggODMuOEEzOTMuODIgMzkzLjgyIDAgMCAxIDU1My4xIDU1MyAzOTUuMzQgMzk1LjM0IDAgMCAxIDQzNyA2MzMuOEwzNTMuMiA1NTBhODAuODMgODAuODMgMCAwIDAtNTcuMy0yMy44Yy0yMS43IDAtNDIuMSA4LjUtNTcuNCAyMy44TDEyMy44IDY2NC41YTgwLjg5IDgwLjg5IDAgMCAwLTIzLjggNTcuNGMwIDIxLjcgOC41IDQyLjEgMjMuOCA1Ny40bDEwNi4zIDEwNi4zYzI0LjQgMjQuNSA1OC4xIDM4LjQgOTIuNyAzOC40IDcuMyAwIDE0LjMtLjYgMjEuMi0xLjggMTM0LjgtMjIuMiAyNjguNS05My45IDM3Ni40LTIwMS43QzgyOC4yIDYxMi44IDg5OS44IDQ3OS4yIDkyMi4zIDM0NGM2LjgtNDEuMy02LjktODMuOC0zNi43LTExMy44eicpKTtcbmV4cG9ydHMuUGljdHVyZUZpbGwgPSBnZXRJY29uKCdwaWN0dXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzggMzA0YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptNTEzLjkgNDM3LjFhOC4xMSA4LjExIDAgMCAxLTUuMiAxLjlIMTc3LjJjLTQuNCAwLTgtMy42LTgtOCAwLTEuOS43LTMuNyAxLjktNS4ybDE3MC4zLTIwMmMyLjgtMy40IDcuOS0zLjggMTEuMy0xIC4zLjMuNy42IDEgMWw5OS40IDExOCAxNTguMS0xODcuNWMyLjgtMy40IDcuOS0zLjggMTEuMy0xIC4zLjMuNy42IDEgMWwyMjkuNiAyNzEuNmMyLjYgMy4zIDIuMiA4LjQtMS4yIDExLjJ6JykpO1xuZXhwb3J0cy5QaWVDaGFydEZpbGwgPSBnZXRJY29uKCdwaWUtY2hhcnQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODYzLjEgNTE4LjVINTA1LjVWMTYwLjljMC00LjQtMy42LTgtOC04aC0yNmEzOTguNTcgMzk4LjU3IDAgMCAwLTI4Mi41IDExNyAzOTcuNDcgMzk3LjQ3IDAgMCAwLTg1LjYgMTI3QzgyLjYgNDQ2LjIgNzIgNDk4LjUgNzIgNTUyLjVTODIuNiA2NTguNyAxMDMuNCA3MDhjMjAuMSA0Ny41IDQ4LjkgOTAuMyA4NS42IDEyNyAzNi43IDM2LjcgNzkuNCA2NS41IDEyNyA4NS42YTM5Ni42NCAzOTYuNjQgMCAwIDAgMTU1LjYgMzEuNSAzOTguNTcgMzk4LjU3IDAgMCAwIDI4Mi41LTExN2MzNi43LTM2LjcgNjUuNS03OS40IDg1LjYtMTI3YTM5Ni42NCAzOTYuNjQgMCAwIDAgMzEuNS0xNTUuNnYtMjZjLS4xLTQuNC0zLjctOC04LjEtOHpNOTUxIDQ2M2wtMi42LTI4LjJjLTguNS05Mi00OS4zLTE3OC44LTExNS4xLTI0NC4zQTM5OC41IDM5OC41IDAgMCAwIDU4OC40IDc1LjZMNTYwLjEgNzNjLTQuNy0uNC04LjcgMy4yLTguNyA3Ljl2MzgzLjdjMCA0LjQgMy42IDggOCA4bDM4My42LTFjNC43LS4xIDguNC00IDgtOC42eicpKTtcbmV4cG9ydHMuUGxheUNpcmNsZUZpbGwgPSBnZXRJY29uKCdwbGF5LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTQ0LjEgNDU0LjlMNDM3LjcgNjc3LjhhOC4wMiA4LjAyIDAgMCAxLTEyLjctNi41VjM1My43YTggOCAwIDAgMSAxMi43LTYuNUw2NTYuMSA1MDZhNy45IDcuOSAwIDAgMSAwIDEyLjl6JykpO1xuZXhwb3J0cy5QbGF5U3F1YXJlRmlsbCA9IGdldEljb24oJ3BsYXktc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjQxLjcgNTIwLjhMNDQyLjMgNjc3LjZjLTcuNCA1LjgtMTguMy42LTE4LjMtOC44VjM1NS4zYzAtOS40IDEwLjktMTQuNyAxOC4zLTguOGwxOTkuNCAxNTYuN2ExMS4yIDExLjIgMCAwIDEgMCAxNy42eicpKTtcbmV4cG9ydHMuUGx1c0NpcmNsZUZpbGwgPSBnZXRJY29uKCdwbHVzLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTkyIDQ3MmMwIDQuNC0zLjYgOC04IDhINTQ0djE1MmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTQ0SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTUyVjMyOGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE1MmgxNTJjNC40IDAgOCAzLjYgOCA4djQ4eicpKTtcbmV4cG9ydHMuUGx1c1NxdWFyZUZpbGwgPSBnZXRJY29uKCdwbHVzLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCA1MzZjMCA0LjQtMy42IDgtOCA4SDU0NHYxNTJjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjU0NEgzMjhjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE1MlYzMjhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxNTJoMTUyYzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLlBvdW5kQ2lyY2xlRmlsbCA9IGdldEljb24oJ3BvdW5kLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMTQ2IDY1OGMwIDQuNC0zLjYgOC04IDhIMzc2LjJjLTQuNCAwLTgtMy42LTgtOHYtMzguNWMwLTMuNyAyLjUtNi45IDYuMS03LjggNDQtMTAuOSA3Mi44LTQ5IDcyLjgtOTQuMiAwLTE0LjctMi41LTI5LjQtNS45LTQ0LjJIMzc0Yy00LjQgMC04LTMuNi04LTh2LTMwYzAtNC40IDMuNi04IDgtOGg1My43Yy03LjgtMjUuMS0xNC42LTUwLjctMTQuNi03Ny4xIDAtNzUuOCA1OC42LTEyMC4zIDE1MS41LTEyMC4zIDI2LjUgMCA1MS40IDUuNSA3MC4zIDEyLjcgMy4xIDEuMiA1LjIgNC4yIDUuMiA3LjV2MzkuNWE4IDggMCAwIDEtMTAuNiA3LjZjLTE3LjktNi40LTM5LTEwLjUtNjAuNC0xMC41LTUzLjMgMC04Ny4zIDI2LjYtODcuMyA3MC4yIDAgMjQuNyA2LjIgNDcuOSAxMy40IDcwLjVoMTEyYzQuNCAwIDggMy42IDggOHYzMGMwIDQuNC0zLjYgOC04IDhoLTk4LjZjMy4xIDEzLjIgNS4zIDI2LjkgNS4zIDQxIDAgNDAuNy0xNi41IDczLjktNDMuOSA5MS4xdjQuN2gxODBjNC40IDAgOCAzLjYgOCA4VjcyMnonKSk7XG5leHBvcnRzLlByaW50ZXJGaWxsID0gZ2V0SWNvbigncHJpbnRlcicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MzIgMTIwYzAtNC40LTMuNi04LTgtOEgzMDBjLTQuNCAwLTggMy42LTggOHYxNDhoNDQwVjEyMHptMTIwIDIxMkgxNzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjMyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjh2MTMyYzAgNC40IDMuNiA4IDggOGg0MjRjNC40IDAgOC0zLjYgOC04Vjc3MmgxNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDEyYzAtNDQuMi0zNS44LTgwLTgwLTgwek02NjQgODQ0SDM2MFY1NjhoMzA0djI3NnptMTY0LTM2MGMwIDQuNC0zLjYgOC04IDhoLTQwYy00LjQgMC04LTMuNi04LTh2LTQwYzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2NDB6JykpO1xuZXhwb3J0cy5Qcm9maWxlRmlsbCA9IGdldEljb24oJ3Byb2ZpbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zODAgNjk2Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMC0xNDRjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem0wLTE0NGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTMwNCAyNzJjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xNDRjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xNDRjMCA0LjQtMy42IDgtOCA4SDQ5MmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHonKSk7XG5leHBvcnRzLlByb2plY3RGaWxsID0gZ2V0SWNvbigncHJvamVjdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTM2OCA3NDRjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ2NHptMTkyLTI4MGMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2MTg0em0xOTIgNzJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djI1NnonKSk7XG5leHBvcnRzLlB1c2hwaW5GaWxsID0gZ2V0SWNvbigncHVzaHBpbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzguMyAzOTIuMUw2MzEuOSAxNDUuN2MtNi41LTYuNS0xNS05LjctMjMuNS05LjdzLTE3IDMuMi0yMy41IDkuN0w0MjMuOCAzMDYuOWMtMTIuMi0xLjQtMjQuNS0yLTM2LjgtMi03My4yIDAtMTQ2LjQgMjQuMS0yMDYuNSA3Mi4zLTE1LjQgMTIuMy0xNi42IDM1LjQtMi43IDQ5LjRsMTgxLjcgMTgxLjctMjE1LjQgMjE1LjJhMTUuOCAxNS44IDAgMCAwLTQuNiA5LjhsLTMuNCAzNy4yYy0uOSA5LjQgNi42IDE3LjQgMTUuOSAxNy40LjUgMCAxIDAgMS41LS4xbDM3LjItMy40YzMuNy0uMyA3LjItMiA5LjgtNC42bDIxNS40LTIxNS40IDE4MS43IDE4MS43YzYuNSA2LjUgMTUgOS43IDIzLjUgOS43IDkuNyAwIDE5LjMtNC4yIDI1LjktMTIuNCA1Ni4zLTcwLjMgNzkuNy0xNTguMyA3MC4yLTI0My40bDE2MS4xLTE2MS4xYzEyLjktMTIuOCAxMi45LTMzLjggMC00Ni44eicpKTtcbmV4cG9ydHMuUHJvcGVydHlTYWZldHlGaWxsID0gZ2V0SWNvbigncHJvcGVydHktc2FmZXR5JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNNjQ4LjMgMzMyLjhsLTg3LjcgMTYxLjFoNDUuN2M1LjUgMCAxMCA0LjUgMTAgMTB2MjEuM2MwIDUuNS00LjUgMTAtMTAgMTBoLTYzLjR2MjkuN2g2My40YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNFY2NThjMCA1LjUtNC41IDEwLTEwIDEwaC00MS4zYy01LjUgMC0xMC00LjUtMTAtMTB2LTUxLjhoLTYzLjFjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNjMuMXYtMjkuN2gtNjMuMWMtNS41IDAtMTAtNC41LTEwLTEwdi0yMS4zYzAtNS41IDQuNS0xMCAxMC0xMGg0NS4ybC04OC0xNjEuMWMtMi42LTQuOC0uOS0xMC45IDQtMTMuNiAxLjUtLjggMy4xLTEuMiA0LjgtMS4yaDQ2YzMuOCAwIDcuMiAyLjEgOC45IDUuNWw3Mi45IDE0NC4zIDczLjItMTQ0LjNhMTAgMTAgMCAwIDEgOC45LTUuNWg0NWM1LjUgMCAxMCA0LjUgMTAgMTAgLjEgMS43LS4zIDMuMy0xLjEgNC44eicpKTtcbmV4cG9ydHMuUXFDaXJjbGVGaWxsID0gZ2V0SWNvbigncXEtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMTAuNSA2MTIuNGMtMTEuNSAxLjQtNDQuOS01Mi43LTQ0LjktNTIuNyAwIDMxLjMtMTYuMiA3Mi4yLTUxLjEgMTAxLjggMTYuOSA1LjIgNTQuOSAxOS4yIDQ1LjkgMzQuNC03LjMgMTIuMy0xMjUuNiA3LjktMTU5LjggNC0zNC4yIDMuOC0xNTIuNSA4LjMtMTU5LjgtNC05LjEtMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM1LTI5LjUtNTEuMS03MC40LTUxLjEtMTAxLjggMCAwLTMzLjQgNTQuMS00NC45IDUyLjctNS40LS43LTEyLjQtMjkuNiA5LjQtOTkuNyAxMC4zLTMzIDIyLTYwLjUgNDAuMi0xMDUuOC0zLjEtMTE2LjkgNDUuMy0yMTUgMTYwLjQtMjE1IDExMy45IDAgMTYzLjMgOTYuMSAxNjAuNCAyMTUgMTguMSA0NS4yIDI5LjkgNzIuOCA0MC4yIDEwNS44IDIxLjcgNzAuMSAxNC42IDk5LjEgOS4zIDk5Ljd6JykpO1xuZXhwb3J0cy5RcVNxdWFyZUZpbGwgPSBnZXRJY29uKCdxcS1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MjIuNSA2NzYuNGMtMTEuNSAxLjQtNDQuOS01Mi43LTQ0LjktNTIuNyAwIDMxLjMtMTYuMiA3Mi4yLTUxLjEgMTAxLjggMTYuOSA1LjIgNTQuOSAxOS4yIDQ1LjkgMzQuNC03LjMgMTIuMy0xMjUuNiA3LjktMTU5LjggNC0zNC4yIDMuOC0xNTIuNSA4LjMtMTU5LjgtNC05LjEtMTUuMiAyOC45LTI5LjIgNDUuOC0zNC40LTM1LTI5LjUtNTEuMS03MC40LTUxLjEtMTAxLjggMCAwLTMzLjQgNTQuMS00NC45IDUyLjctNS40LS43LTEyLjQtMjkuNiA5LjQtOTkuNyAxMC4zLTMzIDIyLTYwLjUgNDAuMi0xMDUuOC0zLjEtMTE2LjkgNDUuMy0yMTUgMTYwLjQtMjE1IDExMy45IDAgMTYzLjMgOTYuMSAxNjAuNCAyMTUgMTguMSA0NS4yIDI5LjkgNzIuOCA0MC4yIDEwNS44IDIxLjcgNzAuMSAxNC42IDk5LjEgOS4zIDk5Ljd6JykpO1xuZXhwb3J0cy5RdWVzdGlvbkNpcmNsZUZpbGwgPSBnZXRJY29uKCdxdWVzdGlvbi1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgNzA4Yy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptNjIuOS0yMTkuNWE0OC4zIDQ4LjMgMCAwIDAtMzAuOSA0NC44VjYyMGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTIxLjVjMC0yMy4xIDYuNy00NS45IDE5LjktNjQuOSAxMi45LTE4LjYgMzAuOS0zMi44IDUyLjEtNDAuOSAzNC0xMy4xIDU2LTQxLjYgNTYtNzIuNyAwLTQ0LjEtNDMuMS04MC05Ni04MHMtOTYgMzUuOS05NiA4MHY3LjZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjQyMGMwLTM5LjMgMTcuMi03NiA0OC40LTEwMy4zQzQzMC40IDI5MC40IDQ3MCAyNzYgNTEyIDI3NnM4MS42IDE0LjUgMTExLjYgNDAuN0M2NTQuOCAzNDQgNjcyIDM4MC43IDY3MiA0MjBjMCA1Ny44LTM4LjEgMTA5LjgtOTcuMSAxMzIuNXonKSk7XG5leHBvcnRzLlJlYWRGaWxsID0gZ2V0SWNvbigncmVhZCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYxSDY5OS4yYy00OS4xIDAtOTcuMSAxNC4xLTEzOC40IDQwLjdMNTEyIDIzM2wtNDguOC0zMS4zQTI1NS4yIDI1NS4yIDAgMCAwIDMyNC44IDE2MUg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyOC44YzQ5LjEgMCA5Ny4xIDE0LjEgMTM4LjQgNDAuN2w0NC40IDI4LjZjMS4zLjggMi44IDEuMyA0LjMgMS4zczMtLjQgNC4zLTEuM2w0NC40LTI4LjZDNjAyIDgwNy4xIDY1MC4xIDc5MyA2OTkuMiA3OTNIOTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5M2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDA0IDU1My41YzAgNC4xLTMuMiA3LjUtNy4xIDcuNUgyMTEuMWMtMy45IDAtNy4xLTMuNC03LjEtNy41di00NWMwLTQuMSAzLjItNy41IDcuMS03LjVoMTg1LjdjMy45IDAgNy4xIDMuNCA3LjEgNy41djQ1em0wLTE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVIMjExLjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptNDE2IDE0MGMwIDQuMS0zLjIgNy41LTcuMSA3LjVINjI3LjFjLTMuOSAwLTcuMS0zLjQtNy4xLTcuNXYtNDVjMC00LjEgMy4yLTcuNSA3LjEtNy41aDE4NS43YzMuOSAwIDcuMSAzLjQgNy4xIDcuNXY0NXptMC0xNDBjMCA0LjEtMy4yIDcuNS03LjEgNy41SDYyNy4xYy0zLjkgMC03LjEtMy40LTcuMS03LjV2LTQ1YzAtNC4xIDMuMi03LjUgNy4xLTcuNWgxODUuN2MzLjkgMCA3LjEgMy40IDcuMSA3LjV2NDV6JykpO1xuZXhwb3J0cy5SZWNvbmNpbGlhdGlvbkZpbGwgPSBnZXRJY29uKCdyZWNvbmNpbGlhdGlvbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NzYgNjIzYy0xOC44IDAtMzQgMTUuMi0zNCAzNHMxNS4yIDM0IDM0IDM0IDM0LTE1LjIgMzQtMzQtMTUuMi0zNC0zNC0zNHptMjA0LTQ1NUg2NjhjMC0zMC45LTI1LjEtNTYtNTYtNTZoLTgwYy0zMC45IDAtNTYgMjUuMS01NiA1NkgyNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIwMGgtODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTE2aDM2OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDBjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ0OCA4NDhIMTc2VjYxNmgyNzJ2MjMyem0wLTI5NkgxNzZ2LTg4aDI3MnY4OHptMjAtMjcydi00OGg3MnYtNTZoNjR2NTZoNzJ2NDhINDY4em0xODAgMTY4djU2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHptMjggMzAxYy01MC44IDAtOTItNDEuMi05Mi05MnM0MS4yLTkyIDkyLTkyIDkyIDQxLjIgOTIgOTItNDEuMiA5Mi05MiA5MnptOTItMjQ1YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtOTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY5NnptLTkyIDYxYy01MC44IDAtOTIgNDEuMi05MiA5MnM0MS4yIDkyIDkyIDkyIDkyLTQxLjIgOTItOTItNDEuMi05Mi05Mi05MnptMCAxMjZjLTE4LjggMC0zNC0xNS4yLTM0LTM0czE1LjItMzQgMzQtMzQgMzQgMTUuMiAzNCAzNC0xNS4yIDM0LTM0IDM0eicpKTtcbmV4cG9ydHMuUmVkRW52ZWxvcGVGaWxsID0gZ2V0SWNvbigncmVkLWVudmVsb3BlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTY0NyA0NzAuNGwtODcuMiAxNjFoNDUuOWM0LjYgMCA4LjQgMy44IDguNCA4LjR2MjUuMWMwIDQuNi0zLjggOC40LTguNCA4LjRoLTYzLjN2MjguNmg2My4zYzQuNiAwIDguNCAzLjggOC40IDguNHYyNWMuMiA0LjYtMy42IDguNS04LjIgOC41aC02My4zdjQ5LjljMCA0LjYtMy44IDguNC04LjQgOC40aC00My43Yy00LjYgMC04LjQtMy44LTguNC04LjR2LTQ5LjloLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDYzdi0yOC42aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg0NS40bC04Ny41LTE2MWMtMi4yLTQuMS0uNy05LjEgMy40LTExLjQgMS4zLS42IDIuNi0xIDMuOS0xaDQ4LjhjMy4yIDAgNi4xIDEuOCA3LjUgNC42bDcxLjkgMTQxLjggNzEuOS0xNDEuOWE4LjUgOC41IDAgMCAxIDcuNS00LjZoNDcuOGM0LjYgMCA4LjQgMy44IDguNCA4LjQtLjEgMS41LS41IDIuOS0xLjEgNC4xek01MTIuNiAzMjNMMjg5IDE0OGg0NDZMNTEyLjYgMzIzeicpKTtcbmV4cG9ydHMuUmVkZGl0Q2lyY2xlRmlsbCA9IGdldEljb24oJ3JlZGRpdC1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTg0IDU0OGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6bTE0NC0xMDhhMzUuOSAzNS45IDAgMCAwLTMyLjUgMjAuNmMxOC44IDE0LjMgMzQuNCAzMC43IDQ1LjkgNDguOEEzNS45OCAzNS45OCAwIDAgMCA3MjggNDQwek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjQ1IDQ3Ny45YzQuNiAxMy41IDcgMjcuNiA3IDQyLjEgMCA5OS40LTExMi44IDE4MC0yNTIgMTgwcy0yNTItODAuNi0yNTItMTgwYzAtMTQuNSAyLjQtMjguNiA3LTQyLjFBNzIuMDEgNzIuMDEgMCAwIDEgMjk2IDQwNGMyNy4xIDAgNTAuNiAxNC45IDYyLjkgMzcgMzYuMi0xOS44IDgwLjItMzIuOCAxMjguMS0zNi4xbDU4LjQtMTMxLjFjNC4zLTkuOCAxNS4yLTE0LjggMjUuNS0xMS44bDkxLjYgMjYuNWE1NC4wMyA1NC4wMyAwIDAgMSAxMDEuNiAyNS42YzAgMjkuOC0yNC4yIDU0LTU0IDU0LTIzLjUgMC00My41LTE1LjEtNTAuOS0zNi4xTDU3NyAzMDguM2wtNDMgOTYuNWM0OS4xIDMgOTQuMiAxNi4xIDEzMS4yIDM2LjMgMTIuMy0yMi4xIDM1LjgtMzcgNjIuOS0zNyAzOS44IDAgNzIgMzIuMiA3MiA3Mi0uMSAyOS4zLTE3LjggNTQuNi00My4xIDY1Ljh6bS0xNzEuMyA4M2MtMTQuOSAxMS43LTQ0LjMgMjQuMy03My43IDI0LjNzLTU4LjktMTIuNi03My43LTI0LjNjLTkuMy03LjMtMjIuNy01LjctMzAgMy42LTcuMyA5LjMtNS43IDIyLjcgMy42IDMwIDI1LjcgMjAuNCA2NSAzMy41IDEwMC4xIDMzLjUgMzUuMSAwIDc0LjQtMTMuMSAxMDAuMi0zMy41IDkuMy03LjMgMTAuOS0yMC44IDMuNi0zMGEyMS40NiAyMS40NiAwIDAgMC0zMC4xLTMuNnpNMjk2IDQ0MGEzNS45OCAzNS45OCAwIDAgMC0xMy40IDY5LjRjMTEuNS0xOC4xIDI3LjEtMzQuNSA0NS45LTQ4LjhBMzUuOSAzNS45IDAgMCAwIDI5NiA0NDB6bTcyIDEwOGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6JykpO1xuZXhwb3J0cy5SZWRkaXRTcXVhcmVGaWxsID0gZ2V0SWNvbigncmVkZGl0LXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgNDQwYTM1Ljk4IDM1Ljk4IDAgMCAwLTEzLjQgNjkuNGMxMS41LTE4LjEgMjcuMS0zNC41IDQ1LjktNDguOEEzNS45IDM1LjkgMCAwIDAgMjk2IDQ0MHptMjg5LjcgMTg0LjljLTE0LjkgMTEuNy00NC4zIDI0LjMtNzMuNyAyNC4zcy01OC45LTEyLjYtNzMuNy0yNC4zYy05LjMtNy4zLTIyLjctNS43LTMwIDMuNi03LjMgOS4zLTUuNyAyMi43IDMuNiAzMCAyNS43IDIwLjQgNjUgMzMuNSAxMDAuMSAzMy41IDM1LjEgMCA3NC40LTEzLjEgMTAwLjItMzMuNSA5LjMtNy4zIDEwLjktMjAuOCAzLjYtMzBhMjEuNDYgMjEuNDYgMCAwIDAtMzAuMS0zLjZ6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzU3IDU0MS45YzQuNiAxMy41IDcgMjcuNiA3IDQyLjEgMCA5OS40LTExMi44IDE4MC0yNTIgMTgwcy0yNTItODAuNi0yNTItMTgwYzAtMTQuNSAyLjQtMjguNiA3LTQyLjFBNzIuMDEgNzIuMDEgMCAwIDEgMjk2IDQwNGMyNy4xIDAgNTAuNiAxNC45IDYyLjkgMzcgMzYuMi0xOS44IDgwLjItMzIuOCAxMjguMS0zNi4xbDU4LjQtMTMxLjFjNC4zLTkuOCAxNS4yLTE0LjggMjUuNS0xMS44bDkxLjYgMjYuNWE1NC4wMyA1NC4wMyAwIDAgMSAxMDEuNiAyNS42YzAgMjkuOC0yNC4yIDU0LTU0IDU0LTIzLjUgMC00My41LTE1LjEtNTAuOS0zNi4xTDU3NyAzMDguM2wtNDMgOTYuNWM0OS4xIDMgOTQuMiAxNi4xIDEzMS4yIDM2LjMgMTIuMy0yMi4xIDM1LjgtMzcgNjIuOS0zNyAzOS44IDAgNzIgMzIuMiA3MiA3Mi0uMSAyOS4zLTE3LjggNTQuNi00My4xIDY1Ljh6TTU4NCA1NDhhMzYgMzYgMCAxIDAgNzIgMCAzNiAzNiAwIDEgMC03MiAwem0xNDQtMTA4YTM1LjkgMzUuOSAwIDAgMC0zMi41IDIwLjZjMTguOCAxNC4zIDM0LjQgMzAuNyA0NS45IDQ4LjhBMzUuOTggMzUuOTggMCAwIDAgNzI4IDQ0MHpNMzY4IDU0OGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6JykpO1xuZXhwb3J0cy5SZXN0RmlsbCA9IGdldEljb24oJ3Jlc3QnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDI1NmgtMjguMWwtMzUuNy0xMjAuOWMtNC0xMy43LTE2LjUtMjMuMS0zMC43LTIzLjFoLTQ1MWMtMTQuMyAwLTI2LjggOS40LTMwLjcgMjMuMUwyMjAuMSAyNTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyOGMwIDQuNCAzLjYgOCA4IDhoNDUuOGw0Ny43IDU1OC43YTMyIDMyIDAgMCAwIDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAgMCAzMS45LTI5LjNMODAyLjIgMzI0SDg1NmM0LjQgMCA4LTMuNiA4LTh2LTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MDggNzA0Yy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NHM2NC41LTE0NCAxNDQtMTQ0IDE0NCA2NC41IDE0NCAxNDQtNjQuNSAxNDQtMTQ0IDE0NHpNMjkxIDI1NmwyMi40LTc2aDM5Ny4ybDIyLjQgNzZIMjkxem0xMzcgMzA0YTgwIDgwIDAgMSAwIDE2MCAwIDgwIDgwIDAgMSAwLTE2MCAweicpKTtcbmV4cG9ydHMuUmlnaHRDaXJjbGVGaWxsID0gZ2V0SWNvbigncmlnaHQtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNTQuNyA0NTQuNWwtMjQ2IDE3OGMtNS4zIDMuOC0xMi43IDAtMTIuNy02LjV2LTQ2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NjYuNiA1MTIgNDIxLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS44IDAgMTN6JykpO1xuZXhwb3J0cy5Sb2NrZXRGaWxsID0gZ2V0SWNvbigncm9ja2V0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCA3MzZjMC0xMTEuNi02NS40LTIwOC0xNjAtMjUyLjlWMzE3LjNjMC0xNS4xLTUuMy0yOS43LTE1LjEtNDEuMkw1MzYuNSA5NS40QzUzMC4xIDg3LjggNTIxIDg0IDUxMiA4NHMtMTguMSAzLjgtMjQuNSAxMS40TDMzNS4xIDI3Ni4xYTYzLjk3IDYzLjk3IDAgMCAwLTE1LjEgNDEuMnYxNjUuOEMyMjUuNCA1MjggMTYwIDYyNC40IDE2MCA3MzZoMTU2LjVjLTIuMyA3LjItMy41IDE1LTMuNSAyMy44IDAgMjIuMSA3LjYgNDMuNyAyMS40IDYwLjhhOTcuMiA5Ny4yIDAgMCAwIDQzLjEgMzAuNmMyMy4xIDU0IDc1LjYgODguOCAxMzQuNSA4OC44IDI5LjEgMCA1Ny4zLTguNiA4MS40LTI0LjggMjMuNi0xNS44IDQxLjktMzcuOSA1My02NGE5NyA5NyAwIDAgMCA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwIDAgMjEuNC02MC44YzAtOC40LTEuMS0xNi40LTMuMS0yMy44TDg2NCA3MzZ6TTUxMiAzNTJhNDguMDEgNDguMDEgMCAwIDEgMCA5NiA0OC4wMSA0OC4wMSAwIDAgMSAwLTk2em0xMTYuMSA0MzIuMmMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41cy03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwIDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6JykpO1xuZXhwb3J0cy5SaWdodFNxdWFyZUZpbGwgPSBnZXRJY29uKCdyaWdodC1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NTguNyA1MTguNWwtMjQ2IDE3OGMtNS4zIDMuOC0xMi43IDAtMTIuNy02LjV2LTQ2LjljMC0xMC4yIDQuOS0xOS45IDEzLjItMjUuOUw1NTguNiA1MTIgNDEzLjIgNDA2LjhjLTguMy02LTEzLjItMTUuNi0xMy4yLTI1LjlWMzM0YzAtNi41IDcuNC0xMC4zIDEyLjctNi41bDI0NiAxNzhjNC40IDMuMiA0LjQgOS44IDAgMTN6JykpO1xuZXhwb3J0cy5TYWZldHlDZXJ0aWZpY2F0ZUZpbGwgPSBnZXRJY29uKCdzYWZldHktY2VydGlmaWNhdGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek02OTQuNSAzNDAuN0w0ODEuOSA2MzMuNGExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMSAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OSAxNTAuOS0yMDcuOGMzLTQuMSA3LjgtNi42IDEzLTYuNkg2ODhjNi41LjEgMTAuMyA3LjUgNi41IDEyLjh6JykpO1xuZXhwb3J0cy5TYXZlRmlsbCA9IGdldEljb24oJ3NhdmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODkzLjMgMjkzLjNMNzMwLjcgMTMwLjdjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMzOC41YzAtMTctNi43LTMzLjItMTguNy00NS4yek0zODQgMTc2aDI1NnYxMTJIMzg0VjE3NnptMTI4IDU1NGMtNzkuNSAwLTE0NC02NC41LTE0NC0xNDRzNjQuNS0xNDQgMTQ0LTE0NCAxNDQgNjQuNSAxNDQgMTQ0LTY0LjUgMTQ0LTE0NCAxNDR6bTAtMjI0Yy00NC4yIDAtODAgMzUuOC04MCA4MHMzNS44IDgwIDgwIDgwIDgwLTM1LjggODAtODAtMzUuOC04MC04MC04MHonKSk7XG5leHBvcnRzLlNjaGVkdWxlRmlsbCA9IGdldEljb24oJ3NjaGVkdWxlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCAyMjRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00MjQgNjg4YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTAtMTM2YzAgNC40LTMuNiA4LTggOEgyMzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDh6bTM3NC41LTkxLjNsLTE2NSAyMjguN2ExNS45IDE1LjkgMCAwIDEtMjUuOCAwTDQ5My41IDUzMS4yYy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NC45YzUuMSAwIDkuOSAyLjUgMTIuOSA2LjZsNTIuOCA3My4xIDEwMy43LTE0My43YzMtNC4yIDcuOC02LjYgMTIuOS02LjZINzkyYzYuNS4xIDEwLjMgNy41IDYuNSAxMi44eicpKTtcbmV4cG9ydHMuU2VjdXJpdHlTY2FuRmlsbCA9IGdldEljb24oJ3NlY3VyaXR5LXNjYW4nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek02MjYuOCA1NTRjLTQ4LjUgNDguNS0xMjMgNTUuMi0xNzguNiAyMC4xbC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMCAxLTExLjMgMGwtMzQtMzRhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM2w3Ny41LTc3LjVjLTM1LjEtNTUuNy0yOC40LTEzMC4xIDIwLjEtMTc4LjYgNTYuMy01Ni4zIDE0Ny41LTU2LjMgMjAzLjggMCA1Ni4zIDU2LjMgNTYuMyAxNDcuNSAwIDIwMy44em0tMTU4LjU0LTQ1LjI3YTgwLjEgODAuMSAwIDEgMCAxMTMuMjctMTEzLjI4IDgwLjEgODAuMSAwIDEgMC0xMTMuMjcgMTEzLjI4eicpKTtcbmV4cG9ydHMuU2V0dGluZ0ZpbGwgPSBnZXRJY29uKCdzZXR0aW5nJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMi41IDM5MC42Yy0yOS45IDAtNTcuOSAxMS42LTc5LjEgMzIuOC0yMS4xIDIxLjItMzIuOCA0OS4yLTMyLjggNzkuMSAwIDI5LjkgMTEuNyA1Ny45IDMyLjggNzkuMSAyMS4yIDIxLjEgNDkuMiAzMi44IDc5LjEgMzIuOCAyOS45IDAgNTcuOS0xMS43IDc5LjEtMzIuOCAyMS4xLTIxLjIgMzIuOC00OS4yIDMyLjgtNzkuMSAwLTI5LjktMTEuNy01Ny45LTMyLjgtNzkuMWExMTAuOTYgMTEwLjk2IDAgMCAwLTc5LjEtMzIuOHptNDEyLjMgMjM1LjVsLTY1LjQtNTUuOWMzLjEtMTkgNC43LTM4LjQgNC43LTU3LjdzLTEuNi0zOC44LTQuNy01Ny43bDY1LjQtNTUuOWEzMi4wMyAzMi4wMyAwIDAgMCA5LjMtMzUuMmwtLjktMi42YTQ0Mi41IDQ0Mi41IDAgMCAwLTc5LjYtMTM3LjdsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwIDAtMzUuMS05LjVsLTgxLjIgMjguOWMtMzAtMjQuNi02My40LTQ0LTk5LjYtNTcuNWwtMTUuNy04NC45YTMyLjA1IDMyLjA1IDAgMCAwLTI1LjgtMjUuN2wtMi43LS41Yy01Mi05LjQtMTA2LjgtOS40LTE1OC44IDBsLTIuNy41YTMyLjA1IDMyLjA1IDAgMCAwLTI1LjggMjUuN2wtMTUuOCA4NS4zYTM1My40NCAzNTMuNDQgMCAwIDAtOTguOSA1Ny4zbC04MS44LTI5LjFhMzIgMzIgMCAwIDAtMzUuMSA5LjVsLTEuOCAyLjFhNDQ1LjkzIDQ0NS45MyAwIDAgMC03OS42IDEzNy43bC0uOSAyLjZjLTQuNSAxMi41LS44IDI2LjUgOS4zIDM1LjJsNjYuMiA1Ni41Yy0zLjEgMTguOC00LjYgMzgtNC42IDU3IDAgMTkuMiAxLjUgMzguNCA0LjYgNTdsLTY2IDU2LjVhMzIuMDMgMzIuMDMgMCAwIDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuMyA0NC44IDk2LjggNzkuNiAxMzcuN2wxLjggMi4xYTMyLjEyIDMyLjEyIDAgMCAwIDM1LjEgOS41bDgxLjgtMjkuMWMyOS44IDI0LjUgNjMgNDMuOSA5OC45IDU3LjNsMTUuOCA4NS4zYTMyLjA1IDMyLjA1IDAgMCAwIDI1LjggMjUuN2wyLjcuNWE0NDguMjcgNDQ4LjI3IDAgMCAwIDE1OC44IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjgtMjUuN2wxNS43LTg0LjljMzYuMi0xMy42IDY5LjYtMzIuOSA5OS42LTU3LjVsODEuMiAyOC45YTMyIDMyIDAgMCAwIDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjUtODcuNCA3OS42LTEzNy43bC45LTIuNmM0LjMtMTIuNC42LTI2LjMtOS41LTM1em0tNDEyLjMgNTIuMmMtOTcuMSAwLTE3NS44LTc4LjctMTc1LjgtMTc1LjhzNzguNy0xNzUuOCAxNzUuOC0xNzUuOCAxNzUuOCA3OC43IDE3NS44IDE3NS44LTc4LjcgMTc1LjgtMTc1LjggMTc1Ljh6JykpO1xuZXhwb3J0cy5TaG9wRmlsbCA9IGdldEljb24oJ3Nob3AnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgyIDI3Mi4xVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNzRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyOC4xYy0xNi43IDEtMzAgMTQuOS0zMCAzMS45djEzMS43YTE3NyAxNzcgMCAwIDAgMTQuNCA3MC40YzQuMyAxMC4yIDkuNiAxOS44IDE1LjYgMjguOXYzNDVjMCAxNy42IDE0LjMgMzIgMzIgMzJoMjc0VjczNmgxMjh2MTc2aDI3NGMxNy43IDAgMzItMTQuMyAzMi0zMlY1MzVhMTc1IDE3NSAwIDAgMCAxNS42LTI4LjljOS41LTIyLjMgMTQuNC00NiAxNC40LTcwLjRWMzA0YzAtMTctMTMuMy0zMC45LTMwLTMxLjl6bS03MiA1NjhINjQwVjcwNGMwLTE3LjctMTQuMy0zMi0zMi0zMkg0MTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEzNi4xSDIxNFY1OTcuOWMyLjkgMS40IDUuOSAyLjggOSA0IDIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xczQ4LTQuNyA3MC40LTE0LjFjMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMCAwIDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwIDAgMzguNyAyMi4xYzIyLjMgOS40IDQ2IDE0LjEgNzAuNCAxNC4xIDI0LjQgMCA0OC00LjcgNzAuNC0xNC4xIDMtMS4zIDYtMi42IDktNHYyNDIuMnptMC01NjguMUgyMTR2LTg4aDU5NnY4OHonKSk7XG5leHBvcnRzLlNob3BwaW5nRmlsbCA9IGdldEljb24oJ3Nob3BwaW5nJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiAzMTJINjk2di0xNmMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRzLTE4NCA4Mi40LTE4NCAxODR2MTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTIwOCAwSDQwMHYtMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNnonKSk7XG5leHBvcnRzLlNrZXRjaENpcmNsZUZpbGwgPSBnZXRJY29uKCdza2V0Y2gtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU4Mi4zIDYyNS42bDE0Ny45LTE2Ni4zaC02My40em05MC0yMDIuM2g2Mi41bC05Mi4xLTExNS4xem0tMjc0LjcgMzZMNTEyIDY4NC41bDExNC40LTIyNS4yek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjg2LjcgMzgwLjJMNTE1LjggNzYyLjNjLTEgMS4xLTIuNCAxLjctMy44IDEuN3MtMi44LS42LTMuOC0xLjdMMjI1LjMgNDQ0LjJhNS4xNCA1LjE0IDAgMCAxLS4yLTYuNkwzNjUuNiAyNjJjMS0xLjIgMi40LTEuOSA0LTEuOWgyODQuNmMxLjYgMCAzIC43IDQgMS45bDE0MC41IDE3NS42YTQuOSA0LjkgMCAwIDEgMCA2LjZ6bS0xOTAuNS0yMC45TDUxMiAzMjYuMWwtOTYuMiA5Ny4yek00MjAuMyAzMDEuMWwtMjMuMSA4OS44IDg4LjgtODkuOHptMTgzLjQgMEg1MzhsODguOCA4OS44em0tMjIyLjQgNy4xbC05Mi4xIDExNS4xaDYyLjV6bS04Ny41IDE1MS4xbDE0Ny45IDE2Ni4zLTg0LjUtMTY2LjN6JykpO1xuZXhwb3J0cy5Ta2V0Y2hTcXVhcmVGaWxsID0gZ2V0SWNvbignc2tldGNoLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MDguMiA0MjMuM0w1MTIgMzI2LjFsLTk2LjIgOTcuMnptLTI1LjkgMjAyLjNsMTQ3LjktMTY2LjNoLTYzLjR6bTkwLTIwMi4zaDYyLjVsLTkyLjEtMTE1LjF6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTgxLjMgMzMyLjJMNTE1LjggNzYyLjNjLTEgMS4xLTIuNCAxLjctMy44IDEuN3MtMi44LS42LTMuOC0xLjdMMjI1LjMgNDQ0LjJhNS4xNCA1LjE0IDAgMCAxLS4yLTYuNkwzNjUuNiAyNjJjMS0xLjIgMi40LTEuOSA0LTEuOWgyODQuNmMxLjYgMCAzIC43IDQgMS45bDE0MC41IDE3NS42YTQuOSA0LjkgMCAwIDEgMCA2LjZ6bS00MDEuMSAxNS4xTDUxMiA2ODQuNWwxMTQuNC0yMjUuMnptLTE2LjMtMTUxLjFsLTkyLjEgMTE1LjFoNjIuNXptLTg3LjUgMTUxLjFsMTQ3LjkgMTY2LjMtODQuNS0xNjYuM3ptMTI2LjUtMTU4LjJsLTIzLjEgODkuOCA4OC44LTg5Ljh6bTE4My40IDBINTM4bDg4LjggODkuOHonKSk7XG5leHBvcnRzLlNraW5GaWxsID0gZ2V0SWNvbignc2tpbicsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzAgMTI2SDY2My44Yy0xNy40IDAtMzIuOSAxMS45LTM3IDI5LjNDNjE0LjMgMjA4LjEgNTY3IDI0NiA1MTIgMjQ2cy0xMDIuMy0zNy45LTExNC44LTkwLjdhMzcuOTMgMzcuOTMgMCAwIDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwIDAtNDQgNDR2MjUyYTQ0IDQ0IDAgMCAwIDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAgMCA0NCA0NGg0NzhhNDQgNDQgMCAwIDAgNDQtNDRWNDY2aDc1YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjE3MGE0NCA0NCAwIDAgMC00NC00NHonKSk7XG5leHBvcnRzLlNsYWNrQ2lyY2xlRmlsbCA9IGdldEljb24oJ3NsYWNrLWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMzYxLjUgNTgwLjJjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjRhNTAuMzUgNTAuMzUgMCAwIDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDUwLjN2NTAuNHptMTM0IDEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjU4MC4yYzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40YTUwLjM1IDUwLjM1IDAgMCAxIDUwLjMgNTAuNHYxMzQuNHptLTUwLjItMjE4LjRoLTEzNGMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjQgMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRoMTM0YzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40LS4xIDI3LjktMjIuNiA1MC40LTUwLjMgNTAuNHptMC0xMzQuNGMtMTMuMyAwLTI2LjEtNS4zLTM1LjYtMTQuOFMzOTUgMzI0LjggMzk1IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djUwLjRoLTUwLjN6bTgzLjctNTAuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHYxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFYzMTEuNHpNNTc5LjMgNzY1Yy0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNHYtNTAuNGg1MC4zYzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40IDAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40em0xMzQtMTM0LjRoLTEzNGMtMTMuMyAwLTI2LjEtNS4zLTM1LjYtMTQuOFM1MjkgNTkzLjYgNTI5IDU4MC4yYzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMC0xMzQuNEg2NjN2LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRzNTAuMyAyMi42IDUwLjMgNTAuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHonKSk7XG5leHBvcnRzLlNsYWNrU3F1YXJlRmlsbCA9IGdldEljb24oJ3NsYWNrLXNxdWFyZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUyOSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHYxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFYzMTEuNHpNMzYxLjUgNTgwLjJjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjRhNTAuMzUgNTAuMzUgMCAwIDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDUwLjN2NTAuNHptMTM0IDEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjU4MC4yYzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40YTUwLjM1IDUwLjM1IDAgMCAxIDUwLjMgNTAuNHYxMzQuNHptLTUwLjItMjE4LjRoLTEzNGMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjQgMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRoMTM0YzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40LS4xIDI3LjktMjIuNiA1MC40LTUwLjMgNTAuNHptMC0xMzQuNGMtMTMuMyAwLTI2LjEtNS4zLTM1LjYtMTQuOFMzOTUgMzI0LjggMzk1IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djUwLjRoLTUwLjN6bTEzNCA0MDMuMmMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjR2LTUwLjRoNTAuM2MyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMTM0LTEzNC40aC0xMzRhNTAuMzUgNTAuMzUgMCAwIDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMC0xMzQuNEg2NjN2LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRzNTAuMyAyMi42IDUwLjMgNTAuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHonKSk7XG5leHBvcnRzLlNreXBlRmlsbCA9IGdldEljb24oJ3NreXBlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4My43IDU3OC42YzQuMS0yMi41IDYuMy00NS41IDYuMy02OC41IDAtNTEtMTAtMTAwLjUtMjkuNy0xNDctMTktNDUtNDYuMy04NS40LTgxLTEyMC4xYTM3NS43OSAzNzUuNzkgMCAwIDAtMTIwLjEtODAuOWMtNDYuNi0xOS43LTk2LTI5LjctMTQ3LTI5LjctMjQgMC00OC4xIDIuMy03MS41IDYuOEEyMjUuMSAyMjUuMSAwIDAgMCAzMzUuNiAxMTNjLTU5LjcgMC0xMTUuOSAyMy4zLTE1OC4xIDY1LjVBMjIyLjI1IDIyMi4yNSAwIDAgMCAxMTIgMzM2LjZjMCAzOCA5LjggNzUuNCAyOC4xIDEwOC40LTMuNyAyMS40LTUuNyA0My4zLTUuNyA2NS4xIDAgNTEgMTAgMTAwLjUgMjkuNyAxNDcgMTkgNDUgNDYuMiA4NS40IDgwLjkgMTIwLjEgMzQuNyAzNC43IDc1LjEgNjEuOSAxMjAuMSA4MC45IDQ2LjYgMTkuNyA5NiAyOS43IDE0NyAyOS43IDIyLjIgMCA0NC40LTIgNjYuMi01LjkgMzMuNSAxOC45IDcxLjMgMjkgMTEwIDI5IDU5LjcgMCAxMTUuOS0yMy4yIDE1OC4xLTY1LjUgNDIuMy00Mi4yIDY1LjUtOTguNCA2NS41LTE1OC4xLjEtMzgtOS43LTc1LjUtMjguMi0xMDguN3ptLTM3MCAxNjIuOWMtMTM0LjIgMC0xOTQuMi02Ni0xOTQuMi0xMTUuNCAwLTI1LjQgMTguNy00My4xIDQ0LjUtNDMuMSA1Ny40IDAgNDIuNiA4Mi41IDE0OS43IDgyLjUgNTQuOSAwIDg1LjItMjkuOCA4NS4yLTYwLjMgMC0xOC4zLTktMzguNy00NS4yLTQ3LjZsLTExOS40LTI5LjhjLTk2LjEtMjQuMS0xMTMuNi03Ni4xLTExMy42LTEyNC45IDAtMTAxLjQgOTUuNS0xMzkuNSAxODUuMi0xMzkuNSA4Mi42IDAgMTgwIDQ1LjcgMTgwIDEwNi41IDAgMjYuMS0yMi42IDQxLjItNDguNCA0MS4yLTQ5IDAtNDAtNjcuOC0xMzguNy02Ny44LTQ5IDAtNzYuMSAyMi4yLTc2LjEgNTMuOXMzOC43IDQxLjggNzIuMyA0OS41bDg4LjQgMTkuNmM5Ni44IDIxLjYgMTIxLjMgNzguMSAxMjEuMyAxMzEuMyAwIDgyLjMtNjMuMyAxNDMuOS0xOTEgMTQzLjl6JykpO1xuZXhwb3J0cy5TbGlkZXJzRmlsbCA9IGdldEljb24oJ3NsaWRlcnMnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA0IDI5NmgtNjZ2LTk2YzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHY5NmgtNjZjLTQuNCAwLTggMy42LTggOHY0MTZjMCA0LjQgMy42IDggOCA4aDY2djk2YzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LTh2LTk2aDY2YzQuNCAwIDgtMy42IDgtOFYzMDRjMC00LjQtMy42LTgtOC04em0tNTg0LTcyaC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bTI5MiAxODBoLTY2VjIzMmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2MTcyaC02NmMtNC40IDAtOCAzLjYtOCA4djIwMGMwIDQuNCAzLjYgOCA4IDhoNjZ2MTcyYzAgNC40IDMuNiA4IDggOGg1MmM0LjQgMCA4LTMuNiA4LThWNjIwaDY2YzQuNCAwIDgtMy42IDgtOFY0MTJjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuU21pbGVGaWxsID0gZ2V0SWNvbignc21pbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0yMjQgMjcyYy04NS41IDAtMTU1LjYtNjcuMy0xNjAtMTUxLjZhOCA4IDAgMCAxIDgtOC40aDQ4LjFjNC4yIDAgNy44IDMuMiA4LjEgNy40QzQyMCA1ODkuOSA0NjEuNSA2MjkgNTEyIDYyOXM5Mi4xLTM5LjEgOTUuOC04OC42Yy4zLTQuMiAzLjktNy40IDguMS03LjRINjY0YTggOCAwIDAgMSA4IDguNEM2NjcuNiA2MjUuNyA1OTcuNSA2OTMgNTEyIDY5M3ptMTc2LTIyNGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5TbmlwcGV0c0ZpbGwgPSBnZXRJY29uKCdzbmlwcGV0cycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgMTEySDcyNFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBINTAwVjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyMGgtOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY0IDQ4Nkg1MTRWMzM2aC4yTDY2NCA0ODUuOHYuMnptMTI4IDI3NGgtNTZWNDU2TDU0NCAyNjRIMzYwdi04MGg2OHYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmgxNTJ2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoNjh2NTc2eicpKTtcbmV4cG9ydHMuU291bmRGaWxsID0gZ2V0SWNvbignc291bmQnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODkyLjEgNzM3LjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMCAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAgMCAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNNzYwIDM0NGExNS45IDE1LjkgMCAwIDAgMjEuNyA1LjlMODkyIDI4Ni4yYzcuNi00LjQgMTAuMi0xNC4yIDUuOC0yMS44TDg3OCAyMzBhMTUuOSAxNS45IDAgMCAwLTIxLjctNS45TDc0NiAyODcuOGExNS45OSAxNS45OSAwIDAgMC01LjggMjEuOEw3NjAgMzQ0em0xNzQgMTMySDgwNmMtOC44IDAtMTYgNy4yLTE2IDE2djQwYzAgOC44IDcuMiAxNiAxNiAxNmgxMjhjOC44IDAgMTYtNy4yIDE2LTE2di00MGMwLTguOC03LjItMTYtMTYtMTZ6TTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6JykpO1xuZXhwb3J0cy5TdGFyRmlsbCA9IGdldEljb24oJ3N0YXInLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA4LjEgMzUzLjFsLTI1My45LTM2LjlMNTQwLjcgODYuMWMtMy4xLTYuMy04LjItMTEuNC0xNC41LTE0LjUtMTUuOC03LjgtMzUtMS4zLTQyLjkgMTQuNUwzNjkuOCAzMTYuMmwtMjUzLjkgMzYuOWMtNyAxLTEzLjQgNC4zLTE4LjMgOS4zYTMyLjA1IDMyLjA1IDAgMCAwIC42IDQ1LjNsMTgzLjcgMTc5LjEtNDMuNCAyNTIuOWEzMS45NSAzMS45NSAwIDAgMCA0Ni40IDMzLjdMNTEyIDc1NGwyMjcuMSAxMTkuNGM2LjIgMy4zIDEzLjQgNC40IDIwLjMgMy4yIDE3LjQtMyAyOS4xLTE5LjUgMjYuMS0zNi45bC00My40LTI1Mi45IDE4My43LTE3OS4xYzUtNC45IDguMy0xMS4zIDkuMy0xOC4zIDIuNy0xNy41LTkuNS0zMy43LTI3LTM2LjN6JykpO1xuZXhwb3J0cy5TdGVwQmFja3dhcmRGaWxsID0gZ2V0SWNvbignc3RlcC1iYWNrd2FyZCcsIGZpbGwsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ00zNDcuNiA1MjguOTVsMzgzLjIgMzAxLjAyYzE0LjI1IDExLjIgMzUuMiAxLjEgMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNS0yMC45NS0yOC4xNC0zNS4yLTE2Ljk0TDM0Ny42IDQ5NS4wNWEyMS41MyAyMS41MyAwIDAgMCAwIDMzLjlNMzMwIDg2NGgtNjRhOCA4IDAgMCAxLTgtOFYxNjhhOCA4IDAgMCAxIDgtOGg2NGE4IDggMCAwIDEgOCA4djY4OGE4IDggMCAwIDEtOCA4JykpO1xuZXhwb3J0cy5TdGVwRm9yd2FyZEZpbGwgPSBnZXRJY29uKCdzdGVwLWZvcndhcmQnLCBmaWxsLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNjc2LjQgNTI4Ljk1TDI5My4yIDgyOS45N2MtMTQuMjUgMTEuMi0zNS4yIDEuMS0zNS4yLTE2Ljk1VjIxMC45N2MwLTE4LjA1IDIwLjk1LTI4LjE0IDM1LjItMTYuOTRsMzgzLjIgMzAxLjAyYTIxLjUzIDIxLjUzIDAgMCAxIDAgMzMuOU02OTQgODY0aDY0YTggOCAwIDAgMCA4LThWMTY4YTggOCAwIDAgMC04LThoLTY0YTggOCAwIDAgMC04IDh2Njg4YTggOCAwIDAgMCA4IDgnKSk7XG5leHBvcnRzLlN0b3BGaWxsID0gZ2V0SWNvbignc3RvcCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjM0LjggNzM2LjVMMjIzLjUgMjc3LjJjMTYtMTkuNyAzNC0zNy43IDUzLjctNTMuN2w1MjMuMyA1MjMuM2MtMTYgMTkuNi0zNCAzNy43LTUzLjcgNTMuN3onKSk7XG5leHBvcnRzLlN3aXRjaGVyRmlsbCA9IGdldEljb24oJ3N3aXRjaGVyJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc1MiAyNDBIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2MDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjA4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI3MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTk2IDYwNmMwIDQuNC0zLjYgOC04IDhIMzA4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgyODBjNC40IDAgOCAzLjYgOCA4djQ4em0yODQtNDk0SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NzZ2NTc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyeicpKTtcbmV4cG9ydHMuVGFibGV0RmlsbCA9IGdldEljb24oJ3RhYmxldCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MDAgNjRIMjI0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTc2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHpNNTEyIDgyNGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6JykpO1xuZXhwb3J0cy5UYWdGaWxsID0gZ2V0SWNvbigndGFnJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMCAwIDAgMTQuMWwzNjMuOCAzNjMuOGMxLjkgMS45IDQuNCAyLjkgNy4xIDIuOXM1LjItMSA3LjEtMi45bDQ2OC4zLTQ2OC4zYzItMi4xIDMtNSAyLjgtOHpNNjk5IDM4N2MtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6JykpO1xuZXhwb3J0cy5UYWdzRmlsbCA9IGdldEljb24oJ3RhZ3MnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDgzLjIgNzkwLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zYy0yLjMtLjItNC43LjYtNi4zIDIuM0wxMzcuNyA0NDQuOGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMzNC4yIDMzNC4yYzMuMSAzLjIgOC4yIDMuMiAxMS4zIDB6bTEyMi43LTUzMy40YzE4LjctMTguNyA0OS4xLTE4LjcgNjcuOSAwIDE4LjcgMTguNyAxOC43IDQ5LjEgMCA2Ny45LTE4LjcgMTguNy00OS4xIDE4LjctNjcuOSAwLTE4LjctMTguNy0xOC43LTQ5LjEgMC02Ny45em0yODMuOCAyODIuOWwtMzkuNi0zOS41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzkuNiAzOS41YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3onKSk7XG5leHBvcnRzLlRhb2Jhb0NpcmNsZUZpbGwgPSBnZXRJY29uKCd0YW9iYW8tY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0ek0zMTUuNyAyOTEuNWMyNy4zIDAgNDkuNSAyMi4xIDQ5LjUgNDkuNHMtMjIuMSA0OS40LTQ5LjUgNDkuNGE0OS40IDQ5LjQgMCAxIDEgMC05OC44ek0zNjYuOSA1NzhjLTEzLjYgNDIuMy0xMC4yIDI2LjctNjQuNCAxNDQuNWwtNzguNS00OXM4Ny43LTc5LjggMTA1LjYtMTE2LjJjMTkuMi0zOC40LTIxLjEtNTguOS0yMS4xLTU4LjlsLTYwLjItMzcuNSAzMi43LTUwLjJjNDUuNCAzMy43IDQ4LjcgMzYuNiA3OS4yIDY3LjIgMjMuOCAyMy45IDIwLjcgNTYuOCA2LjcgMTAwLjF6bTQyNy4yIDU1Yy0xNS4zIDE0My44LTIwMi40IDkwLjMtMjAyLjQgOTAuM2wxMC4yLTQxLjEgNDMuMyA5LjNjODAgNSA3Mi4zLTY0LjkgNzIuMy02NC45VjQyM2MuNi03Ny4zLTcyLjYtODUuNC0yMDQuMi0zOC4zbDMwLjYgOC4zYy0yLjUgOS0xMi41IDIzLjItMjUuMiAzOC42aDE3NnYzNS42aC05OS4xdjQ0LjVoOTguN3YzNS43aC05OC43VjYyMmMxNC45LTQuOCAyOC42LTExLjUgNDAuNS0yMC41bC04LjctMzIuNSA0Ni41LTE0LjQgMzguOCA5NC45LTU3LjMgMjMuOS0xMC4yLTM3LjhjLTI1LjYgMTkuNS03OC44IDQ4LTE3MS44IDQ1LjQtOTkuMiAyLjYtNzMuNy0xMTItNzMuNy0xMTJsMi41LTEuM0g0NzJjLS41IDE0LjctNi42IDM4LjcgMS43IDUxLjggNi44IDEwLjggMjQuMiAxMi42IDM1LjMgMTMuMSAxLjMuMSAyLjYuMSAzLjkuMXYtODUuM2gtMTAxdi0zNS43aDEwMXYtNDQuNUg0ODdjLTIyLjcgMjQuMS00My41IDQ0LjEtNDMuNSA0NC4xbC0zMC42LTI2LjdjMjEuNy0yMi45IDQzLjMtNTkuMSA1Ni44LTgzLjItMTAuOSA0LjQtMjIgOS4yLTMzLjYgMTQuMi0xMS4yIDE0LjMtMjQuMiAyOS0zOC43IDQzLjUuNS44LTUwLTI4LjQtNTAtMjguNCA1Mi4yLTQ0LjQgODEuNC0xMzkuOSA4MS40LTEzOS45bDcyLjUgMjAuNHMtNS45IDE0LTE4LjQgMzUuNmMyOTAuMy04Mi4zIDMwNy40IDUwLjUgMzA3LjQgNTAuNXMxOS4xIDkxLjggMy44IDIzNS43eicpKTtcbmV4cG9ydHMuVGFvYmFvU3F1YXJlRmlsbCA9IGdldEljb24oJ3Rhb2Jhby1zcXVhcmUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMTUuNyAyOTEuNWMyNy4zIDAgNDkuNSAyMi4xIDQ5LjUgNDkuNHMtMjIuMSA0OS40LTQ5LjUgNDkuNGE0OS40IDQ5LjQgMCAxIDEgMC05OC44ek0zNjYuOSA1NzhjLTEzLjYgNDIuMy0xMC4yIDI2LjctNjQuNCAxNDQuNWwtNzguNS00OXM4Ny43LTc5LjggMTA1LjYtMTE2LjJjMTkuMi0zOC40LTIxLjEtNTguOS0yMS4xLTU4LjlsLTYwLjItMzcuNSAzMi43LTUwLjJjNDUuNCAzMy43IDQ4LjcgMzYuNiA3OS4yIDY3LjIgMjMuOCAyMy45IDIwLjcgNTYuOCA2LjcgMTAwLjF6bTQyNy4yIDU1Yy0xNS4zIDE0My44LTIwMi40IDkwLjMtMjAyLjQgOTAuM2wxMC4yLTQxLjEgNDMuMyA5LjNjODAgNSA3Mi4zLTY0LjkgNzIuMy02NC45VjQyM2MuNi03Ny4zLTcyLjYtODUuNC0yMDQuMi0zOC4zbDMwLjYgOC4zYy0yLjUgOS0xMi41IDIzLjItMjUuMiAzOC42aDE3NnYzNS42aC05OS4xdjQ0LjVoOTguN3YzNS43aC05OC43VjYyMmMxNC45LTQuOCAyOC42LTExLjUgNDAuNS0yMC41bC04LjctMzIuNSA0Ni41LTE0LjQgMzguOCA5NC45LTU3LjMgMjMuOS0xMC4yLTM3LjhjLTI1LjYgMTkuNS03OC44IDQ4LTE3MS44IDQ1LjQtOTkuMiAyLjYtNzMuNy0xMTItNzMuNy0xMTJsMi41LTEuM0g0NzJjLS41IDE0LjctNi42IDM4LjcgMS43IDUxLjggNi44IDEwLjggMjQuMiAxMi42IDM1LjMgMTMuMSAxLjMuMSAyLjYuMSAzLjkuMXYtODUuM2gtMTAxdi0zNS43aDEwMXYtNDQuNUg0ODdjLTIyLjcgMjQuMS00My41IDQ0LjEtNDMuNSA0NC4xbC0zMC42LTI2LjdjMjEuNy0yMi45IDQzLjMtNTkuMSA1Ni44LTgzLjItMTAuOSA0LjQtMjIgOS4yLTMzLjYgMTQuMi0xMS4yIDE0LjMtMjQuMiAyOS0zOC43IDQzLjUuNS44LTUwLTI4LjQtNTAtMjguNCA1Mi4yLTQ0LjQgODEuNC0xMzkuOSA4MS40LTEzOS45bDcyLjUgMjAuNHMtNS45IDE0LTE4LjQgMzUuNmMyOTAuMy04Mi4zIDMwNy40IDUwLjUgMzA3LjQgNTAuNXMxOS4xIDkxLjggMy44IDIzNS43eicpKTtcbmV4cG9ydHMuVG9vbEZpbGwgPSBnZXRJY29uKCd0b29sJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NS4zIDI0NC43Yy0uMy0uMy02MS4xIDU5LjgtMTgyLjEgMTgwLjZsLTg0LjktODQuOSAxODAuOS0xODAuOWMtOTUuMi01Ny4zLTIxNy41LTQyLjYtMjk2LjggMzYuN0EyNDQuNDIgMjQ0LjQyIDAgMCAwIDQxOSA0MzJsMS44IDYuNy0yODMuNSAyODMuNGMtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMTQxLjQgMTQxLjRjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjgzLjMtMjgzLjMgNi43IDEuOGM4My43IDIyLjMgMTczLjYtLjkgMjM2LTYzLjMgNzkuNC03OS4zIDk0LjEtMjAxLjYgMzgtMjk2LjZ6JykpO1xuZXhwb3J0cy5UaHVuZGVyYm9sdEZpbGwgPSBnZXRJY29uKCd0aHVuZGVyYm9sdCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NDggMzU5LjNINjI3LjdMODI1LjggMTA5YzQuMS01LjMuNC0xMy02LjMtMTNINDM2Yy0yLjggMC01LjUgMS41LTYuOSA0TDE3MCA1NDcuNWMtMy4xIDUuMy43IDEyIDYuOSAxMmgxNzQuNGwtODkuNCAzNTcuNmMtMS45IDcuOCA3LjUgMTMuMyAxMy4zIDcuN0w4NTMuNSAzNzNjNS4yLTQuOSAxLjctMTMuNy01LjUtMTMuN3onKSk7XG5leHBvcnRzLlRyYWRlbWFya0NpcmNsZUZpbGwgPSBnZXRJY29uKCd0cmFkZW1hcmstY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNjQuNyA2NjAuMmMtMS4xLjUtMi4zLjgtMy41LjhoLTYyYy0zLjEgMC01LjktMS44LTcuMi00LjZsLTc0LjYtMTU5LjJoLTg4LjdWNzE3YzAgNC40LTMuNiA4LTggOEgzNzhjLTQuNCAwLTgtMy42LTgtOFYzMDdjMC00LjQgMy42LTggOC04aDE1NS42Yzk4LjggMCAxNDQuMiA1OS45IDE0NC4yIDEzMS4xIDAgNzAuMi00My42IDEwNi40LTc4LjQgMTE5LjJsODAuOCAxNjQuMmMyLjEgMy45LjQgOC43LTMuNSAxMC43ek01MjMuOSAzNTdoLTgzLjR2MTQ4SDUyMmM1MyAwIDgyLjgtMjUuNiA4Mi44LTcyLjQgMC01MC4zLTMyLjktNzUuNi04MC45LTc1LjZ6JykpO1xuZXhwb3J0cy5Ud2l0dGVyQ2lyY2xlRmlsbCA9IGdldEljb24oJ3R3aXR0ZXItY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yMTUuMyAzMzcuN2MuMyA0LjcuMyA5LjYuMyAxNC40IDAgMTQ2LjgtMTExLjggMzE1LjktMzE2LjEgMzE1LjktNjMgMC0xMjEuNC0xOC4zLTE3MC42LTQ5LjggOSAxIDE3LjYgMS40IDI2LjggMS40IDUyIDAgOTkuOC0xNy42IDEzNy45LTQ3LjQtNDguOC0xLTg5LjgtMzMtMTAzLjgtNzcgMTcuMSAyLjUgMzIuNSAyLjUgNTAuMS0yYTExMSAxMTEgMCAwIDEtODguOS0xMDl2LTEuNGMxNC43IDguMyAzMiAxMy40IDUwLjEgMTQuMWExMTEuMTMgMTExLjEzIDAgMCAxLTQ5LjUtOTIuNGMwLTIwLjcgNS40LTM5LjYgMTUuMS01NmEzMTUuMjggMzE1LjI4IDAgMCAwIDIyOSAxMTYuMUM0OTIgMzUzLjEgNTQ4LjQgMjkyIDYxNi4yIDI5MmMzMiAwIDYwLjggMTMuNCA4MS4xIDM1IDI1LjEtNC43IDQ5LjEtMTQuMSA3MC41LTI2LjctOC4zIDI1LjctMjUuNyA0Ny40LTQ4LjggNjEuMSAyMi40LTIuNCA0NC04LjYgNjQtMTcuMy0xNS4xIDIyLjItMzQgNDEuOS01NS43IDU3LjZ6JykpO1xuZXhwb3J0cy5Ucm9waHlGaWxsID0gZ2V0SWNvbigndHJvcGh5JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2OCAxNjBoLTkydi00MGMwLTQuNC0zLjYtOC04LThIMjU2Yy00LjQgMC04IDMuNi04IDh2NDBoLTkyYTQ0IDQ0IDAgMCAwLTQ0IDQ0djE0OGMwIDgxLjcgNjAgMTQ5LjYgMTM4LjIgMTYyQzI2NS42IDYzMC4yIDM1OSA3MjEuOCA0NzYgNzM0LjV2MTA1LjJIMjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY5MDRjMCA0LjQgMy42IDggOCA4aDUxMmM0LjQgMCA4LTMuNiA4LTh2LTMyLjNjMC0xNy43LTE0LjMtMzItMzItMzJINTQ4VjczNC41QzY2NSA3MjEuOCA3NTguNCA2MzAuMiA3NzMuOCA1MTQgODUyIDUwMS42IDkxMiA0MzMuNyA5MTIgMzUyVjIwNGE0NCA0NCAwIDAgMC00NC00NHpNMjQ4IDQzOS42Yy0zNy4xLTExLjktNjQtNDYuNy02NC04Ny42VjIzMmg2NHYyMDcuNnpNODQwIDM1MmMwIDQxLTI2LjkgNzUuOC02NCA4Ny42VjIzMmg2NHYxMjB6JykpO1xuZXhwb3J0cy5Ud2l0dGVyU3F1YXJlRmlsbCA9IGdldEljb24oJ3R3aXR0ZXItc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzI3LjMgNDAxLjdjLjMgNC43LjMgOS42LjMgMTQuNCAwIDE0Ni44LTExMS44IDMxNS45LTMxNi4xIDMxNS45LTYzIDAtMTIxLjQtMTguMy0xNzAuNi00OS44IDkgMSAxNy42IDEuNCAyNi44IDEuNCA1MiAwIDk5LjgtMTcuNiAxMzcuOS00Ny40LTQ4LjgtMS04OS44LTMzLTEwMy44LTc3IDE3LjEgMi41IDMyLjUgMi41IDUwLjEtMmExMTEgMTExIDAgMCAxLTg4LjktMTA5di0xLjRjMTQuNyA4LjMgMzIgMTMuNCA1MC4xIDE0LjFhMTExLjEzIDExMS4xMyAwIDAgMS00OS41LTkyLjRjMC0yMC43IDUuNC0zOS42IDE1LjEtNTZhMzE1LjI4IDMxNS4yOCAwIDAgMCAyMjkgMTE2LjFDNDkyIDM1My4xIDU0OC40IDI5MiA2MTYuMiAyOTJjMzIgMCA2MC44IDEzLjQgODEuMSAzNSAyNS4xLTQuNyA0OS4xLTE0LjEgNzAuNS0yNi43LTguMyAyNS43LTI1LjcgNDcuNC00OC44IDYxLjEgMjIuNC0yLjQgNDQtOC42IDY0LTE3LjMtMTUuMSAyMi4yLTM0IDQxLjktNTUuNyA1Ny42eicpKTtcbmV4cG9ydHMuVW5sb2NrRmlsbCA9IGdldEljb24oJ3VubG9jaycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNDY0SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djY4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY4YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU0MCA3MDF2NTNjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di01M2E0OC4wMSA0OC4wMSAwIDEgMSA1NiAweicpKTtcbmV4cG9ydHMuVXBDaXJjbGVGaWxsID0gZ2V0SWNvbigndXAtY2lyY2xlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0xNzggNTU1aC00Ni45Yy0xMC4yIDAtMTkuOS00LjktMjUuOS0xMy4yTDUxMiA0NjAuNCA0MDYuOCA2MDUuOGMtNiA4LjMtMTUuNiAxMy4yLTI1LjkgMTMuMkgzMzRjLTYuNSAwLTEwLjMtNy40LTYuNS0xMi43bDE3OC0yNDZjMy4yLTQuNCA5LjctNC40IDEyLjkgMGwxNzggMjQ2YzMuOSA1LjMuMSAxMi43LTYuNCAxMi43eicpKTtcbmV4cG9ydHMuVXBTcXVhcmVGaWxsID0gZ2V0SWNvbigndXAtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjkwIDYyNGgtNDYuOWMtMTAuMiAwLTE5LjktNC45LTI1LjktMTMuMkw1MTIgNDY1LjQgNDA2LjggNjEwLjhjLTYgOC4zLTE1LjYgMTMuMi0yNS45IDEzLjJIMzM0Yy02LjUgMC0xMC4zLTcuNC02LjUtMTIuN2wxNzgtMjQ2YzMuMi00LjQgOS43LTQuNCAxMi45IDBsMTc4IDI0NmMzLjkgNS4zLjEgMTIuNy02LjQgMTIuN3onKSk7XG5leHBvcnRzLlVzYkZpbGwgPSBnZXRJY29uKCd1c2InLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDA4IDMxMmg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTM1MiAxMjBWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2em0tNzIgMEgzMzZWMTg0aDM1MnYyNDh6TTU2OCAzMTJoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuV2FsbGV0RmlsbCA9IGdldEljb24oJ3dhbGxldCcsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMiA0NjRINTI4VjQ0OGgzMjB2MTI4em0tMjY4LTY0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLlZpZGVvQ2FtZXJhRmlsbCA9IGdldEljb24oJ3ZpZGVvLWNhbWVyYScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTMyOCAzNTJjMCA0LjQtMy42IDgtOCA4SDIwOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTEyYzQuNCAwIDggMy42IDggOHY0OHptNTYwIDI3M2wtMTA0LTU5LjhWNDU4LjlMODg4IDM5OXYyMjZ6JykpO1xuZXhwb3J0cy5XYXJuaW5nRmlsbCA9IGdldEljb24oJ3dhcm5pbmcnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU1LjcgODU2bC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4ek00ODAgNDE2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MTZ6bTMyIDM1MmE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6JykpO1xuZXhwb3J0cy5XZWlib0NpcmNsZUZpbGwgPSBnZXRJY29uKCd3ZWliby1jaXJjbGUnLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS00NC40IDY3MkMzNTMuMSA3MzYgMjM2IDY4MC40IDIzNiA1ODguOWMwLTQ3LjggMzAuMi0xMDMuMSA4Mi4zLTE1NS4zIDY5LjUtNjkuNiAxNTAuNi0xMDEuNCAxODEuMS03MC44IDEzLjUgMTMuNSAxNC44IDM2LjggNi4xIDY0LjYtNC41IDE0IDEzLjEgNi4zIDEzLjEgNi4zIDU2LjItMjMuNiAxMDUuMi0yNSAxMjMuMS43IDkuNiAxMy43IDguNiAzMi44LS4yIDU1LjEtNC4xIDEwLjIgMS4zIDExLjggOSAxNC4xIDMxLjcgOS44IDY2LjkgMzMuNiA2Ni45IDc1LjUuMiA2OS41LTk5LjcgMTU2LjktMjQ5LjggMTU2Ljl6bTIwNy4zLTI5MC44YTM0LjkgMzQuOSAwIDAgMC03LjItMzQuMSAzNC42OCAzNC42OCAwIDAgMC0zMy4xLTEwLjcgMTguMjQgMTguMjQgMCAwIDEtNy42LTM1LjdjMjQuMS01LjEgNTAuMSAyLjMgNjcuNyAyMS45IDE3LjcgMTkuNiAyMi40IDQ2LjMgMTQuOSA2OS44YTE4LjEzIDE4LjEzIDAgMCAxLTIyLjkgMTEuNyAxOC4xOCAxOC4xOCAwIDAgMS0xMS44LTIyLjl6bTEwNiAzNC4zczAgLjEgMCAwYTIxLjEgMjEuMSAwIDAgMS0yNi42IDEzLjcgMjEuMTkgMjEuMTkgMCAwIDEtMTMuNi0yNi43YzExLTM0LjIgNC03My4yLTIxLjctMTAxLjhhMTA0LjA0IDEwNC4wNCAwIDAgMC05OC45LTMyLjEgMjEuMTQgMjEuMTQgMCAwIDEtMjUuMS0xNi4zIDIxLjA3IDIxLjA3IDAgMCAxIDE2LjItMjUuMWM0OS40LTEwLjUgMTAyLjggNC44IDEzOS4xIDQ1LjEgMzYuMyA0MC4yIDQ2LjEgOTUuMSAzMC42IDE0My4yem0tMzM0LjUgNi4xYy05MS40IDktMTYwLjcgNjUuMS0xNTQuNyAxMjUuMiA1LjkgNjAuMSA4NC44IDEwMS41IDE3Ni4yIDkyLjUgOTEuNC05LjEgMTYwLjctNjUuMSAxNTQuNy0xMjUuMy01LjktNjAuMS04NC44LTEwMS41LTE3Ni4yLTkyLjR6bTgwLjIgMTQxLjdjLTE4LjcgNDIuMy03Mi4zIDY0LjgtMTE3LjggNTAuMS00My45LTE0LjItNjIuNS01Ny43LTQzLjMtOTYuOCAxOC45LTM4LjQgNjgtNjAuMSAxMTEuNS00OC44IDQ1IDExLjcgNjggNTQuMiA0OS42IDk1LjV6bS05My0zMi4yYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3ptMzQuOS0xNC41Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6JykpO1xuZXhwb3J0cy5XZWNoYXRGaWxsID0gZ2V0SWNvbignd2VjaGF0JywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5MC4xIDM3Ny40YzUuOSAwIDExLjguMiAxNy42LjUtMjQuNC0xMjguNy0xNTguMy0yMjcuMS0zMTkuOS0yMjcuMUMyMDkgMTUwLjggNjQgMjcxLjQgNjQgNDIwLjJjMCA4MS4xIDQzLjYgMTU0LjIgMTExLjkgMjAzLjZhMjEuNSAyMS41IDAgMCAxIDkuMSAxNy42YzAgMi40LS41IDQuNi0xLjEgNi45LTUuNSAyMC4zLTE0LjIgNTIuOC0xNC42IDU0LjMtLjcgMi42LTEuNyA1LjItMS43IDcuOSAwIDUuOSA0LjggMTAuOCAxMC44IDEwLjggMi4zIDAgNC4yLS45IDYuMi0ybDcwLjktNDAuOWM1LjMtMy4xIDExLTUgMTcuMi01IDMuMiAwIDYuNC41IDkuNSAxLjQgMzMuMSA5LjUgNjguOCAxNC44IDEwNS43IDE0LjggNiAwIDExLjktLjEgMTcuOC0uNC03LjEtMjEtMTAuOS00My4xLTEwLjktNjYgMC0xMzUuOCAxMzIuMi0yNDUuOCAyOTUuMy0yNDUuOHptLTE5NC4zLTg2LjVjMjMuOCAwIDQzLjIgMTkuMyA0My4yIDQzLjFzLTE5LjMgNDMuMS00My4yIDQzLjFjLTIzLjggMC00My4yLTE5LjMtNDMuMi00My4xczE5LjQtNDMuMSA0My4yLTQzLjF6bS0yMTUuOSA4Ni4yYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS4zLTQzLjEgNDMuMi00My4xIDQzLjIgMTkuMyA0My4yIDQzLjEtMTkuNCA0My4xLTQzLjIgNDMuMXptNTg2LjggNDE1LjZjNTYuOS00MS4yIDkzLjItMTAyIDkzLjItMTY5LjcgMC0xMjQtMTIwLjgtMjI0LjUtMjY5LjktMjI0LjUtMTQ5IDAtMjY5LjkgMTAwLjUtMjY5LjkgMjI0LjVTNTQwLjkgODQ3LjUgNjkwIDg0Ny41YzMwLjggMCA2MC42LTQuNCA4OC4xLTEyLjMgMi42LS44IDUuMi0xLjIgNy45LTEuMiA1LjIgMCA5LjkgMS42IDE0LjMgNC4xbDU5LjEgMzRjMS43IDEgMy4zIDEuNyA1LjIgMS43YTkgOSAwIDAgMCA2LjQtMi42IDkgOSAwIDAgMCAyLjYtNi40YzAtMi4yLS45LTQuNC0xLjQtNi42LS4zLTEuMi03LjYtMjguMy0xMi4yLTQ1LjMtLjUtMS45LS45LTMuOC0uOS01LjcuMS01LjkgMy4xLTExLjIgNy42LTE0LjV6TTYwMC4yIDU4Ny4yYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjljMCAxOS44LTE2LjIgMzUuOS0zNiAzNS45em0xNzkuOSAwYy0xOS45IDAtMzYtMTYuMS0zNi0zNS45IDAtMTkuOCAxNi4xLTM1LjkgMzYtMzUuOXMzNiAxNi4xIDM2IDM1LjlhMzYuMDggMzYuMDggMCAwIDEtMzYgMzUuOXonKSk7XG5leHBvcnRzLldpbmRvd3NGaWxsID0gZ2V0SWNvbignd2luZG93cycsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MjMuOCAxOTEuNHYyODguOWgzODJWMTI4LjF6bTAgNjQyLjJsMzgyIDYyLjJ2LTM1MmgtMzgyek0xMjAuMSA0ODAuMkg0NDNWMjAxLjlsLTMyMi45IDUzLjV6bTAgMjkwLjRMNDQzIDgyMy4yVjU0My44SDEyMC4xeicpKTtcbmV4cG9ydHMuWWFob29GaWxsID0gZ2V0SWNvbigneWFob28nLCBmaWxsLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTM3LjMgMjMxSDgyNC43Yy0xNS41IDAtMjcuNyAxMi42LTI3LjEgMjguMWwxMy4xIDM2Nmg4NC40bDY1LjQtMzY2LjRjMi43LTE1LjItNy44LTI3LjctMjMuMi0yNy43em0tNzcuNCA0NTAuNGgtMTQuMWMtMjcuMSAwLTQ5LjIgMjIuMi00OS4yIDQ5LjN2MTQuMWMwIDI3LjEgMjIuMiA0OS4zIDQ5LjIgNDkuM2gxNC4xYzI3LjEgMCA0OS4yLTIyLjIgNDkuMi00OS4zdi0xNC4xYzAtMjcuMS0yMi4yLTQ5LjMtNDkuMi00OS4zek00MDIuNiAyMzFDMjE2LjIgMjMxIDY1IDM1NyA2NSA1MTIuNVMyMTYuMiA3OTQgNDAyLjYgNzk0czMzNy42LTEyNiAzMzcuNi0yODEuNVM1ODkuMSAyMzEgNDAyLjYgMjMxem0yMjUuMiAyMjUuMmgtNjUuM0w0NTguOSA1NTkuOHY2NS4zaDg0LjR2NTYuM0gzMTguMnYtNTYuM2g4NC40di02NS4zTDI0Mi45IDM5OS45aC0zN3YtNTYuM2gxNjguNXY1Ni4zaC0zN2w5My40IDkzLjUgMjguMS0yOC4xVjQwMGgxNjguOHY1Ni4yeicpKTtcbmV4cG9ydHMuV2VpYm9TcXVhcmVGaWxsID0gZ2V0SWNvbignd2VpYm8tc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQzMy42IDU5NS4xYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3pNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NjcuNiA3MzZDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tNTguMS00Ni43Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6JykpO1xuZXhwb3J0cy5ZdXF1ZUZpbGwgPSBnZXRJY29uKCd5dXF1ZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAzNzAuNmMtOS45LTM5LjQgOS45LTEwMi4yIDczLjQtMTI0LjRsLTY3LjktMy42cy0yNS43LTkwLTE0My42LTk4Yy0xMTcuOS04LjEtMTk1LTMtMTk1LTNzODcuNCA1NS42IDUyLjQgMTU0LjdjLTI1LjYgNTIuNS02NS44IDk1LjYtMTA4LjggMTQ0LjctMS4zIDEuMy0yLjUgMi42LTMuNSAzLjdDMzE5LjQgNjA1IDk2IDg2MCA5NiA4NjBjMjQ1LjkgNjQuNCA0MTAuNy02LjMgNTA4LjItOTEuMSAyMC41LS4yIDM1LjktLjMgNDYuMy0uMyAxMzUuOCAwIDI1MC42LTExNy42IDI0NS45LTI0OC40LTMuMi04OS45LTMxLjktMTEwLjItNDEuOC0xNDkuNnonKSk7XG5leHBvcnRzLllvdXR1YmVGaWxsID0gZ2V0SWNvbigneW91dHViZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NDEuMyAyOTYuMWExMTIuMyAxMTIuMyAwIDAgMC03OS4yLTc5LjNDNzkyLjIgMTk4IDUxMiAxOTggNTEyIDE5OHMtMjgwLjIgMC0zNTAuMSAxOC43QTExMi4xMiAxMTIuMTIgMCAwIDAgODIuNyAyOTZDNjQgMzY2IDY0IDUxMiA2NCA1MTJzMCAxNDYgMTguNyAyMTUuOWMxMC4zIDM4LjYgNDAuNyA2OSA3OS4yIDc5LjNDMjMxLjggODI2IDUxMiA4MjYgNTEyIDgyNnMyODAuMiAwIDM1MC4xLTE4LjhjMzguNi0xMC4zIDY4LjktNDAuNyA3OS4yLTc5LjNDOTYwIDY1OCA5NjAgNTEyIDk2MCA1MTJzMC0xNDYtMTguNy0yMTUuOXpNNDIzIDY0NlYzNzhsMjMyIDEzMy0yMzIgMTM1eicpKTtcbmV4cG9ydHMuWmhpaHVTcXVhcmVGaWxsID0gZ2V0SWNvbignemhpaHUtc3F1YXJlJywgZmlsbCwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDMyLjMgNTkyLjhsNzEgODAuN2M5LjIgMzMtMy4zIDYzLjEtMy4zIDYzLjFsLTk1LjctMTExLjl2LS4xYy04LjkgMjktMjAuMSA1Ny4zLTMzLjMgODQuNy0yMi42IDQ1LjctNTUuMiA1NC43LTg5LjUgNTcuNy0zNC40IDMtMjMuMy01LjMtMjMuMy01LjMgNjgtNTUuNSA3OC04Ny44IDk2LjgtMTIzLjEgMTEuOS0yMi4zIDIwLjQtNjQuMyAyNS4zLTk2LjhIMjY0LjFzNC44LTMxLjIgMTkuMi00MS43aDEwMS42Yy42LTE1LjMtMS4zLTEwMi44LTItMTMxLjRoLTQ5LjRjLTkuMiA0NS00MSA1Ni43LTQ4LjEgNjAuMS03IDMuNC0yMy42IDcuMS0yMS4xIDAgMi42LTcuMSAyNy00Ni4yIDQzLjItMTEwLjcgMTYuMy02NC42IDYzLjktNjIgNjMuOS02Mi0xMi44IDIyLjUtMjIuNCA3My42LTIyLjQgNzMuNmgxNTkuN2MxMC4xIDAgMTAuNiAzOSAxMC42IDM5aC05MC44Yy0uNyAyMi43LTIuOCA4My44LTUgMTMxLjRINTE5czEyLjIgMTUuNCAxMi4yIDQxLjdoLTExMGwtLjEgMS41Yy0xLjUgMjAuNC02LjMgNDMuOS0xMi45IDY3LjZsMjQuMS0xOC4xem0zMzUuNSAxMTZoLTg3LjZsLTY5LjUgNDYuNi0xNi40LTQ2LjZoLTQwLjFWMzIxLjVoMjEzLjZ2Mzg3LjN6TTQwOC4yIDYxMXMwLS4xIDAgMHptMjE2IDk0LjNsNTYuOC0zOC4xaDQ1LjYtLjFWMzY0LjdINTk2Ljd2MzAyLjVoMTQuMXonKSk7XG5leHBvcnRzLlpoaWh1Q2lyY2xlRmlsbCA9IGdldEljb24oJ3poaWh1LWNpcmNsZScsIGZpbGwsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptLTkwLjcgNDc3LjhsLS4xIDEuNWMtMS41IDIwLjQtNi4zIDQzLjktMTIuOSA2Ny42bDI0LTE4LjEgNzEgODAuN2M5LjIgMzMtMy4zIDYzLjEtMy4zIDYzLjFsLTk1LjctMTExLjl2LS4xYy04LjkgMjktMjAuMSA1Ny4zLTMzLjMgODQuNy0yMi42IDQ1LjctNTUuMiA1NC43LTg5LjUgNTcuNy0zNC40IDMtMjMuMy01LjMtMjMuMy01LjMgNjgtNTUuNSA3OC04Ny44IDk2LjgtMTIzLjEgMTEuOS0yMi4zIDIwLjQtNjQuMyAyNS4zLTk2LjhIMjY0LjFzNC44LTMxLjIgMTkuMi00MS43aDEwMS42Yy42LTE1LjMtMS4zLTEwMi44LTItMTMxLjRoLTQ5LjRjLTkuMiA0NS00MSA1Ni43LTQ4LjEgNjAuMS03IDMuNC0yMy42IDcuMS0yMS4xIDAgMi42LTcuMSAyNy00Ni4yIDQzLjItMTEwLjcgMTYuMy02NC42IDYzLjktNjIgNjMuOS02Mi0xMi44IDIyLjUtMjIuNCA3My42LTIyLjQgNzMuNmgxNTkuN2MxMC4xIDAgMTAuNiAzOSAxMC42IDM5aC05MC44Yy0uNyAyMi43LTIuOCA4My44LTUgMTMxLjRINTE5czEyLjIgMTUuNCAxMi4yIDQxLjdINDIxLjN6bTM0Ni41IDE2N2gtODcuNmwtNjkuNSA0Ni42LTE2LjQtNDYuNmgtNDAuMVYzMjEuNWgyMTMuNnYzODcuM3pNNDA4LjIgNjExczAtLjEgMCAwem0yMTYgOTQuM2w1Ni44LTM4LjFoNDUuNi0uMVYzNjQuN0g1OTYuN3YzMDIuNWgxNC4xeicpKTtcbmV4cG9ydHMuQWNjb3VudEJvb2tPdXRsaW5lID0gZ2V0SWNvbignYWNjb3VudC1ib29rJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djU4NHpNNjM5LjUgNDE0aC00NWMtMyAwLTUuOCAxLjctNy4xIDQuNEw1MTQgNTYzLjhoLTIuOGwtNzMuNC0xNDUuNGE4IDggMCAwIDAtNy4xLTQuNGgtNDZjLTEuMyAwLTIuNy4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlsODkuMyAxNjRoLTQ4LjZjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xdjMzLjdoLTY1LjFjLTQuNCAwLTggMy42LTggOHYyMS4zYzAgNC40IDMuNiA4IDggOGg2NS4xVjc1MmMwIDQuNCAzLjYgOCA4IDhoNDEuM2M0LjQgMCA4LTMuNiA4LTh2LTUzLjhoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC02NS40di0zMy43aDY1LjRjNC40IDAgOC0zLjYgOC04di0yMS4zYzAtNC40LTMuNi04LTgtOGgtNDkuMWw4OS4zLTE2NC4xYy42LTEuMiAxLTIuNSAxLTMuOC4xLTQuNC0zLjQtOC03LjktOHonKSk7XG5leHBvcnRzLkFsZXJ0T3V0bGluZSA9IGdldEljb24oJ2FsZXJ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE5MyA3OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTc0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU2M2MwLTE3Ni4yLTE0Mi44LTMxOS0zMTktMzE5UzE5MyAzODYuOCAxOTMgNTYzdjIzM3ptNzItMjMzYzAtMTM2LjQgMTEwLjYtMjQ3IDI0Ny0yNDdzMjQ3IDExMC42IDI0NyAyNDd2MTkzSDQwNFY1ODVjMC01LjUtNC41LTEwLTEwLTEwaC00NGMtNS41IDAtMTAgNC41LTEwIDEwdjE3MWgtNzVWNTYzem0tNDguMS0yNTIuNWwzOS42LTM5LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNjcuOS02Ny45YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM5LjYgMzkuNmE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDY3LjkgNjcuOWMzLjEgMy4xIDguMSAzLjEgMTEuMyAwem02NjkuNi03OS4ybC0zOS42LTM5LjZhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtNjcuOSA2Ny45YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzkuNiAzOS42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNjcuOS02Ny45YzMuMS0zLjIgMy4xLTguMiAwLTExLjN6TTgzMiA4OTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNGMwIDQuNCAzLjYgOCA4IDhoNjg4YzQuNCAwIDgtMy42IDgtOHYtMjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTQ4NCAxODBoNTZjNC40IDAgOC0zLjYgOC04Vjc2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY5NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5BbGlwYXlDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignYWxpcGF5LWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDguNiA1NDUuN2MtMTkuOCAyLTU3LjEgMTAuNy03Ny40IDI4LjYtNjEgNTMtMjQuNSAxNTAgOTkgMTUwIDcxLjggMCAxNDMuNS00NS43IDE5OS44LTExOS04MC4yLTM4LjktMTQ4LjEtNjYuOC0yMjEuNC01OS42em00NjAuNSA2N2MxMDAuMSAzMy40IDE1NC43IDQzIDE2Ni43IDQ0LjhBNDQ1LjkgNDQ1LjkgMCAwIDAgOTYwIDUxMmMwLTI0Ny40LTIwMC42LTQ0OC00NDgtNDQ4UzY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OGMxNTUuOSAwIDI5My4yLTc5LjcgMzczLjUtMjAwLjUtNzUuNi0yOS44LTIxMy42LTg1LTI4Ni44LTEyMC4xLTY5LjkgODUuNy0xNjAuMSAxMzcuOC0yNTMuNyAxMzcuOC0xNTguNCAwLTIxMi4xLTEzOC4xLTEzNy4yLTIyOSAxNi4zLTE5LjggNDQuMi0zOC43IDg3LjMtNDkuNCA2Ny41LTE2LjUgMTc1IDEwLjMgMjc1LjcgNDMuNCAxOC4xLTMzLjMgMzMuNC02OS45IDQ0LjctMTA4LjlIMzA1LjFWNDAyaDE2MHYtNTYuMkgyNzEuM3YtMzEuM2gxOTMuOHYtODAuMXMwLTEzLjUgMTMuNy0xMy41SDU1N3Y5My42aDE5MS43djMxLjNINTU3LjFWNDAyaDE1Ni40Yy0xNSA2MS4xLTM3LjcgMTE3LjQtNjYuMiAxNjYuOCA0Ny41IDE3LjEgOTAuMSAzMy4zIDEyMS44IDQzLjl6JykpO1xuZXhwb3J0cy5BbGl3YW5nd2FuZ091dGxpbmUgPSBnZXRJY29uKCdhbGl3YW5nd2FuZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjguMiAzNzcuNGMtMTguOS00NS4xLTQ2LjMtODUuNi04MS4yLTEyMC42YTM3Ny4yNiAzNzcuMjYgMCAwIDAtMTIwLjUtODEuMkEzNzUuNjUgMzc1LjY1IDAgMCAwIDUxOSAxNDUuOGMtNDEuOSAwLTgyLjkgNi43LTEyMS45IDIwQzMwNiAxMjMuMyAyMDAuOCAxMjAgMTcwLjYgMTIwYy0yLjIgMC03LjQgMC05LjQuMi0xMS45LjQtMjIuOCA2LjUtMjkuMiAxNi40LTYuNSA5LjktNy43IDIyLjQtMy40IDMzLjVsNjQuMyAxNjEuNmEzNzguNTkgMzc4LjU5IDAgMCAwLTUyLjggMTkzLjJjMCA1MS40IDEwIDEwMSAyOS44IDE0Ny42IDE4LjkgNDUgNDYuMiA4NS42IDgxLjIgMTIwLjUgMzQuNyAzNC44IDc1LjQgNjIuMSAxMjAuNSA4MS4yQzQxOC4zIDg5NCA0NjcuOSA5MDQgNTE5IDkwNGM1MS4zIDAgMTAwLjktMTAuMSAxNDcuNy0yOS44IDQ0LjktMTguOSA4NS41LTQ2LjMgMTIwLjQtODEuMiAzNC43LTM0LjggNjIuMS03NS40IDgxLjItMTIwLjZhMzc2LjUgMzc2LjUgMCAwIDAgMjkuOC0xNDcuNmMtLjItNTEuMi0xMC4xLTEwMC44LTI5LjktMTQ3LjR6bS02Ni40IDI2Ni41YTMwNy4wOCAzMDcuMDggMCAwIDEtNjUuOSA5OGMtMjguNCAyOC41LTYxLjMgNTAuNy05Ny43IDY1LjloLS4xYy0zOCAxNi03OC4zIDI0LjItMTE5LjkgMjQuMmEzMDYuNTEgMzA2LjUxIDAgMCAxLTIxNy41LTkwLjJjLTI4LjQtMjguNS01MC42LTYxLjQtNjUuOC05Ny44di0uMWMtMTYtMzcuOC0yNC4xLTc4LjItMjQuMS0xMTkuOSAwLTU1LjQgMTQuOC0xMDkuNyA0Mi44LTE1N2wxMy4yLTIyLjEtOS41LTIzLjlMMjA2IDE5MmMxNC45LjYgMzUuOSAyLjEgNTkuNyA1LjYgNDMuOCA2LjUgODIuNSAxNy41IDExNC45IDMyLjZsMTkgOC45IDE5LjktNi44YzMxLjUtMTAuOCA2NC44LTE2LjIgOTguOS0xNi4yYTMwNi41MSAzMDYuNTEgMCAwIDEgMjE3LjUgOTAuMmMyOC40IDI4LjUgNTAuNiA2MS40IDY1LjggOTcuOGwuMS4xLjEuMWMxNiAzNy42IDI0LjEgNzggMjQuMiAxMTkuOC0uMSA0MS43LTguMyA4Mi0yNC4zIDExOS44ek02ODEuMSAzNjQuMmMtMjAuNCAwLTM3LjEgMTYuNy0zNy4xIDM3LjF2NTUuMWMwIDIwLjQgMTYuNiAzNy4xIDM3LjEgMzcuMXMzNy4xLTE2LjcgMzcuMS0zNy4xdi01NS4xYzAtMjAuNS0xNi43LTM3LjEtMzcuMS0zNy4xem0tMTc1LjIgMGMtMjAuNSAwLTM3LjEgMTYuNy0zNy4xIDM3LjF2NTUuMWMwIDIwLjQgMTYuNyAzNy4xIDM3LjEgMzcuMSAyMC41IDAgMzcuMS0xNi43IDM3LjEtMzcuMXYtNTUuMWMwLTIwLjUtMTYuNy0zNy4xLTM3LjEtMzcuMXonKSk7XG5leHBvcnRzLkFuZHJvaWRPdXRsaW5lID0gZ2V0SWNvbignYW5kcm9pZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NDguMyAyMjUuMmMtMTguNiAwLTMyIDEzLjQtMzIgMzEuOXMxMy41IDMxLjkgMzIgMzEuOWMxOC42IDAgMzItMTMuNCAzMi0zMS45LjEtMTguNC0xMy40LTMxLjktMzItMzEuOXptMzkzLjkgOTYuNGMtMTMuOC0xMy44LTMyLjctMjEuNS01My4yLTIxLjUtMy45IDAtNy40LjQtMTAuNyAxdi0xaC0zLjZjLTUuNS0zMC42LTE4LjYtNjAuNS0zOC4xLTg3LjQtMTguNy0yNS43LTQzLTQ3LjktNzAuOC02NC45bDI1LjEtMzUuOHYtMy4zYzAtLjguNC0yLjMuNy0zLjguNi0yLjQgMS40LTUuNSAxLjQtOC45IDAtMTguNS0xMy41LTMxLjktMzItMzEuOS05LjggMC0xOS41IDUuNy0yNS45IDE1LjRsLTI5LjMgNDIuMWMtMzAtOS44LTYyLjQtMTUtOTMuOC0xNS0zMS4zIDAtNjMuNyA1LjItOTMuOCAxNUwzODkgNzkuNGMtNi42LTkuNi0xNi4xLTE1LjQtMjYtMTUuNC0xOC42IDAtMzIgMTMuNC0zMiAzMS45IDAgNi4yIDIuNSAxMi44IDYuNyAxNy40bDIyLjYgMzIuM2MtMjguNyAxNy01My41IDM5LjQtNzIuMiA2NS4xLTE5LjQgMjYuOS0zMiA1Ni44LTM2LjcgODcuNGgtNS41djFjLTMuMi0uNi02LjctMS0xMC43LTEtMjAuMyAwLTM5LjIgNy41LTUzLjEgMjEuMy0xMy44IDEzLjgtMjEuNSAzMi42LTIxLjUgNTN2MjM1YzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMy45IDAgNy40LS40IDEwLjctMXY5My41YzAgMjkuMiAyMy45IDUzLjEgNTMuMiA1My4xSDMzMXY1OC4zYzAgMjAuMyA3LjUgMzkuMSAyMS40IDUyLjkgMTMuOCAxMy44IDMyLjggMjEuNSA1My4yIDIxLjUgMjAuMyAwIDM5LjItNy41IDUzLjEtMjEuMyAxMy44LTEzLjggMjEuNS0zMi42IDIxLjUtNTN2LTU4LjJINTQ0djU4LjFjMCAyMC4zIDcuNSAzOS4xIDIxLjQgNTIuOSAxMy44IDEzLjggMzIuOCAyMS41IDUzLjIgMjEuNSAyMC40IDAgMzkuMi03LjUgNTMuMS0yMS42IDEzLjgtMTMuOCAyMS41LTMyLjYgMjEuNS01M3YtNTguMmgzMS45YzI5LjMgMCA1My4yLTIzLjggNTMuMi01My4xdi05MS40YzMuMi42IDYuNyAxIDEwLjcgMSAyMC4zIDAgMzkuMi03LjUgNTMuMS0yMS4zIDEzLjgtMTMuOCAyMS41LTMyLjYgMjEuNS01M3YtMjM1Yy0uMS0yMC4zLTcuNi0zOS0yMS40LTUyLjl6TTI0NiA2MDkuNmMwIDYuOC0zLjkgMTAuNi0xMC43IDEwLjYtNi44IDAtMTAuNy0zLjgtMTAuNy0xMC42VjM3NC41YzAtNi44IDMuOS0xMC42IDEwLjctMTAuNiA2LjggMCAxMC43IDMuOCAxMC43IDEwLjZ2MjM1LjF6bTEzMS4xLTM5Ni44YzM3LjUtMjcuMyA4NS4zLTQyLjMgMTM1LTQyLjNzOTcuNSAxNS4xIDEzNSA0Mi41YzMyLjQgMjMuNyA1NC4yIDU0LjIgNjIuNyA4Ny41SDMxNC40YzguNS0zMy40IDMwLjUtNjQgNjIuNy04Ny43em0zOS4zIDY3NC43Yy0uNiA1LjYtNC40IDguNy0xMC41IDguNy02LjggMC0xMC43LTMuOC0xMC43LTEwLjZ2LTU4LjJoMjEuMnY2MC4xem0yMDIuMyA4LjdjLTYuOCAwLTEwLjctMy44LTEwLjctMTAuNnYtNTguMmgyMS4ydjYwLjFjLS42IDUuNi00LjMgOC43LTEwLjUgOC43em05NS44LTEzMi42SDMwOS45VjM2NGg0MDQuNnYzOTkuNnptODUuMi0xNTRjMCA2LjgtMy45IDEwLjYtMTAuNyAxMC42LTYuOCAwLTEwLjctMy44LTEwLjctMTAuNlYzNzQuNWMwLTYuOCAzLjktMTAuNiAxMC43LTEwLjYgNi44IDAgMTAuNyAzLjggMTAuNyAxMC42djIzNS4xek01NzYuMSAyMjUuMmMtMTguNiAwLTMyIDEzLjQtMzIgMzEuOXMxMy41IDMxLjkgMzIgMzEuOWMxOC42IDAgMzIuMS0xMy40IDMyLjEtMzItLjEtMTguNi0xMy40LTMxLjgtMzIuMS0zMS44eicpKTtcbmV4cG9ydHMuQXBpT3V0bGluZSA9IGdldEljb24oJ2FwaScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTcuNyAxNDguOGwtNDIuNC00Mi40Yy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNzYuMSA3Ni4xYTE5OS4yNyAxOTkuMjcgMCAwIDAtMTEyLjEtMzQuM2MtNTEuMiAwLTEwMi40IDE5LjUtMTQxLjUgNTguNkw0MzIuMyAzMDguN2E4LjAzIDguMDMgMCAwIDAgMCAxMS4zTDcwNCA1OTEuN2MxLjYgMS42IDMuNiAyLjMgNS43IDIuMyAyIDAgNC4xLS44IDUuNy0yLjNsMTAxLjktMTAxLjljNjguOS02OSA3Ny0xNzUuNyAyNC4zLTI1My41bDc2LjEtNzYuMWMzLjEtMy4yIDMuMS04LjMgMC0xMS40ek03NjkuMSA0NDEuN2wtNTkuNCA1OS40LTE4Ni44LTE4Ni44IDU5LjQtNTkuNGMyNC45LTI0LjkgNTguMS0zOC43IDkzLjQtMzguNyAzNS4zIDAgNjguNCAxMy43IDkzLjQgMzguNyAyNC45IDI0LjkgMzguNyA1OC4xIDM4LjcgOTMuNCAwIDM1LjMtMTMuOCA2OC40LTM4LjcgOTMuNHptLTE5MC4yIDEwNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUwMSA2MTMuMyA0MTAuNyA1MjNsNjYuNy02Ni43YzMuMS0zLjEgMy4xLTguMiAwLTExLjNMNDQxIDQwOC42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMzYzIDQ3NS4zbC00My00M2E3Ljg1IDcuODUgMCAwIDAtNS43LTIuM2MtMiAwLTQuMS44LTUuNyAyLjNMMjA2LjggNTM0LjJjLTY4LjkgNjktNzcgMTc1LjctMjQuMyAyNTMuNWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yek00NDEuNyA3NjkuMWExMzEuMzIgMTMxLjMyIDAgMCAxLTkzLjQgMzguN2MtMzUuMyAwLTY4LjQtMTMuNy05My40LTM4LjdhMTMxLjMyIDEzMS4zMiAwIDAgMS0zOC43LTkzLjRjMC0zNS4zIDEzLjctNjguNCAzOC43LTkzLjRsNTkuNC01OS40IDE4Ni44IDE4Ni44LTU5LjQgNTkuNHonKSk7XG5leHBvcnRzLkFwcHN0b3JlT3V0bGluZSA9IGdldEljb24oJ2FwcHN0b3JlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ2NCAxNDRIMTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhIMjEyVjIxMmgyMDB2MjAwem00NTItMjY4SDU2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDYxMlYyMTJoMjAwdjIwMHpNNDY0IDU0NEgxNjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEgyMTJWNjEyaDIwMHYyMDB6bTQ1Mi0yNjhINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjU2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjYxMmgyMDB2MjAweicpKTtcbmV4cG9ydHMuQXVkaW9PdXRsaW5lID0gZ2V0SWNvbignYXVkaW8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQyIDQ1NGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDggMCAxNDAuMy0xMTMuNyAyNTQtMjU0IDI1NFMyNTggNTk0LjMgMjU4IDQ1NGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDggMCAxNjguNyAxMjYuNiAzMDcuOSAyOTAgMzI3LjZWODg0SDMyNi43Yy0xMy43IDAtMjQuNyAxNC4zLTI0LjcgMzJ2MzZjMCA0LjQgMi44IDggNi4yIDhoNDA3LjZjMy40IDAgNi4yLTMuNiA2LjItOHYtMzZjMC0xNy43LTExLTMyLTI0LjctMzJINTQ4Vjc4Mi4xYzE2NS4zLTE4IDI5NC0xNTggMjk0LTMyOC4xek01MTIgNjI0YzkzLjkgMCAxNzAtNzUuMiAxNzAtMTY4VjIzMmMwLTkyLjgtNzYuMS0xNjgtMTcwLTE2OHMtMTcwIDc1LjItMTcwIDE2OHYyMjRjMCA5Mi44IDc2LjEgMTY4IDE3MCAxNjh6bS05NC0zOTJjMC01MC42IDQxLjktOTIgOTQtOTJzOTQgNDEuNCA5NCA5MnYyMjRjMCA1MC42LTQxLjkgOTItOTQgOTJzLTk0LTQxLjQtOTQtOTJWMjMyeicpKTtcbmV4cG9ydHMuQXBwbGVPdXRsaW5lID0gZ2V0SWNvbignYXBwbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzQ3LjQgNTM1LjdjLS40LTY4LjIgMzAuNS0xMTkuNiA5Mi45LTE1Ny41LTM0LjktNTAtODcuNy03Ny41LTE1Ny4zLTgyLjgtNjUuOS01LjItMTM4IDM4LjQtMTY0LjQgMzguNC0yNy45IDAtOTEuNy0zNi42LTE0MS45LTM2LjZDMjczLjEgMjk4LjggMTYzIDM3OS44IDE2MyA1NDQuNmMwIDQ4LjcgOC45IDk5IDI2LjcgMTUwLjggMjMuOCA2OC4yIDEwOS42IDIzNS4zIDE5OS4xIDIzMi42IDQ2LjgtMS4xIDc5LjktMzMuMiAxNDAuOC0zMy4yIDU5LjEgMCA4OS43IDMzLjIgMTQxLjkgMzMuMiA5MC4zLTEuMyAxNjcuOS0xNTMuMiAxOTAuNS0yMjEuNi0xMjEuMS01Ny4xLTExNC42LTE2Ny4yLTExNC42LTE3MC43em0tMTAuNiAyNjdjLTE0LjMgMTkuOS0yOC43IDM1LjYtNDEuOSA0NS43LTEwLjUgOC0xOC42IDExLjQtMjQgMTEuNi05LS4xLTE3LjctMi4zLTM0LjctOC44LTEuMi0uNS0yLjUtMS00LjItMS42bC00LjQtMS43Yy0xNy40LTYuNy0yNy44LTEwLjMtNDEuMS0xMy44LTE4LjYtNC44LTM3LjEtNy40LTU2LjktNy40LTIwLjIgMC0zOS4yIDIuNS01OC4xIDcuMi0xMy45IDMuNS0yNS42IDcuNC00Mi43IDEzLjgtLjcuMy04LjEgMy4xLTEwLjIgMy45LTMuNSAxLjMtNi4yIDIuMy04LjcgMy4yLTEwLjQgMy42LTE3IDUuMS0yMi45IDUuMi0uNyAwLTEuMy0uMS0xLjgtLjItMS4xLS4yLTIuNS0uNi00LjEtMS4zLTQuNS0xLjgtOS45LTUuMS0xNi05LjgtMTQtMTAuOS0yOS40LTI4LTQ1LjEtNDkuOS0yNy41LTM4LjYtNTMuNS04OS44LTY2LTEyNS43LTE1LjQtNDQuOC0yMy04Ny43LTIzLTEyOC42IDAtNjAuMiAxNy44LTEwNiA0OC40LTEzNy4xIDI2LjMtMjYuNiA2MS43LTQxLjUgOTcuOC00Mi4zIDUuOS4xIDE0LjUgMS41IDI1LjQgNC41IDguNiAyLjMgMTggNS40IDMwLjcgOS45IDMuOCAxLjQgMTYuOSA2LjEgMTguNSA2LjcgNy43IDIuOCAxMy41IDQuOCAxOS4yIDYuNiAxOC4yIDUuOCAzMi4zIDkgNDcuNiA5IDE1LjUgMCAyOC44LTMuMyA0Ny43LTkuOCA3LjEtMi40IDMyLjktMTIgMzcuNS0xMy42IDI1LjYtOS4xIDQ0LjUtMTQgNjAuOC0xNS4yIDQuOC0uNCA5LjEtLjQgMTMuMi0uMSAyMi43IDEuOCA0Mi4xIDYuMyA1OC42IDEzLjgtMzcuNiA0My40LTU3IDk2LjUtNTYuOSAxNTguNC0uMyAxNC43LjkgMzEuNyA1LjEgNTEuOCA2LjQgMzAuNSAxOC42IDYwLjcgMzcuOSA4OSAxNC43IDIxLjUgMzIuOSA0MC45IDU0LjcgNTcuOC0xMS41IDIzLjctMjUuNiA0OC4yLTQwLjQgNjguOHptLTk0LjUtNTcyYzUwLjctNjAuMiA0Ni4xLTExNSA0NC42LTEzNC43LTQ0LjggMi42LTk2LjYgMzAuNS0xMjYuMSA2NC44LTMyLjUgMzYuOC01MS42IDgyLjMtNDcuNSAxMzMuNiA0OC40IDMuNyA5Mi42LTIxLjIgMTI5LTYzLjd6JykpO1xuZXhwb3J0cy5CYWNrd2FyZE91dGxpbmUgPSBnZXRJY29uKCdiYWNrd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ000ODUuNiAyNDkuOUwxOTguMiA0OThjLTguMyA3LjEtOC4zIDIwLjggMCAyNy45bDI4Ny40IDI0OC4yYzEwLjcgOS4yIDI2LjQuOSAyNi40LTE0VjI2My44YzAtMTQuOC0xNS43LTIzLjItMjYuNC0xMy45em0zMjAgMEw1MTguMiA0OThhMTguNiAxOC42IDAgMCAwLTYuMiAxNGMwIDUuMiAyLjEgMTAuNCA2LjIgMTRsMjg3LjQgMjQ4LjJjMTAuNyA5LjIgMjYuNC45IDI2LjQtMTRWMjYzLjhjMC0xNC44LTE1LjctMjMuMi0yNi40LTEzLjl6JykpO1xuZXhwb3J0cy5CYW5rT3V0bGluZSA9IGdldEljb24oJ2JhbmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODk0IDQ2MmMzMC45IDAgNDMuOC0zOS43IDE4LjctNThMNTMwLjggMTI2LjJhMzEuODEgMzEuODEgMCAwIDAtMzcuNiAwTDExMS4zIDQwNGMtMjUuMSAxOC4yLTEyLjIgNTggMTguOCA1OEgxOTJ2Mzc0aC03MmMtNC40IDAtOCAzLjYtOCA4djUyYzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01MmMwLTQuNC0zLjYtOC04LThoLTcyVjQ2Mmg2MnpNNTEyIDE5Ni43bDI3MS4xIDE5Ny4ySDI0MC45TDUxMiAxOTYuN3pNMjY0IDQ2MmgxMTd2Mzc0SDI2NFY0NjJ6bTE4OSAwaDExN3YzNzRINDUzVjQ2MnptMzA3IDM3NEg2NDJWNDYyaDExOHYzNzR6JykpO1xuZXhwb3J0cy5CZWxsT3V0bGluZSA9IGdldEljb24oJ2JlbGwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODE2IDc2OGgtMjRWNDI4YzAtMTQxLjEtMTA0LjMtMjU3LjctMjQwLTI3Ny4xVjExMmMwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYzOC45Yy0xMzUuNyAxOS40LTI0MCAxMzYtMjQwIDI3Ny4xdjM0MGgtMjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGgyMTZjMCA2MS44IDUwLjIgMTEyIDExMiAxMTJzMTEyLTUwLjIgMTEyLTExMmgyMTZjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDg4OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhoOTZjMCAyNi41LTIxLjUgNDgtNDggNDh6TTMwNCA3NjhWNDI4YzAtNTUuNiAyMS42LTEwNy44IDYwLjktMTQ3LjFTNDU2LjQgMjIwIDUxMiAyMjBjNTUuNiAwIDEwNy44IDIxLjYgMTQ3LjEgNjAuOVM3MjAgMzcyLjQgNzIwIDQyOHYzNDBIMzA0eicpKTtcbmV4cG9ydHMuQmVoYW5jZVNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdiZWhhbmNlLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTU5OC41IDM1MC45aDEzOC40djMzLjdINTk4LjV2LTMzLjd6TTUxMiA2MjguOGE4OS41MiA4OS41MiAwIDAgMS0yNyAzMWMtMTEuOCA4LjItMjQuOSAxNC4yLTM4LjggMTcuN2ExNjcuNCAxNjcuNCAwIDAgMS00NC42IDUuN0gyMzZWMzQyLjFoMTYxYzE2LjMgMCAzMS4xIDEuNSA0NC42IDQuMyAxMy40IDIuOCAyNC44IDcuNiAzNC40IDE0LjEgOS41IDYuNSAxNyAxNS4yIDIyLjMgMjYgNS4yIDEwLjcgNy45IDI0LjEgNy45IDQwIDAgMTcuMi0zLjkgMzEuNC0xMS43IDQyLjktNy45IDExLjUtMTkuMyAyMC44LTM0LjggMjguMSAyMS4xIDYgMzYuNiAxNi43IDQ2LjggMzEuNyAxMC40IDE1LjIgMTUuNSAzMy40IDE1LjUgNTQuOCAwIDE3LjQtMy4zIDMyLjMtMTAgNDQuOHpNNzkwLjggNTc2SDYxMi40YzAgMTkuNCA2LjcgMzggMTYuOCA0OCAxMC4yIDkuOSAyNC44IDE0LjkgNDMuOSAxNC45IDEzLjggMCAyNS41LTMuNSAzNS41LTEwLjQgOS45LTYuOSAxNS45LTE0LjIgMTguMS0yMS44aDU5LjhjLTkuNiAyOS43LTI0LjIgNTAuOS00NCA2My43LTE5LjYgMTIuOC00My42IDE5LjItNzEuNSAxOS4yLTE5LjUgMC0zNy0zLjItNTIuNy05LjMtMTUuMS01LjktMjguNy0xNC45LTM5LjktMjYuNWExMjEuMiAxMjEuMiAwIDAgMS0yNS4xLTQxLjJjLTYuMS0xNi45LTkuMS0zNC43LTguOS01Mi42IDAtMTguNSAzLjEtMzUuNyA5LjEtNTEuNyAxMS41LTMxLjEgMzUuNC01NiA2NS45LTY4LjkgMTYuMy02LjggMzMuOC0xMC4yIDUxLjUtMTAgMjEgMCAzOS4yIDQgNTUgMTIuMmExMTEuNiAxMTEuNiAwIDAgMSAzOC42IDMyLjhjMTAuMSAxMy43IDE3LjIgMjkuMyAyMS43IDQ2LjkgNC4zIDE3LjMgNS44IDM1LjUgNC42IDU0Ljd6bS0xMjItOTUuNmMtMTAuOCAwLTE5LjkgMS45LTI2LjkgNS42LTcgMy43LTEyLjggOC4zLTE3LjIgMTMuNmE0OC40IDQ4LjQgMCAwIDAtOS4xIDE3LjRjLTEuNiA1LjMtMi43IDEwLjctMy4xIDE2LjJINzIzYy0xLjYtMTcuMy03LjYtMzAuMS0xNS42LTM5LjEtOC40LTguOS0yMS45LTEzLjctMzguNi0xMy43em0tMjQ4LjUtMTAuMWM4LjctNi4zIDEyLjktMTYuNyAxMi45LTMxIC4zLTYuOC0xLjEtMTMuNS00LjEtMTkuNi0yLjctNC45LTYuNy05LTExLjYtMTEuOWE0NC44IDQ0LjggMCAwIDAtMTYuNi02Yy02LjQtMS4yLTEyLjktMS44LTE5LjMtMS43aC03MC4zdjc5LjdoNzYuMWMxMy4xLjEgMjQuMi0zLjEgMzIuOS05LjV6bTExLjggNzJjLTkuOC03LjUtMjIuOS0xMS4yLTM5LjItMTEuMmgtODEuOHY5NGg4MC4yYzcuNSAwIDE0LjQtLjcgMjEuMS0yLjFzMTIuNy0zLjggMTcuOC03LjJjNS4xLTMuMyA5LjItNy44IDEyLjMtMTMuNiAzLTUuOCA0LjUtMTMuMiA0LjUtMjIuMSAwLTE3LjctNS0zMC4yLTE0LjktMzcuOHonKSk7XG5leHBvcnRzLkJvb2tPdXRsaW5lID0gZ2V0SWNvbignYm9vaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMjYwIDcyaDk2djIwOS45TDYyMS41IDMxMiA1NzIgMzQ3LjRWMTM2em0yMjAgNzUySDIzMlYxMzZoMjgwdjI5Ni45YzAgMy4zIDEgNi42IDMgOS4zYTE1LjkgMTUuOSAwIDAgMCAyMi4zIDMuN2w4My44LTU5LjkgODEuNCA1OS40YzIuNyAyIDYgMy4xIDkuNCAzLjEgOC44IDAgMTYtNy4yIDE2LTE2VjEzNmg2NHY3NTJ6JykpO1xuZXhwb3J0cy5Cb3hQbG90T3V0bGluZSA9IGdldEljb24oJ2JveC1wbG90Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1MiAyMjRoLTUyYy00LjQgMC04IDMuNi04IDh2MjQ4aC05MlYzMDRjMC00LjQtMy42LTgtOC04SDIzMmMtNC40IDAtOCAzLjYtOCA4djE3NmgtOTJWMjMyYzAtNC40LTMuNi04LTgtOEg3MmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYxNzJjMCA0LjQgMy42IDggOCA4aDU2MGM0LjQgMCA4LTMuNiA4LThWNTQ4aDkydjI0NGMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6TTI5NiAzNjhoODh2Mjg4aC04OFYzNjh6bTQzMiAyODhINDQ4VjM2OGgyODB2Mjg4eicpKTtcbmV4cG9ydHMuQnVsYk91dGxpbmUgPSBnZXRJY29uKCdidWxiJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYzMiA4ODhIMzkyYy00LjQgMC04IDMuNi04IDh2MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTkyYzE3LjcgMCAzMi0xNC4zIDMyLTMydi0zMmMwLTQuNC0zLjYtOC04LTh6TTUxMiA2NGMtMTgxLjEgMC0zMjggMTQ2LjktMzI4IDMyOCAwIDEyMS40IDY2IDIyNy40IDE2NCAyODQuMVY3OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjY3Ni4xYzk4LTU2LjcgMTY0LTE2Mi43IDE2NC0yODQuMSAwLTE4MS4xLTE0Ni45LTMyOC0zMjgtMzI4em0xMjcuOSA1NDkuOEw2MDQgNjM0LjZWNzUySDQyMFY2MzQuNmwtMzUuOS0yMC44QzMwNS40IDU2OC4zIDI1NiA0ODQuNSAyNTYgMzkyYzAtMTQxLjQgMTE0LjYtMjU2IDI1Ni0yNTZzMjU2IDExNC42IDI1NiAyNTZjMCA5Mi41LTQ5LjQgMTc2LjMtMTI4LjEgMjIxLjh6JykpO1xuZXhwb3J0cy5CdWdPdXRsaW5lID0gZ2V0SWNvbignYnVnJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMwNCAyODBoNTZjNC40IDAgOC0zLjYgOC04IDAtMjguMyA1LjktNTMuMiAxNy4xLTczLjUgMTAuNi0xOS40IDI2LTM0LjggNDUuNC00NS40QzQ1MC45IDE0MiA0NzUuNyAxMzYgNTA0IDEzNmgxNmMyOC4zIDAgNTMuMiA1LjkgNzMuNSAxNy4xIDE5LjQgMTAuNiAzNC44IDI2IDQ1LjQgNDUuNEM2NTAgMjE4LjkgNjU2IDI0My43IDY1NiAyNzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOCAwLTQwLTguOC03Ni43LTI1LjktMTA4LjFhMTg0LjMxIDE4NC4zMSAwIDAgMC03NC03NEM1OTYuNyA3Mi44IDU2MCA2NCA1MjAgNjRoLTE2Yy00MCAwLTc2LjcgOC44LTEwOC4xIDI1LjlhMTg0LjMxIDE4NC4zMSAwIDAgMC03NCA3NEMzMDQuOCAxOTUuMyAyOTYgMjMyIDI5NiAyNzJjMCA0LjQgMy42IDggOCA4eicsICdNOTQwIDUxMkg3OTJWNDEyYzc2LjggMCAxMzktNjIuMiAxMzktMTM5IDAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOGE2MyA2MyAwIDAgMS02MyA2M0gyMzJhNjMgNjMgMCAwIDEtNjMtNjNjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgNzYuOCA2Mi4yIDEzOSAxMzkgMTM5djEwMEg4NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgxNDh2OTZjMCA2LjUuMiAxMyAuNyAxOS4zQzE2NC4xIDcyOC42IDExNiA3OTYuNyAxMTYgODc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTggMC00NC4yIDIzLjktODIuOSA1OS42LTEwMy43YTI3MyAyNzMgMCAwIDAgMjIuNyA0OWMyNC4zIDQxLjUgNTkgNzYuMiAxMDAuNSAxMDAuNVM0NjAuNSA5NjAgNTEyIDk2MHM5OS44LTEzLjkgMTQxLjMtMzguMmEyODEuMzggMjgxLjM4IDAgMCAwIDEyMy4yLTE0OS41QTEyMCAxMjAgMCAwIDEgODM2IDg3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04IDAtNzkuMy00OC4xLTE0Ny40LTExNi43LTE3Ni43LjQtNi40LjctMTIuOC43LTE5LjN2LTk2aDE0OGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNzE2IDY4MGMwIDM2LjgtOS43IDcyLTI3LjggMTAyLjktMTcuNyAzMC4zLTQzIDU1LjYtNzMuMyA3My4zQzU4NCA4NzQuMyA1NDguOCA4ODQgNTEyIDg4NHMtNzItOS43LTEwMi45LTI3LjhjLTMwLjMtMTcuNy01NS42LTQzLTczLjMtNzMuM0EyMDIuNzUgMjAyLjc1IDAgMCAxIDMwOCA2ODBWNDEyaDQwOHYyNjh6JykpO1xuZXhwb3J0cy5DYWxjdWxhdG9yT3V0bGluZSA9IGdldEljb24oJ2NhbGN1bGF0b3InLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjUxLjIgMzg3SDMyMHY2OC44YzAgMS44IDEuOCAzLjIgNCAzLjJoNDhjMi4yIDAgNC0xLjQgNC0zLjNWMzg3aDY4LjhjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRIMzc2di02OC44YzAtMS44LTEuOC0zLjItNC0zLjJoLTQ4Yy0yLjIgMC00IDEuNC00IDMuMlYzMzFoLTY4LjhjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTMyOCAwaDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wIDI2NWgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHptMCAxMDRoMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bS0xOTUuNy04MWw2MS4yLTc0LjljNC4zLTUuMi43LTEzLjEtNS45LTEzLjFIMzg4Yy0yLjMgMC00LjUgMS01LjkgMi45bC0zNCA0MS42LTM0LTQxLjZhNy44NSA3Ljg1IDAgMCAwLTUuOS0yLjloLTUwLjljLTYuNiAwLTEwLjIgNy45LTUuOSAxMy4xbDYxLjIgNzQuOS02Mi43IDc2LjhjLTQuNCA1LjItLjggMTMuMSA1LjggMTMuMWg1MC44YzIuMyAwIDQuNS0xIDUuOS0yLjlsMzUuNS00My41IDM1LjUgNDMuNWMxLjUgMS44IDMuNyAyLjkgNS45IDIuOWg1MC44YzYuNiAwIDEwLjItNy45IDUuOS0xMy4xTDM4My41IDY3NXpNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzYgNzMySDE4MFYxODBoNjY0djY2NHonKSk7XG5leHBvcnRzLkJ1aWxkT3V0bGluZSA9IGdldEljb24oJ2J1aWxkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxNiAyMTBIMzc2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMzZIMTA4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyNzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjU0NmgyMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjQyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTA0IDY4aDIwMHYyMDBINDEyVjI3OHptLTY4IDQ2OEgxNDRWNTQ2aDIwMHYyMDB6bTI2OCAwSDQxMlY1NDZoMjAwdjIwMHptMjY4LTI2OEg2ODBWMjc4aDIwMHYyMDB6JykpO1xuZXhwb3J0cy5DYWxlbmRhck91dGxpbmUgPSBnZXRJY29uKCdjYWxlbmRhcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjQ2MGg2NTZ2Mzgwek0xODQgMzkyVjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHYxMzZIMTg0eicpKTtcbmV4cG9ydHMuQ2FtZXJhT3V0bGluZSA9IGdldEljb24oJ2NhbWVyYScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgMjQ4SDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMCAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjQ4SDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjhjMC00NC4yLTM1LjgtODAtODAtODB6bTggNTM2YzAgNC40LTMuNiA4LTggOEgxNjBjLTQuNCAwLTgtMy42LTgtOFYzMjhjMC00LjQgMy42LTggOC04aDE4Ni43bDE3LjEtNDcuOCAyMi45LTY0LjJoMjUwLjVsMjIuOSA2NC4yIDE3LjEgNDcuOEg4NjRjNC40IDAgOCAzLjYgOCA4djQ1NnpNNTEyIDM4NGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjBzNzEuNiAxNjAgMTYwIDE2MCAxNjAtNzEuNiAxNjAtMTYwLTcxLjYtMTYwLTE2MC0xNjB6bTAgMjU2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2IDk2IDQzIDk2IDk2LTQzIDk2LTk2IDk2eicpKTtcbmV4cG9ydHMuQ2FyT3V0bGluZSA9IGdldEljb24oJ2NhcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zODAgNzA0aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTg0YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHYzNkg0Mjh2LTM2YzAtNC40LTMuNi04LTgtOGgtNDBjLTQuNCAwLTggMy42LTggOHY4NGMwIDQuNCAzLjYgOCA4IDh6bTM0MC0xMjNhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0yMzktMTY3LjZMOTM1LjMgMzcyYTggOCAwIDAgMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMCAwLTYwLjktNDQuNEgzMDEuMmMtMzQuNyAwLTY1LjUgMjIuNC03Ni4yIDU1LjVsLTc0LjYgMjA1LjItNTAuOC0yOS42YTggOCAwIDAgMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAgMCAzLTEwLjh6TTg0MCA1MTd2MjM3SDE4NFY1MTdsMTUuNi00M2g2MjQuOGwxNS42IDQzek0yOTIuNyAyMTguMWwuNS0xLjMuNC0xLjNjMS4xLTMuMyA0LjEtNS41IDcuNi01LjVoNDI3LjZsNzUuNCAyMDhIMjIwbDcyLjctMTk5Ljl6TTIyNCA1ODFhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweicpKTtcbmV4cG9ydHMuQ2FyZXREb3duT3V0bGluZSA9IGdldEljb24oJ2NhcmV0LWRvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODQwLjQgMzAwSDE4My42Yy0xOS43IDAtMzAuNyAyMC44LTE4LjUgMzVsMzI4LjQgMzgwLjhjOS40IDEwLjkgMjcuNSAxMC45IDM3IDBMODU4LjkgMzM1YzEyLjItMTQuMiAxLjItMzUtMTguNS0zNXonKSk7XG5leHBvcnRzLkNhcmV0TGVmdE91dGxpbmUgPSBnZXRJY29uKCdjYXJldC1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTY4OSAxNjUuMUwzMDguMiA0OTMuNWMtMTAuOSA5LjQtMTAuOSAyNy41IDAgMzdMNjg5IDg1OC45YzE0LjIgMTIuMiAzNSAxLjIgMzUtMTguNVYxODMuNmMwLTE5LjctMjAuOC0zMC43LTM1LTE4LjV6JykpO1xuZXhwb3J0cy5DYXJldFJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2NhcmV0LXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTcxNS44IDQ5My41TDMzNSAxNjUuMWMtMTQuMi0xMi4yLTM1LTEuMi0zNSAxOC41djY1Ni44YzAgMTkuNyAyMC44IDMwLjcgMzUgMTguNWwzODAuOC0zMjguNGMxMC45LTkuNCAxMC45LTI3LjYgMC0zN3onKSk7XG5leHBvcnRzLkNhcnJ5T3V0T3V0bGluZSA9IGdldEljb24oJ2NhcnJ5LW91dCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6TTY4OCA0MjBoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNjM0LjRsLTY0LjctODljLTMtNC4xLTcuOC02LjYtMTMtNi42SDMzNmMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI2LjQgMTc0YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDIxMi42LTI5Mi43YzMuOC01LjQgMC0xMi44LTYuNS0xMi44eicpKTtcbmV4cG9ydHMuQ2hlY2tDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignY2hlY2stY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5OSAzNTNoLTQ2LjljLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjNMNDY5IDU4NC4zbC03MS4yLTk4LjhjLTYtOC4zLTE1LjYtMTMuMy0yNS45LTEzLjNIMzI1Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjQuNiAxNzIuOGEzMS44IDMxLjggMCAwIDAgNTEuNyAwbDIxMC42LTI5MmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3onLCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonKSk7XG5leHBvcnRzLkNhcmV0VXBPdXRsaW5lID0gZ2V0SWNvbignY2FyZXQtdXAnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNODU4LjkgNjg5TDUzMC41IDMwOC4yYy05LjQtMTAuOS0yNy41LTEwLjktMzcgMEwxNjUuMSA2ODljLTEyLjIgMTQuMi0xLjIgMzUgMTguNSAzNWg2NTYuOGMxOS43IDAgMzAuNy0yMC44IDE4LjUtMzV6JykpO1xuZXhwb3J0cy5DaGVja1NxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdjaGVjay1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDMzLjEgNjU3LjdhMzEuOCAzMS44IDAgMCAwIDUxLjcgMGwyMTAuNi0yOTJjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINjQyYy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ1OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMxNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjh6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuQ2hyb21lT3V0bGluZSA9IGdldEljb24oJ2Nocm9tZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggNTEyLjN2LS4zYzAtMjI5LjgtMTg2LjItNDE2LTQxNi00MTZTOTYgMjgyLjIgOTYgNTEydi40YzAgMjI5LjggMTg2LjIgNDE2IDQxNiA0MTZzNDE2LTE4Ni4yIDQxNi00MTZ2LS4zLjJ6bS02LjctNzQuNmwuNiAzLjMtLjYtMy4zek02NzYuNyA2MzguMmM1My41LTgyLjIgNTIuNS0xODkuNC0xMS4xLTI2My43bDE2Mi40LTguNGMyMC41IDQ0LjQgMzIgOTMuOCAzMiAxNDUuOSAwIDE4NS4yLTE0NC42IDMzNi42LTMyNy4xIDM0Ny40bDE0My44LTIyMS4yek01MTIgNjUyLjNjLTc3LjUgMC0xNDAuMi02Mi43LTE0MC4yLTE0MC4yIDAtNzcuNyA2Mi43LTE0MC4yIDE0MC4yLTE0MC4yUzY1Mi4yIDQzNC41IDY1Mi4yIDUxMiA1ODkuNSA2NTIuMyA1MTIgNjUyLjN6bTM2OS4yLTMzMS43bC0zLTUuNyAzIDUuN3pNNTEyIDE2NGMxMjEuMyAwIDIyOC4yIDYyLjEgMjkwLjQgMTU2LjJsLTI2My42LTEzLjljLTk3LjUtNS43LTE5MC4yIDQ5LjItMjIyLjMgMTQxLjFMMjI3LjggMzExYzYzLjEtODguOSAxNjYuOS0xNDcgMjg0LjItMTQ3ek0xMDIuNSA1ODUuOGMyNiAxNDUgMTI3LjEgMjY0IDI2MS42IDMxNS4xQzIyOS42IDg1MCAxMjguNSA3MzEgMTAyLjUgNTg1Ljh6TTE2NCA1MTJjMC01NS45IDEzLjItMTA4LjcgMzYuNi0xNTUuNWwxMTkuNyAyMzUuNGM0NC4xIDg2LjcgMTM3LjQgMTM5LjcgMjM0IDEyMS42bC03NCAxNDUuMUMzMDIuOSA4NDIuNSAxNjQgNjkzLjUgMTY0IDUxMnptMzI0LjcgNDE1LjRjNCAuMiA4IC40IDEyIC41LTQtLjItOC0uMy0xMi0uNXonKSk7XG5leHBvcnRzLkNsb2NrQ2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2Nsb2NrLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JywgJ002ODYuNyA2MzguNkw1NDQuMSA1MzUuNVYyODhjMC00LjQtMy42LTgtOC04SDQ4OGMtNC40IDAtOCAzLjYtOCA4djI3NS40YzAgMi42IDEuMiA1IDMuMyA2LjVsMTY1LjQgMTIwLjZjMy42IDIuNiA4LjYgMS44IDExLjItMS43bDI4LjYtMzljMi42LTMuNyAxLjgtOC43LTEuOC0xMS4yeicpKTtcbmV4cG9ydHMuQ2xvc2VDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignY2xvc2UtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY4NS40IDM1NC44YzAtNC40LTMuNi04LTgtOGwtNjYgLjNMNTEyIDQ2NS42bC05OS4zLTExOC40LTY2LjEtLjNjLTQuNCAwLTggMy41LTggOCAwIDEuOS43IDMuNyAxLjkgNS4ybDEzMC4xIDE1NUwzNDAuNSA2NzBhOC4zMiA4LjMyIDAgMCAwLTEuOSA1LjJjMCA0LjQgMy42IDggOCA4bDY2LjEtLjNMNTEyIDU2NC40bDk5LjMgMTE4LjQgNjYgLjNjNC40IDAgOC0zLjUgOC04IDAtMS45LS43LTMuNy0xLjktNS4yTDU1My41IDUxNWwxMzAuMS0xNTVjMS4yLTEuNCAxLjgtMy4zIDEuOC01LjJ6JywgJ001MTIgNjVDMjY0LjYgNjUgNjQgMjY1LjYgNjQgNTEzczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY1IDUxMiA2NXptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5DbG91ZE91dGxpbmUgPSBnZXRJY29uKCdjbG91ZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MTEuNCA0MTguN0M3NjUuNiAyOTcuOSA2NDguOSAyMTIgNTEyLjIgMjEyUzI1OC44IDI5Ny44IDIxMyA0MTguNkMxMjcuMyA0NDEuMSA2NCA1MTkuMSA2NCA2MTJjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBoNDk2LjJDODcwLjUgODEyIDk2MCA3MjIuNSA5NjAgNjEyYzAtOTIuNy02My4xLTE3MC43LTE0OC42LTE5My4zem0zNi4zIDI4MWExMjMuMDcgMTIzLjA3IDAgMCAxLTg3LjYgMzYuM0gyNjMuOWMtMzMuMSAwLTY0LjItMTIuOS04Ny42LTM2LjNBMTIzLjMgMTIzLjMgMCAwIDEgMTQwIDYxMmMwLTI4IDkuMS01NC4zIDI2LjItNzYuM2ExMjUuNyAxMjUuNyAwIDAgMSA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwIDEgNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMGM1NC4zIDE0LjUgOTIuMSA2My44IDkyLjEgMTIwIDAgMzMuMS0xMi45IDY0LjMtMzYuMyA4Ny43eicpKTtcbmV4cG9ydHMuQ2xvc2VTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignY2xvc2Utc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM1NCA2NzFoNTguOWM0LjcgMCA5LjItMi4xIDEyLjMtNS43TDUxMiA1NjEuOGw4Ni44IDEwMy41YzMgMy42IDcuNSA1LjcgMTIuMyA1LjdINjcwYzYuOCAwIDEwLjUtNy45IDYuMS0xMy4xTDU1My44IDUxMmwxMjIuNC0xNDUuOWM0LjQtNS4yLjctMTMuMS02LjEtMTMuMWgtNTguOWMtNC43IDAtOS4yIDIuMS0xMi4zIDUuN0w1MTIgNDYyLjJsLTg2LjgtMTAzLjVjLTMtMy42LTcuNS01LjctMTIuMy01LjdIMzU0Yy02LjggMC0xMC41IDcuOS02LjEgMTMuMUw0NzAuMiA1MTIgMzQ3LjkgNjU3LjlBNy45NSA3Ljk1IDAgMCAwIDM1NCA2NzF6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuQ29kZU91dGxpbmUgPSBnZXRJY29uKCdjb2RlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxNiA2NzNjMCA0LjQgMy40IDggNy41IDhoMTg1YzQuMSAwIDcuNS0zLjYgNy41LTh2LTQ4YzAtNC40LTMuNC04LTcuNS04aC0xODVjLTQuMSAwLTcuNSAzLjYtNy41IDh2NDh6bS0xOTQuOSA2LjFsMTkyLTE2MWMzLjgtMy4yIDMuOC05LjEgMC0xMi4zbC0xOTItMTYwLjlBNy45NSA3Ljk1IDAgMCAwIDMwOCAzNTF2NjIuN2MwIDIuNCAxIDQuNiAyLjkgNi4xTDQyMC43IDUxMmwtMTA5LjggOTIuMmE4LjEgOC4xIDAgMCAwLTIuOSA2LjFWNjczYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xek04ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuQ29kZXBlbkNpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdjb2RlcGVuLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODguMSA0MTQuN1YzMDMuNEwzMDAuOSA0MjhsODMuNiA1NS44em0yNTQuMSAxMzcuN3YtNzkuOGwtNTkuOCAzOS45ek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjc4IDUzM2MwIDEuMS0uMSAyLjEtLjIgMy4xIDAgLjQtLjEuNy0uMiAxYTE0LjE2IDE0LjE2IDAgMCAxLS44IDMuMmMtLjIuNi0uNCAxLjItLjYgMS43LS4yLjQtLjQuOC0uNSAxLjItLjMuNS0uNSAxLjEtLjggMS42LS4yLjQtLjQuNy0uNyAxLjEtLjMuNS0uNyAxLTEgMS41LS4zLjQtLjUuNy0uOCAxLS40LjQtLjguOS0xLjIgMS4zLS4zLjMtLjYuNi0xIC45LS40LjQtLjkuOC0xLjQgMS4xLS40LjMtLjcuNi0xLjEuOC0uMS4xLS4zLjItLjQuM0w1MjUuMiA3ODZjLTQgMi43LTguNiA0LTEzLjIgNC00LjcgMC05LjMtMS40LTEzLjMtNEwyNDQuNiA2MTYuOWMtLjEtLjEtLjMtLjItLjQtLjNsLTEuMS0uOGMtLjUtLjQtLjktLjctMS4zLTEuMS0uMy0uMy0uNi0uNi0xLS45LS40LS40LS44LS44LTEuMi0xLjNhNyA3IDAgMCAxLS44LTFjLS40LS41LS43LTEtMS0xLjUtLjItLjQtLjUtLjctLjctMS4xLS4zLS41LS42LTEuMS0uOC0xLjYtLjItLjQtLjQtLjgtLjUtMS4yLS4yLS42LS40LTEuMi0uNi0xLjctLjEtLjQtLjMtLjgtLjQtMS4yLS4yLS43LS4zLTEuMy0uNC0yLS4xLS4zLS4xLS43LS4yLTEtLjEtMS0uMi0yLjEtLjItMy4xVjQyNy45YzAtMSAuMS0yLjEuMi0zLjEuMS0uMy4xLS43LjItMWExNC4xNiAxNC4xNiAwIDAgMSAuOC0zLjJjLjItLjYuNC0xLjIuNi0xLjcuMi0uNC40LS44LjUtMS4yLjItLjUuNS0xLjEuOC0xLjYuMi0uNC40LS43LjctMS4xLjYtLjkgMS4yLTEuNyAxLjgtMi41LjQtLjQuOC0uOSAxLjItMS4zLjMtLjMuNi0uNiAxLS45LjQtLjQuOS0uOCAxLjMtMS4xLjQtLjMuNy0uNiAxLjEtLjguMS0uMS4zLS4yLjQtLjNMNDk4LjcgMjM5YzgtNS4zIDE4LjUtNS4zIDI2LjUgMGwyNTQuMSAxNjkuMWMuMS4xLjMuMi40LjNsMS4xLjggMS40IDEuMWMuMy4zLjYuNiAxIC45LjQuNC44LjggMS4yIDEuMy43LjggMS4zIDEuNiAxLjggMi41LjIuNC41LjcuNyAxLjEuMy41LjYgMSAuOCAxLjYuMi40LjQuOC41IDEuMi4yLjYuNCAxLjIuNiAxLjcuMS40LjMuOC40IDEuMi4yLjcuMyAxLjMuNCAyIC4xLjMuMS43LjIgMSAuMSAxIC4yIDIuMS4yIDMuMVY1OTd6bS0yNTQuMSAxMy4zdjExMS4zTDcyMy4xIDU5N2wtODMuNi01NS44ek0yODEuOCA0NzIuNnY3OS44bDU5LjgtMzkuOXpNNTEyIDQ1Ni4xbC04NC41IDU2LjQgODQuNSA1Ni40IDg0LjUtNTYuNHpNNzIzLjEgNDI4TDUzNS45IDMwMy40djExMS4zbDEwMy42IDY5LjF6TTM4NC41IDU0MS4yTDMwMC45IDU5N2wxODcuMiAxMjQuNlY2MTAuM2wtMTAzLjYtNjkuMXonKSk7XG5leHBvcnRzLkNvbXBhc3NPdXRsaW5lID0gZ2V0SWNvbignY29tcGFzcycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTE5OC40LTU4OC4xYTMyIDMyIDAgMCAwLTI0LjUuNUw0MTQuOSA0MTUgMjk2LjQgNjg2Yy0zLjYgOC4yLTMuNiAxNy41IDAgMjUuNyAzLjQgNy44IDkuNyAxMy45IDE3LjcgMTcgMy44IDEuNSA3LjcgMi4yIDExLjcgMi4yIDQuNCAwIDguNy0uOSAxMi44LTIuN2wyNzEtMTE4LjYgMTE4LjUtMjcxYTMyLjA2IDMyLjA2IDAgMCAwLTE3LjctNDIuN3pNNTc2LjggNTM0LjRsMjYuMiAyNi4yLTQyLjQgNDIuNC0yNi4yLTI2LjJMMzgwIDY0NC40IDQ0Ny41IDQ5MCA0MjIgNDY0LjRsNDIuNC00Mi40IDI1LjUgMjUuNUw2NDQuNCAzODBsLTY3LjYgMTU0LjR6TTQ2NC40IDQyMkw0MjIgNDY0LjRsMjUuNSAyNS42IDg2LjkgODYuOCAyNi4yIDI2LjIgNDIuNC00Mi40LTI2LjItMjYuMi04Ni44LTg2Ljl6JykpO1xuZXhwb3J0cy5Db250YWN0c091dGxpbmUgPSBnZXRJY29uKCdjb250YWN0cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001OTQuMyA2MDEuNWExMTEuOCAxMTEuOCAwIDAgMCAyOS4xLTc1LjVjMC02MS45LTQ5LjktMTEyLTExMS40LTExMnMtMTExLjQgNTAuMS0xMTEuNCAxMTJjMCAyOS4xIDExIDU1LjUgMjkuMSA3NS41YTE1OC4wOSAxNTguMDkgMCAwIDAtNzQuNiAxMjYuMSA4IDggMCAwIDAgOCA4LjRINDA3YzQuMiAwIDcuNi0zLjMgNy45LTcuNSAzLjgtNTAuNiA0Ni05MC41IDk3LjItOTAuNXM5My40IDQwIDk3LjIgOTAuNWMuMyA0LjIgMy43IDcuNSA3LjkgNy41SDY2MWE4IDggMCAwIDAgOC04LjRjLTIuOC01My4zLTMyLTk5LjctNzQuNy0xMjYuMXpNNTEyIDU3OGMtMjguNSAwLTUxLjctMjMuMy01MS43LTUyczIzLjItNTIgNTEuNy01MiA1MS43IDIzLjMgNTEuNyA1Mi0yMy4yIDUyLTUxLjcgNTJ6bTQxNi0zNTRINzY4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZINTQ4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIMzI4di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU3NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNTY4SDEzNlYyOTZoMTIwdjU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxNDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTIwdjQ5NnonKSk7XG5leHBvcnRzLkNvbnRhaW5lck91dGxpbmUgPSBnZXRJY29uKCdjb250YWluZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWNjg3aDk3LjljMTEuNiAzMi44IDMyIDYyLjMgNTkuMSA4NC43IDM0LjUgMjguNSA3OC4yIDQ0LjMgMTIzIDQ0LjNzODguNS0xNS43IDEyMy00NC4zYzI3LjEtMjIuNCA0Ny41LTUxLjkgNTkuMS04NC43SDc5MnYtNjNINjQzLjZsLTUuMiAyNC43QzYyNi40IDcwOC41IDU3My4yIDc1MiA1MTIgNzUycy0xMTQuNC00My41LTEyNi41LTEwMy4zbC01LjItMjQuN0gyMzJWMTM2aDU2MHY3NTJ6TTMyMCAzNDFoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMCAxNjBoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkNvbnRyb2xPdXRsaW5lID0gZ2V0SWNvbignY29udHJvbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek0zNDAgNjgzdjc3YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTc3Yy0xMC4xIDMuMy0yMC44IDUtMzIgNXMtMjEuOS0xLjgtMzItNXptNjQtMTk4VjI2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjIxYzEwLjEtMy4zIDIwLjgtNSAzMi01czIxLjkgMS44IDMyIDV6bS02NCAxOThjMTAuMSAzLjMgMjAuOCA1IDMyIDVzMjEuOS0xLjggMzItNWM0MS44LTEzLjUgNzItNTIuNyA3Mi05OXMtMzAuMi04NS41LTcyLTk5Yy0xMC4xLTMuMy0yMC44LTUtMzItNXMtMjEuOSAxLjgtMzIgNWMtNDEuOCAxMy41LTcyIDUyLjctNzIgOTlzMzAuMiA4NS41IDcyIDk5em0uMS0xMTUuN2MuMy0uNi43LTEuMiAxLTEuOHYtLjFsMS4yLTEuOGMuMS0uMi4yLS4zLjMtLjUuMy0uNS43LS45IDEtMS40LjEtLjEuMi0uMy4zLS40LjUtLjYuOS0xLjEgMS40LTEuNmwuMy0uMyAxLjItMS4yLjQtLjRjLjUtLjUgMS0uOSAxLjYtMS40LjYtLjUgMS4xLS45IDEuNy0xLjMuMi0uMS4zLS4yLjUtLjMuNS0uMy45LS43IDEuNC0xIC4xLS4xLjMtLjIuNC0uMy42LS40IDEuMi0uNyAxLjktMS4xLjEtLjEuMy0uMS40LS4yLjUtLjMgMS0uNSAxLjYtLjhsLjYtLjNjLjctLjMgMS4zLS42IDItLjguNy0uMyAxLjQtLjUgMi4xLS43LjItLjEuNC0uMS42LS4yLjYtLjIgMS4xLS4zIDEuNy0uNC4yIDAgLjMtLjEuNS0uMS43LS4yIDEuNS0uMyAyLjItLjQuMiAwIC4zIDAgLjUtLjEuNi0uMSAxLjItLjEgMS44LS4yaC42Yy44IDAgMS41LS4xIDIuMy0uMXMxLjUgMCAyLjMuMWguNmMuNiAwIDEuMi4xIDEuOC4yLjIgMCAuMyAwIC41LjEuNy4xIDEuNS4yIDIuMi40LjIgMCAuMy4xLjUuMS42LjEgMS4yLjMgMS43LjQuMi4xLjQuMS42LjIuNy4yIDEuNC40IDIuMS43LjcuMiAxLjMuNSAyIC44bC42LjNjLjUuMiAxLjEuNSAxLjYuOC4xLjEuMy4xLjQuMi42LjMgMS4zLjcgMS45IDEuMS4xLjEuMy4yLjQuMy41LjMgMSAuNiAxLjQgMSAuMi4xLjMuMi41LjMuNi40IDEuMi45IDEuNyAxLjNzMS4xLjkgMS42IDEuNGwuNC40IDEuMiAxLjIuMy4zYy41LjUgMSAxLjEgMS40IDEuNi4xLjEuMi4zLjMuNC40LjQuNy45IDEgMS40LjEuMi4yLjMuMy41bDEuMiAxLjhzMCAuMS4xLjFhMzYuMTggMzYuMTggMCAwIDEgNS4xIDE4LjVjMCA2LTEuNSAxMS43LTQuMSAxNi43LS4zLjYtLjcgMS4yLTEgMS44IDAgMCAwIC4xLS4xLjFsLTEuMiAxLjhjLS4xLjItLjIuMy0uMy41LS4zLjUtLjcuOS0xIDEuNC0uMS4xLS4yLjMtLjMuNC0uNS42LS45IDEuMS0xLjQgMS42bC0uMy4zLTEuMiAxLjItLjQuNGMtLjUuNS0xIC45LTEuNiAxLjQtLjYuNS0xLjEuOS0xLjcgMS4zLS4yLjEtLjMuMi0uNS4zLS41LjMtLjkuNy0xLjQgMS0uMS4xLS4zLjItLjQuMy0uNi40LTEuMi43LTEuOSAxLjEtLjEuMS0uMy4xLS40LjItLjUuMy0xIC41LTEuNi44bC0uNi4zYy0uNy4zLTEuMy42LTIgLjgtLjcuMy0xLjQuNS0yLjEuNy0uMi4xLS40LjEtLjYuMi0uNi4yLTEuMS4zLTEuNy40LS4yIDAtLjMuMS0uNS4xLS43LjItMS41LjMtMi4yLjQtLjIgMC0uMyAwLS41LjEtLjYuMS0xLjIuMS0xLjguMmgtLjZjLS44IDAtMS41LjEtMi4zLjFzLTEuNSAwLTIuMy0uMWgtLjZjLS42IDAtMS4yLS4xLTEuOC0uMi0uMiAwLS4zIDAtLjUtLjEtLjctLjEtMS41LS4yLTIuMi0uNC0uMiAwLS4zLS4xLS41LS4xLS42LS4xLTEuMi0uMy0xLjctLjQtLjItLjEtLjQtLjEtLjYtLjItLjctLjItMS40LS40LTIuMS0uNy0uNy0uMi0xLjMtLjUtMi0uOGwtLjYtLjNjLS41LS4yLTEuMS0uNS0xLjYtLjgtLjEtLjEtLjMtLjEtLjQtLjItLjYtLjMtMS4zLS43LTEuOS0xLjEtLjEtLjEtLjMtLjItLjQtLjMtLjUtLjMtMS0uNi0xLjQtMS0uMi0uMS0uMy0uMi0uNS0uMy0uNi0uNC0xLjItLjktMS43LTEuM3MtMS4xLS45LTEuNi0xLjRsLS40LS40LTEuMi0xLjItLjMtLjNjLS41LS41LTEtMS4xLTEuNC0xLjYtLjEtLjEtLjItLjMtLjMtLjQtLjQtLjQtLjctLjktMS0xLjQtLjEtLjItLjItLjMtLjMtLjVsLTEuMi0xLjh2LS4xYy0uNC0uNi0uNy0xLjItMS0xLjgtMi42LTUtNC4xLTEwLjctNC4xLTE2LjdzMS41LTExLjcgNC4xLTE2Ljd6TTYyMCA1Mzl2MjIxYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTM5Yy0xMC4xIDMuMy0yMC44IDUtMzIgNXMtMjEuOS0xLjgtMzItNXptNjQtMTk4di03N2MwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NzdjMTAuMS0zLjMgMjAuOC01IDMyLTVzMjEuOSAxLjggMzIgNXptLTY0IDE5OGMxMC4xIDMuMyAyMC44IDUgMzIgNXMyMS45LTEuOCAzMi01YzQxLjgtMTMuNSA3Mi01Mi43IDcyLTk5cy0zMC4yLTg1LjUtNzItOTljLTEwLjEtMy4zLTIwLjgtNS0zMi01cy0yMS45IDEuOC0zMiA1Yy00MS44IDEzLjUtNzIgNTIuNy03MiA5OXMzMC4yIDg1LjUgNzIgOTl6bS4xLTExNS43Yy4zLS42LjctMS4yIDEtMS44di0uMWwxLjItMS44Yy4xLS4yLjItLjMuMy0uNS4zLS41LjctLjkgMS0xLjQuMS0uMS4yLS4zLjMtLjQuNS0uNi45LTEuMSAxLjQtMS42bC4zLS4zIDEuMi0xLjIuNC0uNGMuNS0uNSAxLS45IDEuNi0xLjQuNi0uNSAxLjEtLjkgMS43LTEuMy4yLS4xLjMtLjIuNS0uMy41LS4zLjktLjcgMS40LTEgLjEtLjEuMy0uMi40LS4zLjYtLjQgMS4yLS43IDEuOS0xLjEuMS0uMS4zLS4xLjQtLjIuNS0uMyAxLS41IDEuNi0uOGwuNi0uM2MuNy0uMyAxLjMtLjYgMi0uOC43LS4zIDEuNC0uNSAyLjEtLjcuMi0uMS40LS4xLjYtLjIuNi0uMiAxLjEtLjMgMS43LS40LjIgMCAuMy0uMS41LS4xLjctLjIgMS41LS4zIDIuMi0uNC4yIDAgLjMgMCAuNS0uMS42LS4xIDEuMi0uMSAxLjgtLjJoLjZjLjggMCAxLjUtLjEgMi4zLS4xczEuNSAwIDIuMy4xaC42Yy42IDAgMS4yLjEgMS44LjIuMiAwIC4zIDAgLjUuMS43LjEgMS41LjIgMi4yLjQuMiAwIC4zLjEuNS4xLjYuMSAxLjIuMyAxLjcuNC4yLjEuNC4xLjYuMi43LjIgMS40LjQgMi4xLjcuNy4yIDEuMy41IDIgLjhsLjYuM2MuNS4yIDEuMS41IDEuNi44LjEuMS4zLjEuNC4yLjYuMyAxLjMuNyAxLjkgMS4xLjEuMS4zLjIuNC4zLjUuMyAxIC42IDEuNCAxIC4yLjEuMy4yLjUuMy42LjQgMS4yLjkgMS43IDEuM3MxLjEuOSAxLjYgMS40bC40LjQgMS4yIDEuMi4zLjNjLjUuNSAxIDEuMSAxLjQgMS42LjEuMS4yLjMuMy40LjQuNC43LjkgMSAxLjQuMS4yLjIuMy4zLjVsMS4yIDEuOHYuMWEzNi4xOCAzNi4xOCAwIDAgMSA1LjEgMTguNWMwIDYtMS41IDExLjctNC4xIDE2LjctLjMuNi0uNyAxLjItMSAxLjh2LjFsLTEuMiAxLjhjLS4xLjItLjIuMy0uMy41LS4zLjUtLjcuOS0xIDEuNC0uMS4xLS4yLjMtLjMuNC0uNS42LS45IDEuMS0xLjQgMS42bC0uMy4zLTEuMiAxLjItLjQuNGMtLjUuNS0xIC45LTEuNiAxLjQtLjYuNS0xLjEuOS0xLjcgMS4zLS4yLjEtLjMuMi0uNS4zLS41LjMtLjkuNy0xLjQgMS0uMS4xLS4zLjItLjQuMy0uNi40LTEuMi43LTEuOSAxLjEtLjEuMS0uMy4xLS40LjItLjUuMy0xIC41LTEuNi44bC0uNi4zYy0uNy4zLTEuMy42LTIgLjgtLjcuMy0xLjQuNS0yLjEuNy0uMi4xLS40LjEtLjYuMi0uNi4yLTEuMS4zLTEuNy40LS4yIDAtLjMuMS0uNS4xLS43LjItMS41LjMtMi4yLjQtLjIgMC0uMyAwLS41LjEtLjYuMS0xLjIuMS0xLjguMmgtLjZjLS44IDAtMS41LjEtMi4zLjFzLTEuNSAwLTIuMy0uMWgtLjZjLS42IDAtMS4yLS4xLTEuOC0uMi0uMiAwLS4zIDAtLjUtLjEtLjctLjEtMS41LS4yLTIuMi0uNC0uMiAwLS4zLS4xLS41LS4xLS42LS4xLTEuMi0uMy0xLjctLjQtLjItLjEtLjQtLjEtLjYtLjItLjctLjItMS40LS40LTIuMS0uNy0uNy0uMi0xLjMtLjUtMi0uOGwtLjYtLjNjLS41LS4yLTEuMS0uNS0xLjYtLjgtLjEtLjEtLjMtLjEtLjQtLjItLjYtLjMtMS4zLS43LTEuOS0xLjEtLjEtLjEtLjMtLjItLjQtLjMtLjUtLjMtMS0uNi0xLjQtMS0uMi0uMS0uMy0uMi0uNS0uMy0uNi0uNC0xLjItLjktMS43LTEuM3MtMS4xLS45LTEuNi0xLjRsLS40LS40LTEuMi0xLjItLjMtLjNjLS41LS41LTEtMS4xLTEuNC0xLjYtLjEtLjEtLjItLjMtLjMtLjQtLjQtLjQtLjctLjktMS0xLjQtLjEtLjItLjItLjMtLjMtLjVsLTEuMi0xLjh2LS4xYy0uNC0uNi0uNy0xLjItMS0xLjgtMi42LTUtNC4xLTEwLjctNC4xLTE2LjdzMS41LTExLjcgNC4xLTE2Ljd6JykpO1xuZXhwb3J0cy5Db3B5T3V0bGluZSA9IGdldEljb24oJ2NvcHknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ2Njg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6TTcwNCAxOTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzAuN2MwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxNzMuMyAxNzMuM2MyLjIgMi4yIDQuNyA0IDcuNCA1LjV2MS45aDQuMmMzLjUgMS4zIDcuMiAyIDExIDJINzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzUwIDg1Ni4yTDI2My45IDc3MEgzNTB2ODYuMnpNNjY0IDg4OEg0MTRWNzQ2YzAtMjIuMS0xNy45LTQwLTQwLTQwSDIzMlYyNjRoNDMydjYyNHonKSk7XG5leHBvcnRzLkNyZWRpdENhcmRPdXRsaW5lID0gZ2V0SWNvbignY3JlZGl0LWNhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS03OTIgNzJoNzUydjEyMEgxMzZWMjMyem03NTIgNTYwSDEzNlY0NDBoNzUydjM1MnptLTIzNy02NGgxNjVjNC40IDAgOC0zLjYgOC04di03MmMwLTQuNC0zLjYtOC04LThINjUxYy00LjQgMC04IDMuNi04IDh2NzJjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQ3Jvd25PdXRsaW5lID0gZ2V0SWNvbignY3Jvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODk5LjYgMjc2LjVMNzA1IDM5Ni40IDUxOC40IDE0Ny41YTguMDYgOC4wNiAwIDAgMC0xMi45IDBMMzE5IDM5Ni40IDEyNC4zIDI3Ni41Yy01LjctMy41LTEzLjEgMS4yLTEyLjIgNy45TDE4OC41IDg2NWMxLjEgNy45IDcuOSAxNCAxNiAxNGg2MTUuMWM4IDAgMTQuOS02IDE1LjktMTRsNzYuNC01ODAuNmMuOC02LjctNi41LTExLjQtMTIuMy03Ljl6bS0xMjYgNTM0LjFIMjUwLjNsLTUzLjgtNDA5LjQgMTM5LjggODYuMUw1MTIgMjUyLjlsMTc1LjcgMjM0LjQgMTM5LjgtODYuMS01My45IDQwOS40ek01MTIgNTA5Yy02Mi4xIDAtMTEyLjYgNTAuNS0xMTIuNiAxMTIuNlM0NDkuOSA3MzQuMiA1MTIgNzM0LjJzMTEyLjYtNTAuNSAxMTIuNi0xMTIuNlM1NzQuMSA1MDkgNTEyIDUwOXptMCAxNjAuOWMtMjYuNiAwLTQ4LjItMjEuNi00OC4yLTQ4LjMgMC0yNi42IDIxLjYtNDguMyA0OC4yLTQ4LjNzNDguMiAyMS42IDQ4LjIgNDguM2MwIDI2LjYtMjEuNiA0OC4zLTQ4LjIgNDguM3onKSk7XG5leHBvcnRzLkN1c3RvbWVyU2VydmljZU91dGxpbmUgPSBnZXRJY29uKCdjdXN0b21lci1zZXJ2aWNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHpNMzI4IDYzMnYxOTJIMjAwVjYzMmgxMjh6bTQ5NiAxOTJINjk2VjYzMmgxMjh2MTkyeicpKTtcbmV4cG9ydHMuRGFzaGJvYXJkT3V0bGluZSA9IGdldEljb24oJ2Rhc2hib2FyZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjQuOCAzODUuNmE0NDYuNyA0NDYuNyAwIDAgMC05Ni0xNDIuNCA0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMCAwLTE0Mi40IDk2IDQ0Ni43IDQ0Ni43IDAgMCAwLTk2IDE0Mi40Qzc1LjggNDQwLjkgNjQgNDk5LjUgNjQgNTYwYzAgMTMyLjcgNTguMyAyNTcuNyAxNTkuOSAzNDMuMWwxLjcgMS40YzUuOCA0LjggMTMuMSA3LjUgMjAuNiA3LjVoNTMxLjdjNy41IDAgMTQuOC0yLjcgMjAuNi03LjVsMS43LTEuNEM5MDEuNyA4MTcuNyA5NjAgNjkyLjcgOTYwIDU2MGMwLTYwLjUtMTEuOS0xMTkuMS0zNS4yLTE3NC40ek03NjEuNCA4MzZIMjYyLjZBMzcxLjEyIDM3MS4xMiAwIDAgMSAxNDAgNTYwYzAtOTkuNCAzOC43LTE5Mi44IDEwOS0yNjMgNzAuMy03MC4zIDE2My43LTEwOSAyNjMtMTA5IDk5LjQgMCAxOTIuOCAzOC43IDI2MyAxMDkgNzAuMyA3MC4zIDEwOSAxNjMuNyAxMDkgMjYzIDAgMTA1LjYtNDQuNSAyMDUuNS0xMjIuNiAyNzZ6TTYyMy41IDQyMS41YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTI3LjcgNTA2Yy0xOC43LTUtMzkuNC0uMi01NC4xIDE0LjVhNTUuOTUgNTUuOTUgMCAwIDAgMCA3OS4yIDU1Ljk1IDU1Ljk1IDAgMCAwIDc5LjIgMCA1NS44NyA1NS44NyAwIDAgMCAxNC41LTU0LjFsODQuNS04NC41YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTI4LjMtMjguM3pNNDkwIDMyMGg0NGM0LjQgMCA4LTMuNiA4LTh2LTgwYzAtNC40LTMuNi04LTgtOGgtNDRjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDh6bTI2MCAyMTh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4em0xMi43LTE5Ny4ybC0zMS4xLTMxLjFhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtNTYuNiA1Ni42YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzEuMSAzMS4xYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNTYuNi01Ni42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6bS00NTguNi0zMS4xYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTMxLjEgMzEuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDU2LjYgNTYuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDMxLjEtMzEuMWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC01Ni42LTU2LjZ6TTI2MiA1MzBoLTgwYy00LjQgMC04IDMuNi04IDh2NDRjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOHYtNDRjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRGVsZXRlT3V0bGluZSA9IGdldEljb24oJ2RlbGV0ZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjAgMTg0aC04YzQuNCAwIDgtMy42IDgtOHY4aDMwNHYtOGMwIDQuNCAzLjYgOCA4IDhoLTh2NzJoNzJ2LTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2ODBoNzJ2LTcyem01MDQgNzJIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoNjAuNGwyNC43IDUyM2MxLjYgMzQuMSAyOS44IDYxIDYzLjkgNjFoNDU0YzM0LjIgMCA2Mi4zLTI2LjggNjMuOS02MWwyNC43LTUyM0g4ODhjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNzMxLjMgODQwSDI5Mi43bC0yNC4yLTUxMmg0ODdsLTI0LjIgNTEyeicpKTtcbmV4cG9ydHMuRGlmZk91dGxpbmUgPSBnZXRJY29uKCdkaWZmJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ3NiAzOTkuMWMwLTMuOS0zLjEtNy4xLTctNy4xaC00MmMtMy44IDAtNyAzLjItNyA3LjFWNDg0aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQyMHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTQwaDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINDc2di04NC45ek01NjAuNSA3MDRoLTIyNWMtNC4xIDAtNy41IDMuMi03LjUgN3Y0MmMwIDMuOCAzLjQgNyA3LjUgN2gyMjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjgtMy40LTctNy41LTd6bS03LjEtNTAyLjZjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjcwNGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzk3LjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZMNTUzLjQgMjAxLjR6TTY2NCA4ODhIMjMyVjI2NGgyODIuMkw2NjQgNDEzLjhWODg4em0xOTAuMi01ODEuNEw2MTEuMyA3Mi45Yy02LTUuNy0xMy45LTguOS0yMi4yLTguOUgyOTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjc3bDIxOSAyMTAuNlY4MjRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYzMjkuNmMwLTguNy0zLjUtMTctOS44LTIzeicpKTtcbmV4cG9ydHMuRGF0YWJhc2VPdXRsaW5lID0gZ2V0SWNvbignZGF0YWJhc2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYwMCA3Mmg1NjB2MjA4SDIzMlYxMzZ6bTU2MCA0ODBIMjMyVjQwOGg1NjB2MjA4em0wIDI3MkgyMzJWNjgwaDU2MHYyMDh6TTMwNCAyNDBhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDI3MmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLkRpc2xpa2VPdXRsaW5lID0gZ2V0SWNvbignZGlzbGlrZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODUuOSA0OTAuM2MzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtMjguMy05LjMtNTUuNS0yNi4xLTc3LjcgMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC01MS42LTMwLjctOTguMS03OC4zLTExOC40YTY2LjEgNjYuMSAwIDAgMC0yNi41LTUuNEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxMjkuM2w4NS44IDMxMC44QzM3Mi45IDg4OSA0MTguOSA5MjQgNDcwLjkgOTI0YzI5LjcgMCA1Ny40LTExLjggNzcuOS0zMy40IDIwLjUtMjEuNSAzMS00OS43IDI5LjUtNzkuNGwtNi0xMjIuOWgyMzkuOWMxMi4xIDAgMjMuOS0zLjIgMzQuMy05LjMgNDAuNC0yMy41IDY1LjUtNjYuMSA2NS41LTExMSAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43ek0xODQgNDU2VjE3Mmg4MXYyODRoLTgxem02MjcuMiAxNjAuNEg0OTYuOGw5LjYgMTk4LjRjLjYgMTEuOS00LjcgMjMuMS0xNC42IDMwLjUtNi4xIDQuNS0xMy42IDYuOC0yMS4xIDYuN2E0NC4yOCA0NC4yOCAwIDAgMS00Mi4yLTMyLjNMMzI5IDQ1OS4yVjE3Mmg0MTUuNGE1Ni44NSA1Ni44NSAwIDAgMSAzMy42IDUxLjhjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTEzLjkgMjUuNCAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMCAxIDE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTEzLjkgMjUuNCAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMCAxIDE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTE0IDI1LjUgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgMTkuMS0xMSAzNy41LTI4LjggNDguNHonKSk7XG5leHBvcnRzLkRvd25DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignZG93bi1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjkwIDQwNWgtNDYuOWMtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTYzLjYgNDA2LjggNDE4LjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2YzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTc4LTI0NmMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3onLCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonKSk7XG5leHBvcnRzLkRvd25TcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignZG93bi1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTA1LjUgNjU4LjdjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOC01LjMgMC0xMi43LTYuNS0xMi43SDY0M2MtMTAuMiAwLTE5LjkgNC45LTI1LjkgMTMuMkw1MTIgNTU4LjYgNDA2LjggNDEzLjJjLTYtOC4zLTE1LjYtMTMuMi0yNS45LTEzLjJIMzM0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxNzggMjQ2eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLkRyaWJiYmxlU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2RyaWJiYmxlLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000OTguNiA0MzJjLTQwLjgtNzIuNS04NC43LTEzMy40LTkxLjItMTQyLjMtNjguOCAzMi41LTEyMC4zIDk1LjktMTM2LjIgMTcyLjIgMTEgLjIgMTEyLjQuNyAyMjcuNC0yOS45em02Ni41IDIxLjhjNS43IDExLjcgMTEuMiAyMy42IDE2LjMgMzUuNiAxLjggNC4yIDMuNiA4LjQgNS4zIDEyLjcgODEuOC0xMC4zIDE2My4yIDYuMiAxNzEuMyA3LjktLjUtNTguMS0yMS4zLTExMS40LTU1LjUtMTUzLjMtNS4zIDcuMS00Ni41IDYwLTEzNy40IDk3LjF6TTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNTEyIDgwMGMtMTU4LjggMC0yODgtMTI5LjItMjg4LTI4OHMxMjkuMi0yODggMjg4LTI4OCAyODggMTI5LjIgMjg4IDI4OC0xMjkuMiAyODgtMjg4IDI4OHptODkuNy0yNTkuMWMzMi4yIDg4LjQgNDUuMyAxNjAuNCA0Ny44IDE3NS40IDU1LjItMzcuMyA5NC41LTk2LjQgMTA1LjQtMTY0LjktOC40LTIuNi03Ni4xLTIyLjgtMTUzLjItMTAuNXptLTcyLjUtMjYuNGMzLjItMSA2LjQtMiA5LjctMi45LTYuMi0xNC0xMi45LTI4LTE5LjktNDEuNy0xMjIuOCAzNi44LTI0Mi4xIDM1LjItMjUyLjggMzUtLjEgMi41LS4xIDUtLjEgNy41IDAgNjMuMiAyMy45IDEyMC45IDYzLjIgMTY0LjUgNS41LTkuNiA3My0xMjEuNCAxOTkuOS0xNjIuNHptMTQ1LjktMTg2LjJhMjQ1LjIgMjQ1LjIgMCAwIDAtMjIwLjgtNTUuMWM2LjggOS4xIDUxLjUgNjkuOSA5MS44IDE0NCA4Ny41LTMyLjggMTI0LjUtODIuNiAxMjktODguOXpNNTU0IDU1Mi44Yy0xMzguNyA0OC4zLTE4OC42IDE0NC42LTE5MyAxNTMuNiA0MS43IDMyLjUgOTQuMSA1MS45IDE1MSA1MS45IDM0LjEgMCA2Ni42LTYuOSA5Ni4xLTE5LjUtMy43LTIxLjYtMTcuOS05Ni44LTUyLjUtMTg2LjZsLTEuNi42eicpKTtcbmV4cG9ydHMuRW52aXJvbm1lbnRPdXRsaW5lID0gZ2V0SWNvbignZW52aXJvbm1lbnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg5LjFhMzYyLjQ5IDM2Mi40OSAwIDAgMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwIDAtMTE4LjItNzcuOEM2MTAuNyA3Ni42IDU2Mi4xIDY3IDUxMiA2N2MtNTAuMSAwLTk4LjcgOS42LTE0NC41IDI4LjUtNDQuMyAxOC4zLTg0IDQ0LjUtMTE4LjIgNzcuOEEzNjMuNiAzNjMuNiAwIDAgMCAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAgMCAyMi40IDYuMWM3LjggMCAxNS41LTIgMjIuNC02LjEgMjMuOS0xNC4xIDEwOC4xLTY2LjggMTg4LjQtMTUzIDQ3LTUwLjQgODQuMy0xMDMuNiAxMTEtMTU4LjFDODY3LjEgNTcyIDg4NCA1MDEuOCA4ODQgNDMxLjFjMC00OS4yLTkuOS05Ny0yOS40LTE0MnpNNTEyIDg4MC4yYy02NS45LTQxLjktMzAwLTIwNy44LTMwMC00NDkuMSAwLTc3LjkgMzEuMS0xNTEuMSA4Ny42LTIwNi4zQzM1Ni4zIDE2OS41IDQzMS43IDEzOSA1MTIgMTM5czE1NS43IDMwLjUgMjEyLjQgODUuOUM3ODAuOSAyODAgODEyIDM1My4yIDgxMiA0MzEuMWMwIDI0MS4zLTIzNC4xIDQwNy4yLTMwMCA0NDkuMXptMC02MTcuMmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTc5LjIgMjU1LjJBMTExLjYgMTExLjYgMCAwIDEgNTEyIDU1MWMtMjkuOSAwLTU4LTExLjctNzkuMi0zMi44QTExMS42IDExMS42IDAgMCAxIDQwMCA0MzljMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCAzMzguNiA0ODIuMSAzMjcgNTEyIDMyN2MyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhDNjEyLjQgMzgxIDYyNCA0MDkuMSA2MjQgNDM5YzAgMjkuOS0xMS42IDU4LTMyLjggNzkuMnonKSk7XG5leHBvcnRzLkVkaXRPdXRsaW5lID0gZ2V0SWNvbignZWRpdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yNTcuNyA3NTJjMiAwIDQtLjIgNi0uNUw0MzEuOSA3MjJjMi0uNCAzLjktMS4zIDUuMy0yLjhsNDIzLjktNDIzLjlhOS45NiA5Ljk2IDAgMCAwIDAtMTQuMUw2OTQuOSAxMTQuOWMtMS45LTEuOS00LjQtMi45LTcuMS0yLjlzLTUuMiAxLTcuMSAyLjlMMjU2LjggNTM4LjhjLTEuNSAxLjUtMi40IDMuMy0yLjggNS4zbC0yOS41IDE2OC4yYTMzLjUgMzMuNSAwIDAgMCA5LjQgMjkuOGM2LjYgNi40IDE0LjkgOS45IDIzLjggOS45em02Ny40LTE3NC40TDY4Ny44IDIxNWw3My4zIDczLjMtMzYyLjcgMzYyLjYtODguOSAxNS43IDE1LjYtODl6TTg4MCA4MzZIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtMzZjMC0xNy43LTE0LjMtMzItMzItMzJ6JykpO1xuZXhwb3J0cy5FeGNsYW1hdGlvbkNpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdleGNsYW1hdGlvbi1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNDY0IDY4OGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTI0LTExMmg0OGM0LjQgMCA4LTMuNiA4LThWMjk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuRXhwZXJpbWVudE91dGxpbmUgPSBnZXRJY29uKCdleHBlcmltZW50Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA0NzJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0zNjcgMzUyLjlMNjk2LjMgMzUyVjE3OEg3Njh2LTY4SDI1NnY2OGg3MS43djE3NEwxNDUgODI0LjljLTIuOCA3LjQtNC4zIDE1LjItNC4zIDIzLjEgMCAzNS4zIDI4LjcgNjQgNjQgNjRoNjE0LjZjNy45IDAgMTUuNy0xLjUgMjMuMS00LjMgMzMtMTIuNyA0OS40LTQ5LjggMzYuNi04Mi44ek0zOTUuNyAzNjQuN1YxODBoMjMyLjZ2MTg0LjdMNzE5LjIgNjAwYy0yMC43LTUuMy00Mi4xLTgtNjMuOS04LTYxLjIgMC0xMTkuMiAyMS41LTE2NS4zIDYwYTE4OC43OCAxODguNzggMCAwIDEtMTIxLjMgNDMuOWMtMzIuNyAwLTY0LjEtOC4zLTkxLjgtMjMuN2wxMTguOC0zMDcuNXpNMjEwLjUgODQ0bDQxLjctMTA3LjhjMzUuNyAxOC4xIDc1LjQgMjcuOCAxMTYuNiAyNy44IDYxLjIgMCAxMTkuMi0yMS41IDE2NS4zLTYwIDMzLjktMjguMiA3Ni4zLTQzLjkgMTIxLjMtNDMuOSAzNSAwIDY4LjQgOS41IDk3LjYgMjcuMUw4MTMuNSA4NDRoLTYwM3onKSk7XG5leHBvcnRzLkV5ZUludmlzaWJsZU91dGxpbmUgPSBnZXRJY29uKCdleWUtaW52aXNpYmxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk0Mi4yIDQ4Ni4yUTg4OS40NyAzNzUuMTEgODE2LjcgMzA1bC01MC44OCA1MC44OEM4MDcuMzEgMzk1LjUzIDg0My40NSA0NDcuNCA4NzQuNyA1MTIgNzkxLjUgNjg0LjIgNjczLjQgNzY2IDUxMiA3NjZxLTcyLjY3IDAtMTMzLjg3LTIyLjM4TDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwIDAgMC01MS41em0tNjMuNTctMzIwLjY0TDgzNiAxMjIuODhhOCA4IDAgMCAwLTExLjMyIDBMNzE1LjMxIDIzMi4yUTYyNC44NiAxODYgNTEyIDE4NnEtMjg4LjMgMC00MzAuMiAzMDAuM2E2MC4zIDYwLjMgMCAwIDAgMCA1MS41cTU2LjY5IDExOS40IDEzNi41IDE5MS40MUwxMTIuNDggODM1YTggOCAwIDAgMCAwIDExLjMxTDE1NS4xNyA4ODlhOCA4IDAgMCAwIDExLjMxIDBsNzEyLjE1LTcxMi4xMmE4IDggMCAwIDAgMC0xMS4zMnpNMTQ5LjMgNTEyQzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4YzU0LjU0IDAgMTA0LjEzIDkuMzYgMTQ5LjEyIDI4LjM5bC03MC4zIDcwLjNhMTc2IDE3NiAwIDAgMC0yMzguMTMgMjM4LjEzbC04My40MiA4My40MkMyMjMuMSA2MzcuNDkgMTgzLjMgNTgyLjI4IDE0OS4zIDUxMnptMjQ2LjcgMGExMTIuMTEgMTEyLjExIDAgMCAxIDE0Ni4yLTEwNi42OUw0MDEuMzEgNTQ2LjJBMTEyIDExMiAwIDAgMSAzOTYgNTEyeicsICdNNTA4IDYyNGMtMy40NiAwLTYuODctLjE2LTEwLjI1LS40N2wtNTIuODIgNTIuODJhMTc2LjA5IDE3Ni4wOSAwIDAgMCAyMjcuNDItMjI3LjQybC01Mi44MiA1Mi44MmMuMzEgMy4zOC40NyA2Ljc5LjQ3IDEwLjI1YTExMS45NCAxMTEuOTQgMCAwIDEtMTEyIDExMnonKSk7XG5leHBvcnRzLkV5ZU91dGxpbmUgPSBnZXRJY29uKCdleWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQyLjIgNDg2LjJDODQ3LjQgMjg2LjUgNzA0LjEgMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMCAwIDAgNTEuNUMxNzYuNiA3MzcuNSAzMTkuOSA4MzggNTEyIDgzOGMxOTIuMiAwIDMzNS40LTEwMC41IDQzMC4yLTMwMC4zIDcuNy0xNi4yIDcuNy0zNSAwLTUxLjV6TTUxMiA3NjZjLTE2MS4zIDAtMjc5LjQtODEuOC0zNjIuNy0yNTRDMjMyLjYgMzM5LjggMzUwLjcgMjU4IDUxMiAyNThjMTYxLjMgMCAyNzkuNCA4MS44IDM2Mi43IDI1NEM3OTEuNSA2ODQuMiA2NzMuNCA3NjYgNTEyIDc2NnptLTQtNDMwYy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptMCAyODhjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeicpKTtcbmV4cG9ydHMuRmFjZWJvb2tPdXRsaW5lID0gZ2V0SWNvbignZmFjZWJvb2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tMzIgNzM2SDY2My45VjYwMi4yaDEwNGwxNS42LTEyMC43SDY2My45di03Ny4xYzAtMzUgOS43LTU4LjggNTkuOC01OC44aDYzLjl2LTEwOGMtMTEuMS0xLjUtNDktNC44LTkzLjItNC44LTkyLjIgMC0xNTUuMyA1Ni4zLTE1NS4zIDE1OS42djg5SDQzNC45djEyMC43aDEwNC4zVjg0OEgxNzZWMTc2aDY3MnY2NzJ6JykpO1xuZXhwb3J0cy5GYXN0QmFja3dhcmRPdXRsaW5lID0gZ2V0SWNvbignZmFzdC1iYWNrd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ001MTcuNiAyNzMuNUwyMzAuMiA0OTkuM2ExNi4xNCAxNi4xNCAwIDAgMCAwIDI1LjRsMjg3LjQgMjI1LjhjMTAuNyA4LjQgMjYuNC44IDI2LjQtMTIuN1YyODYuMmMwLTEzLjUtMTUuNy0yMS4xLTI2LjQtMTIuN3ptMzIwIDBMNTUwLjIgNDk5LjNhMTYuMTQgMTYuMTQgMCAwIDAgMCAyNS40bDI4Ny40IDIyNS44YzEwLjcgOC40IDI2LjQuOCAyNi40LTEyLjdWMjg2LjJjMC0xMy41LTE1LjctMjEuMS0yNi40LTEyLjd6bS02MjAtMjUuNWgtNTEuMmMtMy41IDAtNi40IDIuNy02LjQgNnY1MTZjMCAzLjMgMi45IDYgNi40IDZoNTEuMmMzLjUgMCA2LjQtMi43IDYuNC02VjI1NGMwLTMuMy0yLjktNi02LjQtNnonKSk7XG5leHBvcnRzLkZhc3RGb3J3YXJkT3V0bGluZSA9IGdldEljb24oJ2Zhc3QtZm9yd2FyZCcsIG91dGxpbmUsIGdldE5vZGUobm9ybWFsVmlld0JveCwgJ003OTMuOCA0OTkuM0w1MDYuNCAyNzMuNWMtMTAuNy04LjQtMjYuNC0uOC0yNi40IDEyLjd2NDUxLjZjMCAxMy41IDE1LjcgMjEuMSAyNi40IDEyLjdsMjg3LjQtMjI1LjhhMTYuMTQgMTYuMTQgMCAwIDAgMC0yNS40em0tMzIwIDBMMTg2LjQgMjczLjVjLTEwLjctOC40LTI2LjQtLjgtMjYuNCAxMi43djQ1MS41YzAgMTMuNSAxNS43IDIxLjEgMjYuNCAxMi43bDI4Ny40LTIyNS44YzQuMS0zLjIgNi4yLTggNi4yLTEyLjcgMC00LjYtMi4xLTkuNC02LjItMTIuNnpNODU3LjYgMjQ4aC01MS4yYy0zLjUgMC02LjQgMi43LTYuNCA2djUxNmMwIDMuMyAyLjkgNiA2LjQgNmg1MS4yYzMuNSAwIDYuNC0yLjcgNi40LTZWMjU0YzAtMy4zLTIuOS02LTYuNC02eicpKTtcbmV4cG9ydHMuRmlsZUFkZE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLWFkZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNTQ0IDQ3MmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjQ0aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWNDcyeicpKTtcbmV4cG9ydHMuRmlsZUV4Y2VsT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtZXhjZWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTUxNC4xIDU4MC4xbC02MS44LTEwMi40Yy0yLjItMy42LTYuMS01LjgtMTAuMy01LjhoLTM4LjRjLTIuMyAwLTQuNS42LTYuNCAxLjktNS42IDMuNS03LjMgMTAuOS0zLjcgMTYuNmw4Mi4zIDEzMC40LTgzLjQgMTMyLjhhMTIuMDQgMTIuMDQgMCAwIDAgMTAuMiAxOC40aDM0LjVjNC4yIDAgOC0yLjIgMTAuMi01LjdMNTEwIDY2NC44bDYyLjMgMTAxLjRjMi4yIDMuNiA2LjEgNS43IDEwLjIgNS43SDYyMGMyLjMgMCA0LjUtLjcgNi41LTEuOSA1LjYtMy42IDcuMi0xMSAzLjYtMTYuNmwtODQtMTMwLjQgODUuMy0xMzIuNWExMi4wNCAxMi4wNCAwIDAgMC0xMC4xLTE4LjVoLTM1LjdjLTQuMiAwLTguMSAyLjItMTAuMyA1LjhsLTYxLjIgMTAyLjN6JykpO1xuZXhwb3J0cy5GaWxlRXhjbGFtYXRpb25PdXRsaW5lID0gZ2V0SWNvbignZmlsZS1leGNsYW1hdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNDcyIDc0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTE2LTEwNGg0OGM0LjQgMCA4LTMuNiA4LThWNDQ4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuRmlsZUltYWdlT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtaW1hZ2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTUzLjEgNTA5LjFsLTc3LjggOTkuMi00MS4xLTUyLjRhOCA4IDAgMCAwLTEyLjYgMGwtOTkuOCAxMjcuMmE3Ljk4IDcuOTggMCAwIDAgNi4zIDEyLjlINjk2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45bC0xMzYuNS0xNzRhOC4xIDguMSAwIDAgMC0xMi43IDB6TTM2MCA0NDJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem00OTQuNi0xNTMuNEw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVNYXJrZG93bk91dGxpbmUgPSBnZXRJY29uKCdmaWxlLW1hcmtkb3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek00MjkgNDgxLjJjLTEuOS00LjQtNi4yLTcuMi0xMS03LjJoLTM1Yy02LjYgMC0xMiA1LjQtMTIgMTJ2MjcyYzAgNi42IDUuNCAxMiAxMiAxMmgyNy4xYzYuNiAwIDEyLTUuNCAxMi0xMlY1ODIuMWw2Ni44IDE1MC4yYTEyIDEyIDAgMCAwIDExIDcuMUg1MjRjNC43IDAgOS0yLjggMTEtNy4xbDY2LjgtMTUwLjZWNzU4YzAgNi42IDUuNCAxMiAxMiAxMkg2NDFjNi42IDAgMTItNS40IDEyLTEyVjQ4NmMwLTYuNi01LjQtMTItMTItMTJoLTM0LjdjLTQuOCAwLTkuMSAyLjgtMTEgNy4ybC04My4xIDE5MS04My4yLTE5MXonKSk7XG5leHBvcnRzLkZpbGVQcHRPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1wcHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDI0IDQ3NmMtNC40IDAtOCAzLjYtOCA4djI3NmMwIDQuNCAzLjYgOCA4IDhoMzIuNWM0LjQgMCA4LTMuNiA4LTh2LTk1LjVoNjMuM2M1OS40IDAgOTYuMi0zOC45IDk2LjItOTQuMSAwLTU0LjUtMzYuMy05NC4zLTk2LTk0LjNINDI0em0xNTAuNiA5NC4zYzAgNDMuNC0yNi41IDU0LjMtNzEuMiA1NC4zaC0zOC45VjUxNi4yaDU2LjJjMzMuOCAwIDUzLjkgMTkuNyA1My45IDU0LjF6bTI4MC0yODEuN0w2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonKSk7XG5leHBvcnRzLkZpbGVUZXh0T3V0bGluZSA9IGdldEljb24oJ2ZpbGUtdGV4dCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHpNNTA0IDYxOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zMTIgNDkwdjQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh6JykpO1xuZXhwb3J0cy5GaWxlUGRmT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtcGRmJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUzMS4zIDU3NC40bC4zLTEuNGM1LjgtMjMuOSAxMy4xLTUzLjcgNy40LTgwLjctMy44LTIxLjMtMTkuNS0yOS42LTMyLjktMzAuMi0xNS44LS43LTI5LjkgOC4zLTMzLjQgMjEuNC02LjYgMjQtLjcgNTYuOCAxMC4xIDk4LjYtMTMuNiAzMi40LTM1LjMgNzkuNS01MS4yIDEwNy41LTI5LjYgMTUuMy02OS4zIDM4LjktNzUuMiA2OC43LTEuMiA1LjUuMiAxMi41IDMuNSAxOC44IDMuNyA3IDkuNiAxMi40IDE2LjUgMTUgMyAxLjEgNi42IDIgMTAuOCAyIDE3LjYgMCA0Ni4xLTE0LjIgODQuMS03OS40IDUuOC0xLjkgMTEuOC0zLjkgMTcuNi01LjkgMjcuMi05LjIgNTUuNC0xOC44IDgwLjktMjMuMSAyOC4yIDE1LjEgNjAuMyAyNC44IDgyLjEgMjQuOCAyMS42IDAgMzAuMS0xMi44IDMzLjMtMjAuNSA1LjYtMTMuNSAyLjktMzAuNS02LjItMzkuNi0xMy4yLTEzLTQ1LjMtMTYuNC05NS4zLTEwLjItMjQuNi0xNS00MC43LTM1LjQtNTIuNC02NS44ek00MjEuNiA3MjYuM2MtMTMuOSAyMC4yLTI0LjQgMzAuMy0zMC4xIDM0LjcgNi43LTEyLjMgMTkuOC0yNS4zIDMwLjEtMzQuN3ptODcuNi0yMzUuNWM1LjIgOC45IDQuNSAzNS44LjUgNDkuNC00LjktMTkuOS01LjYtNDguMS0yLjctNTEuNC44LjEgMS41LjcgMi4yIDJ6bS0xLjYgMTIwLjVjMTAuNyAxOC41IDI0LjIgMzQuNCAzOS4xIDQ2LjItMjEuNiA0LjktNDEuMyAxMy01OC45IDIwLjItNC4yIDEuNy04LjMgMy40LTEyLjMgNSAxMy4zLTI0LjEgMjQuNC01MS40IDMyLjEtNzEuNHptMTU1LjYgNjUuNWMuMS4yLjIuNS0uNC45aC0uMmwtLjIuM2MtLjguNS05IDUuMy00NC4zLTguNiA0MC42LTEuOSA0NSA3LjMgNDUuMSA3LjR6bTE5MS40LTM4OC4yTDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eicpKTtcbmV4cG9ydHMuRmlsZVppcE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXppcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yOTYgMzkyaDY0djY0aC02NHptMCAxOTB2MTYwaDEyOFY1ODJoLTY0di02MmgtNjR2NjJ6bTgwIDQ4djY0aC0zMnYtNjRoMzJ6bS0xNi0zMDJoNjR2NjRoLTY0em0tNjQtNjRoNjR2NjRoLTY0em02NCAxOTJoNjR2NjRoLTY0em0wLTI1Nmg2NHY2NGgtNjR6bTQ5NC42IDg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmg2NHY2NGg2NHYtNjRoMTc0djIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eicpKTtcbmV4cG9ydHMuRmlsZU91dGxpbmUgPSBnZXRJY29uKCdmaWxlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eicpKTtcbmV4cG9ydHMuRmlsdGVyT3V0bGluZSA9IGdldEljb24oJ2ZpbHRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNTk3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjU5Ny40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy40IDc5OEg0MjAuNlY2NDJoMTgyLjl2MTU2em05LjYtMjM2LjZsLTkuNSAxNi42aC0xODNsLTkuNS0xNi42TDIxMi43IDIyNmg1OTguNkw2MTMgNTYxLjR6JykpO1xuZXhwb3J0cy5GaWxlV29yZE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXdvcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNzkwLjIgMzI2SDYwMlYxMzcuOEw3OTAuMiAzMjZ6bTEuOCA1NjJIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6TTUyOC4xIDQ3MmgtMzIuMmMtNS41IDAtMTAuMyAzLjctMTEuNiA5LjFMNDM0LjYgNjgwbC00Ni4xLTE5OC43Yy0xLjMtNS40LTYuMS05LjMtMTEuNy05LjNoLTM1LjRhMTIuMDIgMTIuMDIgMCAwIDAtMTEuNiAxNS4xbDc0LjIgMjc2YzEuNCA1LjIgNi4yIDguOSAxMS42IDguOWgzMmM1LjQgMCAxMC4yLTMuNiAxMS42LTguOWw1Mi44LTE5NyA1Mi44IDE5N2MxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzEuOGM1LjQgMCAxMC4yLTMuNiAxMS42LTguOWw3NC40LTI3NmExMi4wNCAxMi4wNCAwIDAgMC0xMS42LTE1LjFINjQ3Yy01LjYgMC0xMC40IDMuOS0xMS43IDkuM2wtNDUuOCAxOTkuMS00OS44LTE5OS4zYy0xLjMtNS40LTYuMS05LjEtMTEuNi05LjF6JykpO1xuZXhwb3J0cy5GaXJlT3V0bGluZSA9IGdldEljb24oJ2ZpcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM0LjEgNDY5LjJBMzQ3LjQ5IDM0Ny40OSAwIDAgMCA3NTEuMiAzNTRsLTI5LjEtMjYuN2E4LjA5IDguMDkgMCAwIDAtMTMgMy4zbC0xMyAzNy4zYy04LjEgMjMuNC0yMyA0Ny4zLTQ0LjEgNzAuOC0xLjQgMS41LTMgMS45LTQuMSAyLTEuMS4xLTIuOC0uMS00LjMtMS41LTEuNC0xLjItMi4xLTMtMi00LjggMy43LTYwLjItMTQuMy0xMjguMS01My43LTIwMkM1NTUuMyAxNzEgNTEwIDEyMy4xIDQ1My40IDg5LjdsLTQxLjMtMjQuM2MtNS40LTMuMi0xMi4zIDEtMTIgNy4zbDIuMiA0OGMxLjUgMzIuOC0yLjMgNjEuOC0xMS4zIDg1LjktMTEgMjkuNS0yNi44IDU2LjktNDcgODEuNWEyOTUuNjQgMjk1LjY0IDAgMCAxLTQ3LjUgNDYuMSAzNTIuNiAzNTIuNiAwIDAgMC0xMDAuMyAxMjEuNUEzNDcuNzUgMzQ3Ljc1IDAgMCAwIDE2MCA2MTBjMCA0Ny4yIDkuMyA5Mi45IDI3LjcgMTM2YTM0OS40IDM0OS40IDAgMCAwIDc1LjUgMTEwLjljMzIuNCAzMiA3MCA1Ny4yIDExMS45IDc0LjdDNDE4LjUgOTQ5LjggNDY0LjUgOTU5IDUxMiA5NTlzOTMuNS05LjIgMTM2LjktMjcuM0EzNDguNiAzNDguNiAwIDAgMCA3NjAuOCA4NTdjMzIuNC0zMiA1Ny44LTY5LjQgNzUuNS0xMTAuOWEzNDQuMiAzNDQuMiAwIDAgMCAyNy43LTEzNmMwLTQ4LjgtMTAtOTYuMi0yOS45LTE0MC45ek03MTMgODA4LjVjLTUzLjcgNTMuMi0xMjUgODIuNC0yMDEgODIuNHMtMTQ3LjMtMjkuMi0yMDEtODIuNGMtNTMuNS01My4xLTgzLTEyMy41LTgzLTE5OC40IDAtNDMuNSA5LjgtODUuMiAyOS4xLTEyNCAxOC44LTM3LjkgNDYuOC03MS44IDgwLjgtOTcuOWEzNDkuNiAzNDkuNiAwIDAgMCA1OC42LTU2LjhjMjUtMzAuNSA0NC42LTY0LjUgNTguMi0xMDFhMjQwIDI0MCAwIDAgMCAxMi4xLTQ2LjVjMjQuMSAyMi4yIDQ0LjMgNDkgNjEuMiA4MC40IDMzLjQgNjIuNiA0OC44IDExOC4zIDQ1LjggMTY1LjdhNzQuMDEgNzQuMDEgMCAwIDAgMjQuNCA1OS44IDczLjM2IDczLjM2IDAgMCAwIDUzLjQgMTguOGMxOS43LTEgMzcuOC05LjcgNTEtMjQuNCAxMy4zLTE0LjkgMjQuOC0zMC4xIDM0LjQtNDUuNiAxNCAxNy45IDI1LjcgMzcuNCAzNSA1OC40IDE1LjkgMzUuOCAyNCA3My45IDI0IDExMy4xIDAgNzQuOS0yOS41IDE0NS40LTgzIDE5OC40eicpKTtcbmV4cG9ydHMuRmlsZVVua25vd25PdXRsaW5lID0gZ2V0SWNvbignZmlsZS11bmtub3duJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0ek00MDIgNTQ5YzAgNS40IDQuNCA5LjUgOS44IDkuNWgzMi40YzUuNCAwIDkuOC00LjIgOS44LTkuNCAwLTI4LjIgMjUuOC01MS42IDU4LTUxLjZzNTggMjMuNCA1OCA1MS41YzAgMjUuMy0yMSA0Ny4yLTQ5LjMgNTAuOS0xOS4zIDIuOC0zNC41IDIwLjMtMzQuNyA0MC4xdjMyYzAgNS41IDQuNSAxMCAxMCAxMGgzMmM1LjUgMCAxMC00LjUgMTAtMTB2LTEyLjJjMC02IDQtMTEuNSA5LjctMTMuMyA0NC42LTE0LjQgNzUtNTQgNzQuMy05OC45LS44LTU1LjUtNDkuMi0xMDAuOC0xMDguNS0xMDEuNi02MS40LS43LTExMS41IDQ1LjYtMTExLjUgMTAzem03OCAxOTVhMzIgMzIgMCAxIDAgNjQgMCAzMiAzMiAwIDEgMC02NCAweicpKTtcbmV4cG9ydHMuRmxhZ091dGxpbmUgPSBnZXRJY29uKCdmbGFnJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAzMDVINjI0VjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxODR2LTQwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY3ODRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY2NDBoMjQ4djExM2MwIDE3LjcgMTQuMyAzMiAzMiAzMmg0MTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzM3YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xODQgNTY4VjIzMmgzNjh2MzM2SDE4NHptNjU2IDE0NUg1MDR2LTczaDExMmM0LjQgMCA4LTMuNiA4LThWMzc3aDIxNnYzMzZ6JykpO1xuZXhwb3J0cy5Gb2xkZXJBZGRPdXRsaW5lID0gZ2V0SWNvbignZm9sZGVyLWFkZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODQgNDQzLjFWNTI4aC04NC41Yy00LjEgMC03LjUgMy4xLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3SDQ4NHY4NC45YzAgMy45IDMuMiA3LjEgNyA3LjFoNDJjMy45IDAgNy0zLjIgNy03LjFWNTg0aDg0LjVjNC4xIDAgNy41LTMuMiA3LjUtN3YtNDJjMC0zLjktMy40LTctNy41LTdINTQwdi04NC45YzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMXptMzk2LTE0NC43SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eicpKTtcbmV4cG9ydHMuRm9sZGVyT3V0bGluZSA9IGdldEljb24oJ2ZvbGRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNODQwIDc2OEgxODRWMjU2aDE4OC41bDExOS42IDExNC40SDg0MFY3Njh6JykpO1xuZXhwb3J0cy5Gb2xkZXJPcGVuT3V0bGluZSA9IGdldEljb24oJ2ZvbGRlci1vcGVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY5OGMxMyAwIDI0LjgtNy45IDI5LjctMjBsMTM0LTMzMmMxLjUtMy44IDIuMy03LjkgMi4zLTEyIDAtMTcuNy0xNC4zLTMyLTMyLTMyek0xMzYgMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDRIMjM4Yy0xMyAwLTI0LjggNy45LTI5LjcgMjBMMTM2IDY0My4yVjI1NnptNjM1LjMgNTEySDE1OWwxMDMuMy0yNTZoNjEyLjRMNzcxLjMgNzY4eicpKTtcbmV4cG9ydHMuRm9yd2FyZE91dGxpbmUgPSBnZXRJY29uKCdmb3J3YXJkJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTgyNS44IDQ5OEw1MzguNCAyNDkuOWMtMTAuNy05LjItMjYuNC0uOS0yNi40IDE0djQ5Ni4zYzAgMTQuOSAxNS43IDIzLjIgMjYuNCAxNEw4MjUuOCA1MjZjOC4zLTcuMiA4LjMtMjAuOCAwLTI4em0tMzIwIDBMMjE4LjQgMjQ5LjljLTEwLjctOS4yLTI2LjQtLjktMjYuNCAxNHY0OTYuM2MwIDE0LjkgMTUuNyAyMy4yIDI2LjQgMTRMNTA1LjggNTI2YzQuMS0zLjYgNi4yLTguOCA2LjItMTQgMC01LjItMi4xLTEwLjQtNi4yLTE0eicpKTtcbmV4cG9ydHMuRnJvd25PdXRsaW5lID0gZ2V0SWNvbignZnJvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMCAxIDI0OC45IDc3NWMtMzQuMi0zNC4yLTYxLTc0LTc5LjgtMTE4LjNDMTQ5LjggNjExIDE0MCA1NjIuMyAxNDAgNTEyczkuOC05OSAyOS4yLTE0NC44QTM3MC40IDM3MC40IDAgMCAxIDI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMCAxIDc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwIDEgNzc1IDc3NXpNNTEyIDUzM2MtODUuNSAwLTE1NS42IDY3LjMtMTYwIDE1MS42YTggOCAwIDAgMCA4IDguNGg0OC4xYzQuMiAwIDcuOC0zLjIgOC4xLTcuNEM0MjAgNjM2LjEgNDYxLjUgNTk3IDUxMiA1OTdzOTIuMSAzOS4xIDk1LjggODguNmMuMyA0LjIgMy45IDcuNCA4LjEgNy40SDY2NGE4IDggMCAwIDAgOC04LjRDNjY3LjYgNjAwLjMgNTk3LjUgNTMzIDUxMiA1MzN6JykpO1xuZXhwb3J0cy5GdW5kT3V0bGluZSA9IGdldEljb24oJ2Z1bmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI2IDE2NEg5NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM0VjIzNmg3NTJ2NTYwem0tNjU4LjktODIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDE3Mi41LTE3Mi41IDExNC40IDExNC41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMjk3LTI5Ny4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM2LjgtMzYuOGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDUzMSA1NjUgNDE2LjYgNDUwLjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMjE0LjkgMjE1YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzYuNyAzNi45eicpKTtcbmV4cG9ydHMuRnVubmVsUGxvdE91dGxpbmUgPSBnZXRJY29uKCdmdW5uZWwtcGxvdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNjA3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjYwNy40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy40IDc5OEg0MjAuNlY2NTBoMTgyLjl2MTQ4em05LjYtMjI2LjZsLTguNCAxNC42SDQxOS4zbC04LjQtMTQuNkwzMzQuNCA0MzhoMzU1LjJMNjEzIDU3MS40ek03MjYuMyAzNzRIMjk3LjdsLTg1LTE0OGg1OTguNmwtODUgMTQ4eicpKTtcbmV4cG9ydHMuR2lmdE91dGxpbmUgPSBnZXRJY29uKCdnaWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAzMTBINzMyLjRjMTMuNi0yMS40IDIxLjYtNDYuOCAyMS42LTc0IDAtNzYuMS02MS45LTEzOC0xMzgtMTM4LTQxLjQgMC03OC43IDE4LjQtMTA0IDQ3LjQtMjUuMy0yOS02Mi42LTQ3LjQtMTA0LTQ3LjQtNzYuMSAwLTEzOCA2MS45LTEzOCAxMzggMCAyNy4yIDcuOSA1Mi42IDIxLjYgNzRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBjMCA0LjQgMy42IDggOCA4aDQwdjM0NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTUwaDQwYzQuNCAwIDgtMy42IDgtOFYzNDJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMzQtNzRjMC0zOC42IDMxLjQtNzAgNzAtNzBzNzAgMzEuNCA3MCA3MC0zMS40IDcwLTcwIDcwaC03MHYtNzB6bS0xMzgtNzBjMzguNiAwIDcwIDMxLjQgNzAgNzB2NzBoLTcwYy0zOC42IDAtNzAtMzEuNC03MC03MHMzMS40LTcwIDcwLTcwek0xODAgNDgyVjM3OGgyOTh2MTA0SDE4MHptNDggNjhoMjUwdjMwOEgyMjhWNTUwem01NjggMzA4SDU0NlY1NTBoMjUwdjMwOHptNDgtMzc2SDU0NlYzNzhoMjk4djEwNHonKSk7XG5leHBvcnRzLkdpdGh1Yk91dGxpbmUgPSBnZXRJY29uKCdnaXRodWInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTExLjYgNzYuM0MyNjQuMyA3Ni4yIDY0IDI3Ni40IDY0IDUyMy41IDY0IDcxOC45IDE4OS4zIDg4NSAzNjMuOCA5NDZjMjMuNSA1LjkgMTkuOS0xMC44IDE5LjktMjIuMnYtNzcuNWMtMTM1LjcgMTUuOS0xNDEuMi03My45LTE1MC4zLTg4LjlDMjE1IDcyNiAxNzEuNSA3MTggMTg0LjUgNzAzYzMwLjktMTUuOSA2Mi40IDQgOTguOSA1Ny45IDI2LjQgMzkuMSA3Ny45IDMyLjUgMTA0IDI2IDUuNy0yMy41IDE3LjktNDQuNSAzNC43LTYwLjgtMTQwLjYtMjUuMi0xOTkuMi0xMTEtMTk5LjItMjEzIDAtNDkuNSAxNi4zLTk1IDQ4LjMtMTMxLjctMjAuNC02MC41IDEuOS0xMTIuMyA0LjktMTIwIDU4LjEtNS4yIDExOC41IDQxLjYgMTIzLjIgNDUuMyAzMy04LjkgNzAuNy0xMy42IDExMi45LTEzLjYgNDIuNCAwIDgwLjIgNC45IDExMy41IDEzLjkgMTEuMy04LjYgNjcuMy00OC44IDEyMS4zLTQzLjkgMi45IDcuNyAyNC43IDU4LjMgNS41IDExOCAzMi40IDM2LjggNDguOSA4Mi43IDQ4LjkgMTMyLjMgMCAxMDIuMi01OSAxODguMS0yMDAgMjEyLjlhMTI3LjUgMTI3LjUgMCAwIDEgMzguMSA5MXYxMTIuNWMuOCA5IDAgMTcuOSAxNSAxNy45IDE3Ny4xLTU5LjcgMzA0LjYtMjI3IDMwNC42LTQyNC4xIDAtMjQ3LjItMjAwLjQtNDQ3LjMtNDQ3LjUtNDQ3LjN6JykpO1xuZXhwb3J0cy5HaXRsYWJPdXRsaW5lID0gZ2V0SWNvbignZ2l0bGFiJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxMy45IDU1Mi4yTDgwNSAxODEuNHYtLjFjLTcuNi0yMi45LTI1LjctMzYuNS00OC4zLTM2LjUtMjMuNCAwLTQyLjUgMTMuNS00OS43IDM1LjJsLTcxLjQgMjEzSDM4OC44bC03MS40LTIxM2MtNy4yLTIxLjctMjYuMy0zNS4yLTQ5LjctMzUuMi0yMy4xIDAtNDIuNSAxNC44LTQ4LjQgMzYuNkwxMTAuNSA1NTIuMmMtNC40IDE0LjcgMS4yIDMxLjQgMTMuNSA0MC43bDM2OC41IDI3Ni40YzIuNiAzLjYgNi4yIDYuMyAxMC40IDcuOGw4LjYgNi40IDguNS02LjRjNC45LTEuNyA5LTQuNyAxMS45LTguOWwzNjguNC0yNzUuNGMxMi40LTkuMiAxOC0yNS45IDEzLjYtNDAuNnpNNzUxLjcgMTkzLjRjMS0xLjggMi45LTEuOSAzLjUtMS45IDEuMSAwIDIuNS4zIDMuNCAzTDgxOCAzOTQuM0g2ODQuNWw2Ny4yLTIwMC45em0tNDg3LjQgMWMuOS0yLjYgMi4zLTIuOSAzLjQtMi45IDIuNyAwIDIuOS4xIDMuNCAxLjdsNjcuMyAyMDEuMkgyMDYuNWw1Ny44LTIwMHpNMTU4LjggNTU4LjdsMjguMi05Ny4zIDIwMi40IDI3MC4yLTIzMC42LTE3Mi45em03My45LTExNi40aDEyMi4xbDkwLjggMjg0LjMtMjEyLjktMjg0LjN6TTUxMi45IDc3Nkw0MDUuNyA0NDIuM0g2MjBMNTEyLjkgNzc2em0xNTcuOS0zMzMuN2gxMTkuNUw1ODAgNzIzLjFsOTAuOC0yODAuOHptLTQwLjcgMjkzLjlsMjA3LjMtMjc2LjcgMjkuNSA5OS4yLTIzNi44IDE3Ny41eicpKTtcbmV4cG9ydHMuSGVhcnRPdXRsaW5lID0gZ2V0SWNvbignaGVhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTIzIDI4My42YTI2MC4wNCAyNjAuMDQgMCAwIDAtNTYuOS04Mi44IDI2NC40IDI2NC40IDAgMCAwLTg0LTU1LjVBMjY1LjM0IDI2NS4zNCAwIDAgMCA2NzkuNyAxMjVjLTQ5LjMgMC05Ny40IDEzLjUtMTM5LjIgMzktMTAgNi4xLTE5LjUgMTIuOC0yOC41IDIwLjEtOS03LjMtMTguNS0xNC0yOC41LTIwLjEtNDEuOC0yNS41LTg5LjktMzktMTM5LjItMzktMzUuNSAwLTY5LjkgNi44LTEwMi40IDIwLjMtMzEuNCAxMy01OS43IDMxLjctODQgNTUuNWEyNTguNDQgMjU4LjQ0IDAgMCAwLTU2LjkgODIuOGMtMTMuOSAzMi4zLTIxIDY2LjYtMjEgMTAxLjkgMCAzMy4zIDYuOCA2OCAyMC4zIDEwMy4zIDExLjMgMjkuNSAyNy41IDYwLjEgNDguMiA5MSAzMi44IDQ4LjkgNzcuOSA5OS45IDEzMy45IDE1MS42IDkyLjggODUuNyAxODQuNyAxNDQuOSAxODguNiAxNDcuM2wyMy43IDE1LjJjMTAuNSA2LjcgMjQgNi43IDM0LjUgMGwyMy43LTE1LjJjMy45LTIuNSA5NS43LTYxLjYgMTg4LjYtMTQ3LjMgNTYtNTEuNyAxMDEuMS0xMDIuNyAxMzMuOS0xNTEuNiAyMC43LTMwLjkgMzctNjEuNSA0OC4yLTkxIDEzLjUtMzUuMyAyMC4zLTcwIDIwLjMtMTAzLjMuMS0zNS4zLTctNjkuNi0yMC45LTEwMS45ek01MTIgODE0LjhTMTU2IDU4Ni43IDE1NiAzODUuNUMxNTYgMjgzLjYgMjQwLjMgMjAxIDM0NC4zIDIwMWM3My4xIDAgMTM2LjUgNDAuOCAxNjcuNyAxMDAuNEM1NDMuMiAyNDEuOCA2MDYuNiAyMDEgNjc5LjcgMjAxYzEwNCAwIDE4OC4zIDgyLjYgMTg4LjMgMTg0LjUgMCAyMDEuMi0zNTYgNDI5LjMtMzU2IDQyOS4zeicpKTtcbmV4cG9ydHMuSGRkT3V0bGluZSA9IGdldEljb24oJ2hkZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjAwIDcyaDU2MHYyMDhIMjMyVjEzNnptNTYwIDQ4MEgyMzJWNDA4aDU2MHYyMDh6bTAgMjcySDIzMlY2ODBoNTYwdjIwOHpNNDk2IDIwOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zMTIgNTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTMyOCAyNDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweicpKTtcbmV4cG9ydHMuSGlnaGxpZ2h0T3V0bGluZSA9IGdldEljb24oJ2hpZ2hsaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTcuNiA1MDcuNEw2MDMuMiAxNTguMmE3LjkgNy45IDAgMCAwLTExLjIgMEwzNTMuMyAzOTMuNGE4LjAzIDguMDMgMCAwIDAtLjEgMTEuM2wuMS4xIDQwIDM5LjQtMTE3LjIgMTE1LjNhOC4wMyA4LjAzIDAgMCAwLS4xIDExLjNsLjEuMSAzOS41IDM4LjktMTg5LjEgMTg3SDcyLjFjLTQuNCAwLTguMSAzLjYtOC4xIDhWODYwYzAgNC40IDMuNiA4IDggOGgzNDQuOWMyLjEgMCA0LjEtLjggNS42LTIuM2w3Ni4xLTc1LjYgNDAuNCAzOS44YTcuOSA3LjkgMCAwIDAgMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMCAwIDExLjIgMGwyMzguNy0yMzUuMmMzLjQtMyAzLjQtOCAuMy0xMS4yek0zODkuOCA3OTYuMkgyMjkuNmwxMzQuNC0xMzMgODAuMSA3OC45LTU0LjMgNTQuMXptMTU0LjgtNjIuMUwzNzMuMiA1NjUuMmw2OC42LTY3LjYgMTcxLjQgMTY4LjktNjguNiA2Ny42ek03MTMuMSA2NThMNDUwLjMgMzk5LjEgNTk3LjYgMjU0bDI2Mi44IDI1OS0xNDcuMyAxNDV6JykpO1xuZXhwb3J0cy5Ib21lT3V0bGluZSA9IGdldEljb24oJ2hvbWUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTQ2LjUgNTA1TDU2MC4xIDExOC44bC0yNS45LTI1LjlhMzEuNSAzMS41IDAgMCAwLTQ0LjQgMEw3Ny41IDUwNWE2My45IDYzLjkgMCAwIDAtMTguOCA0NmMuNCAzNS4yIDI5LjcgNjMuMyA2NC45IDYzLjNoNDIuNVY5NDBoNjkxLjhWNjE0LjNoNDMuNGMxNy4xIDAgMzMuMi02LjcgNDUuMy0xOC44YTYzLjYgNjMuNiAwIDAgMCAxOC43LTQ1LjNjMC0xNy02LjctMzMuMS0xOC44LTQ1LjJ6TTU2OCA4NjhINDU2VjY2NGgxMTJ2MjA0em0yMTcuOS0zMjUuN1Y4NjhINjMyVjY0MGMwLTIyLjEtMTcuOS00MC00MC00MEg0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwdjIyOEgyMzguMVY1NDIuM2gtOTZsMzcwLTM2OS43IDIzLjEgMjMuMUw4ODIgNTQyLjNoLTk2LjF6JykpO1xuZXhwb3J0cy5Ib3VyZ2xhc3NPdXRsaW5lID0gZ2V0SWNvbignaG91cmdsYXNzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc0MiAzMThWMTg0aDg2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NnYxMzRjMCA4MS41IDQyLjQgMTUzLjIgMTA2LjQgMTk0LTY0IDQwLjgtMTA2LjQgMTEyLjUtMTA2LjQgMTk0djEzNGgtODZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNjMyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC04NlY3MDZjMC04MS41LTQyLjQtMTUzLjItMTA2LjQtMTk0IDY0LTQwLjggMTA2LjQtMTEyLjUgMTA2LjQtMTk0em0tNzIgMzg4djEzNEgzNTRWNzA2YzAtNDIuMiAxNi40LTgxLjkgNDYuMy0xMTEuN0M0MzAuMSA1NjQuNCA0NjkuOCA1NDggNTEyIDU0OHM4MS45IDE2LjQgMTExLjcgNDYuM0M2NTMuNiA2MjQuMSA2NzAgNjYzLjggNjcwIDcwNnptMC0zODhjMCA0Mi4yLTE2LjQgODEuOS00Ni4zIDExMS43QzU5My45IDQ1OS42IDU1NC4yIDQ3NiA1MTIgNDc2cy04MS45LTE2LjQtMTExLjctNDYuM0ExNTYuNjMgMTU2LjYzIDAgMCAxIDM1NCAzMThWMTg0aDMxNnYxMzR6JykpO1xuZXhwb3J0cy5IdG1sNU91dGxpbmUgPSBnZXRJY29uKCdodG1sNScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xNDUgOTZsNjYgNzQ2LjZMNTExLjggOTI4bDI5OS42LTg1LjRMODc4LjcgOTZIMTQ1em02MTAuOSA3MDAuNmwtMjQ0LjEgNjkuNi0yNDUuMi02OS42LTU2LjctNjQxLjJoNjAzLjhsLTU3LjggNjQxLjJ6TTI4MSAyNDlsMS43IDI0LjMgMjIuNyAyNTMuNWgyMDYuNXYtLjFoMTEyLjlsLTExLjQgMTE4LjVMNTExIDY3Mi45di4yaC0uOGwtMTAyLjQtMjcuNy02LjUtNzMuMmgtOTFsMTEuMyAxNDQuNyAxODguNiA1MmgxLjd2LS40bDE4Ny43LTUxLjcgMS43LTE2LjMgMjEuMi0yNDIuMiAzLjItMjQuM0g1MTF2LjJIMzg5LjlsLTguMi05NC4yaDM1Mi4xbDEuNy0xOS41IDQuOC00Ny4yTDc0MiAyNDlINTExeicpKTtcbmV4cG9ydHMuSWRjYXJkT3V0bGluZSA9IGdldEljb24oJ2lkY2FyZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDYzMkgxMzZWMjMyaDc1MnY1NjB6TTYxMC4zIDQ3NmgxMjMuNGMxLjMgMCAyLjMtMy42IDIuMy04di00OGMwLTQuNC0xLTgtMi4zLThINjEwLjNjLTEuMyAwLTIuMyAzLjYtMi4zIDh2NDhjMCA0LjQgMSA4IDIuMyA4em00LjggMTQ0aDE4NS43YzMuOSAwIDcuMS0zLjYgNy4xLTh2LTQ4YzAtNC40LTMuMi04LTcuMS04SDYxNS4xYy0zLjkgMC03LjEgMy42LTcuMSA4djQ4YzAgNC40IDMuMiA4IDcuMSA4ek0yMjQgNjczaDQzLjljNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC41IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINTIyYTggOCAwIDAgMCA4LTguNGMtMi44LTUzLjMtMzItOTkuNy03NC42LTEyNi4xYTExMS44IDExMS44IDAgMCAwIDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAgMC03NC42IDEyNi4xYy0uNCA0LjYgMy4yIDguNCA3LjggOC40em0xNDktMjYyYzI4LjUgMCA1MS43IDIzLjMgNTEuNyA1MnMtMjMuMiA1Mi01MS43IDUyLTUxLjctMjMuMy01MS43LTUyIDIzLjItNTIgNTEuNy01MnonKSk7XG5leHBvcnRzLkluZm9DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignaW5mby1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNDY0IDMzNmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTcyIDExMmgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0NTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuSW5zdGFncmFtT3V0bGluZSA9IGdldEljb24oJ2luc3RhZ3JhbScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgMzA2LjljLTExMy41IDAtMjA1LjEgOTEuNi0yMDUuMSAyMDUuMVMzOTguNSA3MTcuMSA1MTIgNzE3LjEgNzE3LjEgNjI1LjUgNzE3LjEgNTEyIDYyNS41IDMwNi45IDUxMiAzMDYuOXptMCAzMzguNGMtNzMuNCAwLTEzMy4zLTU5LjktMTMzLjMtMTMzLjNTNDM4LjYgMzc4LjcgNTEyIDM3OC43IDY0NS4zIDQzOC42IDY0NS4zIDUxMiA1ODUuNCA2NDUuMyA1MTIgNjQ1LjN6bTIxMy41LTM5NC42Yy0yNi41IDAtNDcuOSAyMS40LTQ3LjkgNDcuOXMyMS40IDQ3LjkgNDcuOSA0Ny45IDQ3LjktMjEuMyA0Ny45LTQ3LjlhNDcuODQgNDcuODQgMCAwIDAtNDcuOS00Ny45ek05MTEuOCA1MTJjMC01NS4yLjUtMTA5LjktMi42LTE2NS0zLjEtNjQtMTcuNy0xMjAuOC02NC41LTE2Ny42LTQ2LjktNDYuOS0xMDMuNi02MS40LTE2Ny42LTY0LjUtNTUuMi0zLjEtMTA5LjktMi42LTE2NS0yLjYtNTUuMiAwLTEwOS45LS41LTE2NSAyLjYtNjQgMy4xLTEyMC44IDE3LjctMTY3LjYgNjQuNUMxMzIuNiAyMjYuMyAxMTguMSAyODMgMTE1IDM0N2MtMy4xIDU1LjItMi42IDEwOS45LTIuNiAxNjVzLS41IDEwOS45IDIuNiAxNjVjMy4xIDY0IDE3LjcgMTIwLjggNjQuNSAxNjcuNiA0Ni45IDQ2LjkgMTAzLjYgNjEuNCAxNjcuNiA2NC41IDU1LjIgMy4xIDEwOS45IDIuNiAxNjUgMi42IDU1LjIgMCAxMDkuOS41IDE2NS0yLjYgNjQtMy4xIDEyMC44LTE3LjcgMTY3LjYtNjQuNSA0Ni45LTQ2LjkgNjEuNC0xMDMuNiA2NC41LTE2Ny42IDMuMi01NS4xIDIuNi0xMDkuOCAyLjYtMTY1em0tODggMjM1LjhjLTcuMyAxOC4yLTE2LjEgMzEuOC0zMC4yIDQ1LjgtMTQuMSAxNC4xLTI3LjYgMjIuOS00NS44IDMwLjJDNjk1LjIgODQ0LjcgNTcwLjMgODQwIDUxMiA4NDBjLTU4LjMgMC0xODMuMyA0LjctMjM1LjktMTYuMS0xOC4yLTcuMy0zMS44LTE2LjEtNDUuOC0zMC4yLTE0LjEtMTQuMS0yMi45LTI3LjYtMzAuMi00NS44QzE3OS4zIDY5NS4yIDE4NCA1NzAuMyAxODQgNTEyYzAtNTguMy00LjctMTgzLjMgMTYuMS0yMzUuOSA3LjMtMTguMiAxNi4xLTMxLjggMzAuMi00NS44czI3LjYtMjIuOSA0NS44LTMwLjJDMzI4LjcgMTc5LjMgNDUzLjcgMTg0IDUxMiAxODRzMTgzLjMtNC43IDIzNS45IDE2LjFjMTguMiA3LjMgMzEuOCAxNi4xIDQ1LjggMzAuMiAxNC4xIDE0LjEgMjIuOSAyNy42IDMwLjIgNDUuOEM4NDQuNyAzMjguNyA4NDAgNDUzLjcgODQwIDUxMmMwIDU4LjMgNC43IDE4My4yLTE2LjIgMjM1Ljh6JykpO1xuZXhwb3J0cy5JbnN1cmFuY2VPdXRsaW5lID0gZ2V0SWNvbignaW5zdXJhbmNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ0MS42IDMwNi44TDQwMyAyODguNmE2LjEgNi4xIDAgMCAwLTguNCAzLjdjLTE3LjUgNTguNS00NS4yIDExMC4xLTgyLjIgMTUzLjZhNi4wNSA2LjA1IDAgMCAwLTEuMiA1LjZsMTMuMiA0My41YzEuMyA0LjQgNyA1LjcgMTAuMiAyLjQgNy43LTguMSAxNS40LTE2LjkgMjMuMS0yNlY2NTZjMCA0LjQgMy42IDggOCA4SDQwM2M0LjQgMCA4LTMuNiA4LThWMzkzLjFhNDI5LjIgNDI5LjIgMCAwIDAgMzMuNi03OWMxLTIuOS0uMy02LTMtNy4zem0yNi44IDkuMnYxMjcuMmMwIDQuNCAzLjYgOCA4IDhoNjUuOXYxOC42aC05NC45Yy00LjQgMC04IDMuNi04IDh2MzUuNmMwIDQuNCAzLjYgOCA4IDhoNTUuMWMtMTkuMSAzMC44LTQyLjQgNTUuNy03MSA3NmE2IDYgMCAwIDAtMS42IDguMWwyMi44IDM2LjVjMS45IDMuMSA2LjIgMy44IDguOSAxLjQgMzEuNi0yNi44IDU4LjctNjIuOSA4MC42LTEwNy42djEyMGMwIDQuNCAzLjYgOCA4IDhoMzYuMmM0LjQgMCA4LTMuNiA4LThWNTM2YzIxLjMgNDEuNyA0Ny41IDc3LjUgNzguMSAxMDYuOSAyLjYgMi41IDYuOCAyLjEgOC45LS43bDI2LjMtMzUuM2MyLTIuNyAxLjQtNi41LTEuMi04LjQtMzAuNS0yMi42LTU0LjItNDcuOC03Mi4zLTc2LjloNTljNC40IDAgOC0zLjYgOC04VjQ3OGMwLTQuNC0zLjYtOC04LThoLTk4Ljh2LTE4LjZoNjYuN2M0LjQgMCA4LTMuNiA4LThWMzE2YzAtNC40LTMuNi04LTgtOEg0NzYuNGMtNC40IDAtOCAzLjYtOCA4em01MS41IDQyLjhoOTcuOXY0MS42aC05Ny45di00MS42em0zNDctMTg4LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42eicpKTtcbmV4cG9ydHMuSW50ZXJhY3Rpb25PdXRsaW5lID0gZ2V0SWNvbignaW50ZXJhY3Rpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnpNMzA0LjggNTI0aDUwLjdjMy43IDAgNi44LTMgNi44LTYuOHYtNzguOWMwLTE5LjcgMTUuOS0zNS42IDM1LjUtMzUuNmgyMDUuN3Y1My40YzAgNS43IDYuNSA4LjggMTAuOSA1LjNsMTA5LjEtODUuN2MzLjUtMi43IDMuNS04IDAtMTAuN2wtMTA5LjEtODUuN2MtNC40LTMuNS0xMC45LS4zLTEwLjkgNS4zVjMzOEgzOTcuN2MtNTUuMSAwLTk5LjcgNDQuOC05OS43IDEwMC4xVjUxN2MwIDQgMyA3IDYuOCA3em0tNC4yIDEzNC45bDEwOS4xIDg1LjdjNC40IDMuNSAxMC45LjMgMTAuOS01LjN2LTUzLjRoMjA1LjdjNTUuMSAwIDk5LjctNDQuOCA5OS43LTEwMC4xdi03OC45YzAtMy43LTMtNi44LTYuOC02LjhoLTUwLjdjLTMuNyAwLTYuOCAzLTYuOCA2Ljh2NzguOWMwIDE5LjctMTUuOSAzNS42LTM1LjUgMzUuNkg0MjAuNlY1NjhjMC01LjctNi41LTguOC0xMC45LTUuM2wtMTA5LjEgODUuN2MtMy41IDIuNS0zLjUgNy44IDAgMTAuNXonKSk7XG5leHBvcnRzLkludGVyYXRpb25PdXRsaW5lID0gZ2V0SWNvbignaW50ZXJhdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek0zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eicpKTtcbmV4cG9ydHMuTGF5b3V0T3V0bGluZSA9IGdldEljb24oJ2xheW91dCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS02OTYgNzJoMTM2djY1NkgxODRWMTg0em02NTYgNjU2SDM4NFYzODRoNDU2djQ1NnpNMzg0IDMyMFYxODRoNDU2djEzNkgzODR6JykpO1xuZXhwb3J0cy5MZWZ0Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ2xlZnQtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTYwMy4zIDMyNy41bC0yNDYgMTc4YTcuOTUgNy45NSAwIDAgMCAwIDEyLjlsMjQ2IDE3OGM1LjMgMy44IDEyLjcgMCAxMi43LTYuNVY2NDNjMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NTcuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjV6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5MZWZ0U3F1YXJlT3V0bGluZSA9IGdldEljb24oJ2xlZnQtc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM2NS4zIDUxOC41bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjV2LTQ2LjljMC0xMC4yLTQuOS0xOS45LTEzLjItMjUuOUw0NjUuNCA1MTJsMTQ1LjQtMTA1LjJjOC4zLTYgMTMuMi0xNS42IDEzLjItMjUuOVYzMzRjMC02LjUtNy40LTEwLjMtMTIuNy02LjVsLTI0NiAxNzhhOC4wNSA4LjA1IDAgMCAwIDAgMTN6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuTGlrZU91dGxpbmUgPSBnZXRJY29uKCdsaWtlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4NS45IDUzMy43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjQtNjUuNS0xMTEuMWE2Ny42NyA2Ny42NyAwIDAgMC0zNC4zLTkuM0g1NzIuNGw2LTEyMi45YzEuNC0yOS43LTkuMS01Ny45LTI5LjUtNzkuNEExMDYuNjIgMTA2LjYyIDAgMCAwIDQ3MSA5OS45Yy01MiAwLTk4IDM1LTExMS44IDg1LjFsLTg1LjkgMzExSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwMS4zYzkuMiAwIDE4LjItMS44IDI2LjUtNS40IDQ3LjYtMjAuMyA3OC4zLTY2LjggNzguMy0xMTguNCAwLTEyLjYtMS44LTI1LTUuNC0zNyAxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNyAwLTEyLjYtMS44LTI1LTUuNC0zNyAxNi44LTIyLjIgMjYuMS00OS40IDI2LjEtNzcuNy0uMi0xMi42LTItMjUuMS01LjYtMzcuMXpNMTg0IDg1MlY1NjhoODF2Mjg0aC04MXptNjM2LjQtMzUzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAxNi41LTcuMiAzMi4yLTE5LjYgNDNsLTIxLjkgMTkgMTMuOSAyNS40YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDE2LjUtNy4yIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMjIuNC0xMy4yIDQyLjYtMzMuNiA1MS44SDMyOVY1NjQuOGw5OS41LTM2MC41YTQ0LjEgNDQuMSAwIDAgMSA0Mi4yLTMyLjNjNy42IDAgMTUuMSAyLjIgMjEuMSA2LjcgOS45IDcuNCAxNS4yIDE4LjYgMTQuNiAzMC41bC05LjYgMTk4LjRoMzE0LjRDODI5IDQxOC41IDg0MCA0MzYuOSA4NDAgNDU2YzAgMTYuNS03LjIgMzIuMS0xOS42IDQzeicpKTtcbmV4cG9ydHMuTGlua2VkaW5PdXRsaW5lID0gZ2V0SWNvbignbGlua2VkaW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ3LjcgMTEySDE3Ni4zYy0zNS41IDAtNjQuMyAyOC44LTY0LjMgNjQuM3Y2NzEuNGMwIDM1LjUgMjguOCA2NC4zIDY0LjMgNjQuM2g2NzEuNGMzNS41IDAgNjQuMy0yOC44IDY0LjMtNjQuM1YxNzYuM2MwLTM1LjUtMjguOC02NC4zLTY0LjMtNjQuM3ptMCA3MzZjLTQ0Ny44LS4xLTY3MS43LS4yLTY3MS43LS4zLjEtNDQ3LjguMi02NzEuNy4zLTY3MS43IDQ0Ny44LjEgNjcxLjcuMiA2NzEuNy4zLS4xIDQ0Ny44LS4yIDY3MS43LS4zIDY3MS43ek0yMzAuNiA0MTEuOWgxMTguN3YzODEuOEgyMzAuNnptNTkuNC01Mi4yYzM3LjkgMCA2OC44LTMwLjggNjguOC02OC44YTY4LjggNjguOCAwIDEgMC0xMzcuNiAwYy0uMSAzOCAzMC43IDY4LjggNjguOCA2OC44em0yNTIuMyAyNDUuMWMwLTQ5LjggOS41LTk4IDcxLjItOTggNjAuOCAwIDYxLjcgNTYuOSA2MS43IDEwMS4ydjE4NS43aDExOC42VjU4NC4zYzAtMTAyLjgtMjIuMi0xODEuOS0xNDIuMy0xODEuOS01Ny43IDAtOTYuNCAzMS43LTExMi4zIDYxLjdoLTEuNnYtNTIuMkg0MjMuN3YzODEuOGgxMTguNlY2MDQuOHonKSk7XG5leHBvcnRzLkxvY2tPdXRsaW5lID0gZ2V0SWNvbignbG9jaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzIgNDY0aC02OFYyNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzMyIDI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjI0SDMzMlYyNDB6bTQ2MCA2MDBIMjMyVjUzNmg1NjB2MzA0ek00ODQgNzAxdjUzYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTUzYTQ4LjAxIDQ4LjAxIDAgMSAwLTU2IDB6JykpO1xuZXhwb3J0cy5NZWRpY2luZUJveE91dGxpbmUgPSBnZXRJY29uKCdtZWRpY2luZS1ib3gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjIgMjc4LjFhMzIgMzIgMCAwIDAtMzAuNC0yMi4xSDczNlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMTJoLTcyLjhhMzEuOSAzMS45IDAgMCAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek0zNjAgMTg0aDMwNHY3MkgzNjB2LTcyem00ODAgNjU2SDE4NFY1MTMuNEwyNDQuMyAzMjhoNTM1LjRMODQwIDUxMy40Vjg0MHpNNjUyIDU3Mkg1NDRWNDY0YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxMDhIMzcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDEwOHYxMDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2MzZoMTA4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTWVoT3V0bGluZSA9IGdldEljb24oJ21laCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yODggNDIxYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMzUyIDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwek01MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMjYzIDcxMWMtMzQuMiAzNC4yLTc0IDYxLTExOC4zIDc5LjhDNjExIDg3NC4yIDU2Mi4zIDg4NCA1MTIgODg0Yy01MC4zIDAtOTktOS44LTE0NC44LTI5LjJBMzcwLjQgMzcwLjQgMCAwIDEgMjQ4LjkgNzc1Yy0zNC4yLTM0LjItNjEtNzQtNzkuOC0xMTguM0MxNDkuOCA2MTEgMTQwIDU2Mi4zIDE0MCA1MTJzOS44LTk5IDI5LjItMTQ0LjhBMzcwLjQgMzcwLjQgMCAwIDEgMjQ5IDI0OC45YzM0LjItMzQuMiA3NC02MSAxMTguMy03OS44QzQxMyAxNDkuOCA0NjEuNyAxNDAgNTEyIDE0MGM1MC4zIDAgOTkgOS44IDE0NC44IDI5LjJBMzcwLjQgMzcwLjQgMCAwIDEgNzc1LjEgMjQ5YzM0LjIgMzQuMiA2MSA3NCA3OS44IDExOC4zQzg3NC4yIDQxMyA4ODQgNDYxLjcgODg0IDUxMnMtOS44IDk5LTI5LjIgMTQ0LjhBMzY4Ljg5IDM2OC44OSAwIDAgMSA3NzUgNzc1ek02NjQgNTY1SDM2MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5NYWlsT3V0bGluZSA9IGdldEljb24oJ21haWwnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAxMTAuOFY3OTJIMTM2VjI3MC44bC0yNy42LTIxLjUgMzkuMy01MC41IDQyLjggMzMuM2g2NDMuMWw0Mi44LTMzLjMgMzkuMyA1MC41LTI3LjcgMjEuNXpNODMzLjYgMjMyTDUxMiA0ODIgMTkwLjQgMjMybC00Mi44LTMzLjMtMzkuMyA1MC41IDI3LjYgMjEuNSAzNDEuNiAyNjUuNmE1NS45OSA1NS45OSAwIDAgMCA2OC43IDBMODg4IDI3MC44bDI3LjYtMjEuNS0zOS4zLTUwLjUtNDIuNyAzMy4yeicpKTtcbmV4cG9ydHMuTWVzc2FnZU91dGxpbmUgPSBnZXRJY29uKCdtZXNzYWdlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQ2NCA1MTJhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0yMDAgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bS00MDAgMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTY2MS4yLTE3My42Yy0yMi42LTUzLjctNTUtMTAxLjktOTYuMy0xNDMuM2E0NDQuMzUgNDQ0LjM1IDAgMCAwLTE0My4zLTk2LjNDNjMwLjYgNzUuNyA1NzIuMiA2NCA1MTIgNjRoLTJjLTYwLjYuMy0xMTkuMyAxMi4zLTE3NC41IDM1LjlhNDQ1LjM1IDQ0NS4zNSAwIDAgMC0xNDIgOTYuNWMtNDAuOSA0MS4zLTczIDg5LjMtOTUuMiAxNDIuOC0yMyA1NS40LTM0LjYgMTE0LjMtMzQuMyAxNzQuOUE0NDkuNCA0NDkuNCAwIDAgMCAxMTIgNzE0djE1MmE0NiA0NiAwIDAgMCA0NiA0NmgxNTIuMUE0NDkuNCA0NDkuNCAwIDAgMCA1MTAgOTYwaDIuMWM1OS45IDAgMTE4LTExLjYgMTcyLjctMzQuM2E0NDQuNDggNDQ0LjQ4IDAgMCAwIDE0Mi44LTk1LjJjNDEuMy00MC45IDczLjgtODguNyA5Ni41LTE0MiAyMy42LTU1LjIgMzUuNi0xMTMuOSAzNS45LTE3NC41LjMtNjAuOS0xMS41LTEyMC0zNC44LTE3NS42em0tMTUxLjEgNDM4QzcwNCA4NDUuOCA2MTEgODg0IDUxMiA4ODRoLTEuN2MtNjAuMy0uMy0xMjAuMi0xNS4zLTE3My4xLTQzLjVsLTguNC00LjVIMTg4VjY5NS4ybC00LjUtOC40QzE1NS4zIDYzMy45IDE0MC4zIDU3NCAxNDAgNTEzLjdjLS40LTk5LjcgMzcuNy0xOTMuMyAxMDcuNi0yNjMuOCA2OS44LTcwLjUgMTYzLjEtMTA5LjUgMjYyLjgtMTA5LjloMS43YzUwIDAgOTguNSA5LjcgMTQ0LjIgMjguOSA0NC42IDE4LjcgODQuNiA0NS42IDExOSA4MCAzNC4zIDM0LjMgNjEuMyA3NC40IDgwIDExOSAxOS40IDQ2LjIgMjkuMSA5NS4yIDI4LjkgMTQ1LjgtLjYgOTkuNi0zOS43IDE5Mi45LTExMC4xIDI2Mi43eicpKTtcbmV4cG9ydHMuTWludXNDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbignbWludXMtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5NiA0ODBIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonLCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonKSk7XG5leHBvcnRzLk1pbnVzU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ21pbnVzLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMjggNTQ0aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6JywgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eicpKTtcbmV4cG9ydHMuTW9iaWxlT3V0bGluZSA9IGdldEljb24oJ21vYmlsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDQgNjJIMjgwYy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNDY0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyNmMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDI4OFYxMzRoNDQ4djc1MnpNNDcyIDc4NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6JykpO1xuZXhwb3J0cy5Nb25leUNvbGxlY3RPdXRsaW5lID0gZ2V0SWNvbignbW9uZXktY29sbGVjdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MTEuNSA3MDAuN2E4IDggMCAwIDAtMTAuMy00LjhMODQwIDcxOC4yVjE4MGMwLTM3LjYtMzAuNC02OC02OC02OEgyNTJjLTM3LjYgMC02OCAzMC40LTY4IDY4djUzOC4ybC02MS4zLTIyLjNjLS45LS4zLTEuOC0uNS0yLjctLjUtNC40IDAtOCAzLjYtOCA4Vjc2M2MwIDMuMyAyLjEgNi4zIDUuMyA3LjVMNTAxIDkxMC4xYzcuMSAyLjYgMTQuOCAyLjYgMjEuOSAwbDM4My44LTEzOS41YzMuMi0xLjIgNS4zLTQuMiA1LjMtNy41di01OS42YzAtMS0uMi0xLjktLjUtMi44ek01MTIgODM3LjVsLTI1Ni05My4xVjE4NGg1MTJ2NTYwLjRsLTI1NiA5My4xek02NjAuNiAzMTJoLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAgMC03LjEtNC40aC01NS43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC44bDEwMy45IDE5MS42aC01N2MtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2djM5aC03NmMtNC40IDAtOCAzLjYtOCA4djI3LjFjMCA0LjQgMy42IDggOCA4aDc2VjcwNGMwIDQuNCAzLjYgOCA4IDhoNDkuOWM0LjQgMCA4LTMuNiA4LTh2LTYzLjVoNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04aC03Ni4zdi0zOWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThINTY0bDEwMy43LTE5MS42Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjMtMy43LTcuOS04LjEtNy45eicpKTtcbmV4cG9ydHMuUGF1c2VDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncGF1c2UtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptLTg4LTUzMmgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04em0yMjQgMGgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuUGF5Q2lyY2xlT3V0bGluZSA9IGdldEljb24oJ3BheS1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xNTkuNi01ODVoLTU5LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTkwLjYgMTgwSDUxMWwtOTAuNi0xODBhOCA4IDAgMCAwLTcuMS00LjRoLTYwLjdjLTEuMyAwLTIuNi4zLTMuOCAxLTMuOSAyLjEtNS4zIDctMy4yIDEwLjlMNDU3IDUxNS43aC02MS40Yy00LjQgMC04IDMuNi04IDh2MjkuOWMwIDQuNCAzLjYgOCA4IDhoODEuN1Y2MDNoLTgxLjdjLTQuNCAwLTggMy42LTggOHYyOS45YzAgNC40IDMuNiA4IDggOGg4MS43VjcxN2MwIDQuNCAzLjYgOCA4IDhoNTQuM2M0LjQgMCA4LTMuNiA4LTh2LTY4LjFoODJjNC40IDAgOC0zLjYgOC04VjYxMWMwLTQuNC0zLjYtOC04LThoLTgydi00MS41aDgyYzQuNCAwIDgtMy42IDgtOHYtMjkuOWMwLTQuNC0zLjYtOC04LThoLTYybDExMS4xLTIwNC44Yy42LTEuMiAxLTIuNSAxLTMuOC0uMS00LjQtMy43LTgtOC4xLTh6JykpO1xuZXhwb3J0cy5Ob3RpZmljYXRpb25PdXRsaW5lID0gZ2V0SWNvbignbm90aWZpY2F0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJjLTMuOCAwLTcuNy43LTExLjYgMi4zTDI5MiAzNDUuOUgxMjhjLTguOCAwLTE2IDcuNC0xNiAxNi42djI5OWMwIDkuMiA3LjIgMTYuNiAxNiAxNi42aDEwMS43Yy0zLjcgMTEuNi01LjcgMjMuOS01LjcgMzYuNCAwIDY1LjkgNTMuOCAxMTkuNSAxMjAgMTE5LjUgNTUuNCAwIDEwMi4xLTM3LjYgMTE1LjktODguNGw0MDguNiAxNjQuMmMzLjkgMS41IDcuOCAyLjMgMTEuNiAyLjMgMTYuOSAwIDMyLTE0LjIgMzItMzMuMlYxNDUuMkM5MTIgMTI2LjIgODk3IDExMiA4ODAgMTEyek0zNDQgNzYyLjNjLTI2LjUgMC00OC0yMS40LTQ4LTQ3LjggMC0xMS4yIDMuOS0yMS45IDExLTMwLjRsODQuOSAzNC4xYy0yIDI0LjYtMjIuNyA0NC4xLTQ3LjkgNDQuMXptNDk2IDU4LjRMMzE4LjggNjExLjNsLTEyLjktNS4ySDE4NFY0MTcuOWgxMjEuOWwxMi45LTUuMkw4NDAgMjAzLjN2NjE3LjR6JykpO1xuZXhwb3J0cy5QaG9uZU91dGxpbmUgPSBnZXRJY29uKCdwaG9uZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzcuMSAyMzguN0w3NzAuNiAxMzIuM2MtMTMtMTMtMzAuNC0yMC4zLTQ4LjgtMjAuM3MtMzUuOCA3LjItNDguOCAyMC4zTDU1OC4zIDI0Ni44Yy0xMyAxMy0yMC4zIDMwLjUtMjAuMyA0OC45IDAgMTguNSA3LjIgMzUuOCAyMC4zIDQ4LjlsODkuNiA4OS43YTQwNS40NiA0MDUuNDYgMCAwIDEtODYuNCAxMjcuM2MtMzYuNyAzNi45LTc5LjYgNjYtMTI3LjIgODYuNmwtODkuNi04OS43Yy0xMy0xMy0zMC40LTIwLjMtNDguOC0yMC4zYTY4LjIgNjguMiAwIDAgMC00OC44IDIwLjNMMTMyLjMgNjczYy0xMyAxMy0yMC4zIDMwLjUtMjAuMyA0OC45IDAgMTguNSA3LjIgMzUuOCAyMC4zIDQ4LjlsMTA2LjQgMTA2LjRjMjIuMiAyMi4yIDUyLjggMzQuOSA4NC4yIDM0LjkgNi41IDAgMTIuOC0uNSAxOS4yLTEuNiAxMzIuNC0yMS44IDI2My44LTkyLjMgMzY5LjktMTk4LjNDODE4IDYwNiA4ODguNCA0NzQuNiA5MTAuNCAzNDIuMWM2LjMtMzcuNi02LjMtNzYuMy0zMy4zLTEwMy40em0tMzcuNiA5MS41Yy0xOS41IDExNy45LTgyLjkgMjM1LjUtMTc4LjQgMzMxcy0yMTMgMTU4LjktMzMwLjkgMTc4LjRjLTE0LjggMi41LTMwLTIuNS00MC44LTEzLjJMMTg0LjkgNzIxLjkgMjk1LjcgNjExbDExOS44IDEyMCAuOS45IDIxLjYtOGE0ODEuMjkgNDgxLjI5IDAgMCAwIDI4NS43LTI4NS44bDgtMjEuNi0xMjAuOC0xMjAuNyAxMTAuOC0xMTAuOSAxMDQuNSAxMDQuNWMxMC44IDEwLjggMTUuOCAyNiAxMy4zIDQwLjh6JykpO1xuZXhwb3J0cy5QaWN0dXJlT3V0bGluZSA9IGdldEljb24oJ3BpY3R1cmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2di0zOS45bDEzOC41LTE2NC4zIDE1MC4xIDE3OEw2NTguMSA0ODkgODg4IDc2MS42Vjc5MnptMC0xMjkuOEw2NjQuMiAzOTYuOGMtMy4yLTMuOC05LTMuOC0xMi4yIDBMNDI0LjYgNjY2LjRsLTE0NC0xNzAuN2MtMy4yLTMuOC05LTMuOC0xMi4yIDBMMTM2IDY1Mi43VjIzMmg3NTJ2NDMwLjJ6TTMwNCA0NTZhODggODggMCAxIDAgMC0xNzYgODggODggMCAwIDAgMCAxNzZ6bTAtMTE2YzE1LjUgMCAyOCAxMi41IDI4IDI4cy0xMi41IDI4LTI4IDI4LTI4LTEyLjUtMjgtMjggMTIuNS0yOCAyOC0yOHonKSk7XG5leHBvcnRzLlBpZUNoYXJ0T3V0bGluZSA9IGdldEljb24oJ3BpZS1jaGFydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjQgNTE4SDUwNlYxNjBjMC00LjQtMy42LTgtOC04aC0yNmEzOTguNDYgMzk4LjQ2IDAgMCAwLTI4Mi44IDExNy4xIDM5OC4xOSAzOTguMTkgMCAwIDAtODUuNyAxMjcuMUEzOTcuNjEgMzk3LjYxIDAgMCAwIDcyIDU1MmEzOTguNDYgMzk4LjQ2IDAgMCAwIDExNy4xIDI4Mi44YzM2LjcgMzYuNyA3OS41IDY1LjYgMTI3LjEgODUuN0EzOTcuNjEgMzk3LjYxIDAgMCAwIDQ3MiA5NTJhMzk4LjQ2IDM5OC40NiAwIDAgMCAyODIuOC0xMTcuMWMzNi43LTM2LjcgNjUuNi03OS41IDg1LjctMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAgMCA4NzIgNTUydi0yNmMwLTQuNC0zLjYtOC04LTh6TTcwNS43IDc4Ny44QTMzMS41OSAzMzEuNTkgMCAwIDEgNDcwLjQgODg0Yy04OC4xLS40LTE3MC45LTM0LjktMjMzLjItOTcuMkMxNzQuNSA3MjQuMSAxNDAgNjQwLjcgMTQwIDU1MmMwLTg4LjcgMzQuNS0xNzIuMSA5Ny4yLTIzNC44IDU0LjYtNTQuNiAxMjQuOS04Ny45IDIwMC44LTk1LjVWNTg2aDM2NC4zYy03LjcgNzYuMy00MS4zIDE0Ny05Ni42IDIwMS44ek05NTIgNDYyLjRsLTIuNi0yOC4yYy04LjUtOTIuMS00OS40LTE3OS0xMTUuMi0yNDQuNkEzOTkuNCAzOTkuNCAwIDAgMCA1ODkgNzQuNkw1NjAuNyA3MmMtNC43LS40LTguNyAzLjItOC43IDcuOVY0NjRjMCA0LjQgMy42IDggOCA4bDM4NC0xYzQuNyAwIDguNC00IDgtOC42em0tMzMyLjItNTguMlYxNDcuNmEzMzIuMjQgMzMyLjI0IDAgMCAxIDE2Ni40IDg5LjhjNDUuNyA0NS42IDc3IDEwMy42IDkwIDE2Ni4xbC0yNTYuNC43eicpKTtcbmV4cG9ydHMuUGxheVNxdWFyZU91dGxpbmUgPSBnZXRJY29uKCdwbGF5LXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NDIuMyA2NzcuNmwxOTkuNC0xNTYuN2ExMS4zIDExLjMgMCAwIDAgMC0xNy43TDQ0Mi4zIDM0Ni40Yy03LjQtNS44LTE4LjMtLjYtMTguMyA4Ljh2MzEzLjVjMCA5LjQgMTAuOSAxNC43IDE4LjMgOC45eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLlBsYXlDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncGxheS1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNzE5LjQgNDk5LjFsLTI5Ni4xLTIxNUExNS45IDE1LjkgMCAwIDAgMzk4IDI5N3Y0MzBjMCAxMy4xIDE0LjggMjAuNSAyNS4zIDEyLjlsMjk2LjEtMjE1YTE1LjkgMTUuOSAwIDAgMCAwLTI1Ljh6bS0yNTcuNiAxMzRWMzkwLjlMNjI4LjUgNTEyIDQ2MS44IDYzMy4xeicpKTtcbmV4cG9ydHMuUGx1c0NpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdwbHVzLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTYgNDgwSDU0NFYzMjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1MkgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5QcmludGVyT3V0bGluZSA9IGdldEljb24oJ3ByaW50ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODIwIDQzNmgtNDBjLTQuNCAwLTggMy42LTggOHY0MGMwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di00MGMwLTQuNC0zLjYtOC04LTh6bTMyLTEwNEg3MzJWMTIwYzAtNC40LTMuNi04LTgtOEgzMDBjLTQuNCAwLTggMy42LTggOHYyMTJIMTcyYy00NC4yIDAtODAgMzUuOC04MCA4MHYzMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4djEzMmMwIDQuNCAzLjYgOCA4IDhoNDI0YzQuNCAwIDgtMy42IDgtOFY3NzJoMTY4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQxMmMwLTQ0LjItMzUuOC04MC04MC04MHpNMzYwIDE4MGgzMDR2MTUySDM2MFYxODB6bTMwNCA2NjRIMzYwVjU2OGgzMDR2Mjc2em0yMDAtMTQwSDczMlY1MDBIMjkydjIwNEgxNjBWNDEyYzAtNi42IDUuNC0xMiAxMi0xMmg2ODBjNi42IDAgMTIgNS40IDEyIDEydjI5MnonKSk7XG5leHBvcnRzLlBsdXNTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbigncGx1cy1zcXVhcmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzI4IDU0NGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg1NDRWMzI4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHYxNTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eicsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonKSk7XG5leHBvcnRzLlByb2ZpbGVPdXRsaW5lID0gZ2V0SWNvbigncHJvZmlsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2ek00OTIgNDAwaDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAgMTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAgMTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6TTM0MCAzNjhhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0wIDE0NGE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAgMTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLlByb2plY3RPdXRsaW5lID0gZ2V0SWNvbigncHJvamVjdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yODAgNzUyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6bTE5Mi0yODBoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MTg0YzAgNC40IDMuNiA4IDggOHptMTkyIDcyaDgwYzQuNCAwIDgtMy42IDgtOFYyODBjMC00LjQtMy42LTgtOC04aC04MGMtNC40IDAtOCAzLjYtOCA4djI1NmMwIDQuNCAzLjYgOCA4IDh6bTIxNi00MzJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5QdXNocGluT3V0bGluZSA9IGdldEljb24oJ3B1c2hwaW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODc4LjMgMzkyLjFMNjMxLjkgMTQ1LjdjLTYuNS02LjUtMTUtOS43LTIzLjUtOS43cy0xNyAzLjItMjMuNSA5LjdMNDIzLjggMzA2LjljLTEyLjItMS40LTI0LjUtMi0zNi44LTItNzMuMiAwLTE0Ni40IDI0LjEtMjA2LjUgNzIuM2EzMy4yMyAzMy4yMyAwIDAgMC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwIDAtNC42IDkuOGwtMy40IDM3LjJjLS45IDkuNCA2LjYgMTcuNCAxNS45IDE3LjQuNSAwIDEgMCAxLjUtLjFsMzcuMi0zLjRjMy43LS4zIDcuMi0yIDkuOC00LjZsMjE1LjQtMjE1LjQgMTgxLjcgMTgxLjdjNi41IDYuNSAxNSA5LjcgMjMuNSA5LjcgOS43IDAgMTkuMy00LjIgMjUuOS0xMi40IDU2LjMtNzAuMyA3OS43LTE1OC4zIDcwLjItMjQzLjRsMTYxLjEtMTYxLjFjMTIuOS0xMi44IDEyLjktMzMuOCAwLTQ2Ljh6TTY2Ni4yIDU0OS4zbC0yNC41IDI0LjUgMy44IDM0LjRhMjU5LjkyIDI1OS45MiAwIDAgMS0zMC40IDE1My45TDI2MiA0MDguOGMxMi45LTcuMSAyNi4zLTEzLjEgNDAuMy0xNy45IDI3LjItOS40IDU1LjctMTQuMSA4NC43LTE0LjEgOS42IDAgMTkuMy41IDI4LjkgMS42bDM0LjQgMy44IDI0LjUtMjQuNUw2MDguNSAyMjQgODAwIDQxNS41IDY2Ni4yIDU0OS4zeicpKTtcbmV4cG9ydHMuUHJvcGVydHlTYWZldHlPdXRsaW5lID0gZ2V0SWNvbigncHJvcGVydHktc2FmZXR5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnpNNDMwLjUgMzE4aC00NmMtMS43IDAtMy4zLjQtNC44IDEuMmExMC4xIDEwLjEgMCAwIDAtNCAxMy42bDg4IDE2MS4xaC00NS4yYy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMXYyOS43aC02My4xYy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMVY2NThjMCA1LjUgNC41IDEwIDEwIDEwaDQxLjNjNS41IDAgMTAtNC41IDEwLTEwdi01MS44aDYzLjRjNS41IDAgMTAtNC41IDEwLTEwdi0yMS4zYzAtNS41LTQuNS0xMC0xMC0xMGgtNjMuNHYtMjkuN2g2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTQ1LjdsODcuNy0xNjEuMWExMC4wNSAxMC4wNSAwIDAgMC04LjgtMTQuOGgtNDVjLTMuOCAwLTcuMiAyLjEtOC45IDUuNWwtNzMuMiAxNDQuMy03Mi45LTE0NC4zYy0xLjctMy40LTUuMi01LjUtOS01LjV6JykpO1xuZXhwb3J0cy5RdWVzdGlvbkNpcmNsZU91dGxpbmUgPSBnZXRJY29uKCdxdWVzdGlvbi1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeicsICdNNjIzLjYgMzE2LjdDNTkzLjYgMjkwLjQgNTU0IDI3NiA1MTIgMjc2cy04MS42IDE0LjUtMTExLjYgNDAuN0MzNjkuMiAzNDQgMzUyIDM4MC43IDM1MiA0MjB2Ny42YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDIwYzAtNDQuMSA0My4xLTgwIDk2LTgwczk2IDM1LjkgOTYgODBjMCAzMS4xLTIyIDU5LjYtNTYuMSA3Mi43LTIxLjIgOC4xLTM5LjIgMjIuMy01Mi4xIDQwLjktMTMuMSAxOS0xOS45IDQxLjgtMTkuOSA2NC45VjYyMGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0yMi43YTQ4LjMgNDguMyAwIDAgMSAzMC45LTQ0LjhjNTktMjIuNyA5Ny4xLTc0LjcgOTcuMS0xMzIuNS4xLTM5LjMtMTcuMS03Ni00OC4zLTEwMy4zek00NzIgNzMyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLlJlYWRPdXRsaW5lID0gZ2V0SWNvbigncmVhZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMTYxSDY5OS4yYy00OS4xIDAtOTcuMSAxNC4xLTEzOC40IDQwLjdMNTEyIDIzM2wtNDguOC0zMS4zQTI1NS4yIDI1NS4yIDAgMCAwIDMyNC44IDE2MUg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTY4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDIyOC44YzQ5LjEgMCA5Ny4xIDE0LjEgMTM4LjQgNDAuN2w0NC40IDI4LjZjMS4zLjggMi44IDEuMyA0LjMgMS4zczMtLjQgNC4zLTEuM2w0NC40LTI4LjZDNjAyIDgwNy4xIDY1MC4xIDc5MyA2OTkuMiA3OTNIOTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5M2MwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzI0LjggNzIxSDEzNlYyMzNoMTg4LjhjMzUuNCAwIDY5LjggMTAuMSA5OS41IDI5LjJsNDguOCAzMS4zIDYuOSA0LjV2NDYyYy00Ny42LTI1LjYtMTAwLjgtMzktMTU1LjItMzl6bTU2My4yIDBINjk5LjJjLTU0LjQgMC0xMDcuNiAxMy40LTE1NS4yIDM5VjI5OGw2LjktNC41IDQ4LjgtMzEuM2MyOS43LTE5LjEgNjQuMS0yOS4yIDk5LjUtMjkuMkg4ODh2NDg4ek0zOTYuOSAzNjFIMjExLjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMuMS00LjEtMy4xLTcuNS03LTcuNXptMjIzLjEgNy41djQ1YzAgNC4xIDMuMiA3LjUgNy4xIDcuNWgxODUuN2MzLjkgMCA3LjEtMy40IDcuMS03LjV2LTQ1YzAtNC4xLTMuMi03LjUtNy4xLTcuNUg2MjcuMWMtMy45IDAtNy4xIDMuNC03LjEgNy41ek0zOTYuOSA1MDFIMjExLjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMuMS00LjEtMy4xLTcuNS03LTcuNXptNDE2IDBINjI3LjFjLTMuOSAwLTcuMSAzLjQtNy4xIDcuNXY0NWMwIDQuMSAzLjIgNy41IDcuMSA3LjVoMTg1LjdjMy45IDAgNy4xLTMuNCA3LjEtNy41di00NWMuMS00LjEtMy4xLTcuNS03LTcuNXonKSk7XG5leHBvcnRzLlJlY29uY2lsaWF0aW9uT3V0bGluZSA9IGdldEljb24oJ3JlY29uY2lsaWF0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY3NiA1NjVjLTUwLjggMC05MiA0MS4yLTkyIDkyczQxLjIgOTIgOTIgOTIgOTItNDEuMiA5Mi05Mi00MS4yLTkyLTkyLTkyem0wIDEyNmMtMTguOCAwLTM0LTE1LjItMzQtMzRzMTUuMi0zNCAzNC0zNCAzNCAxNS4yIDM0IDM0LTE1LjIgMzQtMzQgMzR6bTIwNC01MjNINjY4YzAtMzAuOS0yNS4xLTU2LTU2LTU2aC04MGMtMzAuOSAwLTU2IDI1LjEtNTYgNTZIMjY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMDBoLTg4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0NDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMydi0xNmgzNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjAwYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDEyIDY0aDcydi01Nmg2NHY1Nmg3MnY0OEg0Njh2LTQ4em0tMjAgNjE2SDE3NlY2MTZoMjcydjIzMnptMC0yOTZIMTc2di04OGgyNzJ2ODh6bTM5MiAyNDBINTEyVjQzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMDRWMjQwaDEwMHYxMDRoMzM2VjI0MGgxMDB2NTUyek03MDQgNDA4djk2YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHpNNTkyIDUxMmg0OGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5SZWRFbnZlbG9wZU91dGxpbmUgPSBnZXRJY29uKCdyZWQtZW52ZWxvcGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQwLjYgNDYyLjZhOC4zOCA4LjM4IDAgMCAwLTcuNS00LjZoLTQ4LjhjLTEuMyAwLTIuNi40LTMuOSAxYTguNCA4LjQgMCAwIDAtMy40IDExLjRsODcuNCAxNjEuMUg0MTljLTQuNiAwLTguNCAzLjgtOC40IDguNFY2NjVjMCA0LjYgMy44IDguNCA4LjQgOC40aDYzVjcwMmgtNjNjLTQuNiAwLTguNCAzLjgtOC40IDguNHYyNS4xYzAgNC42IDMuOCA4LjQgOC40IDguNGg2M3Y0OS45YzAgNC42IDMuOCA4LjQgOC40IDguNGg0My43YzQuNiAwIDguNC0zLjggOC40LTguNHYtNDkuOWg2My4zYzQuNyAwIDguNC0zLjggOC4yLTguNXYtMjVjMC00LjYtMy44LTguNC04LjQtOC40aC02My4zdi0yOC42aDYzLjNjNC42IDAgOC40LTMuOCA4LjQtOC40di0yNS4xYzAtNC42LTMuOC04LjQtOC40LTguNGgtNDUuOWw4Ny4yLTE2MWE4LjQ1IDguNDUgMCAwIDAtNy40LTEyLjRoLTQ3LjhjLTMuMSAwLTYgMS44LTcuNSA0LjZsLTcxLjkgMTQxLjktNzEuNy0xNDJ6TTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjE5My4xbDI2MC4zIDIwNC4xYzExLjYgOS4xIDI3LjkgOS4xIDM5LjUgMEw3OTIgMTkzLjFWODg4em0wLTc1MS4zaC0zMS43TDUxMiAzMzEuMyAyNjMuNyAxMzYuN0gyMzJ2LS43aDU2MHYuN3onKSk7XG5leHBvcnRzLlJlc3RPdXRsaW5lID0gZ2V0SWNvbigncmVzdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MDggNzA0Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0cy02NC41LTE0NC0xNDQtMTQ0LTE0NCA2NC41LTE0NCAxNDQgNjQuNSAxNDQgMTQ0IDE0NHptMC0yMjRjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODAtODAtMzUuOC04MC04MCAzNS44LTgwIDgwLTgweicsICdNODMyIDI1NmgtMjguMWwtMzUuNy0xMjAuOWMtNC0xMy43LTE2LjUtMjMuMS0zMC43LTIzLjFoLTQ1MWMtMTQuMyAwLTI2LjggOS40LTMwLjcgMjMuMUwyMjAuMSAyNTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyOGMwIDQuNCAzLjYgOCA4IDhoNDUuOGw0Ny43IDU1OC43YTMyIDMyIDAgMCAwIDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAgMCAzMS45LTI5LjNMODAyLjIgMzI0SDg1NmM0LjQgMCA4LTMuNiA4LTh2LTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTE4LjYtNzZoMzk3LjJsMjIuNCA3NkgyOTFsMjIuNC03NnptMzc2LjIgNjY0SDMyNi40TDI4MiAzMjRoNDUxLjlsLTQ0LjMgNTIweicpKTtcbmV4cG9ydHMuUmlnaHRDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigncmlnaHQtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY2Ni43IDUwNS41bC0yNDYtMTc4QTggOCAwIDAgMCA0MDggMzM0djQ2LjljMCAxMC4yIDQuOSAxOS45IDEzLjIgMjUuOUw1NjYuNiA1MTIgNDIxLjIgNjE3LjJjLTguMyA2LTEzLjIgMTUuNi0xMy4yIDI1LjlWNjkwYzAgNi41IDcuNCAxMC4zIDEyLjcgNi41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS44IDAtMTN6JywgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6JykpO1xuZXhwb3J0cy5Sb2NrZXRPdXRsaW5lID0gZ2V0SWNvbigncm9ja2V0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2NCA3MzZjMC0xMTEuNi02NS40LTIwOC0xNjAtMjUyLjlWMzE3LjNjMC0xNS4xLTUuMy0yOS43LTE1LjEtNDEuMkw1MzYuNSA5NS40QzUzMC4xIDg3LjggNTIxIDg0IDUxMiA4NHMtMTguMSAzLjgtMjQuNSAxMS40TDMzNS4xIDI3Ni4xYTYzLjk3IDYzLjk3IDAgMCAwLTE1LjEgNDEuMnYxNjUuOEMyMjUuNCA1MjggMTYwIDYyNC40IDE2MCA3MzZoMTU2LjVjLTIuMyA3LjItMy41IDE1LTMuNSAyMy44IDAgMjIuMSA3LjYgNDMuNyAyMS40IDYwLjhhOTcuMiA5Ny4yIDAgMCAwIDQzLjEgMzAuNmMyMy4xIDU0IDc1LjYgODguOCAxMzQuNSA4OC44IDI5LjEgMCA1Ny4zLTguNiA4MS40LTI0LjggMjMuNi0xNS44IDQxLjktMzcuOSA1My02NGE5NyA5NyAwIDAgMCA0My4xLTMwLjUgOTcuNTIgOTcuNTIgMCAwIDAgMjEuNC02MC44YzAtOC40LTEuMS0xNi40LTMuMS0yMy44SDg2NHpNNzYyLjMgNjIxLjRjOS40IDE0LjYgMTcgMzAuMyAyMi41IDQ2LjZINzAwVjU1OC43YTIxMS42IDIxMS42IDAgMCAxIDYyLjMgNjIuN3pNMzg4IDQ4My4xVjMxOC44bDEyNC0xNDcgMTI0IDE0N1Y2NjhIMzg4VjQ4My4xek0yMzkuMiA2NjhjNS41LTE2LjMgMTMuMS0zMiAyMi41LTQ2LjYgMTYuMy0yNS4yIDM3LjUtNDYuNSA2Mi4zLTYyLjdWNjY4aC04NC44em0zODguOSAxMTYuMmMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41LTM4LjMgMC03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwIDEtMTcuMS0zLjVjLTguNy01LTE0LjEtMTQuMy0xNC4xLTI0LjQgMC0xMC42IDUuOS0xOS40IDE0LjYtMjMuOGgyMzEuM2M4LjggNC41IDE0LjYgMTMuMyAxNC42IDIzLjgtLjEgMTAuMi01LjUgMTkuNi0xNC4yIDI0LjV6TTQ2NCA0MDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweicpKTtcbmV4cG9ydHMuUmlnaHRTcXVhcmVPdXRsaW5lID0gZ2V0SWNvbigncmlnaHQtc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQxMi43IDY5Ni41bDI0Ni0xNzhjNC40LTMuMiA0LjQtOS43IDAtMTIuOWwtMjQ2LTE3OGMtNS4zLTMuOC0xMi43IDAtMTIuNyA2LjVWMzgxYzAgMTAuMiA0LjkgMTkuOSAxMy4yIDI1LjlMNTU4LjYgNTEyIDQxMy4yIDYxNy4yYy04LjMgNi0xMy4yIDE1LjYtMTMuMiAyNS45VjY5MGMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNXonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5TYWZldHlDZXJ0aWZpY2F0ZU91dGxpbmUgPSBnZXRJY29uKCdzYWZldHktY2VydGlmaWNhdGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY2LjkgMTY5LjlMNTI3LjEgNTQuMUM1MjMgNTIuNyA1MTcuNSA1MiA1MTIgNTJzLTExIC43LTE1LjEgMi4xTDE1Ny4xIDE2OS45Yy04LjMgMi44LTE1LjEgMTIuNC0xNS4xIDIxLjJ2NDgyLjRjMCA4LjggNS43IDIwLjQgMTIuNiAyNS45TDQ5OS4zIDk2OGMzLjUgMi43IDggNC4xIDEyLjYgNC4xczkuMi0xLjQgMTIuNi00LjFsMzQ0LjctMjY4LjZjNi45LTUuNCAxMi42LTE3IDEyLjYtMjUuOVYxOTEuMWMuMi04LjgtNi42LTE4LjMtMTQuOS0yMS4yek04MTAgNjU0LjNMNTEyIDg4Ni41IDIxNCA2NTQuM1YyMjYuN2wyOTgtMTAxLjYgMjk4IDEwMS42djQyNy42em0tNDA1LjgtMjAxYy0zLTQuMS03LjgtNi42LTEzLTYuNkgzMzZjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNi40IDE3NGExNi4xIDE2LjEgMCAwIDAgMjYgMGwyMTIuNi0yOTIuN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN2gtNTUuMmMtNS4xIDAtMTAgMi41LTEzIDYuNkw0NjguOSA1NDIuNGwtNjQuNy04OS4xeicpKTtcbmV4cG9ydHMuU2NoZWR1bGVPdXRsaW5lID0gZ2V0SWNvbignc2NoZWR1bGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA1NjhIMTM2VjI5NmgxMjB2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxMjB2NDk2ek00MTYgNDk2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTAgMTM2SDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTMwOC4yLTE3Ny40TDYyMC42IDU5OC4zbC01Mi44LTczLjFjLTMtNC4yLTcuOC02LjYtMTIuOS02LjZINTAwYy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMTQuMSAxNTguMmExNS45IDE1LjkgMCAwIDAgMjUuOCAwbDE2NS0yMjguN2MzLjgtNS4zIDAtMTIuNy02LjUtMTIuN0g3MzdjLTUtLjEtOS44IDIuNC0xMi44IDYuNXonKSk7XG5leHBvcnRzLlNhdmVPdXRsaW5lID0gZ2V0SWNvbignc2F2ZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004OTMuMyAyOTMuM0w3MzAuNyAxMzAuN2MtNy41LTcuNS0xNi43LTEzLTI2LjctMTZWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE4NGgyNTZ2MTA0SDM4NFYxODR6bTQ1NiA2NTZIMTg0VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2Vjg0MHpNNTEyIDQ0MmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0LTY0LjUtMTQ0LTE0NC0xNDR6bTAgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MHMzNS44LTgwIDgwLTgwIDgwIDM1LjggODAgODAtMzUuOCA4MC04MCA4MHonKSk7XG5leHBvcnRzLlNlY3VyaXR5U2Nhbk91dGxpbmUgPSBnZXRJY29uKCdzZWN1cml0eS1zY2FuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnpNNDAyLjkgNTI4LjhsLTc3LjUgNzcuNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM0IDM0YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNzcuNS03Ny41YzU1LjcgMzUuMSAxMzAuMSAyOC40IDE3OC42LTIwLjEgNTYuMy01Ni4zIDU2LjMtMTQ3LjUgMC0yMDMuOC01Ni4zLTU2LjMtMTQ3LjUtNTYuMy0yMDMuOCAwLTQ4LjUgNDguNS01NS4yIDEyMy0yMC4xIDE3OC42em02NS40LTEzMy4zYzMxLjMtMzEuMyA4Mi0zMS4zIDExMy4yIDAgMzEuMyAzMS4zIDMxLjMgODIgMCAxMTMuMi0zMS4zIDMxLjMtODIgMzEuMy0xMTMuMiAwcy0zMS4zLTgxLjkgMC0xMTMuMnonKSk7XG5leHBvcnRzLlNldHRpbmdPdXRsaW5lID0gZ2V0SWNvbignc2V0dGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjQuOCA2MjUuN2wtNjUuNS01NmMzLjEtMTkgNC43LTM4LjQgNC43LTU3LjhzLTEuNi0zOC44LTQuNy01Ny44bDY1LjUtNTZhMzIuMDMgMzIuMDMgMCAwIDAgOS4zLTM1LjJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMCAwLTc5LjctMTM3LjlsLTEuOC0yLjFhMzIuMTIgMzIuMTIgMCAwIDAtMzUuMS05LjVsLTgxLjMgMjguOWMtMzAtMjQuNi02My41LTQ0LTk5LjctNTcuNmwtMTUuNy04NWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44LTI1LjdsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44IDI1LjdsLTE1LjggODUuNGEzNTEuODYgMzUxLjg2IDAgMCAwLTk5IDU3LjRsLTgxLjktMjkuMWEzMiAzMiAwIDAgMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMCAwLTc5LjcgMTM3LjlsLS45IDIuNmMtNC41IDEyLjUtLjggMjYuNSA5LjMgMzUuMmw2Ni4zIDU2LjZjLTMuMSAxOC44LTQuNiAzOC00LjYgNTcuMSAwIDE5LjIgMS41IDM4LjQgNC42IDU3LjFMOTkgNjI1LjVhMzIuMDMgMzIuMDMgMCAwIDAtOS4zIDM1LjJsLjkgMi42YzE4LjEgNTAuNCA0NC45IDk2LjkgNzkuNyAxMzcuOWwxLjggMi4xYTMyLjEyIDMyLjEyIDAgMCAwIDM1LjEgOS41bDgxLjktMjkuMWMyOS44IDI0LjUgNjMuMSA0My45IDk5IDU3LjRsMTUuOCA4NS40YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjggMjUuN2wyLjcuNWE0NDkuNCA0NDkuNCAwIDAgMCAxNTkgMGwyLjctLjVhMzIuMDUgMzIuMDUgMCAwIDAgMjUuOC0yNS43bDE1LjctODVhMzUwIDM1MCAwIDAgMCA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMCAwIDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjYtODcuNSA3OS43LTEzNy45bC45LTIuNmM0LjUtMTIuMy44LTI2LjMtOS4zLTM1ek03ODguMyA0NjUuOWMyLjUgMTUuMSAzLjggMzAuNiAzLjggNDYuMXMtMS4zIDMxLTMuOCA0Ni4xbC02LjYgNDAuMSA3NC43IDYzLjlhMzcwLjAzIDM3MC4wMyAwIDAgMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTdhMzc3LjUgMzc3LjUgMCAwIDEtODUgMGwtMTcuOS05Ny4yLTM3LjgtMTQuNWMtMjguNS0xMC44LTU1LTI2LjItNzguNy00NS43bC0zMS40LTI1LjktOTMuNCAzMy4yYy0xNy0yMi45LTMxLjItNDcuNi00Mi42LTczLjZsNzUuNS02NC41LTYuNS00MGMtMi40LTE0LjktMy43LTMwLjMtMy43LTQ1LjUgMC0xNS4zIDEuMi0zMC42IDMuNy00NS41bDYuNS00MC03NS41LTY0LjVjMTEuMy0yNi4xIDI1LjYtNTAuNyA0Mi42LTczLjZsOTMuNCAzMy4yIDMxLjQtMjUuOWMyMy43LTE5LjUgNTAuMi0zNC45IDc4LjctNDUuN2wzNy45LTE0LjMgMTcuOS05Ny4yYzI4LjEtMy4yIDU2LjgtMy4yIDg1IDBsMTcuOSA5NyAzOC4xIDE0LjNjMjguNyAxMC44IDU1LjQgMjYuMiA3OS4zIDQ1LjhsMzEuNCAyNS44IDkyLjgtMzIuOWMxNyAyMi45IDMxLjIgNDcuNiA0Mi42IDczLjZMNzgxLjggNDI2bDYuNSAzOS45ek01MTIgMzI2Yy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptNzkuMiAyNTUuMkExMTEuNiAxMTEuNiAwIDAgMSA1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwIDEgNDAwIDUwMmMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDQwMS42IDQ4Mi4xIDM5MCA1MTIgMzkwYzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOEExMTEuNiAxMTEuNiAwIDAgMSA2MjQgNTAyYzAgMjkuOS0xMS43IDU4LTMyLjggNzkuMnonKSk7XG5leHBvcnRzLlNob3BwaW5nT3V0bGluZSA9IGdldEljb24oJ3Nob3BwaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiAzMTJINjk2di0xNmMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRzLTE4NCA4Mi40LTE4NCAxODR2MTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQzMi0xNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEydjE2SDQwMHYtMTZ6bTM5MiA1NDRIMjMyVjM4NGg5NnY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGgyMjR2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoOTZ2NDU2eicpKTtcbmV4cG9ydHMuU2tpbk91dGxpbmUgPSBnZXRJY29uKCdza2luJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MCAxMjZINjYzLjhjLTE3LjQgMC0zMi45IDExLjktMzcgMjkuM0M2MTQuMyAyMDguMSA1NjcgMjQ2IDUxMiAyNDZzLTEwMi4zLTM3LjktMTE0LjgtOTAuN2EzNy45MyAzNy45MyAwIDAgMC0zNy0yOS4zSDE1NGE0NCA0NCAwIDAgMC00NCA0NHYyNTJhNDQgNDQgMCAwIDAgNDQgNDRoNzV2Mzg4YTQ0IDQ0IDAgMCAwIDQ0IDQ0aDQ3OGE0NCA0NCAwIDAgMCA0NC00NFY0NjZoNzVhNDQgNDQgMCAwIDAgNDQtNDRWMTcwYTQ0IDQ0IDAgMCAwLTQ0LTQ0em0tMjggMjY4SDcyM3Y0MzJIMzAxVjM5NEgxODJWMTk4aDE1My4zYzI4LjIgNzEuMiA5Ny41IDEyMCAxNzYuNyAxMjBzMTQ4LjUtNDguOCAxNzYuNy0xMjBIODQydjE5NnonKSk7XG5leHBvcnRzLlNreXBlT3V0bGluZSA9IGdldEljb24oJ3NreXBlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4My43IDU3OC42YzQuMS0yMi41IDYuMy00NS41IDYuMy02OC41IDAtNTEtMTAtMTAwLjUtMjkuNy0xNDctMTktNDUtNDYuMy04NS40LTgxLTEyMC4xYTM3NS43OSAzNzUuNzkgMCAwIDAtMTIwLjEtODAuOWMtNDYuNi0xOS43LTk2LTI5LjctMTQ3LTI5LjctMjQgMC00OC4xIDIuMy03MS41IDYuOEEyMjUuMSAyMjUuMSAwIDAgMCAzMzUuNiAxMTNjLTU5LjcgMC0xMTUuOSAyMy4zLTE1OC4xIDY1LjVBMjIyLjI1IDIyMi4yNSAwIDAgMCAxMTIgMzM2LjZjMCAzOCA5LjggNzUuNCAyOC4xIDEwOC40LTMuNyAyMS40LTUuNyA0My4zLTUuNyA2NS4xIDAgNTEgMTAgMTAwLjUgMjkuNyAxNDcgMTkgNDUgNDYuMiA4NS40IDgwLjkgMTIwLjEgMzQuNyAzNC43IDc1LjEgNjEuOSAxMjAuMSA4MC45IDQ2LjYgMTkuNyA5NiAyOS43IDE0NyAyOS43IDIyLjIgMCA0NC40LTIgNjYuMi01LjkgMzMuNSAxOC45IDcxLjMgMjkgMTEwIDI5IDU5LjcgMCAxMTUuOS0yMy4yIDE1OC4xLTY1LjUgNDIuMy00Mi4yIDY1LjUtOTguNCA2NS41LTE1OC4xLjEtMzgtOS43LTc1LjUtMjguMi0xMDguN3ptLTg4LjEgMjE2Qzc2Ni45IDgyMy40IDcyOSA4MzkgNjg4LjQgODM5Yy0yNi4xIDAtNTEuOC02LjgtNzQuNi0xOS43bC0yMi41LTEyLjctMjUuNSA0LjVjLTE3LjggMy4yLTM1LjggNC44LTUzLjYgNC44LTQxLjQgMC04MS4zLTguMS0xMTkuMS0yNC4xLTM2LjMtMTUuMy02OS0zNy4zLTk3LjItNjUuNWEzMDQuMjkgMzA0LjI5IDAgMCAxLTY1LjUtOTcuMWMtMTYtMzcuNy0yNC03Ny42LTI0LTExOSAwLTE3LjQgMS42LTM1LjIgNC42LTUyLjhsNC40LTI1LjFMMjAzIDQxMGExNTEuMDIgMTUxLjAyIDAgMCAxLTE5LjEtNzMuNGMwLTQwLjYgMTUuNy03OC41IDQ0LjQtMTA3LjJDMjU3LjEgMjAwLjcgMjk1IDE4NSAzMzUuNiAxODVhMTUzIDE1MyAwIDAgMSA3MS40IDE3LjlsMjIuNCAxMS44IDI0LjgtNC44YzE4LjktMy42IDM4LjQtNS41IDU4LTUuNSA0MS40IDAgODEuMyA4LjEgMTE5IDI0IDM2LjUgMTUuNCA2OS4xIDM3LjQgOTcuMiA2NS41IDI4LjIgMjguMSA1MC4yIDYwLjggNjUuNiA5Ny4yIDE2IDM3LjcgMjQgNzcuNiAyNCAxMTkgMCAxOC40LTEuNyAzNy01LjEgNTUuNWwtNC43IDI1LjUgMTIuNiAyMi42YzEyLjYgMjIuNSAxOS4yIDQ4IDE5LjIgNzMuNyAwIDQwLjctMTUuNyA3OC41LTQ0LjQgMTA3LjJ6TTU4My40IDQ2Ni4yTDQ5NSA0NDYuNmMtMzMuNi03LjctNzIuMy0xNy44LTcyLjMtNDkuNXMyNy4xLTUzLjkgNzYuMS01My45Yzk4LjcgMCA4OS43IDY3LjggMTM4LjcgNjcuOCAyNS44IDAgNDguNC0xNS4yIDQ4LjQtNDEuMiAwLTYwLjgtOTcuNC0xMDYuNS0xODAtMTA2LjUtODkuNyAwLTE4NS4yIDM4LjEtMTg1LjIgMTM5LjUgMCA0OC44IDE3LjQgMTAwLjggMTEzLjYgMTI0LjlsMTE5LjQgMjkuOGMzNi4xIDguOSA0NS4yIDI5LjIgNDUuMiA0Ny42IDAgMzAuNS0zMC4zIDYwLjMtODUuMiA2MC4zLTEwNy4yIDAtOTIuMy04Mi41LTE0OS43LTgyLjUtMjUuOCAwLTQ0LjUgMTcuOC00NC41IDQzLjEgMCA0OS40IDYwIDExNS40IDE5NC4yIDExNS40IDEyNy43IDAgMTkxLTYxLjUgMTkxLTE0NCAwLTUzLjEtMjQuNS0xMDkuNi0xMjEuMy0xMzEuMnonKSk7XG5leHBvcnRzLlNsYWNrU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3NsYWNrLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTUyOSAzMTEuNGMwLTI3LjggMjIuNS01MC40IDUwLjMtNTAuNCAyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNHYxMzQuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNC0yNy44IDAtNTAuMy0yMi42LTUwLjMtNTAuNFYzMTEuNHpNMzYxLjUgNTgwLjJjMCAyNy44LTIyLjUgNTAuNC01MC4zIDUwLjRhNTAuMzUgNTAuMzUgMCAwIDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDUwLjN2NTAuNHptMTM0IDEzNC40YzAgMjcuOC0yMi41IDUwLjQtNTAuMyA1MC40LTI3LjggMC01MC4zLTIyLjYtNTAuMy01MC40VjU4MC4yYzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40YTUwLjM1IDUwLjM1IDAgMCAxIDUwLjMgNTAuNHYxMzQuNHptLTUwLjItMjE4LjRoLTEzNGMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjQgMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRoMTM0YzI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40LS4xIDI3LjktMjIuNiA1MC40LTUwLjMgNTAuNHptMC0xMzQuNGMtMTMuMyAwLTI2LjEtNS4zLTM1LjYtMTQuOFMzOTUgMzI0LjggMzk1IDMxMS40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40IDI3LjggMCA1MC4zIDIyLjYgNTAuMyA1MC40djUwLjRoLTUwLjN6bTEzNCA0MDMuMmMtMjcuOCAwLTUwLjMtMjIuNi01MC4zLTUwLjR2LTUwLjRoNTAuM2MyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMTM0LTEzNC40aC0xMzRhNTAuMzUgNTAuMzUgMCAwIDEtNTAuMy01MC40YzAtMjcuOCAyMi41LTUwLjQgNTAuMy01MC40aDEzNGMyNy44IDAgNTAuMyAyMi42IDUwLjMgNTAuNCAwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHptMC0xMzQuNEg2NjN2LTUwLjRjMC0yNy44IDIyLjUtNTAuNCA1MC4zLTUwLjRzNTAuMyAyMi42IDUwLjMgNTAuNGMwIDI3LjgtMjIuNSA1MC40LTUwLjMgNTAuNHonKSk7XG5leHBvcnRzLlNsaWRlcnNPdXRsaW5lID0gZ2V0SWNvbignc2xpZGVycycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMjAgMjI0aC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS02MCA1MDhoLTgwVjI5Mmg4MHY0NDB6bTY0NC00MzZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTYwIDM2NGgtODBWMzY0aDgwdjI5NnpNNjEyIDQwNGgtNjZWMjMyYzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHYxNzJoLTY2Yy00LjQgMC04IDMuNi04IDh2MjAwYzAgNC40IDMuNiA4IDggOGg2NnYxNzJjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY2MjBoNjZjNC40IDAgOC0zLjYgOC04VjQxMmMwLTQuNC0zLjYtOC04LTh6bS02MCAxNDVhMyAzIDAgMCAxLTMgM2gtNzRhMyAzIDAgMCAxLTMtM3YtNzRhMyAzIDAgMCAxIDMtM2g3NGEzIDMgMCAwIDEgMyAzdjc0eicpKTtcbmV4cG9ydHMuU21pbGVPdXRsaW5lID0gZ2V0SWNvbignc21pbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTM1MiAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHpNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTI2MyA3MTFjLTM0LjIgMzQuMi03NCA2MS0xMTguMyA3OS44QzYxMSA4NzQuMiA1NjIuMyA4ODQgNTEyIDg4NGMtNTAuMyAwLTk5LTkuOC0xNDQuOC0yOS4yQTM3MC40IDM3MC40IDAgMCAxIDI0OC45IDc3NWMtMzQuMi0zNC4yLTYxLTc0LTc5LjgtMTE4LjNDMTQ5LjggNjExIDE0MCA1NjIuMyAxNDAgNTEyczkuOC05OSAyOS4yLTE0NC44QTM3MC40IDM3MC40IDAgMCAxIDI0OSAyNDguOWMzNC4yLTM0LjIgNzQtNjEgMTE4LjMtNzkuOEM0MTMgMTQ5LjggNDYxLjcgMTQwIDUxMiAxNDBjNTAuMyAwIDk5IDkuOCAxNDQuOCAyOS4yQTM3MC40IDM3MC40IDAgMCAxIDc3NS4xIDI0OWMzNC4yIDM0LjIgNjEgNzQgNzkuOCAxMTguM0M4NzQuMiA0MTMgODg0IDQ2MS43IDg4NCA1MTJzLTkuOCA5OS0yOS4yIDE0NC44QTM2OC44OSAzNjguODkgMCAwIDEgNzc1IDc3NXpNNjY0IDUzM2gtNDguMWMtNC4yIDAtNy44IDMuMi04LjEgNy40QzYwNCA1ODkuOSA1NjIuNSA2MjkgNTEyIDYyOXMtOTIuMS0zOS4xLTk1LjgtODguNmMtLjMtNC4yLTMuOS03LjQtOC4xLTcuNEgzNjBhOCA4IDAgMCAwLTggOC40YzQuNCA4NC4zIDc0LjUgMTUxLjYgMTYwIDE1MS42czE1NS42LTY3LjMgMTYwLTE1MS42YTggOCAwIDAgMC04LTguNHonKSk7XG5leHBvcnRzLlNuaXBwZXRzT3V0bGluZSA9IGdldEljb24oJ3NuaXBwZXRzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMiAxMTJINzI0VjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEg1MDBWNzJjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djQwSDMyMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTIwaC05NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUxMmMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZoOTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NjQgODg4SDIzMlYzMzZoMjE4djE3NGMwIDIyLjEgMTcuOSA0MCA0MCA0MGgxNzR2MzM4em0wLTQwMkg1MTRWMzM2aC4yTDY2NCA0ODUuOHYuMnptMTI4IDI3NGgtNTZWNDU2TDU0NCAyNjRIMzYwdi04MGg2OHYzMmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di0zMmgxNTJ2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoNjh2NTc2eicpKTtcbmV4cG9ydHMuU291bmRPdXRsaW5lID0gZ2V0SWNvbignc291bmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjI1LjkgMTE1Yy01LjkgMC0xMS45IDEuNi0xNy40IDUuM0wyNTQgMzUySDkwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgxNjRsMzU0LjUgMjMxLjdjNS41IDMuNiAxMS42IDUuMyAxNy40IDUuMyAxNi43IDAgMzIuMS0xMy4zIDMyLjEtMzIuMVYxNDcuMWMwLTE4LjgtMTUuNC0zMi4xLTMyLjEtMzIuMXpNNTg2IDgwM0wyOTMuNCA2MTEuN2wtMTgtMTEuN0gxNDZWNDI0aDEyOS40bDE3LjktMTEuN0w1ODYgMjIxdjU4MnptMzQ4LTMyN0g4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2em0tNDEuOSAyNjEuOGwtMTEwLjMtNjMuN2ExNS45IDE1LjkgMCAwIDAtMjEuNyA1LjlsLTE5LjkgMzQuNWMtNC40IDcuNi0xLjggMTcuNCA1LjggMjEuOEw4NTYuMyA4MDBhMTUuOSAxNS45IDAgMCAwIDIxLjctNS45bDE5LjktMzQuNWM0LjQtNy42IDEuNy0xNy40LTUuOC0yMS44ek03NjAgMzQ0YTE1LjkgMTUuOSAwIDAgMCAyMS43IDUuOUw4OTIgMjg2LjJjNy42LTQuNCAxMC4yLTE0LjIgNS44LTIxLjhMODc4IDIzMGExNS45IDE1LjkgMCAwIDAtMjEuNy01LjlMNzQ2IDI4Ny44YTE1Ljk5IDE1Ljk5IDAgMCAwLTUuOCAyMS44TDc2MCAzNDR6JykpO1xuZXhwb3J0cy5TdGFyT3V0bGluZSA9IGdldEljb24oJ3N0YXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA4LjEgMzUzLjFsLTI1My45LTM2LjlMNTQwLjcgODYuMWMtMy4xLTYuMy04LjItMTEuNC0xNC41LTE0LjUtMTUuOC03LjgtMzUtMS4zLTQyLjkgMTQuNUwzNjkuOCAzMTYuMmwtMjUzLjkgMzYuOWMtNyAxLTEzLjQgNC4zLTE4LjMgOS4zYTMyLjA1IDMyLjA1IDAgMCAwIC42IDQ1LjNsMTgzLjcgMTc5LjEtNDMuNCAyNTIuOWEzMS45NSAzMS45NSAwIDAgMCA0Ni40IDMzLjdMNTEyIDc1NGwyMjcuMSAxMTkuNGM2LjIgMy4zIDEzLjQgNC40IDIwLjMgMy4yIDE3LjQtMyAyOS4xLTE5LjUgMjYuMS0zNi45bC00My40LTI1Mi45IDE4My43LTE3OS4xYzUtNC45IDguMy0xMS4zIDkuMy0xOC4zIDIuNy0xNy41LTkuNS0zMy43LTI3LTM2LjN6TTY2NC44IDU2MS42bDM2LjEgMjEwLjNMNTEyIDY3Mi43IDMyMy4xIDc3MmwzNi4xLTIxMC4zLTE1Mi44LTE0OUw0MTcuNiAzODIgNTEyIDE5MC43IDYwNi40IDM4MmwyMTEuMiAzMC43LTE1Mi44IDE0OC45eicpKTtcbmV4cG9ydHMuU3RlcEJhY2t3YXJkT3V0bGluZSA9IGdldEljb24oJ3N0ZXAtYmFja3dhcmQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNMzQ3LjYgNTI4Ljk1bDM4My4yIDMwMS4wMmMxNC4yNSAxMS4yIDM1LjIgMS4xIDM1LjItMTYuOTVWMjEwLjk3YzAtMTguMDUtMjAuOTUtMjguMTQtMzUuMi0xNi45NEwzNDcuNiA0OTUuMDVhMjEuNTMgMjEuNTMgMCAwIDAgMCAzMy45TTMzMCA4NjRoLTY0YTggOCAwIDAgMS04LThWMTY4YTggOCAwIDAgMSA4LThoNjRhOCA4IDAgMCAxIDggOHY2ODhhOCA4IDAgMCAxLTggOCcpKTtcbmV4cG9ydHMuU3RlcEZvcndhcmRPdXRsaW5lID0gZ2V0SWNvbignc3RlcC1mb3J3YXJkJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTY3Ni40IDUyOC45NUwyOTMuMiA4MjkuOTdjLTE0LjI1IDExLjItMzUuMiAxLjEtMzUuMi0xNi45NVYyMTAuOTdjMC0xOC4wNSAyMC45NS0yOC4xNCAzNS4yLTE2Ljk0bDM4My4yIDMwMS4wMmEyMS41MyAyMS41MyAwIDAgMSAwIDMzLjlNNjk0IDg2NGg2NGE4IDggMCAwIDAgOC04VjE2OGE4IDggMCAwIDAtOC04aC02NGE4IDggMCAwIDAtOCA4djY4OGE4IDggMCAwIDAgOCA4JykpO1xuZXhwb3J0cy5TdG9wT3V0bGluZSA9IGdldEljb24oJ3N0b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyIDAtODkgMzEuMy0xNzAuOCA4My41LTIzNC44bDUyMy4zIDUyMy4zQzY4Mi44IDg1Mi43IDYwMSA4ODQgNTEyIDg4NHptMjg4LjUtMTM3LjJMMjc3LjIgMjIzLjVDMzQxLjIgMTcxLjMgNDIzIDE0MCA1MTIgMTQwYzIwNS40IDAgMzcyIDE2Ni42IDM3MiAzNzIgMCA4OS0zMS4zIDE3MC44LTgzLjUgMjM0Ljh6JykpO1xuZXhwb3J0cy5Td2l0Y2hlck91dGxpbmUgPSBnZXRJY29uKCdzd2l0Y2hlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTIgMjQwSDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjA4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDYwOGMxNy43IDAgMzItMTQuMyAzMi0zMlYyNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MDBIMTg0VjMxMmg1Mjh2NTI4em0xNjgtNzI4SDI2NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NzZ2NTc2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMDAgNTUwaDI5NnY2NEgzMDB6JykpO1xuZXhwb3J0cy5UYWdPdXRsaW5lID0gZ2V0SWNvbigndGFnJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkzOCA0NTguOGwtMjkuNi0zMTIuNmMtMS41LTE2LjItMTQuNC0yOS0zMC42LTMwLjZMNTY1LjIgODZoLS40Yy0zLjIgMC01LjcgMS03LjYgMi45TDg4LjkgNTU3LjJhOS45NiA5Ljk2IDAgMCAwIDAgMTQuMWwzNjMuOCAzNjMuOGMxLjkgMS45IDQuNCAyLjkgNy4xIDIuOXM1LjItMSA3LjEtMi45bDQ2OC4zLTQ2OC4zYzItMi4xIDMtNSAyLjgtOHpNNDU5LjcgODM0LjdMMTg5LjMgNTY0LjMgNTg5IDE2NC42IDgzNiAxODhsMjMuNCAyNDctMzk5LjcgMzk5Ljd6TTY4MCAyNTZjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0wIDEyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6JykpO1xuZXhwb3J0cy5UYWJsZXRPdXRsaW5lID0gZ2V0SWNvbigndGFibGV0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjMyVjEzNmg1NjB2NzUyek00NzIgNzg0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLlNob3BPdXRsaW5lID0gZ2V0SWNvbignc2hvcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODIgMjcyLjFWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDE3NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTI4LjFjLTE2LjcgMS0zMCAxNC45LTMwIDMxLjl2MTMxLjdhMTc3IDE3NyAwIDAgMCAxNC40IDcwLjRjNC4zIDEwLjIgOS42IDE5LjggMTUuNiAyOC45djM0NWMwIDE3LjYgMTQuMyAzMiAzMiAzMmg2NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwIDAgMTUuNi0yOC45YzkuNS0yMi4zIDE0LjQtNDYgMTQuNC03MC40VjMwNGMwLTE3LTEzLjMtMzAuOS0zMC0zMS45ek0yMTQgMTg0aDU5NnY4OEgyMTR2LTg4em0zNjIgNjU2LjFINDQ4VjczNmgxMjh2MTA0LjF6bTIzNCAwSDY0MFY3MDRjMC0xNy43LTE0LjMtMzItMzItMzJINDE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMzYuMUgyMTRWNTk3LjljMi45IDEuNCA1LjkgMi44IDkgNCAyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMXM0OC00LjcgNzAuNC0xNC4xYzEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMCAwIDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6bTMwLTQwNC40YzAgNTkuOC00OSAxMDguMy0xMDkuMyAxMDguMy00MC44IDAtNzYuNC0yMi4xLTk1LjItNTQuOS0yLjktNS04LjEtOC4xLTEzLjktOC4xaC0uNmMtNS43IDAtMTEgMy4xLTEzLjkgOC4xQTEwOS4yNCAxMDkuMjQgMCAwIDEgNTEyIDU0NGMtNDAuNyAwLTc2LjItMjItOTUtNTQuNy0zLTUuMS04LjQtOC4zLTE0LjMtOC4zcy0xMS40IDMuMi0xNC4zIDguM2ExMDkuNjMgMTA5LjYzIDAgMCAxLTk1LjEgNTQuN0MyMzMgNTQ0IDE4NCA0OTUuNSAxODQgNDM1Ljd2LTkxLjJjMC0uMy4yLS41LjUtLjVoNjU1Yy4zIDAgLjUuMi41LjV2OTEuMnonKSk7XG5leHBvcnRzLlRhZ3NPdXRsaW5lID0gZ2V0SWNvbigndGFncycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODMuMiA3OTAuM0w4NjEuNCA0MTJjMS43LTEuNyAyLjUtNCAyLjMtNi4zbC0yNS41LTMwMS40Yy0uNy03LjgtNi44LTEzLjktMTQuNi0xNC42TDUyMi4yIDY0LjNjLTIuMy0uMi00LjcuNi02LjMgMi4zTDEzNy43IDQ0NC44YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzM0LjIgMzM0LjJjMy4xIDMuMiA4LjIgMy4yIDExLjMgMHptNjIuNi02NTEuN2wyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6bTYwLjE2IDE4Ni4yM2E0OCA0OCAwIDEgMCA2Ny44OC02Ny44OSA0OCA0OCAwIDEgMC02Ny44OCA2Ny44OXpNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zNjIgMzYxLjMtMjM3LjYtMjM3YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM5LjYgMzkuNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDI0My4yIDI0Mi44IDM5LjYgMzkuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQwNy4zLTQwNi42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6JykpO1xuZXhwb3J0cy5UYW9iYW9DaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigndGFvYmFvLWNpcmNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHpNMzE1LjcgMjkxLjVjMjcuMyAwIDQ5LjUgMjIuMSA0OS41IDQ5LjRzLTIyLjEgNDkuNC00OS41IDQ5LjRhNDkuNCA0OS40IDAgMSAxIDAtOTguOHpNMzY2LjkgNTc4Yy0xMy42IDQyLjMtMTAuMiAyNi43LTY0LjQgMTQ0LjVsLTc4LjUtNDlzODcuNy03OS44IDEwNS42LTExNi4yYzE5LjItMzguNC0yMS4xLTU4LjktMjEuMS01OC45bC02MC4yLTM3LjUgMzIuNy01MC4yYzQ1LjQgMzMuNyA0OC43IDM2LjYgNzkuMiA2Ny4yIDIzLjggMjMuOSAyMC43IDU2LjggNi43IDEwMC4xem00MjcuMiA1NWMtMTUuMyAxNDMuOC0yMDIuNCA5MC4zLTIwMi40IDkwLjNsMTAuMi00MS4xIDQzLjMgOS4zYzgwIDUgNzIuMy02NC45IDcyLjMtNjQuOVY0MjNjLjYtNzcuMy03Mi42LTg1LjQtMjA0LjItMzguM2wzMC42IDguM2MtMi41IDktMTIuNSAyMy4yLTI1LjIgMzguNmgxNzZ2MzUuNmgtOTkuMXY0NC41aDk4Ljd2MzUuN2gtOTguN1Y2MjJjMTQuOS00LjggMjguNi0xMS41IDQwLjUtMjAuNWwtOC43LTMyLjUgNDYuNS0xNC40IDM4LjggOTQuOS01Ny4zIDIzLjktMTAuMi0zNy44Yy0yNS42IDE5LjUtNzguOCA0OC0xNzEuOCA0NS40LTk5LjIgMi42LTczLjctMTEyLTczLjctMTEybDIuNS0xLjNINDcyYy0uNSAxNC43LTYuNiAzOC43IDEuNyA1MS44IDYuOCAxMC44IDI0LjIgMTIuNiAzNS4zIDEzLjEgMS4zLjEgMi42LjEgMy45LjF2LTg1LjNoLTEwMXYtMzUuN2gxMDF2LTQ0LjVINDg3Yy0yMi43IDI0LjEtNDMuNSA0NC4xLTQzLjUgNDQuMWwtMzAuNi0yNi43YzIxLjctMjIuOSA0My4zLTU5LjEgNTYuOC04My4yLTEwLjkgNC40LTIyIDkuMi0zMy42IDE0LjItMTEuMiAxNC4zLTI0LjIgMjktMzguNyA0My41LjUuOC01MC0yOC40LTUwLTI4LjQgNTIuMi00NC40IDgxLjQtMTM5LjkgODEuNC0xMzkuOWw3Mi41IDIwLjRzLTUuOSAxNC0xOC40IDM1LjZjMjkwLjMtODIuMyAzMDcuNCA1MC41IDMwNy40IDUwLjVzMTkuMSA5MS44IDMuOCAyMzUuN3onKSk7XG5leHBvcnRzLlRvb2xPdXRsaW5lID0gZ2V0SWNvbigndG9vbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzYuNiAyMzkuNWMtLjUtLjktMS4yLTEuOC0yLTIuNS01LTUtMTMuMS01LTE4LjEgMEw2ODQuMiA0MDkuM2wtNjcuOS02Ny45TDc4OC43IDE2OWMuOC0uOCAxLjQtMS42IDItMi41IDMuNi02LjEgMS42LTEzLjktNC41LTE3LjUtOTguMi01OC0yMjYuOC00NC43LTMxMS4zIDM5LjctNjcgNjctODkuMiAxNjItNjYuNSAyNDcuNGwtMjkzIDI5M2MtMyAzLTIuOCA3LjkuMyAxMWwxNjkuNyAxNjkuN2MzLjEgMy4xIDguMSAzLjMgMTEgLjNsMjkyLjktMjkyLjljODUuNSAyMi44IDE4MC41LjcgMjQ3LjYtNjYuNCA4NC40LTg0LjUgOTcuNy0yMTMuMSAzOS43LTMxMS4zek03ODYgNDk5LjhjLTU4LjEgNTguMS0xNDUuMyA2OS4zLTIxNC42IDMzLjZsLTguOCA4LjgtLjEtLjEtMjc0IDI3NC4xLTc5LjItNzkuMiAyMzAuMS0yMzAuMXMwIC4xLjEuMWw1Mi44LTUyLjhjLTM1LjctNjkuMy0yNC41LTE1Ni41IDMzLjYtMjE0LjZhMTg0LjIgMTg0LjIgMCAwIDEgMTQ0LTUzLjVMNTM3IDMxOC45YTMyLjA1IDMyLjA1IDAgMCAwIDAgNDUuM2wxMjQuNSAxMjQuNWEzMi4wNSAzMi4wNSAwIDAgMCA0NS4zIDBsMTMyLjgtMTMyLjhjMy43IDUxLjgtMTQuNCAxMDQuOC01My42IDE0My45eicpKTtcbmV4cG9ydHMuVGh1bmRlcmJvbHRPdXRsaW5lID0gZ2V0SWNvbigndGh1bmRlcmJvbHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQ4IDM1OS4zSDYyNy43TDgyNS44IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNmMtMi44IDAtNS41IDEuNS02LjkgNEwxNzAgNTQ3LjVjLTMuMSA1LjMuNyAxMiA2LjkgMTJoMTc0LjRsLTg5LjQgMzU3LjZjLTEuOSA3LjggNy41IDEzLjMgMTMuMyA3LjdMODUzLjUgMzczYzUuMi00LjkgMS43LTEzLjctNS41LTEzLjd6TTM3OC4yIDczMi41bDYwLjMtMjQxSDI4MS4xbDE4OS42LTMyNy40aDIyNC42TDQ4NyA0MjcuNGgyMTFMMzc4LjIgNzMyLjV6JykpO1xuZXhwb3J0cy5Ucm9waHlPdXRsaW5lID0gZ2V0SWNvbigndHJvcGh5Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg2OCAxNjBoLTkydi00MGMwLTQuNC0zLjYtOC04LThIMjU2Yy00LjQgMC04IDMuNi04IDh2NDBoLTkyYTQ0IDQ0IDAgMCAwLTQ0IDQ0djE0OGMwIDgxLjcgNjAgMTQ5LjYgMTM4LjIgMTYyQzI2NS43IDYzMC4yIDM1OSA3MjEuNyA0NzYgNzM0LjV2MTA1LjJIMjgwYy0xNy43IDAtMzIgMTQuMy0zMiAzMlY5MDRjMCA0LjQgMy42IDggOCA4aDUxMmM0LjQgMCA4LTMuNiA4LTh2LTMyLjNjMC0xNy43LTE0LjMtMzItMzItMzJINTQ4VjczNC41QzY2NSA3MjEuNyA3NTguMyA2MzAuMiA3NzMuOCA1MTQgODUyIDUwMS42IDkxMiA0MzMuNyA5MTIgMzUyVjIwNGE0NCA0NCAwIDAgMC00NC00NHpNMTg0IDM1MlYyMzJoNjR2MjA3LjZhOTEuOTkgOTEuOTkgMCAwIDEtNjQtODcuNnptNTIwIDEyOGMwIDQ5LjEtMTkuMSA5NS40LTUzLjkgMTMwLjEtMzQuOCAzNC44LTgxIDUzLjktMTMwLjEgNTMuOWgtMTZjLTQ5LjEgMC05NS40LTE5LjEtMTMwLjEtNTMuOS0zNC44LTM0LjgtNTMuOS04MS01My45LTEzMC4xVjE4NGgzODR2Mjk2em0xMzYtMTI4YzAgNDEtMjYuOSA3NS44LTY0IDg3LjZWMjMyaDY0djEyMHonKSk7XG5leHBvcnRzLlVubG9ja091dGxpbmUgPSBnZXRJY29uKCd1bmxvY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODMyIDQ2NEgzMzJWMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnY2OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di02OGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgMzc2SDIzMlY1MzZoNTYwdjMwNHpNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEgMC01NiAweicpKTtcbmV4cG9ydHMuVXBDaXJjbGVPdXRsaW5lID0gZ2V0SWNvbigndXAtY2lyY2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxOC41IDM2MC4zYTcuOTUgNy45NSAwIDAgMC0xMi45IDBsLTE3OCAyNDZjLTMuOCA1LjMgMCAxMi43IDYuNSAxMi43SDM4MWMxMC4yIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjAuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS42IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjUtMTIuN2wtMTc4LTI0NnonLCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonKSk7XG5leHBvcnRzLlVwU3F1YXJlT3V0bGluZSA9IGdldEljb24oJ3VwLXNxdWFyZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMzQgNjI0aDQ2LjljMTAuMiAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDY1LjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNiAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi41LTEyLjdsLTE3OC0yNDZhNy45NSA3Ljk1IDAgMCAwLTEyLjkgMGwtMTc4IDI0NkE3Ljk2IDcuOTYgMCAwIDAgMzM0IDYyNHonLCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5Vc2JPdXRsaW5lID0gZ2V0SWNvbigndXNiJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2MCA0MzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDI5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mjg4Yy02Ni4yIDAtMTIwIDUyLjEtMTIwIDExNnYzNTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFY1NDhjMC0yNC4zIDIxLjYtNDQgNDguMS00NGg0OTUuOGMyNi41IDAgNDguMSAxOS43IDQ4LjEgNDR2MzU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWNTQ4YzAtNjMuOS01My44LTExNi0xMjAtMTE2em0tNDI0IDBWMTg0aDM1MnYyNDhIMzM2em0xMjAtMTg0aC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTYwIDBoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuVmlkZW9DYW1lcmFPdXRsaW5lID0gZ2V0SWNvbigndmlkZW8tY2FtZXJhJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxMiAzMDIuM0w3ODQgMzc2VjIyNGMwLTM1LjMtMjguNy02NC02NC02NEgxMjhjLTM1LjMgMC02NCAyOC43LTY0IDY0djU3NmMwIDM1LjMgMjguNyA2NCA2NCA2NGg1OTJjMzUuMyAwIDY0LTI4LjcgNjQtNjRWNjQ4bDEyOCA3My43YzIxLjMgMTIuMyA0OC0zLjEgNDgtMjcuNlYzMzBjMC0yNC42LTI2LjctNDAtNDgtMjcuN3pNNzEyIDc5MkgxMzZWMjMyaDU3NnY1NjB6bTE3Ni0xNjdsLTEwNC01OS44VjQ1OC45TDg4OCAzOTl2MjI2ek0yMDggMzYwaDExMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgyMDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5XYWxsZXRPdXRsaW5lID0gZ2V0SWNvbignd2FsbGV0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDQ2NEg1MjhWNDQ4aDMxMnYxMjh6bTAgMjY0SDE4NFYxODRoNjU2djIwMEg0OTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzNDR2MjAwek01ODAgNTEyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonKSk7XG5leHBvcnRzLldhcm5pbmdPdXRsaW5lID0gZ2V0SWNvbignd2FybmluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgNzIwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMTYtMzA0djE4NGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQxNmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh6bTQ3NS43IDQ0MGwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHptLTc4My41LTI3LjlMNTEyIDIzOS45bDMzOS44IDU4OC4ySDE3Mi4yeicpKTtcbmV4cG9ydHMuV2VjaGF0T3V0bGluZSA9IGdldEljb24oJ3dlY2hhdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002OTAuMSAzNzcuNGM1LjkgMCAxMS44LjIgMTcuNi41LTI0LjQtMTI4LjctMTU4LjMtMjI3LjEtMzE5LjktMjI3LjFDMjA5IDE1MC44IDY0IDI3MS40IDY0IDQyMC4yYzAgODEuMSA0My42IDE1NC4yIDExMS45IDIwMy42YTIxLjUgMjEuNSAwIDAgMSA5LjEgMTcuNmMwIDIuNC0uNSA0LjYtMS4xIDYuOS01LjUgMjAuMy0xNC4yIDUyLjgtMTQuNiA1NC4zLS43IDIuNi0xLjcgNS4yLTEuNyA3LjkgMCA1LjkgNC44IDEwLjggMTAuOCAxMC44IDIuMyAwIDQuMi0uOSA2LjItMmw3MC45LTQwLjljNS4zLTMuMSAxMS01IDE3LjItNSAzLjIgMCA2LjQuNSA5LjUgMS40IDMzLjEgOS41IDY4LjggMTQuOCAxMDUuNyAxNC44IDYgMCAxMS45LS4xIDE3LjgtLjQtNy4xLTIxLTEwLjktNDMuMS0xMC45LTY2IDAtMTM1LjggMTMyLjItMjQ1LjggMjk1LjMtMjQ1Ljh6bS0xOTQuMy04Ni41YzIzLjggMCA0My4yIDE5LjMgNDMuMiA0My4xcy0xOS4zIDQzLjEtNDMuMiA0My4xYy0yMy44IDAtNDMuMi0xOS4zLTQzLjItNDMuMXMxOS40LTQzLjEgNDMuMi00My4xem0tMjE1LjkgODYuMmMtMjMuOCAwLTQzLjItMTkuMy00My4yLTQzLjFzMTkuMy00My4xIDQzLjItNDMuMSA0My4yIDE5LjMgNDMuMiA0My4xLTE5LjQgNDMuMS00My4yIDQzLjF6bTU4Ni44IDQxNS42YzU2LjktNDEuMiA5My4yLTEwMiA5My4yLTE2OS43IDAtMTI0LTEyMC44LTIyNC41LTI2OS45LTIyNC41LTE0OSAwLTI2OS45IDEwMC41LTI2OS45IDIyNC41UzU0MC45IDg0Ny41IDY5MCA4NDcuNWMzMC44IDAgNjAuNi00LjQgODguMS0xMi4zIDIuNi0uOCA1LjItMS4yIDcuOS0xLjIgNS4yIDAgOS45IDEuNiAxNC4zIDQuMWw1OS4xIDM0YzEuNyAxIDMuMyAxLjcgNS4yIDEuN2E5IDkgMCAwIDAgNi40LTIuNiA5IDkgMCAwIDAgMi42LTYuNGMwLTIuMi0uOS00LjQtMS40LTYuNi0uMy0xLjItNy42LTI4LjMtMTIuMi00NS4zLS41LTEuOS0uOS0zLjgtLjktNS43LjEtNS45IDMuMS0xMS4yIDcuNi0xNC41ek02MDAuMiA1ODcuMmMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YzAgMTkuOC0xNi4yIDM1LjktMzYgMzUuOXptMTc5LjkgMGMtMTkuOSAwLTM2LTE2LjEtMzYtMzUuOSAwLTE5LjggMTYuMS0zNS45IDM2LTM1LjlzMzYgMTYuMSAzNiAzNS45YTM2LjA4IDM2LjA4IDAgMCAxLTM2IDM1Ljl6JykpO1xuZXhwb3J0cy5XZWlib0NpcmNsZU91dGxpbmUgPSBnZXRJY29uKCd3ZWliby1jaXJjbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bS00NC40IDY3MkMzNTMuMSA3MzYgMjM2IDY4MC40IDIzNiA1ODguOWMwLTQ3LjggMzAuMi0xMDMuMSA4Mi4zLTE1NS4zIDY5LjUtNjkuNiAxNTAuNi0xMDEuNCAxODEuMS03MC44IDEzLjUgMTMuNSAxNC44IDM2LjggNi4xIDY0LjYtNC41IDE0IDEzLjEgNi4zIDEzLjEgNi4zIDU2LjItMjMuNiAxMDUuMi0yNSAxMjMuMS43IDkuNiAxMy43IDguNiAzMi44LS4yIDU1LjEtNC4xIDEwLjIgMS4zIDExLjggOSAxNC4xIDMxLjcgOS44IDY2LjkgMzMuNiA2Ni45IDc1LjUuMiA2OS41LTk5LjcgMTU2LjktMjQ5LjggMTU2Ljl6bTIwNy4zLTI5MC44YTM0LjkgMzQuOSAwIDAgMC03LjItMzQuMSAzNC42OCAzNC42OCAwIDAgMC0zMy4xLTEwLjcgMTguMjQgMTguMjQgMCAwIDEtNy42LTM1LjdjMjQuMS01LjEgNTAuMSAyLjMgNjcuNyAyMS45IDE3LjcgMTkuNiAyMi40IDQ2LjMgMTQuOSA2OS44YTE4LjEzIDE4LjEzIDAgMCAxLTIyLjkgMTEuNyAxOC4xOCAxOC4xOCAwIDAgMS0xMS44LTIyLjl6bTEwNiAzNC4zczAgLjEgMCAwYTIxLjEgMjEuMSAwIDAgMS0yNi42IDEzLjcgMjEuMTkgMjEuMTkgMCAwIDEtMTMuNi0yNi43YzExLTM0LjIgNC03My4yLTIxLjctMTAxLjhhMTA0LjA0IDEwNC4wNCAwIDAgMC05OC45LTMyLjEgMjEuMTQgMjEuMTQgMCAwIDEtMjUuMS0xNi4zIDIxLjA3IDIxLjA3IDAgMCAxIDE2LjItMjUuMWM0OS40LTEwLjUgMTAyLjggNC44IDEzOS4xIDQ1LjEgMzYuMyA0MC4yIDQ2LjEgOTUuMSAzMC42IDE0My4yem0tMzM0LjUgNi4xYy05MS40IDktMTYwLjcgNjUuMS0xNTQuNyAxMjUuMiA1LjkgNjAuMSA4NC44IDEwMS41IDE3Ni4yIDkyLjUgOTEuNC05LjEgMTYwLjctNjUuMSAxNTQuNy0xMjUuMy01LjktNjAuMS04NC44LTEwMS41LTE3Ni4yLTkyLjR6bTgwLjIgMTQxLjdjLTE4LjcgNDIuMy03Mi4zIDY0LjgtMTE3LjggNTAuMS00My45LTE0LjItNjIuNS01Ny43LTQzLjMtOTYuOCAxOC45LTM4LjQgNjgtNjAuMSAxMTEuNS00OC44IDQ1IDExLjcgNjggNTQuMiA0OS42IDk1LjV6bS05My0zMi4yYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3ptMzQuOS0xNC41Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6JykpO1xuZXhwb3J0cy5XaW5kb3dzT3V0bGluZSA9IGdldEljb24oJ3dpbmRvd3MnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTIwLjEgNzcwLjZMNDQzIDgyMy4yVjU0My44SDEyMC4xdjIyNi44em02My40LTE2My41aDE5Ni4ydjE0MS42bC0xOTYuMi0zMS45VjYwNy4xem0zNDAuMyAyMjYuNWwzODIgNjIuMnYtMzUyaC0zODJ2Mjg5Ljh6bTYzLjQtMjI2LjVoMjU1LjN2MjE0LjRsLTI1NS4zLTQxLjZWNjA3LjF6bS02My40LTQxNS43djI4OC44aDM4MlYxMjguMWwtMzgyIDYzLjN6bTMxOC43IDIyNS41SDU4Ny4zVjI0NWwyNTUuMy00Mi4zdjIxNC4yem0tNzIyLjQgNjMuM0g0NDNWMjAxLjlsLTMyMi45IDUzLjV2MjI0Ljh6TTE4My41IDMwOWwxOTYuMi0zMi41djE0MC40SDE4My41VjMwOXonKSk7XG5leHBvcnRzLllhaG9vT3V0bGluZSA9IGdldEljb24oJ3lhaG9vJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1OS45IDY4MS40aC0xNC4xYy0yNy4xIDAtNDkuMiAyMi4yLTQ5LjIgNDkuM3YxNC4xYzAgMjcuMSAyMi4yIDQ5LjMgNDkuMiA0OS4zaDE0LjFjMjcuMSAwIDQ5LjItMjIuMiA0OS4yLTQ5LjN2LTE0LjFjMC0yNy4xLTIyLjItNDkuMy00OS4yLTQ5LjN6TTQwMi42IDIzMUMyMTYuMiAyMzEgNjUgMzU3IDY1IDUxMi41UzIxNi4yIDc5NCA0MDIuNiA3OTRzMzM3LjYtMTI2IDMzNy42LTI4MS41UzU4OS4xIDIzMSA0MDIuNiAyMzF6bTAgNTA3QzI0NS4xIDczOCAxMjEgNjM0LjYgMTIxIDUxMi41YzAtNjIuMyAzMi4zLTExOS43IDg0LjktMTYxdjQ4LjRoMzdsMTU5LjggMTU5Ljl2NjUuM2gtODQuNHY1Ni4zaDIyNS4xdi01Ni4zSDQ1OXYtNjUuM2wxMDMuNS0xMDMuNmg2NS4zdi01Ni4zSDQ1OXY2NS4zbC0yOC4xIDI4LjEtOTMuNC05My41aDM3di01Ni4zSDIxNi40YzQ5LjQtMzUgMTE0LjMtNTYuNiAxODYuMi01Ni42IDE1Ny42IDAgMjgxLjYgMTAzLjQgMjgxLjYgMjI1LjVTNTYwLjIgNzM4IDQwMi42IDczOHptNTM0LjctNTA3SDgyNC43Yy0xNS41IDAtMjcuNyAxMi42LTI3LjEgMjguMWwxMy4xIDM2Nmg4NC40bDY1LjQtMzY2LjRjMi43LTE1LjItNy44LTI3LjctMjMuMi0yNy43eicpKTtcbmV4cG9ydHMuV2VpYm9TcXVhcmVPdXRsaW5lID0gZ2V0SWNvbignd2VpYm8tc3F1YXJlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQzMy42IDU5NS4xYy0xNC4yLTUuOS0zMi40LjItNDEuMiAxMy45LTguOCAxMy44LTQuNyAzMC4yIDkuMyAzNi42IDE0LjMgNi41IDMzLjIuMyA0Mi0xMy44IDguOC0xNC4zIDQuMi0zMC42LTEwLjEtMzYuN3pNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek00NjcuNiA3MzZDMzUzLjEgNzM2IDIzNiA2ODAuNCAyMzYgNTg4LjljMC00Ny44IDMwLjItMTAzLjEgODIuMy0xNTUuMyA2OS41LTY5LjYgMTUwLjYtMTAxLjQgMTgxLjEtNzAuOCAxMy41IDEzLjUgMTQuOCAzNi44IDYuMSA2NC42LTQuNSAxNCAxMy4xIDYuMyAxMy4xIDYuMyA1Ni4yLTIzLjYgMTA1LjItMjUgMTIzLjEuNyA5LjYgMTMuNyA4LjYgMzIuOC0uMiA1NS4xLTQuMSAxMC4yIDEuMyAxMS44IDkgMTQuMSAzMS43IDkuOCA2Ni45IDMzLjYgNjYuOSA3NS41LjIgNjkuNS05OS43IDE1Ni45LTI0OS44IDE1Ni45em0yMDcuMy0yOTAuOGEzNC45IDM0LjkgMCAwIDAtNy4yLTM0LjEgMzQuNjggMzQuNjggMCAwIDAtMzMuMS0xMC43IDE4LjI0IDE4LjI0IDAgMCAxLTcuNi0zNS43YzI0LjEtNS4xIDUwLjEgMi4zIDY3LjcgMjEuOSAxNy43IDE5LjYgMjIuNCA0Ni4zIDE0LjkgNjkuOGExOC4xMyAxOC4xMyAwIDAgMS0yMi45IDExLjcgMTguMTggMTguMTggMCAwIDEtMTEuOC0yMi45em0xMDYgMzQuM3MwIC4xIDAgMGEyMS4xIDIxLjEgMCAwIDEtMjYuNiAxMy43IDIxLjE5IDIxLjE5IDAgMCAxLTEzLjYtMjYuN2MxMS0zNC4yIDQtNzMuMi0yMS43LTEwMS44YTEwNC4wNCAxMDQuMDQgMCAwIDAtOTguOS0zMi4xIDIxLjE0IDIxLjE0IDAgMCAxLTI1LjEtMTYuMyAyMS4wNyAyMS4wNyAwIDAgMSAxNi4yLTI1LjFjNDkuNC0xMC41IDEwMi44IDQuOCAxMzkuMSA0NS4xIDM2LjMgNDAuMiA0Ni4xIDk1LjEgMzAuNiAxNDMuMnptLTMzNC41IDYuMWMtOTEuNCA5LTE2MC43IDY1LjEtMTU0LjcgMTI1LjIgNS45IDYwLjEgODQuOCAxMDEuNSAxNzYuMiA5Mi41IDkxLjQtOS4xIDE2MC43LTY1LjEgMTU0LjctMTI1LjMtNS45LTYwLjEtODQuOC0xMDEuNS0xNzYuMi05Mi40em04MC4yIDE0MS43Yy0xOC43IDQyLjMtNzIuMyA2NC44LTExNy44IDUwLjEtNDMuOS0xNC4yLTYyLjUtNTcuNy00My4zLTk2LjggMTguOS0zOC40IDY4LTYwLjEgMTExLjUtNDguOCA0NSAxMS43IDY4IDU0LjIgNDkuNiA5NS41em0tNTguMS00Ni43Yy01LjQtMi4yLTEyLjIuNS0xNS40IDUuOC0zLjEgNS40LTEuNCAxMS41IDQuMSAxMy44IDUuNSAyLjMgMTIuNi0uMyAxNS44LTUuOCAzLTUuNiAxLTExLjgtNC41LTEzLjh6JykpO1xuZXhwb3J0cy5ZdXF1ZU91dGxpbmUgPSBnZXRJY29uKCd5dXF1ZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNiAzNzAuNmMtOS45LTM5LjQgOS45LTEwMi4yIDczLjQtMTI0LjRsLTY3LjktMy42cy0yNS43LTkwLTE0My42LTk4Yy0xMTcuOC04LjEtMTk0LjktMy0xOTUtMyAuMSAwIDg3LjQgNTUuNiA1Mi40IDE1NC43LTI1LjYgNTIuNS02NS44IDk1LjYtMTA4LjggMTQ0LjctMS4zIDEuMy0yLjUgMi42LTMuNSAzLjdDMzE5LjQgNjA1IDk2IDg2MCA5NiA4NjBjMjQ1LjkgNjQuNCA0MTAuNy02LjMgNTA4LjItOTEuMSAyMC41LS4yIDM1LjktLjMgNDYuMy0uMyAxMzUuOCAwIDI1MC42LTExNy42IDI0NS45LTI0OC40LTMuMi04OS45LTMxLjktMTEwLjItNDEuOC0xNDkuNnptLTIwNC4xIDMzNGMtMTAuNiAwLTI2LjIuMS00Ni44LjNsLTIzLjYuMi0xNy44IDE1LjVjLTQ3LjEgNDEtMTA0LjQgNzEuNS0xNzEuNCA4Ny42LTUyLjUgMTIuNi0xMTAgMTYuMi0xNzIuNyA5LjYgMTgtMjAuNSAzNi41LTQxLjYgNTUuNC02My4xIDkyLTEwNC42IDE3My44LTE5Ny41IDIzNi45LTI2OC41bDEuNC0xLjQgMS4zLTEuNWM0LjEtNC42IDIwLjYtMjMuMyAyNC43LTI4LjEgOS43LTExLjEgMTcuMy0xOS45IDI0LjUtMjguNiAzMC43LTM2LjcgNTIuMi02Ny44IDY5LTEwMi4ybDEuNi0zLjMgMS4yLTMuNGMxMy43LTM4LjggMTUuNC03Ni45IDYuMi0xMTIuOCAyMi41LjcgNDYuNSAxLjkgNzEuNyAzLjYgMzMuMyAyLjMgNTUuNSAxMi45IDcxLjEgMjkuMiA1LjggNiAxMC4yIDEyLjUgMTMuNCAxOC43IDEgMiAxLjcgMy42IDIuMyA1bDUgMTcuN2MtMTUuNyAzNC41LTE5LjkgNzMuMy0xMS40IDEwNy4yIDMgMTEuOCA2LjkgMjIuNCAxMi4zIDM0LjQgMi4xIDQuNyA5LjUgMjAuMSAxMSAyMy4zIDEwLjMgMjIuNyAxNS40IDQzIDE2LjcgNzguNyAzLjMgOTQuNi04Mi43IDE4MS45LTE4MiAxODEuOXonKSk7XG5leHBvcnRzLllvdXR1YmVPdXRsaW5lID0gZ2V0SWNvbigneW91dHViZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NjAgNTA5LjJjMC0yLjIgMC00LjctLjEtNy42LS4xLTguMS0uMy0xNy4yLS41LTI2LjktLjgtMjcuOS0yLjItNTUuNy00LjQtODEuOS0zLTM2LjEtNy40LTY2LjItMTMuNC04OC44YTEzOS41MiAxMzkuNTIgMCAwIDAtOTguMy05OC41Yy0yOC4zLTcuNi04My43LTEyLjMtMTYxLjctMTUuMi0zNy4xLTEuNC03Ni44LTIuMy0xMTYuNS0yLjgtMTMuOS0uMi0yNi44LS4zLTM4LjQtLjRoLTI5LjRjLTExLjYuMS0yNC41LjItMzguNC40LTM5LjcuNS03OS40IDEuNC0xMTYuNSAyLjgtNzggMy0xMzMuNSA3LjctMTYxLjcgMTUuMkExMzkuMzUgMTM5LjM1IDAgMCAwIDgyLjQgMzA0Qzc2LjMgMzI2LjYgNzIgMzU2LjcgNjkgMzkyLjhjLTIuMiAyNi4yLTMuNiA1NC00LjQgODEuOS0uMyA5LjctLjQgMTguOC0uNSAyNi45IDAgMi45LS4xIDUuNC0uMSA3LjZ2NS42YzAgMi4yIDAgNC43LjEgNy42LjEgOC4xLjMgMTcuMi41IDI2LjkuOCAyNy45IDIuMiA1NS43IDQuNCA4MS45IDMgMzYuMSA3LjQgNjYuMiAxMy40IDg4LjggMTIuOCA0Ny45IDUwLjQgODUuNyA5OC4zIDk4LjUgMjguMiA3LjYgODMuNyAxMi4zIDE2MS43IDE1LjIgMzcuMSAxLjQgNzYuOCAyLjMgMTE2LjUgMi44IDEzLjkuMiAyNi44LjMgMzguNC40aDI5LjRjMTEuNi0uMSAyNC41LS4yIDM4LjQtLjQgMzkuNy0uNSA3OS40LTEuNCAxMTYuNS0yLjggNzgtMyAxMzMuNS03LjcgMTYxLjctMTUuMiA0Ny45LTEyLjggODUuNS01MC41IDk4LjMtOTguNSA2LjEtMjIuNiAxMC40LTUyLjcgMTMuNC04OC44IDIuMi0yNi4yIDMuNi01NCA0LjQtODEuOS4zLTkuNy40LTE4LjguNS0yNi45IDAtMi45LjEtNS40LjEtNy42di01LjZ6bS03MiA1LjJjMCAyLjEgMCA0LjQtLjEgNy4xLS4xIDcuOC0uMyAxNi40LS41IDI1LjctLjcgMjYuNi0yLjEgNTMuMi00LjIgNzcuOS0yLjcgMzIuMi02LjUgNTguNi0xMS4yIDc2LjMtNi4yIDIzLjEtMjQuNCA0MS40LTQ3LjQgNDcuNS0yMSA1LjYtNzMuOSAxMC4xLTE0NS44IDEyLjgtMzYuNCAxLjQtNzUuNiAyLjMtMTE0LjcgMi44LTEzLjcuMi0yNi40LjMtMzcuOC4zaC0yOC42bC0zNy44LS4zYy0zOS4xLS41LTc4LjItMS40LTExNC43LTIuOC03MS45LTIuOC0xMjQuOS03LjItMTQ1LjgtMTIuOC0yMy02LjItNDEuMi0yNC40LTQ3LjQtNDcuNS00LjctMTcuNy04LjUtNDQuMS0xMS4yLTc2LjMtMi4xLTI0LjctMy40LTUxLjMtNC4yLTc3LjktLjMtOS4zLS40LTE4LS41LTI1LjcgMC0yLjctLjEtNS4xLS4xLTcuMXYtNC44YzAtMi4xIDAtNC40LjEtNy4xLjEtNy44LjMtMTYuNC41LTI1LjcuNy0yNi42IDIuMS01My4yIDQuMi03Ny45IDIuNy0zMi4yIDYuNS01OC42IDExLjItNzYuMyA2LjItMjMuMSAyNC40LTQxLjQgNDcuNC00Ny41IDIxLTUuNiA3My45LTEwLjEgMTQ1LjgtMTIuOCAzNi40LTEuNCA3NS42LTIuMyAxMTQuNy0yLjggMTMuNy0uMiAyNi40LS4zIDM3LjgtLjNoMjguNmwzNy44LjNjMzkuMS41IDc4LjIgMS40IDExNC43IDIuOCA3MS45IDIuOCAxMjQuOSA3LjIgMTQ1LjggMTIuOCAyMyA2LjIgNDEuMiAyNC40IDQ3LjQgNDcuNSA0LjcgMTcuNyA4LjUgNDQuMSAxMS4yIDc2LjMgMi4xIDI0LjcgMy40IDUxLjMgNC4yIDc3LjkuMyA5LjMuNCAxOCAuNSAyNS43IDAgMi43LjEgNS4xLjEgNy4xdjQuOHpNNDIzIDY0NmwyMzItMTM1LTIzMi0xMzN6JykpO1xuZXhwb3J0cy5BbGliYWJhT3V0bGluZSA9IGdldEljb24oJ2FsaWJhYmEnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjAyLjkgNjY5LjhjLTM3LjIgMi42LTMzLjYtMTcuMy0xMS41LTQ2LjIgNTAuNC02Ny4yIDE0My43LTE1OC41IDE0Ny45LTIyNS4yIDUuOC04Ni42LTgxLjMtMTEzLjQtMTcxLTExMy40LTYyLjQgMS42LTEyNyAxOC45LTE3MSAzNC42LTE1MS42IDUzLjUtMjQ2LjYgMTM3LjUtMzA2LjkgMjMyLTYyLjQgOTMuNC00MyAxODMuMiA5MS44IDE4NS44IDEwMS44LTQuMiAxNzAuNS0zMi41IDIzOS43LTY4LjIuNSAwLTE5Mi41IDU1LjEtMjYzLjkgMTQuNy03LjktNC4yLTE1LjctMTAtMTcuOC0yNi4yIDAtMzMuMSA1NC42LTY3LjcgODYuNi03OC43di01Ni43YzY0LjUgMjIuNiAxNDAuNiAxNi4zIDIwNS43LTMyIDIuMSA1LjggNC4yIDEzLjEgMy43IDIxaDExYzIuNi0yMi42LTEyLjYtNDQuNi0zNy44LTQ2LjIgNy4zIDUuOCAxMi42IDEwLjUgMTUuMiAxNC43bC0xIDEtLjUuNWMtODMuOSA1OC44LTE2NS4zIDMxLjUtMTczLjEgMjkuOWw0Ni43LTQ1LjctMTMuMS0zMy4xYzkyLjktMzIuNSAxNjkuNS01Ni4yIDI5Ni45LTc4LjdsLTI4LjUtMjMgMTQuNy04LjljNzUuNSAyMSAxMjYuNCAzNi43IDEyMy44IDc2LjYtMSA2LjgtMy43IDE0LjctNy45IDIzLjFDNjYwLjEgNDY2LjEgNTk0IDUzOCA1NjcuMiA1NjljLTE3LjMgMjAuNS0zNC42IDM5LjQtNDYuNyA1OC4zLTEzLjYgMTkuNC0yMC41IDM3LjMtMjEgNTMuNSAyLjYgMTMxLjggMzkxLjQtNjEuOSA0NjgtMTEyLjktMTExLjcgNDcuOC0yMzIuOSA5My41LTM2NC42IDEwMS45em04NS0zMDIuOWMyLjggNS4yIDQuMSAxMS42IDQuMSAxOS4xLS4xLTYuOC0xLjQtMTMuMy00LjEtMTkuMXonKSk7XG5leHBvcnRzLkFsaWduQ2VudGVyT3V0bGluZSA9IGdldEljb24oJ2FsaWduLWNlbnRlcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00yNjQgMjMwaDQ5NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTQ5NiA0MjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMjY0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDQ5NnptMTQ0IDE0MEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTQyNEgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQWxpZ25MZWZ0T3V0bGluZSA9IGdldEljb24oJ2FsaWduLWxlZnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTIwIDIzMGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wIDQyNGg0OTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em03ODQgMTQwSDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNDI0SDEyMGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5BbGlnblJpZ2h0T3V0bGluZSA9IGdldEljb24oJ2FsaWduLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCAxNThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDQ5NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0MjRINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDQ5NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyMTJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC00MjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkFsaXBheU91dGxpbmUgPSBnZXRJY29uKCdhbGlwYXknLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzg5IDYxMC4zYy0zOC43LTEyLjktOTAuNy0zMi43LTE0OC41LTUzLjYgMzQuOC02MC4zIDYyLjUtMTI5IDgwLjctMjAzLjZINTMwLjV2LTY4LjZoMjMzLjZ2LTM4LjNINTMwLjVWMTMyaC05NS40Yy0xNi43IDAtMTYuNyAxNi41LTE2LjcgMTYuNXY5Ny44SDE4Mi4ydjM4LjNoMjM2LjN2NjguNkgyMjMuNHYzOC4zaDM3OC40YTY2Ny4xOCA2NjcuMTggMCAwIDEtNTQuNSAxMzIuOWMtMTIyLjgtNDAuNC0yNTMuOC03My4yLTMzNi4xLTUzLTUyLjYgMTMtODYuNSAzNi4xLTEwNi41IDYwLjMtOTEuNCAxMTEtMjUuOSAyNzkuNiAxNjcuMiAyNzkuNkMzODYgODExLjIgNDk2IDc0Ny42IDU4MS4yIDY0MyA3MDguMyA3MDQgOTYwIDgwOC43IDk2MCA4MDguN1Y2NTkuNHMtMzEuNi0yLjUtMTcxLTQ5LjF6TTI1My45IDc0Ni42Yy0xNTAuNSAwLTE5NS0xMTguMy0xMjAuNi0xODMuMSAyNC44LTIxLjkgNzAuMi0zMi42IDk0LjQtMzUgODkuNC04LjggMTcyLjIgMjUuMiAyNjkuOSA3Mi44LTY4LjggODkuNS0xNTYuMyAxNDUuMy0yNDMuNyAxNDUuM3onKSk7XG5leHBvcnRzLkFsaXl1bk91dGxpbmUgPSBnZXRJY29uKCdhbGl5dW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU5LjIgMzgzLjljLS4zLTgyLjEtNjYuOS0xNDguNi0xNDkuMS0xNDguNkg1NzUuOWwyMS42IDg1LjIgMjAxIDQzLjdhNDIuNTggNDIuNTggMCAwIDEgMzIuOSAzOS43Yy4xLjUuMSAyMTYuMSAwIDIxNi42YTQyLjU4IDQyLjU4IDAgMCAxLTMyLjkgMzkuN2wtMjAxIDQzLjctMjEuNiA4NS4zaDIzNC4yYzgyLjEgMCAxNDguOC02Ni41IDE0OS4xLTE0OC42VjM4My45ek0yMjUuNSA2NjAuNGE0Mi41OCA0Mi41OCAwIDAgMS0zMi45LTM5LjdjLS4xLS42LS4xLTIxNi4xIDAtMjE2LjYuOC0xOS40IDE0LjYtMzUuNSAzMi45LTM5LjdsMjAxLTQzLjcgMjEuNi04NS4ySDIxMy44Yy04Mi4xIDAtMTQ4LjggNjYuNC0xNDkuMSAxNDguNlY2NDFjLjMgODIuMSA2NyAxNDguNiAxNDkuMSAxNDguNkg0NDhsLTIxLjYtODUuMy0yMDAuOS00My45em0yMDAuOS0xNTguOGgxNzF2MjEuM2gtMTcxeicpKTtcbmV4cG9ydHMuQW1hem9uT3V0bGluZSA9IGdldEljb24oJ2FtYXpvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MjUgNzY4LjljLTMuMy0uOS03LjMtLjQtMTEuOSAxLjMtNjEuNiAyOC4yLTEyMS41IDQ4LjMtMTc5LjcgNjAuMkM1MDcuNyA4NTYgMzg1LjIgODQyLjYgMjY2IDc5MC4zYy0zMy4xLTE0LjYtNzkuMS0zOS4yLTEzOC03NGE5LjM2IDkuMzYgMCAwIDAtNS4zLTJjLTItLjEtMy43LjEtNS4zLjktMS42LjgtMi44IDEuOC0zLjcgMy4xLS45IDEuMy0xLjEgMy4xLS40IDUuNC42IDIuMiAyLjEgNC43IDQuNiA3LjQgMTAuNCAxMi4yIDIzLjMgMjUuMiAzOC42IDM5czM1LjYgMjkuNCA2MC45IDQ2LjhjMjUuMyAxNy40IDUxLjggMzIuOSA3OS4zIDQ2LjQgMjcuNiAxMy41IDU5LjYgMjQuOSA5Ni4xIDM0LjFzNzMgMTMuOCAxMDkuNCAxMy44YzM2LjIgMCA3MS40LTMuNyAxMDUuNS0xMC45IDM0LjItNy4zIDYzLTE1LjkgODYuNS0yNS45IDIzLjQtOS45IDQ1LTIxIDY0LjgtMzMgMTkuOC0xMiAzNC40LTIyLjIgNDMuOS0zMC4zIDkuNS04LjIgMTYuMy0xNC42IDIwLjItMTkuNCA0LjYtNS43IDYuOS0xMC42IDYuOS0xNC45LjEtNC41LTEuNy03LjEtNS03Ljl6TTUyNy40IDM0OC4xYy0xNS4yIDEuMy0zMy41IDQuMS01NSA4LjMtMjEuNSA0LjEtNDEuNCA5LjMtNTkuOCAxNS40cy0zNy4yIDE0LjYtNTYuMyAyNS40Yy0xOS4yIDEwLjgtMzUuNSAyMy4yLTQ5IDM3cy0yNC41IDMxLjEtMzMuMSA1MmMtOC42IDIwLjgtMTIuOSA0My43LTEyLjkgNjguNyAwIDI3LjEgNC43IDUxLjIgMTQuMyA3Mi41IDkuNSAyMS4zIDIyLjIgMzggMzguMiA1MC40IDE1LjkgMTIuNCAzNCAyMi4xIDU0IDI5LjIgMjAgNy4xIDQxLjIgMTAuMyA2My4yIDkuNCAyMi0uOSA0My41LTQuMyA2NC40LTEwLjMgMjAuOC01LjkgNDAuNC0xNS40IDU4LjYtMjguMyAxOC4yLTEyLjkgMzMuMS0yOC4yIDQ0LjgtNDUuNyA0LjMgNi42IDguMSAxMS41IDExLjUgMTQuN2w4LjcgOC45YzUuOCA1LjkgMTQuNyAxNC42IDI2LjcgMjYuMSAxMS45IDExLjUgMjQuMSAyMi43IDM2LjMgMzMuN2wxMDQuNC05OS45LTYtNC45Yy00LjMtMy4zLTkuNC04LTE1LjItMTQuMy01LjgtNi4yLTExLjYtMTMuMS0xNy4yLTIwLjUtNS43LTcuNC0xMC42LTE2LjEtMTQuNy0yNS45LTQuMS05LjgtNi4yLTE5LjMtNi4yLTI4LjVWMjU4LjdjMC0xMC4xLTEuOS0yMS01LjctMzIuOC0zLjktMTEuNy0xMC43LTI0LjUtMjAuNy0zOC4zLTEwLTEzLjgtMjIuNC0yNi4yLTM3LjItMzctMTQuOS0xMC44LTM0LjctMjAtNTkuNi0yNy40LTI0LjgtNy40LTUyLjYtMTEuMS04My4yLTExLjEtMzEuMyAwLTYwLjQgMy43LTg3LjYgMTAuOS0yNy4xIDcuMy01MC4zIDE3LTY5LjcgMjkuMi0xOS4zIDEyLjItMzUuOSAyNi4zLTQ5LjcgNDIuNC0xMy44IDE2LjEtMjQuMSAzMi45LTMwLjggNTAuNC02LjcgMTcuNS0xMC4xIDM1LjItMTAuMSA1My4xTDQwOCAzMTBjNS41LTE2LjQgMTIuOS0zMC42IDIyLTQyLjggOS4yLTEyLjIgMTcuOS0yMSAyNS44LTI2LjUgOC01LjUgMTYuNi05LjkgMjUuNy0xMy4yIDkuMi0zLjMgMTUuNC01IDE4LjYtNS40IDMuMi0uMyA1LjctLjQgNy42LS40IDI2LjcgMCA0NS4yIDcuOSA1NS42IDIzLjYgNi41IDkuNSA5LjcgMjMuOSA5LjcgNDMuM3Y1Ni42Yy0xNS4yLjYtMzAuNCAxLjYtNDUuNiAyLjl6TTU3My4xIDUwMGMwIDE2LjYtMi4yIDMxLjctNi41IDQ1LTkuMiAyOS4xLTI2LjcgNDcuNC01Mi40IDU0LjgtMjIuNCA2LjYtNDMuNyAzLjMtNjMuOS05LjgtMjEuNS0xNC0zMi4yLTMzLjgtMzIuMi01OS4zIDAtMTkuOSA1LTM2LjkgMTUtNTEuMSAxMC0xNC4xIDIzLjMtMjQuNyA0MC0zMS43czMzLTEyIDQ5LTE0LjljMTUuOS0zIDMzLTQuOCA1MS01LjRWNTAwem0zMzUuMiAyMTguOWMtNC4zLTUuNC0xNS45LTguOS0zNC45LTEwLjctMTktMS44LTM1LjUtMS43LTQ5LjcuNC0xNS4zIDEuOC0zMS4xIDYuMi00Ny4zIDEzLjQtMTYuMyA3LjEtMjMuNCAxMy4xLTIxLjYgMTcuOGwuNyAxLjMuOS43IDEuNC4yaDQuNmMuOCAwIDEuOC0uMSAzLjItLjIgMS40LS4xIDIuNy0uMyAzLjktLjQgMS4yLS4xIDIuOS0uMyA1LjEtLjQgMi4xLS4xIDQuMS0uNCA2LS43LjMgMCAzLjctLjMgMTAuMy0uOSA2LjYtLjYgMTEuNC0xIDE0LjMtMS4zIDIuOS0uMyA3LjgtLjYgMTQuNS0uOSA2LjctLjMgMTIuMS0uMyAxNi4xIDAgNCAuMyA4LjUuNyAxMy42IDEuMSA1LjEuNCA5LjIgMS4zIDEyLjQgMi43IDMuMiAxLjMgNS42IDMgNy4xIDUuMSA1LjIgNi42IDQuMiAyMS4yLTMgNDMuOXMtMTQgNDAuOC0yMC40IDU0LjJjLTIuOCA1LjctMi44IDkuMiAwIDEwLjdzNi43LjEgMTEuOS00YzE1LjYtMTIuMiAyOC42LTMwLjYgMzkuMS01NS4zIDYuMS0xNC42IDEwLjUtMjkuOCAxMy4xLTQ1LjcgMi40LTE1LjkgMi0yNi4yLTEuMy0zMXonKSk7XG5leHBvcnRzLkFudENsb3VkT3V0bGluZSA9IGdldEljb24oJ2FudC1jbG91ZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNzguOSA3MzhjLTMuMSAwLTYuMS0uNS04LjgtMS41bDQuNCAzMC43aDI2LjNsLTE1LjUtMjkuOWMtMi4xLjUtNC4yLjctNi40Ljd6bTQyMS0yOTEuMmMtMTIuNiAwLTI0LjggMS41LTM2LjUgNC4yLTIxLjQtMzguNC02Mi4zLTY0LjMtMTA5LjMtNjQuMy02LjkgMC0xMy42LjYtMjAuMiAxLjYtMzUuNC03Ny40LTExMy40LTEzMS4xLTIwMy45LTEzMS4xLTExMi4zIDAtMjA1LjMgODIuNi0yMjEuNiAxOTAuNEMxMjcuMyA0NTUuNSA2NCA1MjMuOCA2NCA2MDdjMCA4OC40IDcxLjYgMTYwLjEgMTYwIDE2MC4yaDUwbDEzLjItMjcuNmMtMjYuMi04LjMtNDMuMy0yOS0zOS4xLTQ4LjggNC42LTIxLjYgMzIuOC0zMy45IDYzLjEtMjcuNSAyMi45IDQuOSA0MC40IDE5LjEgNDUuNSAzNS4xYTI2LjEgMjYuMSAwIDAgMSAyMi4xLTEyLjRoLjJjLS44LTMuMi0xLjItNi41LTEuMi05LjkgMC0yMC4xIDE0LjgtMzYuNyAzNC4xLTM5LjZ2LTI1LjRjMC00LjQgMy42LTggOC04czggMy42IDggOHYyNi4zYzQuNiAxLjIgOC44IDMuMiAxMi42IDUuOGwxOS41LTIxLjRjMy0zLjMgOC0zLjUgMTEuMy0uNSAzLjMgMyAzLjUgOCAuNSAxMS4zbC0yMCAyMi0uMi4yYTQwIDQwIDAgMCAxLTQ2LjkgNTkuMmMtLjQgNS42LTIuNiAxMC43LTYgMTQuOGwyMCAzOC40SDgwNHYtLjFjODYuNS0yLjIgMTU2LTczIDE1Ni0xNjAuMSAwLTg4LjUtNzEuNy0xNjAuMi0xNjAuMS0xNjAuMnpNMzM4LjIgNzM3LjJsLTQuMyAzMGgyNC40bC01LjktNDEuNWMtMy41IDQuNi04LjMgOC41LTE0LjIgMTEuNXpNNzk3LjUgMzA1YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptLTY1LjcgNjEuM2EyNCAyNCAwIDEgMCA0OCAwIDI0IDI0IDAgMSAwLTQ4IDB6TTMwMy40IDc0Mi45bC0xMS42IDI0LjNoMjZsMy41LTI0LjdjLTUuNy44LTExLjcgMS0xNy45LjR6JykpO1xuZXhwb3J0cy5BcGFydG1lbnRPdXRsaW5lID0gZ2V0SWNvbignYXBhcnRtZW50Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOCA2NDBIODA0VjQ4OGMwLTQuNC0zLjYtOC04LThINTQ4di05NmgxMDhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNkgzNjhjLTguOCAwLTE2IDcuMi0xNiAxNnYyODhjMCA4LjggNy4yIDE2IDE2IDE2aDEwOHY5NkgyMjhjLTQuNCAwLTggMy42LTggOHYxNTJIMTE2Yy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgyODhjOC44IDAgMTYtNy4yIDE2LTE2VjY1NmMwLTguOC03LjItMTYtMTYtMTZIMjkydi04OGg0NDB2ODhINjIwYy04LjggMC0xNiA3LjItMTYgMTZ2Mjg4YzAgOC44IDcuMiAxNiAxNiAxNmgyODhjOC44IDAgMTYtNy4yIDE2LTE2VjY1NmMwLTguOC03LjItMTYtMTYtMTZ6bS01NjQgNzZ2MTY4SDE3NlY3MTZoMTY4em04NC00MDhWMTQwaDE2OHYxNjhINDI4em00MjAgNTc2SDY4MFY3MTZoMTY4djE2OHonKSk7XG5leHBvcnRzLkFudERlc2lnbk91dGxpbmUgPSBnZXRJY29uKCdhbnQtZGVzaWduJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcxNi4zIDMxMy44YzE5LTE4LjkgMTktNDkuNyAwLTY4LjZsLTY5LjktNjkuOS4xLjFjLTE4LjUtMTguNS01MC4zLTUwLjMtOTUuMy05NS4yLTIxLjItMjAuNy01NS41LTIwLjUtNzYuNS41TDgwLjkgNDc0LjJhNTMuODQgNTMuODQgMCAwIDAgMCA3Ni40TDQ3NC42IDk0NGE1NC4xNCA1NC4xNCAwIDAgMCA3Ni41IDBsMTY1LjEtMTY1YzE5LTE4LjkgMTktNDkuNyAwLTY4LjZhNDguNyA0OC43IDAgMCAwLTY4LjcgMGwtMTI1IDEyNS4yYy01LjIgNS4yLTEzLjMgNS4yLTE4LjUgMEwxODkuNSA1MjEuNGMtNS4yLTUuMi01LjItMTMuMyAwLTE4LjVsMzE0LjQtMzE0LjJjLjQtLjQuOS0uNyAxLjMtMS4xIDUuMi00LjEgMTIuNC0zLjcgMTcuMiAxLjFsMTI1LjIgMTI1LjFjMTkgMTkgNDkuOCAxOSA2OC43IDB6TTQwOC42IDUxNC40YTEwNi4zIDEwNi4yIDAgMSAwIDIxMi42IDAgMTA2LjMgMTA2LjIgMCAxIDAtMjEyLjYgMHptNTM2LjItMzguNkw4MjEuOSAzNTMuNWMtMTktMTguOS00OS44LTE4LjktNjguNy4xYTQ4LjQgNDguNCAwIDAgMCAwIDY4LjZsODMgODIuOWM1LjIgNS4yIDUuMiAxMy4zIDAgMTguNWwtODEuOCA4MS43YTQ4LjQgNDguNCAwIDAgMCAwIDY4LjYgNDguNyA0OC43IDAgMCAwIDY4LjcgMGwxMjEuOC0xMjEuN2E1My45MyA1My45MyAwIDAgMC0uMS03Ni40eicpKTtcbmV4cG9ydHMuQXJlYUNoYXJ0T3V0bGluZSA9IGdldEljb24oJ2FyZWEtY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTYxNi02NGg1MzZjNC40IDAgOC0zLjYgOC04VjI4NGMwLTcuMi04LjctMTAuNy0xMy43LTUuN0w1OTIgNDg4LjZsLTEyNS40LTEyNGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0xODkgMTg5LjZhNy44NyA3Ljg3IDAgMCAwLTIuMyA1LjZWNzIwYzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkFycm93TGVmdE91dGxpbmUgPSBnZXRJY29uKCdhcnJvdy1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA0NzRIMjg2LjlsMzUwLjItMzA0YzUuNi00LjkgMi4yLTE0LTUuMi0xNGgtODguNWMtMy45IDAtNy42IDEuNC0xMC41IDMuOUwxNTUgNDg3LjhhMzEuOTYgMzEuOTYgMCAwIDAgMCA0OC4zTDUzNS4xIDg2NmMxLjUgMS4zIDMuMyAyIDUuMiAyaDkxLjVjNy40IDAgMTAuOC05LjIgNS4yLTE0TDI4Ni45IDU1MEg4NzJjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5BcnJvd0Rvd25PdXRsaW5lID0gZ2V0SWNvbignYXJyb3ctZG93bicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjIgNDY1LjNoLTgxYy00LjYgMC05IDItMTIuMSA1LjVMNTUwIDcyMy4xVjE2MGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2NTYzLjFMMjU1LjEgNDcwLjhjLTMtMy41LTcuNC01LjUtMTIuMS01LjVoLTgxYy02LjggMC0xMC41IDguMS02IDEzLjJMNDg3LjkgODYxYTMxLjk2IDMxLjk2IDAgMCAwIDQ4LjMgMEw4NjggNDc4LjVjNC41LTUuMi44LTEzLjItNi0xMy4yeicpKTtcbmV4cG9ydHMuQXJyb3dVcE91dGxpbmUgPSBnZXRJY29uKCdhcnJvdy11cCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggNTQ1LjVMNTM2LjEgMTYzYTMxLjk2IDMxLjk2IDAgMCAwLTQ4LjMgMEwxNTYgNTQ1LjVhNy45NyA3Ljk3IDAgMCAwIDYgMTMuMmg4MWM0LjYgMCA5LTIgMTIuMS01LjVMNDc0IDMwMC45Vjg2NGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMwMC45bDIxOC45IDI1Mi4zYzMgMy41IDcuNCA1LjUgMTIuMSA1LjVoODFjNi44IDAgMTAuNS04IDYtMTMuMnonKSk7XG5leHBvcnRzLkFycm93c0FsdE91dGxpbmUgPSBnZXRJY29uKCdhcnJvd3MtYWx0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NSAxNjAuMWwtMTg5LjIgMjMuNWMtNi42LjgtOS4zIDguOC00LjcgMTMuNWw1NC43IDU0LjctMTUzLjUgMTUzLjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0NS4xIDQ1LjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNTMuNi0xNTMuNiA1NC43IDU0LjdhNy45NCA3Ljk0IDAgMCAwIDEzLjUtNC43TDg2My45IDE2OWE3LjkgNy45IDAgMCAwLTguOS04Ljl6TTQxNi42IDU2Mi4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMjUxLjggNzE1LjlsLTU0LjctNTQuN2E3Ljk0IDcuOTQgMCAwIDAtMTMuNSA0LjdMMTYwLjEgODU1Yy0uNiA1LjIgMy43IDkuNSA4LjkgOC45bDE4OS4yLTIzLjVjNi42LS44IDkuMy04LjggNC43LTEzLjVsLTU0LjctNTQuNyAxNTMuNi0xNTMuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00NS4yLTQ1eicpKTtcbmV4cG9ydHMuQXJyb3dSaWdodE91dGxpbmUgPSBnZXRJY29uKCdhcnJvdy1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjkgNDg3LjhMNDkxLjIgMTU5LjljLTIuOS0yLjUtNi42LTMuOS0xMC41LTMuOWgtODguNWMtNy40IDAtMTAuOCA5LjItNS4yIDE0bDM1MC4yIDMwNEgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNTg1LjFMMzg2LjkgODU0Yy01LjYgNC45LTIuMiAxNCA1LjIgMTRoOTEuNWMxLjkgMCAzLjgtLjcgNS4yLTJMODY5IDUzNi4yYTMyLjA3IDMyLjA3IDAgMCAwIDAtNDguNHonKSk7XG5leHBvcnRzLkF1ZGl0T3V0bGluZSA9IGdldEljb24oJ2F1ZGl0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI5NiAyNTBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTg0IDE0NEgyOTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0tNDggNDU4SDIwOFYxNDhoNTYwdjMyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ0MC04OEg3Mjh2LTM2LjZjNDYuMy0xMy44IDgwLTU2LjYgODAtMTA3LjQgMC02MS45LTUwLjEtMTEyLTExMi0xMTJzLTExMiA1MC4xLTExMiAxMTJjMCA1MC43IDMzLjcgOTMuNiA4MCAxMDcuNFY3NjRINTIwYy04LjggMC0xNiA3LjItMTYgMTZ2MTUyYzAgOC44IDcuMiAxNiAxNiAxNmgzNTJjOC44IDAgMTYtNy4yIDE2LTE2Vjc4MGMwLTguOC03LjItMTYtMTYtMTZ6TTY0NiA2MjBjMC0yNy42IDIyLjQtNTAgNTAtNTBzNTAgMjIuNCA1MCA1MC0yMi40IDUwLTUwIDUwLTUwLTIyLjQtNTAtNTB6bTE4MCAyNjZINTY2di02MGgyNjB2NjB6JykpO1xuZXhwb3J0cy5CYXJDaGFydE91dGxpbmUgPSBnZXRJY29uKCdiYXItY2hhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDc5MkgyMDBWMTY4YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDc1MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTYwMC04MGg1NmM0LjQgMCA4LTMuNiA4LThWNTYwYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4em0xNTIgMGg1NmM0LjQgMCA4LTMuNiA4LThWMzg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHYzMjBjMCA0LjQgMy42IDggOCA4em0xNTIgMGg1NmM0LjQgMCA4LTMuNiA4LThWNDYyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHYyNDJjMCA0LjQgMy42IDggOCA4em0xNTIgMGg1NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MDBjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuQmFyY29kZU91dGxpbmUgPSBnZXRJY29uKCdiYXJjb2RlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTEyMCAxNjBINzJjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04em04MzMgMGgtNDhjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04ek0yMDAgNzM2aDExMmM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOEgyMDBjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0zMjEgMGg0OGM0LjQgMCA4LTMuNiA4LThWMTY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4em0xMjYgMGgxNzhjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LThINjQ3Yy00LjQgMC04IDMuNi04IDh2NTYwYzAgNC40IDMuNiA4IDggOHptLTI1NSAwaDQ4YzQuNCAwIDgtMy42IDgtOFYxNjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDh6bS03OSA2NEgyMDFjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTEyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0yNTcgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTI1NiAwSDY0OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNzhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS0zODUgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5CYXJzT3V0bGluZSA9IGdldEljb24oJ2JhcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNOTEyIDE5MkgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMjhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xMDQgMjI4YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0wIDI4NGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5CZ0NvbG9yc091dGxpbmUgPSBnZXRJY29uKCdiZy1jb2xvcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzY2LjQgNzQ0LjNjNDMuNyAwIDc5LjQtMzYuMiA3OS40LTgwLjUgMC01My41LTc5LjQtMTQwLjgtNzkuNC0xNDAuOFM2ODcgNjEwLjMgNjg3IDY2My44YzAgNDQuMyAzNS43IDgwLjUgNzkuNCA4MC41em0tMzc3LjEtNDQuMWM3LjEgNy4xIDE4LjYgNy4xIDI1LjYgMGwyNTYuMS0yNTZjNy4xLTcuMSA3LjEtMTguNiAwLTI1LjZsLTI1Ni0yNTZjLS42LS42LTEuMy0xLjItMi0xLjdsLTc4LjItNzguMmE5LjExIDkuMTEgMCAwIDAtMTIuOCAwbC00OCA0OGE5LjExIDkuMTEgMCAwIDAgMCAxMi44bDY3LjIgNjcuMi0yMDcuOCAyMDcuOWMtNy4xIDcuMS03LjEgMTguNiAwIDI1LjZsMjU1LjkgMjU2em0xMi45LTQ0OC42bDE3OC45IDE3OC45SDIyMy40bDE3OC44LTE3OC45ek05MDQgODE2SDEyMGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5CZWhhbmNlT3V0bGluZSA9IGdldEljb24oJ2JlaGFuY2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjM0IDI5NC4zaDE5OS41djQ4LjRINjM0ek00MzQuMSA0ODUuOGM0NC4xLTIxLjEgNjcuMi01My4yIDY3LjItMTAyLjggMC05OC4xLTczLTEyMS45LTE1Ny4zLTEyMS45SDExMnY0OTIuNGgyMzguNWM4OS40IDAgMTczLjMtNDMgMTczLjMtMTQzIDAtNjEuOC0yOS4yLTEwNy41LTg5LjctMTI0Ljd6TTIyMC4yIDM0NS4xaDEwMS41YzM5LjEgMCA3NC4yIDEwLjkgNzQuMiA1Ni4zIDAgNDEuOC0yNy4zIDU4LjYtNjYgNTguNkgyMjAuMlYzNDUuMXptMTE1LjUgMzI0LjhIMjIwLjFWNTM0LjNIMzM4YzQ3LjYgMCA3Ny43IDE5LjkgNzcuNyA3MC4zIDAgNDkuNi0zNS45IDY1LjMtODAgNjUuM3ptNTc1LjgtODkuNWMwLTEwNS41LTYxLjctMTkzLjQtMTczLjMtMTkzLjQtMTA4LjUgMC0xODIuMyA4MS43LTE4Mi4zIDE4OC44IDAgMTExIDY5LjkgMTg3LjIgMTgyLjMgMTg3LjIgODUuMSAwIDE0MC4yLTM4LjMgMTY2LjctMTIwaC04Ni4zYy05LjQgMzAuNS00Ny42IDQ2LjUtNzcuMyA0Ni41LTU3LjQgMC04Ny40LTMzLjYtODcuNC05MC43aDI1Ni45Yy4zLTUuOS43LTEyLjEuNy0xOC40ek02NTMuOSA1MzdjMy4xLTQ2LjkgMzQuNC03Ni4yIDgxLjItNzYuMiA0OS4yIDAgNzMuOCAyOC45IDc4LjEgNzYuMkg2NTMuOXonKSk7XG5leHBvcnRzLkJsb2NrT3V0bGluZSA9IGdldEljb24oJ2Jsb2NrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg1NiAzNzZINjQ4VjE2OGMwLTguOC03LjItMTYtMTYtMTZIMTY4Yy04LjggMC0xNiA3LjItMTYgMTZ2NDY0YzAgOC44IDcuMiAxNiAxNiAxNmgyMDh2MjA4YzAgOC44IDcuMiAxNiAxNiAxNmg0NjRjOC44IDAgMTYtNy4yIDE2LTE2VjM5MmMwLTguOC03LjItMTYtMTYtMTZ6bS00ODAgMTZ2MTg4SDIyMFYyMjBoMzYwdjE1NkgzOTJjLTguOCAwLTE2IDcuMi0xNiAxNnptMjA0IDUydjEzNkg0NDRWNDQ0aDEzNnptMjI0IDM2MEg0NDRWNjQ4aDE4OGM4LjggMCAxNi03LjIgMTYtMTZWNDQ0aDE1NnYzNjB6JykpO1xuZXhwb3J0cy5Cb2xkT3V0bGluZSA9IGdldEljb24oJ2JvbGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjk3LjggNDgxLjRjMzMuNi0zNSA1NC4yLTgyLjMgNTQuMi0xMzQuM3YtMTAuMkM3NTIgMjI5LjMgNjYzLjkgMTQyIDU1NS4zIDE0MkgyNTkuNGMtMTUuMSAwLTI3LjQgMTIuMy0yNy40IDI3LjR2Njc5LjFjMCAxNi4zIDEzLjIgMjkuNSAyOS41IDI5LjVoMzE4LjdjMTE3IDAgMjExLjgtOTQuMiAyMTEuOC0yMTAuNXYtMTFjMC03My0zNy40LTEzNy4zLTk0LjItMTc1LjF6TTMyOCAyMzhoMjI0LjdjNTcuMSAwIDEwMy4zIDQ0LjQgMTAzLjMgOTkuM3Y5LjVjMCA1NC44LTQ2LjMgOTkuMy0xMDMuMyA5OS4zSDMyOFYyMzh6bTM2Ni42IDQyOS40YzAgNjIuOS01MS43IDExMy45LTExNS41IDExMy45SDMyOFY1NDIuN2gyNTEuMWM2My44IDAgMTE1LjUgNTEgMTE1LjUgMTEzLjl2MTAuOHonKSk7XG5leHBvcnRzLkJvcmRlckJvdHRvbU91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItYm90dG9tJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiA4MDhIMTUyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDcyMGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTcyMC05NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTAtNDk4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAzMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTE2Nmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE2NiAxNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTMzMmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTMzMiAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMCAzMzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0yMjItNzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzg4LTQwNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zODggNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zODggNDI2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTM4OCA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTM4OC00MDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzg4IDcyaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLkJvcmRlckxlZnRPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLWxlZnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjA4IDE0NGgtNTZjLTQuNCAwLTggMy42LTggOHY3MjBjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxNTJjMC00LjQtMy42LTgtOC04em0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek01NDAgMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVyT3V0ZXJPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLW91dGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6TTQ4NCAzNjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4ek0zMDIgNTQ4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMzY0IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTgyIDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wIDE4Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5Cb3JkZXJJbm5lck91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItaW5uZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcyIDQ3Nkg1NDhWMTQ0aC03MnYzMzJIMTUyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDMyNHYzMzJoNzJWNTQ4aDMyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNjZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDQ5OGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjY0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek02NTAgMjE2aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptNTYgNTkyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTU2LTU5Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bS0xNjYgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni00MjZoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01NiAyNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVyUmlnaHRPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiAxNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NzIwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTUyYzAtNC40LTMuNi04LTgtOHptLTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMTY2IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNjYgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAzMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00OTggMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVySG9yaXpvbnRhbE91dGxpbmUgPSBnZXRJY29uKCdib3JkZXItaG9yaXpvbnRhbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NDAgMTQ0aC01NmMtNC40IDAtOCAzLjYtOCA4djcyMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE1MmMwLTQuNC0zLjYtOC04LTh6bS0xNjYgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTQ5OCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTY2NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNDk4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNjY0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS02NjQgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em02NjQgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zNzQgODA4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0zMzJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuQm9yZGVyVG9wT3V0bGluZSA9IGdldEljb24oJ2JvcmRlci10b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcyIDE0NEgxNTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMDggMzEwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTY2LTE2NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2NiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMzMyIDMzMmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTMzMi00OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzMyIDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMzMyaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTMzMiAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkJvcmRlclZlcnRpY2xlT3V0bGluZSA9IGdldEljb24oJ2JvcmRlci12ZXJ0aWNsZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzIgNDc2SDE1MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTY2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA0OThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTY2NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgNDk4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNNjUwIDIxNmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU2IDU5MmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS01Ni01OTJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tMTY2IDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zMzIgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6TTIwOCA4MDhoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTE1MiAzODJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0zMzIgMGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6TTIwOCA2NDJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMzIgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Cb3JkZXJPdXRsaW5lID0gZ2V0SWNvbignYm9yZGVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6JykpO1xuZXhwb3J0cy5CcmFuY2hlc091dGxpbmUgPSBnZXRJY29uKCdicmFuY2hlcycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NDAgMTYxYy02MS44IDAtMTEyIDUwLjItMTEyIDExMiAwIDUwLjEgMzMuMSA5Mi42IDc4LjUgMTA2Ljl2OTUuOUwzMjAgNjAyLjRWMzE4LjFjNDQuMi0xNSA3Ni01Ni45IDc2LTEwNi4xIDAtNjEuOC01MC4yLTExMi0xMTItMTEycy0xMTIgNTAuMi0xMTIgMTEyYzAgNDkuMiAzMS44IDkxIDc2IDEwNi4xVjcwNmMtNDQuMiAxNS03NiA1Ni45LTc2IDEwNi4xIDAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJjMC00OS4yLTMxLjgtOTEtNzYtMTA2LjF2LTI3LjhsNDIzLjUtMTM4LjdhNTAuNTIgNTAuNTIgMCAwIDAgMzQuOS00OC4yVjM3OC4yYzQyLjktMTUuOCA3My42LTU3IDczLjYtMTA1LjIgMC02MS44LTUwLjItMTEyLTExMi0xMTJ6bS01MDQgNTFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem05NiA2MDBhNDguMDEgNDguMDEgMCAwIDEtOTYgMCA0OC4wMSA0OC4wMSAwIDAgMSA5NiAwem00MDgtNDkxYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonKSk7XG5leHBvcnRzLkNoZWNrT3V0bGluZSA9IGdldEljb24oJ2NoZWNrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMCAwLTI1LjEtMTIuMkgxMTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDI3My45IDM0N2MxMi44IDE2LjIgMzcuNCAxNi4yIDUwLjMgMGw0ODguNC02MTguOWM0LjEtNS4xLjQtMTIuOC02LjMtMTIuOHonKSk7XG5leHBvcnRzLkNpT3V0bGluZSA9IGdldEljb24oJ2NpJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptMjE4LTU3Mi4xaC01MC40Yy00LjQgMC04IDMuNi04IDh2Mzg0LjJjMCA0LjQgMy42IDggOCA4SDczMGM0LjQgMCA4LTMuNiA4LThWMzE5LjljMC00LjQtMy42LTgtOC04em0tMjgxLjQgNDkuNmM0OS41IDAgODMuMSAzMS41IDg3IDc3LjYuNCA0LjIgMy44IDcuNCA4IDcuNGg1Mi42YzIuNCAwIDQuNC0yIDQuNC00LjQgMC04MS4yLTY0LTEzOC4xLTE1Mi4zLTEzOC4xQzM0NS40IDMwNCAyODYgMzczLjUgMjg2IDQ4OC40djQ5YzAgMTE0IDU5LjQgMTgyLjYgMTYyLjMgMTgyLjYgODggMCAxNTIuMy01NS4xIDE1Mi4zLTEzMi41IDAtMi40LTItNC40LTQuNC00LjRoLTUyLjdjLTQuMiAwLTcuNiAzLjItOCA3LjMtNC4yIDQzLTM3LjcgNzIuNC04NyA3Mi40LTYxLjEgMC05NS42LTQ0LjktOTUuNi0xMjUuMnYtNDkuM2MuMS04MS40IDM0LjYtMTI2LjggOTUuNy0xMjYuOHonKSk7XG5leHBvcnRzLkNsb3NlT3V0bGluZSA9IGdldEljb24oJ2Nsb3NlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTU2My44IDUxMmwyNjIuNS0zMTIuOWM0LjQtNS4yLjctMTMuMS02LjEtMTMuMWgtNzkuOGMtNC43IDAtOS4yIDIuMS0xMi4zIDUuN0w1MTEuNiA0NDkuOCAyOTUuMSAxOTEuN2MtMy0zLjYtNy41LTUuNy0xMi4zLTUuN0gyMDNjLTYuOCAwLTEwLjUgNy45LTYuMSAxMy4xTDQ1OS40IDUxMiAxOTYuOSA4MjQuOUE3Ljk1IDcuOTUgMCAwIDAgMjAzIDgzOGg3OS44YzQuNyAwIDkuMi0yLjEgMTIuMy01LjdsMjE2LjUtMjU4LjEgMjE2LjUgMjU4LjFjMyAzLjYgNy41IDUuNyAxMi4zIDUuN2g3OS44YzYuOCAwIDEwLjUtNy45IDYuMS0xMy4xTDU2My44IDUxMnonKSk7XG5leHBvcnRzLkNsb3VkRG93bmxvYWRPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQtZG93bmxvYWQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjI0IDcwNi4zaC03NC4xVjQ2NGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MjQyLjNINDAwYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOWwxMTIgMTQxLjdhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjl6JywgJ004MTEuNCAzNjYuN0M3NjUuNiAyNDUuOSA2NDguOSAxNjAgNTEyLjIgMTYwUzI1OC44IDI0NS44IDIxMyAzNjYuNkMxMjcuMyAzODkuMSA2NCA0NjcuMiA2NCA1NjBjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBIMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04aC00MC4xYy0zMy43IDAtNjUuNC0xMy40LTg5LTM3LjctMjMuNS0yNC4yLTM2LTU2LjgtMzQuOS05MC42LjktMjYuNCA5LjktNTEuMiAyNi4yLTcyLjEgMTYuNy0yMS4zIDQwLjEtMzYuOCA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwIDEgNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMEM4NDYuMSA0NTQuNSA4ODQgNTAzLjggODg0IDU2MGMwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN2ExMjMuMDcgMTIzLjA3IDAgMCAxLTg3LjYgMzYuM0g3MjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNDAuMUM4NzAuNSA3NjAgOTYwIDY3MC41IDk2MCA1NjBjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6JykpO1xuZXhwb3J0cy5DbG91ZFNlcnZlck91dGxpbmUgPSBnZXRJY29uKCdjbG91ZC1zZXJ2ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzA0IDQ0NkgzMjBjLTQuNCAwLTggMy42LTggOHY0MDJjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LThWNDU0YzAtNC40LTMuNi04LTgtOHptLTMyOCA2NGgyNzJ2MTE3SDM3NlY1MTB6bTI3MiAyOTBIMzc2VjY4M2gyNzJ2MTE3eicsICdNNDI0IDc0OGEzMiAzMiAwIDEgMCA2NCAwIDMyIDMyIDAgMSAwLTY0IDB6bTAtMTc4YTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAtNjQgMHonLCAnTTgxMS40IDM2OC45Qzc2NS42IDI0OCA2NDguOSAxNjIgNTEyLjIgMTYyUzI1OC44IDI0Ny45IDIxMyAzNjguOEMxMjYuOSAzOTEuNSA2My41IDQ3MC4yIDY0IDU2My42IDY0LjYgNjY4IDE0NS42IDc1Mi45IDI0Ny42IDc2MmM0LjcuNCA4LjctMy4zIDguNy04di02MC40YzAtNC0zLTcuNC03LTcuOS0yNy0zLjQtNTIuNS0xNS4yLTcyLjEtMzQuNS0yNC0yMy41LTM3LjItNTUuMS0zNy4yLTg4LjYgMC0yOCA5LjEtNTQuNCAyNi4yLTc2LjQgMTYuNy0yMS40IDQwLjItMzYuOSA2Ni4xLTQzLjdsMzcuOS0xMCAxMy45LTM2LjdjOC42LTIyLjggMjAuNi00NC4yIDM1LjctNjMuNSAxNC45LTE5LjIgMzIuNi0zNiA1Mi40LTUwIDQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4zYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNTAgMTUuMSAxOS4zIDI3LjEgNDAuNyAzNS43IDYzLjVsMTMuOCAzNi42IDM3LjggMTBjNTQuMiAxNC40IDkyLjEgNjMuNyA5Mi4xIDEyMCAwIDMzLjYtMTMuMiA2NS4xLTM3LjIgODguNi0xOS41IDE5LjItNDQuOSAzMS4xLTcxLjkgMzQuNS00IC41LTYuOSAzLjktNi45IDcuOVY3NTRjMCA0LjcgNC4xIDguNCA4LjggOCAxMDEuNy05LjIgMTgyLjUtOTQgMTgzLjItMTk4LjIuNi05My40LTYyLjctMTcyLjEtMTQ4LjYtMTk0Ljl6JykpO1xuZXhwb3J0cy5DbG91ZFN5bmNPdXRsaW5lID0gZ2V0SWNvbignY2xvdWQtc3luYycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MTEuNCAzNjguOUM3NjUuNiAyNDggNjQ4LjkgMTYyIDUxMi4yIDE2MlMyNTguOCAyNDcuOSAyMTMgMzY4LjhDMTI2LjkgMzkxLjUgNjMuNSA0NzAuMiA2NCA1NjMuNiA2NC42IDY2OCAxNDUuNiA3NTIuOSAyNDcuNiA3NjJjNC43LjQgOC43LTMuMyA4LjctOHYtNjAuNGMwLTQtMy03LjQtNy03LjktMjctMy40LTUyLjUtMTUuMi03Mi4xLTM0LjUtMjQtMjMuNS0zNy4yLTU1LjEtMzcuMi04OC42IDAtMjggOS4xLTU0LjQgMjYuMi03Ni40IDE2LjctMjEuNCA0MC4yLTM2LjkgNjYuMS00My43bDM3LjktMTAgMTMuOS0zNi43YzguNi0yMi44IDIwLjYtNDQuMiAzNS43LTYzLjUgMTQuOS0xOS4yIDMyLjYtMzYgNTIuNC01MCA0MS4xLTI4LjkgODkuNS00NC4yIDE0MC00NC4yczk4LjkgMTUuMyAxNDAgNDQuM2MxOS45IDE0IDM3LjUgMzAuOCA1Mi40IDUwIDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My41bDEzLjggMzYuNiAzNy44IDEwYzU0LjIgMTQuNCA5Mi4xIDYzLjcgOTIuMSAxMjAgMCAzMy42LTEzLjIgNjUuMS0zNy4yIDg4LjYtMTkuNSAxOS4yLTQ0LjkgMzEuMS03MS45IDM0LjUtNCAuNS02LjkgMy45LTYuOSA3LjlWNzU0YzAgNC43IDQuMSA4LjQgOC44IDggMTAxLjctOS4yIDE4Mi41LTk0IDE4My4yLTE5OC4yLjYtOTMuNC02Mi43LTE3Mi4xLTE0OC42LTE5NC45eicsICdNMzc2LjkgNjU2LjRjMS44LTMzLjUgMTUuNy02NC43IDM5LjUtODguNiAyNS40LTI1LjUgNjAtMzkuOCA5Ni0zOS44IDM2LjIgMCA3MC4zIDE0LjEgOTYgMzkuOCAxLjQgMS40IDIuNyAyLjggNC4xIDQuM2wtMjUgMTkuNmE4IDggMCAwIDAgMyAxNC4xbDk4LjIgMjRjNSAxLjIgOS45LTIuNiA5LjktNy43bC41LTEwMS4zYzAtNi43LTcuNi0xMC41LTEyLjktNi4zTDY2MyA1MzIuN2MtMzYuNi00Mi05MC40LTY4LjYtMTUwLjUtNjguNi0xMDcuNCAwLTE5NSA4NS4xLTE5OS40IDE5MS43LS4yIDQuNSAzLjQgOC4zIDggOC4zSDM2OWM0LjItLjEgNy43LTMuNCA3LjktNy43ek03MDMgNjY0aC00Ny45Yy00LjIgMC03LjcgMy4zLTggNy42LTEuOCAzMy41LTE1LjcgNjQuNy0zOS41IDg4LjYtMjUuNCAyNS41LTYwIDM5LjgtOTYgMzkuOC0zNi4yIDAtNzAuMy0xNC4xLTk2LTM5LjgtMS40LTEuNC0yLjctMi44LTQuMS00LjNsMjUtMTkuNmE4IDggMCAwIDAtMy0xNC4xbC05OC4yLTI0Yy01LTEuMi05LjkgMi42LTkuOSA3LjdsLS40IDEwMS40YzAgNi43IDcuNiAxMC41IDEyLjkgNi4zbDIzLjItMTguMmMzNi42IDQyIDkwLjQgNjguNiAxNTAuNSA2OC42IDEwNy40IDAgMTk1LTg1LjEgMTk5LjQtMTkxLjcuMi00LjUtMy40LTguMy04LTguM3onKSk7XG5leHBvcnRzLkNsb3VkVXBsb2FkT3V0bGluZSA9IGdldEljb24oJ2Nsb3VkLXVwbG9hZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTguMyA0NTlhOCA4IDAgMCAwLTEyLjYgMGwtMTEyIDE0MS43YTcuOTggNy45OCAwIDAgMCA2LjMgMTIuOWg3My45Vjg1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjYxMy43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyA0NTl6JywgJ004MTEuNCAzNjYuN0M3NjUuNiAyNDUuOSA2NDguOSAxNjAgNTEyLjIgMTYwUzI1OC44IDI0NS44IDIxMyAzNjYuNkMxMjcuMyAzODkuMSA2NCA0NjcuMiA2NCA1NjBjMCAxMTAuNSA4OS41IDIwMCAxOTkuOSAyMDBIMzA0YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04aC00MC4xYy0zMy43IDAtNjUuNC0xMy40LTg5LTM3LjctMjMuNS0yNC4yLTM2LTU2LjgtMzQuOS05MC42LjktMjYuNCA5LjktNTEuMiAyNi4yLTcyLjEgMTYuNy0yMS4zIDQwLjEtMzYuOCA2Ni4xLTQzLjdsMzcuOS05LjkgMTMuOS0zNi42YzguNi0yMi44IDIwLjYtNDQuMSAzNS43LTYzLjRhMjQ1LjYgMjQ1LjYgMCAwIDEgNTIuNC00OS45YzQxLjEtMjguOSA4OS41LTQ0LjIgMTQwLTQ0LjJzOTguOSAxNS4zIDE0MCA0NC4yYzE5LjkgMTQgMzcuNSAzMC44IDUyLjQgNDkuOSAxNS4xIDE5LjMgMjcuMSA0MC43IDM1LjcgNjMuNGwxMy44IDM2LjUgMzcuOCAxMEM4NDYuMSA0NTQuNSA4ODQgNTAzLjggODg0IDU2MGMwIDMzLjEtMTIuOSA2NC4zLTM2LjMgODcuN2ExMjMuMDcgMTIzLjA3IDAgMCAxLTg3LjYgMzYuM0g3MjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNDAuMUM4NzAuNSA3NjAgOTYwIDY3MC41IDk2MCA1NjBjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6JykpO1xuZXhwb3J0cy5DbHVzdGVyT3V0bGluZSA9IGdldEljb24oJ2NsdXN0ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4IDY4MGgtNTRWNTQwSDU0NnYtOTJoMjM4YzguOCAwIDE2LTcuMiAxNi0xNlYxNjhjMC04LjgtNy4yLTE2LTE2LTE2SDI0MGMtOC44IDAtMTYgNy4yLTE2IDE2djI2NGMwIDguOCA3LjIgMTYgMTYgMTZoMjM4djkySDE5MHYxNDBoLTU0Yy00LjQgMC04IDMuNi04IDh2MTc2YzAgNC40IDMuNiA4IDggOGgxNzZjNC40IDAgOC0zLjYgOC04VjY4OGMwLTQuNC0zLjYtOC04LThoLTU0di03MmgyMjB2NzJoLTU0Yy00LjQgMC04IDMuNi04IDh2MTc2YzAgNC40IDMuNiA4IDggOGgxNzZjNC40IDAgOC0zLjYgOC04VjY4OGMwLTQuNC0zLjYtOC04LThoLTU0di03MmgyMjB2NzJoLTU0Yy00LjQgMC04IDMuNi04IDh2MTc2YzAgNC40IDMuNiA4IDggOGgxNzZjNC40IDAgOC0zLjYgOC04VjY4OGMwLTQuNC0zLjYtOC04LTh6TTI1NiA4MDUuM2MwIDEuNS0xLjIgMi43LTIuNyAyLjdoLTU4LjdjLTEuNSAwLTIuNy0xLjItMi43LTIuN3YtNTguN2MwLTEuNSAxLjItMi43IDIuNy0yLjdoNTguN2MxLjUgMCAyLjcgMS4yIDIuNyAyLjd2NTguN3ptMjg4IDBjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6TTI4OCAzODRWMjE2aDQ0OHYxNjhIMjg4em01NDQgNDIxLjNjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6TTM2MCAzMDBhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweicpKTtcbmV4cG9ydHMuQ29kZXBlbk91dGxpbmUgPSBnZXRJY29uKCdjb2RlcGVuJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxMS43IDM4NS4zbC0uMy0xLjVjLS4yLTEtLjMtMS45LS42LTIuOS0uMi0uNi0uNC0xLjEtLjUtMS43LS4zLS44LS41LTEuNy0uOS0yLjUtLjItLjYtLjUtMS4xLS44LTEuNy0uNC0uOC0uOC0xLjUtMS4yLTIuMy0uMy0uNS0uNi0xLjEtMS0xLjYtLjgtMS4yLTEuNy0yLjQtMi42LTMuNi0uNS0uNi0xLjEtMS4zLTEuNy0xLjktLjQtLjUtLjktLjktMS40LTEuMy0uNi0uNi0xLjMtMS4xLTEuOS0xLjYtLjUtLjQtMS0uOC0xLjYtMS4yLS4yLS4xLS40LS4zLS42LS40TDUzMS4xIDExNy44YTM0LjMgMzQuMyAwIDAgMC0zOC4xIDBMMTI3LjMgMzYxLjNjLS4yLjEtLjQuMy0uNi40LS41LjQtMSAuOC0xLjYgMS4yLS43LjUtMS4zIDEuMS0xLjkgMS42LS41LjQtLjkuOS0xLjQgMS4zLS42LjYtMS4yIDEuMi0xLjcgMS45LTEgMS4xLTEuOCAyLjMtMi42IDMuNi0uMy41LS43IDEtMSAxLjYtLjQuNy0uOCAxLjUtMS4yIDIuMy0uMy41LS41IDEuMS0uOCAxLjctLjMuOC0uNiAxLjctLjkgMi41LS4yLjYtLjQgMS4xLS41IDEuNy0uMi45LS40IDEuOS0uNiAyLjlsLS4zIDEuNWMtLjIgMS41LS4zIDMtLjMgNC41djI0My41YzAgMS41LjEgMyAuMyA0LjVsLjMgMS41LjYgMi45Yy4yLjYuMyAxLjEuNSAxLjcuMy45LjYgMS43LjkgMi41LjIuNi41IDEuMS44IDEuNy40LjguNyAxLjUgMS4yIDIuMy4zLjUuNiAxLjEgMSAxLjYuNS43LjkgMS40IDEuNSAyLjFsMS4yIDEuNWMuNS42IDEuMSAxLjMgMS43IDEuOS40LjUuOS45IDEuNCAxLjMuNi42IDEuMyAxLjEgMS45IDEuNi41LjQgMSAuOCAxLjYgMS4yLjIuMS40LjMuNi40TDQ5MyA5MDUuN2M1LjYgMy44IDEyLjMgNS44IDE5LjEgNS44IDYuNiAwIDEzLjMtMS45IDE5LjEtNS44bDM2NS42LTI0My41Yy4yLS4xLjQtLjMuNi0uNC41LS40IDEtLjggMS42LTEuMi43LS41IDEuMy0xLjEgMS45LTEuNi41LS40LjktLjkgMS40LTEuMy42LS42IDEuMi0xLjIgMS43LTEuOWwxLjItMS41IDEuNS0yLjFjLjMtLjUuNy0xIDEtMS42LjQtLjguOC0xLjUgMS4yLTIuMy4zLS41LjUtMS4xLjgtMS43LjMtLjguNi0xLjcuOS0yLjUuMi0uNS40LTEuMS41LTEuNy4zLS45LjQtMS45LjYtMi45bC4zLTEuNWMuMi0xLjUuMy0zIC4zLTQuNVYzODkuOGMtLjMtMS41LS40LTMtLjYtNC41ek01NDYuNCAyMTAuNWwyNjkuNCAxNzkuNC0xMjAuMyA4MC40LTE0OS05OS42VjIxMC41em0tNjguOCAwdjE2MC4ybC0xNDkgOTkuNi0xMjAuMy04MC40IDI2OS4zLTE3OS40ek0xODAuNyA0NTQuMWw4NiA1Ny41LTg2IDU3LjV2LTExNXptMjk2LjkgMzU4LjVMMjA4LjMgNjMzLjJsMTIwLjMtODAuNCAxNDkgOTkuNnYxNjAuMnpNNTEyIDU5Mi44bC0xMjEuNi04MS4yTDUxMiA0MzAuM2wxMjEuNiA4MS4yTDUxMiA1OTIuOHptMzQuNCAyMTkuOFY2NTIuNGwxNDktOTkuNiAxMjAuMyA4MC40LTI2OS4zIDE3OS40ek04NDMuMyA1NjlsLTg2LTU3LjUgODYtNTcuNXYxMTV6JykpO1xuZXhwb3J0cy5Db2RlU2FuZGJveE91dGxpbmUgPSBnZXRJY29uKCdjb2RlLXNhbmRib3gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzA5LjYgMjEwbC40LS4yaC4yTDUxMiA5NiAzMTMuOSAyMDkuOGgtLjJsLjcuM0wxNTEuNSAzMDR2NDE2TDUxMiA5MjhsMzYwLjUtMjA4VjMwNGwtMTYyLjktOTR6TTQ4Mi43IDg0My42TDMzOS42IDc2MVY2MjEuNEwyMTAgNTQ3LjhWMzcyLjlsMjcyLjcgMTU3LjN2MzEzLjR6TTIzOC4yIDMyMS41bDEzNC43LTc3LjggMTM4LjkgNzkuNyAxMzkuMS03OS45IDEzNS4yIDc4LTI3My45IDE1OC0yNzQtMTU4ek04MTQgNTQ4LjNsLTEyOC44IDczLjF2MTM5LjFsLTE0My45IDgzVjUzMC40TDgxNCAzNzMuMXYxNzUuMnonKSk7XG5leHBvcnRzLkNvbHVtSGVpZ2h0T3V0bGluZSA9IGdldEljb24oJ2NvbHVtLWhlaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NDAgODM2SDE4NGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2NTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6bTAtNzI0SDE4NGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2NTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTYxMC44IDM3OGM2IDAgOS40LTcgNS43LTExLjdMNTE1LjcgMjM4LjdhNy4xNCA3LjE0IDAgMCAwLTExLjMgMEw0MDMuNiAzNjYuM2E3LjIzIDcuMjMgMCAwIDAgNS43IDExLjdINDc2djI2OGgtNjIuOGMtNiAwLTkuNCA3LTUuNyAxMS43bDEwMC44IDEyNy41YzIuOSAzLjcgOC41IDMuNyAxMS4zIDBsMTAwLjgtMTI3LjVjMy43LTQuNy40LTExLjctNS43LTExLjdINTQ4VjM3OGg2Mi44eicpKTtcbmV4cG9ydHMuQ29sdW1uV2lkdGhPdXRsaW5lID0gZ2V0SWNvbignY29sdW1uLXdpZHRoJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTE4MCAxNzZoLTYwYy00LjQgMC04IDMuNi04IDh2NjU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMTg0YzAtNC40LTMuNi04LTgtOHptNzI0IDBoLTYwYy00LjQgMC04IDMuNi04IDh2NjU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMTg0YzAtNC40LTMuNi04LTgtOHpNNzg1LjMgNTA0LjNMNjU3LjcgNDAzLjZhNy4yMyA3LjIzIDAgMCAwLTExLjcgNS43VjQ3NkgzNzh2LTYyLjhjMC02LTctOS40LTExLjctNS43TDIzOC43IDUwOC4zYTcuMTQgNy4xNCAwIDAgMCAwIDExLjNsMTI3LjUgMTAwLjhjNC43IDMuNyAxMS43LjQgMTEuNy01LjdWNTQ4aDI2OHY2Mi44YzAgNiA3IDkuNCAxMS43IDUuN2wxMjcuNS0xMDAuOGMzLjgtMi45IDMuOC04LjUuMi0xMS40eicpKTtcbmV4cG9ydHMuQ29sdW1uSGVpZ2h0T3V0bGluZSA9IGdldEljb24oJ2NvbHVtbi1oZWlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODQwIDgzNkgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0wLTcyNEgxODRjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjU2YzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04ek02MTAuOCAzNzhjNiAwIDkuNC03IDUuNy0xMS43TDUxNS43IDIzOC43YTcuMTQgNy4xNCAwIDAgMC0xMS4zIDBMNDAzLjYgMzY2LjNhNy4yMyA3LjIzIDAgMCAwIDUuNyAxMS43SDQ3NnYyNjhoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU0OFYzNzhoNjIuOHonKSk7XG5leHBvcnRzLkNvZmZlZU91dGxpbmUgPSBnZXRJY29uKCdjb2ZmZWUnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNMjc1IDI4MWMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6bTYxMyAxNDRINzY4YzAtMzkuOC0zMi4yLTcyLTcyLTcySDIwMGMtMzkuOCAwLTcyIDMyLjItNzIgNzJ2MjQ4YzAgMy40LjIgNi43LjcgOS45LS41IDctLjcgMTQtLjcgMjEuMSAwIDE3Ni43IDE0My4zIDMyMCAzMjAgMzIwIDE2MC4xIDAgMjkyLjctMTE3LjUgMzE2LjMtMjcxSDg4OGMzOS44IDAgNzItMzIuMiA3Mi03MlY0OTdjMC0zOS44LTMyLjItNzItNzItNzJ6TTY5NiA2ODFoLTEuMWMuNyA3LjYgMS4xIDE1LjIgMS4xIDIzIDAgMTM3LTExMSAyNDgtMjQ4IDI0OFMyMDAgODQxIDIwMCA3MDRjMC03LjguNC0xNS40IDEuMS0yM0gyMDBWNDI1aDQ5NnYyNTZ6bTE5Mi04SDc3NlY0OTdoMTEydjE3NnpNNjEzIDI4MWMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6bS0xNzAgMGMxOS45IDAgMzYtMTYuMSAzNi0zNlYzNmMwLTE5LjktMTYuMS0zNi0zNi0zNnMtMzYgMTYuMS0zNiAzNnYyMDljMCAxOS45IDE2LjEgMzYgMzYgMzZ6JykpO1xuZXhwb3J0cy5Db3B5cmlnaHRPdXRsaW5lID0gZ2V0SWNvbignY29weXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNS42LTUzMi43YzUzIDAgODkgMzMuOCA5MyA4My40LjMgNC4yIDMuOCA3LjQgOCA3LjRoNTYuN2MyLjYgMCA0LjctMi4xIDQuNy00LjcgMC04Ni43LTY4LjQtMTQ3LjQtMTYyLjctMTQ3LjRDNDA3LjQgMjkwIDM0NCAzNjQuMiAzNDQgNDg2Ljh2NTIuM0MzNDQgNjYwLjggNDA3LjQgNzM0IDUxNy4zIDczNGM5NCAwIDE2Mi43LTU4LjggMTYyLjctMTQxLjQgMC0yLjYtMi4xLTQuNy00LjctNC43aC01Ni44Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0Ni4xLTQwLjEgNzcuOC05MyA3Ny44LTY1LjMgMC0xMDIuMS00Ny45LTEwMi4xLTEzMy42di01Mi42Yy4xLTg3IDM3LTEzNS41IDEwMi4yLTEzNS41eicpKTtcbmV4cG9ydHMuRGFzaE91dGxpbmUgPSBnZXRJY29uKCdkYXNoJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTExMiA0NzZoMTYwdjcySDExMnptMzIwIDBoMTYwdjcySDQzMnptMzIwIDBoMTYwdjcySDc1MnonKSk7XG5leHBvcnRzLkRlcGxveW1lbnRVbml0T3V0bGluZSA9IGdldEljb24oJ2RlcGxveW1lbnQtdW5pdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODguMyA2OTMuMmMtNDIuNS0yNC42LTk0LjMtMTgtMTI5LjIgMTIuOGwtNTMtMzAuN1Y1MjMuNmMwLTE1LjctOC40LTMwLjMtMjItMzguMWwtMTM2LTc4LjN2LTY3LjFjNDQuMi0xNSA3Ni01Ni44IDc2LTEwNi4xIDAtNjEuOS01MC4xLTExMi0xMTItMTEycy0xMTIgNTAuMS0xMTIgMTEyYzAgNDkuMyAzMS44IDkxLjEgNzYgMTA2LjF2NjcuMWwtMTM2IDc4LjNjLTEzLjYgNy44LTIyIDIyLjQtMjIgMzguMXYxNTEuNmwtNTMgMzAuN2MtMzQuOS0zMC44LTg2LjgtMzcuNC0xMjkuMi0xMi44LTUzLjUgMzEtNzEuNyA5OS40LTQxIDE1Mi45IDMwLjggNTMuNSA5OC45IDcxLjkgMTUyLjIgNDEgNDIuNS0yNC42IDYyLjctNzMgNTMuNi0xMTguOGw0OC43LTI4LjMgMTQwLjYgODFjNi44IDMuOSAxNC40IDUuOSAyMiA1LjlzMTUuMi0yIDIyLTUuOUw2NzQuNSA3NDBsNDguNyAyOC4zYy05LjEgNDUuNyAxMS4yIDk0LjIgNTMuNiAxMTguOCA1My4zIDMwLjkgMTIxLjUgMTIuNiAxNTIuMi00MSAzMC44LTUzLjYgMTIuNi0xMjItNDAuNy0xNTIuOXptLTY3MyAxMzguNGE0Ny42IDQ3LjYgMCAwIDEtNjUuMi0xNy42Yy0xMy4yLTIyLjktNS40LTUyLjMgMTcuNS02NS41YTQ3LjYgNDcuNiAwIDAgMSA2NS4yIDE3LjZjMTMuMiAyMi45IDUuNCA1Mi4zLTE3LjUgNjUuNXpNNTIyIDQ2My44ek00NjQgMjM0YTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMTcwIDQ0Ni4ybC0xMjIgNzAuMy0xMjItNzAuM1Y1MzkuOGwxMjItNzAuMyAxMjIgNzAuM3YxNDAuNHptMjM5LjkgMTMzLjljLTEzLjIgMjIuOS00Mi40IDMwLjgtNjUuMiAxNy42LTIyLjgtMTMuMi0zMC43LTQyLjYtMTcuNS02NS41czQyLjQtMzAuOCA2NS4yLTE3LjZjMjIuOSAxMy4yIDMwLjcgNDIuNSAxNy41IDY1LjV6JykpO1xuZXhwb3J0cy5EZXNrdG9wT3V0bGluZSA9IGdldEljb24oJ2Rlc2t0b3AnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE0MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM4MHYxMTJIMzA0Yy04LjggMC0xNiA3LjItMTYgMTZ2NDhjMCA0LjQgMy42IDggOCA4aDQzMmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNkg1NDhWNzAwaDM4MGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNzJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0ODhIMTM2VjIxMmg3NTJ2NDE2eicpKTtcbmV4cG9ydHMuRGluZ2RpbmdPdXRsaW5lID0gZ2V0SWNvbignZGluZ2RpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTczLjcgMjUyLjVDNDIyLjUgMTk3LjQgMjAxLjMgOTYuNyAyMDEuMyA5Ni43Yy0xNS43LTQuMS0xNy45IDExLjEtMTcuOSAxMS4xLTUgNjEuMSAzMy42IDE2MC41IDUzLjYgMTgyLjggMTkuOSAyMi4zIDMxOS4xIDExMy43IDMxOS4xIDExMy43UzMyNiAzNTcuOSAyNzAuNSAzNDEuOWMtNTUuNi0xNi0zNy45IDE3LjgtMzcuOSAxNy44IDExLjQgNjEuNyA2NC45IDEzMS44IDEwNy4yIDEzOC40IDQyLjIgNi42IDIyMC4xIDQgMjIwLjEgNHMtMzUuNSA0LjEtOTMuMiAxMS45Yy00Mi43IDUuOC05NyAxMi41LTExMS4xIDE3LjgtMzMuMSAxMi41IDI0IDYyLjYgMjQgNjIuNiA4NC43IDc2LjggMTI5LjcgNTAuNSAxMjkuNyA1MC41IDMzLjMtMTAuNyA2MS40LTE4LjUgODUuMi0yNC4yTDU2NSA3NDMuMWg4NC42TDYwMyA5MjhsMjA1LjMtMjcxLjlINzAwLjhsMjIuMy0zOC43Yy4zLjUuNC44LjQuOFM3OTkuOCA0OTYuMSA4MjkgNDMzLjhsLjYtMWgtLjFjNS0xMC44IDguNi0xOS43IDEwLTI1LjggMTctNzEuMy0xMTQuNS05OS40LTI2NS44LTE1NC41eicpKTtcbmV4cG9ydHMuRGlzY29ubmVjdE91dGxpbmUgPSBnZXRJY29uKCdkaXNjb25uZWN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTgzMi42IDE5MS40Yy04NC42LTg0LjYtMjIxLjUtODQuNi0zMDYgMGwtOTYuOSA5Ni45IDUxIDUxIDk2LjktOTYuOWM1My44LTUzLjggMTQ0LjYtNTkuNSAyMDQgMCA1OS41IDU5LjUgNTMuOCAxNTAuMiAwIDIwNGwtOTYuOSA5Ni45IDUxLjEgNTEuMSA5Ni45LTk2LjljODQuNC04NC42IDg0LjQtMjIxLjUtLjEtMzA2LjF6TTQ0Ni41IDc4MS42Yy01My44IDUzLjgtMTQ0LjYgNTkuNS0yMDQgMC01OS41LTU5LjUtNTMuOC0xNTAuMiAwLTIwNGw5Ni45LTk2LjktNTEuMS01MS4xLTk2LjkgOTYuOWMtODQuNiA4NC42LTg0LjYgMjIxLjUgMCAzMDZzMjIxLjUgODQuNiAzMDYgMGw5Ni45LTk2LjktNTEtNTEtOTYuOCA5N3pNMjYwLjMgMjA5LjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEwyMDkuNCAyNDlhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w1NTQuNCA1NTQuNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDM5LjYtMzkuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI2MC4zIDIwOS40eicpKTtcbmV4cG9ydHMuRG9sbGFyT3V0bGluZSA9IGdldEljb24oJ2RvbGxhcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6bTQ3LjctMzk1LjJsLTI1LjQtNS45VjM0OC42YzM4IDUuMiA2MS41IDI5IDY1LjUgNTguMi41IDQgMy45IDYuOSA3LjkgNi45aDQ0LjljNC43IDAgOC40LTQuMSA4LTguOC02LjEtNjIuMy01Ny40LTEwMi4zLTEyNS45LTEwOS4yVjI2M2MwLTQuNC0zLjYtOC04LThoLTI4LjFjLTQuNCAwLTggMy42LTggOHYzM2MtNzAuOCA2LjktMTI2LjIgNDYtMTI2LjIgMTE5IDAgNjcuNiA0OS44IDEwMC4yIDEwMi4xIDExMi43bDI0LjcgNi4zdjE0Mi43Yy00NC4yLTUuOS02OS0yOS41LTc0LjEtNjEuMy0uNi0zLjgtNC02LjYtNy45LTYuNkgzNjNjLTQuNyAwLTguNCA0LTggOC43IDQuNSA1NSA0Ni4yIDEwNS42IDEzNS4yIDExMi4xVjc2MWMwIDQuNCAzLjYgOCA4IDhoMjguNGM0LjQgMCA4LTMuNiA4LTguMWwtLjItMzEuN2M3OC4zLTYuOSAxMzQuMy00OC44IDEzNC4zLTEyNC0uMS02OS40LTQ0LjItMTAwLjQtMTA5LTExNi40em0tNjguNi0xNi4yYy01LjYtMS42LTEwLjMtMy4xLTE1LTUtMzMuOC0xMi4yLTQ5LjUtMzEuOS00OS41LTU3LjMgMC0zNi4zIDI3LjUtNTcgNjQuNS02MS43djEyNHpNNTM0LjMgNjc3VjU0My4zYzMuMS45IDUuOSAxLjYgOC44IDIuMiA0Ny4zIDE0LjQgNjMuMiAzNC40IDYzLjIgNjUuMSAwIDM5LjEtMjkuNCA2Mi42LTcyIDY2LjR6JykpO1xuZXhwb3J0cy5Eb3VibGVSaWdodE91dGxpbmUgPSBnZXRJY29uKCdkb3VibGUtcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTMzLjIgNDkyLjNMMjc3LjkgMTY2LjFjLTMtMy45LTcuNy02LjEtMTIuNi02LjFIMTg4Yy02LjcgMC0xMC40IDcuNy02LjMgMTIuOUw0NDcuMSA1MTIgMTgxLjcgODUxLjFBNy45OCA3Ljk4IDAgMCAwIDE4OCA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXptMzA0IDBMNTgxLjkgMTY2LjFjLTMtMy45LTcuNy02LjEtMTIuNi02LjFINDkyYy02LjcgMC0xMC40IDcuNy02LjMgMTIuOUw3NTEuMSA1MTIgNDg1LjcgODUxLjFBNy45OCA3Ljk4IDAgMCAwIDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXonKSk7XG5leHBvcnRzLkRvdENoYXJ0T3V0bGluZSA9IGdldEljb24oJ2RvdC1jaGFydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODggNzkySDIwMFYxNjhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNzUyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yODggNjA0YTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMSAwLTEyOCAwem0xMTgtMjI0YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMTU4IDIyOGE5NiA5NiAwIDEgMCAxOTIgMCA5NiA5NiAwIDEgMC0xOTIgMHptMTQ4LTMxNGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLkRvdWJsZUxlZnRPdXRsaW5lID0gZ2V0SWNvbignZG91YmxlLWxlZnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjcyLjkgNTEybDI2NS40LTMzOS4xYzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03Ny4zYy00LjkgMC05LjYgMi4zLTEyLjYgNi4xTDE4Ni44IDQ5Mi4zYTMxLjk5IDMxLjk5IDAgMCAwIDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDUzMmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUwyNzIuOSA1MTJ6bTMwNCAwbDI2NS40LTMzOS4xYzQuMS01LjIuNC0xMi45LTYuMy0xMi45aC03Ny4zYy00LjkgMC05LjYgMi4zLTEyLjYgNi4xTDQ5MC44IDQ5Mi4zYTMxLjk5IDMxLjk5IDAgMCAwIDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6JykpO1xuZXhwb3J0cy5Eb3dubG9hZE91dGxpbmUgPSBnZXRJY29uKCdkb3dubG9hZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MDUuNyA2NjFhOCA4IDAgMCAwIDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRHJpYmJibGVPdXRsaW5lID0gZ2V0SWNvbignZHJpYmJibGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDk2QzI4Mi42IDk2IDk2IDI4Mi42IDk2IDUxMnMxODYuNiA0MTYgNDE2IDQxNiA0MTYtMTg2LjYgNDE2LTQxNlM3NDEuNCA5NiA1MTIgOTZ6bTI3NS4xIDE5MS44YzQ5LjUgNjAuNSA3OS41IDEzNy41IDgwLjIgMjIxLjQtMTEuNy0yLjUtMTI5LjItMjYuMy0yNDcuNC0xMS40LTIuNS02LjEtNS0xMi4yLTcuNi0xOC4zLTcuNC0xNy4zLTE1LjMtMzQuNi0yMy42LTUxLjVDNzIwIDM3NC4zIDc3OS42IDI5OCA3ODcuMSAyODcuOHpNNTEyIDE1Ny4yYzkwLjMgMCAxNzIuOCAzMy45IDIzNS41IDg5LjUtNi40IDkuMS01OS45IDgxLTE4Ni4yIDEyOC40LTU4LjItMTA3LTEyMi43LTE5NC44LTEzMi42LTIwOCAyNy4zLTYuNiA1NS4yLTkuOSA4My4zLTkuOXpNMzYwLjkgMTkxYzkuNCAxMi44IDcyLjkgMTAwLjkgMTMxLjcgMjA1LjVDMzI2LjQgNDQwLjYgMTgwIDQ0MCAxNjQuMSA0MzkuOGMyMy4xLTExMC4zIDk3LjQtMjAxLjkgMTk2LjgtMjQ4Ljh6TTE1Ni43IDUxMi41YzAtMy42LjEtNy4zLjItMTAuOSAxNS41LjMgMTg3LjcgMi41IDM2NS4yLTUwLjYgMTAuMiAxOS45IDE5LjkgNDAuMSAyOC44IDYwLjMtNC43IDEuMy05LjQgMi43LTE0IDQuMkMzNTMuNiA1NzQuOSAyNTYuMSA3MzYuNCAyNDggNzUwLjFjLTU2LjctNjMtOTEuMy0xNDYuMy05MS4zLTIzNy42ek01MTIgODY3LjhjLTgyLjIgMC0xNTcuOS0yOC0yMTguMS03NSA2LjQtMTMuMSA3OC4zLTE1MiAyNzguNy0yMjEuOWwyLjMtLjhjNDkuOSAxMjkuNiA3MC41IDIzOC4zIDc1LjggMjY5LjVBMzUwLjQ2IDM1MC40NiAwIDAgMSA1MTIgODY3Ljh6bTE5OC41LTYwLjdjLTMuNi0yMS42LTIyLjUtMTI1LjYtNjktMjUzLjNDNzUyLjkgNTM2IDg1MC43IDU2NS4yIDg2Mi44IDU2OWMtMTUuOCA5OC44LTcyLjUgMTg0LjItMTUyLjMgMjM4LjF6JykpO1xuZXhwb3J0cy5Ecm9wYm94T3V0bGluZSA9IGdldEljb24oJ2Ryb3Bib3gnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjQgNTU2LjlsMjY0LjIgMTczLjVMNTEyLjUgNTc3IDI0Ni44IDQxMi43em04OTYtMjkwLjN6bTAgMEw2OTYuOCA5NSA1MTIuNSAyNDguNWwyNjUuMiAxNjQuMkw1MTIuNSA1NzdsMTg0LjMgMTUzLjRMOTYwIDU1OC44IDc3Ny43IDQxMi43ek01MTMgNjA5LjhMMzI4LjIgNzYzLjNsLTc5LjQtNTEuNXY1Ny44TDUxMyA5MjhsMjYzLjctMTU4LjR2LTU3LjhsLTc4LjkgNTEuNXpNMzI4LjIgOTVMNjQgMjY1LjFsMTgyLjggMTQ3LjYgMjY1LjctMTY0LjJ6TTY0IDU1Ni45eicpKTtcbmV4cG9ydHMuRWxsaXBzaXNPdXRsaW5lID0gZ2V0SWNvbignZWxsaXBzaXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTc2IDUxMWE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMjgwIDBhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuRW50ZXJPdXRsaW5lID0gZ2V0SWNvbignZW50ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODY0IDE3MGgtNjBjLTQuNCAwLTggMy42LTggOHY1MThIMzEwdi03M2MwLTYuNy03LjgtMTAuNS0xMy02LjNsLTE0MS45IDExMmE4IDggMCAwIDAgMCAxMi42bDE0MS45IDExMmM1LjMgNC4yIDEzIC40IDEzLTYuM3YtNzVoNDk4YzM1LjMgMCA2NC0yOC43IDY0LTY0VjE3OGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5FdXJvT3V0bGluZSA9IGdldEljb24oJ2V1cm8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xMTcuNy01ODguNmMtMTUuOS0zLjUtMzQuNC01LjQtNTUuMy01LjQtMTA2LjcgMC0xNzguOSA1NS43LTE5OC42IDE0OS45SDM0NGMtNC40IDAtOCAzLjYtOCA4djI3LjJjMCA0LjQgMy42IDggOCA4aDI2LjRjLS4zIDQuMS0uMyA4LjQtLjMgMTIuOHYzNi45SDM0NGMtNC40IDAtOCAzLjYtOCA4VjU2OGMwIDQuNCAzLjYgOCA4IDhoMzAuMmMxNy4yIDk5LjIgOTAuNCAxNTggMjAwLjIgMTU4IDIwLjkgMCAzOS40LTEuNyA1NS4zLTUuMSAzLjctLjggNi40LTQgNi40LTcuOHYtNDIuOGMwLTUtNC42LTguOC05LjUtNy44LTE0LjcgMi44LTMxLjkgNC4xLTUxLjggNC4xLTY4LjUgMC0xMTQuNS0zNi42LTEyOS44LTk4LjZoMTMwLjZjNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0MzkuMnYtMzZjMC00LjcgMC05LjQuMy0xMy44aDEzNS45YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDQ3LjFjMTcuMi01Ni45IDYyLjMtOTAuNCAxMjcuNi05MC40IDE5LjkgMCAzNy4xIDEuNSA1MS43IDQuNGE4IDggMCAwIDAgOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44eicpKTtcbmV4cG9ydHMuRXhjZXB0aW9uT3V0bGluZSA9IGdldEljb24oJ2V4Y2VwdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMzc2IDExNmMtMTE5LjMgMC0yMTYgOTYuNy0yMTYgMjE2czk2LjcgMjE2IDIxNiAyMTYgMjE2LTk2LjcgMjE2LTIxNi05Ni43LTIxNi0yMTYtMjE2em0xMDcuNSAzMjMuNUM3NTAuOCA4NjguMiA3MTIuNiA4ODQgNjcyIDg4NHMtNzguOC0xNS44LTEwNy41LTQ0LjVDNTM1LjggODEwLjggNTIwIDc3Mi42IDUyMCA3MzJzMTUuOC03OC44IDQ0LjUtMTA3LjVDNTkzLjIgNTk1LjggNjMxLjQgNTgwIDY3MiA1ODBzNzguOCAxNS44IDEwNy41IDQ0LjVDODA4LjIgNjUzLjIgODI0IDY5MS40IDgyNCA3MzJzLTE1LjggNzguOC00NC41IDEwNy41ek02NDAgODEyYTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAtNjQgMHptMTItNjRoNDBjNC40IDAgOC0zLjYgOC04VjYyOGMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2MTEyYzAgNC40IDMuNiA4IDggOHpNNDQwIDg1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRXhjbGFtYXRpb25PdXRsaW5lID0gZ2V0SWNvbignZXhjbGFtYXRpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDQ4IDgwNGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDEgMC0xMjggMHptMzItMTY4aDY0YzQuNCAwIDgtMy42IDgtOFYxNjRjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djQ2NGMwIDQuNCAzLjYgOCA4IDh6JykpO1xuZXhwb3J0cy5FeHBvcnRPdXRsaW5lID0gZ2V0SWNvbignZXhwb3J0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4OC4zIDc1Ny40aC01My44Yy00LjIgMC03LjcgMy41LTcuNyA3Ljd2NjEuOEgxOTcuMVYxOTcuMWg2MjkuOHY2MS44YzAgNC4yIDMuNSA3LjcgNy43IDcuN2g1My44YzQuMiAwIDcuNy0zLjQgNy43LTcuN1YxNTguN2MwLTE3LTEzLjctMzAuNy0zMC43LTMwLjdIMTU4LjdjLTE3IDAtMzAuNyAxMy43LTMwLjcgMzAuN3Y3MDYuNmMwIDE3IDEzLjcgMzAuNyAzMC43IDMwLjdoNzA2LjZjMTcgMCAzMC43LTEzLjcgMzAuNy0zMC43Vjc2NS4xYzAtNC4zLTMuNS03LjctNy43LTcuN3ptMTguNi0yNTEuN0w3NjUgMzkzLjdjLTUuMy00LjItMTMtLjQtMTMgNi4zdjc2SDQzOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMTR2NzZjMCA2LjcgNy44IDEwLjUgMTMgNi4zbDE0MS45LTExMmE4IDggMCAwIDAgMC0xMi42eicpKTtcbmV4cG9ydHMuRmFsbE91dGxpbmUgPSBnZXRJY29uKCdmYWxsJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkyNS45IDgwNGwtMjQtMTk5LjJjLS44LTYuNi04LjktOS40LTEzLjYtNC43TDgyOSA2NTkuNSA1NTcuNyAzODguM2MtNi4zLTYuMi0xNi40LTYuMi0yMi42IDBMNDMzLjMgNDkwIDE1Ni42IDIxMy4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTQ1IDQ1LjJhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w0MjIgNTkxLjdjNi4yIDYuMyAxNi40IDYuMyAyMi42IDBMNTQ2LjQgNDkwbDIyNi4xIDIyNi01OS4zIDU5LjNhOC4wMSA4LjAxIDAgMCAwIDQuNyAxMy42bDE5OS4yIDI0YzUuMS43IDkuNS0zLjcgOC44LTguOXonKSk7XG5leHBvcnRzLkZpbGVEb25lT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtZG9uZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMzc2IDExNmMtMTE5LjMgMC0yMTYgOTYuNy0yMTYgMjE2czk2LjcgMjE2IDIxNiAyMTYgMjE2LTk2LjcgMjE2LTIxNi05Ni43LTIxNi0yMTYtMjE2em0xMDcuNSAzMjMuNUM3NTAuOCA4NjguMiA3MTIuNiA4ODQgNjcyIDg4NHMtNzguOC0xNS44LTEwNy41LTQ0LjVDNTM1LjggODEwLjggNTIwIDc3Mi42IDUyMCA3MzJzMTUuOC03OC44IDQ0LjUtMTA3LjVDNTkzLjIgNTk1LjggNjMxLjQgNTgwIDY3MiA1ODBzNzguOCAxNS44IDEwNy41IDQ0LjVDODA4LjIgNjUzLjIgODI0IDY5MS40IDgyNCA3MzJzLTE1LjggNzguOC00NC41IDEwNy41ek03NjEgNjU2aC00NC4zYy0yLjYgMC01IDEuMi02LjUgMy4zbC02My41IDg3LjgtMjMuMS0zMS45YTcuOTIgNy45MiAwIDAgMC02LjUtMy4zSDU3M2MtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsNzMuOCAxMDIuMWMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDExNC4yLTE1OGMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3pNNDQwIDg1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuRmlsZVN5bmNPdXRsaW5lID0gZ2V0SWNvbignZmlsZS1zeW5jJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTI5NiAyNTZjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTkyIDIwMHYtNDhjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04em0tNDggMzk2SDIwOFYxNDhoNTYwdjM0NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjEwOGMwLTE3LjctMTQuMy0zMi0zMi0zMkgxNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTEwNC4xLTExNS42YzEuOC0zNC41IDE2LjItNjYuOCA0MC44LTkxLjQgMjYuMi0yNi4yIDYyLTQxIDk5LjEtNDEgMzcuNCAwIDcyLjYgMTQuNiA5OS4xIDQxIDMuMiAzLjIgNi4zIDYuNiA5LjIgMTAuMUw3NjkuMiA2NzNhOCA4IDAgMCAwIDMgMTQuMWw5My4zIDIyLjVjNSAxLjIgOS44LTIuNiA5LjktNy43bC42LTk1LjRhOCA4IDAgMCAwLTEyLjktNi40bC0yMC4zIDE1LjhDODA1LjQgNTY5LjYgNzQ4LjEgNTQwIDY4NCA1NDBjLTEwOS45IDAtMTk5LjYgODYuOS0yMDQgMTk1LjctLjIgNC41IDMuNSA4LjMgOCA4LjNoNDguMWM0LjMgMCA3LjgtMy4zIDgtNy42ek04ODAgNzQ0aC00OC4xYy00LjMgMC03LjggMy4zLTggNy42LTEuOCAzNC41LTE2LjIgNjYuOC00MC44IDkxLjQtMjYuMiAyNi4yLTYyIDQxLTk5LjEgNDEtMzcuNCAwLTcyLjYtMTQuNi05OS4xLTQxLTMuMi0zLjItNi4zLTYuNi05LjItMTAuMWwyMy4xLTE3LjlhOCA4IDAgMCAwLTMtMTQuMWwtOTMuMy0yMi41Yy01LTEuMi05LjggMi42LTkuOSA3LjdsLS42IDk1LjRhOCA4IDAgMCAwIDEyLjkgNi40bDIwLjMtMTUuOEM1NjIuNiA5MTguNCA2MTkuOSA5NDggNjg0IDk0OGMxMDkuOSAwIDE5OS42LTg2LjkgMjA0LTE5NS43LjItNC41LTMuNS04LjMtOC04LjN6JykpO1xuZXhwb3J0cy5GaWxlUHJvdGVjdE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXByb3RlY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjQ0LjcgNjY5LjJhNy45MiA3LjkyIDAgMCAwLTYuNS0zLjNINTk0Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2w3My44IDEwMi4xYzMuMiA0LjQgOS43IDQuNCAxMi45IDBsMTE0LjItMTU4YzMuOC01LjMgMC0xMi43LTYuNS0xMi43aC00NC4zYy0yLjYgMC01IDEuMi02LjUgMy4zbC02My41IDg3LjgtMjIuOS0zMS45ek02ODggMzA2di00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTg0IDQ1OEgyMDhWMTQ4aDU2MHYyOTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzEyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00MDIuNi0zMjAuOGwtMTkyLTY2LjdjLS45LS4zLTEuNy0uNC0yLjYtLjRzLTEuOC4xLTIuNi40bC0xOTIgNjYuN2E3Ljk2IDcuOTYgMCAwIDAtNS40IDcuNXYyNTEuMWMwIDIuNSAxLjEgNC44IDMuMSA2LjNsMTkyIDE1MC4yYzEuNCAxLjEgMy4yIDEuNyA0LjkgMS43czMuNS0uNiA0LjktMS43bDE5Mi0xNTAuMmMxLjktMS41IDMuMS0zLjggMy4xLTYuM1Y1MzguN2MwLTMuNC0yLjItNi40LTUuNC03LjV6TTgyNiA3NjMuN0w2ODggODcxLjYgNTUwIDc2My43VjU3N2wxMzgtNDggMTM4IDQ4djE4Ni43eicpKTtcbmV4cG9ydHMuRmlsZVNlYXJjaE91dGxpbmUgPSBnZXRJY29uKCdmaWxlLXNlYXJjaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002ODggMzEydi00OGMwLTQuNC0zLjYtOC04LThIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDM4NGM0LjQgMCA4LTMuNiA4LTh6bS0zOTIgODhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDI5NnptMTQ0IDQ1MkgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjcyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em00NDUuNyA1MS41bC05My4zLTkzLjNDODE0LjcgNzgwLjcgODI4IDc0My45IDgyOCA3MDRjMC05Ny4yLTc4LjgtMTc2LTE3Ni0xNzZzLTE3NiA3OC44LTE3NiAxNzYgNzguOCAxNzYgMTc2IDE3NmMzNS44IDAgNjktMTAuNyA5Ni44LTI5bDk0LjcgOTQuN2MxLjYgMS42IDMuNiAyLjMgNS42IDIuM3M0LjEtLjggNS42LTIuM2wzMS0zMWE3LjkgNy45IDAgMCAwIDAtMTEuMnpNNjUyIDgxNmMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6JykpO1xuZXhwb3J0cy5GaWxlSnBnT3V0bGluZSA9IGdldEljb24oJ2ZpbGUtanBnJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg3NC42IDMwMS44TDU5Ni44IDIxLjNjLTQuNS00LjUtOS40LTguMy0xNC43LTExLjUtMS40LS44LTIuOC0xLjYtNC4zLTIuMy0uOS0uNS0xLjktLjktMi44LTEuMy05LTQtMTguOS02LjItMjktNi4ySDIwMWMtMzkuOCAwLTczIDMyLjItNzMgNzJ2ODgwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDYyM2MzOS44IDAgNzEtMzIuMiA3MS03MlYzNTIuNWMwLTE5LTctMzcuMi0yMC40LTUwLjd6TTU4MyAxMTAuNEw3ODMuOCAzMTJINTgzVjExMC40ek04MjMgOTUySDIwMFY3MmgzMTF2MjQwYzAgMzkuOCAzMy4yIDcyIDczIDcyaDIzOXY1Njh6TTM1MCA2OTYuNWMwIDI0LjItNy41IDMxLjQtMjEuOSAzMS40LTkgMC0xOC40LTUuOC0yNC44LTE4LjVMMjcyLjkgNzMyYzEzLjQgMjIuOSAzMi4zIDM0LjIgNjEuMyAzNC4yIDQxLjYgMCA2MC44LTI5LjkgNjAuOC02Ni4yVjU3N2gtNDV2MTE5LjV6TTUwMS4zIDU3N0g0Mzd2MTg2aDQ0di02MmgyMS42YzM5LjEgMCA3My4xLTE5LjYgNzMuMS02My42IDAtNDUuOC0zMy41LTYwLjQtNzQuNC02MC40em0tLjggODlINDgxdi01M2gxOC4yYzIxLjUgMCAzMy40IDYuMiAzMy40IDI0LjkgMCAxOC4xLTEwLjUgMjguMS0zMi4xIDI4LjF6bTE4Mi41LTl2MzZoMzB2MzAuMWMtNCAyLjktMTEgNC43LTE3LjcgNC43LTM0LjMgMC01MC43LTIxLjQtNTAuNy01OC4yIDAtMzYuMSAxOS43LTU3LjQgNDcuMS01Ny40IDE1LjMgMCAyNSA2LjIgMzQgMTQuNGwyMy43LTI4LjNjLTEyLjctMTIuOC0zMi4xLTI0LjItNTkuMi0yNC4yLTQ5LjYgMC05MS4xIDM1LjMtOTEuMSA5NyAwIDYyLjcgNDAgOTUuMSA5MS41IDk1LjEgMjUuOSAwIDQ5LjItMTAuMiA2MS41LTIyLjZWNjU3SDY4M3onKSk7XG5leHBvcnRzLkZvbnRDb2xvcnNPdXRsaW5lID0gZ2V0SWNvbignZm9udC1jb2xvcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA0IDgxNkgxMjBjLTQuNCAwLTggMy42LTggOHY4MGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04em0tNjUwLjMtODBoODVjNC4yIDAgOC0yLjcgOS4zLTYuOGw1My43LTE2NmgyMTkuMmw1My4yIDE2NmMxLjMgNCA1IDYuOCA5LjMgNi44aDg5LjFjMS4xIDAgMi4yLS4yIDMuMi0uNWE5LjcgOS43IDAgMCAwIDYtMTIuNEw1NzMuNiAxMTguNmE5LjkgOS45IDAgMCAwLTkuMi02LjZINDYyLjFjLTQuMiAwLTcuOSAyLjYtOS4yIDYuNkwyNDQuNSA3MjMuMWMtLjQgMS0uNSAyLjEtLjUgMy4yLS4xIDUuMyA0LjMgOS43IDkuNyA5Ljd6bTI1NS45LTUxNi4xaDQuMWw4My44IDI2My44SDQyNC45bDg0LjctMjYzLjh6JykpO1xuZXhwb3J0cy5Gb250U2l6ZU91dGxpbmUgPSBnZXRJY29uKCdmb250LXNpemUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTIwIDQxNkg2MTZjLTQuNCAwLTggMy42LTggOHYxMTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNTZoNjB2MzIwaC00NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThoLTQ2VjQ4MGg2MHY1NmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyNGMwLTQuNC0zLjYtOC04LTh6TTY1NiAyOTZWMTY4YzAtNC40LTMuNi04LTgtOEgxMDRjLTQuNCAwLTggMy42LTggOHYxMjhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNjRoMTY4djU2MGgtOTJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC05MlYyMzJoMTY4djY0YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh6JykpO1xuZXhwb3J0cy5Gb3JrT3V0bGluZSA9IGdldEljb24oJ2ZvcmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzUyIDEwMGMtNjEuOCAwLTExMiA1MC4yLTExMiAxMTIgMCA0Ny43IDI5LjkgODguNSA3MiAxMDQuNnYyNy42TDUxMiA2MDEuNCAzMTIgMzQ0LjJ2LTI3LjZjNDIuMS0xNi4xIDcyLTU2LjkgNzItMTA0LjYgMC02MS44LTUwLjItMTEyLTExMi0xMTJzLTExMiA1MC4yLTExMiAxMTJjMCA1MC42IDMzLjggOTMuNSA4MCAxMDcuM3YzNC40YzAgOS43IDMuMyAxOS4zIDkuMyAyN0w0NzYgNjcyLjN2MzMuNmMtNDQuMiAxNS03NiA1Ni45LTc2IDEwNi4xIDAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJjMC00OS4yLTMxLjgtOTEtNzYtMTA2LjF2LTMzLjZsMjI2LjctMjkxLjZjNi03LjcgOS4zLTE3LjMgOS4zLTI3di0zNC40YzQ2LjItMTMuOCA4MC01Ni43IDgwLTEwNy4zIDAtNjEuOC01MC4yLTExMi0xMTItMTEyek0yMjQgMjEyYTQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDAgNDguMDEgNDguMDEgMCAwIDEtOTYgMHptMzM2IDYwMGE0OC4wMSA0OC4wMSAwIDAgMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDB6bTE5Mi01NTJhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eicpKTtcbmV4cG9ydHMuRm9ybU91dGxpbmUgPSBnZXRJY29uKCdmb3JtJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwNCA1MTJoLTU2Yy00LjQgMC04IDMuNi04IDh2MzIwSDE4NFYxODRoMzIwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MjBjMC00LjQtMy42LTgtOC04eicsICdNMzU1LjkgNTM0LjlMMzU0IDY1My44Yy0uMSA4LjkgNy4xIDE2LjIgMTYgMTYuMmguNGwxMTgtMi45YzItLjEgNC0uOSA1LjQtMi4zbDQxNS45LTQxNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDc4NS40IDExNC4zYy0xLjYtMS42LTMuNi0yLjMtNS43LTIuM3MtNC4xLjgtNS43IDIuM2wtNDE1LjggNDE1YTguMyA4LjMgMCAwIDAtMi4zIDUuNnptNjMuNSAyMy42TDc3OS43IDE5OWw0NS4yIDQ1LjEtMzYwLjUgMzU5LjctNDUuNyAxLjEuNy00Ni40eicpKTtcbmV4cG9ydHMuRnVsbHNjcmVlbkV4aXRPdXRsaW5lID0gZ2V0SWNvbignZnVsbHNjcmVlbi1leGl0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM5MSAyNDAuOWMtLjgtNi42LTguOS05LjQtMTMuNi00LjdsLTQzLjcgNDMuN0wyMDAgMTQ2LjNhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtNDIuNCA0Mi4zYTguMDMgOC4wMyAwIDAgMCAwIDExLjNMMjgwIDMzMy42bC00My45IDQzLjlhOC4wMSA4LjAxIDAgMCAwIDQuNyAxMy42TDQwMSA0MTBjNS4xLjYgOS41LTMuNyA4LjktOC45TDM5MSAyNDAuOXptMTAuMSAzNzMuMkwyNDAuOCA2MzNjLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDE0Ni4zIDgyNGE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjQgNDIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDMzMy43IDc0NGw0My43IDQzLjdBOC4wMSA4LjAxIDAgMCAwIDM5MSA3ODNsMTguOS0xNjAuMWMuNi01LjEtMy43LTkuNC04LjgtOC44em0yMjEuOC0yMDQuMkw3ODMuMiAzOTFjNi42LS44IDkuNC04LjkgNC43LTEzLjZMNzQ0IDMzMy42IDg3Ny43IDIwMGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjNhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw2OTAuMyAyNzkuOWwtNDMuNy00My43YTguMDEgOC4wMSAwIDAgMC0xMy42IDQuN0w2MTQuMSA0MDFjLS42IDUuMiAzLjcgOS41IDguOCA4Ljl6TTc0NCA2OTAuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMCAwLTQuNy0xMy42TDYyMyA2MTRjLTUuMS0uNi05LjUgMy43LTguOSA4LjlMNjMzIDc4My4xYy44IDYuNiA4LjkgOS40IDEzLjYgNC43bDQzLjctNDMuN0w4MjQgODc3LjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjNjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w3NDQgNjkwLjR6JykpO1xuZXhwb3J0cy5GdWxsc2NyZWVuT3V0bGluZSA9IGdldEljb24oJ2Z1bGxzY3JlZW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjkwIDIzNi40bDQzLjktNDMuOWE4LjAxIDguMDEgMCAwIDAtNC43LTEzLjZMMTY5IDE2MGMtNS4xLS42LTkuNSAzLjctOC45IDguOUwxNzkgMzI5LjFjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNDMuNy00My43TDM3MCA0MjMuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQyLjQtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI5MCAyMzYuNHptMzUyLjcgMTg3LjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMzMuNy0xMzMuNiA0My43IDQzLjdhOC4wMSA4LjAxIDAgMCAwIDEzLjYtNC43TDg2My45IDE2OWMuNi01LjEtMy43LTkuNS04LjktOC45TDY5NC44IDE3OWMtNi42LjgtOS40IDguOS00LjcgMTMuNmw0My45IDQzLjlMNjAwLjMgMzcwYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40ek04NDUgNjk0LjljLS44LTYuNi04LjktOS40LTEzLjYtNC43bC00My43IDQzLjdMNjU0IDYwMC4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTQyLjQgNDIuM2E4LjAzIDguMDMgMCAwIDAgMCAxMS4zTDczNCA3ODcuNmwtNDMuOSA0My45YTguMDEgOC4wMSAwIDAgMCA0LjcgMTMuNkw4NTUgODY0YzUuMS42IDkuNS0zLjcgOC45LTguOUw4NDUgNjk0Ljl6bS00NjMuNy05NC42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMjM2LjMgNzMzLjlsLTQzLjctNDMuN2E4LjAxIDguMDEgMCAwIDAtMTMuNiA0LjdMMTYwLjEgODU1Yy0uNiA1LjEgMy43IDkuNSA4LjkgOC45TDMyOS4yIDg0NWM2LjYtLjggOS40LTguOSA0LjctMTMuNkwyOTAgNzg3LjYgNDIzLjcgNjU0YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTQyLjQtNDIuNHonKSk7XG5leHBvcnRzLkdhdGV3YXlPdXRsaW5lID0gZ2V0SWNvbignZ2F0ZXdheScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjggMzkyYzguOCAwIDE2LTcuMiAxNi0xNlYxOTJjMC04LjgtNy4yLTE2LTE2LTE2SDc0NGMtOC44IDAtMTYgNy4yLTE2IDE2djU2SDI5NnYtNTZjMC04LjgtNy4yLTE2LTE2LTE2SDk2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTg0YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDBIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxODRjMCA4LjggNy4yIDE2IDE2IDE2aDE4NGM4LjggMCAxNi03LjIgMTYtMTZ2LTU2aDQzMnY1NmMwIDguOCA3LjIgMTYgMTYgMTZoMTg0YzguOCAwIDE2LTcuMiAxNi0xNlY2NDhjMC04LjgtNy4yLTE2LTE2LTE2aC01NlYzOTJoNTZ6TTc5MiAyNDBoODh2ODhoLTg4di04OHptLTY0OCA4OHYtODhoODh2ODhoLTg4em04OCA0NTZoLTg4di04OGg4OHY4OHptNjQ4LTg4djg4aC04OHYtODhoODh6bS04MC02NGgtNTZjLTguOCAwLTE2IDcuMi0xNiAxNnY1NkgyOTZ2LTU2YzAtOC44LTcuMi0xNi0xNi0xNmgtNTZWMzkyaDU2YzguOCAwIDE2LTcuMiAxNi0xNnYtNTZoNDMydjU2YzAgOC44IDcuMiAxNiAxNiAxNmg1NnYyNDB6JykpO1xuZXhwb3J0cy5Eb3duT3V0bGluZSA9IGdldEljb24oJ2Rvd24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg0IDI1NmgtNzVjLTUuMSAwLTkuOSAyLjUtMTIuOSA2LjZMNTEyIDY1NC4yIDIyNy45IDI2Mi42Yy0zLTQuMS03LjgtNi42LTEyLjktNi42aC03NWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMzUyLjYgNDg2LjFjMTIuOCAxNy42IDM5IDE3LjYgNTEuNyAwbDM1Mi42LTQ4Ni4xYzMuOS01LjMuMS0xMi43LTYuNC0xMi43eicpKTtcbmV4cG9ydHMuRHJhZ091dGxpbmUgPSBnZXRJY29uKCdkcmFnJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOS4zIDUwNi4zTDc4MS43IDQwNS42YTcuMjMgNy4yMyAwIDAgMC0xMS43IDUuN1Y0NzZINTQ4VjI1NGg2NC44YzYgMCA5LjQtNyA1LjctMTEuN0w1MTcuNyAxMTQuN2E3LjE0IDcuMTQgMCAwIDAtMTEuMyAwTDQwNS42IDI0Mi4zYTcuMjMgNy4yMyAwIDAgMCA1LjcgMTEuN0g0NzZ2MjIySDI1NHYtNjQuOGMwLTYtNy05LjQtMTEuNy01LjdMMTE0LjcgNTA2LjNhNy4xNCA3LjE0IDAgMCAwIDAgMTEuM2wxMjcuNSAxMDAuOGM0LjcgMy43IDExLjcuNCAxMS43LTUuN1Y1NDhoMjIydjIyMmgtNjQuOGMtNiAwLTkuNCA3LTUuNyAxMS43bDEwMC44IDEyNy41YzIuOSAzLjcgOC41IDMuNyAxMS4zIDBsMTAwLjgtMTI3LjVjMy43LTQuNy40LTExLjctNS43LTExLjdINTQ4VjU0OGgyMjJ2NjQuOGMwIDYgNyA5LjQgMTEuNyA1LjdsMTI3LjUtMTAwLjhhNy4zIDcuMyAwIDAgMCAuMS0xMS40eicpKTtcbmV4cG9ydHMuR2xvYmFsT3V0bGluZSA9IGdldEljb24oJ2dsb2JhbCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTQuNCA4MDAuOWMuMi0uMy41LS42LjctLjlDOTIwLjYgNzIyLjEgOTYwIDYyMS43IDk2MCA1MTJzLTM5LjQtMjEwLjEtMTA0LjgtMjg4Yy0uMi0uMy0uNS0uNS0uNy0uOC0xLjEtMS4zLTIuMS0yLjUtMy4yLTMuNy0uNC0uNS0uOC0uOS0xLjItMS40bC00LjEtNC43LS4xLS4xYy0xLjUtMS43LTMuMS0zLjQtNC42LTUuMWwtLjEtLjFjLTMuMi0zLjQtNi40LTYuOC05LjctMTAuMWwtLjEtLjEtNC44LTQuOC0uMy0uM2MtMS41LTEuNS0zLTIuOS00LjUtNC4zLS41LS41LTEtMS0xLjYtMS41LTEtMS0yLTEuOS0zLTIuOC0uMy0uMy0uNy0uNi0xLTFDNzM2LjQgMTA5LjIgNjI5LjUgNjQgNTEyIDY0cy0yMjQuNCA0NS4yLTMwNC4zIDExOS4yYy0uMy4zLS43LjYtMSAxLTEgLjktMiAxLjktMyAyLjktLjUuNS0xIDEtMS42IDEuNS0xLjUgMS40LTMgMi45LTQuNSA0LjNsLS4zLjMtNC44IDQuOC0uMS4xYy0zLjMgMy4zLTYuNSA2LjctOS43IDEwLjFsLS4xLjFjLTEuNiAxLjctMy4xIDMuNC00LjYgNS4xbC0uMS4xYy0xLjQgMS41LTIuOCAzLjEtNC4xIDQuNy0uNC41LS44LjktMS4yIDEuNC0xLjEgMS4yLTIuMSAyLjUtMy4yIDMuNy0uMi4zLS41LjUtLjcuOEMxMDMuNCAzMDEuOSA2NCA0MDIuMyA2NCA1MTJzMzkuNCAyMTAuMSAxMDQuOCAyODhjLjIuMy41LjYuNy45bDMuMSAzLjdjLjQuNS44LjkgMS4yIDEuNGw0LjEgNC43YzAgLjEuMS4xLjEuMiAxLjUgMS43IDMgMy40IDQuNiA1bC4xLjFjMy4yIDMuNCA2LjQgNi44IDkuNiAxMC4xbC4xLjFjMS42IDEuNiAzLjEgMy4yIDQuNyA0LjdsLjMuM2MzLjMgMy4zIDYuNyA2LjUgMTAuMSA5LjYgODAuMSA3NCAxODcgMTE5LjIgMzA0LjUgMTE5LjJzMjI0LjQtNDUuMiAzMDQuMy0xMTkuMmEzMDAgMzAwIDAgMCAwIDEwLTkuNmwuMy0uM2MxLjYtMS42IDMuMi0zLjEgNC43LTQuN2wuMS0uMWMzLjMtMy4zIDYuNS02LjcgOS42LTEwLjFsLjEtLjFjMS41LTEuNyAzLjEtMy4zIDQuNi01IDAtLjEuMS0uMS4xLS4yIDEuNC0xLjUgMi44LTMuMSA0LjEtNC43LjQtLjUuOC0uOSAxLjItMS40YTk5IDk5IDAgMCAwIDMuMy0zLjd6bTQuMS0xNDIuNmMtMTMuOCAzMi42LTMyIDYyLjgtNTQuMiA5MC4yYTQ0NC4wNyA0NDQuMDcgMCAwIDAtODEuNS01NS45YzExLjYtNDYuOSAxOC44LTk4LjQgMjAuNy0xNTIuNkg4ODdjLTMgNDAuOS0xMi42IDgwLjYtMjguNSAxMTguM3pNODg3IDQ4NEg3NDMuNWMtMS45LTU0LjItOS4xLTEwNS43LTIwLjctMTUyLjYgMjkuMy0xNS42IDU2LjYtMzQuNCA4MS41LTU1LjlBMzczLjg2IDM3My44NiAwIDAgMSA4ODcgNDg0ek02NTguMyAxNjUuNWMzOS43IDE2LjggNzUuOCA0MCAxMDcuNiA2OS4yYTM5NC43MiAzOTQuNzIgMCAwIDEtNTkuNCA0MS44Yy0xNS43LTQ1LTM1LjgtODQuMS01OS4yLTExNS40IDMuNyAxLjQgNy40IDIuOSAxMSA0LjR6bS05MC42IDcwMC42Yy05LjIgNy4yLTE4LjQgMTIuNy0yNy43IDE2LjRWNjk3YTM4OS4xIDM4OS4xIDAgMCAxIDExNS43IDI2LjJjLTguMyAyNC42LTE3LjkgNDcuMy0yOSA2Ny44LTE3LjQgMzIuNC0zNy44IDU4LjMtNTkgNzUuMXptNTktNjMzLjFjMTEgMjAuNiAyMC43IDQzLjMgMjkgNjcuOEEzODkuMSAzODkuMSAwIDAgMSA1NDAgMzI3VjE0MS42YzkuMiAzLjcgMTguNSA5LjEgMjcuNyAxNi40IDIxLjIgMTYuNyA0MS42IDQyLjYgNTkgNzV6TTU0MCA2NDAuOVY1NDBoMTQ3LjVjLTEuNiA0NC4yLTcuMSA4Ny4xLTE2LjMgMTI3LjhsLS4zIDEuMkE0NDUuMDIgNDQ1LjAyIDAgMCAwIDU0MCA2NDAuOXptMC0xNTYuOVYzODMuMWM0NS44LTIuOCA4OS44LTEyLjUgMTMwLjktMjguMWwuMyAxLjJjOS4yIDQwLjcgMTQuNyA4My41IDE2LjMgMTI3LjhINTQwem0tNTYgNTZ2MTAwLjljLTQ1LjggMi44LTg5LjggMTIuNS0xMzAuOSAyOC4xbC0uMy0xLjJjLTkuMi00MC43LTE0LjctODMuNS0xNi4zLTEyNy44SDQ4NHptLTE0Ny41LTU2YzEuNi00NC4yIDcuMS04Ny4xIDE2LjMtMTI3LjhsLjMtMS4yYzQxLjEgMTUuNiA4NSAyNS4zIDEzMC45IDI4LjFWNDg0SDMzNi41ek00ODQgNjk3djE4NS40Yy05LjItMy43LTE4LjUtOS4xLTI3LjctMTYuNC0yMS4yLTE2LjctNDEuNy00Mi43LTU5LjEtNzUuMS0xMS0yMC42LTIwLjctNDMuMy0yOS02Ny44IDM3LjItMTQuNiA3NS45LTIzLjMgMTE1LjgtMjYuMXptMC0zNzBhMzg5LjEgMzg5LjEgMCAwIDEtMTE1LjctMjYuMmM4LjMtMjQuNiAxNy45LTQ3LjMgMjktNjcuOCAxNy40LTMyLjQgMzcuOC01OC40IDU5LjEtNzUuMSA5LjItNy4yIDE4LjQtMTIuNyAyNy43LTE2LjRWMzI3ek0zNjUuNyAxNjUuNWMzLjctMS41IDcuMy0zIDExLTQuNC0yMy40IDMxLjMtNDMuNSA3MC40LTU5LjIgMTE1LjQtMjEtMTItNDAuOS0yNi01OS40LTQxLjggMzEuOC0yOS4yIDY3LjktNTIuNCAxMDcuNi02OS4yek0xNjUuNSAzNjUuN2MxMy44LTMyLjYgMzItNjIuOCA1NC4yLTkwLjIgMjQuOSAyMS41IDUyLjIgNDAuMyA4MS41IDU1LjktMTEuNiA0Ni45LTE4LjggOTguNC0yMC43IDE1Mi42SDEzN2MzLTQwLjkgMTIuNi04MC42IDI4LjUtMTE4LjN6TTEzNyA1NDBoMTQzLjVjMS45IDU0LjIgOS4xIDEwNS43IDIwLjcgMTUyLjZhNDQ0LjA3IDQ0NC4wNyAwIDAgMC04MS41IDU1LjlBMzczLjg2IDM3My44NiAwIDAgMSAxMzcgNTQwem0yMjguNyAzMTguNWMtMzkuNy0xNi44LTc1LjgtNDAtMTA3LjYtNjkuMiAxOC41LTE1LjggMzguNC0yOS43IDU5LjQtNDEuOCAxNS43IDQ1IDM1LjggODQuMSA1OS4yIDExNS40LTMuNy0xLjQtNy40LTIuOS0xMS00LjR6bTI5Mi42IDBjLTMuNyAxLjUtNy4zIDMtMTEgNC40IDIzLjQtMzEuMyA0My41LTcwLjQgNTkuMi0xMTUuNCAyMSAxMiA0MC45IDI2IDU5LjQgNDEuOGEzNzMuODEgMzczLjgxIDAgMCAxLTEwNy42IDY5LjJ6JykpO1xuZXhwb3J0cy5Hb29nbGVQbHVzT3V0bGluZSA9IGdldEljb24oJ2dvb2dsZS1wbHVzJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3OS41IDQ3MC40Yy0uMy0yNy0uNC01NC4yLS41LTgxLjNoLTgwLjhjLS4zIDI3LS41IDU0LjEtLjcgODEuMy0yNy4yLjEtNTQuMi4zLTgxLjIuNnY4MC45YzI3IC4zIDU0LjIuNSA4MS4yLjguMyAyNyAuMyA1NC4xLjUgODEuMWg4MC45Yy4xLTI3IC4zLTU0LjEuNS04MS4zIDI3LjItLjMgNTQuMi0uNCA4MS4yLS43di04MC45Yy0yNi45LS4yLTU0LjEtLjItODEuMS0uNXptLTUzMCAuNGMtLjEgMzIuMyAwIDY0LjcuMSA5NyA1NC4yIDEuOCAxMDguNSAxIDE2Mi43IDEuOC0yMy45IDEyMC4zLTE4Ny40IDE1OS4zLTI3My45IDgwLjctODktNjguOS04NC44LTIyMCA3LjctMjg0IDY0LjctNTEuNiAxNTYuNi0zOC45IDIyMS4zIDUuOCAyNS40LTIzLjUgNDkuMi00OC43IDcyLjEtNzQuNy01My44LTQyLjktMTE5LjgtNzMuNS0xOTAtNzAuMy0xNDYuNi00LjktMjgxLjMgMTIzLjUtMjgzLjcgMjcwLjItOS40IDExOS45IDY5LjQgMjM3LjQgMTgwLjYgMjc5LjggMTEwLjggNDIuNyAyNTIuOSAxMy42IDMyMy43LTg2IDQ2LjctNjIuOSA1Ni44LTE0My45IDUxLjMtMjIwLTkwLjctLjctMTgxLjMtLjYtMjcxLjktLjN6JykpO1xuZXhwb3J0cy5Hb29nbGVPdXRsaW5lID0gZ2V0SWNvbignZ29vZ2xlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg4MSA0NDIuNEg1MTkuN3YxNDguNWgyMDYuNGMtOC45IDQ4LTM1LjkgODguNi03Ni42IDExNS44LTM0LjQgMjMtNzguMyAzNi42LTEyOS45IDM2LjYtOTkuOSAwLTE4NC40LTY3LjUtMjE0LjYtMTU4LjItNy42LTIzLTEyLTQ3LjYtMTItNzIuOXM0LjQtNDkuOSAxMi03Mi45YzMwLjMtOTAuNiAxMTQuOC0xNTguMSAyMTQuNy0xNTguMSA1Ni4zIDAgMTA2LjggMTkuNCAxNDYuNiA1Ny40bDExMC0xMTAuMWMtNjYuNS02Mi0xNTMuMi0xMDAtMjU2LjYtMTAwLTE0OS45IDAtMjc5LjYgODYtMzQyLjcgMjExLjQtMjYgNTEuOC00MC44IDExMC40LTQwLjggMTcyLjRTMTUxIDYzMi44IDE3NyA2ODQuNkMyNDAuMSA4MTAgMzY5LjggODk2IDUxOS43IDg5NmMxMDMuNiAwIDE5MC40LTM0LjQgMjUzLjgtOTMgNzIuNS02Ni44IDExNC40LTE2NS4yIDExNC40LTI4Mi4xIDAtMjcuMi0yLjQtNTMuMy02LjktNzguNXonKSk7XG5leHBvcnRzLkhlYXRNYXBPdXRsaW5lID0gZ2V0SWNvbignaGVhdC1tYXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTU1LjcgODU2bC00MTYtNzIwYy02LjItMTAuNy0xNi45LTE2LTI3LjctMTZzLTIxLjYgNS4zLTI3LjcgMTZsLTQxNiA3MjBDNTYgODc3LjQgNzEuNCA5MDQgOTYgOTA0aDgzMmMyNC42IDAgNDAtMjYuNiAyNy43LTQ4em0tNzkwLjQtMjMuOUw1MTIgMjMxLjkgODU4LjcgODMySDE2NS4zem0zMTktNDc0LjFsLTIyOCAzOTRjLTEyLjMgMjEuMyAzLjEgNDggMjcuNyA0OGg0NTUuOGMyNC43IDAgNDAuMS0yNi43IDI3LjctNDhMNTM5LjcgMzU4Yy02LjItMTAuNy0xNy0xNi0yNy43LTE2LTEwLjggMC0yMS42IDUuMy0yNy43IDE2em0yMTQgMzg2SDMyNS43TDUxMiA0MjJsMTg2LjMgMzIyem0tMjE0LTE5NC4xbC01NyA5OC40QzQxNSA2NjkuNSA0MzAuNCA2OTYgNDU1IDY5NmgxMTRjMjQuNiAwIDM5LjktMjYuNSAyNy43LTQ3LjdsLTU3LTk4LjRjLTYuMS0xMC42LTE2LjktMTUuOS0yNy43LTE1LjlzLTIxLjUgNS4zLTI3LjcgMTUuOXptNTcuMSA5OC40aC01OC43bDI5LjQtNTAuNyAyOS4zIDUwLjd6JykpO1xuZXhwb3J0cy5Hb2xkT3V0bGluZSA9IGdldEljb24oJ2dvbGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzQyIDQ3MmgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdIMzgyLjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4em05MS4yLTE5NmgxNTkuNWwyMC43IDEyOGgtMjAxbDIwLjgtMTI4em0yLjUgMjgyLjdjLS42LTMuOS00LTYuNy03LjktNi43SDE2Ni4yYy0zLjkgMC03LjMgMi44LTcuOSA2LjdsLTQwLjIgMjQ4Yy0uMS40LS4xLjktLjEgMS4zIDAgNC40IDMuNiA4IDggOGgzNDJjLjQgMCAuOSAwIDEuMy0uMSA0LjQtLjcgNy4zLTQuOCA2LjYtOS4ybC00MC4yLTI0OHpNMTk2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDE5Ni41em03MDkuNCA1OC43bC00MC4yLTI0OGMtLjYtMy45LTQtNi43LTcuOS02LjdINTk2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuMy0uNyA3LjMtNC44IDYuNi05LjJ6TTYyNi41IDc0OGwyMC43LTEyOGgxNTkuNWwyMC43IDEyOEg2MjYuNXonKSk7XG5leHBvcnRzLkhpc3RvcnlPdXRsaW5lID0gZ2V0SWNvbignaGlzdG9yeScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MzYuMSAyNzNINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjNjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuMyAxMjAuN2MzLjYgMi42IDguNiAxLjkgMTEuMi0xLjdsMjguNi0zOWMyLjctMy43IDEuOS04LjctMS43LTExLjJMNTQ0LjEgNTI4LjVWMjgxYzAtNC40LTMuNi04LTgtOHptMjE5LjggNzUuMmwxNTYuOCAzOC4zYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xNjEuNWMwLTYuNy03LjctMTAuNS0xMi45LTYuM0w3NTIuOSAzMzQuMWE4IDggMCAwIDAgMyAxNC4xem0xNjcuNyAzMDEuMWwtNTYuNy0xOS41YTggOCAwIDAgMC0xMC4xIDQuOGMtMS45IDUuMS0zLjkgMTAuMS02IDE1LjEtMTcuOCA0Mi4xLTQzLjMgODAtNzUuOSAxMTIuNWEzNTMgMzUzIDAgMCAxLTExMi41IDc1LjkgMzUyLjE4IDM1Mi4xOCAwIDAgMS0xMzcuNyAyNy44Yy00Ny44IDAtOTQuMS05LjMtMTM3LjctMjcuOGEzNTMgMzUzIDAgMCAxLTExMi41LTc1LjljLTMyLjUtMzIuNS01OC03MC40LTc1LjktMTEyLjVBMzUzLjQ0IDM1My40NCAwIDAgMSAxNzEgNTEyYzAtNDcuOCA5LjMtOTQuMiAyNy44LTEzNy44IDE3LjgtNDIuMSA0My4zLTgwIDc1LjktMTEyLjVhMzUzIDM1MyAwIDAgMSAxMTIuNS03NS45QzQzMC42IDE2Ny4zIDQ3NyAxNTggNTI0LjggMTU4czk0LjEgOS4zIDEzNy43IDI3LjhBMzUzIDM1MyAwIDAgMSA3NzUgMjYxLjdjMTAuMiAxMC4zIDE5LjggMjEgMjguNiAzMi4zbDU5LjgtNDYuOEM3ODQuNyAxNDYuNiA2NjIuMiA4MS45IDUyNC42IDgyIDI4NSA4Mi4xIDkyLjYgMjc2LjcgOTUgNTE2LjQgOTcuNCA3NTEuOSAyODguOSA5NDIgNTI0LjggOTQyYzE4NS41IDAgMzQzLjUtMTE3LjYgNDAzLjctMjgyLjMgMS41LTQuMi0uNy04LjktNC45LTEwLjR6JykpO1xuZXhwb3J0cy5JZU91dGxpbmUgPSBnZXRJY29uKCdpZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTIuNiAzNjcuNmMxNi4zLTM2LjkgMzIuMS05MC43IDMyLjEtMTMxLjggMC0xMDkuMS0xMTkuNS0xNDcuNi0zMTQuNS01Ny45LTE2MS40LTEwLjgtMzE2LjggMTEwLjUtMzU1LjYgMjc5LjcgNDYuMy01Mi4zIDExNy40LTEyMy40IDE4My0xNTEuN0MzMTYuMSAzNzguMyAyNDYuNyA0NzAgMTk0IDU2NS42Yy0zMS4xIDU2LjktNjYgMTQ4LjgtNjYgMjE3LjUgMCAxNDcuOSAxMzkuMyAxMjkuOCAyNzAuNCA2MyA0Ny4xIDIzLjEgOTkuOCAyMy40IDE1Mi41IDIzLjQgMTQ1LjcgMCAyNzYuNC04MS40IDMyNS4yLTIxOUg2OTQuOWMtNzguOCAxMzIuOS0yOTUuMiA3OS41LTI5NS4yLTcxLjJoNDkzLjJjOS42LTY1LjQtMi41LTE0My42LTQwLjMtMjExLjd6TTIyNC44IDY0OC4zYzI2LjYgNzYuNyA4MC42IDE0My44IDE1MC40IDE4NS0xMzMuMSA3My40LTI1OS45IDQzLjYtMTUwLjQtMTg1em0xNzQtMTYzLjNjMy04Mi43IDc1LjQtMTQyLjMgMTU2LTE0Mi4zIDgwLjEgMCAxNTMgNTkuNiAxNTYgMTQyLjNoLTMxMnptMjc2LjgtMjgxLjRjMzIuMS0xNS40IDcyLjgtMzMgMTA4LjgtMzMgNDcuMSAwIDgxLjQgMzIuNiA4MS40IDgwLjYgMCAzMC0xMS4xIDczLjUtMjEuOSAxMDEuOC0zOS4zLTYzLjUtOTguOS0xMjIuNC0xNjguMy0xNDkuNHonKSk7XG5leHBvcnRzLkluYm94T3V0bGluZSA9IGdldEljb24oJ2luYm94Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg4NS4yIDQ0Ni4zbC0uMi0uOC0xMTIuMi0yODUuMWMtNS0xNi4xLTE5LjktMjcuMi0zNi44LTI3LjJIMjgxLjJjLTE3IDAtMzIuMSAxMS4zLTM2LjkgMjcuNkwxMzkuNCA0NDNsLS4zLjctLjIuOGMtMS4zIDQuOS0xLjcgOS45LTEgMTQuOC0uMSAxLjYtLjIgMy4yLS4yIDQuOFY4MzBhNjAuOSA2MC45IDAgMCAwIDYwLjggNjAuOGg2MjcuMmMzMy41IDAgNjAuOC0yNy4zIDYwLjktNjAuOFY0NjQuMWMwLTEuMyAwLTIuNi0uMS0zLjcuNC00LjkgMC05LjYtMS4zLTE0LjF6bS0yOTUuOC00M2wtLjMgMTUuN2MtLjggNDQuOS0zMS44IDc1LjEtNzcuMSA3NS4xLTIyLjEgMC00MS4xLTcuMS01NC44LTIwLjZTNDM2IDQ0MS4yIDQzNS42IDQxOWwtLjMtMTUuN0gyMjkuNUwzMDkgMjEwaDM5OS4ybDgxLjcgMTkzLjNINTg5LjR6bS0zNzUgNzYuOGgxNTcuM2MyNC4zIDU3LjEgNzYgOTAuOCAxNDAuNCA5MC44IDMzLjcgMCA2NS05LjQgOTAuMy0yNy4yIDIyLjItMTUuNiAzOS41LTM3LjQgNTAuNy02My42aDE1Ni41VjgxNEgyMTQuNFY0ODAuMXonKSk7XG5leHBvcnRzLkltcG9ydE91dGxpbmUgPSBnZXRJY29uKCdpbXBvcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODg4LjMgNzU3LjRoLTUzLjhjLTQuMiAwLTcuNyAzLjUtNy43IDcuN3Y2MS44SDE5Ny4xVjE5Ny4xaDYyOS44djYxLjhjMCA0LjIgMy41IDcuNyA3LjcgNy43aDUzLjhjNC4yIDAgNy43LTMuNCA3LjctNy43VjE1OC43YzAtMTctMTMuNy0zMC43LTMwLjctMzAuN0gxNTguN2MtMTcgMC0zMC43IDEzLjctMzAuNyAzMC43djcwNi42YzAgMTcgMTMuNyAzMC43IDMwLjcgMzAuN2g3MDYuNmMxNyAwIDMwLjctMTMuNyAzMC43LTMwLjdWNzY1LjFjMC00LjMtMy41LTcuNy03LjctNy43ek05MDIgNDc2SDU4OHYtNzZjMC02LjctNy44LTEwLjUtMTMtNi4zbC0xNDEuOSAxMTJhOCA4IDAgMCAwIDAgMTIuNmwxNDEuOSAxMTJjNS4zIDQuMiAxMyAuNCAxMy02LjN2LTc2aDMxNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkluZm9PdXRsaW5lID0gZ2V0SWNvbignaW5mbycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NDggMjI0YTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMSAwLTEyOCAwem05NiAxNjhoLTY0Yy00LjQgMC04IDMuNi04IDh2NDY0YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWNDAwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLkl0YWxpY091dGxpbmUgPSBnZXRJY29uKCdpdGFsaWMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzk4IDE2MEgzNjZjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoMTgxLjJsLTE1NiA1NDRIMjI5Yy00LjQgMC04IDMuNi04IDh2NjRjMCA0LjQgMy42IDggOCA4aDQzMmM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOEg0NzQuNGwxNTYtNTQ0SDc5OGM0LjQgMCA4LTMuNiA4LTh2LTY0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLklzc3Vlc0Nsb3NlT3V0bGluZSA9IGdldEljb24oJ2lzc3Vlcy1jbG9zZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjQgNjg4YTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptNzItMTEyYzQuNCAwIDgtMy42IDgtOFYyOTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djI3MmMwIDQuNCAzLjYgOCA4IDhoNDh6bTQwMC0xODhoLTU5LjNjLTIuNiAwLTUgMS4yLTYuNSAzLjNMNzYzLjcgNTM4LjFsLTQ5LjktNjguOGE3LjkyIDcuOTIgMCAwIDAtNi41LTMuM0g2NDhjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEwOS4yIDE1MC43YTE2LjEgMTYuMSAwIDAgMCAyNiAwbDE2NS44LTIyOC43YzMuOC01LjMgMC0xMi43LTYuNS0xMi43em0tNDQgMzA2aC02NC4yYy01LjUgMC0xMC42IDIuOS0xMy42IDcuNWEzNTIuMiAzNTIuMiAwIDAgMS00OS44IDYyLjJBMzU1LjkyIDM1NS45MiAwIDAgMSA2NTEuMSA4NDBhMzU1IDM1NSAwIDAgMS0xMzguNyAyNy45Yy00OC4xIDAtOTQuOC05LjQtMTM4LjctMjcuOWEzNTUuOTIgMzU1LjkyIDAgMCAxLTExMy4zLTc2LjNBMzUzLjA2IDM1My4wNiAwIDAgMSAxODQgNjUwLjVjLTE4LjYtNDMuOC0yOC05MC41LTI4LTEzOC41czkuNC05NC43IDI4LTEzOC41YzE3LjktNDIuNCA0My42LTgwLjUgNzYuNC0xMTMuMiAzMi44LTMyLjcgNzAuOS01OC40IDExMy4zLTc2LjNhMzU1IDM1NSAwIDAgMSAxMzguNy0yNy45YzQ4LjEgMCA5NC44IDkuNCAxMzguNyAyNy45IDQyLjQgMTcuOSA4MC41IDQzLjYgMTEzLjMgNzYuMyAxOSAxOSAzNS42IDM5LjggNDkuOCA2Mi4yIDIuOSA0LjcgOC4xIDcuNSAxMy42IDcuNUg4OTJjNiAwIDkuOC02LjMgNy4yLTExLjZDODI4LjggMTc4LjUgNjg0LjcgODIgNTE3LjcgODAgMjc4LjkgNzcuMiA4MC41IDI3Mi41IDgwIDUxMS4yIDc5LjUgNzUwLjEgMjczLjMgOTQ0IDUxMi40IDk0NGMxNjkuMiAwIDMxNS42LTk3IDM4Ni43LTIzOC40QTggOCAwIDAgMCA4OTIgNjk0eicpKTtcbmV4cG9ydHMuS2V5T3V0bGluZSA9IGdldEljb24oJ2tleScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MDggMTEyYy0xNjcuOSAwLTMwNCAxMzYuMS0zMDQgMzA0IDAgNzAuMyAyMy45IDEzNSA2My45IDE4Ni41bC00MS4xIDQxLjEtNjIuMy02Mi4zYTguMTUgOC4xNSAwIDAgMC0xMS40IDBsLTM5LjggMzkuOGE4LjE1IDguMTUgMCAwIDAgMCAxMS40bDYyLjMgNjIuMy00NC45IDQ0LjktNjIuMy02Mi4zYTguMTUgOC4xNSAwIDAgMC0xMS40IDBsLTM5LjggMzkuOGE4LjE1IDguMTUgMCAwIDAgMCAxMS40bDYyLjMgNjIuMy02NS4zIDY1LjNhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0Mi4zIDQyLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyNTMuNi0yNTMuNkEzMDQuMDYgMzA0LjA2IDAgMCAwIDYwOCA3MjBjMTY3LjkgMCAzMDQtMTM2LjEgMzA0LTMwNFM3NzUuOSAxMTIgNjA4IDExMnptMTYxLjIgNDY1LjJDNzI2LjIgNjIwLjMgNjY4LjkgNjQ0IDYwOCA2NDRjLTYwLjkgMC0xMTguMi0yMy43LTE2MS4yLTY2LjgtNDMuMS00My02Ni44LTEwMC4zLTY2LjgtMTYxLjIgMC02MC45IDIzLjctMTE4LjIgNjYuOC0xNjEuMiA0My00My4xIDEwMC4zLTY2LjggMTYxLjItNjYuOCA2MC45IDAgMTE4LjIgMjMuNyAxNjEuMiA2Ni44IDQzLjEgNDMgNjYuOCAxMDAuMyA2Ni44IDE2MS4yIDAgNjAuOS0yMy43IDExOC4yLTY2LjggMTYxLjJ6JykpO1xuZXhwb3J0cy5MYXB0b3BPdXRsaW5lID0gZ2V0SWNvbignbGFwdG9wJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1Ni45IDg0NS4xTDg5Ni40IDYzMlYxNjhjMC0xNy43LTE0LjMtMzItMzItMzJoLTcwNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDY0TDY3LjkgODQ1LjFDNjAuNCA4NjYgNzUuOCA4ODggOTggODg4aDgyOC44YzIyLjIgMCAzNy42LTIyIDMwLjEtNDIuOXpNMjAwLjQgMjA4aDYyNHYzOTVoLTYyNFYyMDh6bTIyOC4zIDYwOGw4LjEtMzdoMTUwLjNsOC4xIDM3SDQyOC43em0yMjQgMGwtMTkuMS04Ni43Yy0uOC0zLjctNC4xLTYuMy03LjgtNi4zSDM5OC4yYy0zLjggMC03IDIuNi03LjggNi4zTDM3MS4zIDgxNkgxNTFsNDIuMy0xNDloNjM4LjJsNDIuMyAxNDlINjUyLjd6JykpO1xuZXhwb3J0cy5MZWZ0T3V0bGluZSA9IGdldEljb24oJ2xlZnQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzI0IDIxOC4zVjE0MWMwLTYuNy03LjctMTAuNC0xMi45LTYuM0wyNjAuMyA0ODYuOGEzMS44NiAzMS44NiAwIDAgMCAwIDUwLjNsNDUwLjggMzUyLjFjNS4zIDQuMSAxMi45LjQgMTIuOS02LjN2LTc3LjNjMC00LjktMi4zLTkuNi02LjEtMTIuNmwtMzYwLTI4MSAzNjAtMjgxLjFjMy44LTMgNi4xLTcuNyA2LjEtMTIuNnonKSk7XG5leHBvcnRzLkxpbmtPdXRsaW5lID0gZ2V0SWNvbignbGluaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NzQgNjY1LjRhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw0NDYuNSA3ODEuNmMtNTMuOCA1My44LTE0NC42IDU5LjUtMjA0IDAtNTkuNS01OS41LTUzLjgtMTUwLjIgMC0yMDRsMTE2LjItMTE2LjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzkuOC0zOS44YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMTkxLjQgNTI2LjVjLTg0LjYgODQuNi04NC42IDIyMS41IDAgMzA2czIyMS41IDg0LjYgMzA2IDBsMTE2LjItMTE2LjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w1NzQgNjY1LjR6bTI1OC42LTQ3NGMtODQuNi04NC42LTIyMS41LTg0LjYtMzA2IDBMNDEwLjMgMzA3LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS43IDM5LjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMTYuMi0xMTYuMmM1My44LTUzLjggMTQ0LjYtNTkuNSAyMDQgMCA1OS41IDU5LjUgNTMuOCAxNTAuMiAwIDIwNEw2NjUuMyA1NjIuNmE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM5LjggMzkuOGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExNi4yLTExNi4yYzg0LjUtODQuNiA4NC41LTIyMS41IDAtMzA2LjF6TTYxMC4xIDM3Mi4zYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMzcyLjMgNTk4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS42IDM5LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMjYuNC0yMjYuNGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0zOS41LTM5LjZ6JykpO1xuZXhwb3J0cy5MaW5lQ2hhcnRPdXRsaW5lID0gZ2V0SWNvbignbGluZS1jaGFydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODggNzkySDIwMFYxNjhjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY4OGMwIDQuNCAzLjYgOCA4IDhoNzUyYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0zMDUuOCA2MzcuN2MzLjEgMy4xIDguMSAzLjEgMTEuMyAwbDEzOC4zLTEzNy42TDU4MyA2MjguNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI3NS40LTI3NS4zYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM5LjYtMzkuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0yMzAgMjI5LjlMNDYxLjQgNDA0YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMMjY2LjMgNTg2LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzOS41IDM5Ljd6JykpO1xuZXhwb3J0cy5MaW5lSGVpZ2h0T3V0bGluZSA9IGdldEljb24oJ2xpbmUtaGVpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY0OCAxNjBIMTA0Yy00LjQgMC04IDMuNi04IDh2MTI4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY0aDE2OHY1NjBoLTkyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtOTJWMjMyaDE2OHY2NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE2OGMwLTQuNC0zLjYtOC04LTh6bTI3Mi44IDU0Nkg4NTZWMzE4aDY0LjhjNiAwIDkuNC03IDUuNy0xMS43TDgyNS43IDE3OC43YTcuMTQgNy4xNCAwIDAgMC0xMS4zIDBMNzEzLjYgMzA2LjNhNy4yMyA3LjIzIDAgMCAwIDUuNyAxMS43SDc4NHYzODhoLTY0LjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNWMyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YTcuMiA3LjIgMCAwIDAtNS42LTExLjd6JykpO1xuZXhwb3J0cy5MaW5lT3V0bGluZSA9IGdldEljb24oJ2xpbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA0IDQ3NkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTG9hZGluZzNRdWFydGVyc091dGxpbmUgPSBnZXRJY29uKCdsb2FkaW5nLTMtcXVhcnRlcnMnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNNTEyIDEwMjRjLTY5LjEgMC0xMzYuMi0xMy41LTE5OS4zLTQwLjJDMjUxLjcgOTU4IDE5NyA5MjEgMTUwIDg3NGMtNDctNDctODQtMTAxLjctMTA5LjgtMTYyLjdDMTMuNSA2NDguMiAwIDU4MS4xIDAgNTEyYzAtMTkuOSAxNi4xLTM2IDM2LTM2czM2IDE2LjEgMzYgMzZjMCA1OS40IDExLjYgMTE3IDM0LjYgMTcxLjMgMjIuMiA1Mi40IDUzLjkgOTkuNSA5NC4zIDEzOS45IDQwLjQgNDAuNCA4Ny41IDcyLjIgMTM5LjkgOTQuM0MzOTUgOTQwLjQgNDUyLjYgOTUyIDUxMiA5NTJjNTkuNCAwIDExNy0xMS42IDE3MS4zLTM0LjYgNTIuNC0yMi4yIDk5LjUtNTMuOSAxMzkuOS05NC4zIDQwLjQtNDAuNCA3Mi4yLTg3LjUgOTQuMy0xMzkuOUM5NDAuNCA2MjkgOTUyIDU3MS40IDk1MiA1MTJjMC01OS40LTExLjYtMTE3LTM0LjYtMTcxLjNhNDQwLjQ1IDQ0MC40NSAwIDAgMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwIDAtMTM5LjktOTQuM0M2MjkgODMuNiA1NzEuNCA3MiA1MTIgNzJjLTE5LjkgMC0zNi0xNi4xLTM2LTM2czE2LjEtMzYgMzYtMzZjNjkuMSAwIDEzNi4yIDEzLjUgMTk5LjMgNDAuMkM3NzIuMyA2NiA4MjcgMTAzIDg3NCAxNTBjNDcgNDcgODMuOSAxMDEuOCAxMDkuNyAxNjIuNyAyNi43IDYzLjEgNDAuMiAxMzAuMiA0MC4yIDE5OS4zcy0xMy41IDEzNi4yLTQwLjIgMTk5LjNDOTU4IDc3Mi4zIDkyMSA4MjcgODc0IDg3NGMtNDcgNDctMTAxLjggODMuOS0xNjIuNyAxMDkuNy02My4xIDI2LjgtMTMwLjIgNDAuMy0xOTkuMyA0MC4zeicpKTtcbmV4cG9ydHMuTG9hZGluZ091dGxpbmUgPSBnZXRJY29uKCdsb2FkaW5nJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwIDAtOTQuMy0xMzkuOSA0MzcuNzEgNDM3LjcxIDAgMCAwLTEzOS45LTk0LjNDNjI5IDgzLjYgNTcxLjQgNzIgNTEyIDcyYy0xOS45IDAtMzYtMTYuMS0zNi0zNnMxNi4xLTM2IDM2LTM2YzY5LjEgMCAxMzYuMiAxMy41IDE5OS4zIDQwLjNDNzcyLjMgNjYgODI3IDEwMyA4NzQgMTUwYzQ3IDQ3IDgzLjkgMTAxLjggMTA5LjcgMTYyLjcgMjYuNyA2My4xIDQwLjIgMTMwLjIgNDAuMiAxOTkuMy4xIDE5LjktMTYgMzYtMzUuOSAzNnonKSk7XG5leHBvcnRzLkxvZ2luT3V0bGluZSA9IGdldEljb24oJ2xvZ2luJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTUyMS43IDgyYy0xNTIuNS0uNC0yODYuNyA3OC41LTM2My40IDE5Ny43LTMuNCA1LjMuNCAxMi4zIDYuNyAxMi4zaDcwLjNjNC44IDAgOS4zLTIuMSAxMi4zLTUuOCA3LTguNSAxNC41LTE2LjcgMjIuNC0yNC41IDMyLjYtMzIuNSA3MC41LTU4LjEgMTEyLjctNzUuOSA0My42LTE4LjQgOTAtMjcuOCAxMzcuOS0yNy44IDQ3LjkgMCA5NC4zIDkuMyAxMzcuOSAyNy44IDQyLjIgMTcuOCA4MC4xIDQzLjQgMTEyLjcgNzUuOSAzMi42IDMyLjUgNTguMSA3MC40IDc2IDExMi41Qzg2NS43IDQxNy44IDg3NSA0NjQuMSA4NzUgNTEyYzAgNDcuOS05LjQgOTQuMi0yNy44IDEzNy44LTE3LjggNDIuMS00My40IDgwLTc2IDExMi41cy03MC41IDU4LjEtMTEyLjcgNzUuOUEzNTIuOCAzNTIuOCAwIDAgMSA1MjAuNiA4NjZjLTQ3LjkgMC05NC4zLTkuNC0xMzcuOS0yNy44QTM1My44NCAzNTMuODQgMCAwIDEgMjcwIDc2Mi4zYy03LjktNy45LTE1LjMtMTYuMS0yMi40LTI0LjUtMy0zLjctNy42LTUuOC0xMi4zLTUuOEgxNjVjLTYuMyAwLTEwLjIgNy02LjcgMTIuM0MyMzQuOSA4NjMuMiAzNjguNSA5NDIgNTIwLjYgOTQyYzIzNi4yIDAgNDI4LTE5MC4xIDQzMC40LTQyNS42Qzk1My40IDI3Ny4xIDc2MS4zIDgyLjYgNTIxLjcgODJ6TTM5NS4wMiA2MjR2LTc2aC0zMTRjLTQuNCAwLTgtMy42LTgtOHYtNTZjMC00LjQgMy42LTggOC04aDMxNHYtNzZjMC02LjcgNy44LTEwLjUgMTMtNi4zbDE0MS45IDExMmE4IDggMCAwIDEgMCAxMi42bC0xNDEuOSAxMTJjLTUuMiA0LjEtMTMgLjQtMTMtNi4zeicpKTtcbmV4cG9ydHMuTG9nb3V0T3V0bGluZSA9IGdldEljb24oJ2xvZ291dCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NjggNzMyaC03MC4zYy00LjggMC05LjMgMi4xLTEyLjMgNS44LTcgOC41LTE0LjUgMTYuNy0yMi40IDI0LjVhMzUzLjg0IDM1My44NCAwIDAgMS0xMTIuNyA3NS45QTM1Mi44IDM1Mi44IDAgMCAxIDUxMi40IDg2NmMtNDcuOSAwLTk0LjMtOS40LTEzNy45LTI3LjhhMzUzLjg0IDM1My44NCAwIDAgMS0xMTIuNy03NS45IDM1My4yOCAzNTMuMjggMCAwIDEtNzYtMTEyLjVDMTY3LjMgNjA2LjIgMTU4IDU1OS45IDE1OCA1MTJzOS40LTk0LjIgMjcuOC0xMzcuOGMxNy44LTQyLjEgNDMuNC04MCA3Ni0xMTIuNXM3MC41LTU4LjEgMTEyLjctNzUuOWM0My42LTE4LjQgOTAtMjcuOCAxMzcuOS0yNy44IDQ3LjkgMCA5NC4zIDkuMyAxMzcuOSAyNy44IDQyLjIgMTcuOCA4MC4xIDQzLjQgMTEyLjcgNzUuOSA3LjkgNy45IDE1LjMgMTYuMSAyMi40IDI0LjUgMyAzLjcgNy42IDUuOCAxMi4zIDUuOEg4NjhjNi4zIDAgMTAuMi03IDYuNy0xMi4zQzc5OCAxNjAuNSA2NjMuOCA4MS42IDUxMS4zIDgyIDI3MS43IDgyLjYgNzkuNiAyNzcuMSA4MiA1MTYuNCA4NC40IDc1MS45IDI3Ni4yIDk0MiA1MTIuNCA5NDJjMTUyLjEgMCAyODUuNy03OC44IDM2Mi4zLTE5Ny43IDMuNC01LjMtLjQtMTIuMy02LjctMTIuM3ptODguOS0yMjYuM0w4MTUgMzkzLjdjLTUuMy00LjItMTMtLjQtMTMgNi4zdjc2SDQ4OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMTR2NzZjMCA2LjcgNy44IDEwLjUgMTMgNi4zbDE0MS45LTExMmE4IDggMCAwIDAgMC0xMi42eicpKTtcbmV4cG9ydHMuTWFuT3V0bGluZSA9IGdldEljb24oJ21hbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NzQgMTIwSDYyMmMtMy4zIDAtNiAyLjctNiA2djU2YzAgMy4zIDIuNyA2IDYgNmgxNjAuNEw1ODMuMSAzODcuM2MtNTAtMzguNS0xMTEtNTkuMy0xNzUuMS01OS4zLTc2LjkgMC0xNDkuMyAzMC0yMDMuNiA4NC40UzEyMCA1MzkuMSAxMjAgNjE2czMwIDE0OS4zIDg0LjQgMjAzLjZDMjU4LjcgODc0IDMzMS4xIDkwNCA0MDggOTA0czE0OS4zLTMwIDIwMy42LTg0LjRDNjY2IDc2NS4zIDY5NiA2OTIuOSA2OTYgNjE2YzAtNjQuMS0yMC44LTEyNC45LTU5LjItMTc0LjlMODM2IDI0MS45VjQwMmMwIDMuMyAyLjcgNiA2IDZoNTZjMy4zIDAgNi0yLjcgNi02VjE1MGMwLTE2LjUtMTMuNS0zMC0zMC0zMHpNNDA4IDgyOGMtMTE2LjkgMC0yMTItOTUuMS0yMTItMjEyczk1LjEtMjEyIDIxMi0yMTIgMjEyIDk1LjEgMjEyIDIxMi05NS4xIDIxMi0yMTIgMjEyeicpKTtcbmV4cG9ydHMuTWVkaXVtT3V0bGluZSA9IGdldEljb24oJ21lZGl1bScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzQuNyAyNzkuOGw2MS4zLTU4LjlWMjA4SDY4My43TDUzMi40IDU4Ni40IDM2MC4zIDIwOEgxMzcuN3YxMi45bDcxLjYgODYuNmM3IDYuNCAxMC42IDE1LjggOS43IDI1LjJWNjczYzIuMiAxMi4zLTEuNyAyNC44LTEwLjMgMzMuN0wxMjggODA1djEyLjdoMjI4LjZ2LTEyLjlsLTgwLjYtOThhMzkuOTkgMzkuOTkgMCAwIDEtMTEuMS0zMy43VjM3OC43bDIwMC43IDQzOS4yaDIzLjNsMTcyLjYtNDM5LjJ2MzQ5LjljMCA5LjIgMCAxMS4xLTYgMTcuMmwtNjIuMSA2MC4zVjgxOWgzMDEuMnYtMTIuOWwtNTkuOS01OC45Yy01LjItNC03LjktMTAuNy02LjgtMTcuMlYyOTdhMTguMSAxOC4xIDAgMCAxIDYuOC0xNy4yeicpKTtcbmV4cG9ydHMuTWVkaXVtV29ya21hcmtPdXRsaW5lID0gZ2V0SWNvbignbWVkaXVtLXdvcmttYXJrJywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTUxNy4yIDU5MC41NWMwIDMuNTUgMCA0LjM2IDIuNCA2LjU1bDEzLjQzIDEzLjI1di41N2gtNTkuNTd2LTI1LjQ3YTQxLjQ0IDQxLjQ0IDAgMCAxLTM5LjUgMjcuNjVjLTMwLjYxIDAtNTIuODQtMjQuMjUtNTIuODQtNjguODcgMC00MS44IDIzLjk5LTY5LjY5IDU3LjY1LTY5LjY5YTM1LjE1IDM1LjE1IDAgMCAxIDM0LjYxIDIxLjY3di01Ni4xOWE2Ljk5IDYuOTkgMCAwIDAtMi43MS02Ljc5bC0xMi44LTEyLjQ1di0uNTZsNTkuMzMtNy4wNHYxNzcuMzd6bS00My43NC04LjA5di04My44M2EyMi4yIDIyLjIgMCAwIDAtMTcuNzQtOC40Yy0xNC40OCAwLTI4LjQ3IDEzLjI1LTI4LjQ3IDUyLjYyIDAgMzYuODYgMTIuMDcgNDkuODggMjcuMSA0OS44OGEyMy45MSAyMy45MSAwIDAgMCAxOS4xMS0xMC4yN3ptODMuMjMgMjguNDZWNDk3Ljc0YTcuNjUgNy42NSAwIDAgMC0yLjQtNi43OWwtMTMuMTktMTMuNzR2LS41N2g1OS41NnYxMTQuOGMwIDMuNTUgMCA0LjM2IDIuNCA2LjU0bDEzLjEyIDEyLjQ1di41N2wtNTkuNDktLjA4em0tMi4xNi0xNzUuNjdjMC0xMy40IDEwLjc0LTI0LjI1IDIzLjk5LTI0LjI1IDEzLjI1IDAgMjMuOTggMTAuODYgMjMuOTggMjQuMjUgMCAxMy40LTEwLjczIDI0LjI1LTIzLjk4IDI0LjI1cy0yMy45OS0xMC44NS0yMy45OS0yNC4yNXptMjA2LjgzIDE1NS4wNmMwIDMuNTUgMCA0LjYgMi40IDYuNzlsMTMuNDMgMTMuMjV2LjU3aC01OS44OFY1ODEuOWE0My40IDQzLjQgMCAwIDEtNDEuMDEgMzEuMmMtMjYuNTUgMC00MC43OC0xOS41Ni00MC43OC01Ni41OSAwLTE3Ljg2IDAtMzcuNDMuNTYtNTkuNDFhNi45MSA2LjkxIDAgMCAwLTIuNC02LjU1TDYyMC41IDQ3Ny4ydi0uNTdoNTkuMDl2NzMuODFjMCAyNC4yNSAzLjUxIDQwLjQyIDE4LjU0IDQwLjQyYTIzLjk2IDIzLjk2IDAgMCAwIDE5LjM1LTEyLjJ2LTgwLjg1YTcuNjUgNy42NSAwIDAgMC0yLjQtNi43OWwtMTMuMjctMTMuODJ2LS41N2g1OS41NlY1OTAuM3ptMjAyLjc2IDIwLjZjMC00LjM2LjgtNTkuOTcuOC03Mi43NSAwLTI0LjI1LTMuNzYtNDAuOTgtMjAuNjMtNDAuOThhMjYuNyAyNi43IDAgMCAwLTIxLjE5IDExLjY0IDk5LjY4IDk5LjY4IDAgMCAxIDIuNCAyMy4wNGMwIDE2LjgxLS41NiAzOC4yMy0uOCA1OS42NmE2LjkxIDYuOTEgMCAwIDAgMi40IDYuNTVsMTMuNDMgMTIuNDV2LjU2aC02MC4xMmMwLTQuMDQuOC01OS45OC44LTcyLjc2IDAtMjQuNjUtMy43Ni00MC45OC0yMC4zOS00MC45OC04LjIuMy0xNS42OCA0LjgtMTkuODMgMTEuOTZ2ODIuNDZjMCAzLjU2IDAgNC4zNyAyLjQgNi41NWwxMy4xMSAxMi40NXYuNTZoLTU5LjQ4VjQ5OC4xNWE3LjY1IDcuNjUgMCAwIDAtMi40LTYuOGwtMTMuMTktMTQuMTR2LS41N0g4NDF2MjguNzhjNS41My0xOSAyMy4xMy0zMS43NiA0Mi43LTMwLjk2IDE5LjgyIDAgMzMuMjYgMTEuMTYgMzguOTMgMzIuMzRhNDYuNDEgNDYuNDEgMCAwIDEgNDQuNzctMzIuMzRjMjYuNTUgMCA0MS41OCAxOS44IDQxLjU4IDU3LjIzIDAgMTcuODctLjU2IDM4LjI0LS44IDU5LjY2YTYuNSA2LjUgMCAwIDAgMi43MiA2LjU1bDEzLjExIDEyLjQ1di41N2gtNTkuODh6TTIxNS44NyA1OTMuM2wxNy42NiAxNy4wNXYuNTdoLTg5LjYydi0uNTdsMTcuOTktMTcuMDVhNi45MSA2LjkxIDAgMCAwIDIuNC02LjU1VjQ3Ny42OWMwLTQuNiAwLTEwLjgzLjgtMTYuMTZMMTA0LjY2IDYxMy4xaC0uNzJsLTYyLjYtMTM5LjQ1Yy0xLjM3LTMuNDctMS43Ny0zLjcyLTIuNjUtNi4wNnY5MS40M2EzMi4wOCAzMi4wOCAwIDAgMCAyLjk2IDE3Ljg3bDI1LjE5IDMzLjQ2di41N0gwdi0uNTdsMjUuMTgtMzMuNTVhMzIuMTYgMzIuMTYgMCAwIDAgMi45Ni0xNy43OFY0NTcuOTdBMTkuNzEgMTkuNzEgMCAwIDAgMjQgNDQ0LjE1TDYuMTYgNDIwLjc4di0uNTZoNjMuOTZsNTMuNTYgMTE4LjEgNDcuMTctMTE4LjFoNjIuNnYuNTZsLTE3LjU4IDE5LjhhNi45OSA2Ljk5IDAgMCAwLTIuNzIgNi44djEzOS4zN2E2LjUgNi41IDAgMCAwIDIuNzIgNi41NXptNzAuMTEtNTQuNjV2LjU2YzAgMzQuNiAxNy42NyA0OC41IDM4LjM4IDQ4LjVhNDMuNSA0My41IDAgMCAwIDQwLjc3LTI0Ljk3aC41NmMtNy4yIDM0LjItMjguMTQgNTAuMzYtNTkuNDggNTAuMzYtMzMuODIgMC02NS43Mi0yMC42MS02NS43Mi02OC4zOSAwLTUwLjIgMzEuOTgtNzAuMjUgNjcuMzItNzAuMjUgMjguNDYgMCA1OC43NiAxMy41OCA1OC43NiA1Ny4yNHY2Ljk1aC04MC41OXptMC02Ljk1aDM5LjQydi03LjA0YzAtMzUuNTctNy4yOC00NS4wMy0xOC4yMy00NS4wMy0xMy4yNyAwLTIxLjM1IDE0LjE1LTIxLjM1IDUyLjA3aC4xNnonKSk7XG5leHBvcnRzLk1lbnVVbmZvbGRPdXRsaW5lID0gZ2V0SWNvbignbWVudS11bmZvbGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDA4IDQ0Mmg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0tOCAyMDRjMCA0LjQgMy42IDggOCA4aDQ4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg0MDhjLTQuNCAwLTggMy42LTggOHY1NnptNTA0LTQ4NkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDYzMkgxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNDIuNCA2NDIuMUwyOTguNyA1MTlhOC44NCA4Ljg0IDAgMCAwIDAtMTMuOUwxNDIuNCAzODEuOWMtNS44LTQuNi0xNC40LS41LTE0LjQgNi45djI0Ni4zYTguOSA4LjkgMCAwIDAgMTQuNCA3eicpKTtcbmV4cG9ydHMuTWVudUZvbGRPdXRsaW5lID0gZ2V0SWNvbignbWVudS1mb2xkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTE1LjQgNTE4LjlMMjcxLjcgNjQyYzUuOCA0LjYgMTQuNC41IDE0LjQtNi45VjM4OC45YzAtNy40LTguNS0xMS41LTE0LjQtNi45TDExNS40IDUwNS4xYTguNzQgOC43NCAwIDAgMCAwIDEzLjh6JykpO1xuZXhwb3J0cy5NZW51T3V0bGluZSA9IGdldEljb24oJ21lbnUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA0IDE2MEgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04em0wIDYyNEgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04em0wLTMxMkgxMjBjLTQuNCAwLTggMy42LTggOHY2NGMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNjRjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTWludXNPdXRsaW5lID0gZ2V0SWNvbignbWludXMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODcyIDQ3NEgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04eicpKTtcbmV4cG9ydHMuTW9uaXRvck91dGxpbmUgPSBnZXRJY29uKCdtb25pdG9yJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY5Mi44IDQxMi43bC4yLS4yLTM0LjYtNDQuM2E3Ljk3IDcuOTcgMCAwIDAtMTEuMi0xLjRsLTUwLjQgMzkuMy03MC41LTkwLjFhNy45NyA3Ljk3IDAgMCAwLTExLjItMS40bC0zNy45IDI5LjdhNy45NyA3Ljk3IDAgMCAwLTEuNCAxMS4ybDcwLjUgOTAuMi0uMi4xIDM0LjYgNDQuM2MyLjcgMy41IDcuNyA0LjEgMTEuMiAxLjRsNTAuNC0zOS4zIDY0LjEgODJjMi43IDMuNSA3LjcgNC4xIDExLjIgMS40bDM3LjktMjkuNmMzLjUtMi43IDQuMS03LjcgMS40LTExLjJsLTY0LjEtODIuMXpNNjA4IDExMmMtMTY3LjkgMC0zMDQgMTM2LjEtMzA0IDMwNCAwIDcwLjMgMjMuOSAxMzUgNjMuOSAxODYuNUwxMTQuMyA4NTYuMWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDQyLjMgNDIuM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDI1My42LTI1My42QzQ3MyA2OTYuMSA1MzcuNyA3MjAgNjA4IDcyMGMxNjcuOSAwIDMwNC0xMzYuMSAzMDQtMzA0Uzc3NS45IDExMiA2MDggMTEyem0xNjEuMiA0NjUuMkM3MjYuMiA2MjAuMyA2NjguOSA2NDQgNjA4IDY0NHMtMTE4LjItMjMuNy0xNjEuMi02Ni44QzQwMy43IDUzNC4yIDM4MCA0NzYuOSAzODAgNDE2czIzLjctMTE4LjIgNjYuOC0xNjEuMmM0My00My4xIDEwMC4zLTY2LjggMTYxLjItNjYuOHMxMTguMiAyMy43IDE2MS4yIDY2LjhjNDMuMSA0MyA2Ni44IDEwMC4zIDY2LjggMTYxLjJzLTIzLjcgMTE4LjItNjYuOCAxNjEuMnonKSk7XG5leHBvcnRzLk1vcmVPdXRsaW5lID0gZ2V0SWNvbignbW9yZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NTYgMjMxYTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAwem0wIDI4MGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODBhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6JykpO1xuZXhwb3J0cy5PcmRlcmVkTGlzdE91dGxpbmUgPSBnZXRJY29uKCdvcmRlcmVkLWxpc3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTIwIDc2MEgzMzZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTU2OEgzMzZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDI4NEgzMzZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0yMTYgNzEySDEwMGMtMi4yIDAtNCAxLjgtNCA0djM0YzAgMi4yIDEuOCA0IDQgNGg3Mi40djIwLjVoLTM1LjdjLTIuMiAwLTQgMS44LTQgNHYzNGMwIDIuMiAxLjggNCA0IDRoMzUuN1Y4MzhIMTAwYy0yLjIgMC00IDEuOC00IDR2MzRjMCAyLjIgMS44IDQgNCA0aDExNmMyLjIgMCA0LTEuOCA0LTRWNzE2YzAtMi4yLTEuOC00LTQtNHpNMTAwIDE4OGgzOHYxMjBjMCAyLjIgMS44IDQgNCA0aDQwYzIuMiAwIDQtMS44IDQtNFYxNTJjMC00LjQtMy42LTgtOC04aC03OGMtMi4yIDAtNCAxLjgtNCA0djM2YzAgMi4yIDEuOCA0IDQgNHptMTE2IDI0MEgxMDBjLTIuMiAwLTQgMS44LTQgNHYzNmMwIDIuMiAxLjggNCA0IDRoNjguNGwtNzAuMyA3Ny43YTguMyA4LjMgMCAwIDAtMi4xIDUuNFY1OTJjMCAyLjIgMS44IDQgNCA0aDExNmMyLjIgMCA0LTEuOCA0LTR2LTM2YzAtMi4yLTEuOC00LTQtNGgtNjguNGw3MC4zLTc3LjdhOC4zIDguMyAwIDAgMCAyLjEtNS40VjQzMmMwLTIuMi0xLjgtNC00LTR6JykpO1xuZXhwb3J0cy5OdW1iZXJPdXRsaW5lID0gZ2V0SWNvbignbnVtYmVyJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg3MiAzOTRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINzA4VjE1MmMwLTQuNC0zLjYtOC04LThoLTY0Yy00LjQgMC04IDMuNi04IDh2MTY2SDQwMFYxNTJjMC00LjQtMy42LTgtOC04aC02NGMtNC40IDAtOCAzLjYtOCA4djE2NkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTY4djIzNkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTY4djE2NmMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjcwNmgyMjh2MTY2YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWNzA2aDE2NGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOEg3MDhWMzk0aDE2NHpNNjI4IDYzMEg0MDBWMzk0aDIyOHYyMzZ6JykpO1xuZXhwb3J0cy5QYXVzZU91dGxpbmUgPSBnZXRJY29uKCdwYXVzZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zMDQgMTc2aDgwdjY3MmgtODB6bTQwOCAwaC02NGMtNC40IDAtOCAzLjYtOCA4djY1NmMwIDQuNCAzLjYgOCA4IDhoNjRjNC40IDAgOC0zLjYgOC04VjE4NGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5QZXJjZW50YWdlT3V0bGluZSA9IGdldEljb24oJ3BlcmNlbnRhZ2UnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU1LjcgMjEwLjhsLTQyLjQtNDIuNGE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDE2OC4zIDgwMS45YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBMODU1LjYgMjIyYzMuMi0zIDMuMi04LjEuMS0xMS4yek0zMDQgNDQ4Yzc5LjQgMCAxNDQtNjQuNiAxNDQtMTQ0cy02NC42LTE0NC0xNDQtMTQ0LTE0NCA2NC42LTE0NCAxNDQgNjQuNiAxNDQgMTQ0IDE0NHptMC0yMTZjMzkuNyAwIDcyIDMyLjMgNzIgNzJzLTMyLjMgNzItNzIgNzItNzItMzIuMy03Mi03MiAzMi4zLTcyIDcyLTcyem00MTYgMzQ0Yy03OS40IDAtMTQ0IDY0LjYtMTQ0IDE0NHM2NC42IDE0NCAxNDQgMTQ0IDE0NC02NC42IDE0NC0xNDQtNjQuNi0xNDQtMTQ0LTE0NHptMCAyMTZjLTM5LjcgMC03Mi0zMi4zLTcyLTcyczMyLjMtNzIgNzItNzIgNzIgMzIuMyA3MiA3Mi0zMi4zIDcyLTcyIDcyeicpKTtcbmV4cG9ydHMuUGFwZXJDbGlwT3V0bGluZSA9IGdldEljb24oJ3BhcGVyLWNsaXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzc5LjMgMTk2LjZjLTk0LjItOTQuMi0yNDcuNi05NC4yLTM0MS43IDBsLTI2MSAyNjAuOGMtMS43IDEuNy0yLjYgNC0yLjYgNi40cy45IDQuNyAyLjYgNi40bDM2LjkgMzYuOWE5IDkgMCAwIDAgMTIuNyAwbDI2MS0yNjAuOGMzMi40LTMyLjQgNzUuNS01MC4yIDEyMS4zLTUwLjJzODguOSAxNy44IDEyMS4yIDUwLjJjMzIuNCAzMi40IDUwLjIgNzUuNSA1MC4yIDEyMS4yIDAgNDUuOC0xNy44IDg4LjgtNTAuMiAxMjEuMmwtMjY2IDI2NS45LTQzLjEgNDMuMWMtNDAuMyA0MC4zLTEwNS44IDQwLjMtMTQ2LjEgMC0xOS41LTE5LjUtMzAuMi00NS40LTMwLjItNzNzMTAuNy01My41IDMwLjItNzNsMjYzLjktMjYzLjhjNi43LTYuNiAxNS41LTEwLjMgMjQuOS0xMC4zaC4xYzkuNCAwIDE4LjEgMy43IDI0LjcgMTAuMyA2LjcgNi43IDEwLjMgMTUuNSAxMC4zIDI0LjkgMCA5LjMtMy43IDE4LjEtMTAuMyAyNC43TDM3Mi40IDY1M2MtMS43IDEuNy0yLjYgNC0yLjYgNi40cy45IDQuNyAyLjYgNi40bDM2LjkgMzYuOWE5IDkgMCAwIDAgMTIuNyAwbDIxNS42LTIxNS42YzE5LjktMTkuOSAzMC44LTQ2LjMgMzAuOC03NC40cy0xMS01NC42LTMwLjgtNzQuNGMtNDEuMS00MS4xLTEwNy45LTQxLTE0OSAwTDQ2MyAzNjQgMjI0LjggNjAyLjFBMTcyLjIyIDE3Mi4yMiAwIDAgMCAxNzQgNzI0LjhjMCA0Ni4zIDE4LjEgODkuOCA1MC44IDEyMi41IDMzLjkgMzMuOCA3OC4zIDUwLjcgMTIyLjcgNTAuNyA0NC40IDAgODguOC0xNi45IDEyMi42LTUwLjdsMzA5LjItMzA5QzgyNC44IDQ5Mi43IDg1MCA0MzIgODUwIDM2Ny41Yy4xLTY0LjYtMjUuMS0xMjUuMy03MC43LTE3MC45eicpKTtcbmV4cG9ydHMuUGljQ2VudGVyT3V0bGluZSA9IGdldEljb24oJ3BpYy1jZW50ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTUyIDc5Mkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtNjMySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNODQ4IDY2MGM4LjggMCAxNi03LjIgMTYtMTZWMzgwYzAtOC44LTcuMi0xNi0xNi0xNkgxNzZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDY3MnpNMjMyIDQzNmg1NjB2MTUySDIzMlY0MzZ6JykpO1xuZXhwb3J0cy5QaWNMZWZ0T3V0bGluZSA9IGdldEljb24oJ3BpYy1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1MiA3OTJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTYzMkg3MmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTYwOCA2NjBjOC44IDAgMTYtNy4yIDE2LTE2VjM4MGMwLTguOC03LjItMTYtMTYtMTZIOTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDUxMnpNMTUyIDQzNmg0MDB2MTUySDE1MlY0MzZ6bTU1MiAyMTBjMCA0LjQgMy42IDggOCA4aDIyNGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEg3MTJjLTQuNCAwLTggMy42LTggOHY1NnptOC0yMDRoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDcxMmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLlBsdXNPdXRsaW5lID0gZ2V0SWNvbigncGx1cycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000ODIgMTUyaDYwcTggMCA4IDh2NzA0cTAgOC04IDhoLTYwcS04IDAtOC04VjE2MHEwLTggOC04eicsICdNMTc2IDQ3NGg2NzJxOCAwIDggOHY2MHEwIDgtOCA4SDE3NnEtOCAwLTgtOHYtNjBxMC04IDgtOHonKSk7XG5leHBvcnRzLlBpY1JpZ2h0T3V0bGluZSA9IGdldEljb24oJ3BpYy1yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005NTIgNzkySDcyYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC02MzJINzJjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoODgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMjQgNTAwYzguOCAwIDE2LTcuMiAxNi0xNlYzODBjMC04LjgtNy4yLTE2LTE2LTE2SDQxNmMtOC44IDAtMTYgNy4yLTE2IDE2djI2NGMwIDguOCA3LjIgMTYgMTYgMTZoNTEyek00NzIgNDM2aDQwMHYxNTJINDcyVjQzNnpNODAgNjQ2YzAgNC40IDMuNiA4IDggOGgyMjRjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIODhjLTQuNCAwLTggMy42LTggOHY1NnptOC0yMDRoMjI0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDg4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4eicpKTtcbmV4cG9ydHMuUG91bmRPdXRsaW5lID0gZ2V0SWNvbigncG91bmQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem0xMzgtMjA5LjhINDY5Ljh2LTQuN2MyNy40LTE3LjIgNDMuOS01MC40IDQzLjktOTEuMSAwLTE0LjEtMi4yLTI3LjktNS4zLTQxSDYwN2M0LjQgMCA4LTMuNiA4LTh2LTMwYzAtNC40LTMuNi04LTgtOEg0OTVjLTcuMi0yMi42LTEzLjQtNDUuNy0xMy40LTcwLjUgMC00My41IDM0LTcwLjIgODcuMy03MC4yIDIxLjUgMCA0Mi41IDQuMSA2MC40IDEwLjUgNS4yIDEuOSAxMC42LTIgMTAuNi03LjZ2LTM5LjVjMC0zLjMtMi4xLTYuMy01LjItNy41LTE4LjgtNy4yLTQzLjgtMTIuNy03MC4zLTEyLjctOTIuOSAwLTE1MS41IDQ0LjUtMTUxLjUgMTIwLjMgMCAyNi4zIDYuOSA1MiAxNC42IDc3LjFIMzc0Yy00LjQgMC04IDMuNi04IDh2MzBjMCA0LjQgMy42IDggOCA4aDY3LjFjMy40IDE0LjcgNS45IDI5LjQgNS45IDQ0LjIgMCA0NS4yLTI4LjggODMuMy03Mi44IDk0LjItMy42LjktNi4xIDQuMS02LjEgNy44VjcyMmMwIDQuNCAzLjYgOCA4IDhINjUwYzQuNCAwIDgtMy42IDgtOHYtMzkuOGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Qb3dlcm9mZk91dGxpbmUgPSBnZXRJY29uKCdwb3dlcm9mZicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MDUuNiAxMjQuOWE4IDggMCAwIDAtMTEuNiA3LjJ2NjQuMmMwIDUuNSAyLjkgMTAuNiA3LjUgMTMuNmEzNTIuMiAzNTIuMiAwIDAgMSA2Mi4yIDQ5LjhjMzIuNyAzMi44IDU4LjQgNzAuOSA3Ni4zIDExMy4zYTM1NSAzNTUgMCAwIDEgMjcuOSAxMzguN2MwIDQ4LjEtOS40IDk0LjgtMjcuOSAxMzguN2EzNTUuOTIgMzU1LjkyIDAgMCAxLTc2LjMgMTEzLjMgMzUzLjA2IDM1My4wNiAwIDAgMS0xMTMuMiA3Ni40Yy00My44IDE4LjYtOTAuNSAyOC0xMzguNSAyOHMtOTQuNy05LjQtMTM4LjUtMjhhMzUzLjA2IDM1My4wNiAwIDAgMS0xMTMuMi03Ni40QTM1NS45MiAzNTUuOTIgMCAwIDEgMTg0IDY1MC40YTM1NSAzNTUgMCAwIDEtMjcuOS0xMzguN2MwLTQ4LjEgOS40LTk0LjggMjcuOS0xMzguNyAxNy45LTQyLjQgNDMuNi04MC41IDc2LjMtMTEzLjMgMTktMTkgMzkuOC0zNS42IDYyLjItNDkuOCA0LjctMi45IDcuNS04LjEgNy41LTEzLjZWMTMyYzAtNi02LjMtOS44LTExLjYtNy4yQzE3OC41IDE5NS4yIDgyIDMzOS4zIDgwIDUwNi4zIDc3LjIgNzQ1LjEgMjcyLjUgOTQzLjUgNTExLjIgOTQ0YzIzOSAuNSA0MzIuOC0xOTMuMyA0MzIuOC00MzIuNCAwLTE2OS4yLTk3LTMxNS43LTIzOC40LTM4Ni43ek00ODAgNTYwaDY0YzQuNCAwIDgtMy42IDgtOFY4OGMwLTQuNC0zLjYtOC04LThoLTY0Yy00LjQgMC04IDMuNi04IDh2NDY0YzAgNC40IDMuNiA4IDggOHonKSk7XG5leHBvcnRzLlB1bGxSZXF1ZXN0T3V0bGluZSA9IGdldEljb24oJ3B1bGwtcmVxdWVzdCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003ODggNzA1LjlWMTkyYzAtOC44LTcuMi0xNi0xNi0xNkg2MDJ2LTY4LjhjMC02LTctOS40LTExLjctNS43TDQ2Mi43IDIwMi4zYTcuMTQgNy4xNCAwIDAgMCAwIDExLjNsMTI3LjUgMTAwLjhjNC43IDMuNyAxMS43LjQgMTEuNy01LjdWMjQwaDExNHY0NjUuOWMtNDQuMiAxNS03NiA1Ni45LTc2IDEwNi4xIDAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJjLjEtNDkuMi0zMS43LTkxLTc1LjktMTA2LjF6TTc1MiA4NjBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2ek0zODQgMjEyYzAtNjEuOC01MC4yLTExMi0xMTItMTEycy0xMTIgNTAuMi0xMTIgMTEyYzAgNDkuMiAzMS44IDkxIDc2IDEwNi4xVjcwNmMtNDQuMiAxNS03NiA1Ni45LTc2IDEwNi4xIDAgNjEuOCA1MC4yIDExMiAxMTIgMTEyczExMi01MC4yIDExMi0xMTJjMC00OS4yLTMxLjgtOTEtNzYtMTA2LjFWMzE4LjFjNDQuMi0xNS4xIDc2LTU2LjkgNzYtMTA2LjF6bS0xNjAgMGE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTk2IDYwMGE0OC4wMSA0OC4wMSAwIDAgMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDB6JykpO1xuZXhwb3J0cy5RcU91dGxpbmUgPSBnZXRJY29uKCdxcScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MjQuOCA2MTMuMmMtMTYtNTEuNC0zNC40LTk0LjYtNjIuNy0xNjUuM0M3NjYuNSAyNjIuMiA2ODkuMyAxMTIgNTExLjUgMTEyIDMzMS43IDExMiAyNTYuMiAyNjUuMiAyNjEgNDQ3LjljLTI4LjQgNzAuOC00Ni43IDExMy43LTYyLjcgMTY1LjMtMzQgMTA5LjUtMjMgMTU0LjgtMTQuNiAxNTUuOCAxOCAyLjIgNzAuMS04Mi40IDcwLjEtODIuNCAwIDQ5IDI1LjIgMTEyLjkgNzkuOCAxNTktMjYuNCA4LjEtODUuNyAyOS45LTcxLjYgNTMuOCAxMS40IDE5LjMgMTk2LjIgMTIuMyAyNDkuNSA2LjMgNTMuMyA2IDIzOC4xIDEzIDI0OS41LTYuMyAxNC4xLTIzLjgtNDUuMy00NS43LTcxLjYtNTMuOCA1NC42LTQ2LjIgNzkuOC0xMTAuMSA3OS44LTE1OSAwIDAgNTIuMSA4NC42IDcwLjEgODIuNCA4LjUtMS4xIDE5LjUtNDYuNC0xNC41LTE1NS44eicpKTtcbmV4cG9ydHMuUXVlc3Rpb25PdXRsaW5lID0gZ2V0SWNvbigncXVlc3Rpb24nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzY0IDI4MC45Yy0xNC0zMC42LTMzLjktNTguMS01OS4zLTgxLjZDNjUzLjEgMTUxLjQgNTg0LjYgMTI1IDUxMiAxMjVzLTE0MS4xIDI2LjQtMTkyLjcgNzQuMmMtMjUuNCAyMy42LTQ1LjMgNTEtNTkuMyA4MS43LTE0LjYgMzItMjIgNjUuOS0yMiAxMDAuOXYyN2MwIDYuMiA1IDExLjIgMTEuMiAxMS4yaDU0YzYuMiAwIDExLjItNSAxMS4yLTExLjJ2LTI3YzAtOTkuNSA4OC42LTE4MC40IDE5Ny42LTE4MC40czE5Ny42IDgwLjkgMTk3LjYgMTgwLjRjMCA0MC44LTE0LjUgNzkuMi00MiAxMTEuMi0yNy4yIDMxLjctNjUuNiA1NC40LTEwOC4xIDY0LTI0LjMgNS41LTQ2LjIgMTkuMi02MS43IDM4LjhhMTEwLjg1IDExMC44NSAwIDAgMC0yMy45IDY4LjZ2MzEuNGMwIDYuMiA1IDExLjIgMTEuMiAxMS4yaDU0YzYuMiAwIDExLjItNSAxMS4yLTExLjJ2LTMxLjRjMC0xNS43IDEwLjktMjkuNSAyNi0zMi45IDU4LjQtMTMuMiAxMTEuNC00NC43IDE0OS4zLTg4LjcgMTkuMS0yMi4zIDM0LTQ3LjEgNDQuMy03NCAxMC43LTI3LjkgMTYuMS01Ny4yIDE2LjEtODcgMC0zNS03LjQtNjktMjItMTAwLjl6TTUxMiA3ODdjLTMwLjkgMC01NiAyNS4xLTU2IDU2czI1LjEgNTYgNTYgNTYgNTYtMjUuMSA1Ni01Ni0yNS4xLTU2LTU2LTU2eicpKTtcbmV4cG9ydHMuUmFkYXJDaGFydE91dGxpbmUgPSBnZXRJY29uKCdyYWRhci1jaGFydCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjYuOCAzOTcuMWwtMzk2LTI4OGEzMS44MSAzMS44MSAwIDAgMC0zNy42IDBsLTM5NiAyODhhMzEuOTkgMzEuOTkgMCAwIDAtMTEuNiAzNS44bDE1MS4zIDQ2NmEzMiAzMiAwIDAgMCAzMC40IDIyLjFoNDg5LjVjMTMuOSAwIDI2LjEtOC45IDMwLjQtMjIuMWwxNTEuMy00NjZjNC4yLTEzLjItLjUtMjcuNi0xMS43LTM1Ljh6TTgzOC42IDQxN2wtOTguNSAzMi0yMDAtMTQ0LjdWMTk5LjlMODM4LjYgNDE3ek00NjYgNTY3LjJsLTg5LjEgMTIyLjMtNTUuMi0xNjkuMkw0NjYgNTY3LjJ6bS0xMTYuMy05Ni44TDQ4NCAzNzMuM3YxNDAuOGwtMTM0LjMtNDMuN3pNNTEyIDU5OS4ybDkzLjkgMTI4LjlINDE4LjFMNTEyIDU5OS4yem0yOC4xLTIyNS45bDEzNC4yIDk3LjFMNTQwLjEgNTE0VjM3My4zek01NTggNTY3LjJsMTQ0LjMtNDYuOS01NS4yIDE2OS4yTDU1OCA1NjcuMnptLTc0LTM2Ny4zdjEwNC40TDI4My45IDQ0OWwtOTguNS0zMkw0ODQgMTk5Ljl6TTE2OS4zIDQ3MC44bDg2LjUgMjguMSA4MC40IDI0Ni40LTUzLjggNzMuOS0xMTMuMS0zNDguNHpNMzI3LjEgODUzbDUwLjMtNjloMjY5LjNsNTAuMyA2OUgzMjcuMXptNDE0LjUtMzMuOGwtNTMuOC03My45IDgwLjQtMjQ2LjQgODYuNS0yOC4xLTExMy4xIDM0OC40eicpKTtcbmV4cG9ydHMuUXJjb2RlT3V0bGluZSA9IGdldEljb24oJ3FyY29kZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000NjggMTI4SDE2MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzA4YzAgNC40IDMuNiA4IDggOGgzMzJjNC40IDAgOC0zLjYgOC04VjEzNmMwLTQuNC0zLjYtOC04LTh6bS01NiAyODRIMTkyVjE5MmgyMjB2MjIwem0tMTM4LTc0aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMTk0IDIxMEgxMzZjLTQuNCAwLTggMy42LTggOHYzMDhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzA4YzQuNCAwIDgtMy42IDgtOFY1NTZjMC00LjQtMy42LTgtOC04em0tNTYgMjg0SDE5MlY2MTJoMjIwdjIyMHptLTEzOC03NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU5MC02MzBINTU2Yy00LjQgMC04IDMuNi04IDh2MzMyYzAgNC40IDMuNiA4IDggOGgzMzJjNC40IDAgOC0zLjYgOC04VjE2MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDI4NEg2MTJWMTkyaDIyMHYyMjB6bS0xMzgtNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xOTQgMjEwaC00OGMtNC40IDAtOCAzLjYtOCA4djEzNGgtNzhWNTU2YzAtNC40LTMuNi04LTgtOEg1NTZjLTQuNCAwLTggMy42LTggOHYzMzJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY2NDRoNzh2MTAyYzAgNC40IDMuNiA4IDggOGgxOTBjNC40IDAgOC0zLjYgOC04VjU1NmMwLTQuNC0zLjYtOC04LTh6TTc0NiA4MzJoLTQ4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04em0xNDIgMGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNCb3R0b21sZWZ0T3V0bGluZSA9IGdldEljb24oJ3JhZGl1cy1ib3R0b21sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTcxMiA4MjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0yLTY5NmgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTEzNiAzNzRoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0wLTE3NGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTc1MiA2MjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0zNDggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bS0yMzAgNzJoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0yMzAgNjI0SDM1OGMtODcuMyAwLTE1OC03MC43LTE1OC0xNThWNDg0YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHYxODJjMCAxMjcgMTAzIDIzMCAyMzAgMjMwaDE4MmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlJhZGl1c0JvdHRvbXJpZ2h0T3V0bGluZSA9IGdldEljb24oJ3JhZGl1cy1ib3R0b21yaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00zNjggODI0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTU4LTYyNGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTU3OCAxMDJoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTE5MiA4MjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAtMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMC0xNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wLTE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTI5MiA3Mmg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6bTE3NCAwaDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptMjMwIDI3NmgtNTZjLTQuNCAwLTggMy42LTggOHYxODJjMCA4Ny4zLTcwLjcgMTU4LTE1OCAxNThINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MmMxMjcgMCAyMzAtMTAzIDIzMC0yMzBWNDg0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlJhZGl1c1VwbGVmdE91dGxpbmUgPSBnZXRJY29uKCdyYWRpdXMtdXBsZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY1NiAyMDBoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em01OCA2MjRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgNjUwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em02OTYtNjk2aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMzQ4IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMTc0IDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0xNzQtNjk2SDM1OGMtMTI3IDAtMjMwIDEwMy0yMzAgMjMwdjE4MmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjM1OGMwLTg3LjMgNzAuNy0xNTggMTU4LTE1OGgxODJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5SYWRpdXNVcHJpZ2h0T3V0bGluZSA9IGdldEljb24oJ3JhZGl1cy11cHJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM2OCAxMjhoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tMiA2OTZoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em01MjItMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xOTIgMTI4aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE3NGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTc0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNzRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zNDggMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE3NCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptLTQ4LTY5Nkg0ODRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoMTgyYzg3LjMgMCAxNTggNzAuNyAxNTggMTU4djE4MmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjM1OGMwLTEyNy0xMDMtMjMwLTIzMC0yMzB6JykpO1xuZXhwb3J0cy5SYWRpdXNTZXR0aW5nT3V0bGluZSA9IGdldEljb24oJ3JhZGl1cy1zZXR0aW5nJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTM5NiAxNDBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0tNDQgNjg0aC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTI0LTIwNGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6TTE5MiAzNDRoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0wIDE2MGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTAgMTYwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAxNjBoLTU2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zMjAgMGgtNTZjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC01NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMTQwLTI4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjM3MGMwLTEyNy0xMDMtMjMwLTIzMC0yMzBINDg0Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE3MGM4Ny4zIDAgMTU4IDcwLjcgMTU4IDE1OHYxNzB6TTIzNiA5Nkg5MmMtNC40IDAtOCAzLjYtOCA4djE0NGMwIDQuNCAzLjYgOCA4IDhoMTQ0YzQuNCAwIDgtMy42IDgtOFYxMDRjMC00LjQtMy42LTgtOC04em0tNDggMTAxLjZjMCAxLjMtMS4xIDIuNC0yLjQgMi40aC00My4yYy0xLjMgMC0yLjQtMS4xLTIuNC0yLjR2LTQzLjJjMC0xLjMgMS4xLTIuNCAyLjQtMi40aDQzLjJjMS4zIDAgMi40IDEuMSAyLjQgMi40djQzLjJ6TTkyMCA3ODBINzc2Yy00LjQgMC04IDMuNi04IDh2MTQ0YzAgNC40IDMuNiA4IDggOGgxNDRjNC40IDAgOC0zLjYgOC04Vjc4OGMwLTQuNC0zLjYtOC04LTh6bS00OCAxMDEuNmMwIDEuMy0xLjEgMi40LTIuNCAyLjRoLTQzLjJjLTEuMyAwLTIuNC0xLjEtMi40LTIuNHYtNDMuMmMwLTEuMyAxLjEtMi40IDIuNC0yLjRoNDMuMmMxLjMgMCAyLjQgMS4xIDIuNCAyLjR2NDMuMnonKSk7XG5leHBvcnRzLlJlZGRpdE91dGxpbmUgPSBnZXRJY29uKCdyZWRkaXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMjg4IDU2OGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMzM4LjcgMTE5LjdjLTIzLjEgMTguMi02OC45IDM3LjgtMTE0LjcgMzcuOHMtOTEuNi0xOS42LTExNC43LTM3LjhjLTE0LjQtMTEuMy0zNS4zLTguOS00Ni43IDUuNXMtOC45IDM1LjMgNS41IDQ2LjdDMzk2LjMgNzcxLjYgNDU3LjUgNzkyIDUxMiA3OTJzMTE1LjctMjAuNCAxNTUuOS01Mi4xYTMzLjI1IDMzLjI1IDAgMSAwLTQxLjItNTIuMnpNOTYwIDQ1NmMwLTYxLjktNTAuMS0xMTItMTEyLTExMi00Mi4xIDAtNzguNyAyMy4yLTk3LjkgNTcuNi01Ny42LTMxLjUtMTI3LjctNTEuOC0yMDQuMS01Ni41TDYxMi45IDE5NWwxMjcuOSAzNi45YzExLjUgMzIuNiA0Mi42IDU2LjEgNzkuMiA1Ni4xIDQ2LjQgMCA4NC0zNy42IDg0LTg0cy0zNy42LTg0LTg0LTg0Yy0zMiAwLTU5LjggMTcuOS03NCA0NC4yTDYwMy41IDEyM2EzMy4yIDMzLjIgMCAwIDAtMzkuNiAxOC40bC05MC44IDIwMy45Yy03NC41IDUuMi0xNDIuOSAyNS40LTE5OS4yIDU2LjJBMTExLjk0IDExMS45NCAwIDAgMCAxNzYgMzQ0Yy02MS45IDAtMTEyIDUwLjEtMTEyIDExMiAwIDQ1LjggMjcuNSA4NS4xIDY2LjggMTAyLjUtNy4xIDIxLTEwLjggNDMtMTAuOCA2NS41IDAgMTU0LjYgMTc1LjUgMjgwIDM5MiAyODBzMzkyLTEyNS40IDM5Mi0yODBjMC0yMi42LTMuOC00NC41LTEwLjgtNjUuNUM5MzIuNSA1NDEuMSA5NjAgNTAxLjggOTYwIDQ1NnpNODIwIDE3Mi41YTMxLjUgMzEuNSAwIDEgMSAwIDYzIDMxLjUgMzEuNSAwIDAgMSAwLTYzek0xMjAgNDU2YzAtMzAuOSAyNS4xLTU2IDU2LTU2YTU2IDU2IDAgMCAxIDUwLjYgMzIuMWMtMjkuMyAyMi4yLTUzLjUgNDcuOC03MS41IDc1LjlhNTYuMjMgNTYuMjMgMCAwIDEtMzUuMS01MnptMzkyIDM4MS41Yy0xNzkuOCAwLTMyNS41LTk1LjYtMzI1LjUtMjEzLjVTMzMyLjIgNDEwLjUgNTEyIDQxMC41IDgzNy41IDUwNi4xIDgzNy41IDYyNCA2OTEuOCA4MzcuNSA1MTIgODM3LjV6TTg2OC44IDUwOGMtMTcuOS0yOC4xLTQyLjItNTMuNy03MS41LTc1LjkgOS0xOC45IDI4LjMtMzIuMSA1MC42LTMyLjEgMzAuOSAwIDU2IDI1LjEgNTYgNTYgLjEgMjMuNS0xNC41IDQzLjctMzUuMSA1MnpNNjI0IDU2OGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHonKSk7XG5leHBvcnRzLlJlZG9PdXRsaW5lID0gZ2V0SWNvbigncmVkbycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NTguMiA4MzkuMUM4NTEuOCA3NjUuOSA5MTIgNjUxLjkgOTEyIDUyMy45IDkxMiAzMDMgNzMzLjUgMTI0LjMgNTEyLjYgMTI0IDI5MS40IDEyMy43IDExMiAzMDIuOCAxMTIgNTIzLjljMCAxMjUuMiA1Ny41IDIzNi45IDE0Ny42IDMxMC4yIDMuNSAyLjggOC42IDIuMiAxMS40LTEuM2wzOS40LTUwLjVjMi43LTMuNCAyLjEtOC4zLTEuMi0xMS4xLTguMS02LjYtMTUuOS0xMy43LTIzLjQtMjEuMmEzMTguNjQgMzE4LjY0IDAgMCAxLTY4LjYtMTAxLjdDMjAwLjQgNjA5IDE5MiA1NjcuMSAxOTIgNTIzLjlzOC40LTg1LjEgMjUuMS0xMjQuNWMxNi4xLTM4LjEgMzkuMi03Mi4zIDY4LjYtMTAxLjcgMjkuNC0yOS40IDYzLjYtNTIuNSAxMDEuNy02OC42QzQyNi45IDIxMi40IDQ2OC44IDIwNCA1MTIgMjA0czg1LjEgOC40IDEyNC41IDI1LjFjMzguMSAxNi4xIDcyLjMgMzkuMiAxMDEuNyA2OC42IDI5LjQgMjkuNCA1Mi41IDYzLjYgNjguNiAxMDEuNyAxNi43IDM5LjQgMjUuMSA4MS4zIDI1LjEgMTI0LjVzLTguNCA4NS4xLTI1LjEgMTI0LjVhMzE4LjY0IDMxOC42NCAwIDAgMS02OC42IDEwMS43Yy05LjMgOS4zLTE5LjEgMTgtMjkuMyAyNkw2NjguMiA3MjRhOCA4IDAgMCAwLTE0LjEgM2wtMzkuNiAxNjIuMmMtMS4yIDUgMi42IDkuOSA3LjcgOS45bDE2NyAuOGM2LjcgMCAxMC41LTcuNyA2LjMtMTIuOWwtMzcuMy00Ny45eicpKTtcbmV4cG9ydHMuUmVsb2FkT3V0bGluZSA9IGdldEljb24oJ3JlbG9hZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MDkuMSAyMDkuM2wtNTYuNCA0NC4xQzc3NS44IDE1NS4xIDY1Ni4yIDkyIDUyMS45IDkyIDI5MCA5MiAxMDIuMyAyNzkuNSAxMDIgNTExLjUgMTAxLjcgNzQzLjcgMjg5LjggOTMyIDUyMS45IDkzMmMxODEuMyAwIDMzNS44LTExNSAzOTQuNi0yNzYuMSAxLjUtNC4yLS43LTguOS00LjktMTAuM2wtNTYuNy0xOS41YTggOCAwIDAgMC0xMC4xIDQuOGMtMS44IDUtMy44IDEwLTUuOSAxNC45LTE3LjMgNDEtNDIuMSA3Ny44LTczLjcgMTA5LjRBMzQ0Ljc3IDM0NC43NyAwIDAgMSA2NTUuOSA4MjljLTQyLjMgMTcuOS04Ny40IDI3LTEzMy44IDI3LTQ2LjUgMC05MS41LTkuMS0xMzMuOC0yN0EzNDEuNSAzNDEuNSAwIDAgMSAyNzkgNzU1LjJhMzQyLjE2IDM0Mi4xNiAwIDAgMS03My43LTEwOS40Yy0xNy45LTQyLjQtMjctODcuNC0yNy0xMzMuOXM5LjEtOTEuNSAyNy0xMzMuOWMxNy4zLTQxIDQyLjEtNzcuOCA3My43LTEwOS40IDMxLjYtMzEuNiA2OC40LTU2LjQgMTA5LjMtNzMuOCA0Mi4zLTE3LjkgODcuNC0yNyAxMzMuOC0yNyA0Ni41IDAgOTEuNSA5LjEgMTMzLjggMjdhMzQxLjUgMzQxLjUgMCAwIDEgMTA5LjMgNzMuOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMCAwIDMgMTQuMWwxNzUuNiA0M2M1IDEuMiA5LjktMi42IDkuOS03LjdsLjgtMTgwLjljLS4xLTYuNi03LjgtMTAuMy0xMy02LjJ6JykpO1xuZXhwb3J0cy5SZXR3ZWV0T3V0bGluZSA9IGdldEljb24oJ3JldHdlZXQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNMTM2IDU1Mmg2My42YzQuNCAwIDgtMy42IDgtOFYyODguN2g1MjguNnY3Mi42YzAgMS45LjYgMy43IDEuOCA1LjJhOC4zIDguMyAwIDAgMCAxMS43IDEuNEw4OTMgMjU1LjRjNC4zLTUgMy42LTEwLjMgMC0xMy4yTDc0OS43IDEyOS44YTguMjIgOC4yMiAwIDAgMC01LjItMS44Yy00LjYgMC04LjQgMy44LTguNCA4LjRWMjA5SDE5OS43Yy0zOS41IDAtNzEuNyAzMi4yLTcxLjcgNzEuOFY1NDRjMCA0LjQgMy42IDggOCA4em03NTItODBoLTYzLjZjLTQuNCAwLTggMy42LTggOHYyNTUuM0gyODcuOHYtNzIuNmMwLTEuOS0uNi0zLjctMS44LTUuMmE4LjMgOC4zIDAgMCAwLTExLjctMS40TDEzMSA3NjguNmMtNC4zIDUtMy42IDEwLjMgMCAxMy4ybDE0My4zIDExMi40YzEuNSAxLjIgMy4zIDEuOCA1LjIgMS44IDQuNiAwIDguNC0zLjggOC40LTguNFY4MTVoNTM2LjZjMzkuNSAwIDcxLjctMzIuMiA3MS43LTcxLjhWNDgwYy0uMi00LjQtMy44LTgtOC4yLTh6JykpO1xuZXhwb3J0cy5SaWdodE91dGxpbmUgPSBnZXRJY29uKCdyaWdodCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003NjUuNyA0ODYuOEwzMTQuOSAxMzQuN0E3Ljk3IDcuOTcgMCAwIDAgMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwIDAgMC01MC40eicpKTtcbmV4cG9ydHMuUmlzZU91dGxpbmUgPSBnZXRJY29uKCdyaXNlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxNyAyMTEuMWwtMTk5LjIgMjRjLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNTkuMyA1OS4zLTIyNiAyMjYtMTAxLjgtMTAxLjdjLTYuMy02LjMtMTYuNC02LjItMjIuNiAwTDEwMC4zIDc1NC4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDUgNDUuMmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwTDQzMy4zIDUzNCA1MzUgNjM1LjdjNi4zIDYuMiAxNi40IDYuMiAyMi42IDBMODI5IDM2NC41bDU5LjMgNTkuM2E4LjAxIDguMDEgMCAwIDAgMTMuNi00LjdsMjQtMTk5LjJjLjctNS4xLTMuNy05LjUtOC45LTguOHonKSk7XG5leHBvcnRzLlJvbGxiYWNrT3V0bGluZSA9IGdldEljb24oJ3JvbGxiYWNrJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc5MyAyNDJIMzY2di03NGMwLTYuNy03LjctMTAuNC0xMi45LTYuM2wtMTQyIDExMmE4IDggMCAwIDAgMCAxMi42bDE0MiAxMTJjNS4yIDQuMSAxMi45LjQgMTIuOS02LjN2LTc0aDQxNXY0NzBIMTc1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDYxOGMzNS4zIDAgNjQtMjguNyA2NC02NFYzMDZjMC0zNS4zLTI4LjctNjQtNjQtNjR6JykpO1xuZXhwb3J0cy5TYWZldHlPdXRsaW5lID0gZ2V0SWNvbignc2FmZXR5Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTUxMiA2NEwxMjggMTkydjM4NGMwIDIxMi4xIDE3MS45IDM4NCAzODQgMzg0czM4NC0xNzEuOSAzODQtMzg0VjE5Mkw1MTIgNjR6bTMxMiA1MTJjMCAxNzIuMy0xMzkuNyAzMTItMzEyIDMxMlMyMDAgNzQ4LjMgMjAwIDU3NlYyNDZsMzEyLTExMCAzMTIgMTEwdjMzMHonLCAnTTM3OC40IDQ3NS4xYTM1LjkxIDM1LjkxIDAgMCAwLTUwLjkgMCAzNS45MSAzNS45MSAwIDAgMCAwIDUwLjlsMTI5LjQgMTI5LjQgMi4xIDIuMWEzMy45OCAzMy45OCAwIDAgMCA0OC4xIDBMNzMwLjYgNDM0YTMzLjk4IDMzLjk4IDAgMCAwIDAtNDguMWwtMi44LTIuOGEzMy45OCAzMy45OCAwIDAgMC00OC4xIDBMNDgzIDU3OS43IDM3OC40IDQ3NS4xeicpKTtcbmV4cG9ydHMuUm9ib3RPdXRsaW5lID0gZ2V0SWNvbigncm9ib3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzAwIDMyOGE2MCA2MCAwIDEgMCAxMjAgMCA2MCA2MCAwIDEgMC0xMjAgMHpNODUyIDY0SDE3MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjYwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTMyIDY2MEgyMDRWMTI4aDYxNnY1OTZ6TTYwNCAzMjhhNjAgNjAgMCAxIDAgMTIwIDAgNjAgNjAgMCAxIDAtMTIwIDB6bTI1MC4yIDU1NkgxNjkuOGMtMTYuNSAwLTI5LjggMTQuMy0yOS44IDMydjM2YzAgNC40IDMuMyA4IDcuNCA4aDcyOS4xYzQuMSAwIDcuNC0zLjYgNy40LTh2LTM2Yy4xLTE3LjctMTMuMi0zMi0yOS43LTMyek02NjQgNTA4SDM2MGMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5TZWFyY2hPdXRsaW5lID0gZ2V0SWNvbignc2VhcmNoJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAgMCAxMS42IDBsNDMuNi00My41YTguMiA4LjIgMCAwIDAgMC0xMS42ek01NzAuNCA1NzAuNEM1MjggNjEyLjcgNDcxLjggNjM2IDQxMiA2MzZzLTExNi0yMy4zLTE1OC40LTY1LjZDMjExLjMgNTI4IDE4OCA0NzEuOCAxODggNDEyczIzLjMtMTE2LjEgNjUuNi0xNTguNEMyOTYgMjExLjMgMzUyLjIgMTg4IDQxMiAxODhzMTE2LjEgMjMuMiAxNTguNCA2NS42UzYzNiAzNTIuMiA2MzYgNDEycy0yMy4zIDExNi4xLTY1LjYgMTU4LjR6JykpO1xuZXhwb3J0cy5TY2FuT3V0bGluZSA9IGdldEljb24oJ3NjYW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTM2IDM4NGg1NmM0LjQgMCA4LTMuNiA4LThWMjAwaDE3NmM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOEgxOTZjLTM3LjYgMC02OCAzMC40LTY4IDY4djE4MGMwIDQuNCAzLjYgOCA4IDh6bTUxMi0xODRoMTc2djE3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE5NmMwLTM3LjYtMzAuNC02OC02OC02OEg2NDhjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDh6TTM3NiA4MjRIMjAwVjY0OGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2MTgwYzAgMzcuNiAzMC40IDY4IDY4IDY4aDE4MGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptNTEyLTE4NGgtNTZjLTQuNCAwLTggMy42LTggOHYxNzZINjQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDE4MGMzNy42IDAgNjgtMzAuNCA2OC02OFY2NDhjMC00LjQtMy42LTgtOC04em0xNi0xNjRIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlNjaXNzb3JPdXRsaW5lID0gZ2V0SWNvbignc2Npc3NvcicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NjcuMSA1MTJsMzE4LjUtMzE5LjNjNS01IDEuNS0xMy43LTUuNi0xMy43aC05MC41Yy0yLjEgMC00LjIuOC01LjYgMi4zbC0yNzMuMyAyNzQtOTAuMi05MC41YzEyLjUtMjIuMSAxOS43LTQ3LjYgMTkuNy03NC44IDAtODMuOS02OC4xLTE1Mi0xNTItMTUycy0xNTIgNjguMS0xNTIgMTUyIDY4LjEgMTUyIDE1MiAxNTJjMjcuNyAwIDUzLjYtNy40IDc1LjktMjAuM2w5MCA5MC4zLTkwLjEgOTAuM0ExNTEuMDQgMTUxLjA0IDAgMCAwIDI4OCA1ODJjLTgzLjkgMC0xNTIgNjguMS0xNTIgMTUyczY4LjEgMTUyIDE1MiAxNTIgMTUyLTY4LjEgMTUyLTE1MmMwLTI3LjItNy4yLTUyLjctMTkuNy03NC44bDkwLjItOTAuNSAyNzMuMyAyNzRjMS41IDEuNSAzLjUgMi4zIDUuNiAyLjNIODgwYzcuMSAwIDEwLjctOC42IDUuNi0xMy43TDU2Ny4xIDUxMnpNMjg4IDM3MGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6bTAgNDQ0Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHonKSk7XG5leHBvcnRzLlNlbGVjdE91dGxpbmUgPSBnZXRJY29uKCdzZWxlY3QnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzNjBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTg0VjE4NGg2NTZ2MzIwYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyek02NTMuMyA1OTkuNGw1Mi4yLTUyLjJhOC4wMSA4LjAxIDAgMCAwLTQuNy0xMy42bC0xNzkuNC0yMWMtNS4xLS42LTkuNSAzLjctOC45IDguOWwyMSAxNzkuNGMuOCA2LjYgOC45IDkuNCAxMy42IDQuN2w1Mi40LTUyLjQgMjU2LjIgMjU2LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjRjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w2NTMuMyA1OTkuNHonKSk7XG5leHBvcnRzLlNoYWtlT3V0bGluZSA9IGdldEljb24oJ3NoYWtlJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTMyNCA2NjZhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem02MTYuNy0zMDkuNkw2NjcuNiA4My4yQzY1NS4yIDcwLjkgNjM4LjcgNjQgNjIxLjEgNjRzLTM0LjEgNi44LTQ2LjUgMTkuMkw4My4zIDU3NC41YTY1Ljg1IDY1Ljg1IDAgMCAwIDAgOTMuMWwyNzMuMiAyNzMuMmMxMi4zIDEyLjMgMjguOSAxOS4yIDQ2LjUgMTkuMnMzNC4xLTYuOCA0Ni41LTE5LjJsNDkxLjMtNDkxLjNjMjUuNi0yNS43IDI1LjYtNjcuNS0uMS05My4xek00MDMgODgwLjFMMTQzLjkgNjIxbDQ3Ny4yLTQ3Ny4yIDI1OSAyNTkuMkw0MDMgODgwLjF6TTE1Mi44IDM3My43YTcuOSA3LjkgMCAwIDAgMTEuMiAwTDM3My43IDE2NGE3LjkgNy45IDAgMCAwIDAtMTEuMmwtMzguNC0zOC40YTcuOSA3LjkgMCAwIDAtMTEuMiAwTDExNC4zIDMyMy45YTcuOSA3LjkgMCAwIDAgMCAxMS4ybDM4LjUgMzguNnptNzE4LjYgMjc2LjZhNy45IDcuOSAwIDAgMC0xMS4yIDBMNjUwLjMgODYwLjFhNy45IDcuOSAwIDAgMCAwIDExLjJsMzguNCAzOC40YTcuOSA3LjkgMCAwIDAgMTEuMiAwTDkwOS43IDcwMGE3LjkgNy45IDAgMCAwIDAtMTEuMmwtMzguMy0zOC41eicpKTtcbmV4cG9ydHMuU2hhcmVBbHRPdXRsaW5lID0gZ2V0SWNvbignc2hhcmUtYWx0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc1MiA2NjRjLTI4LjUgMC01NC44IDEwLTc1LjQgMjYuN0w0NjkuNCA1NDAuOGExNjAuNjggMTYwLjY4IDAgMCAwIDAtNTcuNmwyMDcuMi0xNDkuOUM2OTcuMiAzNTAgNzIzLjUgMzYwIDc1MiAzNjBjNjYuMiAwIDEyMC01My44IDEyMC0xMjBzLTUzLjgtMTIwLTEyMC0xMjAtMTIwIDUzLjgtMTIwIDEyMGMwIDExLjYgMS42IDIyLjcgNC43IDMzLjNMNDM5LjkgNDE1LjhDNDEwLjcgMzc3LjEgMzY0LjMgMzUyIDMxMiAzNTJjLTg4LjQgMC0xNjAgNzEuNi0xNjAgMTYwczcxLjYgMTYwIDE2MCAxNjBjNTIuMyAwIDk4LjctMjUuMSAxMjcuOS02My44bDE5Ni44IDE0Mi41Yy0zLjEgMTAuNi00LjcgMjEuOC00LjcgMzMuMyAwIDY2LjIgNTMuOCAxMjAgMTIwIDEyMHMxMjAtNTMuOCAxMjAtMTIwLTUzLjgtMTIwLTEyMC0xMjB6bTAtNDc2YzI4LjcgMCA1MiAyMy4zIDUyIDUycy0yMy4zIDUyLTUyIDUyLTUyLTIzLjMtNTItNTIgMjMuMy01MiA1Mi01MnpNMzEyIDYwMGMtNDguNSAwLTg4LTM5LjUtODgtODhzMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4LTM5LjUgODgtODggODh6bTQ0MCAyMzZjLTI4LjcgMC01Mi0yMy4zLTUyLTUyczIzLjMtNTIgNTItNTIgNTIgMjMuMyA1MiA1Mi0yMy4zIDUyLTUyIDUyeicpKTtcbmV4cG9ydHMuU2hvcHBpbmdDYXJ0T3V0bGluZSA9IGdldEljb24oJ3Nob3BwaW5nLWNhcnQnLCBvdXRsaW5lLCBnZXROb2RlKG5vcm1hbFZpZXdCb3gsICdNOTIyLjkgNzAxLjlIMzI3LjRsMjkuOS02MC45IDQ5Ni44LS45YzE2LjggMCAzMS4yLTEyIDM0LjItMjguNmw2OC44LTM4NS4xYzEuOC0xMC4xLS45LTIwLjUtNy41LTI4LjRhMzQuOTkgMzQuOTkgMCAwIDAtMjYuNi0xMi41bC02MzItMi4xLTUuNC0yNS40Yy0zLjQtMTYuMi0xOC0yOC0zNC42LTI4SDk2LjVhMzUuMyAzNS4zIDAgMSAwIDAgNzAuNmgxMjUuOUwyNDYgMzEyLjhsNTguMSAyODEuMy03NC44IDEyMi4xYTM0Ljk2IDM0Ljk2IDAgMCAwLTMgMzYuOGM2IDExLjkgMTguMSAxOS40IDMxLjUgMTkuNGg2Mi44YTEwMi40MyAxMDIuNDMgMCAwIDAtMjAuNiA2MS43YzAgNTYuNiA0NiAxMDIuNiAxMDIuNiAxMDIuNnMxMDIuNi00NiAxMDIuNi0xMDIuNmMwLTIyLjMtNy40LTQ0LTIwLjYtNjEuN2gxNjEuMWExMDIuNDMgMTAyLjQzIDAgMCAwLTIwLjYgNjEuN2MwIDU2LjYgNDYgMTAyLjYgMTAyLjYgMTAyLjZzMTAyLjYtNDYgMTAyLjYtMTAyLjZjMC0yMi4zLTcuNC00NC0yMC42LTYxLjdIOTIzYzE5LjQgMCAzNS4zLTE1LjggMzUuMy0zNS4zYTM1LjQyIDM1LjQyIDAgMCAwLTM1LjQtMzUuMnpNMzA1LjcgMjUzbDU3NS44IDEuOS01Ni40IDMxNS44LTQ1Mi4zLjhMMzA1LjcgMjUzem05Ni45IDYxMi43Yy0xNy40IDAtMzEuNi0xNC4yLTMxLjYtMzEuNiAwLTE3LjQgMTQuMi0zMS42IDMxLjYtMzEuNnMzMS42IDE0LjIgMzEuNiAzMS42YTMxLjYgMzEuNiAwIDAgMS0zMS42IDMxLjZ6bTMyNS4xIDBjLTE3LjQgMC0zMS42LTE0LjItMzEuNi0zMS42IDAtMTcuNCAxNC4yLTMxLjYgMzEuNi0zMS42czMxLjYgMTQuMiAzMS42IDMxLjZhMzEuNiAzMS42IDAgMCAxLTMxLjYgMzEuNnonKSk7XG5leHBvcnRzLlNocmlua091dGxpbmUgPSBnZXRJY29uKCdzaHJpbmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODgxLjcgMTg3LjRsLTQ1LjEtNDUuMWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDY2Ny44IDI5OS45bC01NC43LTU0LjdhNy45NCA3Ljk0IDAgMCAwLTEzLjUgNC43TDU3Ni4xIDQzOWMtLjYgNS4yIDMuNyA5LjUgOC45IDguOWwxODkuMi0yMy41YzYuNi0uOCA5LjMtOC44IDQuNy0xMy41bC01NC43LTU0LjcgMTU3LjYtMTU3LjZjMy0zIDMtOC4xLS4xLTExLjJ6TTQzOSA1NzYuMWwtMTg5LjIgMjMuNWMtNi42LjgtOS4zIDguOS00LjcgMTMuNWw1NC43IDU0LjctMTU3LjUgMTU3LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w0NS4xIDQ1LjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxNTcuNi0xNTcuNiA1NC43IDU0LjdhNy45NCA3Ljk0IDAgMCAwIDEzLjUtNC43TDQ0Ny45IDU4NWE3LjkgNy45IDAgMCAwLTguOS04Ljl6JykpO1xuZXhwb3J0cy5TbGFja091dGxpbmUgPSBnZXRJY29uKCdzbGFjaycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MDkuNCAxMjhjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44IDAgMjAuMyA4LjEgMzkuOSAyMi40IDU0LjNhNzYuNzQgNzYuNzQgMCAwIDAgNTQuMyAyMi41aDc2Ljd2LTc2LjhjMC00Mi4zLTM0LjMtNzYuNy03Ni43LTc2Ljh6bTAgMjA0LjhIMjA0LjdjLTQyLjQgMC03Ni43IDM0LjQtNzYuNyA3Ni44czM0LjQgNzYuOCA3Ni43IDc2LjhoMjA0LjZjNDIuNCAwIDc2LjctMzQuNCA3Ni43LTc2LjguMS00Mi40LTM0LjMtNzYuOC03Ni42LTc2Ljh6TTYxNCA0ODYuNGM0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOFYyMDQuOGMwLTQyLjQtMzQuMy03Ni44LTc2LjctNzYuOC00Mi40IDAtNzYuNyAzNC40LTc2LjcgNzYuOHYyMDQuOGMwIDQyLjUgMzQuMyA3Ni44IDc2LjcgNzYuOHptMjgxLjQtNzYuOGMwLTQyLjQtMzQuNC03Ni44LTc2LjctNzYuOFM3NDIgMzY3LjIgNzQyIDQwOS42djc2LjhoNzYuN2M0Mi4zIDAgNzYuNy0zNC40IDc2LjctNzYuOHptLTc2LjggMTI4SDYxNGMtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2LjggMCAyMC4zIDguMSAzOS45IDIyLjQgNTQuM2E3Ni43NCA3Ni43NCAwIDAgMCA1NC4zIDIyLjVoMjA0LjZjNDIuNCAwIDc2LjctMzQuNCA3Ni43LTc2LjguMS00Mi40LTM0LjMtNzYuNy03Ni43LTc2Ljh6TTYxNCA3NDIuNGgtNzYuN3Y3Ni44YzAgNDIuNCAzNC40IDc2LjggNzYuNyA3Ni44IDQyLjQgMCA3Ni44LTM0LjQgNzYuNy03Ni44LjEtNDIuNC0zNC4zLTc2LjctNzYuNy03Ni44ek00MDkuNCA1MzcuNmMtNDIuNCAwLTc2LjcgMzQuNC03Ni43IDc2Ljh2MjA0LjhjMCA0Mi40IDM0LjQgNzYuOCA3Ni43IDc2LjggNDIuNCAwIDc2LjgtMzQuNCA3Ni43LTc2LjhWNjE0LjRjMC0yMC4zLTguMS0zOS45LTIyLjQtNTQuM2E3Ni45MiA3Ni45MiAwIDAgMC01NC4zLTIyLjV6TTEyOCA2MTQuNGMwIDIwLjMgOC4xIDM5LjkgMjIuNCA1NC4zYTc2Ljc0IDc2Ljc0IDAgMCAwIDU0LjMgMjIuNWM0Mi40IDAgNzYuOC0zNC40IDc2LjctNzYuOHYtNzYuOGgtNzYuN2MtNDIuMyAwLTc2LjcgMzQuNC03Ni43IDc2Ljh6JykpO1xuZXhwb3J0cy5TbWFsbERhc2hPdXRsaW5lID0gZ2V0SWNvbignc21hbGwtZGFzaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ00xMTIgNDc2aDcydjcyaC03MnptMTgyIDBoNzJ2NzJoLTcyem0zNjQgMGg3MnY3MmgtNzJ6bTE4MiAwaDcydjcyaC03MnptLTM2NCAwaDcydjcyaC03MnonKSk7XG5leHBvcnRzLlNvbHV0aW9uT3V0bGluZSA9IGdldEljb24oJ3NvbHV0aW9uJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTY4OCAyNjRjMC00LjQtMy42LTgtOC04SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OHptLTggMTM2SDI5NmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ4MCA1NDRIMjk2Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptLTQ4IDMwOEgyMDhWMTQ4aDU2MHYzNDRjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOFYxMDhjMC0xNy43LTE0LjMtMzItMzItMzJIMTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3ODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjY0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04em0zNTYuOC03NC40YzI5LTI2LjMgNDcuMi02NC4zIDQ3LjItMTA2LjYgMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRzLTE0NCA2NC41LTE0NCAxNDRjMCA0Mi4zIDE4LjIgODAuMyA0Ny4yIDEwNi42LTU3IDMyLjUtOTYuMiA5Mi43LTk5LjIgMTYyLjEtLjIgNC41IDMuNSA4LjMgOCA4LjNoNDguMWM0LjIgMCA3LjctMy4zIDgtNy42QzU2NCA4NzEuMiA2MjEuNyA4MTYgNjkyIDgxNnMxMjggNTUuMiAxMzEuOSAxMjQuNGMuMiA0LjIgMy43IDcuNiA4IDcuNkg4ODBjNC42IDAgOC4yLTMuOCA4LTguMy0yLjktNjkuNS00Mi4yLTEyOS42LTk5LjItMTYyLjF6TTY5MiA1OTFjNDQuMiAwIDgwIDM1LjggODAgODBzLTM1LjggODAtODAgODAtODAtMzUuOC04MC04MCAzNS44LTgwIDgwLTgweicpKTtcbmV4cG9ydHMuU2tldGNoT3V0bGluZSA9IGdldEljb24oJ3NrZXRjaCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ005MjUuNiA0MDUuMWwtMjAzLTI1My43YTYuNSA2LjUgMCAwIDAtNS0yLjRIMzA2LjRjLTEuOSAwLTMuOC45LTUgMi40bC0yMDMgMjUzLjdhNi41IDYuNSAwIDAgMCAuMiA4LjNsNDA4LjYgNDU5LjVjMS4yIDEuNCAzIDIuMSA0LjggMi4xIDEuOCAwIDMuNS0uOCA0LjgtMi4xbDQwOC42LTQ1OS41YTYuNSA2LjUgMCAwIDAgLjItOC4zek02NDUuMiAyMDYuNGwzNC40IDEzMy45LTEzMi41LTEzMy45aDk4LjF6bTguMiAxNzguNUgzNzAuNkw1MTIgMjQybDE0MS40IDE0Mi45ek0zNzguOCAyMDYuNGg5OC4xTDM0NC4zIDM0MC4zbDM0LjUtMTMzLjl6bS01My40IDdsLTQ0LjEgMTcxLjVoLTkzLjFsMTM3LjItMTcxLjV6TTE5NC42IDQzNC45SDI4OWwxMjUuOCAyNDcuNy0yMjAuMi0yNDcuN3pNNTEyIDc2My40TDM0NS4xIDQzNC45aDMzMy43TDUxMiA3NjMuNHptOTcuMS04MC44TDczNSA0MzQuOWg5NC40TDYwOS4xIDY4Mi42em0xMzMuNi0yOTcuN2wtNDQuMS0xNzEuNSAxMzcuMiAxNzEuNWgtOTMuMXonKSk7XG5leHBvcnRzLlNvcnREZXNjZW5kaW5nT3V0bGluZSA9IGdldEljb24oJ3NvcnQtZGVzY2VuZGluZycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004MzkuNiA0MzMuOEw3NDkgMTUwLjVhOS4yNCA5LjI0IDAgMCAwLTguOS02LjVoLTc3LjRjLTQuMSAwLTcuNiAyLjYtOC45IDYuNWwtOTEuMyAyODMuM2MtLjMuOS0uNSAxLjktLjUgMi45IDAgNS4xIDQuMiA5LjMgOS4zIDkuM2g1Ni40YzQuMiAwIDcuOC0yLjggOS02LjhsMTcuNS02MS42aDg5bDE3LjMgNjEuNWMxLjEgNCA0LjggNi44IDkgNi44aDYxLjJjMSAwIDEuOS0uMSAyLjgtLjQgMi40LS44IDQuMy0yLjQgNS41LTQuNiAxLjEtMi4yIDEuMy00LjcuNi03LjF6TTY2My4zIDMyNS41bDMyLjgtMTE2LjloNi4zbDMyLjEgMTE2LjloLTcxLjJ6bTE0My41IDQ5Mi45SDY3Ny4ydi0uNGwxMzIuNi0xODguOWMxLjEtMS42IDEuNy0zLjQgMS43LTUuNHYtMzYuNGMwLTUuMS00LjItOS4zLTkuMy05LjNoLTIwNGMtNS4xIDAtOS4zIDQuMi05LjMgOS4zdjQzYzAgNS4xIDQuMiA5LjMgOS4zIDkuM2gxMjIuNnYuNEw1ODcuNyA4MjguOWE5LjM1IDkuMzUgMCAwIDAtMS43IDUuNHYzNi40YzAgNS4xIDQuMiA5LjMgOS4zIDkuM2gyMTEuNGM1LjEgMCA5LjMtNC4yIDkuMy05LjN2LTQzYTkuMiA5LjIgMCAwIDAtOS4yLTkuM3pNMzEwLjMgMTY3LjFhOCA4IDAgMCAwLTEyLjYgMEwxODUuNyAzMDljLTQuMiA1LjMtLjQgMTMgNi4zIDEzaDc2djUzMGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjMyMmg3NmM2LjcgMCAxMC41LTcuOCA2LjMtMTNsLTExMi0xNDEuOXonKSk7XG5leHBvcnRzLlNvcnRBc2NlbmRpbmdPdXRsaW5lID0gZ2V0SWNvbignc29ydC1hc2NlbmRpbmcnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODM5LjYgNDMzLjhMNzQ5IDE1MC41YTkuMjQgOS4yNCAwIDAgMC04LjktNi41aC03Ny40Yy00LjEgMC03LjYgMi42LTguOSA2LjVsLTkxLjMgMjgzLjNjLS4zLjktLjUgMS45LS41IDIuOSAwIDUuMSA0LjIgOS4zIDkuMyA5LjNoNTYuNGM0LjIgMCA3LjgtMi44IDktNi44bDE3LjUtNjEuNmg4OWwxNy4zIDYxLjVjMS4xIDQgNC44IDYuOCA5IDYuOGg2MS4yYzEgMCAxLjktLjEgMi44LS40IDIuNC0uOCA0LjMtMi40IDUuNS00LjYgMS4xLTIuMiAxLjMtNC43LjYtNy4xek02NjMuMyAzMjUuNWwzMi44LTExNi45aDYuM2wzMi4xIDExNi45aC03MS4yem0xNDMuNSA0OTIuOUg2NzcuMnYtLjRsMTMyLjYtMTg4LjljMS4xLTEuNiAxLjctMy40IDEuNy01LjR2LTM2LjRjMC01LjEtNC4yLTkuMy05LjMtOS4zaC0yMDRjLTUuMSAwLTkuMyA0LjItOS4zIDkuM3Y0M2MwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMTIyLjZ2LjRMNTg3LjcgODI4LjlhOS4zNSA5LjM1IDAgMCAwLTEuNyA1LjR2MzYuNGMwIDUuMSA0LjIgOS4zIDkuMyA5LjNoMjExLjRjNS4xIDAgOS4zLTQuMiA5LjMtOS4zdi00M2E5LjIgOS4yIDAgMCAwLTkuMi05LjN6TTQxNiA3MDJoLTc2VjE3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NTMwaC03NmMtNi43IDAtMTAuNSA3LjgtNi4zIDEzbDExMiAxNDEuOWE4IDggMCAwIDAgMTIuNiAwbDExMi0xNDEuOWM0LjEtNS4yLjQtMTMtNi4zLTEzeicpKTtcbmV4cG9ydHMuU3RvY2tPdXRsaW5lID0gZ2V0SWNvbignc3RvY2snLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTA0IDc0N0gxMjBjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04ek0xNjUuNyA2MjEuOGwzOS43IDM5LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyMzQuNy0yMzMuOSA5Ny42IDk3LjNhMzIuMTEgMzIuMTEgMCAwIDAgNDUuMiAwbDI2NC4yLTI2My4yYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTM5LjctMzkuNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0yMzUuNyAyMzUtOTcuNy05Ny4zYTMyLjExIDMyLjExIDAgMCAwLTQ1LjIgMEwxNjUuNyA2MTAuNWE3Ljk0IDcuOTQgMCAwIDAgMCAxMS4zeicpKTtcbmV4cG9ydHMuU3dhcExlZnRPdXRsaW5lID0gZ2V0SWNvbignc3dhcC1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg3MiA1NzJIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNIMzQwYy05LjggMC0xOS4xIDQuNS0yNS4xIDEyLjJsLTE2NCAyMDhjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlN3YXBSaWdodE91dGxpbmUgPSBnZXRJY29uKCdzd2FwLXJpZ2h0Jywgb3V0bGluZSwgZ2V0Tm9kZShub3JtYWxWaWV3Qm94LCAnTTg3My4xIDU5Ni4ybC0xNjQtMjA4QTMyIDMyIDAgMCAwIDY4NCAzNzZoLTY0LjhjLTYuNyAwLTEwLjQgNy43LTYuMyAxM2wxNDQuMyAxODNIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY5NS45YzI2LjggMCA0MS43LTMwLjggMjUuMi01MS44eicpKTtcbmV4cG9ydHMuU3RyaWtldGhyb3VnaE91dGxpbmUgPSBnZXRJY29uKCdzdHJpa2V0aHJvdWdoJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTk1MiA0NzRINTY5LjljLTEwLTItMjAuNS00LTMxLjYtNi0xNS45LTIuOS0yMi4yLTQuMS0zMC44LTUuOC01MS4zLTEwLTgyLjItMjAtMTA2LjgtMzQuMi0zNS4xLTIwLjUtNTIuMi00OC4zLTUyLjItODUuMSAwLTM3IDE1LjItNjcuNyA0NC04OSAyOC40LTIxIDY4LjgtMzIuMSAxMTYuOC0zMi4xIDU0LjggMCA5Ny4xIDE0LjQgMTI1LjggNDIuOCAxNC42IDE0LjQgMjUuMyAzMi4xIDMxLjggNTIuNiAxLjMgNC4xIDIuOCAxMCA0LjMgMTcuOC45IDQuOCA1LjIgOC4yIDkuOSA4LjJoNzIuOGM1LjYgMCAxMC4xLTQuNiAxMC4xLTEwLjF2LTFjLS43LTYuOC0xLjMtMTIuMS0yLTE2LTcuMy00My41LTI4LTgxLjctNTkuNy0xMTAuMy00NC40LTQwLjUtMTA5LjctNjEuOC0xODguNy02MS44LTcyLjMgMC0xMzcuNCAxOC4xLTE4My4zIDUwLjktMjUuNiAxOC40LTQ1LjQgNDEuMi01OC42IDY3LjctMTMuNSAyNy4xLTIwLjMgNTguNC0yMC4zIDkyLjkgMCAyOS41IDUuNyA1NC41IDE3LjMgNzYuNSA4LjMgMTUuNyAxOS42IDI5LjUgMzQuMSA0Mkg3MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg0MzMuMmMyLjEuNCAzLjkuOCA1LjkgMS4yIDMwLjkgNi4yIDQ5LjUgMTAuNCA2Ni42IDE1LjIgMjMgNi41IDQwLjYgMTMuMyA1NS4yIDIxLjUgMzUuOCAyMC4yIDUzLjMgNDkuMiA1My4zIDg5IDAgMzUuMy0xNS41IDY2LjgtNDMuNiA4OC44LTMwLjUgMjMuOS03NS42IDM2LjQtMTMwLjUgMzYuNC00My43IDAtODAuNy04LjUtMTEwLjItMjUtMjkuMS0xNi4zLTQ5LjEtMzkuOC01OS43LTY5LjUtLjgtMi4yLTEuNy01LjItMi43LTktMS4yLTQuNC01LjMtNy41LTkuNy03LjVoLTc5LjdjLTUuNiAwLTEwLjEgNC42LTEwLjEgMTAuMXYxYy4yIDIuMy40IDQuMi42IDUuNyA2LjUgNDguOCAzMC4zIDg4LjggNzAuNyAxMTguOCA0Ny4xIDM0LjggMTEzLjQgNTMuMiAxOTEuOCA1My4yIDg0LjIgMCAxNTQuOC0xOS44IDIwNC4yLTU3LjMgMjUtMTguOSA0NC4yLTQyLjIgNTcuMS02OSAxMy0yNy4xIDE5LjctNTcuOSAxOS43LTkxLjUgMC0zMS44LTUuOC01OC40LTE3LjgtODEuNC01LjgtMTEuMi0xMy4xLTIxLjUtMjEuOC0zMC44SDk1MmM0LjQgMCA4LTMuNiA4LTh2LTYwYTggOCAwIDAgMC04LTcuOXonKSk7XG5leHBvcnRzLlN3YXBPdXRsaW5lID0gZ2V0SWNvbignc3dhcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NDcuOSA1OTJIMTUyYy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDYwNS4yTDYxMi45IDg1MWMtNC4xIDUuMi0uNCAxMyA2LjMgMTNoNzIuNWM0LjkgMCA5LjUtMi4yIDEyLjYtNi4xbDE2OC44LTIxNC4xYzE2LjUtMjEgMS42LTUxLjgtMjUuMi01MS44ek04NzIgMzU2SDI2Ni44bDE0NC4zLTE4M2M0LjEtNS4yLjQtMTMtNi4zLTEzaC03Mi41Yy00LjkgMC05LjUgMi4yLTEyLjYgNi4xTDE1MC45IDM4MC4yYy0xNi41IDIxLTEuNiA1MS44IDI1LjEgNTEuOGg2OTZjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5TeW5jT3V0bGluZSA9IGdldEljb24oJ3N5bmMnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTY4IDUwNC4yYzEtNDMuNyAxMC04Ni4xIDI2LjktMTI2IDE3LjMtNDEgNDIuMS03Ny43IDczLjctMTA5LjRTMzM3IDIxMi4zIDM3OCAxOTVjNDIuNC0xNy45IDg3LjQtMjcgMTMzLjktMjdzOTEuNSA5LjEgMTMzLjggMjdBMzQxLjUgMzQxLjUgMCAwIDEgNzU1IDI2OC44YzkuOSA5LjkgMTkuMiAyMC40IDI3LjggMzEuNGwtNjAuMiA0N2E4IDggMCAwIDAgMyAxNC4xbDE3NS43IDQzYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xODAuOWMwLTYuNy03LjctMTAuNS0xMi45LTYuM2wtNTYuNCA0NC4xQzc2NS44IDE1NS4xIDY0Ni4yIDkyIDUxMS44IDkyIDI4Mi43IDkyIDk2LjMgMjc1LjYgOTIgNTAzLjhhOCA4IDAgMCAwIDggOC4yaDYwYzQuNCAwIDcuOS0zLjUgOC03Ljh6bTc1NiA3LjhoLTYwYy00LjQgMC03LjkgMy41LTggNy44LTEgNDMuNy0xMCA4Ni4xLTI2LjkgMTI2LTE3LjMgNDEtNDIuMSA3Ny44LTczLjcgMTA5LjRBMzQyLjQ1IDM0Mi40NSAwIDAgMSA1MTIuMSA4NTZhMzQyLjI0IDM0Mi4yNCAwIDAgMS0yNDMuMi0xMDAuOGMtOS45LTkuOS0xOS4yLTIwLjQtMjcuOC0zMS40bDYwLjItNDdhOCA4IDAgMCAwLTMtMTQuMWwtMTc1LjctNDNjLTUtMS4yLTkuOSAyLjYtOS45IDcuN2wtLjcgMTgxYzAgNi43IDcuNyAxMC41IDEyLjkgNi4zbDU2LjQtNDQuMUMyNTguMiA4NjguOSAzNzcuOCA5MzIgNTEyLjIgOTMyYzIyOS4yIDAgNDE1LjUtMTgzLjcgNDE5LjgtNDExLjhhOCA4IDAgMCAwLTgtOC4yeicpKTtcbmV4cG9ydHMuVGFibGVPdXRsaW5lID0gZ2V0SWNvbigndGFibGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAyMDhINjc2VjIzMmgyMTJ2MTM2em0wIDIyNEg2NzZWNDMyaDIxMnYxNjB6TTQxMiA0MzJoMjAwdjE2MEg0MTJWNDMyem0yMDAtNjRINDEyVjIzMmgyMDB2MTM2em0tNDc2IDY0aDIxMnYxNjBIMTM2VjQzMnptMC0yMDBoMjEydjEzNkgxMzZWMjMyem0wIDQyNGgyMTJ2MTM2SDEzNlY2NTZ6bTI3NiAwaDIwMHYxMzZINDEyVjY1NnptNDc2IDEzNkg2NzZWNjU2aDIxMnYxMzZ6JykpO1xuZXhwb3J0cy5UZWFtT3V0bGluZSA9IGdldEljb24oJ3RlYW0nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI0LjIgNjk5LjlhMzAxLjU1IDMwMS41NSAwIDAgMC04Ni40LTYwLjRDNzgzLjEgNjAyLjggODEyIDU0Ni44IDgxMiA0ODRjMC0xMTAuOC05Mi40LTIwMS43LTIwMy4yLTIwMC0xMDkuMSAxLjctMTk3IDkwLjYtMTk3IDIwMCAwIDYyLjggMjkgMTE4LjggNzQuMiAxNTUuNWEzMDAuOTUgMzAwLjk1IDAgMCAwLTg2LjQgNjAuNEMzNDUgNzU0LjYgMzE0IDgyNi44IDMxMiA5MDMuOGE4IDggMCAwIDAgOCA4LjJoNTZjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41QTIyNi42MiAyMjYuNjIgMCAwIDEgNjEyIDY4NGM2MC45IDAgMTE4LjIgMjMuNyAxNjEuMyA2Ni44QzgxNC41IDc5MiA4MzggODQ2LjMgODQwIDkwNC4zYy4xIDQuMyAzLjcgNy43IDggNy43aDU2YTggOCAwIDAgMCA4LTguMmMtMi03Ny0zMy0xNDkuMi04Ny44LTIwMy45ek02MTIgNjEyYy0zNC4yIDAtNjYuNC0xMy4zLTkwLjUtMzcuNWExMjYuODYgMTI2Ljg2IDAgMCAxLTM3LjUtOTEuOGMuMy0zMi44IDEzLjQtNjQuNSAzNi4zLTg4IDI0LTI0LjYgNTYuMS0zOC4zIDkwLjQtMzguNyAzMy45LS4zIDY2LjggMTIuOSA5MSAzNi42IDI0LjggMjQuMyAzOC40IDU2LjggMzguNCA5MS40IDAgMzQuMi0xMy4zIDY2LjMtMzcuNSA5MC41QTEyNy4zIDEyNy4zIDAgMCAxIDYxMiA2MTJ6TTM2MS41IDUxMC40Yy0uOS04LjctMS40LTE3LjUtMS40LTI2LjQgMC0xNS45IDEuNS0zMS40IDQuMy00Ni41LjctMy42LTEuMi03LjMtNC41LTguOC0xMy42LTYuMS0yNi4xLTE0LjUtMzYuOS0yNS4xYTEyNy41NCAxMjcuNTQgMCAwIDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC45LTEuNy0yMDMuMyA4OS4yLTIwMy4zIDE5OS45IDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAgMCA4IDguMmg1Ni4xYzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNSAyOS40LTI5LjQgNjUuNC00OS44IDEwNC43LTU5LjcgMy45LTEgNi41LTQuNyA2LTguN3onKSk7XG5leHBvcnRzLlRhb2Jhb091dGxpbmUgPSBnZXRJY29uKCd0YW9iYW8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMTY4LjUgMjczLjdhNjguNyA2OC43IDAgMSAwIDEzNy40IDAgNjguNyA2OC43IDAgMSAwLTEzNy40IDB6bTczMCA3OS4ycy0yMy43LTE4NC40LTQyNi45LTcwLjFjMTcuMy0zMCAyNS42LTQ5LjUgMjUuNi00OS41TDM5Ni40IDIwNXMtNDAuNiAxMzIuNi0xMTMgMTk0LjRjMCAwIDcwLjEgNDAuNiA2OS40IDM5LjQgMjAuMS0yMC4xIDM4LjItNDAuNiA1My43LTYwLjQgMTYuMS03IDMxLjUtMTMuNiA0Ni43LTE5LjgtMTguNiAzMy41LTQ4LjcgODMuOC03OC44IDExNS42bDQyLjQgMzdzMjguOC0yNy43IDYwLjQtNjEuMmgzNnY2MS44SDM3Mi45djQ5LjVoMTQwLjN2MTE4LjVjLTEuNyAwLTMuNiAwLTUuNC0uMi0xNS40LS43LTM5LjUtMy4zLTQ5LTE4LjItMTEuNS0xOC4xLTMtNTEuNS0yLjQtNzEuOWgtOTdsLTMuNCAxLjhzLTM1LjUgMTU5LjEgMTAyLjMgMTU1LjVjMTI5LjEgMy42IDIwMy0zNiAyMzguNi02My4xbDE0LjIgNTIuNiA3OS42LTMzLjItNTMuOS0xMzEuOS02NC42IDIwLjEgMTIuMSA0NS4yYy0xNi42IDEyLjQtMzUuNiAyMS43LTU2LjIgMjguNFY1NjEuM2gxMzcuMXYtNDkuNUg2MjguMVY0NTBoMTM3LjZ2LTQ5LjVINTIxLjNjMTcuNi0yMS40IDMxLjUtNDEuMSAzNS01My42bC00Mi41LTExLjZjMTgyLjgtNjUuNSAyODQuNS01NC4yIDI4My42IDUzLjJ2MjgyLjhzMTAuOCA5Ny4xLTEwMC40IDkwLjFsLTYwLjItMTIuOS0xNC4yIDU3LjFTODgyLjUgODgwIDkwMy43IDY4MC4yYzIxLjMtMjAwLTUuMi0zMjcuMy01LjItMzI3LjN6bS03MDcuNCAxOC4zbC00NS40IDY5LjcgODMuNiA1Mi4xczU2IDI4LjUgMjkuNCA4MS45QzIzMy44IDYyNS41IDExMiA3MzYuMyAxMTIgNzM2LjNsMTA5IDY4LjFjNzUuNC0xNjMuNyA3MC41LTE0MiA4OS41LTIwMC43IDE5LjUtNjAuMSAyMy43LTEwNS45LTkuNC0xMzkuMS00Mi40LTQyLjYtNDctNDYuNi0xMTAtOTMuNHonKSk7XG5leHBvcnRzLlRvVG9wT3V0bGluZSA9IGdldEljb24oJ3RvLXRvcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODUgNzgwSDE2NWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg3MjBjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6TTQwMCAzMjUuN2g3My45VjY2NGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMyNS43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAxNzFhOCA4IDAgMCAwLTEyLjYgMGwtMTEyIDE0MS43Yy00LjEgNS4zLS40IDEzIDYuMyAxM3onKSk7XG5leHBvcnRzLlRyYWRlbWFya091dGxpbmUgPSBnZXRJY29uKCd0cmFkZW1hcmsnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyem04Ny41LTMzNC43YzM0LjgtMTIuOCA3OC40LTQ5IDc4LjQtMTE5LjIgMC03MS4yLTQ1LjUtMTMxLjEtMTQ0LjItMTMxLjFIMzc4Yy00LjQgMC04IDMuNi04IDh2NDEwYzAgNC40IDMuNiA4IDggOGg1NC41YzQuNCAwIDgtMy42IDgtOFY1NjEuMmg4OC43bDc0LjYgMTU5LjJjMS4zIDIuOCA0LjEgNC42IDcuMiA0LjZoNjJhNy45IDcuOSAwIDAgMCA3LjEtMTEuNWwtODAuNi0xNjQuMnpNNTIyIDUwNWgtODEuNVYzNTdoODMuNGM0OCAwIDgwLjkgMjUuMyA4MC45IDc1LjUgMCA0Ni45LTI5LjggNzIuNS04Mi44IDcyLjV6JykpO1xuZXhwb3J0cy5UcmFuc2FjdGlvbk91dGxpbmUgPSBnZXRJY29uKCd0cmFuc2FjdGlvbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002NjguNiAzMjBjMC00LjQtMy42LTgtOC04aC01NC41Yy0zIDAtNS44IDEuNy03LjEgNC40bC04NC43IDE2OC44SDUxMWwtODQuNy0xNjguOGE4IDggMCAwIDAtNy4xLTQuNGgtNTUuN2MtMS4zIDAtMi42LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOGwxMDMuOSAxOTEuNmgtNTdjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NnYzOWgtNzZjLTQuNCAwLTggMy42LTggOHYyNy4xYzAgNC40IDMuNiA4IDggOGg3NlY3MDRjMCA0LjQgMy42IDggOCA4aDQ5LjljNC40IDAgOC0zLjYgOC04di02My41aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOGgtNzYuM3YtMzloNzYuM2M0LjQgMCA4LTMuNiA4LTh2LTI3LjFjMC00LjQtMy42LTgtOC04SDU2NGwxMDMuNy0xOTEuNmMuNS0xLjEuOS0yLjQuOS0zLjd6TTE1Ny45IDUwNC4yYTM1Mi43IDM1Mi43IDAgMCAxIDEwMy41LTI0Mi40YzMyLjUtMzIuNSA3MC4zLTU4LjEgMTEyLjQtNzUuOSA0My42LTE4LjQgODkuOS0yNy44IDEzNy42LTI3LjggNDcuOCAwIDk0LjEgOS4zIDEzNy42IDI3LjggNDIuMSAxNy44IDc5LjkgNDMuNCAxMTIuNCA3NS45IDEwIDEwIDE5LjMgMjAuNSAyNy45IDMxLjRsLTUwIDM5LjFhOCA4IDAgMCAwIDMgMTQuMWwxNTYuOCAzOC4zYzUgMS4yIDkuOS0yLjYgOS45LTcuN2wuOC0xNjEuNWMwLTYuNy03LjctMTAuNS0xMi45LTYuM2wtNDcuOCAzNy40Qzc3MC43IDE0Ni4zIDY0OC42IDgyIDUxMS41IDgyIDI3NyA4MiA4Ni4zIDI3MC4xIDgyIDUwMy44YTggOCAwIDAgMCA4IDguMmg2MGM0LjMgMCA3LjgtMy41IDcuOS03Ljh6TTkzNCA1MTJoLTYwYy00LjMgMC03LjkgMy41LTggNy44YTM1Mi43IDM1Mi43IDAgMCAxLTEwMy41IDI0Mi40IDM1Mi41NyAzNTIuNTcgMCAwIDEtMTEyLjQgNzUuOWMtNDMuNiAxOC40LTg5LjkgMjcuOC0xMzcuNiAyNy44cy05NC4xLTkuMy0xMzcuNi0yNy44YTM1Mi41NyAzNTIuNTcgMCAwIDEtMTEyLjQtNzUuOWMtMTAtMTAtMTkuMy0yMC41LTI3LjktMzEuNGw0OS45LTM5LjFhOCA4IDAgMCAwLTMtMTQuMWwtMTU2LjgtMzguM2MtNS0xLjItOS45IDIuNi05LjkgNy43bC0uOCAxNjEuN2MwIDYuNyA3LjcgMTAuNSAxMi45IDYuM2w0Ny44LTM3LjRDMjUzLjMgODc3LjcgMzc1LjQgOTQyIDUxMi41IDk0MiA3NDcgOTQyIDkzNy43IDc1My45IDk0MiA1MjAuMmE4IDggMCAwIDAtOC04LjJ6JykpO1xuZXhwb3J0cy5Ud2l0dGVyT3V0bGluZSA9IGdldEljb24oJ3R3aXR0ZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNOTI4IDI1NC4zYy0zMC42IDEzLjItNjMuOSAyMi43LTk4LjIgMjYuNGExNzAuMSAxNzAuMSAwIDAgMCA3NS05NCAzMzYuNjQgMzM2LjY0IDAgMCAxLTEwOC4yIDQxLjJBMTcwLjEgMTcwLjEgMCAwIDAgNjcyIDE3NGMtOTQuNSAwLTE3MC41IDc2LjYtMTcwLjUgMTcwLjYgMCAxMy4yIDEuNiAyNi40IDQuMiAzOS4xLTE0MS41LTcuNC0yNjcuNy03NS0zNTEuNi0xNzguNWExNjkuMzIgMTY5LjMyIDAgMCAwLTIzLjIgODYuMWMwIDU5LjIgMzAuMSAxMTEuNCA3NiAxNDIuMWExNzIgMTcyIDAgMCAxLTc3LjEtMjEuN3YyLjFjMCA4Mi45IDU4LjYgMTUxLjYgMTM2LjcgMTY3LjRhMTgwLjYgMTgwLjYgMCAwIDEtNDQuOSA1LjhjLTExLjEgMC0yMS42LTEuMS0zMi4yLTIuNkMyMTEgNjUyIDI3My45IDcwMS4xIDM0OC44IDcwMi43Yy01OC42IDQ1LjktMTMyIDcyLjktMjExLjcgNzIuOS0xNC4zIDAtMjcuNS0uNS00MS4yLTIuMUMxNzEuNSA4MjIgMjYxLjIgODUwIDM1Ny44IDg1MCA2NzEuNCA4NTAgODQzIDU5MC4yIDg0MyAzNjQuN2MwLTcuNCAwLTE0LjgtLjUtMjIuMiAzMy4yLTI0LjMgNjIuMy01NC40IDg1LjUtODguMnonKSk7XG5leHBvcnRzLlVuZGVybGluZU91dGxpbmUgPSBnZXRJY29uKCd1bmRlcmxpbmUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODI0IDgwNEgyMDBjLTQuNCAwLTggMy40LTggNy42djYwLjhjMCA0LjIgMy42IDcuNiA4IDcuNmg2MjRjNC40IDAgOC0zLjQgOC03LjZ2LTYwLjhjMC00LjItMy42LTcuNi04LTcuNnptLTMxMi03NmM2OS40IDAgMTM0LjYtMjcuMSAxODMuOC03Ni4yQzc0NSA2MDIuNyA3NzIgNTM3LjQgNzcyIDQ2OFYxNTZjMC02LjYtNS40LTEyLTEyLTEyaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjMxMmMwIDk3LTc5IDE3Ni0xNzYgMTc2cy0xNzYtNzktMTc2LTE3NlYxNTZjMC02LjYtNS40LTEyLTEyLTEyaC02MGMtNi42IDAtMTIgNS40LTEyIDEydjMxMmMwIDY5LjQgMjcuMSAxMzQuNiA3Ni4yIDE4My44QzM3Ny4zIDcwMSA0NDIuNiA3MjggNTEyIDcyOHonKSk7XG5leHBvcnRzLlVuZG9PdXRsaW5lID0gZ2V0SWNvbigndW5kbycsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001MTEuNCAxMjRDMjkwLjUgMTI0LjMgMTEyIDMwMyAxMTIgNTIzLjljMCAxMjggNjAuMiAyNDIgMTUzLjggMzE1LjJsLTM3LjUgNDhjLTQuMSA1LjMtLjMgMTMgNi4zIDEyLjlsMTY3LS44YzUuMiAwIDktNC45IDcuNy05LjlMMzY5LjggNzI3YTggOCAwIDAgMC0xNC4xLTNMMzE1IDc3Ni4xYy0xMC4yLTgtMjAtMTYuNy0yOS4zLTI2YTMxOC42NCAzMTguNjQgMCAwIDEtNjguNi0xMDEuN0MyMDAuNCA2MDkgMTkyIDU2Ny4xIDE5MiA1MjMuOXM4LjQtODUuMSAyNS4xLTEyNC41YzE2LjEtMzguMSAzOS4yLTcyLjMgNjguNi0xMDEuNyAyOS40LTI5LjQgNjMuNi01Mi41IDEwMS43LTY4LjZDNDI2LjkgMjEyLjQgNDY4LjggMjA0IDUxMiAyMDRzODUuMSA4LjQgMTI0LjUgMjUuMWMzOC4xIDE2LjEgNzIuMyAzOS4yIDEwMS43IDY4LjYgMjkuNCAyOS40IDUyLjUgNjMuNiA2OC42IDEwMS43IDE2LjcgMzkuNCAyNS4xIDgxLjMgMjUuMSAxMjQuNXMtOC40IDg1LjEtMjUuMSAxMjQuNWEzMTguNjQgMzE4LjY0IDAgMCAxLTY4LjYgMTAxLjdjLTcuNSA3LjUtMTUuMyAxNC41LTIzLjQgMjEuMmE3LjkzIDcuOTMgMCAwIDAtMS4yIDExLjFsMzkuNCA1MC41YzIuOCAzLjUgNy45IDQuMSAxMS40IDEuM0M4NTQuNSA3NjAuOCA5MTIgNjQ5LjEgOTEyIDUyMy45YzAtMjIxLjEtMTc5LjQtNDAwLjItNDAwLjYtMzk5Ljl6JykpO1xuZXhwb3J0cy5Vbm9yZGVyZWRMaXN0T3V0bGluZSA9IGdldEljb24oJ3Vub3JkZXJlZC1saXN0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTkxMiAxOTJIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCAyODRIMzI4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDU4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTA0IDIyOGE1NiA1NiAwIDEgMCAxMTIgMCA1NiA1NiAwIDEgMC0xMTIgMHptMCAyODRhNTYgNTYgMCAxIDAgMTEyIDAgNTYgNTYgMCAxIDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMSAwIDExMiAwIDU2IDU2IDAgMSAwLTExMiAweicpKTtcbmV4cG9ydHMuVXBPdXRsaW5lID0gZ2V0SWNvbigndXAnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODkwLjUgNzU1LjNMNTM3LjkgMjY5LjJjLTEyLjgtMTcuNi0zOS0xNy42LTUxLjcgMEwxMzMuNSA3NTUuM0E4IDggMCAwIDAgMTQwIDc2OGg3NWM1LjEgMCA5LjktMi41IDEyLjktNi42TDUxMiAzNjkuOGwyODQuMSAzOTEuNmMzIDQuMSA3LjggNi42IDEyLjkgNi42aDc1YzYuNSAwIDEwLjMtNy40IDYuNS0xMi43eicpKTtcbmV4cG9ydHMuVXBsb2FkT3V0bGluZSA9IGdldEljb24oJ3VwbG9hZCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ000MDAgMzE3LjdoNzMuOVY2NTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFYzMTcuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMTYzYTggOCAwIDAgMC0xMi42IDBsLTExMiAxNDEuN2MtNC4xIDUuMy0uNCAxMyA2LjMgMTN6TTg3OCA2MjZoLTYwYy00LjQgMC04IDMuNi04IDh2MTU0SDIxNFY2MzRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE5OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2ODRjMTcuNyAwIDMyLTE0LjMgMzItMzJWNjM0YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlVzZXJBZGRPdXRsaW5lID0gZ2V0SWNvbigndXNlci1hZGQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc4LjMgNjQyLjRjMjQuMi0xMyA1MS45LTIwLjQgODEuNC0yMC40aC4xYzMgMCA0LjQtMy42IDIuMi01LjZhMzcxLjY3IDM3MS42NyAwIDAgMC0xMDMuNy02NS44Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjIgNTA1IDc1OS42IDQzMS43IDc1OS42IDM0OWMwLTEzNy0xMTAuOC0yNDgtMjQ3LjUtMjQ4UzI2NC43IDIxMiAyNjQuNyAzNDljMCA4Mi43IDQwLjQgMTU2IDEwMi42IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwIDAtODAuNCAxMTkuNUEzNzMuNiAzNzMuNiAwIDAgMCAxMzcgODg4LjhhOCA4IDAgMCAwIDggOC4yaDU5LjljNC4zIDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzIuOS0xNDkuNSA4Ny42LTIwNC4zQzM1NyA2MjguMiA0MzIuMiA1OTcgNTEyLjIgNTk3YzU2LjcgMCAxMTEuMSAxNS43IDE1OCA0NS4xYTguMSA4LjEgMCAwIDAgOC4xLjN6TTUxMi4yIDUyMWMtNDUuOCAwLTg4LjktMTcuOS0xMjEuNC01MC40QTE3MS4yIDE3MS4yIDAgMCAxIDM0MC41IDM0OWMwLTQ1LjkgMTcuOS04OS4xIDUwLjMtMTIxLjZTNDY2LjMgMTc3IDUxMi4yIDE3N3M4OC45IDE3LjkgMTIxLjQgNTAuNEExNzEuMiAxNzEuMiAwIDAgMSA2ODMuOSAzNDljMCA0NS45LTE3LjkgODkuMS01MC4zIDEyMS42QzYwMS4xIDUwMy4xIDU1OCA1MjEgNTEyLjIgNTIxek04ODAgNzU5aC04NHYtODRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djg0aC04NGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg4NHY4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04NGg4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHonKSk7XG5leHBvcnRzLlVzZXJncm91cEFkZE91dGxpbmUgPSBnZXRJY29uKCd1c2VyZ3JvdXAtYWRkJywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTg5MiA3NzJoLTgwdi04MGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2ODBoLTgwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDgwdjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTgwaDgwYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA0OTguNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMCAxLTM4LjctOTUuNGMuOS0zMi4xIDEzLjgtNjIuNiAzNi4zLTg1LjYgMjQuNy0yNS4zIDU3LjktMzkuMSA5My4yLTM4LjcgMzEuOS4zIDYyLjcgMTIuNiA4NiAzNC40IDcuOSA3LjQgMTQuNyAxNS42IDIwLjQgMjQuNCAyIDMuMSA1LjkgNC40IDkuMyAzLjIgMTcuNi02LjEgMzYuMi0xMC40IDU1LjMtMTIuNCA1LjYtLjYgOC44LTYuNiA2LjMtMTEuNi0zMi41LTY0LjMtOTguOS0xMDguNy0xNzUuNy0xMDkuOS0xMTAuOC0xLjctMjAzLjIgODkuMi0yMDMuMiAyMDAgMCA2Mi44IDI4LjkgMTE4LjggNzQuMiAxNTUuNS0zMS44IDE0LjctNjEuMSAzNS04Ni41IDYwLjQtNTQuOCA1NC43LTg1LjggMTI2LjktODcuOCAyMDRhOCA4IDAgMCAwIDggOC4yaDU2LjFjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41IDI5LjQtMjkuNCA2NS40LTQ5LjggMTA0LjctNTkuNyAzLjgtMS4xIDYuNC00LjggNS45LTguOHpNODI0IDQ3MmMwLTEwOS40LTg3LjktMTk4LjMtMTk2LjktMjAwQzUxNi4zIDI3MC4zIDQyNCAzNjEuMiA0MjQgNDcyYzAgNjIuOCAyOSAxMTguOCA3NC4yIDE1NS41YTMwMC45NSAzMDAuOTUgMCAwIDAtODYuNCA2MC40QzM1NyA3NDIuNiAzMjYgODE0LjggMzI0IDg5MS44YTggOCAwIDAgMCA4IDguMmg1NmM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjVDNTA1LjggNjk1LjcgNTYzIDY3MiA2MjQgNjcyYzExMC40IDAgMjAwLTg5LjUgMjAwLTIwMHptLTEwOS41IDkwLjVDNjkwLjMgNTg2LjcgNjU4LjIgNjAwIDYyNCA2MDBzLTY2LjMtMTMuMy05MC41LTM3LjVhMTI3LjI2IDEyNy4yNiAwIDAgMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNC0uMSAzNC4yLTEzLjQgNjYuMy0zNy42IDkwLjV6JykpO1xuZXhwb3J0cy5Vc2VyT3V0bGluZSA9IGdldEljb24oJ3VzZXInLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU4LjUgNzYzLjZhMzc0IDM3NCAwIDAgMC04MC42LTExOS41IDM3NS42MyAzNzUuNjMgMCAwIDAtMTE5LjUtODAuNmMtLjQtLjItLjgtLjMtMS4yLS41QzcxOS41IDUxOCA3NjAgNDQ0LjcgNzYwIDM2MmMwLTEzNy0xMTEtMjQ4LTI0OC0yNDhTMjY0IDIyNSAyNjQgMzYyYzAgODIuNyA0MC41IDE1NiAxMDIuOCAyMDEuMS0uNC4yLS44LjMtMS4yLjUtNDQuOCAxOC45LTg1IDQ2LTExOS41IDgwLjZhMzc1LjYzIDM3NS42MyAwIDAgMC04MC42IDExOS41QTM3MS43IDM3MS43IDAgMCAwIDEzNiA5MDEuOGE4IDggMCAwIDAgOCA4LjJoNjBjNC40IDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzMtMTQ5LjUgODcuOC0yMDQuMyA1Ni43LTU2LjcgMTMyLTg3LjkgMjEyLjItODcuOXMxNTUuNSAzMS4yIDIxMi4yIDg3LjlDNzc5IDc1Mi43IDgxMCA4MjUgODEyIDkwMi4yYy4xIDQuNCAzLjYgNy44IDggNy44aDYwYTggOCAwIDAgMCA4LTguMmMtMS00Ny44LTEwLjktOTQuMy0yOS41LTEzOC4yek01MTIgNTM0Yy00NS45IDAtODkuMS0xNy45LTEyMS42LTUwLjRTMzQwIDQwNy45IDM0MCAzNjJjMC00NS45IDE3LjktODkuMSA1MC40LTEyMS42UzQ2Ni4xIDE5MCA1MTIgMTkwczg5LjEgMTcuOSAxMjEuNiA1MC40UzY4NCAzMTYuMSA2ODQgMzYyYzAgNDUuOS0xNy45IDg5LjEtNTAuNCAxMjEuNlM1NTcuOSA1MzQgNTEyIDUzNHonKSk7XG5leHBvcnRzLlVzZXJEZWxldGVPdXRsaW5lID0gZ2V0SWNvbigndXNlci1kZWxldGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjc4LjMgNjU1LjRjMjQuMi0xMyA1MS45LTIwLjQgODEuNC0yMC40aC4xYzMgMCA0LjQtMy42IDIuMi01LjZhMzcxLjY3IDM3MS42NyAwIDAgMC0xMDMuNy02NS44Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjIgNTE4IDc1OS42IDQ0NC43IDc1OS42IDM2MmMwLTEzNy0xMTAuOC0yNDgtMjQ3LjUtMjQ4UzI2NC43IDIyNSAyNjQuNyAzNjJjMCA4Mi43IDQwLjQgMTU2IDEwMi42IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC43IDE4LjktODQuOCA0Ni0xMTkuMyA4MC42YTM3My40MiAzNzMuNDIgMCAwIDAtODAuNCAxMTkuNUEzNzMuNiAzNzMuNiAwIDAgMCAxMzcgOTAxLjhhOCA4IDAgMCAwIDggOC4yaDU5LjljNC4zIDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzIuOS0xNDkuNSA4Ny42LTIwNC4zQzM1NyA2NDEuMiA0MzIuMiA2MTAgNTEyLjIgNjEwYzU2LjcgMCAxMTEuMSAxNS43IDE1OCA0NS4xYTguMSA4LjEgMCAwIDAgOC4xLjN6TTUxMi4yIDUzNGMtNDUuOCAwLTg4LjktMTcuOS0xMjEuNC01MC40QTE3MS4yIDE3MS4yIDAgMCAxIDM0MC41IDM2MmMwLTQ1LjkgMTcuOS04OS4xIDUwLjMtMTIxLjZTNDY2LjMgMTkwIDUxMi4yIDE5MHM4OC45IDE3LjkgMTIxLjQgNTAuNEExNzEuMiAxNzEuMiAwIDAgMSA2ODMuOSAzNjJjMCA0NS45LTE3LjkgODkuMS01MC4zIDEyMS42QzYwMS4xIDUxNi4xIDU1OCA1MzQgNTEyLjIgNTM0ek04ODAgNzcySDY0MGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNDBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LTh6JykpO1xuZXhwb3J0cy5Vc2VyZ3JvdXBEZWxldGVPdXRsaW5lID0gZ2V0SWNvbigndXNlcmdyb3VwLWRlbGV0ZScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004ODggNzg0SDY2NGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgyMjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTM3My41IDUxMC40Yy0uOS04LjctMS40LTE3LjUtMS40LTI2LjQgMC0xNS45IDEuNS0zMS40IDQuMy00Ni41LjctMy42LTEuMi03LjMtNC41LTguOC0xMy42LTYuMS0yNi4xLTE0LjUtMzYuOS0yNS4xYTEyNy41NCAxMjcuNTQgMCAwIDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC45LTEuNy0yMDMuMyA4OS4yLTIwMy4zIDE5OS45IDAgNjIuOCAyOC45IDExOC44IDc0LjIgMTU1LjUtMzEuOCAxNC43LTYxLjEgMzUtODYuNSA2MC40LTU0LjggNTQuNy04NS44IDEyNi45LTg3LjggMjA0YTggOCAwIDAgMCA4IDguMmg1Ni4xYzQuMyAwIDcuOS0zLjQgOC03LjcgMS45LTU4IDI1LjQtMTEyLjMgNjYuNy0xNTMuNSAyOS40LTI5LjQgNjUuNC00OS44IDEwNC43LTU5LjcgMy45LTEgNi41LTQuNyA2LTguN3pNODI0IDQ4NGMwLTEwOS40LTg3LjktMTk4LjMtMTk2LjktMjAwQzUxNi4zIDI4Mi4zIDQyNCAzNzMuMiA0MjQgNDg0YzAgNjIuOCAyOSAxMTguOCA3NC4yIDE1NS41YTMwMC45NSAzMDAuOTUgMCAwIDAtODYuNCA2MC40QzM1NyA3NTQuNiAzMjYgODI2LjggMzI0IDkwMy44YTggOCAwIDAgMCA4IDguMmg1NmM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjVDNTA1LjggNzA3LjcgNTYzIDY4NCA2MjQgNjg0YzExMC40IDAgMjAwLTg5LjUgMjAwLTIwMHptLTEwOS41IDkwLjVDNjkwLjMgNTk4LjcgNjU4LjIgNjEyIDYyNCA2MTJzLTY2LjMtMTMuMy05MC41LTM3LjVhMTI3LjI2IDEyNy4yNiAwIDAgMS0zNy41LTkxLjhjLjMtMzIuOCAxMy40LTY0LjUgMzYuMy04OCAyNC0yNC42IDU2LjEtMzguMyA5MC40LTM4LjcgMzMuOS0uMyA2Ni44IDEyLjkgOTEgMzYuNiAyNC44IDI0LjMgMzguNCA1Ni44IDM4LjQgOTEuNC0uMSAzNC4yLTEzLjQgNjYuMy0zNy42IDkwLjV6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbEFsaWduQm90dG9tT3V0bGluZSA9IGdldEljb24oJ3ZlcnRpY2FsLWFsaWduLWJvdHRvbScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTkuOSA3ODBIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6TTUwNS43IDY2OWE4IDggMCAwIDAgMTIuNiAwbDExMi0xNDEuN2M0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzQuMVYxNzZjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMzOC4zSDQwMGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMTEyIDE0MS44eicpKTtcbmV4cG9ydHMuVmVydGljYWxBbGlnbk1pZGRsZU91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1hbGlnbi1taWRkbGUnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNODU5LjkgNDc0SDE2NC4xYy00LjUgMC04LjEgMy42LTguMSA4djYwYzAgNC40IDMuNiA4IDguMSA4aDY5NS44YzQuNSAwIDguMS0zLjYgOC4xLTh2LTYwYzAtNC40LTMuNi04LTguMS04em0tMzUzLjYtNzQuN2MyLjkgMy43IDguNSAzLjcgMTEuMyAwbDEwMC44LTEyNy41YzMuNy00LjcuNC0xMS43LTUuNy0xMS43SDU1MFYxMDRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NmgtNjIuOGMtNiAwLTkuNCA3LTUuNyAxMS43bDEwMC44IDEyNy42em0xMS40IDIyNS40YTcuMTQgNy4xNCAwIDAgMC0xMS4zIDBMNDA1LjYgNzUyLjNhNy4yMyA3LjIzIDAgMCAwIDUuNyAxMS43SDQ3NHYxNTZjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY3NjRoNjIuOGM2IDAgOS40LTcgNS43LTExLjdMNTE3LjcgNjI0Ljd6JykpO1xuZXhwb3J0cy5WZXJ0aWNhbEFsaWduVG9wT3V0bGluZSA9IGdldEljb24oJ3ZlcnRpY2FsLWFsaWduLXRvcCcsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ004NTkuOSAxNjhIMTY0LjFjLTQuNSAwLTguMSAzLjYtOC4xIDh2NjBjMCA0LjQgMy42IDggOC4xIDhoNjk1LjhjNC41IDAgOC4xLTMuNiA4LjEtOHYtNjBjMC00LjQtMy42LTgtOC4xLTh6TTUxOC4zIDM1NWE4IDggMCAwIDAtMTIuNiAwbC0xMTIgMTQxLjdhNy45OCA3Ljk4IDAgMCAwIDYuMyAxMi45aDczLjlWODQ4YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTA5LjdINjI0YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDUxOC4zIDM1NXonKSk7XG5leHBvcnRzLlZlcnRpY2FsUmlnaHRPdXRsaW5lID0gZ2V0SWNvbigndmVydGljYWwtcmlnaHQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNMzI2IDE2NGgtNjRjLTQuNCAwLTggMy42LTggOHY2ODhjMCA0LjQgMy42IDggOCA4aDY0YzQuNCAwIDgtMy42IDgtOFYxNzJjMC00LjQtMy42LTgtOC04em00NDQgNzIuNFYxNjRjMC02LjgtNy45LTEwLjUtMTMuMS02LjFMMzM1IDUxMmw0MjEuOSAzNTQuMWM1LjIgNC40IDEzLjEuNyAxMy4xLTYuMXYtNzIuNGMwLTkuNC00LjItMTguNC0xMS40LTI0LjVMNDU5LjQgNTEybDI5OS4yLTI1MS4xYzcuMi02LjEgMTEuNC0xNS4xIDExLjQtMjQuNXonKSk7XG5leHBvcnRzLlZlcnRpY2FsTGVmdE91dGxpbmUgPSBnZXRJY29uKCd2ZXJ0aWNhbC1sZWZ0Jywgb3V0bGluZSwgZ2V0Tm9kZShuZXdWaWV3Qm94LCAnTTc2MiAxNjRoLTY0Yy00LjQgMC04IDMuNi04IDh2Njg4YzAgNC40IDMuNiA4IDggOGg2NGM0LjQgMCA4LTMuNiA4LThWMTcyYzAtNC40LTMuNi04LTgtOHptLTUwOCAwdjcyLjRjMCA5LjUgNC4yIDE4LjQgMTEuNCAyNC41TDU2NC42IDUxMiAyNjUuNCA3NjMuMWMtNy4yIDYuMS0xMS40IDE1LTExLjQgMjQuNVY4NjBjMCA2LjggNy45IDEwLjUgMTMuMSA2LjFMNjg5IDUxMiAyNjcuMSAxNTcuOUE3Ljk1IDcuOTUgMCAwIDAgMjU0IDE2NHonKSk7XG5leHBvcnRzLldpZmlPdXRsaW5lID0gZ2V0SWNvbignd2lmaScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ003MjMgNjIwLjVDNjY2LjggNTcxLjYgNTkzLjQgNTQyIDUxMyA1NDJzLTE1My44IDI5LjYtMjEwLjEgNzguNmE4LjEgOC4xIDAgMCAwLS44IDExLjJsMzYgNDIuOWMyLjkgMy40IDggMy44IDExLjQuOUMzOTMuMSA2MzcuMiA0NTAuMyA2MTQgNTEzIDYxNHMxMTkuOSAyMy4yIDE2My41IDYxLjVjMy40IDIuOSA4LjUgMi41IDExLjQtLjlsMzYtNDIuOWMyLjgtMy4zIDIuNC04LjMtLjktMTEuMnptMTE3LjQtMTQwLjFDNzUxLjcgNDA2LjUgNjM3LjYgMzYyIDUxMyAzNjJzLTIzOC43IDQ0LjUtMzI3LjUgMTE4LjRhOC4wNSA4LjA1IDAgMCAwLTEgMTEuM2wzNiA0Mi45YzIuOCAzLjQgNy45IDMuOCAxMS4yIDFDMzA4IDQ3Mi4yIDQwNi4xIDQzNCA1MTMgNDM0czIwNSAzOC4yIDI4MS4yIDEwMS42YzMuNCAyLjggOC40IDIuNCAxMS4yLTFsMzYtNDIuOWMyLjgtMy40IDIuNC04LjUtMS0xMS4zem0xMTYuNy0xMzlDODM1LjcgMjQxLjggNjgwLjMgMTgyIDUxMSAxODJjLTE2OC4yIDAtMzIyLjYgNTktNDQzLjcgMTU3LjRhOCA4IDAgMCAwLTEuMSAxMS40bDM2IDQyLjljMi44IDMuMyA3LjggMy44IDExLjEgMS4xQzIyMiAzMDYuNyAzNjAuMyAyNTQgNTExIDI1NGMxNTEuOCAwIDI5MSA1My41IDQwMCAxNDIuNyAzLjQgMi44IDguNCAyLjMgMTEuMi0xLjFsMzYtNDIuOWMyLjktMy40IDIuNC04LjUtMS4xLTExLjN6TTQ0OCA3NzhhNjQgNjQgMCAxIDAgMTI4IDAgNjQgNjQgMCAxIDAtMTI4IDB6JykpO1xuZXhwb3J0cy5aaGlodU91dGxpbmUgPSBnZXRJY29uKCd6aGlodScsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ001NjQuNyAyMzAuMVY4MDNoNjBsMjUuMiA3MS40TDc1Ni4zIDgwM2gxMzEuNVYyMzAuMUg1NjQuN3ptMjQ3LjcgNDk3aC01OS45bC03NS4xIDUwLjQtMTcuOC01MC40aC0xOFYzMDguM2gxNzAuN3Y0MTguOHpNNTI2LjEgNDg2LjlIMzkzLjNjMi4xLTQ0LjkgNC4zLTEwNC4zIDYuNi0xNzIuOWgxMzAuOWwtLjEtOC4xYzAtLjYtLjItMTQuNy0yLjMtMjkuMS0yLjEtMTUtNi42LTM0LjktMjEtMzQuOUgyODcuOGM0LjQtMjAuNiAxNS43LTY5LjcgMjkuNC05My44bDYuNC0xMS4yLTEyLjktLjdjLS44IDAtMTkuNi0uOS00MS40IDEwLjYtMzUuNyAxOS01MS43IDU2LjQtNTguNyA4NC40LTE4LjQgNzMuMS00NC42IDEyMy45LTU1LjcgMTQ1LjYtMy4zIDYuNC01LjMgMTAuMi02LjIgMTIuOC0xLjggNC45LS44IDkuOCAyLjggMTMgMTAuNSA5LjUgMzguMi0yLjkgMzguNS0zIC42LS4zIDEuMy0uNiAyLjItMSAxMy45LTYuMyA1NS4xLTI1IDY5LjgtODQuNWg1Ni43Yy43IDMyLjIgMy4xIDEzOC40IDIuOSAxNzIuOWgtMTQxbC0yLjEgMS41Yy0yMy4xIDE2LjktMzAuNSA2My4yLTMwLjggNjUuMmwtMS40IDkuMmgxNjdjLTEyLjMgNzguMy0yNi41IDExMy40LTM0IDEyNy40LTMuNyA3LTcuMyAxNC0xMC43IDIwLjgtMjEuMyA0Mi4yLTQzLjQgODUuOC0xMjYuMyAxNTMuNi0zLjYgMi44LTcgOC00LjggMTMuNyAyLjQgNi4zIDkuMyA5LjEgMjQuNiA5LjEgNS40IDAgMTEuOC0uMyAxOS40LTEgNDkuOS00LjQgMTAwLjgtMTggMTM1LjEtODcuNiAxNy0zNS4xIDMxLjctNzEuNyA0My45LTEwOC45TDQ5NyA4NTBsNS0xMmMuOC0xLjkgMTktNDYuMyA1LjEtOTUuOWwtLjUtMS44LTEwOC4xLTEyMy0yMiAxNi42YzYuNC0yNi4xIDEwLjYtNDkuOSAxMi41LTcxLjFoMTU4Ljd2LThjMC00MC4xLTE4LjUtNjMuOS0xOS4yLTY0LjlsLTIuNC0zeicpKTtcbmV4cG9ydHMuV2VpYm9PdXRsaW5lID0gZ2V0SWNvbignd2VpYm8nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNDU3LjMgNTQzYy02OC4xLTE3LjctMTQ1IDE2LjItMTc0LjYgNzYuMi0zMC4xIDYxLjItMSAxMjkuMSA2Ny44IDE1MS4zIDcxLjIgMjMgMTU1LjItMTIuMiAxODQuNC03OC4zIDI4LjctNjQuNi03LjItMTMxLTc3LjYtMTQ5LjJ6bS01MiAxNTYuMmMtMTMuOCAyMi4xLTQzLjUgMzEuNy02NS44IDIxLjYtMjItMTAtMjguNS0zNS43LTE0LjYtNTcuMiAxMy43LTIxLjQgNDIuMy0zMSA2NC40LTIxLjcgMjIuNCA5LjUgMjkuNiAzNSAxNiA1Ny4zem00NS41LTU4LjVjLTUgOC42LTE2LjEgMTIuNy0yNC43IDkuMS04LjUtMy41LTExLjItMTMuMS02LjQtMjEuNSA1LTguNCAxNS42LTEyLjQgMjQuMS05LjEgOC43IDMuMiAxMS44IDEyLjkgNyAyMS41em0zMzQuNS0xOTcuMmMxNSA0LjggMzEtMy40IDM1LjktMTguMyAxMS44LTM2LjYgNC40LTc4LjQtMjMuMi0xMDlhMTExLjM5IDExMS4zOSAwIDAgMC0xMDYtMzQuMyAyOC40NSAyOC40NSAwIDAgMC0yMS45IDMzLjggMjguMzkgMjguMzkgMCAwIDAgMzMuOCAyMS44YzE4LjQtMy45IDM4LjMgMS44IDUxLjkgMTYuN2E1NC4yIDU0LjIgMCAwIDEgMTEuMyA1My4zIDI4LjQ1IDI4LjQ1IDAgMCAwIDE4LjIgMzZ6bTk5LjgtMjA2Yy01Ni43LTYyLjktMTQwLjQtODYuOS0yMTcuNy03MC41YTMyLjk4IDMyLjk4IDAgMCAwLTI1LjQgMzkuMyAzMy4xMiAzMy4xMiAwIDAgMCAzOS4zIDI1LjVjNTUtMTEuNyAxMTQuNCA1LjQgMTU0LjggNTAuMSA0MC4zIDQ0LjcgNTEuMiAxMDUuNyAzNCAxNTkuMS01LjYgMTcuNCAzLjkgMzYgMjEuMyA0MS43IDE3LjQgNS42IDM2LTMuOSA0MS42LTIxLjJ2LS4xYzI0LjEtNzUuNCA4LjktMTYxLjEtNDcuOS0yMjMuOXpNNzI5IDQ5OWMtMTIuMi0zLjYtMjAuNS02LjEtMTQuMS0yMi4xIDEzLjgtMzQuNyAxNS4yLTY0LjcuMy04Ni0yOC00MC4xLTEwNC44LTM3LjktMTkyLjgtMS4xIDAgMC0yNy42IDEyLjEtMjAuNi05LjggMTMuNS00My41IDExLjUtNzkuOS05LjYtMTAxLTQ3LjctNDcuOC0xNzQuNiAxLjgtMjgzLjUgMTEwLjZDMTI3LjMgNDcxLjEgODAgNTU3LjUgODAgNjMyLjIgODAgNzc1LjEgMjYzLjIgODYyIDQ0Mi41IDg2MmMyMzUgMCAzOTEuMy0xMzYuNSAzOTEuMy0yNDUgMC02NS41LTU1LjItMTAyLjYtMTA0LjgtMTE4ek00NDMgODEwLjhjLTE0MyAxNC4xLTI2Ni41LTUwLjUtMjc1LjgtMTQ0LjUtOS4zLTkzLjkgOTkuMi0xODEuNSAyNDIuMi0xOTUuNiAxNDMtMTQuMiAyNjYuNSA1MC41IDI3NS44IDE0NC40QzY5NC40IDcwOSA1ODYgNzk2LjYgNDQzIDgxMC44eicpKTtcbmV4cG9ydHMuV29tYW5PdXRsaW5lID0gZ2V0SWNvbignd29tYW4nLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNzEyLjggNTQ4LjhjNTMuNi01My42IDgzLjItMTI1IDgzLjItMjAwLjggMC03NS45LTI5LjUtMTQ3LjItODMuMi0yMDAuOEM2NTkuMiA5My42IDU4Ny44IDY0IDUxMiA2NHMtMTQ3LjIgMjkuNS0yMDAuOCA4My4yQzI1Ny42IDIwMC45IDIyOCAyNzIuMSAyMjggMzQ4YzAgNjMuOCAyMC45IDEyNC40IDU5LjQgMTczLjkgNy4zIDkuNCAxNS4yIDE4LjMgMjMuNyAyNi45IDguNSA4LjUgMTcuNSAxNi40IDI2LjggMjMuNyAzOS42IDMwLjggODYuMyA1MC40IDEzNi4xIDU3VjczNkgzNjBjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTE0djE0MGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjgxMmgxMTRjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LThINTUwVjYyOS41YzYxLjUtOC4yIDExOC4yLTM2LjEgMTYyLjgtODAuN3pNNTEyIDU1NmMtNTUuNiAwLTEwNy43LTIxLjYtMTQ3LjEtNjAuOUMzMjUuNiA0NTUuOCAzMDQgNDAzLjYgMzA0IDM0OHMyMS42LTEwNy43IDYwLjktMTQ3LjFDNDA0LjIgMTYxLjUgNDU2LjQgMTQwIDUxMiAxNDBzMTA3LjcgMjEuNiAxNDcuMSA2MC45QzY5OC40IDI0MC4yIDcyMCAyOTIuNCA3MjAgMzQ4cy0yMS42IDEwNy43LTYwLjkgMTQ3LjFDNjE5LjcgNTM0LjQgNTY3LjYgNTU2IDUxMiA1NTZ6JykpO1xuZXhwb3J0cy5ab29tSW5PdXRsaW5lID0gZ2V0SWNvbignem9vbS1pbicsIG91dGxpbmUsIGdldE5vZGUobmV3Vmlld0JveCwgJ002MzcgNDQzSDUxOVYzMDljMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djEzNEgzMjVjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMTE4djEzNGMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjUxOWgxMThjNC40IDAgOC0zLjYgOC04di02MGMwLTQuNC0zLjYtOC04LTh6bTI4NCA0MjRMNzc1IDcyMWMxMjIuMS0xNDguOSAxMTMuNi0zNjkuNS0yNi01MDktMTQ4LTE0OC4xLTM4OC40LTE0OC4xLTUzNyAwLTE0OC4xIDE0OC42LTE0OC4xIDM4OSAwIDUzNyAxMzkuNSAxMzkuNiAzNjAuMSAxNDguMSA1MDkgMjZsMTQ2IDE0NmMzLjIgMi44IDguMyAyLjggMTEgMGw0My00M2MyLjgtMi43IDIuOC03LjggMC0xMXpNNjk2IDY5NmMtMTE4LjggMTE4LjctMzExLjIgMTE4LjctNDMwIDAtMTE4LjctMTE4LjgtMTE4LjctMzExLjIgMC00MzAgMTE4LjgtMTE4LjcgMzExLjItMTE4LjcgNDMwIDAgMTE4LjcgMTE4LjggMTE4LjcgMzExLjIgMCA0MzB6JykpO1xuZXhwb3J0cy5BY2NvdW50Qm9va1R3b1RvbmUgPSBnZXRJY29uKCdhY2NvdW50LWJvb2snLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzEyIDMwNGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDM4NHY0OGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDE4NHY1ODRoNjU2VjI1Nkg3MTJ2NDh6bS02NS42IDEyMS44bC04OS4zIDE2NC4xaDQ5LjFjNC40IDAgOCAzLjYgOCA4djIxLjNjMCA0LjQtMy42IDgtOCA4aC02NS40djMzLjdoNjUuNGM0LjQgMCA4IDMuNiA4IDh2MjEuM2MwIDQuNC0zLjYgOC04IDhoLTY1LjRWNzUyYzAgNC40LTMuNiA4LTggOGgtNDEuM2MtNC40IDAtOC0zLjYtOC04di01My44aC02NS4xYy00LjQgMC04LTMuNi04LTh2LTIxLjNjMC00LjQgMy42LTggOC04aDY1LjF2LTMzLjdoLTY1LjFjLTQuNCAwLTgtMy42LTgtOHYtMjEuM2MwLTQuNCAzLjYtOCA4LThINDY3bC04OS4zLTE2NGMtMi4xLTMuOS0uNy04LjggMy4yLTEwLjkgMS4xLS43IDIuNS0xIDMuOC0xaDQ2YTggOCAwIDAgMSA3LjEgNC40bDczLjQgMTQ1LjRoMi44bDczLjQtMTQ1LjRjMS4zLTIuNyA0LjEtNC40IDcuMS00LjRoNDVjNC41IDAgOCAzLjYgNy45IDggMCAxLjMtLjQgMi42LTEgMy44eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002MzkuNSA0MTRoLTQ1Yy0zIDAtNS44IDEuNy03LjEgNC40TDUxNCA1NjMuOGgtMi44bC03My40LTE0NS40YTggOCAwIDAgMC03LjEtNC40aC00NmMtMS4zIDAtMi43LjMtMy44IDEtMy45IDIuMS01LjMgNy0zLjIgMTAuOWw4OS4zIDE2NGgtNDguNmMtNC40IDAtOCAzLjYtOCA4djIxLjNjMCA0LjQgMy42IDggOCA4aDY1LjF2MzMuN2gtNjUuMWMtNC40IDAtOCAzLjYtOCA4djIxLjNjMCA0LjQgMy42IDggOCA4aDY1LjFWNzUyYzAgNC40IDMuNiA4IDggOGg0MS4zYzQuNCAwIDgtMy42IDgtOHYtNTMuOGg2NS40YzQuNCAwIDgtMy42IDgtOHYtMjEuM2MwLTQuNC0zLjYtOC04LThoLTY1LjR2LTMzLjdoNjUuNGM0LjQgMCA4LTMuNiA4LTh2LTIxLjNjMC00LjQtMy42LTgtOC04aC00OS4xbDg5LjMtMTY0LjFjLjYtMS4yIDEtMi41IDEtMy44LjEtNC40LTMuNC04LTcuOS04eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlpvb21PdXRPdXRsaW5lID0gZ2V0SWNvbignem9vbS1vdXQnLCBvdXRsaW5lLCBnZXROb2RlKG5ld1ZpZXdCb3gsICdNNjM3IDQ0M0gzMjVjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoMzEyYzQuNCAwIDgtMy42IDgtOHYtNjBjMC00LjQtMy42LTgtOC04em0yODQgNDI0TDc3NSA3MjFjMTIyLjEtMTQ4LjkgMTEzLjYtMzY5LjUtMjYtNTA5LTE0OC0xNDguMS0zODguNC0xNDguMS01MzcgMC0xNDguMSAxNDguNi0xNDguMSAzODkgMCA1MzcgMTM5LjUgMTM5LjYgMzYwLjEgMTQ4LjEgNTA5IDI2bDE0NiAxNDZjMy4yIDIuOCA4LjMgMi44IDExIDBsNDMtNDNjMi44LTIuNyAyLjgtNy44IDAtMTF6TTY5NiA2OTZjLTExOC44IDExOC43LTMxMS4yIDExOC43LTQzMCAwLTExOC43LTExOC44LTExOC43LTMxMS4yIDAtNDMwIDExOC44LTExOC43IDMxMS4yLTExOC43IDQzMCAwIDExOC43IDExOC44IDExOC43IDMxMS4yIDAgNDMweicpKTtcbmV4cG9ydHMuQWxlcnRUd29Ub25lID0gZ2V0SWNvbignYWxlcnQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzQwIDU4NWMwLTUuNSA0LjUtMTAgMTAtMTBoNDRjNS41IDAgMTAgNC41IDEwIDEwdjE3MWgzNTVWNTYzYzAtMTM2LjQtMTEwLjYtMjQ3LTI0Ny0yNDdTMjY1IDQyNi42IDI2NSA1NjN2MTkzaDc1VjU4NXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjE2LjkgMzEwLjVsMzkuNi0zOS42YzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTY3LjktNjcuOWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zOS42IDM5LjZhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2w2Ny45IDY3LjljMy4xIDMuMSA4LjEgMy4xIDExLjMgMHptNjY5LjYtNzkuMmwtMzkuNi0zOS42YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTY3LjkgNjcuOWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDM5LjYgMzkuNmMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDY3LjktNjcuOWMzLjEtMy4yIDMuMS04LjIgMC0xMS4zek00ODQgMTgwaDU2YzQuNCAwIDgtMy42IDgtOFY3NmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2OTZjMCA0LjQgMy42IDggOCA4em0zNDggNzEySDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjRjMCA0LjQgMy42IDggOCA4aDY4OGM0LjQgMCA4LTMuNiA4LTh2LTI0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNjM5LTk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NjNjMC0xNzYuMi0xNDIuOC0zMTktMzE5LTMxOVMxOTMgMzg2LjggMTkzIDU2M3YyMzN6bTcyLTIzM2MwLTEzNi40IDExMC42LTI0NyAyNDctMjQ3czI0NyAxMTAuNiAyNDcgMjQ3djE5M0g0MDRWNTg1YzAtNS41LTQuNS0xMC0xMC0xMGgtNDRjLTUuNSAwLTEwIDQuNS0xMCAxMHYxNzFoLTc1VjU2M3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQXBpVHdvVG9uZSA9IGdldEljb24oJ2FwaScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xNDguMiA2NzQuNnptMTA2LjctOTIuM2MtMjUgMjUtMzguNyA1OC4xLTM4LjcgOTMuNHMxMy44IDY4LjUgMzguNyA5My40YzI1IDI1IDU4LjEgMzguNyA5My40IDM4LjcgMzUuMyAwIDY4LjUtMTMuOCA5My40LTM4LjdsNTkuNC01OS40LTE4Ni44LTE4Ni44LTU5LjQgNTkuNHptNDIwLjgtMzY2LjFjLTM1LjMgMC02OC41IDEzLjgtOTMuNCAzOC43bC01OS40IDU5LjQgMTg2LjggMTg2LjggNTkuNC01OS40YzI0LjktMjUgMzguNy01OC4xIDM4LjctOTMuNHMtMTMuOC02OC41LTM4LjctOTMuNGMtMjUtMjUtNTguMS0zOC43LTkzLjQtMzguN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTc4LjkgNTQ2LjdhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MDEgNjEzLjMgNDEwLjcgNTIzbDY2LjctNjYuN2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDQ0MSA0MDguNmE4LjAzIDguMDMgMCAwIDAtMTEuMyAwTDM2MyA0NzUuM2wtNDMtNDNhNy44NSA3Ljg1IDAgMCAwLTUuNy0yLjNjLTIgMC00LjEuOC01LjcgMi4zTDIwNi44IDUzNC4yYTE5OS40NSAxOTkuNDUgMCAwIDAtNTguNiAxNDAuNGMtLjIgMzkuNSAxMS4yIDc5LjEgMzQuMyAxMTMuMWwtNzYuMSA3Ni4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNDIuNCA0Mi40YzEuNiAxLjYgMy42IDIuMyA1LjcgMi4zczQuMS0uOCA1LjctMi4zbDc2LjEtNzYuMWMzMy43IDIyLjkgNzIuOSAzNC4zIDExMi4xIDM0LjMgNTEuMiAwIDEwMi40LTE5LjUgMTQxLjUtNTguNmwxMDEuOS0xMDEuOWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00My00MyA2Ni43LTY2LjdjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuNi0zNi4yek00NDEuNyA3NjkuMWExMzEuMzIgMTMxLjMyIDAgMCAxLTkzLjQgMzguN2MtMzUuMyAwLTY4LjQtMTMuNy05My40LTM4LjctMjQuOS0yNC45LTM4LjctNTguMS0zOC43LTkzLjRzMTMuNy02OC40IDM4LjctOTMuNGw1OS40LTU5LjQgMTg2LjggMTg2LjgtNTkuNCA1OS40em00NzYtNjIwLjNsLTQyLjQtNDIuNGMtMS42LTEuNi0zLjYtMi4zLTUuNy0yLjNzLTQuMS44LTUuNyAyLjNsLTc2LjEgNzYuMWExOTkuMjcgMTk5LjI3IDAgMCAwLTExMi4xLTM0LjNjLTUxLjIgMC0xMDIuNCAxOS41LTE0MS41IDU4LjZMNDMyLjMgMzA4LjdhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM0w3MDQgNTkxLjdjMS42IDEuNiAzLjYgMi4zIDUuNyAyLjMgMiAwIDQuMS0uOCA1LjctMi4zbDEwMS45LTEwMS45YzY4LjktNjkgNzctMTc1LjcgMjQuMy0yNTMuNWw3Ni4xLTc2LjFjMy4xLTMuMiAzLjEtOC4zIDAtMTEuNHpNNzY5LjEgNDQxLjdsLTU5LjQgNTkuNC0xODYuOC0xODYuOCA1OS40LTU5LjRjMjQuOS0yNC45IDU4LjEtMzguNyA5My40LTM4LjdzNjguNCAxMy43IDkzLjQgMzguN2MyNC45IDI0LjkgMzguNyA1OC4xIDM4LjcgOTMuNHMtMTMuOCA2OC40LTM4LjcgOTMuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQXBwc3RvcmVUd29Ub25lID0gZ2V0SWNvbignYXBwc3RvcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2NCAxNDRINTYwYy04LjggMC0xNiA3LjItMTYgMTZ2MzA0YzAgOC44IDcuMiAxNiAxNiAxNmgzMDRjOC44IDAgMTYtNy4yIDE2LTE2VjE2MGMwLTguOC03LjItMTYtMTYtMTZ6bS01MiAyNjhINjEyVjIxMmgyMDB2MjAwek00NjQgNTQ0SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlY1NjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlY2MTJoMjAwdjIwMHptNTItNjY4SDE2MGMtOC44IDAtMTYgNy4yLTE2IDE2djMwNGMwIDguOCA3LjIgMTYgMTYgMTZoMzA0YzguOCAwIDE2LTcuMiAxNi0xNlYxNjBjMC04LjgtNy4yLTE2LTE2LTE2em0tNTIgMjY4SDIxMlYyMTJoMjAwdjIwMHptNDUyIDEzMkg1NjBjLTguOCAwLTE2IDcuMi0xNiAxNnYzMDRjMCA4LjggNy4yIDE2IDE2IDE2aDMwNGM4LjggMCAxNi03LjIgMTYtMTZWNTYwYzAtOC44LTcuMi0xNi0xNi0xNnptLTUyIDI2OEg2MTJWNjEyaDIwMHYyMDB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjEyIDIxMmgyMDB2MjAwSDIxMnptNDAwIDBoMjAwdjIwMEg2MTJ6TTIxMiA2MTJoMjAwdjIwMEgyMTJ6bTQwMCAwaDIwMHYyMDBINjEyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5CYW5rVHdvVG9uZSA9IGdldEljb24oJ2JhbmsnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00yNDAuOSAzOTMuOWg1NDIuMkw1MTIgMTk2Ljd6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg5NCA0NjJjMzAuOSAwIDQzLjgtMzkuNyAxOC43LTU4TDUzMC44IDEyNi4yYTMxLjgxIDMxLjgxIDAgMCAwLTM3LjYgMEwxMTEuMyA0MDRjLTI1LjEgMTguMi0xMi4yIDU4IDE4LjggNThIMTkydjM3NGgtNzJjLTQuNCAwLTggMy42LTggOHY1MmMwIDQuNCAzLjYgOCA4IDhoNzg0YzQuNCAwIDgtMy42IDgtOHYtNTJjMC00LjQtMy42LTgtOC04aC03MlY0NjJoNjJ6TTM4MSA4MzZIMjY0VjQ2MmgxMTd2Mzc0em0xODkgMEg0NTNWNDYyaDExN3YzNzR6bTE5MCAwSDY0MlY0NjJoMTE4djM3NHpNMjQwLjkgMzkzLjlMNTEyIDE5Ni43bDI3MS4xIDE5Ny4ySDI0MC45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5BdWRpb1R3b1RvbmUgPSBnZXRJY29uKCdhdWRpbycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgNTUyYzU0LjMgMCA5OC00My4yIDk4LTk2VjIzMmMwLTUyLjgtNDMuNy05Ni05OC05NnMtOTggNDMuMi05OCA5NnYyMjRjMCA1Mi44IDQzLjcgOTYgOTggOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg0MiA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTQwLjMtMTEzLjcgMjU0LTI1NCAyNTRTMjU4IDU5NC4zIDI1OCA0NTRjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4IDAgMTY4LjcgMTI2LjYgMzA3LjkgMjkwIDMyNy42Vjg4NEgzMjYuN2MtMTMuNyAwLTI0LjcgMTQuMy0yNC43IDMydjM2YzAgNC40IDIuOCA4IDYuMiA4aDQwNy42YzMuNCAwIDYuMi0zLjYgNi4yLTh2LTM2YzAtMTcuNy0xMS0zMi0yNC43LTMySDU0OFY3ODIuMWMxNjUuMy0xOCAyOTQtMTU4IDI5NC0zMjguMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDYyNGM5My45IDAgMTcwLTc1LjIgMTcwLTE2OFYyMzJjMC05Mi44LTc2LjEtMTY4LTE3MC0xNjhzLTE3MCA3NS4yLTE3MCAxNjh2MjI0YzAgOTIuOCA3Ni4xIDE2OCAxNzAgMTY4em0tOTgtMzkyYzAtNTIuOCA0My43LTk2IDk4LTk2czk4IDQzLjIgOTggOTZ2MjI0YzAgNTIuOC00My43IDk2LTk4IDk2cy05OC00My4yLTk4LTk2VjIzMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQmVsbFR3b1RvbmUgPSBnZXRJY29uKCdiZWxsJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAyMjBjLTU1LjYgMC0xMDcuOCAyMS42LTE0Ny4xIDYwLjlTMzA0IDM3Mi40IDMwNCA0Mjh2MzQwaDQxNlY0MjhjMC01NS42LTIxLjYtMTA3LjgtNjAuOS0xNDcuMVM1NjcuNiAyMjAgNTEyIDIyMHptMjgwIDIwOGMwLTE0MS4xLTEwNC4zLTI1Ny44LTI0MC0yNzcuMnYuMWMxMzUuNyAxOS40IDI0MCAxMzYgMjQwIDI3Ny4xek00NzIgMTUwLjl2LS4xQzMzNi4zIDE3MC4yIDIzMiAyODYuOSAyMzIgNDI4YzAtMTQxLjEgMTA0LjMtMjU3LjcgMjQwLTI3Ny4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MTYgNzY4aC0yNFY0MjhjMC0xNDEuMS0xMDQuMy0yNTcuNy0yNDAtMjc3LjFWMTEyYzAtMjIuMS0xNy45LTQwLTQwLTQwcy00MCAxNy45LTQwIDQwdjM4LjljLTEzNS43IDE5LjQtMjQwIDEzNi0yNDAgMjc3LjF2MzQwaC0yNGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzJjMCA0LjQgMy42IDggOCA4aDIxNmMwIDYxLjggNTAuMiAxMTIgMTEyIDExMnMxMTItNTAuMiAxMTItMTEyaDIxNmM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek01MTIgODg4Yy0yNi41IDAtNDgtMjEuNS00OC00OGg5NmMwIDI2LjUtMjEuNSA0OC00OCA0OHptMjA4LTEyMEgzMDRWNDI4YzAtNTUuNiAyMS42LTEwNy44IDYwLjktMTQ3LjFTNDU2LjQgMjIwIDUxMiAyMjBjNTUuNiAwIDEwNy44IDIxLjYgMTQ3LjEgNjAuOVM3MjAgMzcyLjQgNzIwIDQyOHYzNDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJvb2tUd29Ub25lID0gZ2V0SWNvbignYm9vaycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI2MCA3Mmg5NnYyMDkuOUw2MjEuNSAzMTIgNTcyIDM0Ny40VjEzNnpNMjMyIDg4OFYxMzZoMjgwdjI5Ni45YzAgMy4zIDEgNi42IDMgOS4zYTE1LjkgMTUuOSAwIDAgMCAyMi4zIDMuN2w4My44LTU5LjkgODEuNCA1OS40YzIuNyAyIDYgMy4xIDkuNCAzLjEgOC44IDAgMTYtNy4yIDE2LTE2VjEzNmg2NHY3NTJIMjMyeidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNNjY4IDM0NS45VjEzNmgtOTZ2MjExLjRsNDkuNS0zNS40eiddLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcyNy45IDEzNnYyOTYuNWMwIDguOC03LjIgMTYtMTYgMTYtMy40IDAtNi43LTEuMS05LjQtMy4xTDYyMS4xIDM4NmwtODMuOCA1OS45YTE1LjkgMTUuOSAwIDAgMS0yMi4zLTMuN2MtMi0yLjctMy02LTMtOS4zVjEzNkgyMzJ2NzUyaDU1OS45VjEzNmgtNjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJveFBsb3RUd29Ub25lID0gZ2V0SWNvbignYm94LXBsb3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00yOTYgMzY4aDg4djI4OGgtODh6bTE1MiAwaDI4MHYyODhINDQ4eiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTIgMjI0aC01MmMtNC40IDAtOCAzLjYtOCA4djI0OGgtOTJWMzA0YzAtNC40LTMuNi04LTgtOEgyMzJjLTQuNCAwLTggMy42LTggOHYxNzZoLTkyVjIzMmMwLTQuNC0zLjYtOC04LThINzJjLTQuNCAwLTggMy42LTggOHY1NjBjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY1NDhoOTJ2MTcyYzAgNC40IDMuNiA4IDggOGg1NjBjNC40IDAgOC0zLjYgOC04VjU0OGg5MnYyNDRjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFYyMzJjMC00LjQtMy42LTgtOC04ek0zODQgNjU2aC04OFYzNjhoODh2Mjg4em0zNDQgMEg0NDhWMzY4aDI4MHYyODh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJ1Z1R3b1RvbmUgPSBnZXRJY29uKCdidWcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMwOCA0MTJ2MjY4YzAgMzYuNzggOS42OCA3MS45NiAyNy44IDEwMi45YTIwNS4zOSAyMDUuMzkgMCAwIDAgNzMuMyA3My4zQTIwMi42OCAyMDIuNjggMCAwIDAgNTEyIDg4NGMzNi43OCAwIDcxLjk2LTkuNjggMTAyLjktMjcuOGEyMDUuMzkgMjA1LjM5IDAgMCAwIDczLjMtNzMuM0EyMDIuNjggMjAyLjY4IDAgMCAwIDcxNiA2ODBWNDEySDMwOHptNDg0IDE3MnY5NmMwIDYuNS0uMjIgMTIuOTUtLjY2IDE5LjM1Qzg1OS45NCA3MjguNjQgOTA4IDc5Ni43IDkwOCA4NzZhOCA4IDAgMCAxLTggOGgtNTZhOCA4IDAgMCAxLTgtOGMwLTQ0LjI0LTIzLjk0LTgyLjg5LTU5LjU3LTEwMy43YTI3OC42MyAyNzguNjMgMCAwIDEtMjIuNjYgNDkuMDIgMjgxLjM5IDI4MS4zOSAwIDAgMS0xMDAuNDUgMTAwLjQ1QzYxMS44NCA5NDYuMDcgNTYzLjU1IDk2MCA1MTIgOTYwcy05OS44NC0xMy45My0xNDEuMzItMzguMjNhMjgxLjM5IDI4MS4zOSAwIDAgMS0xMDAuNDUtMTAwLjQ1IDI3OC42MyAyNzguNjMgMCAwIDEtMjIuNjYtNDkuMDJBMTE5Ljk1IDExOS45NSAwIDAgMCAxODggODc2YTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC03OS4zIDQ4LjA3LTE0Ny4zNiAxMTYuNjYtMTc2LjY1QTI4NC4xMiAyODQuMTIgMCAwIDEgMjMyIDY4MHYtOTZIODRhOCA4IDAgMCAxLTgtOHYtNTZhOCA4IDAgMCAxIDgtOGgxNDhWNDEyYy03Ni43NyAwLTEzOS02Mi4yMy0xMzktMTM5YTggOCAwIDAgMSA4LThoNjBhOCA4IDAgMCAxIDggOCA2MyA2MyAwIDAgMCA2MyA2M2g1NjBhNjMgNjMgMCAwIDAgNjMtNjMgOCA4IDAgMCAxIDgtOGg2MGE4IDggMCAwIDEgOCA4YzAgNzYuNzctNjIuMjMgMTM5LTEzOSAxMzl2MTAwaDE0OGE4IDggMCAwIDEgOCA4djU2YTggOCAwIDAgMS04IDhINzkyek0zNjggMjcyYTggOCAwIDAgMS04IDhoLTU2YTggOCAwIDAgMS04LThjMC00MC4wNCA4Ljc4LTc2Ljc1IDI1LjktMTA4LjA3YTE4NC41NyAxODQuNTcgMCAwIDEgNzQuMDMtNzQuMDNDNDI3LjI1IDcyLjc4IDQ2My45NiA2NCA1MDQgNjRoMTZjNDAuMDQgMCA3Ni43NSA4Ljc4IDEwOC4wNyAyNS45YTE4NC41NyAxODQuNTcgMCAwIDEgNzQuMDMgNzQuMDNDNzE5LjIyIDE5NS4yNSA3MjggMjMxLjk2IDcyOCAyNzJhOCA4IDAgMCAxLTggOGgtNTZhOCA4IDAgMCAxLTgtOGMwLTI4LjMzLTUuOTQtNTMuMTUtMTcuMDgtNzMuNTNhMTEyLjU2IDExMi41NiAwIDAgMC00NS4zOS00NS40QzU3My4xNSAxNDEuOTUgNTQ4LjMzIDEzNiA1MjAgMTM2aC0xNmMtMjguMzMgMC01My4xNSA1Ljk0LTczLjUzIDE3LjA4YTExMi41NiAxMTIuNTYgMCAwIDAtNDUuNCA0NS4zOUMzNzMuOTUgMjE4Ljg1IDM2OCAyNDMuNjcgMzY4IDI3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zMDggNDEydjI2OGMwIDM2Ljc4IDkuNjggNzEuOTYgMjcuOCAxMDIuOWEyMDUuMzkgMjA1LjM5IDAgMCAwIDczLjMgNzMuM0EyMDIuNjggMjAyLjY4IDAgMCAwIDUxMiA4ODRjMzYuNzggMCA3MS45Ni05LjY4IDEwMi45LTI3LjhhMjA1LjM5IDIwNS4zOSAwIDAgMCA3My4zLTczLjNBMjAyLjY4IDIwMi42OCAwIDAgMCA3MTYgNjgwVjQxMkgzMDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkJ1bGJUd29Ub25lID0gZ2V0SWNvbignYnVsYicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTM2Yy0xNDEuNCAwLTI1NiAxMTQuNi0yNTYgMjU2IDAgOTIuNSA0OS40IDE3Ni4zIDEyOC4xIDIyMS44bDM1LjkgMjAuOFY3NTJoMTg0VjYzNC42bDM1LjktMjAuOEM3MTguNiA1NjguMyA3NjggNDg0LjUgNzY4IDM5MmMwLTE0MS40LTExNC42LTI1Ni0yNTYtMjU2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002MzIgODg4SDM5MmMtNC40IDAtOCAzLjYtOCA4djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDE5MmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC00LjQtMy42LTgtOC04ek01MTIgNjRjLTE4MS4xIDAtMzI4IDE0Ni45LTMyOCAzMjggMCAxMjEuNCA2NiAyMjcuNCAxNjQgMjg0LjFWNzkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDI2NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2NzYuMWM5OC01Ni43IDE2NC0xNjIuNyAxNjQtMjg0LjEgMC0xODEuMS0xNDYuOS0zMjgtMzI4LTMyOHptMTI3LjkgNTQ5LjhMNjA0IDYzNC42Vjc1Mkg0MjBWNjM0LjZsLTM1LjktMjAuOEMzMDUuNCA1NjguMyAyNTYgNDg0LjUgMjU2IDM5MmMwLTE0MS40IDExNC42LTI1NiAyNTYtMjU2czI1NiAxMTQuNiAyNTYgMjU2YzAgOTIuNS00OS40IDE3Ni4zLTEyOC4xIDIyMS44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DYWxjdWxhdG9yVHdvVG9uZSA9IGdldEljb24oJ2NhbGN1bGF0b3InLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTI1Ni4yLTc1aC01MC44Yy0yLjIgMC00LjUtMS4xLTUuOS0yLjlMMzQ4IDcxOC42bC0zNS41IDQzLjVhNy4zOCA3LjM4IDAgMCAxLTUuOSAyLjloLTUwLjhjLTYuNiAwLTEwLjItNy45LTUuOC0xMy4xbDYyLjctNzYuOC02MS4yLTc0LjljLTQuMy01LjItLjctMTMuMSA1LjktMTMuMWg1MC45YzIuMiAwIDQuNSAxLjEgNS45IDIuOWwzNCA0MS42IDM0LTQxLjZjMS41LTEuOSAzLjYtMi45IDUuOS0yLjloNTAuOGM2LjYgMCAxMC4yIDcuOSA1LjkgMTMuMUwzODMuNSA2NzVsNjIuNyA3Ni44YzQuMiA1LjMuNiAxMy4yLTYgMTMuMnpNNTc2IDMzNWMwLTIuMiAxLjQtNCAzLjItNGgxOTMuNWMxLjkgMCAzLjMgMS44IDMuMyA0djQ4YzAgMi4yLTEuNCA0LTMuMiA0SDU3OS4yYy0xLjggMC0zLjItMS44LTMuMi00di00OHptMCAyNjVjMC0yLjIgMS40LTQgMy4yLTRoMTkzLjVjMS45IDAgMy4zIDEuOCAzLjMgNHY0OGMwIDIuMi0xLjQgNC0zLjIgNEg1NzkuMmMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6bTAgMTA0YzAtMi4yIDEuNC00IDMuMi00aDE5My41YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRINTc5LjJjLTEuOCAwLTMuMi0xLjgtMy4yLTR2LTQ4ek0yNDggMzM1YzAtMi4yIDEuNC00IDMuMi00SDMyMHYtNjguOGMwLTEuOCAxLjgtMy4yIDQtMy4yaDQ4YzIuMiAwIDQgMS40IDQgMy4yVjMzMWg2OC43YzEuOSAwIDMuMyAxLjggMy4zIDR2NDhjMCAyLjItMS40IDQtMy4yIDRIMzc2djY4LjdjMCAxLjktMS44IDMuMy00IDMuM2gtNDhjLTIuMiAwLTQtMS40LTQtMy4yVjM4N2gtNjguOGMtMS44IDAtMy4yLTEuOC0zLjItNHYtNDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM4My41IDY3NWw2MS4zLTc0LjhjNC4zLTUuMi43LTEzLjEtNS45LTEzLjFoLTUwLjhjLTIuMyAwLTQuNCAxLTUuOSAyLjlsLTM0IDQxLjYtMzQtNDEuNmE3LjY5IDcuNjkgMCAwIDAtNS45LTIuOWgtNTAuOWMtNi42IDAtMTAuMiA3LjktNS45IDEzLjFsNjEuMiA3NC45LTYyLjcgNzYuOGMtNC40IDUuMi0uOCAxMy4xIDUuOCAxMy4xaDUwLjhjMi4zIDAgNC40LTEgNS45LTIuOWwzNS41LTQzLjUgMzUuNSA0My41YzEuNCAxLjggMy43IDIuOSA1LjkgMi45aDUwLjhjNi42IDAgMTAuMi03LjkgNi0xMy4yTDM4My41IDY3NXpNMjUxLjIgMzg3SDMyMHY2OC44YzAgMS44IDEuOCAzLjIgNCAzLjJoNDhjMi4yIDAgNC0xLjQgNC0zLjNWMzg3aDY4LjhjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRIMzc2di02OC44YzAtMS44LTEuOC0zLjItNC0zLjJoLTQ4Yy0yLjIgMC00IDEuNC00IDMuMlYzMzFoLTY4LjhjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTMyOCAzNjloMTkzLjZjMS44IDAgMy4yLTEuOCAzLjItNHYtNDhjMC0yLjItMS40LTQtMy4zLTRINTc5LjJjLTEuOCAwLTMuMiAxLjgtMy4yIDR2NDhjMCAyLjIgMS40IDQgMy4yIDR6bTAtMTA0aDE5My42YzEuOCAwIDMuMi0xLjggMy4yLTR2LTQ4YzAtMi4yLTEuNC00LTMuMy00SDU3OS4yYy0xLjggMC0zLjIgMS44LTMuMiA0djQ4YzAgMi4yIDEuNCA0IDMuMiA0em0wLTI2NWgxOTMuNmMxLjggMCAzLjItMS44IDMuMi00di00OGMwLTIuMi0xLjQtNC0zLjMtNEg1NzkuMmMtMS44IDAtMy4yIDEuOC0zLjIgNHY0OGMwIDIuMiAxLjQgNCAzLjIgNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQnVpbGRUd29Ub25lID0gZ2V0SWNvbignYnVpbGQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00xNDQgNTQ2aDIwMHYyMDBIMTQ0em0yNjgtMjY4aDIwMHYyMDBINDEyeiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MTYgMjEwSDM3NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjM2SDEwOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MjcyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NDZoMjM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzQ0IDc0NkgxNDRWNTQ2aDIwMHYyMDB6bTI2OCAwSDQxMlY1NDZoMjAwdjIwMHptMC0yNjhINDEyVjI3OGgyMDB2MjAwem0yNjggMEg2ODBWMjc4aDIwMHYyMDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNhbGVuZGFyVHdvVG9uZSA9IGdldEljb24oJ2NhbGVuZGFyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2MTM2aDY1NlYyNTZINzEydjQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjQ2MGg2NTZ2Mzgwem0wLTQ0OEgxODRWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FtZXJhVHdvVG9uZSA9IGdldEljb24oJ2NhbWVyYScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ004NjQgMzIwSDY3Ny4ybC0xNy4xLTQ3LjgtMjIuOS02NC4ySDM4Ni43bC0yMi45IDY0LjItMTcuMSA0Ny44SDE2MGMtNC40IDAtOCAzLjYtOCA4djQ1NmMwIDQuNCAzLjYgOCA4IDhoNzA0YzQuNCAwIDgtMy42IDgtOFYzMjhjMC00LjQtMy42LTgtOC04ek01MTIgNzA0Yy04OC40IDAtMTYwLTcxLjYtMTYwLTE2MHM3MS42LTE2MCAxNjAtMTYwIDE2MCA3MS42IDE2MCAxNjAtNzEuNiAxNjAtMTYwIDE2MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDM4NGMtODguNCAwLTE2MCA3MS42LTE2MCAxNjBzNzEuNiAxNjAgMTYwIDE2MCAxNjAtNzEuNiAxNjAtMTYwLTcxLjYtMTYwLTE2MC0xNjB6bTAgMjU2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2IDk2IDQzIDk2IDk2LTQzIDk2LTk2IDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjQgMjQ4SDcyOGwtMzIuNC05MC44YTMyLjA3IDMyLjA3IDAgMCAwLTMwLjItMjEuMkgzNTguNmMtMTMuNSAwLTI1LjYgOC41LTMwLjEgMjEuMkwyOTYgMjQ4SDE2MGMtNDQuMiAwLTgwIDM1LjgtODAgODB2NDU2YzAgNDQuMiAzNS44IDgwIDgwIDgwaDcwNGM0NC4yIDAgODAtMzUuOCA4MC04MFYzMjhjMC00NC4yLTM1LjgtODAtODAtODB6bTggNTM2YzAgNC40LTMuNiA4LTggOEgxNjBjLTQuNCAwLTgtMy42LTgtOFYzMjhjMC00LjQgMy42LTggOC04aDE4Ni43bDE3LjEtNDcuOCAyMi45LTY0LjJoMjUwLjVsMjIuOSA2NC4yIDE3LjEgNDcuOEg4NjRjNC40IDAgOCAzLjYgOCA4djQ1NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FyVHdvVG9uZSA9IGdldEljb24oJ2NhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xOTkuNiA0NzRMMTg0IDUxN3YyMzdoNjU2VjUxN2wtMTUuNi00M0gxOTkuNnpNMjY0IDYyMWMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTM4OCA3NWMwIDQuNC0zLjYgOC04IDhIMzgwYy00LjQgMC04LTMuNi04LTh2LTg0YzAtNC40IDMuNi04IDgtOGg0MGM0LjQgMCA4IDMuNiA4IDh2MzZoMTY4di0zNmMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djg0em0xMDgtNzVjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQweidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTcyMCA1ODFhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NTkgNDEzLjRMOTM1LjMgMzcyYTggOCAwIDAgMC0xMC45LTIuOWwtNTAuNyAyOS42LTc4LjMtMjE2LjJhNjMuOSA2My45IDAgMCAwLTYwLjktNDQuNEgzMDEuMmMtMzQuNyAwLTY1LjUgMjIuNC03Ni4yIDU1LjVsLTc0LjYgMjA1LjItNTAuOC0yOS42YTggOCAwIDAgMC0xMC45IDIuOUw2NSA0MTMuNGMtMi4yIDMuOC0uOSA4LjYgMi45IDEwLjhsNjAuNCAzNS4yLTE0LjUgNDBjLTEuMiAzLjItMS44IDYuNi0xLjggMTB2MzQ4LjJjMCAxNS43IDExLjggMjguNCAyNi4zIDI4LjRoNjcuNmMxMi4zIDAgMjMtOS4zIDI1LjYtMjIuM2w3LjctMzcuN2g1NDUuNmw3LjcgMzcuN2MyLjcgMTMgMTMuMyAyMi4zIDI1LjYgMjIuM2g2Ny42YzE0LjUgMCAyNi4zLTEyLjcgMjYuMy0yOC40VjUwOS40YzAtMy40LS42LTYuOC0xLjgtMTBsLTE0LjUtNDAgNjAuMy0zNS4yYTggOCAwIDAgMCAzLTEwLjh6TTI5Mi43IDIxOC4xbC41LTEuMy40LTEuM2MxLjEtMy4zIDQuMS01LjUgNy42LTUuNWg0MjcuNmw3NS40IDIwOEgyMjBsNzIuNy0xOTkuOXpNODQwIDc1NEgxODRWNTE3bDE1LjYtNDNoNjI0LjhsMTUuNiA0M3YyMzd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIyNCA1ODFhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem00MjAgMjNoLTQwYy00LjQgMC04IDMuNi04IDh2MzZINDI4di0zNmMwLTQuNC0zLjYtOC04LThoLTQwYy00LjQgMC04IDMuNi04IDh2ODRjMCA0LjQgMy42IDggOCA4aDI2NGM0LjQgMCA4LTMuNiA4LTh2LTg0YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2FycnlPdXRUd29Ub25lID0gZ2V0SWNvbignY2Fycnktb3V0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjI1NmgxMjh2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMjU2djQ4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTQ4aDEyOHY1ODR6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzEyIDMwNGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDM4NHY0OGMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4SDE4NHY1ODRoNjU2VjI1Nkg3MTJ2NDh6bS0xNy41IDEyOC44TDQ4MS45IDcyNS41YTE2LjEgMTYuMSAwIDAgMS0yNiAwbC0xMjYuNC0xNzRjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU1LjJjNS4yIDAgMTAgMi41IDEzIDYuNmw2NC43IDg5IDE1MC45LTIwNy44YzMtNC4xIDcuOS02LjYgMTMtNi42SDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjg4IDQyMGgtNTUuMmMtNS4xIDAtMTAgMi41LTEzIDYuNkw0NjguOSA2MzQuNGwtNjQuNy04OWMtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMCAwIDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuNCAwLTEyLjgtNi41LTEyLjh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNoZWNrQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ2NoZWNrLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE5My40IDIyNS43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMCAxLTUxLjcgMEwzMTguNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjdoNDYuOWMxMC4zIDAgMTkuOSA1IDI1LjkgMTMuM2w3MS4yIDk4LjggMTU3LjItMjE4YzYtOC40IDE1LjctMTMuMyAyNS45LTEzLjNINjk5YzYuNSAwIDEwLjMgNy40IDYuNCAxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002OTkgMzUzaC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4zTDQ2OSA1ODQuM2wtNzEuMi05OC44Yy02LTguMy0xNS42LTEzLjMtMjUuOS0xMy4zSDMyNWMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTI0LjYgMTcyLjhhMzEuOCAzMS44IDAgMCAwIDUxLjcgMGwyMTAuNi0yOTJjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNoZWNrU3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ2NoZWNrLXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTMwLTM2Ny44aDQ2LjljMTAuMiAwIDE5LjkgNC45IDI1LjkgMTMuM2w3MS4yIDk4LjggMTU3LjItMjE4YzYtOC4zIDE1LjYtMTMuMyAyNS45LTEzLjNINjg4YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43bC0yMTAuNiAyOTJhMzEuOCAzMS44IDAgMCAxLTUxLjcgMEwzMDcuNSA0ODQuOWMtMy44LTUuMyAwLTEyLjcgNi41LTEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQzMi4yIDY1Ny43YTMxLjggMzEuOCAwIDAgMCA1MS43IDBsMjEwLjYtMjkyYzMuOC01LjMgMC0xMi43LTYuNS0xMi43aC00Ni45Yy0xMC4zIDAtMTkuOSA1LTI1LjkgMTMuM0w0NTggNTg0LjNsLTcxLjItOTguOGMtNi04LjQtMTUuNy0xMy4zLTI1LjktMTMuM0gzMTRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDEyNC43IDE3Mi44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DbG9ja0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdjbG9jay1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzYuNSA1MDkuN2wtMjguNiAzOWE3Ljk5IDcuOTkgMCAwIDEtMTEuMiAxLjdMNDgzLjMgNTY5LjhhNy45MiA3LjkyIDAgMCAxLTMuMy02LjVWMjg4YzAtNC40IDMuNi04IDgtOGg0OC4xYzQuNCAwIDggMy42IDggOHYyNDcuNWwxNDIuNiAxMDMuMWMzLjYgMi41IDQuNCA3LjUgMS44IDExLjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4Ni43IDYzOC42TDU0NC4xIDUzNS41VjI4OGMwLTQuNC0zLjYtOC04LThINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjNjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuNCAxMjAuNmMzLjYgMi42IDguNiAxLjkgMTEuMi0xLjdsMjguNi0zOWMyLjYtMy42IDEuOC04LjYtMS44LTExLjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNsb3NlQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ2Nsb3NlLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE3MS44IDUyNy4xYzEuMiAxLjUgMS45IDMuMyAxLjkgNS4yIDAgNC41LTMuNiA4LTggOGwtNjYtLjMtOTkuMy0xMTguNC05OS4zIDExOC41LTY2LjEuM2MtNC40IDAtOC0zLjYtOC04IDAtMS45LjctMy43IDEuOS01LjJMNDcxIDUxMi4zbC0xMzAuMS0xNTVhOC4zMiA4LjMyIDAgMCAxLTEuOS01LjJjMC00LjUgMy42LTggOC04bDY2LjEuMyA5OS4zIDExOC40IDk5LjQtMTE4LjUgNjYtLjNjNC40IDAgOCAzLjYgOCA4IDAgMS45LS42IDMuOC0xLjggNS4ybC0xMzAuMSAxNTUgMTI5LjkgMTU0Ljl6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY4NS44IDM1MmMwLTQuNC0zLjYtOC04LThsLTY2IC4zLTk5LjQgMTE4LjUtOTkuMy0xMTguNC02Ni4xLS4zYy00LjQgMC04IDMuNS04IDggMCAxLjkuNyAzLjcgMS45IDUuMmwxMzAuMSAxNTUtMTMwLjEgMTU0LjlhOC4zMiA4LjMyIDAgMCAwLTEuOSA1LjJjMCA0LjQgMy42IDggOCA4bDY2LjEtLjMgOTkuMy0xMTguNUw2MTEuNyA2ODBsNjYgLjNjNC40IDAgOC0zLjUgOC04IDAtMS45LS43LTMuNy0xLjktNS4yTDU1My45IDUxMi4ybDEzMC4xLTE1NWMxLjItMS40IDEuOC0zLjMgMS44LTUuMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ2xvdWRUd29Ub25lID0gZ2V0SWNvbignY2xvdWQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzkxLjkgNDkybC0zNy44LTEwLTEzLjgtMzYuNWMtOC42LTIyLjctMjAuNi00NC4xLTM1LjctNjMuNGEyNDUuNzMgMjQ1LjczIDAgMCAwLTUyLjQtNDkuOWMtNDEuMS0yOC45LTg5LjUtNDQuMi0xNDAtNDQuMnMtOTguOSAxNS4zLTE0MCA0NC4yYTI0NS42IDI0NS42IDAgMCAwLTUyLjQgNDkuOSAyNDAuNDcgMjQwLjQ3IDAgMCAwLTM1LjcgNjMuNGwtMTMuOSAzNi42LTM3LjkgOS45YTEyNS43IDEyNS43IDAgMCAwLTY2LjEgNDMuN0ExMjMuMSAxMjMuMSAwIDAgMCAxNDAgNjEyYzAgMzMuMSAxMi45IDY0LjMgMzYuMyA4Ny43IDIzLjQgMjMuNCA1NC41IDM2LjMgODcuNiAzNi4zaDQ5Ni4yYzMzLjEgMCA2NC4yLTEyLjkgODcuNi0zNi4zQTEyMy4zIDEyMy4zIDAgMCAwIDg4NCA2MTJjMC01Ni4yLTM3LjgtMTA1LjUtOTIuMS0xMjB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgxMS40IDQxOC43Qzc2NS42IDI5Ny45IDY0OC45IDIxMiA1MTIuMiAyMTJTMjU4LjggMjk3LjggMjEzIDQxOC42QzEyNy4zIDQ0MS4xIDY0IDUxOS4xIDY0IDYxMmMwIDExMC41IDg5LjUgMjAwIDE5OS45IDIwMGg0OTYuMkM4NzAuNSA4MTIgOTYwIDcyMi41IDk2MCA2MTJjMC05Mi43LTYzLjEtMTcwLjctMTQ4LjYtMTkzLjN6bTM2LjMgMjgxYTEyMy4wNyAxMjMuMDcgMCAwIDEtODcuNiAzNi4zSDI2My45Yy0zMy4xIDAtNjQuMi0xMi45LTg3LjYtMzYuM0ExMjMuMyAxMjMuMyAwIDAgMSAxNDAgNjEyYzAtMjggOS4xLTU0LjMgMjYuMi03Ni4zYTEyNS43IDEyNS43IDAgMCAxIDY2LjEtNDMuN2wzNy45LTkuOSAxMy45LTM2LjZjOC42LTIyLjggMjAuNi00NC4xIDM1LjctNjMuNGEyNDUuNiAyNDUuNiAwIDAgMSA1Mi40LTQ5LjljNDEuMS0yOC45IDg5LjUtNDQuMiAxNDAtNDQuMnM5OC45IDE1LjMgMTQwIDQ0LjJjMTkuOSAxNCAzNy41IDMwLjggNTIuNCA0OS45IDE1LjEgMTkuMyAyNy4xIDQwLjcgMzUuNyA2My40bDEzLjggMzYuNSAzNy44IDEwYzU0LjMgMTQuNSA5Mi4xIDYzLjggOTIuMSAxMjAgMCAzMy4xLTEyLjkgNjQuMy0zNi4zIDg3Ljd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNsb3NlU3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ2Nsb3NlLXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTYzLjktNDczLjlBNy45NSA3Ljk1IDAgMCAxIDM1NCAzNTNoNTguOWM0LjcgMCA5LjIgMi4xIDEyLjMgNS43TDUxMiA0NjIuMmw4Ni44LTEwMy41YzMtMy42IDcuNS01LjcgMTIuMy01LjdINjcwYzYuOCAwIDEwLjUgNy45IDYuMSAxMy4xTDU1My44IDUxMmwxMjIuMyAxNDUuOWM0LjQgNS4yLjcgMTMuMS02LjEgMTMuMWgtNTguOWMtNC43IDAtOS4yLTIuMS0xMi4zLTUuN0w1MTIgNTYxLjhsLTg2LjggMTAzLjVjLTMgMy42LTcuNSA1LjctMTIuMyA1LjdIMzU0Yy02LjggMC0xMC41LTcuOS02LjEtMTMuMUw0NzAuMiA1MTIgMzQ3LjkgMzY2LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTM1NCA2NzFoNTguOWM0LjggMCA5LjMtMi4xIDEyLjMtNS43TDUxMiA1NjEuOGw4Ni44IDEwMy41YzMuMSAzLjYgNy42IDUuNyAxMi4zIDUuN0g2NzBjNi44IDAgMTAuNS03LjkgNi4xLTEzLjFMNTUzLjggNTEybDEyMi4zLTE0NS45YzQuNC01LjIuNy0xMy4xLTYuMS0xMy4xaC01OC45Yy00LjggMC05LjMgMi4xLTEyLjMgNS43TDUxMiA0NjIuMmwtODYuOC0xMDMuNWMtMy4xLTMuNi03LjYtNS43LTEyLjMtNS43SDM1NGMtNi44IDAtMTAuNSA3LjktNi4xIDEzLjFMNDcwLjIgNTEyIDM0Ny45IDY1Ny45QTcuOTUgNy45NSAwIDAgMCAzNTQgNjcxeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db2RlVHdvVG9uZSA9IGdldEljb24oJ2NvZGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTMzOS41LTIyM2gxODVjNC4xIDAgNy41IDMuNiA3LjUgOHY0OGMwIDQuNC0zLjQgOC03LjUgOGgtMTg1Yy00LjEgMC03LjUtMy42LTcuNS04di00OGMwLTQuNCAzLjQtOCA3LjUtOHpNMzA4IDYxMC4zYzAtMi4zIDEuMS00LjYgMi45LTYuMUw0MjAuNyA1MTJsLTEwOS44LTkyLjJhNy42MyA3LjYzIDAgMCAxLTIuOS02LjFWMzUxYzAtNi44IDcuOS0xMC41IDEzLjEtNi4xbDE5MiAxNjAuOWMzLjkgMy4yIDMuOSA5LjEgMCAxMi4zbC0xOTIgMTYxYy01LjIgNC40LTEzLjEuNy0xMy4xLTYuMXYtNjIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzIxLjEgNjc5LjFsMTkyLTE2MWMzLjktMy4yIDMuOS05LjEgMC0xMi4zbC0xOTItMTYwLjlBNy45NSA3Ljk1IDAgMCAwIDMwOCAzNTF2NjIuN2MwIDIuNCAxIDQuNiAyLjkgNi4xTDQyMC43IDUxMmwtMTA5LjggOTIuMmE4LjEgOC4xIDAgMCAwLTIuOSA2LjFWNjczYzAgNi44IDcuOSAxMC41IDEzLjEgNi4xek01MTYgNjczYzAgNC40IDMuNCA4IDcuNSA4aDE4NWM0LjEgMCA3LjUtMy42IDcuNS04di00OGMwLTQuNC0zLjQtOC03LjUtOGgtMTg1Yy00LjEgMC03LjUgMy42LTcuNSA4djQ4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db21wYXNzVHdvVG9uZSA9IGdldEljb24oJ2NvbXBhc3MnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMzI3LjYgNzAxLjdjLTIgLjktNC40IDAtNS4zLTIuMS0uNC0xLS40LTIuMiAwLTMuMkw0MjEgNDcwLjkgNTUzLjEgNjAzbC0yMjUuNSA5OC43em0zNzUuMS0zNzUuMUw2MDQgNTUyLjEgNDcxLjkgNDIwbDIyNS41LTk4LjdjMi0uOSA0LjQgMCA1LjMgMi4xLjQgMSAuNCAyLjEgMCAzLjJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMyMi4zIDY5Ni40Yy0uNCAxLS40IDIuMiAwIDMuMi45IDIuMSAzLjMgMyA1LjMgMi4xTDU1My4xIDYwMyA0MjEgNDcwLjlsLTk4LjcgMjI1LjV6bTM3NS4xLTM3NS4xTDQ3MS45IDQyMCA2MDQgNTUyLjFsOTguNy0yMjUuNWMuNC0xLjEuNC0yLjIgMC0zLjItLjktMi4xLTMuMy0zLTUuMy0yLjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29udGFjdHNUd29Ub25lID0gZ2V0SWNvbignY29udGFjdHMnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDYwLjMgNTI2YTUxLjcgNTIgMCAxIDAgMTAzLjQgMCA1MS43IDUyIDAgMSAwLTEwMy40IDB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzY4IDM1MmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDU0OHY1NmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDMyOHY1NmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDEzNnY0OTZoNzUyVjI5Nkg3Njh2NTZ6TTY2MSA3MzZoLTQzLjhjLTQuMiAwLTcuNi0zLjMtNy45LTcuNS0zLjgtNTAuNS00Ni05MC41LTk3LjItOTAuNXMtOTMuNCAzOS45LTk3LjIgOTAuNWMtLjMgNC4yLTMuNyA3LjUtNy45IDcuNWgtNDMuOWE4IDggMCAwIDEtOC04LjRjMi44LTUzLjMgMzEuOS05OS42IDc0LjYtMTI2LjEtMTguMS0yMC0yOS4xLTQ2LjQtMjkuMS03NS41IDAtNjEuOSA0OS45LTExMiAxMTEuNC0xMTJzMTExLjQgNTAuMSAxMTEuNCAxMTJjMCAyOS4xLTExIDU1LjYtMjkuMSA3NS41IDQyLjcgMjYuNCA3MS45IDcyLjggNzQuNyAxMjYuMWE4IDggMCAwIDEtOCA4LjR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU5NC4zIDYwMS41YTExMS44IDExMS44IDAgMCAwIDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAgMC03NC42IDEyNi4xIDggOCAwIDAgMCA4IDguNEg0MDdjNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC42IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINjYxYTggOCAwIDAgMCA4LTguNGMtMi44LTUzLjMtMzItOTkuNy03NC43LTEyNi4xek01MTIgNTc4Yy0yOC41IDAtNTEuNy0yMy4zLTUxLjctNTJzMjMuMi01MiA1MS43LTUyIDUxLjcgMjMuMyA1MS43IDUyLTIzLjIgNTItNTEuNyA1MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA1NjhIMTM2VjI5NmgxMjB2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxMjB2NDk2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db250YWluZXJUd29Ub25lID0gZ2V0SWNvbignY29udGFpbmVyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTYzNSA3NzEuN2MtMzQuNSAyOC42LTc4LjIgNDQuMy0xMjMgNDQuM3MtODguNS0xNS44LTEyMy00NC4zYTE5NC4wMiAxOTQuMDIgMCAwIDEtNTkuMS04NC43SDIzMnYyMDFoNTYwVjY4N2gtOTcuOWMtMTEuNiAzMi44LTMyIDYyLjMtNTkuMSA4NC43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMjAgNTAxaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4N2g5Ny45YzExLjYgMzIuOCAzMiA2Mi4zIDU5LjEgODQuNyAzNC41IDI4LjUgNzguMiA0NC4zIDEyMyA0NC4zczg4LjUtMTUuNyAxMjMtNDQuM2MyNy4xLTIyLjQgNDcuNS01MS45IDU5LjEtODQuN0g3OTJ2MjAxem0wLTI2NEg2NDMuNmwtNS4yIDI0LjdDNjI2LjQgNzA4LjUgNTczLjIgNzUyIDUxMiA3NTJzLTExNC40LTQzLjUtMTI2LjUtMTAzLjNsLTUuMi0yNC43SDIzMlYxMzZoNTYwdjQ4OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzIwIDM0MWgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Db250cm9sVHdvVG9uZSA9IGdldEljb24oJ2NvbnRyb2wnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNjE2IDQ0MGEzNiAzNiAwIDEgMCA3MiAwIDM2IDM2IDAgMSAwLTcyIDB6TTM0MC40IDYwMS41bDEuNSAyLjRjMCAuMS4xLjEuMS4ybC45IDEuMmMuMS4xLjIuMi4yLjMgMSAxLjMgMiAyLjUgMy4yIDMuNmwuMi4yYy40LjQuOC44IDEuMiAxLjEuOC44IDEuNyAxLjUgMi42IDIuMWguMWwxLjIuOWMuMS4xLjMuMi40LjMgMS4yLjggMi41IDEuNiAzLjkgMi4yLjIuMS41LjIuNy40LjQuMi43LjMgMS4xLjUuMy4xLjcuMyAxIC40LjUuMiAxIC40IDEuNS41LjQuMS45LjMgMS4zLjRsLjkuMyAxLjQuM2MuMi4xLjUuMS43LjIuNy4xIDEuNC4zIDIuMS40LjIgMCAuNCAwIC42LjEuNi4xIDEuMS4xIDEuNy4yLjIgMCAuNCAwIC43LjEuOCAwIDEuNS4xIDIuMy4xczEuNSAwIDIuMy0uMWMuMiAwIC40IDAgLjctLjEuNiAwIDEuMi0uMSAxLjctLjIuMiAwIC40IDAgLjYtLjEuNy0uMSAxLjQtLjIgMi4xLS40LjItLjEuNS0uMS43LS4ybDEuNC0uMy45LS4zYy40LS4xLjktLjMgMS4zLS40LjUtLjIgMS0uNCAxLjUtLjUuMy0uMS43LS4zIDEtLjQuNC0uMi43LS4zIDEuMS0uNS4yLS4xLjUtLjIuNy0uNCAxLjMtLjcgMi42LTEuNCAzLjktMi4yLjEtLjEuMy0uMi40LS4zbDEuMi0uOWguMWMuOS0uNyAxLjgtMS40IDIuNi0yLjEuNC0uNC44LS43IDEuMi0xLjFsLjItLjJjMS4xLTEuMSAyLjItMi40IDMuMi0zLjYuMS0uMS4yLS4yLjItLjNsLjktMS4yYzAtLjEuMS0uMS4xLS4ybDEuNS0yLjRjLjEtLjIuMi0uMy4zLS41IDIuNy01LjEgNC4zLTEwLjkgNC4zLTE3cy0xLjYtMTItNC4zLTE3Yy0uMS0uMi0uMi0uNC0uMy0uNWwtMS41LTIuNGMwLS4xLS4xLS4xLS4xLS4ybC0uOS0xLjJjLS4xLS4xLS4yLS4yLS4yLS4zLTEtMS4zLTItMi41LTMuMi0zLjZsLS4yLS4yYy0uNC0uNC0uOC0uOC0xLjItMS4xLS44LS44LTEuNy0xLjUtMi42LTIuMWgtLjFsLTEuMi0uOWMtLjEtLjEtLjMtLjItLjQtLjMtMS4yLS44LTIuNS0xLjYtMy45LTIuMi0uMi0uMS0uNS0uMi0uNy0uNC0uNC0uMi0uNy0uMy0xLjEtLjUtLjMtLjEtLjctLjMtMS0uNC0uNS0uMi0xLS40LTEuNS0uNS0uNC0uMS0uOS0uMy0xLjMtLjRsLS45LS4zLTEuNC0uM2MtLjItLjEtLjUtLjEtLjctLjItLjctLjEtMS40LS4zLTIuMS0uNC0uMiAwLS40IDAtLjYtLjEtLjYtLjEtMS4xLS4xLTEuNy0uMi0uMiAwLS40IDAtLjctLjEtLjggMC0xLjUtLjEtMi4zLS4xcy0xLjUgMC0yLjMuMWMtLjIgMC0uNCAwLS43LjEtLjYgMC0xLjIuMS0xLjcuMi0uMiAwLS40IDAtLjYuMS0uNy4xLTEuNC4yLTIuMS40LS4yLjEtLjUuMS0uNy4ybC0xLjQuMy0uOS4zYy0uNC4xLS45LjMtMS4zLjQtLjUuMi0xIC40LTEuNS41LS4zLjEtLjcuMy0xIC40LS40LjItLjcuMy0xLjEuNS0uMi4xLS41LjItLjcuNC0xLjMuNy0yLjYgMS40LTMuOSAyLjItLjEuMS0uMy4yLS40LjNsLTEuMi45aC0uMWMtLjkuNy0xLjggMS40LTIuNiAyLjEtLjQuNC0uOC43LTEuMiAxLjFsLS4yLjJhNTQuOCA1NC44IDAgMCAwLTMuMiAzLjZjLS4xLjEtLjIuMi0uMi4zbC0uOSAxLjJjMCAuMS0uMS4xLS4xLjJsLTEuNSAyLjRjLS4xLjItLjIuMy0uMy41LTIuNyA1LjEtNC4zIDEwLjktNC4zIDE3czEuNiAxMiA0LjMgMTdjLjEuMi4yLjMuMy41eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em00MzYuNC00OTkuMWMtLjIgMC0uMy4xLS40LjF2LTc3YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2NzdjLS4yIDAtLjMtLjEtLjQtLjEgNDIgMTMuNCA3Mi40IDUyLjcgNzIuNCA5OS4xIDAgNDYuNC0zMC40IDg1LjctNzIuNCA5OS4xLjIgMCAuMy0uMS40LS4xdjIyMWMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNTM5Yy4yIDAgLjMuMS40LjEtNDItMTMuNC03Mi40LTUyLjctNzIuNC05OS4xIDAtNDYuNCAzMC40LTg1LjcgNzIuNC05OS4xek0zNDAgNDg1VjI2NGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djIyMWM0MS43IDEzLjYgNzIgNTIuOCA3MiA5OXMtMzAuMyA4NS41LTcyIDk5djc3YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNzdjLTQxLjctMTMuNi03Mi01Mi44LTcyLTk5czMwLjMtODUuNSA3Mi05OXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzQwIDY4M3Y3N2MwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di03N2M0MS43LTEzLjUgNzItNTIuOCA3Mi05OXMtMzAuMy04NS40LTcyLTk5VjI2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjIxYy00MS43IDEzLjUtNzIgNTIuOC03MiA5OXMzMC4zIDg1LjQgNzIgOTl6bS4xLTExNmMuMS0uMi4yLS4zLjMtLjVsMS41LTIuNGMwLS4xLjEtLjEuMS0uMmwuOS0xLjJjMC0uMS4xLS4yLjItLjMgMS0xLjIgMi4xLTIuNSAzLjItMy42bC4yLS4yYy40LS40LjgtLjcgMS4yLTEuMS44LS43IDEuNy0xLjQgMi42LTIuMWguMWwxLjItLjljLjEtLjEuMy0uMi40LS4zIDEuMy0uOCAyLjYtMS41IDMuOS0yLjIuMi0uMi41LS4zLjctLjQuNC0uMi43LS4zIDEuMS0uNS4zLS4xLjctLjMgMS0uNC41LS4xIDEtLjMgMS41LS41LjQtLjEuOS0uMyAxLjMtLjRsLjktLjMgMS40LS4zYy4yLS4xLjUtLjEuNy0uMi43LS4yIDEuNC0uMyAyLjEtLjQuMi0uMS40LS4xLjYtLjEuNS0uMSAxLjEtLjIgMS43LS4yLjMtLjEuNS0uMS43LS4xLjgtLjEgMS41LS4xIDIuMy0uMXMxLjUuMSAyLjMuMWMuMy4xLjUuMS43LjEuNi4xIDEuMS4xIDEuNy4yLjIuMS40LjEuNi4xLjcuMSAxLjQuMyAyLjEuNC4yLjEuNS4xLjcuMmwxLjQuMy45LjNjLjQuMS45LjMgMS4zLjQuNS4xIDEgLjMgMS41LjUuMy4xLjcuMyAxIC40LjQuMi43LjMgMS4xLjUuMi4yLjUuMy43LjQgMS40LjYgMi43IDEuNCAzLjkgMi4yLjEuMS4zLjIuNC4zbDEuMi45aC4xYy45LjYgMS44IDEuMyAyLjYgMi4xLjQuMy44LjcgMS4yIDEuMWwuMi4yYzEuMiAxLjEgMi4yIDIuMyAzLjIgMy42IDAgLjEuMS4yLjIuM2wuOSAxLjJjMCAuMS4xLjEuMS4ybDEuNSAyLjRBMzYuMDMgMzYuMDMgMCAwIDEgNDA4IDU4NGMwIDYuMS0xLjYgMTEuOS00LjMgMTctLjEuMi0uMi4zLS4zLjVsLTEuNSAyLjRjMCAuMS0uMS4xLS4xLjJsLS45IDEuMmMwIC4xLS4xLjItLjIuMy0xIDEuMi0yLjEgMi41LTMuMiAzLjZsLS4yLjJjLS40LjQtLjguNy0xLjIgMS4xLS44LjctMS43IDEuNC0yLjYgMi4xaC0uMWwtMS4yLjljLS4xLjEtLjMuMi0uNC4zLTEuMy44LTIuNiAxLjUtMy45IDIuMi0uMi4yLS41LjMtLjcuNC0uNC4yLS43LjMtMS4xLjUtLjMuMS0uNy4zLTEgLjQtLjUuMS0xIC4zLTEuNS41LS40LjEtLjkuMy0xLjMuNGwtLjkuMy0xLjQuM2MtLjIuMS0uNS4xLS43LjItLjcuMi0xLjQuMy0yLjEuNC0uMi4xLS40LjEtLjYuMS0uNS4xLTEuMS4yLTEuNy4yLS4zLjEtLjUuMS0uNy4xLS44LjEtMS41LjEtMi4zLjFzLTEuNS0uMS0yLjMtLjFjLS4zLS4xLS41LS4xLS43LS4xLS42LS4xLTEuMS0uMS0xLjctLjItLjItLjEtLjQtLjEtLjYtLjEtLjctLjEtMS40LS4zLTIuMS0uNC0uMi0uMS0uNS0uMS0uNy0uMmwtMS40LS4zLS45LS4zYy0uNC0uMS0uOS0uMy0xLjMtLjQtLjUtLjEtMS0uMy0xLjUtLjUtLjMtLjEtLjctLjMtMS0uNC0uNC0uMi0uNy0uMy0xLjEtLjUtLjItLjItLjUtLjMtLjctLjQtMS40LS42LTIuNy0xLjQtMy45LTIuMi0uMS0uMS0uMy0uMi0uNC0uM2wtMS4yLS45aC0uMWMtLjktLjYtMS44LTEuMy0yLjYtMi4xLS40LS4zLS44LS43LTEuMi0xLjFsLS4yLS4yYy0xLjItMS4xLTIuMi0yLjMtMy4yLTMuNiAwLS4xLS4xLS4yLS4yLS4zbC0uOS0xLjJjMC0uMS0uMS0uMS0uMS0uMmwtMS41LTIuNGMtLjEtLjItLjItLjMtLjMtLjUtMi43LTUtNC4zLTEwLjktNC4zLTE3czEuNi0xMS45IDQuMy0xN3ptMjgwLjMtMjcuOWMtLjEgMC0uMi0uMS0uNC0uMXYyMjFjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1MzljLS4xIDAtLjIuMS0uNC4xIDQyLTEzLjQgNzIuNC01Mi43IDcyLjQtOTkuMSAwLTQ2LjQtMzAuNC04NS43LTcyLjQtOTkuMS4xIDAgLjIuMS40LjF2LTc3YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY3N2MuMSAwIC4yLS4xLjQtLjEtNDIgMTMuNC03Mi40IDUyLjctNzIuNCA5OS4xIDAgNDYuNCAzMC40IDg1LjcgNzIuNCA5OS4xek02NTIgNDA0YzE5LjkgMCAzNiAxNi4xIDM2IDM2cy0xNi4xIDM2LTM2IDM2LTM2LTE2LjEtMzYtMzYgMTYuMS0zNiAzNi0zNnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ29weVR3b1RvbmUgPSBnZXRJY29uKCdjb3B5JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMjMyIDcwNmgxNDJjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MTQyaDI1MFYyNjRIMjMydjQ0MnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg0OTZ2Njg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LThWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTcwNCAxOTJIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzAuN2MwIDguNSAzLjQgMTYuNiA5LjQgMjIuNmwxNzMuMyAxNzMuM2MyLjIgMi4yIDQuNyA0IDcuNCA1LjV2MS45aDQuMmMzLjUgMS4zIDcuMiAyIDExIDJINzA0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzUwIDg1Ni4yTDI2My45IDc3MEgzNTB2ODYuMnpNNjY0IDg4OEg0MTRWNzQ2YzAtMjIuMS0xNy45LTQwLTQwLTQwSDIzMlYyNjRoNDMydjYyNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuQ3JlZGl0Q2FyZFR3b1RvbmUgPSBnZXRJY29uKCdjcmVkaXQtY2FyZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNzkyaDc1MlY0NDBIMTM2djM1MnptNTA3LTE0NGMwLTQuNCAzLjYtOCA4LThoMTY1YzQuNCAwIDggMy42IDggOHY3MmMwIDQuNC0zLjYgOC04IDhINjUxYy00LjQgMC04LTMuNi04LTh2LTcyek0xMzYgMjMyaDc1MnYxMjBIMTM2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NTEgNzI4aDE2NWM0LjQgMCA4LTMuNiA4LTh2LTcyYzAtNC40LTMuNi04LTgtOEg2NTFjLTQuNCAwLTggMy42LTggOHY3MmMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlY0NDBoNzUydjM1MnptMC00NDBIMTM2VjIzMmg3NTJ2MTIweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Dcm93blR3b1RvbmUgPSBnZXRJY29uKCdjcm93bicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ005MTEuOSAyODMuOXYuNUw4MzUuNSA4NjVjLTEgOC03LjkgMTQtMTUuOSAxNEgyMDQuNWMtOC4xIDAtMTQuOS02LjEtMTYtMTRsLTc2LjQtNTgwLjZ2LS42IDEuNkwxODguNSA4NjZjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZjLjEtLjUuMS0xIDAtMS41eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTc3My42IDgxMC42bDUzLjktNDA5LjQtMTM5LjggODYuMUw1MTIgMjUyLjkgMzM2LjMgNDg3LjNsLTEzOS44LTg2LjEgNTMuOCA0MDkuNGg1MjMuM3ptLTM3NC4yLTE4OWMwLTYyLjEgNTAuNS0xMTIuNiAxMTIuNi0xMTIuNnMxMTIuNiA1MC41IDExMi42IDExMi42djFjMCA2Mi4xLTUwLjUgMTEyLjYtMTEyLjYgMTEyLjZzLTExMi42LTUwLjUtMTEyLjYtMTEyLjZ2LTF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA3MzQuMmM2MS45IDAgMTEyLjMtNTAuMiAxMTIuNi0xMTIuMXYtLjVjMC02Mi4xLTUwLjUtMTEyLjYtMTEyLjYtMTEyLjZzLTExMi42IDUwLjUtMTEyLjYgMTEyLjZ2LjVjLjMgNjEuOSA1MC43IDExMi4xIDExMi42IDExMi4xem0wLTE2MC45YzI2LjYgMCA0OC4yIDIxLjYgNDguMiA0OC4zIDAgMjYuNi0yMS42IDQ4LjMtNDguMiA0OC4zcy00OC4yLTIxLjYtNDguMi00OC4zYzAtMjYuNiAyMS42LTQ4LjMgNDguMi00OC4zeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xODguNSA4NjVjMS4xIDcuOSA3LjkgMTQgMTYgMTRoNjE1LjFjOCAwIDE0LjktNiAxNS45LTE0bDc2LjQtNTgwLjZ2LS41Yy4zLTYuNC02LjctMTAuOC0xMi4zLTcuNEw3MDUgMzk2LjQgNTE4LjQgMTQ3LjVhOC4wNiA4LjA2IDAgMCAwLTEyLjkgMEwzMTkgMzk2LjQgMTI0LjMgMjc2LjVjLTUuNS0zLjQtMTIuNi45LTEyLjIgNy4zdi42TDE4OC41IDg2NXptMTQ3LjgtMzc3LjdMNTEyIDI1Mi45bDE3NS43IDIzNC40IDEzOS44LTg2LjEtNTMuOSA0MDkuNEgyNTAuM2wtNTMuOC00MDkuNCAxMzkuOCA4Ni4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DdXN0b21lclNlcnZpY2VUd29Ub25lID0gZ2V0SWNvbignY3VzdG9tZXItc2VydmljZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTY5NiA2MzJoMTI4djE5Mkg2OTZ6bS00OTYgMGgxMjh2MTkySDIwMHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDEyOGMtMjEyLjEgMC0zODQgMTcxLjktMzg0IDM4NHYzNjBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTg0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjYyNGMwLTM1LjMtMjguNy02NC02NC02NEgyMDB2LTQ4YzAtMTcyLjMgMTM5LjctMzEyIDMxMi0zMTJzMzEyIDEzOS43IDMxMiAzMTJ2NDhINjg4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYyMDhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMTg0YzEzLjMgMCAyNC0xMC43IDI0LTI0VjUxMmMwLTIxMi4xLTE3MS45LTM4NC0zODQtMzg0ek0zMjggNjMydjE5MkgyMDBWNjMyaDEyOHptNDk2IDE5Mkg2OTZWNjMyaDEyOHYxOTJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRhc2hib2FyZFR3b1RvbmUgPSBnZXRJY29uKCdkYXNoYm9hcmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE4OGMtOTkuMyAwLTE5Mi43IDM4LjctMjYzIDEwOS03MC4zIDcwLjItMTA5IDE2My42LTEwOSAyNjMgMCAxMDUuNiA0NC41IDIwNS41IDEyMi42IDI3Nmg0OTguOEEzNzEuMTIgMzcxLjEyIDAgMCAwIDg4NCA1NjBjMC05OS4zLTM4LjctMTkyLjctMTA5LTI2My03MC4yLTcwLjMtMTYzLjYtMTA5LTI2My0xMDl6bS0zMCA0NGMwLTQuNCAzLjYtOCA4LThoNDRjNC40IDAgOCAzLjYgOCA4djgwYzAgNC40LTMuNiA4LTggOGgtNDRjLTQuNCAwLTgtMy42LTgtOHYtODB6TTI3MCA1ODJjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04di00NGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djQ0em05MC43LTIwNC40bC0zMS4xIDMxLjFhOC4wMyA4LjAzIDAgMCAxLTExLjMgMGwtNTYuNi01Ni42YTguMDMgOC4wMyAwIDAgMSAwLTExLjNsMzEuMS0zMS4xYzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsNTYuNiA1Ni42YzMuMSAzLjEgMy4xIDguMiAwIDExLjN6bTI5MS4xIDgzLjVsLTg0LjUgODQuNWM1IDE4LjcuMiAzOS40LTE0LjUgNTQuMWE1NS45NSA1NS45NSAwIDAgMS03OS4yIDAgNTUuOTUgNTUuOTUgMCAwIDEgMC03OS4yIDU1Ljg3IDU1Ljg3IDAgMCAxIDU0LjEtMTQuNWw4NC41LTg0LjVjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM3ptNDMtNTIuNGwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAgMSAwLTExLjNsNTYuNi01Ni42YzMuMS0zLjEgOC4yLTMuMSAxMS4zIDBsMzEuMSAzMS4xYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwIDEtMTEuMyAwek04NDYgNTM4djQ0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOHYtNDRjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjIzLjUgNDIxLjVhOC4wMyA4LjAzIDAgMCAwLTExLjMgMEw1MjcuNyA1MDZjLTE4LjctNS0zOS40LS4yLTU0LjEgMTQuNWE1NS45NSA1NS45NSAwIDAgMCAwIDc5LjIgNTUuOTUgNTUuOTUgMCAwIDAgNzkuMiAwIDU1Ljg3IDU1Ljg3IDAgMCAwIDE0LjUtNTQuMWw4NC41LTg0LjVjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMjguMy0yOC4zek00OTAgMzIwaDQ0YzQuNCAwIDgtMy42IDgtOHYtODBjMC00LjQtMy42LTgtOC04aC00NGMtNC40IDAtOCAzLjYtOCA4djgwYzAgNC40IDMuNiA4IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI0LjggMzg1LjZhNDQ2LjcgNDQ2LjcgMCAwIDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwIDAtMTQyLjQtOTZDNjMxLjEgMTIzLjggNTcyLjUgMTEyIDUxMiAxMTJzLTExOS4xIDExLjgtMTc0LjQgMzUuMmE0NDYuNyA0NDYuNyAwIDAgMC0xNDIuNCA5NiA0NDYuNyA0NDYuNyAwIDAgMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwIDEgMTQwIDU2MGMwLTk5LjQgMzguNy0xOTIuOCAxMDktMjYzIDcwLjMtNzAuMyAxNjMuNy0xMDkgMjYzLTEwOSA5OS40IDAgMTkyLjggMzguNyAyNjMgMTA5IDcwLjMgNzAuMyAxMDkgMTYzLjcgMTA5IDI2MyAwIDEwNS42LTQ0LjUgMjA1LjUtMTIyLjYgMjc2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003NjIuNyAzNDAuOGwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTU2LjYgNTYuNmE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDMxLjEgMzEuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDU2LjYtNTYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zek03NTAgNTM4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHpNMzA0LjEgMzA5LjdhOC4wMyA4LjAzIDAgMCAwLTExLjMgMGwtMzEuMSAzMS4xYTguMDMgOC4wMyAwIDAgMCAwIDExLjNsNTYuNiA1Ni42YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMzEuMS0zMS4xYzMuMS0zLjEgMy4xLTguMiAwLTExLjNsLTU2LjYtNTYuNnpNMjYyIDUzMGgtODBjLTQuNCAwLTggMy42LTggOHY0NGMwIDQuNCAzLjYgOCA4IDhoODBjNC40IDAgOC0zLjYgOC04di00NGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRlbGV0ZVR3b1RvbmUgPSBnZXRJY29uKCdkZWxldGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00yOTIuNyA4NDBoNDM4LjZsMjQuMi01MTJoLTQ4N3onXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDI1Nkg3MzZ2LTgwYzAtMzUuMy0yOC43LTY0LTY0LTY0SDM1MmMtMzUuMyAwLTY0IDI4LjctNjQgNjR2ODBIMTYwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzMmMwIDQuNCAzLjYgOCA4IDhoNjAuNGwyNC43IDUyM2MxLjYgMzQuMSAyOS44IDYxIDYzLjkgNjFoNDU0YzM0LjIgMCA2Mi4zLTI2LjggNjMuOS02MWwyNC43LTUyM0g4ODhjNC40IDAgOC0zLjYgOC04di0zMmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTUwNC03MmgzMDR2NzJIMzYwdi03MnptMzcxLjMgNjU2SDI5Mi43bC0yNC4yLTUxMmg0ODdsLTI0LjIgNTEyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5EaWZmVHdvVG9uZSA9IGdldEljb24oJ2RpZmYnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjMyIDI2NHY2MjRoNDMyVjQxMy44TDUxNC4yIDI2NEgyMzJ6bTMzNiA0ODljMCAzLjgtMy40IDctNy41IDdoLTIyNWMtNC4xIDAtNy41LTMuMi03LjUtN3YtNDJjMC0zLjggMy40LTcgNy41LTdoMjI1YzQuMSAwIDcuNSAzLjIgNy41IDd2NDJ6bTAtMjYydjQyYzAgMy44LTMuNCA3LTcuNSA3SDQ3NnY4NC45YzAgMy45LTMuMSA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1NDBoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy45IDMuNC03IDcuNS03SDQyMHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOSAwIDcgMy4yIDcgNy4xVjQ4NGg4NC41YzQuMSAwIDcuNSAzLjEgNy41IDd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC4yIDMwNi42TDYxMS4zIDcyLjljLTYtNS43LTEzLjktOC45LTIyLjItOC45SDI5NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgyNzdsMjE5IDIxMC42VjgyNGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjMyOS42YzAtOC43LTMuNS0xNy05LjgtMjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1My40IDIwMS40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MDRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTEyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM5Ny4zYzAtOC41LTMuNC0xNi42LTkuNC0yMi42TDU1My40IDIwMS40ek02NjQgODg4SDIzMlYyNjRoMjgyLjJMNjY0IDQxMy44Vjg4OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDc2IDM5OS4xYzAtMy45LTMuMS03LjEtNy03LjFoLTQyYy0zLjggMC03IDMuMi03IDcuMVY0ODRoLTg0LjVjLTQuMSAwLTcuNSAzLjEtNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdINDIwdjg0LjljMCAzLjkgMy4yIDcuMSA3IDcuMWg0MmMzLjkgMCA3LTMuMiA3LTcuMVY1NDBoODQuNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOS0zLjQtNy03LjUtN0g0NzZ2LTg0Ljl6TTU2MC41IDcwNGgtMjI1Yy00LjEgMC03LjUgMy4yLTcuNSA3djQyYzAgMy44IDMuNCA3IDcuNSA3aDIyNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOC0zLjQtNy03LjUtN3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRGF0YWJhc2VUd29Ub25lID0gZ2V0SWNvbignZGF0YWJhc2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjMyIDYxNmg1NjBWNDA4SDIzMnYyMDh6bTExMi0xNDRjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwek0yMzIgODg4aDU2MFY2ODBIMjMydjIwOHptMTEyLTE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTIzMiAzNDRoNTYwVjEzNkgyMzJ2MjA4em0xMTItMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzA0IDUxMmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAgMjcyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMC01NDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODBoNTYwdjIwOHptMC0yNzJIMjMyVjQwOGg1NjB2MjA4em0wLTI3MkgyMzJWMTM2aDU2MHYyMDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRpc2xpa2VUd29Ub25lID0gZ2V0SWNvbignZGlzbGlrZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNzMgMTAwLjF2NDI4aC4zbC0uMy00Mjh6TTgyMC40IDUyNWwtMjEuOS0xOSAxNC0yNS41YTU2LjIgNTYuMiAwIDAgMCA2LjktMjcuM2MwLTE2LjUtNy4xLTMyLjItMTkuNi00M2wtMjEuOS0xOSAxMy45LTI1LjRhNTYuMiA1Ni4yIDAgMCAwIDYuOS0yNy4zYzAtMTYuNS03LjEtMzIuMi0xOS42LTQzbC0yMS45LTE5IDEzLjktMjUuNGE1Ni4yIDU2LjIgMCAwIDAgNi45LTI3LjNjMC0yMi40LTEzLjItNDIuNi0zMy42LTUxLjhIMzQ1djM0NS4yYzE4LjYgNjcuMiA0Ni40IDE2OCA4My41IDMwMi41YTQ0LjI4IDQ0LjI4IDAgMCAwIDQyLjIgMzIuM2M3LjUuMSAxNS0yLjIgMjEuMS02LjcgOS45LTcuNCAxNS4yLTE4LjYgMTQuNi0zMC41bC05LjYtMTk4LjRoMzE0LjRDODI5IDYwNS41IDg0MCA1ODcuMSA4NDAgNTY4YzAtMTYuNS03LjEtMzIuMi0xOS42LTQzeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xMTIgMTMydjM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVYxMDBoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNzczLjkgMzU4LjNjMy42LTEyIDUuNC0yNC40IDUuNC0zNyAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43IDMuNi0xMiA1LjQtMjQuNCA1LjQtMzcgMC0yOC4zLTkuMy01NS41LTI2LjEtNzcuNyAzLjYtMTIgNS40LTI0LjQgNS40LTM3IDAtNTEuNi0zMC43LTk4LjEtNzguMy0xMTguNGE2Ni4xIDY2LjEgMCAwIDAtMjYuNS01LjRIMjczbC4zIDQyOCA4NS44IDMxMC44QzM3Mi45IDg4OSA0MTguOSA5MjQgNDcwLjkgOTI0YzI5LjcgMCA1Ny40LTExLjggNzcuOS0zMy40IDIwLjUtMjEuNSAzMS00OS43IDI5LjUtNzkuNGwtNi0xMjIuOWgyMzkuOWMxMi4xIDAgMjMuOS0zLjIgMzQuMy05LjMgNDAuNC0yMy41IDY1LjUtNjYuMSA2NS41LTExMSAwLTI4LjMtOS4zLTU1LjUtMjYuMS03Ny43em0tNzQuNyAxMjYuMUg0OTYuOGw5LjYgMTk4LjRjLjYgMTEuOS00LjcgMjMuMS0xNC42IDMwLjUtNi4xIDQuNS0xMy42IDYuOC0yMS4xIDYuN2E0NC4yOCA0NC4yOCAwIDAgMS00Mi4yLTMyLjNjLTM3LjEtMTM0LjQtNjQuOS0yMzUuMi04My41LTMwMi41VjE3MmgzOTkuNGE1Ni44NSA1Ni44NSAwIDAgMSAzMy42IDUxLjhjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTEzLjkgMjUuNCAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMCAxIDE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTEzLjkgMjUuNCAyMS45IDE5YTU2Ljc2IDU2Ljc2IDAgMCAxIDE5LjYgNDNjMCA5LjctMi4zIDE4LjktNi45IDI3LjNsLTE0IDI1LjUgMjEuOSAxOWE1Ni43NiA1Ni43NiAwIDAgMSAxOS42IDQzYzAgMTkuMS0xMSAzNy41LTI4LjggNDguNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRG93bkNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdkb3duLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xODQuNCAyNzcuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwIDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g0Ni45YzEwLjMgMCAxOS45IDQuOSAyNS45IDEzLjJMNTEyIDU2My42bDEwNS4yLTE0NS40YzYtOC4zIDE1LjctMTMuMiAyNS45LTEzLjJINjkwYzYuNSAwIDEwLjMgNy40IDYuNCAxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY5MCA0MDVoLTQ2LjljLTEwLjIgMC0xOS45IDQuOS0yNS45IDEzLjJMNTEyIDU2My42IDQwNi44IDQxOC4yYy02LTguMy0xNS42LTEzLjItMjUuOS0xMy4ySDMzNGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTc4IDI0NmMzLjIgNC40IDkuNyA0LjQgMTIuOSAwbDE3OC0yNDZjMy45LTUuMy4xLTEyLjctNi40LTEyLjd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkRvd25TcXVhcmVUd29Ub25lID0gZ2V0SWNvbignZG93bi1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE1MC00NDBoNDYuOWMxMC4zIDAgMTkuOSA0LjkgMjUuOSAxMy4yTDUxMiA1NTguNmwxMDUuMi0xNDUuNGM2LTguMyAxNS43LTEzLjIgMjUuOS0xMy4ySDY5MGM2LjUgMCAxMC4zIDcuNCA2LjQgMTIuN2wtMTc4IDI0NmE3Ljk1IDcuOTUgMCAwIDEtMTIuOSAwbC0xNzgtMjQ2Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTA1LjUgNjU4LjdjMy4yIDQuNCA5LjcgNC40IDEyLjkgMGwxNzgtMjQ2YzMuOS01LjMuMS0xMi43LTYuNC0xMi43aC00Ni45Yy0xMC4yIDAtMTkuOSA0LjktMjUuOSAxMy4yTDUxMiA1NTguNiA0MDYuOCA0MTMuMmMtNi04LjMtMTUuNi0xMy4yLTI1LjktMTMuMkgzMzRjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDE3OCAyNDZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkVudmlyb25tZW50VHdvVG9uZSA9IGdldEljb24oJ2Vudmlyb25tZW50JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcyNC40IDIyNC45QzY2Ny43IDE2OS41IDU5Mi4zIDEzOSA1MTIgMTM5cy0xNTUuNyAzMC41LTIxMi40IDg1LjhDMjQzLjEgMjgwIDIxMiAzNTMuMiAyMTIgNDMxLjFjMCAyNDEuMyAyMzQuMSA0MDcuMiAzMDAgNDQ5LjEgNjUuOS00MS45IDMwMC0yMDcuOCAzMDAtNDQ5LjEgMC03Ny45LTMxLjEtMTUxLjEtODcuNi0yMDYuMnpNNTEyIDYxNWMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAyNjNjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMCAxIDUxMiA1NTFjLTI5LjkgMC01OC0xMS43LTc5LjItMzIuOEExMTEuNiAxMTEuNiAwIDAgMSA0MDAgNDM5YzAtMjkuOSAxMS43LTU4IDMyLjgtNzkuMkM0NTQgMzM4LjYgNDgyLjEgMzI3IDUxMiAzMjdjMjkuOSAwIDU4IDExLjYgNzkuMiAzMi44UzYyNCA0MDkuMSA2MjQgNDM5YzAgMjkuOS0xMS42IDU4LTMyLjggNzkuMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg5LjFhMzYyLjQ5IDM2Mi40OSAwIDAgMC03OS45LTExNS43IDM3MC44MyAzNzAuODMgMCAwIDAtMTE4LjItNzcuOEM2MTAuNyA3Ni42IDU2Mi4xIDY3IDUxMiA2N2MtNTAuMSAwLTk4LjcgOS42LTE0NC41IDI4LjUtNDQuMyAxOC4zLTg0IDQ0LjUtMTE4LjIgNzcuOEEzNjMuNiAzNjMuNiAwIDAgMCAxNjkuNCAyODljLTE5LjUgNDUtMjkuNCA5Mi44LTI5LjQgMTQyIDAgNzAuNiAxNi45IDE0MC45IDUwLjEgMjA4LjcgMjYuNyA1NC41IDY0IDEwNy42IDExMSAxNTguMSA4MC4zIDg2LjIgMTY0LjUgMTM4LjkgMTg4LjQgMTUzYTQzLjkgNDMuOSAwIDAgMCAyMi40IDYuMWM3LjggMCAxNS41LTIgMjIuNC02LjEgMjMuOS0xNC4xIDEwOC4xLTY2LjggMTg4LjQtMTUzIDQ3LTUwLjQgODQuMy0xMDMuNiAxMTEtMTU4LjFDODY3LjEgNTcyIDg4NCA1MDEuOCA4ODQgNDMxLjFjMC00OS4yLTkuOS05Ny0yOS40LTE0MnpNNTEyIDg4MC4yYy02NS45LTQxLjktMzAwLTIwNy44LTMwMC00NDkuMSAwLTc3LjkgMzEuMS0xNTEuMSA4Ny42LTIwNi4zQzM1Ni4zIDE2OS41IDQzMS43IDEzOSA1MTIgMTM5czE1NS43IDMwLjUgMjEyLjQgODUuOUM3ODAuOSAyODAgODEyIDM1My4yIDgxMiA0MzEuMWMwIDI0MS4zLTIzNC4xIDQwNy4yLTMwMCA0NDkuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRWRpdFR3b1RvbmUgPSBnZXRJY29uKCdlZGl0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNNzYxLjEgMjg4LjNMNjg3LjggMjE1IDMyNS4xIDU3Ny42bC0xNS42IDg5IDg4LjktMTUuN3onXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDgzNkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM2YzAgNC40IDMuNiA4IDggOGg3ODRjNC40IDAgOC0zLjYgOC04di0zNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTYyMi4zLTg0YzIgMCA0LS4yIDYtLjVMNDMxLjkgNzIyYzItLjQgMy45LTEuMyA1LjMtMi44bDQyMy45LTQyMy45YTkuOTYgOS45NiAwIDAgMCAwLTE0LjFMNjk0LjkgMTE0LjljLTEuOS0xLjktNC40LTIuOS03LjEtMi45cy01LjIgMS03LjEgMi45TDI1Ni44IDUzOC44Yy0xLjUgMS41LTIuNCAzLjMtMi44IDUuM2wtMjkuNSAxNjguMmEzMy41IDMzLjUgMCAwIDAgOS40IDI5LjhjNi42IDYuNCAxNC45IDkuOSAyMy44IDkuOXptNjcuNC0xNzQuNEw2ODcuOCAyMTVsNzMuMyA3My4zLTM2Mi43IDM2Mi42LTg4LjkgMTUuNyAxNS42LTg5eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FeGNsYW1hdGlvbkNpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdleGNsYW1hdGlvbi1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0tMzIgMTU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MjcyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYyOTZ6bTMyIDQ0MGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ4OCA1NzZoNDhjNC40IDAgOC0zLjYgOC04VjI5NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MjcyYzAgNC40IDMuNiA4IDggOHptLTI0IDExMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkV4cGVyaW1lbnRUd29Ub25lID0gZ2V0SWNvbignZXhwZXJpbWVudCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001NTEuOSA1MTNjMTkuNiAwIDM1LjktMTQuMiAzOS4zLTMyLjhBNDAuMDIgNDAuMDIgMCAwIDEgNTUyIDUxMmE0MCA0MCAwIDAgMS00MC0zOS40di41YzAgMjIgMTcuOSAzOS45IDM5LjkgMzkuOXpNNzUyIDY4Ny44bC0uMy0uM2MtMjktMTcuNS02Mi4zLTI2LjgtOTctMjYuOC00NC45IDAtODcuMiAxNS43LTEyMSA0My44YTI1Ni4yNyAyNTYuMjcgMCAwIDEtMTY0LjkgNTkuOWMtNDEuMiAwLTgxLTkuOC0xMTYuNy0yOEwyMTAuNSA4NDRoNjAzbC01OS45LTE1NS4yLTEuNi0xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NzkgODI0LjlMNjk2LjMgMzUyVjE3OEg3Njh2LTY4SDI1NnY2OGg3MS43djE3NEwxNDUgODI0LjljLTIuOCA3LjQtNC4zIDE1LjItNC4zIDIzLjEgMCAzNS4zIDI4LjcgNjQgNjQgNjRoNjE0LjZjNy45IDAgMTUuNy0xLjUgMjMuMS00LjMgMzMtMTIuNyA0OS40LTQ5LjggMzYuNi04Mi44ek0zOTUuNyAzNjQuN1YxODBoMjMyLjZ2MTg0LjdMNzE5LjIgNjAwYy0yMC43LTUuMy00Mi4xLTgtNjMuOS04LTYxLjIgMC0xMTkuMiAyMS41LTE2NS4zIDYwYTE4OC43OCAxODguNzggMCAwIDEtMTIxLjMgNDMuOWMtMzIuNyAwLTY0LjEtOC4zLTkxLjgtMjMuN2wxMTguOC0zMDcuNXpNMjEwLjUgODQ0bDQxLjYtMTA3LjYuMS0uMmMzNS43IDE4LjEgNzUuNCAyNy44IDExNi42IDI3LjggNjEuMiAwIDExOS4yLTIxLjUgMTY1LjMtNjAgMzMuOS0yOC4yIDc2LjMtNDMuOSAxMjEuMy00My45IDM1IDAgNjguNCA5LjUgOTcuNiAyNy4xbC42IDEuNkw4MTMuNSA4NDRoLTYwM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTUyIDUxMmMxOS4zIDAgMzUuNC0xMy42IDM5LjItMzEuOC42LTIuNy44LTUuNC44LTguMiAwLTIyLjEtMTcuOS00MC00MC00MHMtNDAgMTcuOS00MCA0MHYuNmE0MCA0MCAwIDAgMCA0MCAzOS40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FeWVJbnZpc2libGVUd29Ub25lID0gZ2V0SWNvbignZXllLWludmlzaWJsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNTQuODkgNzU4Ljg1bDEyNS41Ny0xMjUuNTdhMTc2IDE3NiAwIDAgMSAyNDguODItMjQ4LjgyTDc1NyAyNTYuNzJRNjUxLjY5IDE4Ni4wNyA1MTIgMTg2cS0yODguMyAwLTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVxNjkuMjcgMTQ1LjkxIDE3My4wOSAyMjEuMDV6TTk0Mi4yIDQ4Ni4yUTg4OS40NiAzNzUuMTEgODE2LjcgMzA1TDY3Mi40OCA0NDkuMjdhMTc2LjA5IDE3Ni4wOSAwIDAgMS0yMjcuMjIgMjI3LjIxTDMyMyA3OTguNzVRNDA4IDgzOCA1MTIgODM4cTI4OC4zIDAgNDMwLjItMzAwLjNhNjAuMjkgNjAuMjkgMCAwIDAgMC01MS41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005NDIuMiA0ODYuMlE4ODkuNDcgMzc1LjExIDgxNi43IDMwNWwtNTAuODggNTAuODhDODA3LjMxIDM5NS41MyA4NDMuNDUgNDQ3LjQgODc0LjcgNTEyIDc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2cS03Mi42NyAwLTEzMy44Ny0yMi4zOEwzMjMgNzk4Ljc1UTQwOCA4MzggNTEyIDgzOHEyODguMyAwIDQzMC4yLTMwMC4zYTYwLjI5IDYwLjI5IDAgMCAwIDAtNTEuNXpNODc4LjYzIDE2NS41Nkw4MzYgMTIyLjg4YTggOCAwIDAgMC0xMS4zMiAwTDcxNS4zMSAyMzIuMlE2MjQuODYgMTg2IDUxMiAxODZxLTI4OC4zIDAtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMCAwIDAgNTEuNXE1Ni42OSAxMTkuNCAxMzYuNSAxOTEuNDFMMTEyLjQ4IDgzNWE4IDggMCAwIDAgMCAxMS4zMUwxNTUuMTcgODg5YTggOCAwIDAgMCAxMS4zMSAwbDcxMi4xNS03MTIuMTJhOCA4IDAgMCAwIDAtMTEuMzJ6TTE0OS4zIDUxMkMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGM1NC41NCAwIDEwNC4xMyA5LjM2IDE0OS4xMiAyOC4zOWwtNzAuMyA3MC4zYTE3NiAxNzYgMCAwIDAtMjM4LjEzIDIzOC4xM2wtODMuNDIgODMuNDJDMjIzLjEgNjM3LjQ5IDE4My4zIDU4Mi4yOCAxNDkuMyA1MTJ6bTI0Ni43IDBhMTEyLjExIDExMi4xMSAwIDAgMSAxNDYuMi0xMDYuNjlMNDAxLjMxIDU0Ni4yQTExMiAxMTIgMCAwIDEgMzk2IDUxMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTA4IDYyNGMtMy40NiAwLTYuODctLjE2LTEwLjI1LS40N2wtNTIuODIgNTIuODJhMTc2LjA5IDE3Ni4wOSAwIDAgMCAyMjcuNDItMjI3LjQybC01Mi44MiA1Mi44MmMuMzEgMy4zOC40NyA2Ljc5LjQ3IDEwLjI1YTExMS45NCAxMTEuOTQgMCAwIDEtMTEyIDExMnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRXllVHdvVG9uZSA9IGdldEljb24oJ2V5ZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ004MS44IDUzNy44YTYwLjMgNjAuMyAwIDAgMSAwLTUxLjVDMTc2LjYgMjg2LjUgMzE5LjggMTg2IDUxMiAxODZjLTE5Mi4yIDAtMzM1LjQgMTAwLjUtNDMwLjIgMzAwLjNhNjAuMyA2MC4zIDAgMCAwIDAgNTEuNUMxNzYuNiA3MzcuNSAzMTkuOSA4MzggNTEyIDgzOGMtMTkyLjEgMC0zMzUuNC0xMDAuNS00MzAuMi0zMDAuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMjU4Yy0xNjEuMyAwLTI3OS40IDgxLjgtMzYyLjcgMjU0QzIzMi42IDY4NC4yIDM1MC43IDc2NiA1MTIgNzY2YzE2MS40IDAgMjc5LjUtODEuOCAzNjIuNy0yNTRDNzkxLjQgMzM5LjggNjczLjMgMjU4IDUxMiAyNTh6bS00IDQzMGMtOTcuMiAwLTE3Ni03OC44LTE3Ni0xNzZzNzguOC0xNzYgMTc2LTE3NiAxNzYgNzguOCAxNzYgMTc2LTc4LjggMTc2LTE3NiAxNzZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAgMCAwIDUxLjVDMTc2LjYgNzM3LjUgMzE5LjkgODM4IDUxMiA4MzhjMTkyLjIgMCAzMzUuNC0xMDAuNSA0MzAuMi0zMDAuMyA3LjctMTYuMiA3LjctMzUgMC01MS41ek01MTIgNzY2Yy0xNjEuMyAwLTI3OS40LTgxLjgtMzYyLjctMjU0QzIzMi42IDMzOS44IDM1MC43IDI1OCA1MTIgMjU4czI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MDggMzM2Yy05Ny4yIDAtMTc2IDc4LjgtMTc2IDE3NnM3OC44IDE3NiAxNzYgMTc2IDE3Ni03OC44IDE3Ni0xNzYtNzguOC0xNzYtMTc2LTE3NnptMCAyODhjLTYxLjkgMC0xMTItNTAuMS0xMTItMTEyczUwLjEtMTEyIDExMi0xMTIgMTEyIDUwLjEgMTEyIDExMi01MC4xIDExMi0xMTIgMTEyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlQWRkVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtYWRkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTEyNiAyMzZ2NDhjMCA0LjQtMy42IDgtOCA4SDU0NHYxMDhjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjY0NEgzNzJjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDEwOFY0NzJjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYxMDhoMTA4YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU0NCA0NzJjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djEwOEgzNzJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTA4djEwOGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjY0NGgxMDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjQ3MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZUV4Y2xhbWF0aW9uVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtZXhjbGFtYXRpb24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptLTU0IDk2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0NDh6bTMyIDMzNmMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODggNjQwaDQ4YzQuNCAwIDgtMy42IDgtOFY0NDhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE4NGMwIDQuNCAzLjYgOCA4IDh6bS0xNiAxMDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlSW1hZ2VUd29Ub25lID0gZ2V0SWNvbignZmlsZS1pbWFnZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0tMTM0IDUwYzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHptMjk2IDI5NEgzMjguMWMtNi43IDAtMTAuNC03LjctNi4zLTEyLjlsOTkuOC0xMjcuMmE4IDggMCAwIDEgMTIuNiAwbDQxLjEgNTIuNCA3Ny44LTk5LjJhOC4xIDguMSAwIDAgMSAxMi43IDBsMTM2LjUgMTc0YzQuMSA1LjIuNCAxMi45LTYuMyAxMi45eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTUzLjEgNTA5LjFsLTc3LjggOTkuMi00MS4xLTUyLjRhOCA4IDAgMCAwLTEyLjYgMGwtOTkuOCAxMjcuMmE3Ljk4IDcuOTggMCAwIDAgNi4zIDEyLjlINjk2YzYuNyAwIDEwLjQtNy43IDYuMy0xMi45bC0xMzYuNS0xNzRhOC4xIDguMSAwIDAgMC0xMi43IDB6TTM2MCA0NDJhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlRXhjZWxUd29Ub25lID0gZ2V0SWNvbignZmlsZS1leGNlbCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem01MS42IDEyMGgzNS43YTEyLjA0IDEyLjA0IDAgMCAxIDEwLjEgMTguNUw1NDYuMSA2MjNsODQgMTMwLjRjMy42IDUuNiAyIDEzLTMuNiAxNi42LTIgMS4yLTQuMiAxLjktNi41IDEuOWgtMzcuNWMtNC4xIDAtOC0yLjEtMTAuMi01LjdMNTEwIDY2NC44bC02Mi43IDEwMS41Yy0yLjIgMy41LTYgNS43LTEwLjIgNS43aC0zNC41YTEyLjA0IDEyLjA0IDAgMCAxLTEwLjItMTguNGw4My40LTEzMi44LTgyLjMtMTMwLjRjLTMuNi01LjctMS45LTEzLjEgMy43LTE2LjYgMS45LTEuMyA0LjEtMS45IDYuNC0xLjlINDQyYzQuMiAwIDguMSAyLjIgMTAuMyA1LjhsNjEuOCAxMDIuNCA2MS4yLTEwMi4zYzIuMi0zLjYgNi4xLTUuOCAxMC4zLTUuOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODU0LjYgMjg4LjZMNjM5LjQgNzMuNGMtNi02LTE0LjEtOS40LTIyLjYtOS40SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMTEuM2MwLTguNS0zLjQtMTYuNy05LjQtMjIuN3pNNjAyIDEzNy44TDc5MC4yIDMyNkg2MDJWMTM3Ljh6TTc5MiA4ODhIMjMyVjEzNmgzMDJ2MjE2YTQyIDQyIDAgMCAwIDQyIDQyaDIxNnY0OTR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxNC4xIDU4MC4xbC02MS44LTEwMi40Yy0yLjItMy42LTYuMS01LjgtMTAuMy01LjhoLTM4LjRjLTIuMyAwLTQuNS42LTYuNCAxLjktNS42IDMuNS03LjMgMTAuOS0zLjcgMTYuNmw4Mi4zIDEzMC40LTgzLjQgMTMyLjhhMTIuMDQgMTIuMDQgMCAwIDAgMTAuMiAxOC40aDM0LjVjNC4yIDAgOC0yLjIgMTAuMi01LjdMNTEwIDY2NC44bDYyLjMgMTAxLjRjMi4yIDMuNiA2LjEgNS43IDEwLjIgNS43SDYyMGMyLjMgMCA0LjUtLjcgNi41LTEuOSA1LjYtMy42IDcuMi0xMSAzLjYtMTYuNmwtODQtMTMwLjQgODUuMy0xMzIuNWExMi4wNCAxMi4wNCAwIDAgMC0xMC4xLTE4LjVoLTM1LjdjLTQuMiAwLTguMSAyLjItMTAuMyA1LjhsLTYxLjIgMTAyLjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVNYXJrZG93blR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLW1hcmtkb3duJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bTcyLjMgMTIySDY0MWM2LjYgMCAxMiA1LjQgMTIgMTJ2MjcyYzAgNi42LTUuNCAxMi0xMiAxMmgtMjcuMmMtNi42IDAtMTItNS40LTEyLTEyVjU4MS43TDUzNSA3MzIuM2MtMiA0LjMtNi4zIDcuMS0xMSA3LjFoLTI0LjFhMTIgMTIgMCAwIDEtMTEtNy4xbC02Ni44LTE1MC4yVjc1OGMwIDYuNi01LjQgMTItMTIgMTJIMzgzYy02LjYgMC0xMi01LjQtMTItMTJWNDg2YzAtNi42IDUuNC0xMiAxMi0xMmgzNWM0LjggMCA5LjEgMi44IDExIDcuMmw4My4yIDE5MSA4My4xLTE5MWMxLjktNC40IDYuMi03LjIgMTEtNy4yeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDI5IDQ4MS4yYy0xLjktNC40LTYuMi03LjItMTEtNy4yaC0zNWMtNi42IDAtMTIgNS40LTEyIDEydjI3MmMwIDYuNiA1LjQgMTIgMTIgMTJoMjcuMWM2LjYgMCAxMi01LjQgMTItMTJWNTgyLjFsNjYuOCAxNTAuMmExMiAxMiAwIDAgMCAxMSA3LjFINTI0YzQuNyAwIDktMi44IDExLTcuMWw2Ni44LTE1MC42Vjc1OGMwIDYuNiA1LjQgMTIgMTIgMTJINjQxYzYuNiAwIDEyLTUuNCAxMi0xMlY0ODZjMC02LjYtNS40LTEyLTEyLTEyaC0zNC43Yy00LjggMC05LjEgMi44LTExIDcuMmwtODMuMSAxOTEtODMuMi0xOTF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVQZGZUd29Ub25lID0gZ2V0SWNvbignZmlsZS1wZGYnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTA5LjIgNDkwLjhjLS43LTEuMy0xLjQtMS45LTIuMi0yLTIuOSAzLjMtMi4yIDMxLjUgMi43IDUxLjQgNC0xMy42IDQuNy00MC41LS41LTQ5LjR6bS0xLjYgMTIwLjVjLTcuNyAyMC0xOC44IDQ3LjMtMzIuMSA3MS40IDQtMS42IDguMS0zLjMgMTIuMy01IDE3LjYtNy4yIDM3LjMtMTUuMyA1OC45LTIwLjItMTQuOS0xMS44LTI4LjQtMjcuNy0zOS4xLTQ2LjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptNTUgMjg3LjZjMTYuMS0xLjkgMzAuNi0yLjggNDQuMy0yLjMgMTIuOC40IDIzLjYgMiAzMiA1LjEuMi4xLjMuMS41LjIuNC4yLjguMyAxLjIuNS41LjIgMS4xLjQgMS42LjcuMS4xLjMuMS40LjIgNC4xIDEuOCA3LjUgNCAxMC4xIDYuNiA5LjEgOS4xIDExLjggMjYuMSA2LjIgMzkuNi0zLjIgNy43LTExLjcgMjAuNS0zMy4zIDIwLjUtMjEuOCAwLTUzLjktOS43LTgyLjEtMjQuOC0yNS41IDQuMy01My43IDEzLjktODAuOSAyMy4xLTUuOCAyLTExLjggNC0xNy42IDUuOS0zOCA2NS4yLTY2LjUgNzkuNC04NC4xIDc5LjQtNC4yIDAtNy44LS45LTEwLjgtMi02LjktMi42LTEyLjgtOC0xNi41LTE1LS45LTEuNy0xLjYtMy40LTIuMi01LjItMS42LTQuOC0yLjEtOS42LTEuMy0xMy42bC42LTIuN2MuMS0uMi4xLS40LjItLjYuMi0uNy40LTEuNC43LTIuMSAwLS4xLjEtLjIuMS0uMyA0LjEtMTEuOSAxMy42LTIzLjQgMjcuNy0zNC42IDEyLjMtOS44IDI3LjEtMTguNyA0NS45LTI4LjQgMTUuOS0yOCAzNy42LTc1LjEgNTEuMi0xMDcuNC0xMC44LTQxLjgtMTYuNy03NC42LTEwLjEtOTguNi45LTMuMyAyLjUtNi40IDQuNi05LjEuMi0uMi4zLS40LjUtLjYuMS0uMS4xLS4yLjItLjIgNi4zLTcuNSAxNi45LTExLjkgMjguMS0xMS41IDE2LjYuNyAyOS43IDExLjUgMzMgMzAuMSAxLjcgOCAyLjIgMTYuNSAxLjkgMjUuN3YuN2MwIC41IDAgMS0uMSAxLjUtLjcgMTMuMy0zIDI2LjYtNy4zIDQ0LjctLjQgMS42LS44IDMuMi0xLjIgNS4ybC0xIDQuMS0uMS4zYy4xLjIuMS4zLjIuNWwxLjggNC41Yy4xLjMuMy43LjQgMSAuNyAxLjYgMS40IDMuMyAyLjEgNC44di4xYzguNyAxOC44IDE5LjcgMzMuNCAzMy45IDQ1LjEgNC4zIDMuNSA4LjkgNi43IDEzLjkgOS44IDEuOC0uNSAzLjUtLjcgNS4zLS45eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM5MS41IDc2MWM1LjctNC40IDE2LjItMTQuNSAzMC4xLTM0LjctMTAuMyA5LjQtMjMuNCAyMi40LTMwLjEgMzQuN3ptMjcwLjktODNsLjItLjNoLjJjLjYtLjQuNS0uNy40LS45LS4xLS4xLTQuNS05LjMtNDUuMS03LjQgMzUuMyAxMy45IDQzLjUgOS4xIDQ0LjMgOC42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTM1LjkgNTg1LjNjLS44LTEuNy0xLjUtMy4zLTIuMi00LjktLjEtLjMtLjMtLjctLjQtMWwtMS44LTQuNWMtLjEtLjItLjEtLjMtLjItLjVsLjEtLjMuMi0xLjFjNC0xNi4zIDguNi0zNS4zIDkuNC01NC40di0uN2MuMy04LjYtLjItMTcuMi0yLTI1LjYtMy44LTIxLjMtMTkuNS0yOS42LTMyLjktMzAuMi0xMS4zLS41LTIxLjggNC0yOC4xIDExLjQtLjEuMS0uMS4yLS4yLjItLjIuMi0uNC40LS41LjYtMi4xIDIuNy0zLjcgNS44LTQuNiA5LjEtNi42IDI0LS43IDU2LjggMTAuMSA5OC42LTEzLjYgMzIuNC0zNS4zIDc5LjQtNTEuMiAxMDcuNHYuMWMtMjcuNyAxNC4zLTY0LjEgMzUuOC03My42IDYyLjkgMCAuMS0uMS4yLS4xLjMtLjIuNy0uNSAxLjQtLjcgMi4xLS4xLjItLjEuNC0uMi42LS4yLjktLjUgMS44LS42IDIuNy0uOSA0LS40IDguOCAxLjMgMTMuNi42IDEuOCAxLjMgMy41IDIuMiA1LjIgMy43IDcgOS42IDEyLjQgMTYuNSAxNSAzIDEuMSA2LjYgMiAxMC44IDIgMTcuNiAwIDQ2LjEtMTQuMiA4NC4xLTc5LjQgNS44LTEuOSAxMS44LTMuOSAxNy42LTUuOSAyNy4yLTkuMiA1NS40LTE4LjggODAuOS0yMy4xIDI4LjIgMTUuMSA2MC4zIDI0LjggODIuMSAyNC44IDIxLjYgMCAzMC4xLTEyLjggMzMuMy0yMC41IDUuNi0xMy41IDIuOS0zMC41LTYuMi0zOS42LTIuNi0yLjYtNi00LjgtMTAuMS02LjYtLjEtLjEtLjMtLjEtLjQtLjItLjUtLjItMS4xLS40LTEuNi0uNy0uNC0uMi0uOC0uMy0xLjItLjUtLjItLjEtLjMtLjEtLjUtLjItMTYuMi01LjgtNDEuNy02LjctNzYuMy0yLjhsLTUuMy42Yy01LTMtOS42LTYuMy0xMy45LTkuOC0xNC4yLTExLjMtMjUuMS0yNS44LTMzLjgtNDQuN3pNMzkxLjUgNzYxYzYuNy0xMi4zIDE5LjgtMjUuMyAzMC4xLTM0LjctMTMuOSAyMC4yLTI0LjQgMzAuMy0zMC4xIDM0Ljd6TTUwNyA0ODguOGMuOC4xIDEuNS43IDIuMiAyIDUuMiA4LjkgNC41IDM1LjguNSA0OS40LTQuOS0xOS45LTUuNi00OC4xLTIuNy01MS40em0tMTkuMiAxODguOWMtNC4yIDEuNy04LjMgMy40LTEyLjMgNSAxMy4zLTI0LjEgMjQuNC01MS40IDMyLjEtNzEuNCAxMC43IDE4LjUgMjQuMiAzNC40IDM5LjEgNDYuMi0yMS42IDQuOS00MS4zIDEzLTU4LjkgMjAuMnptMTc1LjQtLjljLjEuMi4yLjUtLjQuOWgtLjJsLS4yLjNjLS44LjUtOSA1LjMtNDQuMy04LjYgNDAuNi0xLjkgNDUgNy4zIDQ1LjEgNy40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlUHB0VHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtcHB0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ2NC41IDUxNi4ydjEwOC40aDM4LjljNDQuNyAwIDcxLjItMTAuOSA3MS4yLTU0LjMgMC0zNC40LTIwLjEtNTQuMS01My45LTU0LjFoLTU2LjJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptOTAgMjE4LjRjMCA1NS4yLTM2LjggOTQuMS05Ni4yIDk0LjFoLTYzLjNWNzYwYzAgNC40LTMuNiA4LTggOEg0MjRjLTQuNCAwLTgtMy42LTgtOFY0ODRjMC00LjQgMy42LTggOC04di4xaDEwNGM1OS43IDAgOTYgMzkuOCA5NiA5NC4zeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDI0IDQ3Ni4xYy00LjQtLjEtOCAzLjUtOCA3Ljl2Mjc2YzAgNC40IDMuNiA4IDggOGgzMi41YzQuNCAwIDgtMy42IDgtOHYtOTUuNWg2My4zYzU5LjQgMCA5Ni4yLTM4LjkgOTYuMi05NC4xIDAtNTQuNS0zNi4zLTk0LjMtOTYtOTQuM0g0MjR6bTE1MC42IDk0LjJjMCA0My40LTI2LjUgNTQuMy03MS4yIDU0LjNoLTM4LjlWNTE2LjJoNTYuMmMzMy44IDAgNTMuOSAxOS43IDUzLjkgNTQuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVRleHRUd29Ub25lID0gZ2V0SWNvbignZmlsZS10ZXh0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6bS0yMiAzMjJjMCA0LjQtMy42IDgtOCA4SDMyMGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMjAwLTE4NHY0OGMwIDQuNC0zLjYgOC04IDhIMzIwYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgzODRjNC40IDAgOCAzLjYgOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzEyIDQ5MHY0OGMwIDQuNCAzLjYgOCA4IDhoMzg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyMGMtNC40IDAtOCAzLjYtOCA4em0xOTIgMTI4SDMyMGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZpbGVVbmtub3duVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUtdW5rbm93bicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyem0tMjIgNDI0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTEwLTIyOC40Yy43IDQ0LjktMjkuNyA4NC41LTc0LjMgOTguOS01LjcgMS44LTkuNyA3LjMtOS43IDEzLjNWNjcyYzAgNS41LTQuNSAxMC0xMCAxMGgtMzJjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMzJjLjItMTkuOCAxNS40LTM3LjMgMzQuNy00MC4xQzU0OSA1OTYuMiA1NzAgNTc0LjMgNTcwIDU0OWMwLTI4LjEtMjUuOC01MS41LTU4LTUxLjVzLTU4IDIzLjQtNTggNTEuNmMwIDUuMi00LjQgOS40LTkuOCA5LjRoLTMyLjRjLTUuNCAwLTkuOC00LjEtOS44LTkuNSAwLTU3LjQgNTAuMS0xMDMuNyAxMTEuNS0xMDMgNTkuMy44IDEwNy43IDQ2LjEgMTA4LjUgMTAxLjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC43TDYzOS40IDczLjRjLTYtNi0xNC4yLTkuNC0yMi43LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjYtOS40LTIyLjZ6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000ODAgNzQ0YTMyIDMyIDAgMSAwIDY0IDAgMzIgMzIgMCAxIDAtNjQgMHptLTc4LTE5NWMwIDUuNCA0LjQgOS41IDkuOCA5LjVoMzIuNGM1LjQgMCA5LjgtNC4yIDkuOC05LjQgMC0yOC4yIDI1LjgtNTEuNiA1OC01MS42czU4IDIzLjQgNTggNTEuNWMwIDI1LjMtMjEgNDcuMi00OS4zIDUwLjktMTkuMyAyLjgtMzQuNSAyMC4zLTM0LjcgNDAuMXYzMmMwIDUuNSA0LjUgMTAgMTAgMTBoMzJjNS41IDAgMTAtNC41IDEwLTEwdi0xMi4yYzAtNiA0LTExLjUgOS43LTEzLjMgNDQuNi0xNC40IDc1LTU0IDc0LjMtOTguOS0uOC01NS41LTQ5LjItMTAwLjgtMTA4LjUtMTAxLjYtNjEuNC0uNy0xMTEuNSA0NS42LTExMS41IDEwM3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsZVppcFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXppcCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW3NlY29uZGFyeUNvbG9yLCAnTTM0NCA2MzBoMzJ2MmgtMzJ6J10sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMzYwdjY0aDY0djY0aC02NHY2NGg2NHY2NGgtNjR2NjRoNjR2NjRoLTY0djYyaDY0djE2MEgyOTZWNTIwaDY0di02NGgtNjR2LTY0aDY0di02NGgtNjR2LTY0aDY0di02NGgtNjR2LTY0aC02NHY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwIDEtNDItNDJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoNjR2NjRoNjR2LTY0aDE3NHYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjk2IDM5Mmg2NHY2NGgtNjR6bTAtMTI4aDY0djY0aC02NHptMCAzMTh2MTYwaDEyOFY1ODJoLTY0di02MmgtNjR2NjJ6bTQ4IDUwdi0yaDMydjY0aC0zMnYtNjJ6bTE2LTQzMmg2NHY2NGgtNjR6bTAgMjU2aDY0djY0aC02NHptMC0xMjhoNjR2NjRoLTY0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlV29yZFR3b1RvbmUgPSBnZXRJY29uKCdmaWxlLXdvcmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTM0IDM1MlYxMzZIMjMydjc1Mmg1NjBWMzk0SDU3NmE0MiA0MiAwIDAgMS00Mi00MnptMTAxLjMgMTI5LjNjMS4zLTUuNCA2LjEtOS4zIDExLjctOS4zaDM1LjZhMTIuMDQgMTIuMDQgMCAwIDEgMTEuNiAxNS4xbC03NC40IDI3NmMtMS40IDUuMy02LjIgOC45LTExLjYgOC45aC0zMS44Yy01LjQgMC0xMC4yLTMuNy0xMS42LTguOWwtNTIuOC0xOTctNTIuOCAxOTdjLTEuNCA1LjMtNi4yIDguOS0xMS42IDguOWgtMzJjLTUuNCAwLTEwLjItMy43LTExLjYtOC45bC03NC4yLTI3NmExMi4wMiAxMi4wMiAwIDAgMSAxMS42LTE1LjFoMzUuNGM1LjYgMCAxMC40IDMuOSAxMS43IDkuM0w0MzQuNiA2ODBsNDkuNy0xOTguOWMxLjMtNS40IDYuMS05LjEgMTEuNi05LjFoMzIuMmM1LjUgMCAxMC4zIDMuNyAxMS42IDkuMWw0OS44IDE5OS4zIDQ1LjgtMTk5LjF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAgMCA0MiA0MmgyMTZ2NDk0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MjguMSA0NzJoLTMyLjJjLTUuNSAwLTEwLjMgMy43LTExLjYgOS4xTDQzNC42IDY4MGwtNDYuMS0xOTguN2MtMS4zLTUuNC02LjEtOS4zLTExLjctOS4zaC0zNS40YTEyLjAyIDEyLjAyIDAgMCAwLTExLjYgMTUuMWw3NC4yIDI3NmMxLjQgNS4yIDYuMiA4LjkgMTEuNiA4LjloMzJjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNTIuOC0xOTcgNTIuOCAxOTdjMS40IDUuMiA2LjIgOC45IDExLjYgOC45aDMxLjhjNS40IDAgMTAuMi0zLjYgMTEuNi04LjlsNzQuNC0yNzZhMTIuMDQgMTIuMDQgMCAwIDAtMTEuNi0xNS4xSDY0N2MtNS42IDAtMTAuNCAzLjktMTEuNyA5LjNsLTQ1LjggMTk5LjEtNDkuOC0xOTkuM2MtMS4zLTUuNC02LjEtOS4xLTExLjYtOS4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaWxlVHdvVG9uZSA9IGdldEljb24oJ2ZpbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ001MzQgMzUyVjEzNkgyMzJ2NzUyaDU2MFYzOTRINTc2YTQyIDQyIDAgMCAxLTQyLTQyeiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTQuNiAyODguNkw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek02MDIgMTM3LjhMNzkwLjIgMzI2SDYwMlYxMzcuOHpNNzkyIDg4OEgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwIDAgNDIgNDJoMjE2djQ5NHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRmlsdGVyVHdvVG9uZSA9IGdldEljb24oJ2ZpbHRlcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000MjAuNiA3OThoMTgyLjlWNjQySDQyMC42ek00MTEgNTYxLjRsOS41IDE2LjZoMTgzbDkuNS0xNi42TDgxMS4zIDIyNkgyMTIuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwLjEgMTU0SDE0My45Yy0yNC41IDAtMzkuOCAyNi43LTI3LjUgNDhMMzQ5IDU5Ny40VjgzOGMwIDE3LjcgMTQuMiAzMiAzMS44IDMyaDI2Mi40YzE3LjYgMCAzMS44LTE0LjMgMzEuOC0zMlY1OTcuNEw5MDcuNyAyMDJjMTIuMi0yMS4zLTMuMS00OC0yNy42LTQ4ek02MDMuNSA3OThINDIwLjZWNjQyaDE4Mi45djE1NnptOS41LTIzNi42bC05LjUgMTYuNmgtMTgzbC05LjUtMTYuNkwyMTIuNyAyMjZoNTk4LjZMNjEzIDU2MS40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GaXJlVHdvVG9uZSA9IGdldEljb24oJ2ZpcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzM3IDQzOC42Yy05LjYgMTUuNS0yMS4xIDMwLjctMzQuNCA0NS42YTczLjEgNzMuMSAwIDAgMS01MSAyNC40IDczLjM2IDczLjM2IDAgMCAxLTUzLjQtMTguOCA3NC4wMSA3NC4wMSAwIDAgMS0yNC40LTU5LjhjMy00Ny40LTEyLjQtMTAzLjEtNDUuOC0xNjUuNy0xNi45LTMxLjQtMzcuMS01OC4yLTYxLjItODAuNGEyNDAgMjQwIDAgMCAxLTEyLjEgNDYuNSAzNTQuMjYgMzU0LjI2IDAgMCAxLTU4LjIgMTAxIDM0OS42IDM0OS42IDAgMCAxLTU4LjYgNTYuOGMtMzQgMjYuMS02MiA2MC04MC44IDk3LjlhMjc1Ljk2IDI3NS45NiAwIDAgMC0yOS4xIDEyNGMwIDc0LjkgMjkuNSAxNDUuMyA4MyAxOTguNCA1My43IDUzLjIgMTI1IDgyLjQgMjAxIDgyLjRzMTQ3LjMtMjkuMiAyMDEtODIuNGM1My41LTUzIDgzLTEyMy41IDgzLTE5OC40IDAtMzkuMi04LjEtNzcuMy0yNC0xMTMuMS05LjMtMjEtMjEtNDAuNS0zNS01OC40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzQuMSA0NjkuMkEzNDcuNDkgMzQ3LjQ5IDAgMCAwIDc1MS4yIDM1NGwtMjkuMS0yNi43YTguMDkgOC4wOSAwIDAgMC0xMyAzLjNsLTEzIDM3LjNjLTguMSAyMy40LTIzIDQ3LjMtNDQuMSA3MC44LTEuNCAxLjUtMyAxLjktNC4xIDItMS4xLjEtMi44LS4xLTQuMy0xLjUtMS40LTEuMi0yLjEtMy0yLTQuOCAzLjctNjAuMi0xNC4zLTEyOC4xLTUzLjctMjAyQzU1NS4zIDE3MSA1MTAgMTIzLjEgNDUzLjQgODkuN2wtNDEuMy0yNC4zYy01LjQtMy4yLTEyLjMgMS0xMiA3LjNsMi4yIDQ4YzEuNSAzMi44LTIuMyA2MS44LTExLjMgODUuOS0xMSAyOS41LTI2LjggNTYuOS00NyA4MS41YTI5NS42NCAyOTUuNjQgMCAwIDEtNDcuNSA0Ni4xIDM1Mi42IDM1Mi42IDAgMCAwLTEwMC4zIDEyMS41QTM0Ny43NSAzNDcuNzUgMCAwIDAgMTYwIDYxMGMwIDQ3LjIgOS4zIDkyLjkgMjcuNyAxMzZhMzQ5LjQgMzQ5LjQgMCAwIDAgNzUuNSAxMTAuOWMzMi40IDMyIDcwIDU3LjIgMTExLjkgNzQuN0M0MTguNSA5NDkuOCA0NjQuNSA5NTkgNTEyIDk1OXM5My41LTkuMiAxMzYuOS0yNy4zQTM0OC42IDM0OC42IDAgMCAwIDc2MC44IDg1N2MzMi40LTMyIDU3LjgtNjkuNCA3NS41LTExMC45YTM0NC4yIDM0NC4yIDAgMCAwIDI3LjctMTM2YzAtNDguOC0xMC05Ni4yLTI5LjktMTQwLjl6TTcxMyA4MDguNWMtNTMuNyA1My4yLTEyNSA4Mi40LTIwMSA4Mi40cy0xNDcuMy0yOS4yLTIwMS04Mi40Yy01My41LTUzLjEtODMtMTIzLjUtODMtMTk4LjQgMC00My41IDkuOC04NS4yIDI5LjEtMTI0IDE4LjgtMzcuOSA0Ni44LTcxLjggODAuOC05Ny45YTM0OS42IDM0OS42IDAgMCAwIDU4LjYtNTYuOGMyNS0zMC41IDQ0LjYtNjQuNSA1OC4yLTEwMWEyNDAgMjQwIDAgMCAwIDEyLjEtNDYuNWMyNC4xIDIyLjIgNDQuMyA0OSA2MS4yIDgwLjQgMzMuNCA2Mi42IDQ4LjggMTE4LjMgNDUuOCAxNjUuN2E3NC4wMSA3NC4wMSAwIDAgMCAyNC40IDU5LjggNzMuMzYgNzMuMzYgMCAwIDAgNTMuNCAxOC44YzE5LjctMSAzNy44LTkuNyA1MS0yNC40IDEzLjMtMTQuOSAyNC44LTMwLjEgMzQuNC00NS42IDE0IDE3LjkgMjUuNyAzNy40IDM1IDU4LjQgMTUuOSAzNS44IDI0IDczLjkgMjQgMTEzLjEgMCA3NC45LTI5LjUgMTQ1LjQtODMgMTk4LjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZvbGRlckFkZFR3b1RvbmUgPSBnZXRJY29uKCdmb2xkZXItYWRkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTM3Mi41IDI1NkgxODR2NTEyaDY1NlYzNzAuNEg0OTIuMUwzNzIuNSAyNTZ6TTU0MCA0NDMuMVY1MjhoODQuNWM0LjEgMCA3LjUgMy4xIDcuNSA3djQyYzAgMy44LTMuNCA3LTcuNSA3SDU0MHY4NC45YzAgMy45LTMuMSA3LjEtNyA3LjFoLTQyYy0zLjggMC03LTMuMi03LTcuMVY1ODRoLTg0LjVjLTQuMSAwLTcuNS0zLjItNy41LTd2LTQyYzAtMy45IDMuNC03IDcuNS03SDQ4NHYtODQuOWMwLTMuOSAzLjItNy4xIDctNy4xaDQyYzMuOSAwIDcgMy4yIDcgNy4xeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMjk4LjRINTIxTDQwMy43IDE4Ni4yYTguMTUgOC4xNSAwIDAgMC01LjUtMi4ySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzAuNGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNODQwIDc2OEgxODRWMjU2aDE4OC41bDExOS42IDExNC40SDg0MFY3Njh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ4NCA0NDMuMVY1MjhoLTg0LjVjLTQuMSAwLTcuNSAzLjEtNy41IDd2NDJjMCAzLjggMy40IDcgNy41IDdINDg0djg0LjljMCAzLjkgMy4yIDcuMSA3IDcuMWg0MmMzLjkgMCA3LTMuMiA3LTcuMVY1ODRoODQuNWM0LjEgMCA3LjUtMy4yIDcuNS03di00MmMwLTMuOS0zLjQtNy03LjUtN0g1NDB2LTg0LjljMC0zLjktMy4xLTcuMS03LTcuMWgtNDJjLTMuOCAwLTcgMy4yLTcgNy4xeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5GbGFnVHdvVG9uZSA9IGdldEljb24oJ2ZsYWcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00xODQgMjMyaDM2OHYzMzZIMTg0eiddLCBbc2Vjb25kYXJ5Q29sb3IsICdNNjI0IDYzMmMwIDQuNC0zLjYgOC04IDhINTA0djczaDMzNlYzNzdINjI0djI1NXonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDMwNUg2MjRWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDE4NHYtNDBjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djc4NGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjY0MGgyNDh2MTEzYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQxNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzdjMC0xNy43LTE0LjMtMzItMzItMzJ6TTE4NCA1NjhWMjMyaDM2OHYzMzZIMTg0em02NTYgMTQ1SDUwNHYtNzNoMTEyYzQuNCAwIDgtMy42IDgtOFYzNzdoMjE2djMzNnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuRm9sZGVyVHdvVG9uZSA9IGdldEljb24oJ2ZvbGRlcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDI5OC40SDUyMUw0MDMuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNMzcyLjUgMjU2SDE4NHY1MTJoNjU2VjM3MC40SDQ5Mi4xeiddKTtcbn0pO1xuZXhwb3J0cy5Gb2xkZXJPcGVuVHdvVG9uZSA9IGdldEljb24oJ2ZvbGRlci1vcGVuJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbc2Vjb25kYXJ5Q29sb3IsICdNMTU5IDc2OGg2MTIuM2wxMDMuNC0yNTZIMjYyLjN6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwIDAtNS41LTIuMkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTkyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY5OGMxMyAwIDI0LjgtNy45IDI5LjctMjBsMTM0LTMzMmMxLjUtMy44IDIuMy03LjkgMi4zLTEyIDAtMTcuNy0xNC4zLTMyLTMyLTMyek0xMzYgMjU2aDE4OC41bDExOS42IDExNC40SDc0OFY0NDRIMjM4Yy0xMyAwLTI0LjggNy45LTI5LjcgMjBMMTM2IDY0My4yVjI1NnptNjM1LjMgNTEySDE1OWwxMDMuMy0yNTZoNjEyLjRMNzcxLjMgNzY4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Gcm93blR3b1RvbmUgPSBnZXRJY29uKCdmcm93bicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0zNzYgMjcyaC00OC4xYy00LjIgMC03LjgtMy4yLTguMS03LjRDNjA0IDYzNi4xIDU2Mi41IDU5NyA1MTIgNTk3cy05Mi4xIDM5LjEtOTUuOCA4OC42Yy0uMyA0LjItMy45IDcuNC04LjEgNy40SDM2MGE4IDggMCAwIDEtOC04LjRjNC40LTg0LjMgNzQuNS0xNTEuNiAxNjAtMTUxLjZzMTU1LjYgNjcuMyAxNjAgMTUxLjZhOCA4IDAgMCAxLTggOC40em0yNC0yMjRhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00yODggNDIxYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptMjI0IDExMmMtODUuNSAwLTE1NS42IDY3LjMtMTYwIDE1MS42YTggOCAwIDAgMCA4IDguNGg0OC4xYzQuMiAwIDcuOC0zLjIgOC4xLTcuNCAzLjctNDkuNSA0NS4zLTg4LjYgOTUuOC04OC42czkyIDM5LjEgOTUuOCA4OC42Yy4zIDQuMiAzLjkgNy40IDguMSA3LjRINjY0YTggOCAwIDAgMCA4LTguNEM2NjcuNiA2MDAuMyA1OTcuNSA1MzMgNTEyIDUzM3ptMTI4LTExMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZ1bmRUd29Ub25lID0gZ2V0SWNvbignZnVuZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI4IDE2MEg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjQwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYxOTJjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2MzJIMTM2VjIzMmg3NTJ2NTYweidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTEzNiA3OTJoNzUyVjIzMkgxMzZ2NTYwem01Ni40LTEzMC41bDIxNC45LTIxNWMzLjEtMy4xIDguMi0zLjEgMTEuMyAwTDUzMyA1NjFsMjU0LjUtMjU0LjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwzNi44IDM2LjhjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMjk3IDI5Ny4yYTguMDMgOC4wMyAwIDAgMS0xMS4zIDBMNDEyLjkgNTM3LjIgMjQwLjQgNzA5LjdhOC4wMyA4LjAzIDAgMCAxLTExLjMgMGwtMzYuNy0zNi45YTguMDMgOC4wMyAwIDAgMSAwLTExLjN6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTIyOS4xIDcwOS43YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMTcyLjUtMTcyLjUgMTE0LjQgMTE0LjVjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwyOTctMjk3LjJjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtMzYuOC0zNi44YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBMNTMzIDU2MSA0MTguNiA0NDYuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0yMTQuOSAyMTVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzNi43IDM2Ljl6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkZ1bm5lbFBsb3RUd29Ub25lID0gZ2V0SWNvbignZnVubmVsLXBsb3QnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDIwLjYgNzk4aDE4Mi45VjY1MEg0MjAuNnpNMjk3LjcgMzc0aDQyOC42bDg1LTE0OEgyMTIuN3ptMTEzLjIgMTk3LjRsOC40IDE0LjZoMTg1LjNsOC40LTE0LjZMNjg5LjYgNDM4SDMzNC40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAuMSAxNTRIMTQzLjljLTI0LjUgMC0zOS44IDI2LjctMjcuNSA0OEwzNDkgNjA3LjRWODM4YzAgMTcuNyAxNC4yIDMyIDMxLjggMzJoMjYyLjRjMTcuNiAwIDMxLjgtMTQuMyAzMS44LTMyVjYwNy40TDkwNy43IDIwMmMxMi4yLTIxLjMtMy4xLTQ4LTI3LjYtNDh6TTYwMy41IDc5OEg0MjAuNlY2NTBoMTgyLjl2MTQ4em05LjUtMjI2LjZsLTguNCAxNC42SDQxOS4zbC04LjQtMTQuNkwzMzQuNCA0MzhoMzU1LjJMNjEzIDU3MS40ek03MjYuMyAzNzRIMjk3LjdsLTg1LTE0OGg1OTguNmwtODUgMTQ4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5HaWZ0VHdvVG9uZSA9IGdldEljb24oJ2dpZnQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTQ2IDM3OGgyOTh2MTA0SDU0NnpNMjI4IDU1MGgyNTB2MzA4SDIyOHptLTQ4LTE3MmgyOTh2MTA0SDE4MHptMzY2IDE3MmgyNTB2MzA4SDU0NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDMxMEg3MzIuNGMxMy42LTIxLjQgMjEuNi00Ni44IDIxLjYtNzQgMC03Ni4xLTYxLjktMTM4LTEzOC0xMzgtNDEuNCAwLTc4LjcgMTguNC0xMDQgNDcuNC0yNS4zLTI5LTYyLjYtNDcuNC0xMDQtNDcuNC03Ni4xIDAtMTM4IDYxLjktMTM4IDEzOCAwIDI3LjIgNy45IDUyLjYgMjEuNiA3NEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIwMGMwIDQuNCAzLjYgOCA4IDhoNDB2MzQ0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY1NTBoNDBjNC40IDAgOC0zLjYgOC04VjM0MmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNDc4IDg1OEgyMjhWNTUwaDI1MHYzMDh6bTAtMzc2SDE4MFYzNzhoMjk4djEwNHptMC0xNzZoLTcwYy0zOC42IDAtNzAtMzEuNC03MC03MHMzMS40LTcwIDcwLTcwIDcwIDMxLjQgNzAgNzB2NzB6bTY4LTcwYzAtMzguNiAzMS40LTcwIDcwLTcwczcwIDMxLjQgNzAgNzAtMzEuNCA3MC03MCA3MGgtNzB2LTcwem0yNTAgNjIySDU0NlY1NTBoMjUwdjMwOHptNDgtMzc2SDU0NlYzNzhoMjk4djEwNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSGRkVHdvVG9uZSA9IGdldEljb24oJ2hkZCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMzIgODg4aDU2MFY2ODBIMjMydjIwOHptNDQ4LTE0MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6TTIzMiA2MTZoNTYwVjQwOEgyMzJ2MjA4em03Mi0xMjhjMC00LjQgMy42LTggOC04aDE4NGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDMxMmMtNC40IDAtOC0zLjYtOC04di00OHptLTcyLTE0NGg1NjBWMTM2SDIzMnYyMDh6bTcyLTEyOGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMzEyYy00LjQgMC04LTMuNi04LTh2LTQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgODI0SDIzMlY2ODBoNTYwdjIwOHptMC0yNzJIMjMyVjQwOGg1NjB2MjA4em0wLTI3MkgyMzJWMTM2aDU2MHYyMDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMxMiA1NDRoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMxMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMC0yNzJoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMxMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHptMzI4IDUxNmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkhlYXJ0VHdvVG9uZSA9IGdldEljb24oJ2hlYXJ0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjMgMjgzLjZhMjYwLjA0IDI2MC4wNCAwIDAgMC01Ni45LTgyLjggMjY0LjQgMjY0LjQgMCAwIDAtODQtNTUuNUEyNjUuMzQgMjY1LjM0IDAgMCAwIDY3OS43IDEyNWMtNDkuMyAwLTk3LjQgMTMuNS0xMzkuMiAzOS0xMCA2LjEtMTkuNSAxMi44LTI4LjUgMjAuMS05LTcuMy0xOC41LTE0LTI4LjUtMjAuMS00MS44LTI1LjUtODkuOS0zOS0xMzkuMi0zOS0zNS41IDAtNjkuOSA2LjgtMTAyLjQgMjAuMy0zMS40IDEzLTU5LjcgMzEuNy04NCA1NS41YTI1OC40NCAyNTguNDQgMCAwIDAtNTYuOSA4Mi44Yy0xMy45IDMyLjMtMjEgNjYuNi0yMSAxMDEuOSAwIDMzLjMgNi44IDY4IDIwLjMgMTAzLjMgMTEuMyAyOS41IDI3LjUgNjAuMSA0OC4yIDkxIDMyLjggNDguOSA3Ny45IDk5LjkgMTMzLjkgMTUxLjYgOTIuOCA4NS43IDE4NC43IDE0NC45IDE4OC42IDE0Ny4zbDIzLjcgMTUuMmMxMC41IDYuNyAyNCA2LjcgMzQuNSAwbDIzLjctMTUuMmMzLjktMi41IDk1LjctNjEuNiAxODguNi0xNDcuMyA1Ni01MS43IDEwMS4xLTEwMi43IDEzMy45LTE1MS42IDIwLjctMzAuOSAzNy02MS41IDQ4LjItOTEgMTMuNS0zNS4zIDIwLjMtNzAgMjAuMy0xMDMuMy4xLTM1LjMtNy02OS42LTIwLjktMTAxLjl6TTUxMiA4MTQuOFMxNTYgNTg2LjcgMTU2IDM4NS41QzE1NiAyODMuNiAyNDAuMyAyMDEgMzQ0LjMgMjAxYzczLjEgMCAxMzYuNSA0MC44IDE2Ny43IDEwMC40QzU0My4yIDI0MS44IDYwNi42IDIwMSA2NzkuNyAyMDFjMTA0IDAgMTg4LjMgODIuNiAxODguMyAxODQuNSAwIDIwMS4yLTM1NiA0MjkuMy0zNTYgNDI5LjN6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNjc5LjcgMjAxYy03My4xIDAtMTM2LjUgNDAuOC0xNjcuNyAxMDAuNEM0ODAuOCAyNDEuOCA0MTcuNCAyMDEgMzQ0LjMgMjAxYy0xMDQgMC0xODguMyA4Mi42LTE4OC4zIDE4NC41IDAgMjAxLjIgMzU2IDQyOS4zIDM1NiA0MjkuM3MzNTYtMjI4LjEgMzU2LTQyOS4zQzg2OCAyODMuNiA3ODMuNyAyMDEgNjc5LjcgMjAxeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5IaWdobGlnaHRUd29Ub25lID0gZ2V0SWNvbignaGlnaGxpZ2h0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIyOS42IDc5Ni4zaDE2MC4ybDU0LjMtNTQuMS04MC4xLTc4Ljl6bTIyMC43LTM5Ny4xbDI2Mi44IDI1OC45IDE0Ny4zLTE0NS0yNjIuOC0yNTl6bS03Ny4xIDE2Ni4xbDE3MS40IDE2OC45IDY4LjYtNjcuNi0xNzEuNC0xNjguOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTU3LjYgNTA3LjVMNjAzLjIgMTU4LjNhNy45IDcuOSAwIDAgMC0xMS4yIDBMMzUzLjMgMzkzLjVhOC4wMyA4LjAzIDAgMCAwLS4xIDExLjNsLjEuMSA0MCAzOS40LTExNy4yIDExNS4zYTguMDMgOC4wMyAwIDAgMC0uMSAxMS4zbC4xLjEgMzkuNSAzOC45LTE4OS4xIDE4N0g3Mi4xYy00LjQgMC04LjEgMy42LTguMSA4djU1LjJjMCA0LjQgMy42IDggOCA4aDM0NC45YzIuMSAwIDQuMS0uOCA1LjYtMi4zbDc2LjEtNzUuNkw1MzkgODMwYTcuOSA3LjkgMCAwIDAgMTEuMiAwbDExNy4xLTExNS42IDQwLjEgMzkuNWE3LjkgNy45IDAgMCAwIDExLjIgMGwyMzguNy0yMzUuMmMzLjQtMyAzLjQtOCAuMy0xMS4yek0zODkuOCA3OTYuM0gyMjkuNmwxMzQuNC0xMzMgODAuMSA3OC45LTU0LjMgNTQuMXptMTU0LjgtNjIuMUwzNzMuMiA1NjUuM2w2OC42LTY3LjYgMTcxLjQgMTY4LjktNjguNiA2Ny42em0xNjguNS03Ni4xTDQ1MC4zIDM5OS4ybDE0Ny4zLTE0NS4xIDI2Mi44IDI1OS0xNDcuMyAxNDV6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkhvbWVUd29Ub25lID0gZ2V0SWNvbignaG9tZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIuMSAxNzIuNmwtMzcwIDM2OS43aDk2Vjg2OEgzOTJWNjQwYzAtMjIuMSAxNy45LTQwIDQwLTQwaDE2MGMyMi4xIDAgNDAgMTcuOSA0MCA0MHYyMjhoMTUzLjlWNTQyLjNIODgyTDUzNS4yIDE5NS43bC0yMy4xLTIzLjF6bTQzNC41IDQyMi45Yy02IDYtMTMuMSAxMC44LTIwLjggMTMuOSA3LjctMy4yIDE0LjgtNy45IDIwLjgtMTMuOXptLTg4Ny0zNC43YzUgMzAuMyAzMS40IDUzLjUgNjMuMSA1My41aC45Yy0zMS45IDAtNTguOS0yMy02NC01My41em0tLjktMTAuNXYtMS45IDEuOXptLjEtMi42Yy4xLTMuMS41LTYuMSAxLTkuMS0uNiAyLjktLjkgNi0xIDkuMXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTUxIDUxMGMwLS4xLS4xLS4xLS4xLS4ybC0xLjgtMi4xYy0uMS0uMS0uMi0uMy0uNC0uNC0uNy0uOC0xLjUtMS42LTIuMi0yLjRMNTYwLjEgMTE4LjhsLTI1LjktMjUuOWEzMS41IDMxLjUgMCAwIDAtNDQuNCAwTDc3LjUgNTA1YTYzLjYgNjMuNiAwIDAgMC0xNiAyNi42bC0uNiAyLjEtLjMgMS4xLS4zIDEuMmMtLjIuNy0uMyAxLjQtLjQgMi4xIDAgLjEgMCAuMy0uMS40LS42IDMtLjkgNi0xIDkuMXYzLjNjMCAuNSAwIDEgLjEgMS41IDAgLjUgMCAuOS4xIDEuNCAwIC41LjEgMSAuMSAxLjUgMCAuNi4xIDEuMi4yIDEuOCAwIC4zLjEuNi4xLjlsLjMgMi41di4xYzUuMSAzMC41IDMyLjIgNTMuNSA2NCA1My41aDQyLjVWOTQwaDY5MS43VjYxNC4zaDQzLjRjOC42IDAgMTYuOS0xLjcgMjQuNS00LjlzMTQuNy03LjkgMjAuOC0xMy45YTYzLjYgNjMuNiAwIDAgMCAxOC43LTQ1LjNjMC0xNC43LTUtMjguOC0xNC4zLTQwLjJ6TTU2OCA4NjhINDU2VjY2NGgxMTJ2MjA0em0yMTcuOS0zMjUuN1Y4NjhINjMyVjY0MGMwLTIyLjEtMTcuOS00MC00MC00MEg0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwdjIyOEgyMzguMVY1NDIuM2gtOTZsMzcwLTM2OS43IDIzLjEgMjMuMUw4ODIgNTQyLjNoLTk2LjF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkhvdXJnbGFzc1R3b1RvbmUgPSBnZXRJY29uKCdob3VyZ2xhc3MnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDU0OGMtNDIuMiAwLTgxLjkgMTYuNC0xMTEuNyA0Ni4zQTE1Ni42MyAxNTYuNjMgMCAwIDAgMzU0IDcwNnYxMzRoMzE2VjcwNmMwLTQyLjItMTYuNC04MS45LTQ2LjMtMTExLjdBMTU2LjYzIDE1Ni42MyAwIDAgMCA1MTIgNTQ4ek0zNTQgMzE4YzAgNDIuMiAxNi40IDgxLjkgNDYuMyAxMTEuN0M0MzAuMSA0NTkuNiA0NjkuOCA0NzYgNTEyIDQ3NnM4MS45LTE2LjQgMTExLjctNDYuM0M2NTMuNiAzOTkuOSA2NzAgMzYwLjIgNjcwIDMxOFYxODRIMzU0djEzNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzQyIDMxOFYxODRoODZjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThIMTk2Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDg2djEzNGMwIDgxLjUgNDIuNCAxNTMuMiAxMDYuNCAxOTQtNjQgNDAuOC0xMDYuNCAxMTIuNS0xMDYuNCAxOTR2MTM0aC04NmMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGg2MzJjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTg2VjcwNmMwLTgxLjUtNDIuNC0xNTMuMi0xMDYuNC0xOTQgNjQtNDAuOCAxMDYuNC0xMTIuNSAxMDYuNC0xOTR6bS03MiAzODh2MTM0SDM1NFY3MDZjMC00Mi4yIDE2LjQtODEuOSA0Ni4zLTExMS43QzQzMC4xIDU2NC40IDQ2OS44IDU0OCA1MTIgNTQ4czgxLjkgMTYuNCAxMTEuNyA0Ni4zQzY1My42IDYyNC4xIDY3MCA2NjMuOCA2NzAgNzA2em0wLTM4OGMwIDQyLjItMTYuNCA4MS45LTQ2LjMgMTExLjdDNTkzLjkgNDU5LjYgNTU0LjIgNDc2IDUxMiA0NzZzLTgxLjktMTYuNC0xMTEuNy00Ni4zQTE1Ni42MyAxNTYuNjMgMCAwIDEgMzU0IDMxOFYxODRoMzE2djEzNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSHRtbDVUd29Ub25lID0gZ2V0SWNvbignaHRtbDUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTE0NSA5Nmw2NiA3NDYuNkw1MTEuOCA5MjhsMjk5LjYtODUuNEw4NzguNyA5NkgxNDV6bTYxMC45IDcwMC42bC0yNDQuMSA2OS42LTI0NS4yLTY5LjYtNTYuNy02NDEuMmg2MDMuOGwtNTcuOCA2NDEuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMDkuOSAxNTUuNGw1Ni43IDY0MS4yIDI0NS4yIDY5LjYgMjQ0LjEtNjkuNiA1Ny44LTY0MS4ySDIwOS45em01MzAuNCAxMTcuOWwtNC44IDQ3LjItMS43IDE5LjVIMzgxLjdsOC4yIDk0LjJINTExdi0uMmgyMTQuN2wtMy4yIDI0LjMtMjEuMiAyNDIuMi0xLjcgMTYuMy0xODcuNyA1MS43di40aC0xLjdsLTE4OC42LTUyLTExLjMtMTQ0LjdoOTFsNi41IDczLjIgMTAyLjQgMjcuN2guOHYtLjJsMTAyLjQtMjcuNyAxMS40LTExOC41SDUxMS45di4xSDMwNS40bC0yMi43LTI1My41TDI4MSAyNDloNDYxbC0xLjcgMjQuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjgxIDI0OWwxLjcgMjQuMyAyMi43IDI1My41aDIwNi41di0uMWgxMTIuOWwtMTEuNCAxMTguNUw1MTEgNjcyLjl2LjJoLS44bC0xMDIuNC0yNy43LTYuNS03My4yaC05MWwxMS4zIDE0NC43IDE4OC42IDUyaDEuN3YtLjRsMTg3LjctNTEuNyAxLjctMTYuMyAyMS4yLTI0Mi4yIDMuMi0yNC4zSDUxMXYuMkgzODkuOWwtOC4yLTk0LjJoMzUyLjFsMS43LTE5LjUgNC44LTQ3LjJMNzQyIDI0OUg1MTF6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLklkY2FyZFR3b1RvbmUgPSBnZXRJY29uKCdpZGNhcmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNlYyMzJoNzUydjU2MHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xMzYgNzkyaDc1MlYyMzJIMTM2djU2MHptNDcyLTM3MmMwLTQuNCAxLTggMi4zLThoMTIzLjRjMS4zIDAgMi4zIDMuNiAyLjMgOHY0OGMwIDQuNC0xIDgtMi4zIDhINjEwLjNjLTEuMyAwLTIuMy0zLjYtMi4zLTh2LTQ4em0wIDE0NGMwLTQuNCAzLjItOCA3LjEtOGgxODUuN2MzLjkgMCA3LjEgMy42IDcuMSA4djQ4YzAgNC40LTMuMiA4LTcuMSA4SDYxNS4xYy0zLjkgMC03LjEtMy42LTcuMS04di00OHpNMjE2LjIgNjY0LjZjMi44LTUzLjMgMzEuOS05OS42IDc0LjYtMTI2LjEtMTguMS0yMC0yOS4xLTQ2LjQtMjkuMS03NS41IDAtNjEuOSA0OS45LTExMiAxMTEuNC0xMTJzMTExLjQgNTAuMSAxMTEuNCAxMTJjMCAyOS4xLTExIDU1LjYtMjkuMSA3NS41IDQyLjYgMjYuNCA3MS44IDcyLjggNzQuNiAxMjYuMWE4IDggMCAwIDEtOCA4LjRoLTQzLjljLTQuMiAwLTcuNi0zLjMtNy45LTcuNS0zLjgtNTAuNS00Ni05MC41LTk3LjItOTAuNXMtOTMuNCA0MC05Ny4yIDkwLjVjLS4zIDQuMi0zLjcgNy41LTcuOSA3LjVIMjI0Yy00LjYgMC04LjItMy44LTcuOC04LjR6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzIxLjMgNDYzYTUxLjcgNTIgMCAxIDAgMTAzLjQgMCA1MS43IDUyIDAgMSAwLTEwMy40IDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTYxMC4zIDQ3NmgxMjMuNGMxLjMgMCAyLjMtMy42IDIuMy04di00OGMwLTQuNC0xLTgtMi4zLThINjEwLjNjLTEuMyAwLTIuMyAzLjYtMi4zIDh2NDhjMCA0LjQgMSA4IDIuMyA4em00LjggMTQ0aDE4NS43YzMuOSAwIDcuMS0zLjYgNy4xLTh2LTQ4YzAtNC40LTMuMi04LTcuMS04SDYxNS4xYy0zLjkgMC03LjEgMy42LTcuMSA4djQ4YzAgNC40IDMuMiA4IDcuMSA4ek0yMjQgNjczaDQzLjljNC4yIDAgNy42LTMuMyA3LjktNy41IDMuOC01MC41IDQ2LTkwLjUgOTcuMi05MC41czkzLjQgNDAgOTcuMiA5MC41Yy4zIDQuMiAzLjcgNy41IDcuOSA3LjVINTIyYTggOCAwIDAgMCA4LTguNGMtMi44LTUzLjMtMzItOTkuNy03NC42LTEyNi4xYTExMS44IDExMS44IDAgMCAwIDI5LjEtNzUuNWMwLTYxLjktNDkuOS0xMTItMTExLjQtMTEycy0xMTEuNCA1MC4xLTExMS40IDExMmMwIDI5LjEgMTEgNTUuNSAyOS4xIDc1LjVhMTU4LjA5IDE1OC4wOSAwIDAgMC03NC42IDEyNi4xYy0uNCA0LjYgMy4yIDguNCA3LjggOC40em0xNDktMjYyYzI4LjUgMCA1MS43IDIzLjMgNTEuNyA1MnMtMjMuMiA1Mi01MS43IDUyLTUxLjctMjMuMy01MS43LTUyIDIzLjItNTIgNTEuNy01MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuSW5mb0NpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdpbmZvLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTMyIDU4OGMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDU2YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2Mjcyem0tMzItMzQ0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDY0IDMzNmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTcyIDExMmgtNDhjLTQuNCAwLTggMy42LTggOHYyNzJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0NTZjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JbnN1cmFuY2VUd29Ub25lID0gZ2V0SWNvbignaW5zdXJhbmNlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6J1xuICAgIF0sIFtzZWNvbmRhcnlDb2xvciwgJ001MjEuOSAzNTguOGg5Ny45djQxLjZoLTk3Ljl6J10sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNDEzLjMgNjU2aC0uMmMwIDQuNC0zLjYgOC04IDhoLTM3LjNjLTQuNCAwLTgtMy42LTgtOFY0NzEuNGMtNy43IDkuMi0xNS40IDE3LjktMjMuMSAyNmE2LjA0IDYuMDQgMCAwIDEtMTAuMi0yLjRsLTEzLjItNDMuNWMtLjYtMi0uMi00LjEgMS4yLTUuNiAzNy00My40IDY0LjctOTUuMSA4Mi4yLTE1My42IDEuMS0zLjUgNS01LjMgOC40LTMuN2wzOC42IDE4LjNjMi43IDEuMyA0LjEgNC40IDMuMiA3LjJhNDI5LjIgNDI5LjIgMCAwIDEtMzMuNiA3OVY2NTZ6bTI1Ny45LTM0MHYxMjcuMmMwIDQuNC0zLjYgOC04IDhoLTY2Ljd2MTguNmg5OC44YzQuNCAwIDggMy42IDggOHYzNS42YzAgNC40LTMuNiA4LTggOGgtNTljMTguMSAyOS4xIDQxLjggNTQuMyA3Mi4zIDc2LjkgMi42IDIuMSAzLjIgNS45IDEuMiA4LjVsLTI2LjMgMzUuM2E1LjkyIDUuOTIgMCAwIDEtOC45LjdjLTMwLjYtMjkuMy01Ni44LTY1LjItNzguMS0xMDYuOVY2NTZjMCA0LjQtMy42IDgtOCA4aC0zNi4yYy00LjQgMC04LTMuNi04LThWNTM2Yy0yMiA0NC43LTQ5IDgwLjgtODAuNiAxMDcuNmE2LjM4IDYuMzggMCAwIDEtNC44IDEuNGMtMS43LS4zLTMuMi0xLjMtNC4xLTIuOEw0MzIgNjA1LjdhNiA2IDAgMCAxIDEuNi04LjFjMjguNi0yMC4zIDUxLjktNDUuMiA3MS03NmgtNTUuMWMtNC40IDAtOC0zLjYtOC04VjQ3OGMwLTQuNCAzLjYtOCA4LThoOTQuOXYtMTguNmgtNjUuOWMtNC40IDAtOC0zLjYtOC04VjMxNmMwLTQuNCAzLjYtOCA4LThoMTg0LjdjNC40IDAgOCAzLjYgOCA4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000NDMuNyAzMDYuOWwtMzguNi0xOC4zYy0zLjQtMS42LTcuMy4yLTguNCAzLjctMTcuNSA1OC41LTQ1LjIgMTEwLjItODIuMiAxNTMuNmE1LjcgNS43IDAgMCAwLTEuMiA1LjZsMTMuMiA0My41YzEuNCA0LjUgNyA1LjggMTAuMiAyLjQgNy43LTguMSAxNS40LTE2LjggMjMuMS0yNlY2NTZjMCA0LjQgMy42IDggOCA4aDM3LjNjNC40IDAgOC0zLjYgOC04aC4yVjM5My4xYTQyOS4yIDQyOS4yIDAgMCAwIDMzLjYtNzljLjktMi44LS41LTUuOS0zLjItNy4yem0yNi44IDkuMXYxMjcuNGMwIDQuNCAzLjYgOCA4IDhoNjUuOVY0NzBoLTk0LjljLTQuNCAwLTggMy42LTggOHYzNS42YzAgNC40IDMuNiA4IDggOGg1NS4xYy0xOS4xIDMwLjgtNDIuNCA1NS43LTcxIDc2YTYgNiAwIDAgMC0xLjYgOC4xbDIyLjggMzYuNWMuOSAxLjUgMi40IDIuNSA0LjEgMi44IDEuNy4zIDMuNS0uMiA0LjgtMS40IDMxLjYtMjYuOCA1OC42LTYyLjkgODAuNi0xMDcuNnYxMjBjMCA0LjQgMy42IDggOCA4aDM2LjJjNC40IDAgOC0zLjYgOC04VjUzNS45YzIxLjMgNDEuNyA0Ny41IDc3LjYgNzguMSAxMDYuOSAyLjYgMi41IDYuNyAyLjIgOC45LS43bDI2LjMtMzUuM2MyLTIuNiAxLjQtNi40LTEuMi04LjUtMzAuNS0yMi42LTU0LjItNDcuOC03Mi4zLTc2LjloNTljNC40IDAgOC0zLjYgOC04di0zNS42YzAtNC40LTMuNi04LTgtOGgtOTguOHYtMTguNmg2Ni43YzQuNCAwIDgtMy42IDgtOFYzMTZjMC00LjQtMy42LTgtOC04SDQ3OC41Yy00LjQgMC04IDMuNi04IDh6bTUxLjQgNDIuOGg5Ny45djQxLjZoLTk3Ljl2LTQxLjZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkludGVyYWN0aW9uVHdvVG9uZSA9IGdldEljb24oJ2ludGVyYWN0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xMTQtNDAxLjljMC01NS4zIDQ0LjYtMTAwLjEgOTkuNy0xMDAuMWgyMDUuOHYtNTMuNGMwLTUuNiA2LjUtOC44IDEwLjktNS4zTDcyMy41IDM2NWMzLjUgMi43IDMuNSA4IDAgMTAuN2wtMTA5LjEgODUuN2MtNC40IDMuNS0xMC45LjQtMTAuOS01LjN2LTUzLjRIMzk3LjhjLTE5LjYgMC0zNS41IDE1LjktMzUuNSAzNS42djc4LjljMCAzLjgtMy4xIDYuOC02LjggNi44aC01MC43Yy0zLjggMC02LjgtMy02LjgtN3YtNzguOXptMi42IDIxMC4zbDEwOS4xLTg1LjdjNC40LTMuNSAxMC45LS40IDEwLjkgNS4zdjUzLjRoMjA1LjZjMTkuNiAwIDM1LjUtMTUuOSAzNS41LTM1LjZ2LTc4LjljMC0zLjggMy4xLTYuOCA2LjgtNi44aDUwLjdjMy44IDAgNi44IDMuMSA2LjggNi44djc4LjljMCA1NS4zLTQ0LjYgMTAwLjEtOTkuNyAxMDAuMUg0MjAuNnY1My40YzAgNS42LTYuNSA4LjgtMTAuOSA1LjNsLTEwOS4xLTg1LjdjLTMuNS0yLjctMy41LTggMC0xMC41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDQuOCA1MjRoNTAuN2MzLjcgMCA2LjgtMyA2LjgtNi44di03OC45YzAtMTkuNyAxNS45LTM1LjYgMzUuNS0zNS42aDIwNS43djUzLjRjMCA1LjcgNi41IDguOCAxMC45IDUuM2wxMDkuMS04NS43YzMuNS0yLjcgMy41LTggMC0xMC43bC0xMDkuMS04NS43Yy00LjQtMy41LTEwLjktLjMtMTAuOSA1LjNWMzM4SDM5Ny43Yy01NS4xIDAtOTkuNyA0NC44LTk5LjcgMTAwLjFWNTE3YzAgNCAzIDcgNi44IDd6bS00LjIgMTM0LjlsMTA5LjEgODUuN2M0LjQgMy41IDEwLjkuMyAxMC45LTUuM3YtNTMuNGgyMDUuN2M1NS4xIDAgOTkuNy00NC44IDk5LjctMTAwLjF2LTc4LjljMC0zLjctMy02LjgtNi44LTYuOGgtNTAuN2MtMy43IDAtNi44IDMtNi44IDYuOHY3OC45YzAgMTkuNy0xNS45IDM1LjYtMzUuNSAzNS42SDQyMC42VjU2OGMwLTUuNy02LjUtOC44LTEwLjktNS4zbC0xMDkuMSA4NS43Yy0zLjUgMi41LTMuNSA3LjggMCAxMC41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5JbnRlcmF0aW9uVHdvVG9uZSA9IGdldEljb24oJ2ludGVyYXRpb24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTExNC00MDEuOWMwLTU1LjMgNDQuNi0xMDAuMSA5OS43LTEwMC4xaDIwNS44di01My40YzAtNS42IDYuNS04LjggMTAuOS01LjNMNzIzLjUgMzY1YzMuNSAyLjcgMy41IDggMCAxMC43bC0xMDkuMSA4NS43Yy00LjQgMy41LTEwLjkuNC0xMC45LTUuM3YtNTMuNEgzOTcuOGMtMTkuNiAwLTM1LjUgMTUuOS0zNS41IDM1LjZ2NzguOWMwIDMuOC0zLjEgNi44LTYuOCA2LjhoLTUwLjdjLTMuOCAwLTYuOC0zLTYuOC03di03OC45em0yLjYgMjEwLjNsMTA5LjEtODUuN2M0LjQtMy41IDEwLjktLjQgMTAuOSA1LjN2NTMuNGgyMDUuNmMxOS42IDAgMzUuNS0xNS45IDM1LjUtMzUuNnYtNzguOWMwLTMuOCAzLjEtNi44IDYuOC02LjhoNTAuN2MzLjggMCA2LjggMy4xIDYuOCA2Ljh2NzguOWMwIDU1LjMtNDQuNiAxMDAuMS05OS43IDEwMC4xSDQyMC42djUzLjRjMCA1LjYtNi41IDguOC0xMC45IDUuM2wtMTA5LjEtODUuN2MtMy41LTIuNy0zLjUtOCAwLTEwLjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTMwNC44IDUyNGg1MC43YzMuNyAwIDYuOC0zIDYuOC02Ljh2LTc4LjljMC0xOS43IDE1LjktMzUuNiAzNS41LTM1LjZoMjA1Ljd2NTMuNGMwIDUuNyA2LjUgOC44IDEwLjkgNS4zbDEwOS4xLTg1LjdjMy41LTIuNyAzLjUtOCAwLTEwLjdsLTEwOS4xLTg1LjdjLTQuNC0zLjUtMTAuOS0uMy0xMC45IDUuM1YzMzhIMzk3LjdjLTU1LjEgMC05OS43IDQ0LjgtOTkuNyAxMDAuMVY1MTdjMCA0IDMgNyA2LjggN3ptLTQuMiAxMzQuOWwxMDkuMSA4NS43YzQuNCAzLjUgMTAuOS4zIDEwLjktNS4zdi01My40aDIwNS43YzU1LjEgMCA5OS43LTQ0LjggOTkuNy0xMDAuMXYtNzguOWMwLTMuNy0zLTYuOC02LjgtNi44aC01MC43Yy0zLjcgMC02LjggMy02LjggNi44djc4LjljMCAxOS43LTE1LjkgMzUuNi0zNS41IDM1LjZINDIwLjZWNTY4YzAtNS43LTYuNS04LjgtMTAuOS01LjNsLTEwOS4xIDg1LjdjLTMuNSAyLjUtMy41IDcuOCAwIDEwLjV6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkxheW91dFR3b1RvbmUgPSBnZXRJY29uKCdsYXlvdXQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzg0IDE4NWg0NTZ2MTM2SDM4NHptLTIwMCAwaDEzNnY2NTZIMTg0em02OTYtNzNIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDczNmMxNy43IDAgMzIgMTQuMyAzMiAzMnYtMWMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzg0IDM4NWg0NTZ2NDU2SDM4NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExM0gxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ1YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMjAgODQxSDE4NFYxODVoMTM2djY1NnptNTIwIDBIMzg0VjM4NWg0NTZ2NDU2em0wLTUyMEgzODRWMTg1aDQ1NnYxMzZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkxlZnRDaXJjbGVUd29Ub25lID0gZ2V0SWNvbignbGVmdC1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTA0IDI0MC45YzAgMTAuMy00LjkgMTkuOS0xMy4yIDI1LjlMNDU3LjQgNTEybDE0NS40IDEwNS4xYzguMyA2IDEzLjIgMTUuNyAxMy4yIDI1Ljl2NDYuOWMwIDYuNS03LjQgMTAuMy0xMi43IDYuNWwtMjQ2LTE3OGE3Ljk1IDcuOTUgMCAwIDEgMC0xMi45bDI0Ni0xNzhjNS4zLTMuOCAxMi43IDAgMTIuNyA2LjV2NDYuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002MDMuMyAzMjcuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwIDAgMCAxMi45bDI0NiAxNzhjNS4zIDMuOCAxMi43IDAgMTIuNy02LjVWNjQzYzAtMTAuMi00LjktMTkuOS0xMy4yLTI1LjlMNDU3LjQgNTEybDE0NS40LTEwNS4yYzguMy02IDEzLjItMTUuNiAxMy4yLTI1LjlWMzM0YzAtNi41LTcuNC0xMC4zLTEyLjctNi41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MZWZ0U3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ2xlZnQtc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0xODEuMy0zMzQuNWwyNDYtMTc4YzUuMy0zLjggMTIuNyAwIDEyLjcgNi41djQ2LjljMCAxMC4zLTQuOSAxOS45LTEzLjIgMjUuOUw0NjUuNCA1MTJsMTQ1LjQgMTA1LjJjOC4zIDYgMTMuMiAxNS43IDEzLjIgMjUuOVY2OTBjMCA2LjUtNy40IDEwLjMtMTIuNyA2LjRsLTI0Ni0xNzhhNy45NSA3Ljk1IDAgMCAxIDAtMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzY1LjMgNTE4LjRsMjQ2IDE3OGM1LjMgMy45IDEyLjcuMSAxMi43LTYuNHYtNDYuOWMwLTEwLjItNC45LTE5LjktMTMuMi0yNS45TDQ2NS40IDUxMmwxNDUuNC0xMDUuMmM4LjMtNiAxMy4yLTE1LjYgMTMuMi0yNS45VjMzNGMwLTYuNS03LjQtMTAuMy0xMi43LTYuNWwtMjQ2IDE3OGE3Ljk1IDcuOTUgMCAwIDAgMCAxMi45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5MaWtlVHdvVG9uZSA9IGdldEljb24oJ2xpa2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjczIDQ5NS45djQyOGwuMy00Mjh6bTUzOC4yLTg4LjNINDk2LjhsOS42LTE5OC40Yy42LTExLjktNC43LTIzLjEtMTQuNi0zMC41LTYuMS00LjUtMTMuNi02LjgtMjEuMS02LjctMTkuNi4xLTM2LjkgMTMuNC00Mi4yIDMyLjMtMzcuMSAxMzQuNC02NC45IDIzNS4yLTgzLjUgMzAyLjVWODUyaDM5OS40YTU2Ljg1IDU2Ljg1IDAgMCAwIDMzLjYtNTEuOGMwLTkuNy0yLjMtMTguOS02LjktMjcuM2wtMTMuOS0yNS40IDIxLjktMTlhNTYuNzYgNTYuNzYgMCAwIDAgMTkuNi00M2MwLTkuNy0yLjMtMTguOS02LjktMjcuM2wtMTMuOS0yNS40IDIxLjktMTlhNTYuNzYgNTYuNzYgMCAwIDAgMTkuNi00M2MwLTkuNy0yLjMtMTguOS02LjktMjcuM2wtMTQtMjUuNSAyMS45LTE5YTU2Ljc2IDU2Ljc2IDAgMCAwIDE5LjYtNDNjMC0xOS4xLTExLTM3LjUtMjguOC00OC40eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00xMTIgNTI4djM2NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NVY0OTZoLTY1Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnptNzczLjkgNS43YzE2LjgtMjIuMiAyNi4xLTQ5LjQgMjYuMS03Ny43IDAtNDQuOS0yNS4xLTg3LjUtNjUuNS0xMTFhNjcuNjcgNjcuNjcgMCAwIDAtMzQuMy05LjNINTcyLjNsNi0xMjIuOWMxLjUtMjkuNy05LTU3LjktMjkuNS03OS40YTEwNi40IDEwNi40IDAgMCAwLTc3LjktMzMuNGMtNTIgMC05OCAzNS0xMTEuOCA4NS4xbC04NS44IDMxMC44LS4zIDQyOGg0NzIuMWM5LjMgMCAxOC4yLTEuOCAyNi41LTUuNCA0Ny42LTIwLjMgNzguMy02Ni44IDc4LjMtMTE4LjQgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzcgMTYuOC0yMi4yIDI2LjEtNDkuNCAyNi4xLTc3LjcgMC0xMi42LTEuOC0yNS01LjQtMzd6TTgyMC40IDQ5OWwtMjEuOSAxOSAxNCAyNS41YTU2LjIgNTYuMiAwIDAgMSA2LjkgMjcuM2MwIDE2LjUtNy4xIDMyLjItMTkuNiA0M2wtMjEuOSAxOSAxMy45IDI1LjRhNTYuMiA1Ni4yIDAgMCAxIDYuOSAyNy4zYzAgMTYuNS03LjEgMzIuMi0xOS42IDQzbC0yMS45IDE5IDEzLjkgMjUuNGE1Ni4yIDU2LjIgMCAwIDEgNi45IDI3LjNjMCAyMi40LTEzLjIgNDIuNi0zMy42IDUxLjhIMzQ1VjUwNi44YzE4LjYtNjcuMiA0Ni40LTE2OCA4My41LTMwMi41YTQ0LjI4IDQ0LjI4IDAgMCAxIDQyLjItMzIuM2M3LjUtLjEgMTUgMi4yIDIxLjEgNi43IDkuOSA3LjQgMTUuMiAxOC42IDE0LjYgMzAuNWwtOS42IDE5OC40aDMxNC40QzgyOSA0MTguNSA4NDAgNDM2LjkgODQwIDQ1NmMwIDE2LjUtNy4xIDMyLjItMTkuNiA0M3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTG9ja1R3b1RvbmUgPSBnZXRJY29uKCdsb2NrJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNDY0aC02OFYyNDBjMC03MC43LTU3LjMtMTI4LTEyOC0xMjhIMzg4Yy03MC43IDAtMTI4IDU3LjMtMTI4IDEyOHYyMjRoLTY4Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzODRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpNMzMyIDI0MGMwLTMwLjkgMjUuMS01NiA1Ni01NmgyNDhjMzAuOSAwIDU2IDI1LjEgNTYgNTZ2MjI0SDMzMlYyNDB6bTQ2MCA2MDBIMjMyVjUzNmg1NjB2MzA0eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA4NDBoNTYwVjUzNkgyMzJ2MzA0em0yODAtMjI2YTQ4LjAxIDQ4LjAxIDAgMCAxIDI4IDg3djUzYzAgNC40LTMuNiA4LTggOGgtNDBjLTQuNCAwLTgtMy42LTgtOHYtNTNhNDguMDEgNDguMDEgMCAwIDEgMjgtODd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxIDAtNTYgMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWFpbFR3b1RvbmUgPSBnZXRJY29uKCdtYWlsJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ3Ny41IDUzNi4zTDEzNS45IDI3MC43bC0yNy41LTIxLjQgMjcuNiAyMS41Vjc5Mmg3NTJWMjcwLjhMNTQ2LjIgNTM2LjNhNTUuOTkgNTUuOTkgMCAwIDEtNjguNyAweidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNODc2LjMgMTk4LjhsMzkuMyA1MC41LTI3LjYgMjEuNSAyNy43LTIxLjUtMzkuMy01MC41eiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MjggMTYwSDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NDBjMCAxNy43IDE0LjMgMzIgMzIgMzJoODMyYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE5MmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTk0LjUgNzIuMUw1MTIgNDgyIDE5MC41IDIzMi4xaDY0M3ptNTQuNSAzOC43Vjc5MkgxMzZWMjcwLjhsLTI3LjYtMjEuNSAyNy41IDIxLjQgMzQxLjYgMjY1LjZhNTUuOTkgNTUuOTkgMCAwIDAgNjguNyAwTDg4OCAyNzAuOGwyNy42LTIxLjUtMzkuMy01MC41aC4xbDM5LjMgNTAuNS0yNy43IDIxLjV6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLk1lZGljaW5lQm94VHdvVG9uZSA9IGdldEljb24oJ21lZGljaW5lLWJveCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNDQuMyAzMjhMMTg0IDUxMy40Vjg0MGg2NTZWNTEzLjRMNzc5LjcgMzI4SDI0NC4zek02NjAgNjI4YzAgNC40LTMuNiA4LTggOEg1NDR2MTA4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY2MzZIMzcyYy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxMDhWNDY0YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTA4aDEwOGM0LjQgMCA4IDMuNiA4IDh2NDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY1MiA1NzJINTQ0VjQ2NGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTA4SDM3MmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxMDh2MTA4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNjM2aDEwOGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODM5LjIgMjc4LjFhMzIgMzIgMCAwIDAtMzAuNC0yMi4xSDczNlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMzIwYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMTJoLTcyLjhhMzEuOSAzMS45IDAgMCAwLTMwLjQgMjIuMUwxMTIgNTAydjM3OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTAybC03Mi44LTIyMy45ek0zNjAgMTg0aDMwNHY3MkgzNjB2LTcyem00ODAgNjU2SDE4NFY1MTMuNEwyNDQuMyAzMjhoNTM1LjRMODQwIDUxMy40Vjg0MHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuTWVoVHdvVG9uZSA9IGdldEljb24oJ21laCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6TTI4OCA0MjFhNDguMDEgNDguMDEgMCAwIDEgOTYgMCA0OC4wMSA0OC4wMSAwIDAgMS05NiAwem0zODQgMjAwYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDMwNGM0LjQgMCA4IDMuNiA4IDh2NDh6bTE2LTE1MmE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4OCA0MjFhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAwem0zNzYgMTQ0SDM2MGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgzMDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bS0yNC0xNDRhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5NZXNzYWdlVHdvVG9uZSA9IGdldEljb24oJ21lc3NhZ2UnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzc1LjMgMjQ4LjlhMzY5LjYyIDM2OS42MiAwIDAgMC0xMTktODBBMzcwLjIgMzcwLjIgMCAwIDAgNTEyLjEgMTQwaC0xLjdjLTk5LjcuNC0xOTMgMzkuNC0yNjIuOCAxMDkuOS02OS45IDcwLjUtMTA4IDE2NC4xLTEwNy42IDI2My44LjMgNjAuMyAxNS4zIDEyMC4yIDQzLjUgMTczLjFsNC41IDguNFY4MzZoMTQwLjhsOC40IDQuNWM1Mi45IDI4LjIgMTEyLjggNDMuMiAxNzMuMSA0My41aDEuN2M5OSAwIDE5Mi0zOC4yIDI2Mi4xLTEwNy42IDcwLjQtNjkuOCAxMDkuNS0xNjMuMSAxMTAuMS0yNjIuNy4yLTUwLjYtOS41LTk5LjYtMjguOS0xNDUuOGEzNzAuMTUgMzcwLjE1IDAgMCAwLTgwLTExOXpNMzEyIDU2MGE0OC4wMSA0OC4wMSAwIDAgMSAwLTk2IDQ4LjAxIDQ4LjAxIDAgMCAxIDAgOTZ6bTIwMCAwYTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnptMjAwIDBhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ002NjQgNTEyYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHptLTQwMCAwYTQ4IDQ4IDAgMSAwIDk2IDAgNDggNDggMCAxIDAtOTYgMHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI1LjIgMzM4LjRjLTIyLjYtNTMuNy01NS0xMDEuOS05Ni4zLTE0My4zYTQ0NC4zNSA0NDQuMzUgMCAwIDAtMTQzLjMtOTYuM0M2MzAuNiA3NS43IDU3Mi4yIDY0IDUxMiA2NGgtMmMtNjAuNi4zLTExOS4zIDEyLjMtMTc0LjUgMzUuOWE0NDUuMzUgNDQ1LjM1IDAgMCAwLTE0MiA5Ni41Yy00MC45IDQxLjMtNzMgODkuMy05NS4yIDE0Mi44LTIzIDU1LjQtMzQuNiAxMTQuMy0zNC4zIDE3NC45QTQ0OS40IDQ0OS40IDAgMCAwIDExMiA3MTR2MTUyYTQ2IDQ2IDAgMCAwIDQ2IDQ2aDE1Mi4xQTQ0OS40IDQ0OS40IDAgMCAwIDUxMCA5NjBoMi4xYzU5LjkgMCAxMTgtMTEuNiAxNzIuNy0zNC4zYTQ0NC40OCA0NDQuNDggMCAwIDAgMTQyLjgtOTUuMmM0MS4zLTQwLjkgNzMuOC04OC43IDk2LjUtMTQyIDIzLjYtNTUuMiAzNS42LTExMy45IDM1LjktMTc0LjUuMy02MC45LTExLjUtMTIwLTM0LjgtMTc1LjZ6bS0xNTEuMSA0MzhDNzA0IDg0NS44IDYxMSA4ODQgNTEyIDg4NGgtMS43Yy02MC4zLS4zLTEyMC4yLTE1LjMtMTczLjEtNDMuNWwtOC40LTQuNUgxODhWNjk1LjJsLTQuNS04LjRDMTU1LjMgNjMzLjkgMTQwLjMgNTc0IDE0MCA1MTMuN2MtLjQtOTkuNyAzNy43LTE5My4zIDEwNy42LTI2My44IDY5LjgtNzAuNSAxNjMuMS0xMDkuNSAyNjIuOC0xMDkuOWgxLjdjNTAgMCA5OC41IDkuNyAxNDQuMiAyOC45IDQ0LjYgMTguNyA4NC42IDQ1LjYgMTE5IDgwIDM0LjMgMzQuMyA2MS4zIDc0LjQgODAgMTE5IDE5LjQgNDYuMiAyOS4xIDk1LjIgMjguOSAxNDUuOC0uNiA5OS42LTM5LjcgMTkyLjktMTEwLjEgMjYyLjd6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNDY0IDUxMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J10pO1xufSk7XG5leHBvcnRzLk1pbnVzQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ21pbnVzLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE5MiAzOTZjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMzY4YzQuNCAwIDggMy42IDggOHY0OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjk2IDQ4MEgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5NaW51c1NxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdtaW51cy1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTEzNi0zNTJjMC00LjQgMy42LTggOC04aDM2OGM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4SDMyOGMtNC40IDAtOC0zLjYtOC04di00OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzI4IDU0NGgzNjhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzI4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Nb2JpbGVUd29Ub25lID0gZ2V0SWNvbignbW9iaWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003NDQgNjRIMjgwYy0zNS4zIDAtNjQgMjguNy02NCA2NHY3NjhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNDY0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjEyOGMwLTM1LjMtMjguNy02NC02NC02NHptLTggODI0SDI4OFYxMzZoNDQ4djc1MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yODggODg4aDQ0OFYxMzZIMjg4djc1MnptMjI0LTE0MmMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6J1xuICAgIF0sIFtwcmltYXJ5Q29sb3IsICdNNDcyIDc4NmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6J10pO1xufSk7XG5leHBvcnRzLlBhdXNlQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BhdXNlLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bS04MCA1MjRjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHptMjI0IDBjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04VjM2MGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djMwNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDI0IDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04em0yMjQgMGgtNDhjLTQuNCAwLTggMy42LTggOHYzMDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Nb25leUNvbGxlY3RUd29Ub25lID0gZ2V0SWNvbignbW9uZXktY29sbGVjdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yNTYgNzQ0LjRsMjU2IDkzLjEgMjU2LTkzLjFWMTg0SDI1NnY1NjAuNHpNMzU5LjcgMzEzYzEuMi0uNyAyLjUtMSAzLjgtMWg1NS43YTggOCAwIDAgMSA3LjEgNC40TDUxMSA0ODUuMmgzLjNMNTk5IDMxNi40YzEuMy0yLjcgNC4xLTQuNCA3LjEtNC40aDU0LjVjNC40IDAgOCAzLjYgOC4xIDcuOSAwIDEuMy0uNCAyLjYtMSAzLjhMNTY0IDUxNS4zaDU3LjZjNC40IDAgOCAzLjYgOCA4djI3LjFjMCA0LjQtMy42IDgtOCA4aC03Ni4zdjM5aDc2LjNjNC40IDAgOCAzLjYgOCA4djI3LjFjMCA0LjQtMy42IDgtOCA4aC03Ni4zVjcwNGMwIDQuNC0zLjYgOC04IDhoLTQ5LjljLTQuNCAwLTgtMy42LTgtOHYtNjMuNGgtNzZjLTQuNCAwLTgtMy42LTgtOHYtMjcuMWMwLTQuNCAzLjYtOCA4LThoNzZ2LTM5aC03NmMtNC40IDAtOC0zLjYtOC04di0yNy4xYzAtNC40IDMuNi04IDgtOGg1N0wzNTYuNSAzMjMuOGMtMi4xLTMuOC0uNy04LjcgMy4yLTEwLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkxMS41IDcwMC43YTggOCAwIDAgMC0xMC4zLTQuOEw4NDAgNzE4LjJWMTgwYzAtMzcuNi0zMC40LTY4LTY4LTY4SDI1MmMtMzcuNiAwLTY4IDMwLjQtNjggNjh2NTM4LjJsLTYxLjMtMjIuM2MtLjktLjMtMS44LS41LTIuNy0uNS00LjQgMC04IDMuNi04IDhWNzYzYzAgMy4zIDIuMSA2LjMgNS4zIDcuNUw1MDEgOTEwLjFjNy4xIDIuNiAxNC44IDIuNiAyMS45IDBsMzgzLjgtMTM5LjVjMy4yLTEuMiA1LjMtNC4yIDUuMy03LjV2LTU5LjZjMC0xLS4yLTEuOS0uNS0yLjh6TTc2OCA3NDQuNGwtMjU2IDkzLjEtMjU2LTkzLjFWMTg0aDUxMnY1NjAuNHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDYwLjQgNTE1LjRoLTU3Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZ2MzloLTc2Yy00LjQgMC04IDMuNi04IDh2MjcuMWMwIDQuNCAzLjYgOCA4IDhoNzZWNzA0YzAgNC40IDMuNiA4IDggOGg0OS45YzQuNCAwIDgtMy42IDgtOHYtNjMuNWg3Ni4zYzQuNCAwIDgtMy42IDgtOHYtMjcuMWMwLTQuNC0zLjYtOC04LThoLTc2LjN2LTM5aDc2LjNjNC40IDAgOC0zLjYgOC04di0yNy4xYzAtNC40LTMuNi04LTgtOEg1NjRsMTAzLjctMTkxLjZjLjYtMS4yIDEtMi41IDEtMy44LS4xLTQuMy0zLjctNy45LTguMS03LjloLTU0LjVjLTMgMC01LjggMS43LTcuMSA0LjRsLTg0LjcgMTY4LjhINTExbC04NC43LTE2OC44YTggOCAwIDAgMC03LjEtNC40aC01NS43Yy0xLjMgMC0yLjYuMy0zLjggMS0zLjkgMi4xLTUuMyA3LTMuMiAxMC44bDEwMy45IDE5MS42eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ob3RpZmljYXRpb25Ud29Ub25lID0gZ2V0SWNvbignbm90aWZpY2F0aW9uJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIyOS42IDY3OC4xYy0zLjcgMTEuNi01LjYgMjMuOS01LjYgMzYuNCAwLTEyLjUgMi0yNC44IDUuNy0zNi40aC0uMXptNzYuMy0yNjAuMkgxODR2MTg4LjJoMTIxLjlsMTIuOSA1LjJMODQwIDgyMC43VjIwMy4zTDMxOC44IDQxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEyYy0zLjggMC03LjcuNy0xMS42IDIuM0wyOTIgMzQ1LjlIMTI4Yy04LjggMC0xNiA3LjQtMTYgMTYuNnYyOTljMCA5LjIgNy4yIDE2LjYgMTYgMTYuNmgxMDEuN2MtMy43IDExLjYtNS43IDIzLjktNS43IDM2LjQgMCA2NS45IDUzLjggMTE5LjUgMTIwIDExOS41IDU1LjQgMCAxMDIuMS0zNy42IDExNS45LTg4LjRsNDA4LjYgMTY0LjJjMy45IDEuNSA3LjggMi4zIDExLjYgMi4zIDE2LjkgMCAzMi0xNC4yIDMyLTMzLjJWMTQ1LjJDOTEyIDEyNi4yIDg5NyAxMTIgODgwIDExMnpNMzQ0IDc2Mi4zYy0yNi41IDAtNDgtMjEuNC00OC00Ny44IDAtMTEuMiAzLjktMjEuOSAxMS0zMC40bDg0LjkgMzQuMWMtMiAyNC42LTIyLjcgNDQuMS00Ny45IDQ0LjF6bTQ5NiA1OC40TDMxOC44IDYxMS4zbC0xMi45LTUuMkgxODRWNDE3LjloMTIxLjlsMTIuOS01LjJMODQwIDIwMy4zdjYxNy40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QaG9uZVR3b1RvbmUgPSBnZXRJY29uKCdwaG9uZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ003MjEuNyAxODQuOUw2MTAuOSAyOTUuOGwxMjAuOCAxMjAuNy04IDIxLjZBNDgxLjI5IDQ4MS4yOSAwIDAgMSA0MzggNzIzLjlsLTIxLjYgOC0uOS0uOS0xMTkuOC0xMjAtMTEwLjggMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC43IDI2IDE1LjcgNDAuOCAxMy4yIDExNy45LTE5LjUgMjM1LjQtODIuOSAzMzAuOS0xNzguNHMxNTguOS0yMTMuMSAxNzguNC0zMzFjMi41LTE0LjgtMi41LTMwLTEzLjMtNDAuOEw3MjEuNyAxODQuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODc3LjEgMjM4LjdMNzcwLjYgMTMyLjNjLTEzLTEzLTMwLjQtMjAuMy00OC44LTIwLjNzLTM1LjggNy4yLTQ4LjggMjAuM0w1NTguMyAyNDYuOGMtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDg5LjYgODkuN2E0MDUuNDYgNDA1LjQ2IDAgMCAxLTg2LjQgMTI3LjNjLTM2LjcgMzYuOS03OS42IDY2LTEyNy4yIDg2LjZsLTg5LjYtODkuN2MtMTMtMTMtMzAuNC0yMC4zLTQ4LjgtMjAuM2E2OC4yIDY4LjIgMCAwIDAtNDguOCAyMC4zTDEzMi4zIDY3M2MtMTMgMTMtMjAuMyAzMC41LTIwLjMgNDguOSAwIDE4LjUgNy4yIDM1LjggMjAuMyA0OC45bDEwNi40IDEwNi40YzIyLjIgMjIuMiA1Mi44IDM0LjkgODQuMiAzNC45IDYuNSAwIDEyLjgtLjUgMTkuMi0xLjYgMTMyLjQtMjEuOCAyNjMuOC05Mi4zIDM2OS45LTE5OC4zQzgxOCA2MDYgODg4LjQgNDc0LjYgOTEwLjQgMzQyLjFjNi4zLTM3LjYtNi4zLTc2LjMtMzMuMy0xMDMuNHptLTM3LjYgOTEuNWMtMTkuNSAxMTcuOS04Mi45IDIzNS41LTE3OC40IDMzMXMtMjEzIDE1OC45LTMzMC45IDE3OC40Yy0xNC44IDIuNS0zMC0yLjUtNDAuOC0xMy4yTDE4NC45IDcyMS45IDI5NS43IDYxMWwxMTkuOCAxMjAgLjkuOSAyMS42LThhNDgxLjI5IDQ4MS4yOSAwIDAgMCAyODUuNy0yODUuOGw4LTIxLjYtMTIwLjgtMTIwLjcgMTEwLjgtMTEwLjkgMTA0LjUgMTA0LjVjMTAuOCAxMC44IDE1LjggMjYgMTMuMyA0MC44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QaWN0dXJlVHdvVG9uZSA9IGdldEljb24oJ3BpY3R1cmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNnYtMzkuOWwxMzguNS0xNjQuMyAxNTAuMSAxNzhMNjU4LjEgNDg5IDg4OCA3NjEuNlY3OTJ6bTAtMTI5LjhMNjY0LjIgMzk2LjhjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDQyNC42IDY2Ni40bC0xNDQtMTcwLjdjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDEzNiA2NTIuN1YyMzJoNzUydjQzMC4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQyNC42IDc2NS44bC0xNTAuMS0xNzhMMTM2IDc1Mi4xVjc5Mmg3NTJ2LTMwLjRMNjU4LjEgNDg5eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTEzNiA2NTIuN2wxMzIuNC0xNTdjMy4yLTMuOCA5LTMuOCAxMi4yIDBsMTQ0IDE3MC43TDY1MiAzOTYuOGMzLjItMy44IDktMy44IDEyLjIgMEw4ODggNjYyLjJWMjMySDEzNnY0MjAuN3pNMzA0IDI4MGE4OCA4OCAwIDEgMSAwIDE3NiA4OCA4OCAwIDAgMSAwLTE3NnonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTI3NiAzNjhhMjggMjggMCAxIDAgNTYgMCAyOCAyOCAwIDEgMC01NiAweiddLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMDQgNDU2YTg4IDg4IDAgMSAwIDAtMTc2IDg4IDg4IDAgMCAwIDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlBsYXlDaXJjbGVUd29Ub25lID0gZ2V0SWNvbigncGxheS1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNjQuMSAzNzguMkw0NTcuNyA2NzcuMWE4LjAyIDguMDIgMCAwIDEtMTIuNy02LjVWMzUzYTggOCAwIDAgMSAxMi43LTYuNWwyMTguNCAxNTguOGE3LjkgNy45IDAgMCAxIDAgMTIuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjc2LjEgNTA1LjNMNDU3LjcgMzQ2LjVBOCA4IDAgMCAwIDQ0NSAzNTN2MzE3LjZhOC4wMiA4LjAyIDAgMCAwIDEyLjcgNi41bDIxOC40LTE1OC45YTcuOSA3LjkgMCAwIDAgMC0xMi45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QbGF5U3F1YXJlVHdvVG9uZSA9IGdldEljb24oJ3BsYXktc3F1YXJlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0yNDAtNDg0LjdjMC05LjQgMTAuOS0xNC43IDE4LjMtOC44bDE5OS40IDE1Ni43YTExLjIgMTEuMiAwIDAgMSAwIDE3LjZMNDQyLjMgNjc3LjZjLTcuNCA1LjgtMTguMy42LTE4LjMtOC44VjM1NS4zeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000NDIuMyA2NzcuNmwxOTkuNC0xNTYuOGExMS4yIDExLjIgMCAwIDAgMC0xNy42TDQ0Mi4zIDM0Ni41Yy03LjQtNS45LTE4LjMtLjYtMTguMyA4Ljh2MzEzLjVjMCA5LjQgMTAuOSAxNC42IDE4LjMgOC44eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QaWVDaGFydFR3b1RvbmUgPSBnZXRJY29uKCdwaWUtY2hhcnQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzE2LjIgOTIwLjVjLTQ3LjYtMjAuMS05MC40LTQ5LTEyNy4xLTg1LjdhMzk4LjE5IDM5OC4xOSAwIDAgMS04NS43LTEyNy4xQTM5Ny4xMiAzOTcuMTIgMCAwIDEgNzIgNTUyLjJ2LjJhMzk4LjU3IDM5OC41NyAwIDAgMCAxMTcgMjgyLjVjMzYuNyAzNi43IDc5LjQgNjUuNSAxMjcgODUuNkEzOTYuNjQgMzk2LjY0IDAgMCAwIDQ3MS42IDk1MmMyNyAwIDUzLjYtMi43IDc5LjctNy45LTI1LjkgNS4yLTUyLjQgNy44LTc5LjMgNy44LTU0IC4xLTEwNi40LTEwLjUtMTU1LjgtMzEuNHpNNTYwIDQ3MmMtNC40IDAtOC0zLjYtOC04Vjc5LjljMC0xLjMuMy0yLjUuOS0zLjYtLjkgMS4zLTEuNSAyLjktMS41IDQuNnYzODMuN2MwIDQuNCAzLjYgOCA4IDhsMzgzLjYtMWMxLjYgMCAzLjEtLjUgNC40LTEuMy0xIC41LTIuMi43LTMuNC43bC0zODQgMXonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ002MTkuOCAxNDcuNnYyNTYuNmwyNTYuNC0uN2MtMTMtNjIuNS00NC4zLTEyMC41LTkwLTE2Ni4xYTMzMi4yNCAzMzIuMjQgMCAwIDAtMTY2LjQtODkuOHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000MzggMjIxLjdjLTc1LjkgNy42LTE0Ni4yIDQwLjktMjAwLjggOTUuNUMxNzQuNSAzNzkuOSAxNDAgNDYzLjMgMTQwIDU1MnMzNC41IDE3Mi4xIDk3LjIgMjM0LjhjNjIuMyA2Mi4zIDE0NS4xIDk2LjggMjMzLjIgOTcuMiA4OC4yLjQgMTcyLjctMzQuMSAyMzUuMy05Ni4yQzc2MSA3MzMgNzk0LjYgNjYyLjMgODAyLjMgNTg2SDQzOFYyMjEuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODY0IDUxOEg1MDZWMTYwYzAtNC40LTMuNi04LTgtOGgtMjZhMzk4LjQ2IDM5OC40NiAwIDAgMC0yODIuOCAxMTcuMSAzOTguMTkgMzk4LjE5IDAgMCAwLTg1LjcgMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAgMCA3MiA1NTJ2LjJjMCA1My45IDEwLjYgMTA2LjIgMzEuNCAxNTUuNSAyMC4xIDQ3LjYgNDkgOTAuNCA4NS43IDEyNy4xIDM2LjcgMzYuNyA3OS41IDY1LjYgMTI3LjEgODUuN0EzOTcuNjEgMzk3LjYxIDAgMCAwIDQ3MiA5NTJjMjYuOSAwIDUzLjQtMi42IDc5LjMtNy44IDI2LjEtNS4zIDUxLjctMTMuMSA3Ni40LTIzLjYgNDcuNi0yMC4xIDkwLjQtNDkgMTI3LjEtODUuNyAzNi43LTM2LjcgNjUuNi03OS41IDg1LjctMTI3LjFBMzk3LjYxIDM5Ny42MSAwIDAgMCA4NzIgNTUydi0yNmMwLTQuNC0zLjYtOC04LTh6TTcwNS43IDc4Ny44QTMzMS41OSAzMzEuNTkgMCAwIDEgNDcwLjQgODg0Yy04OC4xLS40LTE3MC45LTM0LjktMjMzLjItOTcuMkMxNzQuNSA3MjQuMSAxNDAgNjQwLjcgMTQwIDU1MnMzNC41LTE3Mi4xIDk3LjItMjM0LjhjNTQuNi01NC42IDEyNC45LTg3LjkgMjAwLjgtOTUuNVY1ODZoMzY0LjNjLTcuNyA3Ni4zLTQxLjMgMTQ3LTk2LjYgMjAxLjh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1MiA0NjIuNGwtMi42LTI4LjJjLTguNS05Mi4xLTQ5LjQtMTc5LTExNS4yLTI0NC42QTM5OS40IDM5OS40IDAgMCAwIDU4OSA3NC42TDU2MC43IDcyYy0zLjQtLjMtNi40IDEuNS03LjggNC4zYTguNyA4LjcgMCAwIDAtLjkgMy42VjQ2NGMwIDQuNCAzLjYgOCA4IDhsMzg0LTFjMS4yIDAgMi4zLS4zIDMuNC0uN2E4LjEgOC4xIDAgMCAwIDQuNi03Ljl6bS0zMzIuMi01OC4yVjE0Ny42YTMzMi4yNCAzMzIuMjQgMCAwIDEgMTY2LjQgODkuOGM0NS43IDQ1LjYgNzcgMTAzLjYgOTAgMTY2LjFsLTI1Ni40Ljd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlBsdXNDaXJjbGVUd29Ub25lID0gZ2V0SWNvbigncGx1cy1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xOTIgMzk2YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGgxNTJWMzI4YzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTUyaDE1MmM0LjQgMCA4IDMuNiA4IDh2NDh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY5NiA0ODBINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxNTJ2MTUyYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNTQ0aDE1MmM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUGx1c1NxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdwbHVzLXNxdWFyZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptMTM2LTM1MmMwLTQuNCAzLjYtOCA4LThoMTUyVjMyOGMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djE1MmgxNTJjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEg1NDR2MTUyYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY1NDRIMzI4Yy00LjQgMC04LTMuNi04LTh2LTQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMjggNTQ0aDE1MnYxNTJjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY1NDRoMTUyYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDU0NFYzMjhjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4djE1MkgzMjhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlBvdW5kQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3BvdW5kLWNpcmNsZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE0NiA1ODIuMWMwIDQuNC0zLjYgOC04IDhIMzc2LjJjLTQuNCAwLTgtMy42LTgtOHYtMzguNWMwLTMuNyAyLjUtNi45IDYuMS03LjggNDQtMTAuOSA3Mi44LTQ5IDcyLjgtOTQuMiAwLTE0LjctMi41LTI5LjQtNS45LTQ0LjJIMzc0Yy00LjQgMC04LTMuNi04LTh2LTMwYzAtNC40IDMuNi04IDgtOGg1My43Yy03LjgtMjUuMS0xNC42LTUwLjctMTQuNi03Ny4xIDAtNzUuOCA1OC42LTEyMC4zIDE1MS41LTEyMC4zIDI2LjUgMCA1MS40IDUuNSA3MC4zIDEyLjcgMy4xIDEuMiA1LjIgNC4yIDUuMiA3LjV2MzkuNWE4IDggMCAwIDEtMTAuNiA3LjZjLTE3LjktNi40LTM5LTEwLjUtNjAuNC0xMC41LTUzLjMgMC04Ny4zIDI2LjYtODcuMyA3MC4yIDAgMjQuNyA2LjIgNDcuOSAxMy40IDcwLjVoMTEyYzQuNCAwIDggMy42IDggOHYzMGMwIDQuNC0zLjYgOC04IDhoLTk4LjZjMy4xIDEzLjIgNS4zIDI2LjkgNS4zIDQxIDAgNDAuNy0xNi41IDczLjktNDMuOSA5MS4xdjQuN2gxODBjNC40IDAgOCAzLjYgOCA4djM5Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY1MCA2NzQuM0g0NzB2LTQuN2MyNy40LTE3LjIgNDMuOS01MC40IDQzLjktOTEuMSAwLTE0LjEtMi4yLTI3LjgtNS4zLTQxaDk4LjZjNC40IDAgOC0zLjYgOC04di0zMGMwLTQuNC0zLjYtOC04LThoLTExMmMtNy4yLTIyLjYtMTMuNC00NS44LTEzLjQtNzAuNSAwLTQzLjYgMzQtNzAuMiA4Ny4zLTcwLjIgMjEuNCAwIDQyLjUgNC4xIDYwLjQgMTAuNWE4IDggMCAwIDAgMTAuNi03LjZ2LTM5LjVjMC0zLjMtMi4xLTYuMy01LjItNy41LTE4LjktNy4yLTQzLjgtMTIuNy03MC4zLTEyLjctOTIuOSAwLTE1MS41IDQ0LjUtMTUxLjUgMTIwLjMgMCAyNi40IDYuOCA1MiAxNC42IDc3LjFIMzc0Yy00LjQgMC04IDMuNi04IDh2MzBjMCA0LjQgMy42IDggOCA4aDY3LjJjMy40IDE0LjggNS45IDI5LjUgNS45IDQ0LjIgMCA0NS4yLTI4LjggODMuMy03Mi44IDk0LjItMy42LjktNi4xIDQuMS02LjEgNy44djM4LjVjMCA0LjQgMy42IDggOCA4SDY1MGM0LjQgMCA4LTMuNiA4LTh2LTM5LjhjMC00LjQtMy42LTgtOC04eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5QcmludGVyVHdvVG9uZSA9IGdldEljb24oJ3ByaW50ZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMzYwIDE4MGgzMDR2MTUySDM2MHptNDkyIDIyMEgxNzJjLTYuNiAwLTEyIDUuNC0xMiAxMnYyOTJoMTMyVjUwMGg0NDB2MjA0aDEzMlY0MTJjMC02LjYtNS40LTEyLTEyLTEyem0tMjQgODRjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di00MGMwLTQuNCAzLjYtOCA4LThoNDBjNC40IDAgOCAzLjYgOCA4djQweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NTIgMzMySDczMlYxMjBjMC00LjQtMy42LTgtOC04SDMwMGMtNC40IDAtOCAzLjYtOCA4djIxMkgxNzJjLTQ0LjIgMC04MCAzNS44LTgwIDgwdjMyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjh2MTMyYzAgNC40IDMuNiA4IDggOGg0MjRjNC40IDAgOC0zLjYgOC04Vjc3MmgxNjhjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDEyYzAtNDQuMi0zNS44LTgwLTgwLTgwek0zNjAgMTgwaDMwNHYxNTJIMzYwVjE4MHptMzA0IDY2NEgzNjBWNTY4aDMwNHYyNzZ6bTIwMC0xNDBINzMyVjUwMEgyOTJ2MjA0SDE2MFY0MTJjMC02LjYgNS40LTEyIDEyLTEyaDY4MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjkyeidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MjAgNDM2aC00MGMtNC40IDAtOCAzLjYtOCA4djQwYzAgNC40IDMuNiA4IDggOGg0MGM0LjQgMCA4LTMuNiA4LTh2LTQwYzAtNC40LTMuNi04LTgtOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHJvZmlsZVR3b1RvbmUgPSBnZXRJY29uKCdwcm9maWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA3MjhIMTg0VjE4NGg2NTZ2NjU2eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE4NCA4NDBoNjU2VjE4NEgxODR2NjU2em0zMDAtNDk2YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6bTAgMTQ0YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6bTAgMTQ0YzAtNC40IDMuNi04IDgtOGgxODRjNC40IDAgOCAzLjYgOCA4djQ4YzAgNC40LTMuNiA4LTggOEg0OTJjLTQuNCAwLTgtMy42LTgtOHYtNDh6TTM4MCAzMjhjMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDAtNDAtMTcuOS00MC00MCAxNy45LTQwIDQwLTQwem0wIDE0NGMyMi4xIDAgNDAgMTcuOSA0MCA0MHMtMTcuOSA0MC00MCA0MC00MC0xNy45LTQwLTQwIDE3LjktNDAgNDAtNDB6bTAgMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMzQwIDY1NmE0MCA0MCAwIDEgMCA4MCAwIDQwIDQwIDAgMSAwLTgwIDB6bTAtMTQ0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMC0xNDRhNDAgNDAgMCAxIDAgODAgMCA0MCA0MCAwIDEgMC04MCAwem0xNTIgMzIwaDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAtMTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAtMTQ0aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEg0OTJjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlByb2plY3RUd29Ub25lID0gZ2V0SWNvbigncHJvamVjdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjczNmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTQ0YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNzI4SDE4NFYxODRoNjU2djY1NnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlYxODRIMTg0djY1NnptNDcyLTU2MGMwLTQuNCAzLjYtOCA4LThoODBjNC40IDAgOCAzLjYgOCA4djI1NmMwIDQuNC0zLjYgOC04IDhoLTgwYy00LjQgMC04LTMuNi04LThWMjgwem0tMTkyIDBjMC00LjQgMy42LTggOC04aDgwYzQuNCAwIDggMy42IDggOHYxODRjMCA0LjQtMy42IDgtOCA4aC04MGMtNC40IDAtOC0zLjYtOC04VjI4MHptLTE5MiAwYzAtNC40IDMuNi04IDgtOGg4MGM0LjQgMCA4IDMuNiA4IDh2NDY0YzAgNC40LTMuNiA4LTggOGgtODBjLTQuNCAwLTgtMy42LTgtOFYyODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTI4MCA3NTJoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2NDY0YzAgNC40IDMuNiA4IDggOHptMTkyLTI4MGg4MGM0LjQgMCA4LTMuNiA4LThWMjgwYzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHYxODRjMCA0LjQgMy42IDggOCA4em0xOTIgNzJoODBjNC40IDAgOC0zLjYgOC04VjI4MGMwLTQuNC0zLjYtOC04LThoLTgwYy00LjQgMC04IDMuNi04IDh2MjU2YzAgNC40IDMuNiA4IDggOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUHVzaHBpblR3b1RvbmUgPSBnZXRJY29uKCdwdXNocGluJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ3NC44IDM1Ny43bC0yNC41IDI0LjUtMzQuNC0zLjhjLTkuNi0xLjEtMTkuMy0xLjYtMjguOS0xLjYtMjkgMC01Ny41IDQuNy04NC43IDE0LjEtMTQgNC44LTI3LjQgMTAuOC00MC4zIDE3LjlsMzUzLjEgMzUzLjNhMjU5LjkyIDI1OS45MiAwIDAgMCAzMC40LTE1My45bC0zLjgtMzQuNCAyNC41LTI0LjVMODAwIDQxNS41IDYwOC41IDIyNCA0NzQuOCAzNTcuN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODc4LjMgMzkyLjFMNjMxLjkgMTQ1LjdjLTYuNS02LjUtMTUtOS43LTIzLjUtOS43cy0xNyAzLjItMjMuNSA5LjdMNDIzLjggMzA2LjljLTEyLjItMS40LTI0LjUtMi0zNi44LTItNzMuMiAwLTE0Ni40IDI0LjEtMjA2LjUgNzIuM2EzMy4yMyAzMy4yMyAwIDAgMC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwIDAtNC42IDkuOGwtMy40IDM3LjJjLS45IDkuNCA2LjYgMTcuNCAxNS45IDE3LjQuNSAwIDEgMCAxLjUtLjFsMzcuMi0zLjRjMy43LS4zIDcuMi0yIDkuOC00LjZsMjE1LjQtMjE1LjQgMTgxLjcgMTgxLjdjNi41IDYuNSAxNSA5LjcgMjMuNSA5LjcgOS43IDAgMTkuMy00LjIgMjUuOS0xMi40IDU2LjMtNzAuMyA3OS43LTE1OC4zIDcwLjItMjQzLjRsMTYxLjEtMTYxLjFjMTIuOS0xMi44IDEyLjktMzMuOCAwLTQ2Ljh6TTY2Ni4yIDU0OS4zbC0yNC41IDI0LjUgMy44IDM0LjRhMjU5LjkyIDI1OS45MiAwIDAgMS0zMC40IDE1My45TDI2MiA0MDguOGMxMi45LTcuMSAyNi4zLTEzLjEgNDAuMy0xNy45IDI3LjItOS40IDU1LjctMTQuMSA4NC43LTE0LjEgOS42IDAgMTkuMy41IDI4LjkgMS42bDM0LjQgMy44IDI0LjUtMjQuNUw2MDguNSAyMjQgODAwIDQxNS41IDY2Ni4yIDU0OS4zeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Qcm9wZXJ0eVNhZmV0eVR3b1RvbmUgPSBnZXRJY29uKCdwcm9wZXJ0eS1zYWZldHknLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00yMTQgMjI2Ljd2NDI3LjZsMjk4IDIzMi4yIDI5OC0yMzIuMlYyMjYuN0w1MTIgMTI1LjEgMjE0IDIyNi43ek01OTMuOSAzMThoNDVjNS41IDAgMTAgNC41IDEwIDEwIC4xIDEuNy0uMyAzLjMtMS4xIDQuOGwtODcuNyAxNjEuMWg0NS43YzUuNSAwIDEwIDQuNSAxMCAxMHYyMS4zYzAgNS41LTQuNSAxMC0xMCAxMGgtNjMuNHYyOS43aDYzLjRjNS41IDAgMTAgNC41IDEwIDEwdjIxLjNjMCA1LjUtNC41IDEwLTEwIDEwaC02My40VjY1OGMwIDUuNS00LjUgMTAtMTAgMTBoLTQxLjNjLTUuNSAwLTEwLTQuNS0xMC0xMHYtNTEuOEg0MThjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNjMuMXYtMjkuN0g0MThjLTUuNSAwLTEwLTQuNS0xMC0xMHYtMjEuM2MwLTUuNSA0LjUtMTAgMTAtMTBoNDUuMmwtODgtMTYxLjFjLTIuNi00LjgtLjktMTAuOSA0LTEzLjYgMS41LS44IDMuMS0xLjIgNC44LTEuMmg0NmMzLjggMCA3LjIgMi4xIDguOSA1LjVsNzIuOSAxNDQuM0w1ODUgMzIzLjVhMTAgMTAgMCAwIDEgOC45LTUuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDM4LjkgMzIzLjVhOS44OCA5Ljg4IDAgMCAwLTguOS01LjVoLTQ2Yy0xLjcgMC0zLjMuNC00LjggMS4yLTQuOSAyLjctNi42IDguOC00IDEzLjZsODggMTYxLjFINDE4Yy01LjUgMC0xMCA0LjUtMTAgMTB2MjEuM2MwIDUuNSA0LjUgMTAgMTAgMTBoNjMuMXYyOS43SDQxOGMtNS41IDAtMTAgNC41LTEwIDEwdjIxLjNjMCA1LjUgNC41IDEwIDEwIDEwaDYzLjFWNjU4YzAgNS41IDQuNSAxMCAxMCAxMGg0MS4zYzUuNSAwIDEwLTQuNSAxMC0xMHYtNTEuOGg2My40YzUuNSAwIDEwLTQuNSAxMC0xMHYtMjEuM2MwLTUuNS00LjUtMTAtMTAtMTBoLTYzLjR2LTI5LjdoNjMuNGM1LjUgMCAxMC00LjUgMTAtMTB2LTIxLjNjMC01LjUtNC41LTEwLTEwLTEwaC00NS43bDg3LjctMTYxLjFjLjgtMS41IDEuMi0zLjEgMS4xLTQuOCAwLTUuNS00LjUtMTAtMTAtMTBoLTQ1YTEwIDEwIDAgMCAwLTguOSA1LjVsLTczLjIgMTQ0LjMtNzIuOS0xNDQuM3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUXVlc3Rpb25DaXJjbGVUd29Ub25lID0gZ2V0SWNvbigncXVlc3Rpb24tY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMCA2MzJjLTIyLjEgMC00MC0xNy45LTQwLTQwczE3LjktNDAgNDAtNDAgNDAgMTcuOSA0MCA0MC0xNy45IDQwLTQwIDQwem02Mi45LTIxOS41YTQ4LjMgNDguMyAwIDAgMC0zMC45IDQ0LjhWNjIwYzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtMjEuNWMwLTIzLjEgNi43LTQ1LjkgMTkuOS02NC45IDEyLjktMTguNiAzMC45LTMyLjggNTIuMS00MC45IDM0LTEzLjEgNTYtNDEuNiA1Ni03Mi43IDAtNDQuMS00My4xLTgwLTk2LTgwcy05NiAzNS45LTk2IDgwdjcuNmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LThWNDIwYzAtMzkuMyAxNy4yLTc2IDQ4LjQtMTAzLjNDNDMwLjQgMjkwLjQgNDcwIDI3NiA1MTIgMjc2czgxLjYgMTQuNSAxMTEuNiA0MC43QzY1NC44IDM0NCA2NzIgMzgwLjcgNjcyIDQyMGMwIDU3LjgtMzguMSAxMDkuOC05Ny4xIDEzMi41eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000NzIgNzMyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHptMTUxLjYtNDE1LjNDNTkzLjYgMjkwLjUgNTU0IDI3NiA1MTIgMjc2cy04MS42IDE0LjQtMTExLjYgNDAuN0MzNjkuMiAzNDQgMzUyIDM4MC43IDM1MiA0MjB2Ny42YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LThWNDIwYzAtNDQuMSA0My4xLTgwIDk2LTgwczk2IDM1LjkgOTYgODBjMCAzMS4xLTIyIDU5LjYtNTYgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjIgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwIDEgMzAuOS00NC44YzU5LTIyLjcgOTcuMS03NC43IDk3LjEtMTMyLjUgMC0zOS4zLTE3LjItNzYtNDguNC0xMDMuM3onXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuUmVjb25jaWxpYXRpb25Ud29Ub25lID0gZ2V0SWNvbigncmVjb25jaWxpYXRpb24nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzQwIDM0NEg0MDRWMjQwSDMwNHYxNjBoMTc2YzE3LjcgMCAzMiAxNC4zIDMyIDMydjM2MGgzMjhWMjQwSDc0MHYxMDR6TTU4NCA0NDhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2em05MiAzMDFjLTUwLjggMC05Mi00MS4yLTkyLTkyczQxLjItOTIgOTItOTIgOTIgNDEuMiA5MiA5Mi00MS4yIDkyLTkyIDkyem05Mi0zNDF2OTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di05NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4eidcbiAgICBdLCBbc2Vjb25kYXJ5Q29sb3IsICdNNjQyIDY1N2EzNCAzNCAwIDEgMCA2OCAwIDM0IDM0IDAgMSAwLTY4IDB6J10sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU5MiA1MTJoNDhjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4em0xMTItMTA0djk2YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTk2YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDE2OEg2NjhjMC0zMC45LTI1LjEtNTYtNTYtNTZoLTgwYy0zMC45IDAtNTYgMjUuMS01NiA1NkgyNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjIwMGgtODhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMzZjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTE2aDM2OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MTIgNjRoNzJ2LTU2aDY0djU2aDcydjQ4SDQ2OHYtNDh6bS0yMCA2MTZIMTc2VjYxNmgyNzJ2MjMyem0wLTI5NkgxNzZ2LTg4aDI3MnY4OHptMzkyIDI0MEg1MTJWNDMyYzAtMTcuNy0xNC4zLTMyLTMyLTMySDMwNFYyNDBoMTAwdjEwNGgzMzZWMjQwaDEwMHY1NTJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY3NiA1NjVjLTUwLjggMC05MiA0MS4yLTkyIDkyczQxLjIgOTIgOTIgOTIgOTItNDEuMiA5Mi05Mi00MS4yLTkyLTkyLTkyem0wIDEyNmMtMTguOCAwLTM0LTE1LjItMzQtMzRzMTUuMi0zNCAzNC0zNCAzNCAxNS4yIDM0IDM0LTE1LjIgMzQtMzQgMzR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlJlZEVudmVsb3BlVHdvVG9uZSA9IGdldEljb24oJ3JlZC1lbnZlbG9wZScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDY0SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2ODMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDgyNEgyMzJWMTkzLjFsMjYwLjMgMjA0LjFjMTEuNiA5LjEgMjcuOSA5LjEgMzkuNSAwTDc5MiAxOTMuMVY4ODh6bTAtNzUxLjNoLTMxLjdMNTEyIDMzMS4zIDI2My43IDEzNi43SDIzMnYtLjdoNTYwdi43eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ5Mi4zIDM5Ny4yTDIzMiAxOTMuMVY4ODhoNTYwVjE5My4xTDUzMS44IDM5Ny4yYTMxLjk5IDMxLjk5IDAgMCAxLTM5LjUgMHptOTkuNCA2MC45aDQ3LjhhOC40NSA4LjQ1IDAgMCAxIDcuNCAxMi40bC04Ny4yIDE2MWg0NS45YzQuNiAwIDguNCAzLjggOC40IDguNFY2NjVjMCA0LjYtMy44IDguNC04LjQgOC40aC02My4zVjcwMmg2My4zYzQuNiAwIDguNCAzLjggOC40IDguNHYyNWMuMiA0LjctMy41IDguNS04LjIgOC41aC02My4zdjQ5LjljMCA0LjYtMy44IDguNC04LjQgOC40aC00My43Yy00LjYgMC04LjQtMy44LTguNC04LjR2LTQ5LjloLTYzYy00LjYgMC04LjQtMy44LTguNC04LjR2LTI1LjFjMC00LjYgMy44LTguNCA4LjQtOC40aDYzdi0yOC42aC02M2MtNC42IDAtOC40LTMuOC04LjQtOC40di0yNS4xYzAtNC42IDMuOC04LjQgOC40LTguNGg0NS40TDM3NyA0NzAuNGE4LjQgOC40IDAgMCAxIDMuNC0xMS40YzEuMy0uNiAyLjYtMSAzLjktMWg0OC44YzMuMiAwIDYuMSAxLjggNy41IDQuNmw3MS43IDE0MiA3MS45LTE0MS45YTguNiA4LjYgMCAwIDEgNy41LTQuNnonXG4gICAgXSwgW3NlY29uZGFyeUNvbG9yLCAnTTIzMiAxMzYuN2gzMS43TDUxMiAzMzEuM2wyNDguMy0xOTQuNkg3OTJ2LS43SDIzMnonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDQwLjYgNDYyLjZhOC4zOCA4LjM4IDAgMCAwLTcuNS00LjZoLTQ4LjhjLTEuMyAwLTIuNi40LTMuOSAxYTguNCA4LjQgMCAwIDAtMy40IDExLjRsODcuNCAxNjEuMUg0MTljLTQuNiAwLTguNCAzLjgtOC40IDguNFY2NjVjMCA0LjYgMy44IDguNCA4LjQgOC40aDYzVjcwMmgtNjNjLTQuNiAwLTguNCAzLjgtOC40IDguNHYyNS4xYzAgNC42IDMuOCA4LjQgOC40IDguNGg2M3Y0OS45YzAgNC42IDMuOCA4LjQgOC40IDguNGg0My43YzQuNiAwIDguNC0zLjggOC40LTguNHYtNDkuOWg2My4zYzQuNyAwIDguNC0zLjggOC4yLTguNXYtMjVjMC00LjYtMy44LTguNC04LjQtOC40aC02My4zdi0yOC42aDYzLjNjNC42IDAgOC40LTMuOCA4LjQtOC40di0yNS4xYzAtNC42LTMuOC04LjQtOC40LTguNGgtNDUuOWw4Ny4yLTE2MWE4LjQ1IDguNDUgMCAwIDAtNy40LTEyLjRoLTQ3LjhjLTMuMSAwLTYgMS44LTcuNSA0LjZsLTcxLjkgMTQxLjktNzEuNy0xNDJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlJlc3RUd29Ub25lID0gZ2V0SWNvbigncmVzdCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00zMjYuNCA4NDRoMzYzLjJsNDQuMy01MjBIMjgybDQ0LjQgNTIwek01MDggNDE2Yzc5LjUgMCAxNDQgNjQuNSAxNDQgMTQ0cy02NC41IDE0NC0xNDQgMTQ0LTE0NC02NC41LTE0NC0xNDQgNjQuNS0xNDQgMTQ0LTE0NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTA4IDcwNGM3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NHMtNjQuNS0xNDQtMTQ0LTE0NC0xNDQgNjQuNS0xNDQgMTQ0IDY0LjUgMTQ0IDE0NCAxNDR6bTAtMjI0YzQ0LjIgMCA4MCAzNS44IDgwIDgwcy0zNS44IDgwLTgwIDgwLTgwLTM1LjgtODAtODAgMzUuOC04MCA4MC04MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODMyIDI1NmgtMjguMWwtMzUuNy0xMjAuOWMtNC0xMy43LTE2LjUtMjMuMS0zMC43LTIzLjFoLTQ1MWMtMTQuMyAwLTI2LjggOS40LTMwLjcgMjMuMUwyMjAuMSAyNTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyOGMwIDQuNCAzLjYgOCA4IDhoNDUuOGw0Ny43IDU1OC43YTMyIDMyIDAgMCAwIDMxLjkgMjkuM2g0MjkuMmEzMiAzMiAwIDAgMCAzMS45LTI5LjNMODAyLjIgMzI0SDg1NmM0LjQgMCA4LTMuNiA4LTh2LTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNTE4LjYtNzZoMzk3LjJsMjIuNCA3NkgyOTFsMjIuNC03NnptMzc2LjIgNjY0SDMyNi40TDI4MiAzMjRoNDUxLjlsLTQ0LjMgNTIweidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5SaWdodENpcmNsZVR3b1RvbmUgPSBnZXRJY29uKCdyaWdodC1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMTU0LjcgMzc4LjRsLTI0NiAxNzhjLTUuMyAzLjgtMTIuNyAwLTEyLjctNi41VjY0M2MwLTEwLjIgNC45LTE5LjkgMTMuMi0yNS45TDU2Ni42IDUxMiA0MjEuMiA0MDYuOGMtOC4zLTYtMTMuMi0xNS42LTEzLjItMjUuOVYzMzRjMC02LjUgNy40LTEwLjMgMTIuNy02LjVsMjQ2IDE3OGM0LjQgMy4yIDQuNCA5LjcgMCAxMi45eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTY2Ni43IDUwNS41bC0yNDYtMTc4Yy01LjMtMy44LTEyLjcgMC0xMi43IDYuNXY0Ni45YzAgMTAuMyA0LjkgMTkuOSAxMy4yIDI1LjlMNTY2LjYgNTEyIDQyMS4yIDYxNy4xYy04LjMgNi0xMy4yIDE1LjctMTMuMiAyNS45djQ2LjljMCA2LjUgNy40IDEwLjMgMTIuNyA2LjVsMjQ2LTE3OGM0LjQtMy4yIDQuNC05LjcgMC0xMi45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Sb2NrZXRUd29Ub25lID0gZ2V0SWNvbigncm9ja2V0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTI2MS43IDYyMS40Yy05LjQgMTQuNi0xNyAzMC4zLTIyLjUgNDYuNkgzMjRWNTU4LjdjLTI0LjggMTYuMi00NiAzNy41LTYyLjMgNjIuN3pNNzAwIDU1OC43VjY2OGg4NC44Yy01LjUtMTYuMy0xMy4xLTMyLTIyLjUtNDYuNmEyMTEuNiAyMTEuNiAwIDAgMC02Mi4zLTYyLjd6bS02NC0yMzkuOWwtMTI0LTE0Ny0xMjQgMTQ3VjY2OGgyNDhWMzE4Ljh6TTUxMiA0NDhhNDguMDEgNDguMDEgMCAwIDEgMC05NiA0OC4wMSA0OC4wMSAwIDAgMSAwIDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjQgNzM2YzAtMTExLjYtNjUuNC0yMDgtMTYwLTI1Mi45VjMxNy4zYzAtMTUuMS01LjMtMjkuNy0xNS4xLTQxLjJMNTM2LjUgOTUuNEM1MzAuMSA4Ny44IDUyMSA4NCA1MTIgODRzLTE4LjEgMy44LTI0LjUgMTEuNEwzMzUuMSAyNzYuMWE2My45NyA2My45NyAwIDAgMC0xNS4xIDQxLjJ2MTY1LjhDMjI1LjQgNTI4IDE2MCA2MjQuNCAxNjAgNzM2aDE1Ni41Yy0yLjMgNy4yLTMuNSAxNS0zLjUgMjMuOCAwIDIyLjEgNy42IDQzLjcgMjEuNCA2MC44YTk3LjIgOTcuMiAwIDAgMCA0My4xIDMwLjZjMjMuMSA1NCA3NS42IDg4LjggMTM0LjUgODguOCAyOS4xIDAgNTcuMy04LjYgODEuNC0yNC44IDIzLjYtMTUuOCA0MS45LTM3LjkgNTMtNjRhOTcgOTcgMCAwIDAgNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMCAwIDIxLjQtNjAuOGMwLTguNC0xLjEtMTYuNC0zLjEtMjMuOEw4NjQgNzM2em0tNTQwLTY4aC04NC44YzUuNS0xNi4zIDEzLjEtMzIgMjIuNS00Ni42IDE2LjMtMjUuMiAzNy41LTQ2LjUgNjIuMy02Mi43VjY2OHptNjQtMTg0LjlWMzE4LjhsMTI0LTE0NyAxMjQgMTQ3VjY2OEgzODhWNDgzLjF6bTI0MC4xIDMwMS4xYy01LjIgMy0xMS4yIDQuMi0xNy4xIDMuNGwtMTkuNS0yLjQtMi44IDE5LjRjLTUuNCAzNy45LTM4LjQgNjYuNS03Ni43IDY2LjVzLTcxLjMtMjguNi03Ni43LTY2LjVsLTIuOC0xOS41LTE5LjUgMi41YTI3LjcgMjcuNyAwIDAgMS0xNy4xLTMuNWMtOC43LTUtMTQuMS0xNC4zLTE0LjEtMjQuNCAwLTEwLjYgNS45LTE5LjQgMTQuNi0yMy44aDIzMS4zYzguOCA0LjUgMTQuNiAxMy4zIDE0LjYgMjMuOC0uMSAxMC4yLTUuNSAxOS42LTE0LjIgMjQuNXpNNzAwIDY2OFY1NTguN2EyMTEuNiAyMTEuNiAwIDAgMSA2Mi4zIDYyLjdjOS40IDE0LjYgMTcgMzAuMyAyMi41IDQ2LjZINzAweidcbiAgICBdLCBbcHJpbWFyeUNvbG9yLCAnTTQ2NCA0MDBhNDggNDggMCAxIDAgOTYgMCA0OCA0OCAwIDEgMC05NiAweiddKTtcbn0pO1xuZXhwb3J0cy5SaWdodFNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCdyaWdodC1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTIxNi0xOTYuOWMwLTEwLjIgNC45LTE5LjkgMTMuMi0yNS45TDU1OC42IDUxMiA0MTMuMiA0MDYuOGMtOC4zLTYtMTMuMi0xNS42LTEzLjItMjUuOVYzMzRjMC02LjUgNy40LTEwLjMgMTIuNy02LjVsMjQ2IDE3OGM0LjQgMy4yIDQuNCA5LjcgMCAxMi45bC0yNDYgMTc4Yy01LjMgMy45LTEyLjcuMS0xMi43LTYuNHYtNDYuOXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDEyLjcgNjk2LjRsMjQ2LTE3OGM0LjQtMy4yIDQuNC05LjcgMC0xMi45bC0yNDYtMTc4Yy01LjMtMy44LTEyLjcgMC0xMi43IDYuNXY0Ni45YzAgMTAuMyA0LjkgMTkuOSAxMy4yIDI1LjlMNTU4LjYgNTEyIDQxMy4yIDYxNy4yYy04LjMgNi0xMy4yIDE1LjctMTMuMiAyNS45VjY5MGMwIDYuNSA3LjQgMTAuMyAxMi43IDYuNHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU2FmZXR5Q2VydGlmaWNhdGVUd29Ub25lID0gZ2V0SWNvbignc2FmZXR5LWNlcnRpZmljYXRlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3pNNjMyLjggMzI4SDY4OGM2LjUgMCAxMC4zIDcuNCA2LjUgMTIuN0w0ODEuOSA2MzMuNGExNi4xIDE2LjEgMCAwIDEtMjYgMGwtMTI2LjQtMTc0Yy0zLjgtNS4zIDAtMTIuNyA2LjUtMTIuN2g1NS4yYzUuMiAwIDEwIDIuNSAxMyA2LjZsNjQuNyA4OS4xIDE1MC45LTIwNy44YzMtNC4xIDcuOS02LjYgMTMtNi42eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MDQuMiA0NTMuM2MtMy00LjEtNy44LTYuNi0xMy02LjZIMzM2Yy02LjUgMC0xMC4zIDcuNC02LjUgMTIuN2wxMjYuNCAxNzRhMTYuMSAxNi4xIDAgMCAwIDI2IDBsMjEyLjYtMjkyLjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdoLTU1LjJjLTUuMSAwLTEwIDIuNS0xMyA2LjZMNDY4LjkgNTQyLjRsLTY0LjctODkuMXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU2F2ZVR3b1RvbmUgPSBnZXRJY29uKCdzYXZlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcwNCAzMjBjMCAxNy43LTE0LjMgMzItMzIgMzJIMzUyYy0xNy43IDAtMzItMTQuMy0zMi0zMlYxODRIMTg0djY1Nmg2NTZWMzQxLjhsLTEzNi0xMzZWMzIwek01MTIgNzMwYy03OS41IDAtMTQ0LTY0LjUtMTQ0LTE0NHM2NC41LTE0NCAxNDQtMTQ0IDE0NCA2NC41IDE0NCAxNDQtNjQuNSAxNDQtMTQ0IDE0NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDQ0MmMtNzkuNSAwLTE0NCA2NC41LTE0NCAxNDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0LTY0LjUtMTQ0LTE0NC0xNDR6bTAgMjI0Yy00NC4yIDAtODAtMzUuOC04MC04MHMzNS44LTgwIDgwLTgwIDgwIDM1LjggODAgODAtMzUuOCA4MC04MCA4MHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODkzLjMgMjkzLjNMNzMwLjcgMTMwLjdjLS43LS43LTEuNC0xLjMtMi4xLTItLjEtLjEtLjMtLjItLjQtLjMtLjctLjctMS41LTEuMy0yLjItMS45YTY0IDY0IDAgMCAwLTIyLTExLjdWMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYzMzguNWMwLTE3LTYuNy0zMy4yLTE4LjctNDUuMnpNMzg0IDE4NGgyNTZ2MTA0SDM4NFYxODR6bTQ1NiA2NTZIMTg0VjE4NGgxMzZ2MTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDMyMGMxNy43IDAgMzItMTQuMyAzMi0zMlYyMDUuOGwxMzYgMTM2Vjg0MHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU2NoZWR1bGVUd29Ub25lID0gZ2V0SWNvbignc2NoZWR1bGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzY4IDM1MmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDU0OHY1NmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDMyOHY1NmMwIDQuNC0zLjYgOC04IDhoLTU2Yy00LjQgMC04LTMuNi04LTh2LTU2SDEzNnY0OTZoNzUyVjI5Nkg3Njh2NTZ6TTQyNCA2ODhjMCA0LjQtMy42IDgtOCA4SDIzMmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMC0xMzZjMCA0LjQtMy42IDgtOCA4SDIzMmMtNC40IDAtOC0zLjYtOC04di00OGMwLTQuNCAzLjYtOCA4LThoMTg0YzQuNCAwIDggMy42IDggOHY0OHptMzc0LjQtOTEuMmwtMTY1IDIyOC43YTE1LjkgMTUuOSAwIDAgMS0yNS44IDBMNDkzLjUgNTMxLjNjLTMuOC01LjMgMC0xMi43IDYuNS0xMi43aDU0LjljNS4xIDAgOS45IDIuNCAxMi45IDYuNmw1Mi44IDczLjEgMTAzLjYtMTQzLjdjMy00LjEgNy44LTYuNiAxMi44LTYuNWg1NC45YzYuNSAwIDEwLjMgNy40IDYuNSAxMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ003MjQuMiA0NTQuNkw2MjAuNiA1OTguM2wtNTIuOC03My4xYy0zLTQuMi03LjgtNi42LTEyLjktNi42SDUwMGMtNi41IDAtMTAuMyA3LjQtNi41IDEyLjdsMTE0LjEgMTU4LjJhMTUuOSAxNS45IDAgMCAwIDI1LjggMGwxNjUtMjI4LjdjMy44LTUuMyAwLTEyLjctNi41LTEyLjdINzM3Yy01LS4xLTkuOCAyLjQtMTIuOCA2LjV6TTQxNiA0OTZIMjMyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDE4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTI4IDIyNEg3Njh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg1NDh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1NkgzMjh2LTU2YzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY1Nkg5NmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTc2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDgzMmMxNy43IDAgMzItMTQuMyAzMi0zMlYyNTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA1NjhIMTM2VjI5NmgxMjB2NTZjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNTZoMTQ4djU2YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTU2aDE0OHY1NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di01NmgxMjB2NDk2eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MTYgNjMySDIzMmMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGgxODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNlY3VyaXR5U2NhblR3b1RvbmUgPSBnZXRJY29uKCdzZWN1cml0eS1zY2FuJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjYuOSAxNjkuOUw1MjcuMSA1NC4xQzUyMyA1Mi43IDUxNy41IDUyIDUxMiA1MnMtMTEgLjctMTUuMSAyLjFMMTU3LjEgMTY5LjljLTguMyAyLjgtMTUuMSAxMi40LTE1LjEgMjEuMnY0ODIuNGMwIDguOCA1LjcgMjAuNCAxMi42IDI1LjlMNDk5LjMgOTY4YzMuNSAyLjcgOCA0LjEgMTIuNiA0LjFzOS4yLTEuNCAxMi42LTQuMWwzNDQuNy0yNjguNmM2LjktNS40IDEyLjYtMTcgMTIuNi0yNS45VjE5MS4xYy4yLTguOC02LjYtMTguMy0xNC45LTIxLjJ6TTgxMCA2NTQuM0w1MTIgODg2LjUgMjE0IDY1NC4zVjIyNi43bDI5OC0xMDEuNiAyOTggMTAxLjZ2NDI3LjZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDYwLjcgNDUxLjFhODAuMSA4MC4xIDAgMSAwIDE2MC4yIDAgODAuMSA4MC4xIDAgMSAwLTE2MC4yIDB6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjE0IDIyNi43djQyNy42bDI5OCAyMzIuMiAyOTgtMjMyLjJWMjI2LjdMNTEyIDEyNS4xIDIxNCAyMjYuN3ptNDI4LjcgMTIyLjVjNTYuMyA1Ni4zIDU2LjMgMTQ3LjUgMCAyMDMuOC00OC41IDQ4LjUtMTIzIDU1LjItMTc4LjYgMjAuMWwtNzcuNSA3Ny41YTguMDMgOC4wMyAwIDAgMS0xMS4zIDBsLTM0LTM0YTguMDMgOC4wMyAwIDAgMSAwLTExLjNsNzcuNS03Ny41Yy0zNS4xLTU1LjctMjguNC0xMzAuMSAyMC4xLTE3OC42IDU2LjMtNTYuMyAxNDcuNS01Ni4zIDIwMy44IDB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTQxOC44IDUyNy44bC03Ny41IDc3LjVhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzNCAzNGMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDc3LjUtNzcuNWM1NS42IDM1LjEgMTMwLjEgMjguNCAxNzguNi0yMC4xIDU2LjMtNTYuMyA1Ni4zLTE0Ny41IDAtMjAzLjgtNTYuMy01Ni4zLTE0Ny41LTU2LjMtMjAzLjggMC00OC41IDQ4LjUtNTUuMiAxMjIuOS0yMC4xIDE3OC42em02NS40LTEzMy4zYTgwLjEgODAuMSAwIDAgMSAxMTMuMyAwIDgwLjEgODAuMSAwIDAgMSAwIDExMy4zYy0zMS4zIDMxLjMtODIgMzEuMy0xMTMuMyAwcy0zMS4zLTgyIDAtMTEzLjN6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNldHRpbmdUd29Ub25lID0gZ2V0SWNvbignc2V0dGluZycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ004NTkuMyA1NjkuN2wuMi4xYzMuMS0xOC45IDQuNi0zOC4yIDQuNi01Ny4zIDAtMTcuMS0xLjMtMzQuMy0zLjctNTEuMSAyLjQgMTYuNyAzLjYgMzMuNiAzLjYgNTAuNSAwIDE5LjQtMS42IDM4LjgtNC43IDU3Ljh6TTk5IDM5OC4xYy0uNS0uNC0uOS0uOC0xLjQtMS4zLjcuNyAxLjQgMS40IDIuMiAyLjFsNjUuNSA1NS45di0uMUw5OSAzOTguMXptNTM2LjYtMjE2aC4xbC0xNS41LTgzLjhjLS4yLTEtLjQtMS45LS43LTIuOC4xLjUuMyAxLjEuNCAxLjZsMTUuNyA4NXptNTQgNTQ2LjVsMzEuNC0yNS44IDkyLjggMzIuOWMxNy0yMi45IDMxLjMtNDcuNSA0Mi42LTczLjZsLTc0LjctNjMuOSA2LjYtNDAuMWMyLjUtMTUuMSAzLjgtMzAuNiAzLjgtNDYuMXMtMS4zLTMxLTMuOC00Ni4xbC02LjUtMzkuOSA3NC43LTYzLjljLTExLjQtMjYtMjUuNi01MC43LTQyLjYtNzMuNmwtOTIuOCAzMi45LTMxLjQtMjUuOGMtMjMuOS0xOS42LTUwLjYtMzUtNzkuMy00NS44bC0zOC4xLTE0LjMtMTcuOS05N2EzNzcuNSAzNzcuNSAwIDAgMC04NSAwbC0xNy45IDk3LjItMzcuOSAxNC4zYy0yOC41IDEwLjgtNTUgMjYuMi03OC43IDQ1LjdsLTMxLjQgMjUuOS05My40LTMzLjJjLTE3IDIyLjktMzEuMyA0Ny41LTQyLjYgNzMuNmw3NS41IDY0LjUtNi41IDQwYy0yLjUgMTQuOS0zLjcgMzAuMi0zLjcgNDUuNSAwIDE1LjIgMS4zIDMwLjYgMy43IDQ1LjVsNi41IDQwLTc1LjUgNjQuNWMxMS40IDI2IDI1LjYgNTAuNyA0Mi42IDczLjZsOTMuNC0zMy4yIDMxLjQgMjUuOWMyMy43IDE5LjUgNTAuMiAzNC45IDc4LjcgNDUuN2wzNy44IDE0LjUgMTcuOSA5Ny4yYzI4LjIgMy4yIDU2LjkgMy4yIDg1IDBsMTcuOS05NyAzOC4xLTE0LjNjMjguOC0xMC44IDU1LjQtMjYuMiA3OS4zLTQ1Ljh6bS0xNzcuMS01MC4zYy0zMC41IDAtNTkuMi03LjgtODQuMy0yMS41QzM3My4zIDYyNyAzMzYgNTY4LjkgMzM2IDUwMmMwLTk3LjIgNzguOC0xNzYgMTc2LTE3NiA2Ni45IDAgMTI1IDM3LjMgMTU0LjggOTIuMiAxMy43IDI1IDIxLjUgNTMuNyAyMS41IDg0LjMgMCA5Ny4xLTc4LjcgMTc1LjgtMTc1LjggMTc1Ljh6TTIwNy4yIDgxMi44Yy01LjUgMS45LTExLjIgMi4zLTE2LjYgMS4yIDUuNyAxLjIgMTEuNyAxIDE3LjUtMWw4MS40LTI5Yy0uMS0uMS0uMy0uMi0uNC0uM2wtODEuOSAyOS4xem03MTcuNi00MTQuN2wtNjUuNSA1NmMwIC4yLjEuNS4xLjdsNjUuNC01NS45YzcuMS02LjEgMTEuMS0xNC45IDExLjItMjQtLjMgOC44LTQuMyAxNy4zLTExLjIgMjMuMnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ005MzUuOCA2NDYuNmMuNSA0LjcgMCA5LjUtMS43IDE0LjFsLS45IDIuNmE0NDYuMDIgNDQ2LjAyIDAgMCAxLTc5LjcgMTM3LjlsLTEuOCAyLjFhMzIgMzIgMCAwIDEtMzUuMSA5LjVsLTgxLjMtMjguOWEzNTAgMzUwIDAgMCAxLTk5LjcgNTcuNmwtMTUuNyA4NWEzMi4wNSAzMi4wNSAwIDAgMS0yNS44IDI1LjdsLTIuNy41YTQ0NS4yIDQ0NS4yIDAgMCAxLTc5LjIgNy4xaC4zYzI2LjcgMCA1My40LTIuNCA3OS40LTcuMWwyLjctLjVhMzIuMDUgMzIuMDUgMCAwIDAgMjUuOC0yNS43bDE1LjctODQuOWMzNi4yLTEzLjYgNjkuNi0zMi45IDk5LjYtNTcuNWw4MS4yIDI4LjlhMzIgMzIgMCAwIDAgMzUuMS05LjVsMS44LTIuMWMzNC44LTQxLjEgNjEuNS04Ny40IDc5LjYtMTM3LjdsLjktMi42YzEuNi00LjcgMi4xLTkuNyAxLjUtMTQuNXonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjg4IDUwMmMwLTMwLjMtNy43LTU4LjktMjEuMi04My44QzYzNyAzNjMuMyA1NzguOSAzMjYgNTEyIDMyNmMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzYgMCA2Ni45IDM3LjMgMTI1IDkyLjIgMTU0LjggMjQuOSAxMy41IDUzLjQgMjEuMiA4My44IDIxLjIgOTcuMiAwIDE3Ni03OC44IDE3Ni0xNzZ6bS0yODggMGMwLTI5LjkgMTEuNy01OCAzMi44LTc5LjJDNDU0IDQwMS42IDQ4Mi4xIDM5MCA1MTIgMzkwYzI5LjkgMCA1OCAxMS42IDc5LjIgMzIuOEExMTEuNiAxMTEuNiAwIDAgMSA2MjQgNTAyYzAgMjkuOS0xMS43IDU4LTMyLjggNzkuMkExMTEuNiAxMTEuNiAwIDAgMSA1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwIDEgNDAwIDUwMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTk0LjEgOTUyLjJhMzIuMDUgMzIuMDUgMCAwIDAgMjUuOC0yNS43bDE1LjctODVhMzUwIDM1MCAwIDAgMCA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMCAwIDM1LjEtOS41bDEuOC0yLjFjMzQuOC00MS4xIDYxLjYtODcuNSA3OS43LTEzNy45bC45LTIuNmMxLjctNC42IDIuMi05LjQgMS43LTE0LjEtLjktNy45LTQuNy0xNS40LTExLTIwLjlsLTY1LjMtNTUuOS0uMi0uMWMzLjEtMTkgNC43LTM4LjQgNC43LTU3LjggMC0xNi45LTEuMi0zMy45LTMuNi01MC41LS4zLTIuMi0uNy00LjQtMS02LjYgMC0uMi0uMS0uNS0uMS0uN2w2NS41LTU2YzYuOS01LjkgMTAuOS0xNC40IDExLjItMjMuMi4xLTQtLjUtOC4xLTEuOS0xMmwtLjktMi42YTQ0My43NCA0NDMuNzQgMCAwIDAtNzkuNy0xMzcuOWwtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAgMC0zNS4xLTkuNWwtODEuMyAyOC45Yy0zMC0yNC42LTYzLjQtNDQtOTkuNi01Ny42aC0uMWwtMTUuNy04NWMtLjEtLjUtLjItMS4xLS40LTEuNmEzMi4wOCAzMi4wOCAwIDAgMC0yNS40LTI0LjFsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAgMC0yNS44IDI1LjdsLTE1LjggODUuNGEzNTEuODYgMzUxLjg2IDAgMCAwLTk5IDU3LjRsLTgxLjktMjkuMWEzMiAzMiAwIDAgMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMCAwLTc5LjcgMTM3LjlsLS45IDIuNmEzMi4wOSAzMi4wOSAwIDAgMCA3LjkgMzMuOWMuNS40LjkuOSAxLjQgMS4zbDY2LjMgNTYuNnYuMWMtMy4xIDE4LjgtNC42IDM3LjktNC42IDU3IDAgMTkuMiAxLjUgMzguNCA0LjYgNTcuMUw5OSA2MjUuNWEzMi4wMyAzMi4wMyAwIDAgMC05LjMgMzUuMmwuOSAyLjZjMTguMSA1MC40IDQ0LjkgOTYuOSA3OS43IDEzNy45bDEuOCAyLjFjNC45IDUuNyAxMS40IDkuNCAxOC41IDEwLjcgNS40IDEgMTEuMS43IDE2LjYtMS4ybDgxLjktMjkuMWMuMS4xLjMuMi40LjMgMjkuNyAyNC4zIDYyLjggNDMuNiA5OC42IDU3LjFsMTUuOCA4NS40YTMyLjA1IDMyLjA1IDAgMCAwIDI1LjggMjUuN2wyLjcuNWMyNi4xIDQuNyA1Mi44IDcuMSA3OS41IDcuMWguM2MyNi42IDAgNTMuMy0yLjQgNzkuMi03LjFsMi43LS41em0tMzkuOC02Ni41YTM3Ny41IDM3Ny41IDAgMCAxLTg1IDBsLTE3LjktOTcuMi0zNy44LTE0LjVjLTI4LjUtMTAuOC01NS0yNi4yLTc4LjctNDUuN2wtMzEuNC0yNS45LTkzLjQgMzMuMmMtMTctMjIuOS0zMS4yLTQ3LjYtNDIuNi03My42bDc1LjUtNjQuNS02LjUtNDBjLTIuNC0xNC45LTMuNy0zMC4zLTMuNy00NS41IDAtMTUuMyAxLjItMzAuNiAzLjctNDUuNWw2LjUtNDAtNzUuNS02NC41YzExLjMtMjYuMSAyNS42LTUwLjcgNDIuNi03My42bDkzLjQgMzMuMiAzMS40LTI1LjljMjMuNy0xOS41IDUwLjItMzQuOSA3OC43LTQ1LjdsMzcuOS0xNC4zIDE3LjktOTcuMmMyOC4xLTMuMiA1Ni44LTMuMiA4NSAwbDE3LjkgOTcgMzguMSAxNC4zYzI4LjcgMTAuOCA1NS40IDI2LjIgNzkuMyA0NS44bDMxLjQgMjUuOCA5Mi44LTMyLjljMTcgMjIuOSAzMS4yIDQ3LjYgNDIuNiA3My42TDc4MS44IDQyNmw2LjUgMzkuOWMyLjUgMTUuMSAzLjggMzAuNiAzLjggNDYuMXMtMS4zIDMxLTMuOCA0Ni4xbC02LjYgNDAuMSA3NC43IDYzLjlhMzcwLjAzIDM3MC4wMyAwIDAgMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNob3BUd29Ub25lID0gZ2V0SWNvbignc2hvcCcsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ004MzkuNSAzNDRoLTY1NWMtLjMgMC0uNS4yLS41LjV2OTEuMmMwIDU5LjggNDkgMTA4LjMgMTA5LjMgMTA4LjMgNDAuNyAwIDc2LjItMjIgOTUuMS01NC43IDIuOS01LjEgOC40LTguMyAxNC4zLTguM3MxMS4zIDMuMiAxNC4zIDguM2MxOC44IDMyLjcgNTQuMyA1NC43IDk1IDU0LjcgNDAuOCAwIDc2LjQtMjIuMSA5NS4xLTU0LjkgMi45LTUgOC4yLTguMSAxMy45LTguMWguNmM1LjggMCAxMSAzLjEgMTMuOSA4LjEgMTguOCAzMi44IDU0LjQgNTQuOSA5NS4yIDU0LjlDNzkxIDU0NCA4NDAgNDk1LjUgODQwIDQzNS43di05MS4yYzAtLjMtLjItLjUtLjUtLjV6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MiAyNzIuMVYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMTc0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjguMWMtMTYuNyAxLTMwIDE0LjktMzAgMzEuOXYxMzEuN2ExNzcgMTc3IDAgMCAwIDE0LjQgNzAuNGM0LjMgMTAuMiA5LjYgMTkuOCAxNS42IDI4Ljl2MzQ1YzAgMTcuNiAxNC4zIDMyIDMyIDMyaDY3NmMxNy43IDAgMzItMTQuMyAzMi0zMlY1MzVhMTc1IDE3NSAwIDAgMCAxNS42LTI4LjljOS41LTIyLjMgMTQuNC00NiAxNC40LTcwLjRWMzA0YzAtMTctMTMuMy0zMC45LTMwLTMxLjl6TTIxNCAxODRoNTk2djg4SDIxNHYtODh6bTM2MiA2NTYuMUg0NDhWNzM2aDEyOHYxMDQuMXptMjM0LjQgMEg2NDBWNzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTM2LjFIMjE0VjU5Ny45YzIuOSAxLjQgNS45IDIuOCA5IDQgMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjEgMjQuNCAwIDQ4LTQuNyA3MC40LTE0LjEgMTMuOC01LjggMjYuOC0xMy4yIDM4LjctMjIuMS4yLS4xLjQtLjEuNiAwYTE4MC40IDE4MC40IDAgMCAwIDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMXM0OC00LjcgNzAuNC0xNC4xYzEzLjgtNS44IDI2LjgtMTMuMiAzOC43LTIyLjEuMi0uMS40LS4xLjYgMGExODAuNCAxODAuNCAwIDAgMCAzOC43IDIyLjFjMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6TTg0MCA0MzUuN2MwIDU5LjgtNDkgMTA4LjMtMTA5LjMgMTA4LjMtNDAuOCAwLTc2LjQtMjIuMS05NS4yLTU0LjktMi45LTUtOC4xLTguMS0xMy45LTguMWgtLjZjLTUuNyAwLTExIDMuMS0xMy45IDguMUExMDkuMjQgMTA5LjI0IDAgMCAxIDUxMiA1NDRjLTQwLjcgMC03Ni4yLTIyLTk1LTU0LjctMy01LjEtOC40LTguMy0xNC4zLTguM3MtMTEuNCAzLjItMTQuMyA4LjNhMTA5LjYzIDEwOS42MyAwIDAgMS05NS4xIDU0LjdDMjMzIDU0NCAxODQgNDk1LjUgMTg0IDQzNS43di05MS4yYzAtLjMuMi0uNS41LS41aDY1NWMuMyAwIC41LjIuNS41djkxLjJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNob3BwaW5nVHdvVG9uZSA9IGdldEljb24oJ3Nob3BwaW5nJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTY5NiA0NzJjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di04OEg0MDB2ODhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di04OGgtOTZ2NDU2aDU2MFYzODRoLTk2djg4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgMzEySDY5NnYtMTZjMC0xMDEuNi04Mi40LTE4NC0xODQtMTg0cy0xODQgODIuNC0xODQgMTg0djE2SDE5MmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NTM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MzItMTZjMC02MS45IDUwLjEtMTEyIDExMi0xMTJzMTEyIDUwLjEgMTEyIDExMnYxNkg0MDB2LTE2em0zOTIgNTQ0SDIzMlYzODRoOTZ2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoMjI0djg4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTg4aDk2djQ1NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU2tpblR3b1RvbmUgPSBnZXRJY29uKCdza2luJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAzMThjLTc5LjIgMC0xNDguNS00OC44LTE3Ni43LTEyMEgxODJ2MTk2aDExOXY0MzJoNDIyVjM5NGgxMTlWMTk4SDY4OC43Yy0yOC4yIDcxLjItOTcuNSAxMjAtMTc2LjcgMTIweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NzAgMTI2SDY2My44Yy0xNy40IDAtMzIuOSAxMS45LTM3IDI5LjNDNjE0LjMgMjA4LjEgNTY3IDI0NiA1MTIgMjQ2cy0xMDIuMy0zNy45LTExNC44LTkwLjdhMzcuOTMgMzcuOTMgMCAwIDAtMzctMjkuM0gxNTRhNDQgNDQgMCAwIDAtNDQgNDR2MjUyYTQ0IDQ0IDAgMCAwIDQ0IDQ0aDc1djM4OGE0NCA0NCAwIDAgMCA0NCA0NGg0NzhhNDQgNDQgMCAwIDAgNDQtNDRWNDY2aDc1YTQ0IDQ0IDAgMCAwIDQ0LTQ0VjE3MGE0NCA0NCAwIDAgMC00NC00NHptLTI4IDI2OEg3MjN2NDMySDMwMVYzOTRIMTgyVjE5OGgxNTMuM2MyOC4yIDcxLjIgOTcuNSAxMjAgMTc2LjcgMTIwczE0OC41LTQ4LjggMTc2LjctMTIwSDg0MnYxOTZ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNsaWRlcnNUd29Ub25lID0gZ2V0SWNvbignc2xpZGVycycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODAgMjkyaDgwdjQ0MGgtODB6bTM2OSAxODBoLTc0YTMgMyAwIDAgMC0zIDN2NzRhMyAzIDAgMCAwIDMgM2g3NGEzIDMgMCAwIDAgMy0zdi03NGEzIDMgMCAwIDAtMy0zem0yMTUtMTA4aDgwdjI5NmgtODB6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkwNCAyOTZoLTY2di05NmMwLTQuNC0zLjYtOC04LThoLTUyYy00LjQgMC04IDMuNi04IDh2OTZoLTY2Yy00LjQgMC04IDMuNi04IDh2NDE2YzAgNC40IDMuNiA4IDggOGg2NnY5NmMwIDQuNCAzLjYgOCA4IDhoNTJjNC40IDAgOC0zLjYgOC04di05Nmg2NmM0LjQgMCA4LTMuNiA4LThWMzA0YzAtNC40LTMuNi04LTgtOHptLTYwIDM2NGgtODBWMzY0aDgwdjI5NnpNNjEyIDQwNGgtNjZWMjMyYzAtNC40LTMuNi04LTgtOGgtNTJjLTQuNCAwLTggMy42LTggOHYxNzJoLTY2Yy00LjQgMC04IDMuNi04IDh2MjAwYzAgNC40IDMuNiA4IDggOGg2NnYxNzJjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOFY2MjBoNjZjNC40IDAgOC0zLjYgOC04VjQxMmMwLTQuNC0zLjYtOC04LTh6bS02MCAxNDVhMyAzIDAgMCAxLTMgM2gtNzRhMyAzIDAgMCAxLTMtM3YtNzRhMyAzIDAgMCAxIDMtM2g3NGEzIDMgMCAwIDEgMyAzdjc0ek0zMjAgMjI0aC02NnYtNTZjMC00LjQtMy42LTgtOC04aC01MmMtNC40IDAtOCAzLjYtOCA4djU2aC02NmMtNC40IDAtOCAzLjYtOCA4djU2MGMwIDQuNCAzLjYgOCA4IDhoNjZ2NTZjMCA0LjQgMy42IDggOCA4aDUyYzQuNCAwIDgtMy42IDgtOHYtNTZoNjZjNC40IDAgOC0zLjYgOC04VjIzMmMwLTQuNC0zLjYtOC04LTh6bS02MCA1MDhoLTgwVjI5Mmg4MHY0NDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNtaWxlVHdvVG9uZSA9IGdldEljb24oJ3NtaWxlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnpNMjg4IDQyMWE0OC4wMSA0OC4wMSAwIDAgMSA5NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxLTk2IDB6bTIyNCAyNzJjLTg1LjUgMC0xNTUuNi02Ny4zLTE2MC0xNTEuNmE4IDggMCAwIDEgOC04LjRoNDguMWM0LjIgMCA3LjggMy4yIDguMSA3LjRDNDIwIDU4OS45IDQ2MS41IDYyOSA1MTIgNjI5czkyLjEtMzkuMSA5NS44LTg4LjZjLjMtNC4yIDMuOS03LjQgOC4xLTcuNEg2NjRhOCA4IDAgMCAxIDggOC40QzY2Ny42IDYyNS43IDU5Ny41IDY5MyA1MTIgNjkzem0xNzYtMjI0YTQ4LjAxIDQ4LjAxIDAgMCAxIDAtOTYgNDguMDEgNDguMDEgMCAwIDEgMCA5NnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjg4IDQyMWE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTM3NiAxMTJoLTQ4LjFjLTQuMiAwLTcuOCAzLjItOC4xIDcuNC0zLjcgNDkuNS00NS4zIDg4LjYtOTUuOCA4OC42cy05Mi0zOS4xLTk1LjgtODguNmMtLjMtNC4yLTMuOS03LjQtOC4xLTcuNEgzNjBhOCA4IDAgMCAwLTggOC40YzQuNCA4NC4zIDc0LjUgMTUxLjYgMTYwIDE1MS42czE1NS42LTY3LjMgMTYwLTE1MS42YTggOCAwIDAgMC04LTguNHptLTI0LTExMmE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlNuaXBwZXRzVHdvVG9uZSA9IGdldEljb24oJ3NuaXBwZXRzJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTQ1MCA1MTBWMzM2SDIzMnY1NTJoNDMyVjU1MEg0OTBjLTIyLjEgMC00MC0xNy45LTQwLTQweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgMTEySDcyNFY3MmMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NDBINTAwVjcyYzAtNC40LTMuNi04LTgtOGgtNTZjLTQuNCAwLTggMy42LTggOHY0MEgzMjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjEyMGgtOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg1MTJjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2aDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpNNjY0IDg4OEgyMzJWMzM2aDIxOHYxNzRjMCAyMi4xIDE3LjkgNDAgNDAgNDBoMTc0djMzOHptMC00MDJINTE0VjMzNmguMkw2NjQgNDg1Ljh2LjJ6bTEyOCAyNzRoLTU2VjQ1Nkw1NDQgMjY0SDM2MHYtODBoNjh2MzJjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtMzJoMTUydjMyYzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTMyaDY4djU3NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU291bmRUd29Ub25lID0gZ2V0SWNvbignc291bmQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjc1LjQgNDI0SDE0NnYxNzZoMTI5LjRsMTggMTEuN0w1ODYgODAzVjIyMUwyOTMuMyA0MTIuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODkyLjEgNzM3LjhsLTExMC4zLTYzLjdhMTUuOSAxNS45IDAgMCAwLTIxLjcgNS45bC0xOS45IDM0LjVjLTQuNCA3LjYtMS44IDE3LjQgNS44IDIxLjhMODU2LjMgODAwYTE1LjkgMTUuOSAwIDAgMCAyMS43LTUuOWwxOS45LTM0LjVjNC40LTcuNiAxLjctMTcuNC01LjgtMjEuOHpNOTM0IDQ3Nkg4MDZjLTguOCAwLTE2IDcuMi0xNiAxNnY0MGMwIDguOCA3LjIgMTYgMTYgMTZoMTI4YzguOCAwIDE2LTcuMiAxNi0xNnYtNDBjMC04LjgtNy4yLTE2LTE2LTE2ek03NjAgMzQ0YTE1LjkgMTUuOSAwIDAgMCAyMS43IDUuOUw4OTIgMjg2LjJjNy42LTQuNCAxMC4yLTE0LjIgNS44LTIxLjhMODc4IDIzMGExNS45IDE1LjkgMCAwIDAtMjEuNy01LjlMNzQ2IDI4Ny44YTE1Ljk5IDE1Ljk5IDAgMCAwLTUuOCAyMS44TDc2MCAzNDR6TTYyNS45IDExNWMtNS45IDAtMTEuOSAxLjYtMTcuNCA1LjNMMjU0IDM1Mkg5MGMtOC44IDAtMTYgNy4yLTE2IDE2djI4OGMwIDguOCA3LjIgMTYgMTYgMTZoMTY0bDM1NC41IDIzMS43YzUuNSAzLjYgMTEuNiA1LjMgMTcuNCA1LjMgMTYuNyAwIDMyLjEtMTMuMyAzMi4xLTMyLjFWMTQ3LjFjMC0xOC44LTE1LjQtMzIuMS0zMi4xLTMyLjF6TTU4NiA4MDNMMjkzLjQgNjExLjdsLTE4LTExLjdIMTQ2VjQyNGgxMjkuNGwxNy45LTExLjdMNTg2IDIyMXY1ODJ6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlN0YXJUd29Ub25lID0gZ2V0SWNvbignc3RhcicsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIuNSAxOTAuNGwtOTQuNCAxOTEuMy0yMTEuMiAzMC43IDE1Mi44IDE0OS0zNi4xIDIxMC4zIDE4OC45LTk5LjMgMTg4LjkgOTkuMi0zNi4xLTIxMC4zIDE1Mi44LTE0OC45LTIxMS4yLTMwLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTkwOC42IDM1Mi44bC0yNTMuOS0zNi45TDU0MS4yIDg1LjhjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzcwLjMgMzE1LjlsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAgMCAuNiA0NS4zbDE4My43IDE3OS4xTDIzOSA4MzkuNGEzMS45NSAzMS45NSAwIDAgMCA0Ni40IDMzLjdsMjI3LjEtMTE5LjQgMjI3LjEgMTE5LjRjNi4yIDMuMyAxMy40IDQuNCAyMC4zIDMuMiAxNy40LTMgMjkuMS0xOS41IDI2LjEtMzYuOWwtNDMuNC0yNTIuOSAxODMuNy0xNzkuMWM1LTQuOSA4LjMtMTEuMyA5LjMtMTguMyAyLjctMTcuNS05LjUtMzMuNy0yNy0zNi4zek02NjUuMyA1NjEuM2wzNi4xIDIxMC4zLTE4OC45LTk5LjItMTg4LjkgOTkuMyAzNi4xLTIxMC4zLTE1Mi44LTE0OSAyMTEuMi0zMC43IDk0LjQtMTkxLjMgOTQuNCAxOTEuMyAyMTEuMiAzMC43LTE1Mi44IDE0OC45eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5TdG9wVHdvVG9uZSA9IGdldEljb24oJ3N0b3AnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0yODguNSA2ODIuOEwyNzcuNyAyMjRDMjU4IDI0MCAyNDAgMjU4IDIyNCAyNzcuN2w1MjIuOCA1MjIuOEM2ODIuOCA4NTIuNyA2MDEgODg0IDUxMiA4ODRjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzJjMCA4OS0zMS4zIDE3MC44LTgzLjUgMjM0Ljh6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MmM4OSAwIDE3MC44LTMxLjMgMjM0LjgtODMuNUwyMjQgMjc3LjdjMTYtMTkuNyAzNC0zNy43IDUzLjctNTMuN2w1MjIuOCA1MjIuOEM4NTIuNyA2ODIuOCA4ODQgNjAxIDg4NCA1MTJjMC0yMDUuNC0xNjYuNi0zNzItMzcyLTM3MnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuU3dpdGNoZXJUd29Ub25lID0gZ2V0SWNvbignc3dpdGNoZXInLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtzZWNvbmRhcnlDb2xvciwgJ00xODQgODQwaDUyOFYzMTJIMTg0djUyOHptMTE2LTI5MGgyOTZ2NjRIMzAwdi02NHonXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODgwIDExMkgyNjRjLTQuNCAwLTggMy42LTggOHY1NmMwIDQuNCAzLjYgOCA4IDhoNTc2djU3NmMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04VjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzUyIDI0MEgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjYwOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2MDhjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjcyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjAwSDE4NFYzMTJoNTI4djUyOHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ00zMDAgNTUwaDI5NnY2NEgzMDB6J10pO1xufSk7XG5leHBvcnRzLlRhYmxldFR3b1RvbmUgPSBnZXRJY29uKCd0YWJsZXQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTgwMCA2NEgyMjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djc2OGMwIDM1LjMgMjguNyA2NCA2NCA2NGg1NzZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTI4YzAtMzUuMy0yOC43LTY0LTY0LTY0em0tOCA4MjRIMjMyVjEzNmg1NjB2NzUyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTIzMiA4ODhoNTYwVjEzNkgyMzJ2NzUyem0yODAtMTQ0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ000NzIgNzg0YTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXSk7XG59KTtcbmV4cG9ydHMuVGFnVHdvVG9uZSA9IGdldEljb24oJ3RhZycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001ODkgMTY0LjZMMTg5LjMgNTY0LjNsMjcwLjQgMjcwLjRMODU5LjQgNDM1IDgzNiAxODhsLTI0Ny0yMy40ek02ODAgNDMyYy00OC41IDAtODgtMzkuNS04OC04OHMzOS41LTg4IDg4LTg4IDg4IDM5LjUgODggODgtMzkuNSA4OC04OCA4OHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjgwIDI1NmMtNDguNSAwLTg4IDM5LjUtODggODhzMzkuNSA4OCA4OCA4OCA4OC0zOS41IDg4LTg4LTM5LjUtODgtODgtODh6bTAgMTIwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNOTM4IDQ1OC44bC0yOS42LTMxMi42Yy0xLjUtMTYuMi0xNC40LTI5LTMwLjYtMzAuNkw1NjUuMiA4NmgtLjRjLTMuMiAwLTUuNyAxLTcuNiAyLjlMODguOSA1NTcuMmE5Ljk2IDkuOTYgMCAwIDAgMCAxNC4xbDM2My44IDM2My44YTkuOSA5LjkgMCAwIDAgNy4xIDIuOWMyLjcgMCA1LjItMSA3LjEtMi45bDQ2OC4zLTQ2OC4zYzItMi4xIDMtNSAyLjgtOHpNNDU5LjcgODM0LjdMMTg5LjMgNTY0LjMgNTg5IDE2NC42IDgzNiAxODhsMjMuNCAyNDctMzk5LjcgMzk5Ljd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlRhZ3NUd29Ub25lID0gZ2V0SWNvbigndGFncycsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzcuNSA2OTRsMzExLjktMzExLjgtMTktMjI0LjYtMjI0LjYtMTktMzExLjkgMzExLjlMNDc3LjUgNjk0em0xMTYtNDE1LjVhNDcuODEgNDcuODEgMCAwIDEgMzMuOS0zMy45YzE2LjYtNC40IDM0LjIuMyA0Ni40IDEyLjRhNDcuOTMgNDcuOTMgMCAwIDEgMTIuNCA0Ni40IDQ3LjgxIDQ3LjgxIDAgMCAxLTMzLjkgMzMuOWMtMTYuNiA0LjQtMzQuMi0uMy00Ni40LTEyLjRhNDguMyA0OC4zIDAgMCAxLTEyLjQtNDYuNHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ000NzYuNiA3OTIuNmMtMS43LS4yLTMuNC0xLTQuNy0yLjNMMTM3LjcgNDU2LjFhOC4wMyA4LjAzIDAgMCAxIDAtMTEuM0w1MTUuOSA2Ni42YzEuMi0xLjMgMi45LTIuMSA0LjctMi4zaC0uNGMtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM1LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMCAwIDAgMTEuM2wzMzQuMiAzMzQuMmMxLjggMS45IDQuMyAyLjYgNi43IDIuM3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwIDAtMTEuMyAwbC0zNjIgMzYxLjMtMjM3LjYtMjM3YTguMDMgOC4wMyAwIDAgMC0xMS4zIDBsLTM5LjYgMzkuNWE4LjAzIDguMDMgMCAwIDAgMCAxMS4zbDI0My4yIDI0Mi44IDM5LjYgMzkuNWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQwNy4zLTQwNi42YzMuMS0zLjEgMy4xLTguMiAwLTExLjN6TTY1Mi4zIDMzNy4zYTQ3LjgxIDQ3LjgxIDAgMCAwIDMzLjktMzMuOWM0LjQtMTYuNi0uMy0zNC4yLTEyLjQtNDYuNGE0Ny45MyA0Ny45MyAwIDAgMC00Ni40LTEyLjQgNDcuODEgNDcuODEgMCAwIDAtMzMuOSAzMy45Yy00LjQgMTYuNi4zIDM0LjIgMTIuNCA0Ni40YTQ4LjMgNDguMyAwIDAgMCA0Ni40IDEyLjR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTEzNy43IDQ0NC44YTguMDMgOC4wMyAwIDAgMCAwIDExLjNsMzM0LjIgMzM0LjJjMS4zIDEuMyAyLjkgMi4xIDQuNyAyLjMgMi40LjMgNC44LS41IDYuNi0yLjNMODYxLjQgNDEyYzEuNy0xLjcgMi41LTQgMi4zLTYuM2wtMjUuNS0zMDEuNGMtLjctNy44LTYuOC0xMy45LTE0LjYtMTQuNkw1MjIuMiA2NC4zaC0xLjZjLTEuOC4yLTMuNCAxLTQuNyAyLjNMMTM3LjcgNDQ0Ljh6bTQwOC4xLTMwNi4ybDIyNC42IDE5IDE5IDIyNC42TDQ3Ny41IDY5NCAyMzMuOSA0NTAuNWwzMTEuOS0zMTEuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVG9vbFR3b1RvbmUgPSBnZXRJY29uKCd0b29sJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcwNi44IDQ4OC43YTMyLjA1IDMyLjA1IDAgMCAxLTQ1LjMgMEw1MzcgMzY0LjJhMzIuMDUgMzIuMDUgMCAwIDEgMC00NS4zbDEzMi45LTEzMi44YTE4NC4yIDE4NC4yIDAgMCAwLTE0NCA1My41Yy01OC4xIDU4LjEtNjkuMyAxNDUuMy0zMy42IDIxNC42TDQzOS41IDUwN2MtLjEgMC0uMS0uMS0uMS0uMUwyMDkuMyA3MzdsNzkuMiA3OS4yIDI3NC0yNzQuMS4xLjEgOC44LTguOGM2OS4zIDM1LjcgMTU2LjUgMjQuNSAyMTQuNi0zMy42IDM5LjItMzkuMSA1Ny4zLTkyLjEgNTMuNi0xNDMuOUw3MDYuOCA0ODguN3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNODc2LjYgMjM5LjVjLS41LS45LTEuMi0xLjgtMi0yLjUtNS01LTEzLjEtNS0xOC4xIDBMNjg0LjIgNDA5LjNsLTY3LjktNjcuOUw3ODguNyAxNjljLjgtLjggMS40LTEuNiAyLTIuNSAzLjYtNi4xIDEuNi0xMy45LTQuNS0xNy41LTk4LjItNTgtMjI2LjgtNDQuNy0zMTEuMyAzOS43LTY3IDY3LTg5LjIgMTYyLTY2LjUgMjQ3LjRsLTI5MyAyOTNjLTMgMy0yLjggNy45LjMgMTFsMTY5LjcgMTY5LjdjMy4xIDMuMSA4LjEgMy4zIDExIC4zbDI5Mi45LTI5Mi45Yzg1LjUgMjIuOCAxODAuNS43IDI0Ny42LTY2LjQgODQuNC04NC41IDk3LjctMjEzLjEgMzkuNy0zMTEuM3pNNzg2IDQ5OS44Yy01OC4xIDU4LjEtMTQ1LjMgNjkuMy0yMTQuNiAzMy42bC04LjggOC44LS4xLS4xLTI3NCAyNzQuMS03OS4yLTc5LjIgMjMwLjEtMjMwLjFzMCAuMS4xLjFsNTIuOC01Mi44Yy0zNS43LTY5LjMtMjQuNS0xNTYuNSAzMy42LTIxNC42YTE4NC4yIDE4NC4yIDAgMCAxIDE0NC01My41TDUzNyAzMTguOWEzMi4wNSAzMi4wNSAwIDAgMCAwIDQ1LjNsMTI0LjUgMTI0LjVhMzIuMDUgMzIuMDUgMCAwIDAgNDUuMyAwbDEzMi44LTEzMi44YzMuNyA1MS44LTE0LjQgMTA0LjgtNTMuNiAxNDMuOXonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVHJhZGVtYXJrQ2lyY2xlVHdvVG9uZSA9IGdldEljb24oJ3RyYWRlbWFyay1jaXJjbGUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xNzAuNyA1ODQuMmMtMS4xLjUtMi4zLjgtMy41LjhoLTYyYy0zLjEgMC01LjktMS44LTcuMi00LjZsLTc0LjYtMTU5LjJoLTg4LjdWNzE3YzAgNC40LTMuNiA4LTggOEgzODRjLTQuNCAwLTgtMy42LTgtOFYzMDdjMC00LjQgMy42LTggOC04aDE1NS42Yzk4LjggMCAxNDQuMiA1OS45IDE0NC4yIDEzMS4xIDAgNzAuMi00My42IDEwNi40LTc4LjQgMTE5LjJsODAuOCAxNjQuMmMyLjEgMy45LjQgOC43LTMuNSAxMC43eidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUyOS45IDM1N2gtODMuNHYxNDhINTI4YzUzIDAgODIuOC0yNS42IDgyLjgtNzIuNCAwLTUwLjMtMzIuOS03NS42LTgwLjktNzUuNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjA1LjQgNTQ5LjNjMzQuOC0xMi44IDc4LjQtNDkgNzguNC0xMTkuMiAwLTcxLjItNDUuNC0xMzEuMS0xNDQuMi0xMzEuMUgzODRjLTQuNCAwLTggMy42LTggOHY0MTBjMCA0LjQgMy42IDggOCA4aDU0LjdjNC40IDAgOC0zLjYgOC04VjU2MS4yaDg4LjdMNjEwIDcyMC40YzEuMyAyLjggNC4xIDQuNiA3LjIgNC42aDYyYzEuMiAwIDIuNC0uMyAzLjUtLjggMy45LTIgNS42LTYuOCAzLjUtMTAuN2wtODAuOC0xNjQuMnpNNTI4IDUwNWgtODEuNVYzNTdoODMuNGM0OCAwIDgwLjkgMjUuMyA4MC45IDc1LjYgMCA0Ni44LTI5LjggNzIuNC04Mi44IDcyLjR6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlVubG9ja1R3b1RvbmUgPSBnZXRJY29uKCd1bmxvY2snLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMjMyIDg0MGg1NjBWNTM2SDIzMnYzMDR6bTI4MC0yMjZhNDguMDEgNDguMDEgMCAwIDEgMjggODd2NTNjMCA0LjQtMy42IDgtOCA4aC00MGMtNC40IDAtOC0zLjYtOC04di01M2E0OC4wMSA0OC4wMSAwIDAgMSAyOC04N3onXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDg0IDcwMXY1M2MwIDQuNCAzLjYgOCA4IDhoNDBjNC40IDAgOC0zLjYgOC04di01M2E0OC4wMSA0OC4wMSAwIDEgMC01NiAweidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004MzIgNDY0SDMzMlYyNDBjMC0zMC45IDI1LjEtNTYgNTYtNTZoMjQ4YzMwLjkgMCA1NiAyNS4xIDU2IDU2djY4YzAgNC40IDMuNiA4IDggOGg1NmM0LjQgMCA4LTMuNiA4LTh2LTY4YzAtNzAuNy01Ny4zLTEyOC0xMjgtMTI4SDM4OGMtNzAuNyAwLTEyOCA1Ny4zLTEyOCAxMjh2MjI0aC02OGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2Mzg0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0MGMxNy43IDAgMzItMTQuMyAzMi0zMlY0OTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCAzNzZIMjMyVjUzNmg1NjB2MzA0eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Ucm9waHlUd29Ub25lID0gZ2V0SWNvbigndHJvcGh5JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTMyMCA0ODBjMCA0OS4xIDE5LjEgOTUuMyA1My45IDEzMC4xIDM0LjcgMzQuOCA4MSA1My45IDEzMC4xIDUzLjloMTZjNDkuMSAwIDk1LjMtMTkuMSAxMzAuMS01My45IDM0LjgtMzQuNyA1My45LTgxIDUzLjktMTMwLjFWMTg0SDMyMHYyOTZ6TTE4NCAzNTJjMCA0MSAyNi45IDc1LjggNjQgODcuNi0zNy4xLTExLjktNjQtNDYuNy02NC04Ny42em0zNjQgMzgyLjVDNjY1IDcyMS44IDc1OC40IDYzMC4yIDc3My44IDUxNCA3NTguMyA2MzAuMiA2NjUgNzIxLjcgNTQ4IDczNC41ek0yNTAuMiA1MTRDMjY1LjYgNjMwLjIgMzU5IDcyMS44IDQ3NiA3MzQuNSAzNTkgNzIxLjcgMjY1LjcgNjMwLjIgMjUwLjIgNTE0eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004NjggMTYwaC05MnYtNDBjMC00LjQtMy42LTgtOC04SDI1NmMtNC40IDAtOCAzLjYtOCA4djQwaC05MmE0NCA0NCAwIDAgMC00NCA0NHYxNDhjMCA4MS43IDYwIDE0OS42IDEzOC4yIDE2MkMyNjUuNyA2MzAuMiAzNTkgNzIxLjcgNDc2IDczNC41djEwNS4ySDI4MGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJWOTA0YzAgNC40IDMuNiA4IDggOGg1MTJjNC40IDAgOC0zLjYgOC04di0zMi4zYzAtMTcuNy0xNC4zLTMyLTMyLTMySDU0OFY3MzQuNUM2NjUgNzIxLjcgNzU4LjMgNjMwLjIgNzczLjggNTE0IDg1MiA1MDEuNiA5MTIgNDMzLjcgOTEyIDM1MlYyMDRhNDQgNDQgMCAwIDAtNDQtNDR6TTI0OCA0MzkuNmE5MS45OSA5MS45OSAwIDAgMS02NC04Ny42VjIzMmg2NHYyMDcuNnpNNzA0IDQ4MGMwIDQ5LjEtMTkuMSA5NS40LTUzLjkgMTMwLjEtMzQuOCAzNC44LTgxIDUzLjktMTMwLjEgNTMuOWgtMTZjLTQ5LjEgMC05NS40LTE5LjEtMTMwLjEtNTMuOS0zNC44LTM0LjgtNTMuOS04MS01My45LTEzMC4xVjE4NGgzODR2Mjk2em0xMzYtMTI4YzAgNDEtMjYuOSA3NS44LTY0IDg3LjZWMjMyaDY0djEyMHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVXBDaXJjbGVUd29Ub25lID0gZ2V0SWNvbigndXAtY2lyY2xlJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bTE3OCA0NzloLTQ2LjljLTEwLjIgMC0xOS45LTQuOS0yNS45LTEzLjJMNTEyIDQ2MC40IDQwNi44IDYwNS44Yy02IDguMy0xNS42IDEzLjItMjUuOSAxMy4ySDMzNGMtNi41IDAtMTAuMy03LjQtNi41LTEyLjdsMTc4LTI0NmMzLjItNC40IDkuNy00LjQgMTIuOSAwbDE3OCAyNDZjMy45IDUuMy4xIDEyLjctNi40IDEyLjd6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTE4LjQgMzYwLjNhNy45NSA3Ljk1IDAgMCAwLTEyLjkgMGwtMTc4IDI0NmMtMy44IDUuMyAwIDEyLjcgNi41IDEyLjdoNDYuOWMxMC4zIDAgMTkuOS00LjkgMjUuOS0xMy4yTDUxMiA0NjAuNGwxMDUuMiAxNDUuNGM2IDguMyAxNS43IDEzLjIgMjUuOSAxMy4ySDY5MGM2LjUgMCAxMC4zLTcuNCA2LjQtMTIuN2wtMTc4LTI0NnonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuVGh1bmRlcmJvbHRUd29Ub25lID0gZ2V0SWNvbigndGh1bmRlcmJvbHQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNjk1LjQgMTY0LjFINDcwLjhMMjgxLjIgNDkxLjVoMTU3LjRsLTYwLjMgMjQxIDMxOS44LTMwNS4xaC0yMTF6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg0OC4xIDM1OS4zSDYyNy44TDgyNS45IDEwOWM0LjEtNS4zLjQtMTMtNi4zLTEzSDQzNi4xYy0yLjggMC01LjUgMS41LTYuOSA0TDE3MC4xIDU0Ny41Yy0zLjEgNS4zLjcgMTIgNi45IDEyaDE3NC40TDI2MiA5MTcuMWMtMS45IDcuOCA3LjUgMTMuMyAxMy4zIDcuN0w4NTMuNiAzNzNjNS4yLTQuOSAxLjctMTMuNy01LjUtMTMuN3pNMzc4LjMgNzMyLjVsNjAuMy0yNDFIMjgxLjJsMTg5LjYtMzI3LjRoMjI0LjZMNDg3LjEgNDI3LjRoMjExTDM3OC4zIDczMi41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5VcFNxdWFyZVR3b1RvbmUgPSBnZXRJY29uKCd1cC1zcXVhcmUnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTg0IDg0MGg2NTZWMTg0SDE4NHY2NTZ6bTE0My41LTIyOC43bDE3OC0yNDZjMy4yLTQuNCA5LjctNC40IDEyLjkgMGwxNzggMjQ2YzMuOSA1LjMuMSAxMi43LTYuNCAxMi43aC00Ni45Yy0xMC4yIDAtMTkuOS00LjktMjUuOS0xMy4yTDUxMiA0NjUuNCA0MDYuOCA2MTAuOGMtNiA4LjMtMTUuNiAxMy4yLTI1LjkgMTMuMkgzMzRjLTYuNSAwLTEwLjMtNy40LTYuNS0xMi43eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ00zMzQgNjI0aDQ2LjljMTAuMyAwIDE5LjktNC45IDI1LjktMTMuMkw1MTIgNDY1LjRsMTA1LjIgMTQ1LjRjNiA4LjMgMTUuNyAxMy4yIDI1LjkgMTMuMkg2OTBjNi41IDAgMTAuMy03LjQgNi40LTEyLjdsLTE3OC0yNDZhNy45NSA3Ljk1IDAgMCAwLTEyLjkgMGwtMTc4IDI0NmMtMy44IDUuMyAwIDEyLjcgNi41IDEyLjd6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLlVzYlR3b1RvbmUgPSBnZXRJY29uKCd1c2InLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNzU5LjkgNTA0SDI2NC4xYy0yNi41IDAtNDguMSAxOS43LTQ4LjEgNDR2MjkyaDU5MlY1NDhjMC0yNC4zLTIxLjYtNDQtNDguMS00NHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDU2IDI0OGgtNDhjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTE2MCAwaC00OGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNzYwIDQzMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMjk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyODhjLTY2LjIgMC0xMjAgNTIuMS0xMjAgMTE2djM1NmMwIDQuNCAzLjYgOCA4IDhoNzIwYzQuNCAwIDgtMy42IDgtOFY1NDhjMC02My45LTUzLjgtMTE2LTEyMC0xMTZ6TTMzNiAxODRoMzUydjI0OEgzMzZWMTg0em00NzIgNjU2SDIxNlY1NDhjMC0yNC4zIDIxLjYtNDQgNDguMS00NGg0OTUuOGMyNi41IDAgNDguMSAxOS43IDQ4LjEgNDR2MjkyeidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5WaWRlb0NhbWVyYVR3b1RvbmUgPSBnZXRJY29uKCd2aWRlby1jYW1lcmEnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNMTM2IDc5Mmg1NzZWMjMySDEzNnY1NjB6bTY0LTQ4OGMwLTQuNCAzLjYtOCA4LThoMTEyYzQuNCAwIDggMy42IDggOHY0OGMwIDQuNC0zLjYgOC04IDhIMjA4Yy00LjQgMC04LTMuNi04LTh2LTQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ005MTIgMzAyLjNMNzg0IDM3NlYyMjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMTI4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY1NzZjMCAzNS4zIDI4LjcgNjQgNjQgNjRoNTkyYzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0OGwxMjggNzMuN2MyMS4zIDEyLjMgNDgtMy4xIDQ4LTI3LjZWMzMwYzAtMjQuNi0yNi43LTQwLTQ4LTI3Ljd6TTcxMiA3OTJIMTM2VjIzMmg1NzZ2NTYwem0xNzYtMTY3bC0xMDQtNTkuOFY0NTguOUw4ODggMzk5djIyNnonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNMjA4IDM2MGgxMTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMjA4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5XYWxsZXRUd29Ub25lID0gZ2V0SWNvbignd2FsbGV0JywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTEySDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NzM2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA0NjRINTI4VjQ0OGgzMTJ2MTI4em0wLTE5Mkg0OTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjE5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzNDR2MjAwSDE4NFYxODRoNjU2djIwMHonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MjggNTc2aDMxMlY0NDhINTI4djEyOHptOTItMTA0YzIyLjEgMCA0MCAxNy45IDQwIDQwcy0xNy45IDQwLTQwIDQwLTQwLTE3LjktNDAtNDAgMTcuOS00MCA0MC00MHonXG4gICAgXSwgW3ByaW1hcnlDb2xvciwgJ001ODAgNTEyYTQwIDQwIDAgMSAwIDgwIDAgNDAgNDAgMCAxIDAtODAgMHonXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ00xODQgODQwaDY1NlY2NDBINDk2Yy0xNy43IDAtMzItMTQuMy0zMi0zMlY0MTZjMC0xNy43IDE0LjMtMzIgMzItMzJoMzQ0VjE4NEgxODR2NjU2eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5XYXJuaW5nVHdvVG9uZSA9IGdldEljb24oJ3dhcm5pbmcnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTk1NS43IDg1NmwtNDE2LTcyMGMtNi4yLTEwLjctMTYuOS0xNi0yNy43LTE2cy0yMS42IDUuMy0yNy43IDE2bC00MTYgNzIwQzU2IDg3Ny40IDcxLjQgOTA0IDk2IDkwNGg4MzJjMjQuNiAwIDQwLTI2LjYgMjcuNy00OHptLTc4My41LTI3LjlMNTEyIDIzOS45bDMzOS44IDU4OC4ySDE3Mi4yeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTE3Mi4yIDgyOC4xaDY3OS42TDUxMiAyMzkuOSAxNzIuMiA4MjguMXpNNTYwIDcyMGE0OC4wMSA0OC4wMSAwIDAgMS05NiAwIDQ4LjAxIDQ4LjAxIDAgMCAxIDk2IDB6bS0xNi0zMDR2MTg0YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFY0MTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNDY0IDcyMGE0OCA0OCAwIDEgMCA5NiAwIDQ4IDQ4IDAgMSAwLTk2IDB6bTE2LTMwNHYxODRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFY0MTZjMC00LjQtMy42LTgtOC04aC00OGMtNC40IDAtOCAzLjYtOCA4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DaVR3b1RvbmUgPSBnZXRJY29uKCdjaScsIHR3b3RvbmUsIGZ1bmN0aW9uIChwcmltYXJ5Q29sb3IsIHNlY29uZGFyeUNvbG9yKSB7XG4gICAgcmV0dXJuIGdldE5vZGUobmV3Vmlld0JveCwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDY0QzI2NC42IDY0IDY0IDI2NC42IDY0IDUxMnMyMDAuNiA0NDggNDQ4IDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OFM3NTkuNCA2NCA1MTIgNjR6bTAgODIwYy0yMDUuNCAwLTM3Mi0xNjYuNi0zNzItMzcyczE2Ni42LTM3MiAzNzItMzcyIDM3MiAxNjYuNiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzIgMzcyeidcbiAgICBdLCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTUxMiAxNDBjLTIwNS40IDAtMzcyIDE2Ni42LTM3MiAzNzJzMTY2LjYgMzcyIDM3MiAzNzIgMzcyLTE2Ni42IDM3Mi0zNzItMTY2LjYtMzcyLTM3Mi0zNzJ6bS02My41IDUyMi44YzQ5LjMgMCA4Mi44LTI5LjQgODctNzIuNC40LTQuMSAzLjgtNy4zIDgtNy4zaDUyLjdjMi40IDAgNC40IDIgNC40IDQuNCAwIDc3LjQtNjQuMyAxMzIuNS0xNTIuMyAxMzIuNUMzNDUuNCA3MjAgMjg2IDY1MS40IDI4NiA1MzcuNHYtNDlDMjg2IDM3My41IDM0NS40IDMwNCA0NDguMyAzMDRjODguMyAwIDE1Mi4zIDU2LjkgMTUyLjMgMTM4LjEgMCAyLjQtMiA0LjQtNC40IDQuNGgtNTIuNmMtNC4yIDAtNy42LTMuMi04LTcuNC0zLjktNDYuMS0zNy41LTc3LjYtODctNzcuNi02MS4xIDAtOTUuNiA0NS40LTk1LjcgMTI2Ljh2NDkuM2MwIDgwLjMgMzQuNSAxMjUuMiA5NS42IDEyNS4yek03MzggNzA0LjFjMCA0LjQtMy42IDgtOCA4aC01MC40Yy00LjQgMC04LTMuNi04LThWMzE5LjljMC00LjQgMy42LTggOC04SDczMGM0LjQgMCA4IDMuNiA4IDh2Mzg0LjJ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTczMCAzMTEuOWgtNTAuNGMtNC40IDAtOCAzLjYtOCA4djM4NC4yYzAgNC40IDMuNiA4IDggOEg3MzBjNC40IDAgOC0zLjYgOC04VjMxOS45YzAtNC40LTMuNi04LTgtOHptLTI4MS40IDQ5LjZjNDkuNSAwIDgzLjEgMzEuNSA4NyA3Ny42LjQgNC4yIDMuOCA3LjQgOCA3LjRoNTIuNmMyLjQgMCA0LjQtMiA0LjQtNC40IDAtODEuMi02NC0xMzguMS0xNTIuMy0xMzguMUMzNDUuNCAzMDQgMjg2IDM3My41IDI4NiA0ODguNHY0OWMwIDExNCA1OS40IDE4Mi42IDE2Mi4zIDE4Mi42IDg4IDAgMTUyLjMtNTUuMSAxNTIuMy0xMzIuNSAwLTIuNC0yLTQuNC00LjQtNC40aC01Mi43Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0My0zNy43IDcyLjQtODcgNzIuNC02MS4xIDAtOTUuNi00NC45LTk1LjYtMTI1LjJ2LTQ5LjNjLjEtODEuNCAzNC42LTEyNi44IDk1LjctMTI2Ljh6J1xuICAgIF0pO1xufSk7XG5leHBvcnRzLkNvcHlyaWdodFR3b1RvbmUgPSBnZXRJY29uKCdjb3B5cmlnaHQnLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem01LjUgNTMzYzUyLjkgMCA4OC44LTMxLjcgOTMtNzcuOC40LTQuMSAzLjgtNy4zIDgtNy4zaDU2LjhjMi42IDAgNC43IDIuMSA0LjcgNC43IDAgODIuNi02OC43IDE0MS40LTE2Mi43IDE0MS40QzQwNy40IDczNCAzNDQgNjYwLjggMzQ0IDUzOS4xdi01Mi4zQzM0NCAzNjQuMiA0MDcuNCAyOTAgNTE3LjMgMjkwYzk0LjMgMCAxNjIuNyA2MC43IDE2Mi43IDE0Ny40IDAgMi42LTIuMSA0LjctNC43IDQuN2gtNTYuN2MtNC4yIDAtNy43LTMuMi04LTcuNC00LTQ5LjYtNDAtODMuNC05My04My40LTY1LjIgMC0xMDIuMSA0OC41LTEwMi4yIDEzNS41djUyLjZjMCA4NS43IDM2LjggMTMzLjYgMTAyLjEgMTMzLjZ6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxNy42IDM1MS4zYzUzIDAgODkgMzMuOCA5MyA4My40LjMgNC4yIDMuOCA3LjQgOCA3LjRoNTYuN2MyLjYgMCA0LjctMi4xIDQuNy00LjcgMC04Ni43LTY4LjQtMTQ3LjQtMTYyLjctMTQ3LjRDNDA3LjQgMjkwIDM0NCAzNjQuMiAzNDQgNDg2Ljh2NTIuM0MzNDQgNjYwLjggNDA3LjQgNzM0IDUxNy4zIDczNGM5NCAwIDE2Mi43LTU4LjggMTYyLjctMTQxLjQgMC0yLjYtMi4xLTQuNy00LjctNC43aC01Ni44Yy00LjIgMC03LjYgMy4yLTggNy4zLTQuMiA0Ni4xLTQwLjEgNzcuOC05MyA3Ny44LTY1LjMgMC0xMDIuMS00Ny45LTEwMi4xLTEzMy42di01Mi42Yy4xLTg3IDM3LTEzNS41IDEwMi4yLTEzNS41eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5Eb2xsYXJUd29Ub25lID0gZ2V0SWNvbignZG9sbGFyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ001MTIgNjRDMjY0LjYgNjQgNjQgMjY0LjYgNjQgNTEyczIwMC42IDQ0OCA0NDggNDQ4IDQ0OC0yMDAuNiA0NDgtNDQ4Uzc1OS40IDY0IDUxMiA2NHptMCA4MjBjLTIwNS40IDAtMzcyLTE2Ni42LTM3Mi0zNzJzMTY2LjYtMzcyIDM3Mi0zNzIgMzcyIDE2Ni42IDM3MiAzNzItMTY2LjYgMzcyLTM3MiAzNzJ6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNDI2LjYgNDEwLjNjMCAyNS40IDE1LjcgNDUuMSA0OS41IDU3LjMgNC43IDEuOSA5LjQgMy40IDE1IDV2LTEyNGMtMzcgNC43LTY0LjUgMjUuNC02NC41IDYxLjd6bTExNi41IDEzNS4yYy0yLjktLjYtNS43LTEuMy04LjgtMi4yVjY3N2M0Mi42LTMuOCA3Mi0yNy4zIDcyLTY2LjQgMC0zMC43LTE1LjktNTAuNy02My4yLTY1LjF6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTEyIDE0MGMtMjA1LjQgMC0zNzIgMTY2LjYtMzcyIDM3MnMxNjYuNiAzNzIgMzcyIDM3MiAzNzItMTY2LjYgMzcyLTM3Mi0xNjYuNi0zNzItMzcyLTM3MnptMjIuNCA1ODkuMmwuMiAzMS43YzAgNC41LTMuNiA4LjEtOCA4LjFoLTI4LjRjLTQuNCAwLTgtMy42LTgtOHYtMzEuNGMtODktNi41LTEzMC43LTU3LjEtMTM1LjItMTEyLjEtLjQtNC43IDMuMy04LjcgOC04LjdoNDYuMmMzLjkgMCA3LjMgMi44IDcuOSA2LjYgNS4xIDMxLjggMjkuOSA1NS40IDc0LjEgNjEuM1Y1MzRsLTI0LjctNi4zYy01Mi4zLTEyLjUtMTAyLjEtNDUuMS0xMDIuMS0xMTIuNyAwLTczIDU1LjQtMTEyLjEgMTI2LjItMTE5di0zM2MwLTQuNCAzLjYtOCA4LThoMjguMWM0LjQgMCA4IDMuNiA4IDh2MzIuN2M2OC41IDYuOSAxMTkuOCA0Ni45IDEyNS45IDEwOS4yYTguMSA4LjEgMCAwIDEtOCA4LjhoLTQ0LjljLTQgMC03LjQtMi45LTcuOS02LjktNC0yOS4yLTI3LjUtNTMtNjUuNS01OC4ydjEzNC4zbDI1LjQgNS45YzY0LjggMTYgMTA4LjkgNDcgMTA5IDExNi40IDAgNzUuMi01NiAxMTcuMS0xMzQuMyAxMjR6J1xuICAgIF0sIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTU1OS43IDQ4OC44bC0yNS40LTUuOVYzNDguNmMzOCA1LjIgNjEuNSAyOSA2NS41IDU4LjIuNSA0IDMuOSA2LjkgNy45IDYuOWg0NC45YzQuNyAwIDguNC00LjEgOC04LjgtNi4xLTYyLjMtNTcuNC0xMDIuMy0xMjUuOS0xMDkuMlYyNjNjMC00LjQtMy42LTgtOC04aC0yOC4xYy00LjQgMC04IDMuNi04IDh2MzNjLTcwLjggNi45LTEyNi4yIDQ2LTEyNi4yIDExOSAwIDY3LjYgNDkuOCAxMDAuMiAxMDIuMSAxMTIuN2wyNC43IDYuM3YxNDIuN2MtNDQuMi01LjktNjktMjkuNS03NC4xLTYxLjMtLjYtMy44LTQtNi42LTcuOS02LjZIMzYzYy00LjcgMC04LjQgNC04IDguNyA0LjUgNTUgNDYuMiAxMDUuNiAxMzUuMiAxMTIuMVY3NjFjMCA0LjQgMy42IDggOCA4aDI4LjRjNC40IDAgOC0zLjYgOC04LjFsLS4yLTMxLjdjNzguMy02LjkgMTM0LjMtNDguOCAxMzQuMy0xMjQtLjEtNjkuNC00NC4yLTEwMC40LTEwOS0xMTYuNHptLTY4LjYtMTYuMmMtNS42LTEuNi0xMC4zLTMuMS0xNS01LTMzLjgtMTIuMi00OS41LTMxLjktNDkuNS01Ny4zIDAtMzYuMyAyNy41LTU3IDY0LjUtNjEuN3YxMjR6TTUzNC4zIDY3N1Y1NDMuM2MzLjEuOSA1LjkgMS42IDguOCAyLjIgNDcuMyAxNC40IDYzLjIgMzQuNCA2My4yIDY1LjEgMCAzOS4xLTI5LjQgNjIuNi03MiA2Ni40eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5FdXJvVHdvVG9uZSA9IGdldEljb24oJ2V1cm8nLCB0d290b25lLCBmdW5jdGlvbiAocHJpbWFyeUNvbG9yLCBzZWNvbmRhcnlDb2xvcikge1xuICAgIHJldHVybiBnZXROb2RlKG5ld1ZpZXdCb3gsIFtcbiAgICAgICAgcHJpbWFyeUNvbG9yLFxuICAgICAgICAnTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnonXG4gICAgXSwgW1xuICAgICAgICBzZWNvbmRhcnlDb2xvcixcbiAgICAgICAgJ001MTIgMTQwYy0yMDUuNCAwLTM3MiAxNjYuNi0zNzIgMzcyczE2Ni42IDM3MiAzNzIgMzcyIDM3Mi0xNjYuNiAzNzItMzcyLTE2Ni42LTM3Mi0zNzItMzcyem0xMTcuMSA1ODEuMWMwIDMuOC0yLjcgNy02LjQgNy44LTE1LjkgMy40LTM0LjQgNS4xLTU1LjMgNS4xLTEwOS44IDAtMTgzLTU4LjgtMjAwLjItMTU4SDMzN2MtNC40IDAtOC0zLjYtOC04di0yNy4yYzAtNC40IDMuNi04IDgtOGgyNi4xdi0zNi45YzAtNC40IDAtOC43LjMtMTIuOEgzMzdjLTQuNCAwLTgtMy42LTgtOHYtMjcuMmMwLTQuNCAzLjYtOCA4LThoMzEuOEMzODguNSAzNDUuNyA0NjAuNyAyOTAgNTY3LjQgMjkwYzIwLjkgMCAzOS40IDEuOSA1NS4zIDUuNCAzLjcuOCA2LjMgNCA2LjMgNy44VjM0NmE4IDggMCAwIDEtOS42IDcuOGMtMTQuNi0yLjktMzEuOC00LjQtNTEuNy00LjQtNjUuMyAwLTExMC40IDMzLjUtMTI3LjYgOTAuNGgxMjguM2M0LjQgMCA4IDMuNiA4IDhWNDc1YzAgNC40LTMuNiA4LTggOEg0MzIuNWMtLjMgNC40LS4zIDkuMS0uMyAxMy44djM2aDEzNi40YzQuNCAwIDggMy42IDggOFY1NjhjMCA0LjQtMy42IDgtOCA4SDQzOGMxNS4zIDYyIDYxLjMgOTguNiAxMjkuOCA5OC42IDE5LjkgMCAzNy4xLTEuMyA1MS44LTQuMSA0LjktMSA5LjUgMi44IDkuNSA3Ljh2NDIuOHonXG4gICAgXSwgW1xuICAgICAgICBwcmltYXJ5Q29sb3IsXG4gICAgICAgICdNNjE5LjYgNjcwLjVjLTE0LjcgMi44LTMxLjkgNC4xLTUxLjggNC4xLTY4LjUgMC0xMTQuNS0zNi42LTEyOS44LTk4LjZoMTMwLjZjNC40IDAgOC0zLjYgOC04di0yNy4yYzAtNC40LTMuNi04LTgtOEg0MzIuMnYtMzZjMC00LjcgMC05LjQuMy0xMy44aDEzNS45YzQuNCAwIDgtMy42IDgtOHYtMjcuMmMwLTQuNC0zLjYtOC04LThINDQwLjFjMTcuMi01Ni45IDYyLjMtOTAuNCAxMjcuNi05MC40IDE5LjkgMCAzNy4xIDEuNSA1MS43IDQuNGE4IDggMCAwIDAgOS42LTcuOHYtNDIuOGMwLTMuOC0yLjYtNy02LjMtNy44LTE1LjktMy41LTM0LjQtNS40LTU1LjMtNS40LTEwNi43IDAtMTc4LjkgNTUuNy0xOTguNiAxNDkuOUgzMzdjLTQuNCAwLTggMy42LTggOHYyNy4yYzAgNC40IDMuNiA4IDggOGgyNi40Yy0uMyA0LjEtLjMgOC40LS4zIDEyLjh2MzYuOUgzMzdjLTQuNCAwLTggMy42LTggOFY1NjhjMCA0LjQgMy42IDggOCA4aDMwLjJjMTcuMiA5OS4yIDkwLjQgMTU4IDIwMC4yIDE1OCAyMC45IDAgMzkuNC0xLjcgNTUuMy01LjEgMy43LS44IDYuNC00IDYuNC03Ljh2LTQyLjhjMC01LTQuNi04LjgtOS41LTcuOHonXG4gICAgXSk7XG59KTtcbmV4cG9ydHMuR29sZFR3b1RvbmUgPSBnZXRJY29uKCdnb2xkJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ000MzUuNyA1NTguN2MtLjYtMy45LTQtNi43LTcuOS02LjdIMTY2LjJjLTMuOSAwLTcuMyAyLjgtNy45IDYuN2wtNDAuMiAyNDhjLS4xLjQtLjEuOS0uMSAxLjMgMCA0LjQgMy42IDggOCA4aDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4ek0xOTYuNSA3NDhsMjAuNy0xMjhoMTU5LjVsMjAuNyAxMjhIMTk2LjV6bTcwOS40IDU4LjdsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0g1OTYuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDhoMzQyYy40IDAgLjkgMCAxLjMtLjEgNC4zLS43IDcuMy00LjggNi42LTkuMnpNNjI2LjUgNzQ4bDIwLjctMTI4aDE1OS41bDIwLjcgMTI4SDYyNi41ek0zNDIgNDcyaDM0MmMuNCAwIC45IDAgMS4zLS4xIDQuNC0uNyA3LjMtNC44IDYuNi05LjJsLTQwLjItMjQ4Yy0uNi0zLjktNC02LjctNy45LTYuN0gzODIuMmMtMy45IDAtNy4zIDIuOC03LjkgNi43bC00MC4yIDI0OGMtLjEuNC0uMS45LS4xIDEuMyAwIDQuNCAzLjYgOCA4IDh6bTkxLjItMTk2aDE1OS41bDIwLjcgMTI4aC0yMDFsMjAuOC0xMjh6J1xuICAgIF0sIFtcbiAgICAgICAgc2Vjb25kYXJ5Q29sb3IsXG4gICAgICAgICdNNTkyLjcgMjc2SDQzMy4ybC0yMC44IDEyOGgyMDF6TTIxNy4yIDYyMGwtMjAuNyAxMjhoMjAwLjlsLTIwLjctMTI4em00MzAgMGwtMjAuNyAxMjhoMjAwLjlsLTIwLjctMTI4eidcbiAgICBdKTtcbn0pO1xuZXhwb3J0cy5DYW5sZW5kYXJUd29Ub25lID0gZ2V0SWNvbignY2FubGVuZGFyJywgdHdvdG9uZSwgZnVuY3Rpb24gKHByaW1hcnlDb2xvciwgc2Vjb25kYXJ5Q29sb3IpIHtcbiAgICByZXR1cm4gZ2V0Tm9kZShuZXdWaWV3Qm94LCBbXG4gICAgICAgIHNlY29uZGFyeUNvbG9yLFxuICAgICAgICAnTTcxMiAzMDRjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgzODR2NDhjMCA0LjQtMy42IDgtOCA4aC01NmMtNC40IDAtOC0zLjYtOC04di00OEgxODR2MTM2aDY1NlYyNTZINzEydjQ4eidcbiAgICBdLCBbXG4gICAgICAgIHByaW1hcnlDb2xvcixcbiAgICAgICAgJ004ODAgMTg0SDcxMnYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDM4NHYtNjRjMC00LjQtMy42LTgtOC04aC01NmMtNC40IDAtOCAzLjYtOCA4djY0SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NjY0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDczNmMxNy43IDAgMzItMTQuMyAzMi0zMlYyMTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA2NTZIMTg0VjQ2MGg2NTZ2Mzgwem0wLTQ0OEgxODRWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNnonXG4gICAgXSk7XG59KTtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gJE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKTtcbn07XG4iLCJ2YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xuLy8gMTkuMS4yLjQgLyAxNS4yLjMuNiBPYmplY3QuZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcylcbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJyksICdPYmplY3QnLCB7IGRlZmluZVByb3BlcnR5OiByZXF1aXJlKCcuL19vYmplY3QtZHAnKS5mIH0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbC9pdGVyYXRvclwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLml0ZXJhYmxlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX3drcy1leHQnKS5mKCdpdGVyYXRvcicpO1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuICAgIHZhciBzID0gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xuICAgIHZhciBpID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIGwgPSBzLmxlbmd0aDtcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgYSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcbiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2hpZGUnKShJdGVyYXRvclByb3RvdHlwZSwgcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoQ29uc3RydWN0b3IsIE5BTUUgKyAnIEl0ZXJhdG9yJyk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBnZXRLZXlzID0gcmVxdWlyZSgnLi9fb2JqZWN0LWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaSA9IDA7XG4gIHZhciBQO1xuICB3aGlsZSAobGVuZ3RoID4gaSkgZFAuZihPLCBQID0ga2V5c1tpKytdLCBQcm9wZXJ0aWVzW1BdKTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG5tb2R1bGUuZXhwb3J0cyA9IGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiIsIi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90byA6IG51bGw7XG59O1xuIiwicmVxdWlyZSgnLi9lczYuYXJyYXkuaXRlcmF0b3InKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIFRPX1NUUklOR19UQUcgPSByZXF1aXJlKCcuL193a3MnKSgndG9TdHJpbmdUYWcnKTtcblxudmFyIERPTUl0ZXJhYmxlcyA9ICgnQ1NTUnVsZUxpc3QsQ1NTU3R5bGVEZWNsYXJhdGlvbixDU1NWYWx1ZUxpc3QsQ2xpZW50UmVjdExpc3QsRE9NUmVjdExpc3QsRE9NU3RyaW5nTGlzdCwnICtcbiAgJ0RPTVRva2VuTGlzdCxEYXRhVHJhbnNmZXJJdGVtTGlzdCxGaWxlTGlzdCxIVE1MQWxsQ29sbGVjdGlvbixIVE1MQ29sbGVjdGlvbixIVE1MRm9ybUVsZW1lbnQsSFRNTFNlbGVjdEVsZW1lbnQsJyArXG4gICdNZWRpYUxpc3QsTWltZVR5cGVBcnJheSxOYW1lZE5vZGVNYXAsTm9kZUxpc3QsUGFpbnRSZXF1ZXN0TGlzdCxQbHVnaW4sUGx1Z2luQXJyYXksU1ZHTGVuZ3RoTGlzdCxTVkdOdW1iZXJMaXN0LCcgK1xuICAnU1ZHUGF0aFNlZ0xpc3QsU1ZHUG9pbnRMaXN0LFNWR1N0cmluZ0xpc3QsU1ZHVHJhbnNmb3JtTGlzdCxTb3VyY2VCdWZmZXJMaXN0LFN0eWxlU2hlZXRMaXN0LFRleHRUcmFja0N1ZUxpc3QsJyArXG4gICdUZXh0VHJhY2tMaXN0LFRvdWNoTGlzdCcpLnNwbGl0KCcsJyk7XG5cbmZvciAodmFyIGkgPSAwOyBpIDwgRE9NSXRlcmFibGVzLmxlbmd0aDsgaSsrKSB7XG4gIHZhciBOQU1FID0gRE9NSXRlcmFibGVzW2ldO1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtOQU1FXTtcbiAgdmFyIHByb3RvID0gQ29sbGVjdGlvbiAmJiBDb2xsZWN0aW9uLnByb3RvdHlwZTtcbiAgaWYgKHByb3RvICYmICFwcm90b1tUT19TVFJJTkdfVEFHXSkgaGlkZShwcm90bywgVE9fU1RSSU5HX1RBRywgTkFNRSk7XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IEl0ZXJhdG9ycy5BcnJheTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgc3RlcCA9IHJlcXVpcmUoJy4vX2l0ZXItc3RlcCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcblxuLy8gMjIuMS4zLjQgQXJyYXkucHJvdG90eXBlLmVudHJpZXMoKVxuLy8gMjIuMS4zLjEzIEFycmF5LnByb3RvdHlwZS5rZXlzKClcbi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKClcbi8vIDIyLjEuMy4zMCBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL19pdGVyLWRlZmluZScpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgdGhpcy5fdCA9IHRvSU9iamVjdChpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgLy8ga2luZFxuLy8gMjIuMS41LjIuMSAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dCgpXG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBPID0gdGhpcy5fdDtcbiAgdmFyIGtpbmQgPSB0aGlzLl9rO1xuICB2YXIgaW5kZXggPSB0aGlzLl9pKys7XG4gIGlmICghTyB8fCBpbmRleCA+PSBPLmxlbmd0aCkge1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7XG4gIHJldHVybiBzdGVwKDAsIFtpbmRleCwgT1tpbmRleF1dKTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlICg5LjQuNC42LCA5LjQuNC43KVxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGRvbmUsIHZhbHVlKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL3N5bWJvbFwiKSwgX19lc01vZHVsZTogdHJ1ZSB9OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN5bWJvbCcpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNy5zeW1ib2wub2JzZXJ2YWJsZScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuU3ltYm9sO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gRUNNQVNjcmlwdCA2IHN5bWJvbHMgc2hpbVxudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKTtcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuL19yZWRlZmluZScpO1xudmFyIE1FVEEgPSByZXF1aXJlKCcuL19tZXRhJykuS0VZO1xudmFyICRmYWlscyA9IHJlcXVpcmUoJy4vX2ZhaWxzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuL19zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIHdrcyA9IHJlcXVpcmUoJy4vX3drcycpO1xudmFyIHdrc0V4dCA9IHJlcXVpcmUoJy4vX3drcy1leHQnKTtcbnZhciB3a3NEZWZpbmUgPSByZXF1aXJlKCcuL193a3MtZGVmaW5lJyk7XG52YXIgZW51bUtleXMgPSByZXF1aXJlKCcuL19lbnVtLWtleXMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9faXMtYXJyYXknKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0lPYmplY3QgPSByZXF1aXJlKCcuL190by1pb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuL190by1wcmltaXRpdmUnKTtcbnZhciBjcmVhdGVEZXNjID0gcmVxdWlyZSgnLi9fcHJvcGVydHktZGVzYycpO1xudmFyIF9jcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZ09QTkV4dCA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BuLWV4dCcpO1xudmFyICRHT1BEID0gcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKTtcbnZhciAkR09QUyA9IHJlcXVpcmUoJy4vX29iamVjdC1nb3BzJyk7XG52YXIgJERQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgJGtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUEQgPSAkR09QRC5mO1xudmFyIGRQID0gJERQLmY7XG52YXIgZ09QTiA9IGdPUE5FeHQuZjtcbnZhciAkU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciAkSlNPTiA9IGdsb2JhbC5KU09OO1xudmFyIF9zdHJpbmdpZnkgPSAkSlNPTiAmJiAkSlNPTi5zdHJpbmdpZnk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgSElEREVOID0gd2tzKCdfaGlkZGVuJyk7XG52YXIgVE9fUFJJTUlUSVZFID0gd2tzKCd0b1ByaW1pdGl2ZScpO1xudmFyIGlzRW51bSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIFN5bWJvbFJlZ2lzdHJ5ID0gc2hhcmVkKCdzeW1ib2wtcmVnaXN0cnknKTtcbnZhciBBbGxTeW1ib2xzID0gc2hhcmVkKCdzeW1ib2xzJyk7XG52YXIgT1BTeW1ib2xzID0gc2hhcmVkKCdvcC1zeW1ib2xzJyk7XG52YXIgT2JqZWN0UHJvdG8gPSBPYmplY3RbUFJPVE9UWVBFXTtcbnZhciBVU0VfTkFUSVZFID0gdHlwZW9mICRTeW1ib2wgPT0gJ2Z1bmN0aW9uJyAmJiAhISRHT1BTLmY7XG52YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0O1xuLy8gRG9uJ3QgdXNlIHNldHRlcnMgaW4gUXQgU2NyaXB0LCBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTczXG52YXIgc2V0dGVyID0gIVFPYmplY3QgfHwgIVFPYmplY3RbUFJPVE9UWVBFXSB8fCAhUU9iamVjdFtQUk9UT1RZUEVdLmZpbmRDaGlsZDtcblxuLy8gZmFsbGJhY2sgZm9yIG9sZCBBbmRyb2lkLCBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9Njg3XG52YXIgc2V0U3ltYm9sRGVzYyA9IERFU0NSSVBUT1JTICYmICRmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRQKHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7XG4gIHZhciBwcm90b0Rlc2MgPSBnT1BEKE9iamVjdFByb3RvLCBrZXkpO1xuICBpZiAocHJvdG9EZXNjKSBkZWxldGUgT2JqZWN0UHJvdG9ba2V5XTtcbiAgZFAoaXQsIGtleSwgRCk7XG4gIGlmIChwcm90b0Rlc2MgJiYgaXQgIT09IE9iamVjdFByb3RvKSBkUChPYmplY3RQcm90bywga2V5LCBwcm90b0Rlc2MpO1xufSA6IGRQO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcpIHtcbiAgdmFyIHN5bSA9IEFsbFN5bWJvbHNbdGFnXSA9IF9jcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc3ltLl9rID0gdGFnO1xuICByZXR1cm4gc3ltO1xufTtcblxudmFyIGlzU3ltYm9sID0gVVNFX05BVElWRSAmJiB0eXBlb2YgJFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJyA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgaW5zdGFuY2VvZiAkU3ltYm9sO1xufTtcblxudmFyICRkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIEQpIHtcbiAgaWYgKGl0ID09PSBPYmplY3RQcm90bykgJGRlZmluZVByb3BlcnR5KE9QU3ltYm9scywga2V5LCBEKTtcbiAgYW5PYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBhbk9iamVjdChEKTtcbiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFELmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzKGl0LCBISURERU4pKSBkUChpdCwgSElEREVOLCBjcmVhdGVEZXNjKDEsIHt9KSk7XG4gICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkgaXRbSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2MoaXQsIGtleSwgRCk7XG4gIH0gcmV0dXJuIGRQKGl0LCBrZXksIEQpO1xufTtcbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoaXQsIFApIHtcbiAgYW5PYmplY3QoaXQpO1xuICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpO1xuICB2YXIgaSA9IDA7XG4gIHZhciBsID0ga2V5cy5sZW5ndGg7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsID4gaSkgJGRlZmluZVByb3BlcnR5KGl0LCBrZXkgPSBrZXlzW2krK10sIFBba2V5XSk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShpdCwgUCkge1xuICByZXR1cm4gUCA9PT0gdW5kZWZpbmVkID8gX2NyZWF0ZShpdCkgOiAkZGVmaW5lUHJvcGVydGllcyhfY3JlYXRlKGl0KSwgUCk7XG59O1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKGtleSkge1xuICB2YXIgRSA9IGlzRW51bS5jYWxsKHRoaXMsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIEUgfHwgIWhhcyh0aGlzLCBrZXkpIHx8ICFoYXMoQWxsU3ltYm9scywga2V5KSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1ba2V5XSA/IEUgOiB0cnVlO1xufTtcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgaXQgPSB0b0lPYmplY3QoaXQpO1xuICBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47XG4gIHZhciBEID0gZ09QRChpdCwga2V5KTtcbiAgaWYgKEQgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkgRC5lbnVtZXJhYmxlID0gdHJ1ZTtcbiAgcmV0dXJuIEQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHtcbiAgICBpZiAoIWhhcyhBbGxTeW1ib2xzLCBrZXkgPSBuYW1lc1tpKytdKSAmJiBrZXkgIT0gSElEREVOICYmIGtleSAhPSBNRVRBKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvO1xuICB2YXIgbmFtZXMgPSBnT1BOKElTX09QID8gT1BTeW1ib2xzIDogdG9JT2JqZWN0KGl0KSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkge1xuICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIDE5LjQuMS4xIFN5bWJvbChbZGVzY3JpcHRpb25dKVxuaWYgKCFVU0VfTkFUSVZFKSB7XG4gICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgaWYgKHRoaXMgaW5zdGFuY2VvZiAkU3ltYm9sKSB0aHJvdyBUeXBlRXJyb3IoJ1N5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEnKTtcbiAgICB2YXIgdGFnID0gdWlkKGFyZ3VtZW50cy5sZW5ndGggPiAwID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHRoaXMgPT09IE9iamVjdFByb3RvKSAkc2V0LmNhbGwoT1BTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgc2V0dGVyKSBzZXRTeW1ib2xEZXNjKE9iamVjdFByb3RvLCB0YWcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCBzZXQ6ICRzZXQgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnKTtcbiAgfTtcbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faztcbiAgfSk7XG5cbiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICREUC5mID0gJGRlZmluZVByb3BlcnR5O1xuICByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lcztcbiAgcmVxdWlyZSgnLi9fb2JqZWN0LXBpZScpLmYgPSAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4gICRHT1BTLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiAhcmVxdWlyZSgnLi9fbGlicmFyeScpKSB7XG4gICAgcmVkZWZpbmUoT2JqZWN0UHJvdG8sICdwcm9wZXJ0eUlzRW51bWVyYWJsZScsICRwcm9wZXJ0eUlzRW51bWVyYWJsZSwgdHJ1ZSk7XG4gIH1cblxuICB3a3NFeHQuZiA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHdyYXAod2tzKG5hbWUpKTtcbiAgfTtcbn1cblxuJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7XG5cbmZvciAodmFyIGVzNlN5bWJvbHMgPSAoXG4gIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0XG4gICdoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1ByaW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcydcbikuc3BsaXQoJywnKSwgaiA9IDA7IGVzNlN5bWJvbHMubGVuZ3RoID4gajspd2tzKGVzNlN5bWJvbHNbaisrXSk7XG5cbmZvciAodmFyIHdlbGxLbm93blN5bWJvbHMgPSAka2V5cyh3a3Muc3RvcmUpLCBrID0gMDsgd2VsbEtub3duU3ltYm9scy5sZW5ndGggPiBrOykgd2tzRGVmaW5lKHdlbGxLbm93blN5bWJvbHNbaysrXSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7XG4gIC8vIDE5LjQuMi4xIFN5bWJvbC5mb3Ioa2V5KVxuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJylcbiAgICAgID8gU3ltYm9sUmVnaXN0cnlba2V5XVxuICAgICAgOiBTeW1ib2xSZWdpc3RyeVtrZXldID0gJFN5bWJvbChrZXkpO1xuICB9LFxuICAvLyAxOS40LjIuNSBTeW1ib2wua2V5Rm9yKHN5bSlcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7XG4gICAgZm9yICh2YXIga2V5IGluIFN5bWJvbFJlZ2lzdHJ5KSBpZiAoU3ltYm9sUmVnaXN0cnlba2V5XSA9PT0gc3ltKSByZXR1cm4ga2V5O1xuICB9LFxuICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IHNldHRlciA9IGZhbHNlOyB9XG59KTtcblxuJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgJ09iamVjdCcsIHtcbiAgLy8gMTkuMS4yLjIgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuICBjcmVhdGU6ICRjcmVhdGUsXG4gIC8vIDE5LjEuMi40IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKVxuICBkZWZpbmVQcm9wZXJ0eTogJGRlZmluZVByb3BlcnR5LFxuICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKVxuICBkZWZpbmVQcm9wZXJ0aWVzOiAkZGVmaW5lUHJvcGVydGllcyxcbiAgLy8gMTkuMS4yLjYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKVxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gIC8vIDE5LjEuMi43IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE8pXG4gIGdldE93blByb3BlcnR5TmFtZXM6ICRnZXRPd25Qcm9wZXJ0eU5hbWVzLFxuICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pXG4gIGdldE93blByb3BlcnR5U3ltYm9sczogJGdldE93blByb3BlcnR5U3ltYm9sc1xufSk7XG5cbi8vIENocm9tZSAzOCBhbmQgMzkgYE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHNgIGZhaWxzIG9uIHByaW1pdGl2ZXNcbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTM0NDNcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gJGZhaWxzKGZ1bmN0aW9uICgpIHsgJEdPUFMuZigxKTsgfSk7XG5cbiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogRkFJTFNfT05fUFJJTUlUSVZFUywgJ09iamVjdCcsIHtcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgICByZXR1cm4gJEdPUFMuZih0b09iamVjdChpdCkpO1xuICB9XG59KTtcblxuLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pXG4kSlNPTiAmJiAkZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghVVNFX05BVElWRSB8fCAkZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgUyA9ICRTeW1ib2woKTtcbiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgLy8gV2ViS2l0IGNvbnZlcnRzIHN5bWJvbCB2YWx1ZXMgdG8gSlNPTiBhcyBudWxsXG4gIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9Jztcbn0pKSwgJ0pTT04nLCB7XG4gIHN0cmluZ2lmeTogZnVuY3Rpb24gc3RyaW5naWZ5KGl0KSB7XG4gICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgIHZhciBpID0gMTtcbiAgICB2YXIgcmVwbGFjZXIsICRyZXBsYWNlcjtcbiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7XG4gICAgJHJlcGxhY2VyID0gcmVwbGFjZXIgPSBhcmdzWzFdO1xuICAgIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgaWYgKCFpc1N5bWJvbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICByZXR1cm4gX3N0cmluZ2lmeS5hcHBseSgkSlNPTiwgYXJncyk7XG4gIH1cbn0pO1xuXG4vLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpXG4kU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSB8fCByZXF1aXJlKCcuL19oaWRlJykoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbi8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKCRTeW1ib2wsICdTeW1ib2wnKTtcbi8vIDIwLjIuMS45IE1hdGhbQEB0b1N0cmluZ1RhZ11cbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4vLyAyNC4zLjMgSlNPTltAQHRvU3RyaW5nVGFnXVxuc2V0VG9TdHJpbmdUYWcoZ2xvYmFsLkpTT04sICdKU09OJywgdHJ1ZSk7XG4iLCJ2YXIgTUVUQSA9IHJlcXVpcmUoJy4vX3VpZCcpKCdtZXRhJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBzZXREZXNjID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZjtcbnZhciBpZCA9IDA7XG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcbnZhciBGUkVFWkUgPSAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBpc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIHNldERlc2MoaXQsIE1FVEEsIHsgdmFsdWU6IHtcbiAgICBpOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IH0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGEoaXQpO1xuICAvLyByZXR1cm4gb2JqZWN0IElEXG4gIH0gcmV0dXJuIGl0W01FVEFdLmk7XG59O1xudmFyIGdldFdlYWsgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQSkpIHtcbiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdFxuICAgIGlmICghaXNFeHRlbnNpYmxlKGl0KSkgcmV0dXJuIHRydWU7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSkgc2V0TWV0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBLRVk6IE1FVEEsXG4gIE5FRUQ6IGZhbHNlLFxuICBmYXN0S2V5OiBmYXN0S2V5LFxuICBnZXRXZWFrOiBnZXRXZWFrLFxuICBvbkZyZWV6ZTogb25GcmVlemVcbn07XG4iLCIvLyBhbGwgZW51bWVyYWJsZSBvYmplY3Qga2V5cywgaW5jbHVkZXMgc3ltYm9sc1xudmFyIGdldEtleXMgPSByZXF1aXJlKCcuL19vYmplY3Qta2V5cycpO1xudmFyIGdPUFMgPSByZXF1aXJlKCcuL19vYmplY3QtZ29wcycpO1xudmFyIHBJRSA9IHJlcXVpcmUoJy4vX29iamVjdC1waWUnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciByZXN1bHQgPSBnZXRLZXlzKGl0KTtcbiAgdmFyIGdldFN5bWJvbHMgPSBnT1BTLmY7XG4gIGlmIChnZXRTeW1ib2xzKSB7XG4gICAgdmFyIHN5bWJvbHMgPSBnZXRTeW1ib2xzKGl0KTtcbiAgICB2YXIgaXNFbnVtID0gcElFLmY7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKHN5bWJvbHMubGVuZ3RoID4gaSkgaWYgKGlzRW51bS5jYWxsKGl0LCBrZXkgPSBzeW1ib2xzW2krK10pKSByZXN1bHQucHVzaChrZXkpO1xuICB9IHJldHVybiByZXN1bHQ7XG59O1xuIiwiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCIvLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIGdPUE4gPSByZXF1aXJlKCcuL19vYmplY3QtZ29wbicpLmY7XG52YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiBnT1BOKGl0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB3aW5kb3dOYW1lcy5zbGljZSgpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgdG9TdHJpbmcuY2FsbChpdCkgPT0gJ1tvYmplY3QgV2luZG93XScgPyBnZXRXaW5kb3dOYW1lcyhpdCkgOiBnT1BOKHRvSU9iamVjdChpdCkpO1xufTtcbiIsInJlcXVpcmUoJy4vX3drcy1kZWZpbmUnKSgnYXN5bmNJdGVyYXRvcicpO1xuIiwicmVxdWlyZSgnLi9fd2tzLWRlZmluZScpKCdvYnNlcnZhYmxlJyk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IHJlcXVpcmUoXCJjb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L3NldC1wcm90b3R5cGUtb2ZcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5vYmplY3Quc2V0LXByb3RvdHlwZS1vZicpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0LnNldFByb3RvdHlwZU9mO1xuIiwiLy8gMTkuMS4zLjE5IE9iamVjdC5zZXRQcm90b3R5cGVPZihPLCBwcm90bylcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG4kZXhwb3J0KCRleHBvcnQuUywgJ09iamVjdCcsIHsgc2V0UHJvdG90eXBlT2Y6IHJlcXVpcmUoJy4vX3NldC1wcm90bycpLnNldCB9KTtcbiIsIi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoTywgcHJvdG8pIHtcbiAgYW5PYmplY3QoTyk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pICYmIHByb3RvICE9PSBudWxsKSB0aHJvdyBUeXBlRXJyb3IocHJvdG8gKyBcIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSFcIik7XG59O1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICBmdW5jdGlvbiAodGVzdCwgYnVnZ3ksIHNldCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0ID0gcmVxdWlyZSgnLi9fY3R4JykoRnVuY3Rpb24uY2FsbCwgcmVxdWlyZSgnLi9fb2JqZWN0LWdvcGQnKS5mKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQsIDIpO1xuICAgICAgICBzZXQodGVzdCwgW10pO1xuICAgICAgICBidWdneSA9ICEodGVzdCBpbnN0YW5jZW9mIEFycmF5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHsgYnVnZ3kgPSB0cnVlOyB9XG4gICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHtcbiAgICAgICAgY2hlY2soTywgcHJvdG8pO1xuICAgICAgICBpZiAoYnVnZ3kpIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIE87XG4gICAgICB9O1xuICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksXG4gIGNoZWNrOiBjaGVja1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9vYmplY3QvY3JlYXRlXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYub2JqZWN0LmNyZWF0ZScpO1xudmFyICRPYmplY3QgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuT2JqZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGUoUCwgRCkge1xuICByZXR1cm4gJE9iamVjdC5jcmVhdGUoUCwgRCk7XG59O1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi4yIC8gMTUuMi4zLjUgT2JqZWN0LmNyZWF0ZShPIFssIFByb3BlcnRpZXNdKVxuJGV4cG9ydCgkZXhwb3J0LlMsICdPYmplY3QnLCB7IGNyZWF0ZTogcmVxdWlyZSgnLi9fb2JqZWN0LWNyZWF0ZScpIH0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19pbXBvcnREZWZhdWx0ID0gKHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQpIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IFwiZGVmYXVsdFwiOiBtb2QgfTtcbn07XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgdGlueWNvbG9yMl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJ0aW55Y29sb3IyXCIpKTtcbnZhciBodWVTdGVwID0gMjsgLy8g6Imy55u46Zi25qKvXG52YXIgc2F0dXJhdGlvblN0ZXAgPSAxNjsgLy8g6aWx5ZKM5bqm6Zi25qKv77yM5rWF6Imy6YOo5YiGXG52YXIgc2F0dXJhdGlvblN0ZXAyID0gNTsgLy8g6aWx5ZKM5bqm6Zi25qKv77yM5rex6Imy6YOo5YiGXG52YXIgYnJpZ2h0bmVzc1N0ZXAxID0gNTsgLy8g5Lqu5bqm6Zi25qKv77yM5rWF6Imy6YOo5YiGXG52YXIgYnJpZ2h0bmVzc1N0ZXAyID0gMTU7IC8vIOS6ruW6pumYtuair++8jOa3seiJsumDqOWIhlxudmFyIGxpZ2h0Q29sb3JDb3VudCA9IDU7IC8vIOa1heiJsuaVsOmHj++8jOS4u+iJsuS4ilxudmFyIGRhcmtDb2xvckNvdW50ID0gNDsgLy8g5rex6Imy5pWw6YeP77yM5Li76Imy5LiLXG5mdW5jdGlvbiBnZXRIdWUoaHN2LCBpLCBsaWdodCkge1xuICAgIHZhciBodWU7XG4gICAgLy8g5qC55o2u6Imy55u45LiN5ZCM77yM6Imy55u46L2s5ZCR5LiN5ZCMXG4gICAgaWYgKE1hdGgucm91bmQoaHN2LmgpID49IDYwICYmIE1hdGgucm91bmQoaHN2LmgpIDw9IDI0MCkge1xuICAgICAgICBodWUgPSBsaWdodCA/IE1hdGgucm91bmQoaHN2LmgpIC0gaHVlU3RlcCAqIGkgOiBNYXRoLnJvdW5kKGhzdi5oKSArIGh1ZVN0ZXAgKiBpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgaHVlID0gbGlnaHQgPyBNYXRoLnJvdW5kKGhzdi5oKSArIGh1ZVN0ZXAgKiBpIDogTWF0aC5yb3VuZChoc3YuaCkgLSBodWVTdGVwICogaTtcbiAgICB9XG4gICAgaWYgKGh1ZSA8IDApIHtcbiAgICAgICAgaHVlICs9IDM2MDtcbiAgICB9XG4gICAgZWxzZSBpZiAoaHVlID49IDM2MCkge1xuICAgICAgICBodWUgLT0gMzYwO1xuICAgIH1cbiAgICByZXR1cm4gaHVlO1xufVxuZnVuY3Rpb24gZ2V0U2F0dXJhdGlvbihoc3YsIGksIGxpZ2h0KSB7XG4gICAgLy8gZ3JleSBjb2xvciBkb24ndCBjaGFuZ2Ugc2F0dXJhdGlvblxuICAgIGlmIChoc3YuaCA9PT0gMCAmJiBoc3YucyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaHN2LnM7XG4gICAgfVxuICAgIHZhciBzYXR1cmF0aW9uO1xuICAgIGlmIChsaWdodCkge1xuICAgICAgICBzYXR1cmF0aW9uID0gTWF0aC5yb3VuZChoc3YucyAqIDEwMCkgLSBzYXR1cmF0aW9uU3RlcCAqIGk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGkgPT09IGRhcmtDb2xvckNvdW50KSB7XG4gICAgICAgIHNhdHVyYXRpb24gPSBNYXRoLnJvdW5kKGhzdi5zICogMTAwKSArIHNhdHVyYXRpb25TdGVwO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IE1hdGgucm91bmQoaHN2LnMgKiAxMDApICsgc2F0dXJhdGlvblN0ZXAyICogaTtcbiAgICB9XG4gICAgLy8g6L6555WM5YC85L+u5q2jXG4gICAgaWYgKHNhdHVyYXRpb24gPiAxMDApIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDEwMDtcbiAgICB9XG4gICAgLy8g56ys5LiA5qC855qEIHMg6ZmQ5Yi25ZyoIDYtMTAg5LmL6Ze0XG4gICAgaWYgKGxpZ2h0ICYmIGkgPT09IGxpZ2h0Q29sb3JDb3VudCAmJiBzYXR1cmF0aW9uID4gMTApIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDEwO1xuICAgIH1cbiAgICBpZiAoc2F0dXJhdGlvbiA8IDYpIHtcbiAgICAgICAgc2F0dXJhdGlvbiA9IDY7XG4gICAgfVxuICAgIHJldHVybiBzYXR1cmF0aW9uO1xufVxuZnVuY3Rpb24gZ2V0VmFsdWUoaHN2LCBpLCBsaWdodCkge1xuICAgIGlmIChsaWdodCkge1xuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChoc3YudiAqIDEwMCkgKyBicmlnaHRuZXNzU3RlcDEgKiBpO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZChoc3YudiAqIDEwMCkgLSBicmlnaHRuZXNzU3RlcDIgKiBpO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGUoY29sb3IpIHtcbiAgICB2YXIgcGF0dGVybnMgPSBbXTtcbiAgICB2YXIgcENvbG9yID0gdGlueWNvbG9yMl8xLmRlZmF1bHQoY29sb3IpO1xuICAgIGZvciAodmFyIGkgPSBsaWdodENvbG9yQ291bnQ7IGkgPiAwOyBpIC09IDEpIHtcbiAgICAgICAgdmFyIGhzdiA9IHBDb2xvci50b0hzdigpO1xuICAgICAgICB2YXIgY29sb3JTdHJpbmcgPSB0aW55Y29sb3IyXzEuZGVmYXVsdCh7XG4gICAgICAgICAgICBoOiBnZXRIdWUoaHN2LCBpLCB0cnVlKSxcbiAgICAgICAgICAgIHM6IGdldFNhdHVyYXRpb24oaHN2LCBpLCB0cnVlKSxcbiAgICAgICAgICAgIHY6IGdldFZhbHVlKGhzdiwgaSwgdHJ1ZSksXG4gICAgICAgIH0pLnRvSGV4U3RyaW5nKCk7XG4gICAgICAgIHBhdHRlcm5zLnB1c2goY29sb3JTdHJpbmcpO1xuICAgIH1cbiAgICBwYXR0ZXJucy5wdXNoKHBDb2xvci50b0hleFN0cmluZygpKTtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBkYXJrQ29sb3JDb3VudDsgaSArPSAxKSB7XG4gICAgICAgIHZhciBoc3YgPSBwQ29sb3IudG9Ic3YoKTtcbiAgICAgICAgdmFyIGNvbG9yU3RyaW5nID0gdGlueWNvbG9yMl8xLmRlZmF1bHQoe1xuICAgICAgICAgICAgaDogZ2V0SHVlKGhzdiwgaSksXG4gICAgICAgICAgICBzOiBnZXRTYXR1cmF0aW9uKGhzdiwgaSksXG4gICAgICAgICAgICB2OiBnZXRWYWx1ZShoc3YsIGkpLFxuICAgICAgICB9KS50b0hleFN0cmluZygpO1xuICAgICAgICBwYXR0ZXJucy5wdXNoKGNvbG9yU3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdHRlcm5zO1xufVxuZXhwb3J0cy5kZWZhdWx0ID0gZ2VuZXJhdGU7XG4iLCIvLyBUaW55Q29sb3IgdjEuNC4xXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYmdyaW5zL1RpbnlDb2xvclxuLy8gQnJpYW4gR3JpbnN0ZWFkLCBNSVQgTGljZW5zZVxuXG4oZnVuY3Rpb24oTWF0aCkge1xuXG52YXIgdHJpbUxlZnQgPSAvXlxccysvLFxuICAgIHRyaW1SaWdodCA9IC9cXHMrJC8sXG4gICAgdGlueUNvdW50ZXIgPSAwLFxuICAgIG1hdGhSb3VuZCA9IE1hdGgucm91bmQsXG4gICAgbWF0aE1pbiA9IE1hdGgubWluLFxuICAgIG1hdGhNYXggPSBNYXRoLm1heCxcbiAgICBtYXRoUmFuZG9tID0gTWF0aC5yYW5kb207XG5cbmZ1bmN0aW9uIHRpbnljb2xvciAoY29sb3IsIG9wdHMpIHtcblxuICAgIGNvbG9yID0gKGNvbG9yKSA/IGNvbG9yIDogJyc7XG4gICAgb3B0cyA9IG9wdHMgfHwgeyB9O1xuXG4gICAgLy8gSWYgaW5wdXQgaXMgYWxyZWFkeSBhIHRpbnljb2xvciwgcmV0dXJuIGl0c2VsZlxuICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIHRpbnljb2xvcikge1xuICAgICAgIHJldHVybiBjb2xvcjtcbiAgICB9XG4gICAgLy8gSWYgd2UgYXJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLCBjYWxsIHVzaW5nIG5ldyBpbnN0ZWFkXG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIHRpbnljb2xvcikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyB0aW55Y29sb3IoY29sb3IsIG9wdHMpO1xuICAgIH1cblxuICAgIHZhciByZ2IgPSBpbnB1dFRvUkdCKGNvbG9yKTtcbiAgICB0aGlzLl9vcmlnaW5hbElucHV0ID0gY29sb3IsXG4gICAgdGhpcy5fciA9IHJnYi5yLFxuICAgIHRoaXMuX2cgPSByZ2IuZyxcbiAgICB0aGlzLl9iID0gcmdiLmIsXG4gICAgdGhpcy5fYSA9IHJnYi5hLFxuICAgIHRoaXMuX3JvdW5kQSA9IG1hdGhSb3VuZCgxMDAqdGhpcy5fYSkgLyAxMDAsXG4gICAgdGhpcy5fZm9ybWF0ID0gb3B0cy5mb3JtYXQgfHwgcmdiLmZvcm1hdDtcbiAgICB0aGlzLl9ncmFkaWVudFR5cGUgPSBvcHRzLmdyYWRpZW50VHlwZTtcblxuICAgIC8vIERvbid0IGxldCB0aGUgcmFuZ2Ugb2YgWzAsMjU1XSBjb21lIGJhY2sgaW4gWzAsMV0uXG4gICAgLy8gUG90ZW50aWFsbHkgbG9zZSBhIGxpdHRsZSBiaXQgb2YgcHJlY2lzaW9uIGhlcmUsIGJ1dCB3aWxsIGZpeCBpc3N1ZXMgd2hlcmVcbiAgICAvLyAuNSBnZXRzIGludGVycHJldGVkIGFzIGhhbGYgb2YgdGhlIHRvdGFsLCBpbnN0ZWFkIG9mIGhhbGYgb2YgMVxuICAgIC8vIElmIGl0IHdhcyBzdXBwb3NlZCB0byBiZSAxMjgsIHRoaXMgd2FzIGFscmVhZHkgdGFrZW4gY2FyZSBvZiBieSBgaW5wdXRUb1JnYmBcbiAgICBpZiAodGhpcy5fciA8IDEpIHsgdGhpcy5fciA9IG1hdGhSb3VuZCh0aGlzLl9yKTsgfVxuICAgIGlmICh0aGlzLl9nIDwgMSkgeyB0aGlzLl9nID0gbWF0aFJvdW5kKHRoaXMuX2cpOyB9XG4gICAgaWYgKHRoaXMuX2IgPCAxKSB7IHRoaXMuX2IgPSBtYXRoUm91bmQodGhpcy5fYik7IH1cblxuICAgIHRoaXMuX29rID0gcmdiLm9rO1xuICAgIHRoaXMuX3RjX2lkID0gdGlueUNvdW50ZXIrKztcbn1cblxudGlueWNvbG9yLnByb3RvdHlwZSA9IHtcbiAgICBpc0Rhcms6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCcmlnaHRuZXNzKCkgPCAxMjg7XG4gICAgfSxcbiAgICBpc0xpZ2h0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRGFyaygpO1xuICAgIH0sXG4gICAgaXNWYWxpZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vaztcbiAgICB9LFxuICAgIGdldE9yaWdpbmFsSW5wdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29yaWdpbmFsSW5wdXQ7XG4gICAgfSxcbiAgICBnZXRGb3JtYXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xuICAgIH0sXG4gICAgZ2V0QWxwaGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYTtcbiAgICB9LFxuICAgIGdldEJyaWdodG5lc3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICAvL2h0dHA6Ly93d3cudzMub3JnL1RSL0FFUlQjY29sb3ItY29udHJhc3RcbiAgICAgICAgdmFyIHJnYiA9IHRoaXMudG9SZ2IoKTtcbiAgICAgICAgcmV0dXJuIChyZ2IuciAqIDI5OSArIHJnYi5nICogNTg3ICsgcmdiLmIgKiAxMTQpIC8gMTAwMDtcbiAgICB9LFxuICAgIGdldEx1bWluYW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAgICAgICB2YXIgcmdiID0gdGhpcy50b1JnYigpO1xuICAgICAgICB2YXIgUnNSR0IsIEdzUkdCLCBCc1JHQiwgUiwgRywgQjtcbiAgICAgICAgUnNSR0IgPSByZ2Iuci8yNTU7XG4gICAgICAgIEdzUkdCID0gcmdiLmcvMjU1O1xuICAgICAgICBCc1JHQiA9IHJnYi5iLzI1NTtcblxuICAgICAgICBpZiAoUnNSR0IgPD0gMC4wMzkyOCkge1IgPSBSc1JHQiAvIDEyLjkyO30gZWxzZSB7UiA9IE1hdGgucG93KCgoUnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoR3NSR0IgPD0gMC4wMzkyOCkge0cgPSBHc1JHQiAvIDEyLjkyO30gZWxzZSB7RyA9IE1hdGgucG93KCgoR3NSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICBpZiAoQnNSR0IgPD0gMC4wMzkyOCkge0IgPSBCc1JHQiAvIDEyLjkyO30gZWxzZSB7QiA9IE1hdGgucG93KCgoQnNSR0IgKyAwLjA1NSkgLyAxLjA1NSksIDIuNCk7fVxuICAgICAgICByZXR1cm4gKDAuMjEyNiAqIFIpICsgKDAuNzE1MiAqIEcpICsgKDAuMDcyMiAqIEIpO1xuICAgIH0sXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2EgPSBib3VuZEFscGhhKHZhbHVlKTtcbiAgICAgICAgdGhpcy5fcm91bmRBID0gbWF0aFJvdW5kKDEwMCp0aGlzLl9hKSAvIDEwMDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICB0b0hzdjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc3YgPSByZ2JUb0hzdih0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgcmV0dXJuIHsgaDogaHN2LmggKiAzNjAsIHM6IGhzdi5zLCB2OiBoc3YudiwgYTogdGhpcy5fYSB9O1xuICAgIH0sXG4gICAgdG9Ic3ZTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHN2ID0gcmdiVG9Ic3YodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYik7XG4gICAgICAgIHZhciBoID0gbWF0aFJvdW5kKGhzdi5oICogMzYwKSwgcyA9IG1hdGhSb3VuZChoc3YucyAqIDEwMCksIHYgPSBtYXRoUm91bmQoaHN2LnYgKiAxMDApO1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwiaHN2KFwiICArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUpXCIgOlxuICAgICAgICAgIFwiaHN2YShcIiArIGggKyBcIiwgXCIgKyBzICsgXCIlLCBcIiArIHYgKyBcIiUsIFwiKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvSHNsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhzbCA9IHJnYlRvSHNsKHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IpO1xuICAgICAgICByZXR1cm4geyBoOiBoc2wuaCAqIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b0hzbFN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc2wgPSByZ2JUb0hzbCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iKTtcbiAgICAgICAgdmFyIGggPSBtYXRoUm91bmQoaHNsLmggKiAzNjApLCBzID0gbWF0aFJvdW5kKGhzbC5zICogMTAwKSwgbCA9IG1hdGhSb3VuZChoc2wubCAqIDEwMCk7XG4gICAgICAgIHJldHVybiAodGhpcy5fYSA9PSAxKSA/XG4gICAgICAgICAgXCJoc2woXCIgICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSlcIiA6XG4gICAgICAgICAgXCJoc2xhKFwiICsgaCArIFwiLCBcIiArIHMgKyBcIiUsIFwiICsgbCArIFwiJSwgXCIrIHRoaXMuX3JvdW5kQSArIFwiKVwiO1xuICAgIH0sXG4gICAgdG9IZXg6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYlRvSGV4KHRoaXMuX3IsIHRoaXMuX2csIHRoaXMuX2IsIGFsbG93M0NoYXIpO1xuICAgIH0sXG4gICAgdG9IZXhTdHJpbmc6IGZ1bmN0aW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgcmV0dXJuICcjJyArIHRoaXMudG9IZXgoYWxsb3czQ2hhcik7XG4gICAgfSxcbiAgICB0b0hleDg6IGZ1bmN0aW9uKGFsbG93NENoYXIpIHtcbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hLCBhbGxvdzRDaGFyKTtcbiAgICB9LFxuICAgIHRvSGV4OFN0cmluZzogZnVuY3Rpb24oYWxsb3c0Q2hhcikge1xuICAgICAgICByZXR1cm4gJyMnICsgdGhpcy50b0hleDgoYWxsb3c0Q2hhcik7XG4gICAgfSxcbiAgICB0b1JnYjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB7IHI6IG1hdGhSb3VuZCh0aGlzLl9yKSwgZzogbWF0aFJvdW5kKHRoaXMuX2cpLCBiOiBtYXRoUm91bmQodGhpcy5fYiksIGE6IHRoaXMuX2EgfTtcbiAgICB9LFxuICAgIHRvUmdiU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9hID09IDEpID9cbiAgICAgICAgICBcInJnYihcIiAgKyBtYXRoUm91bmQodGhpcy5fcikgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fZykgKyBcIiwgXCIgKyBtYXRoUm91bmQodGhpcy5fYikgKyBcIilcIiA6XG4gICAgICAgICAgXCJyZ2JhKFwiICsgbWF0aFJvdW5kKHRoaXMuX3IpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2cpICsgXCIsIFwiICsgbWF0aFJvdW5kKHRoaXMuX2IpICsgXCIsIFwiICsgdGhpcy5fcm91bmRBICsgXCIpXCI7XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJVwiLCBnOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJVwiLCBiOiBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJVwiLCBhOiB0aGlzLl9hIH07XG4gICAgfSxcbiAgICB0b1BlcmNlbnRhZ2VSZ2JTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX2EgPT0gMSkgP1xuICAgICAgICAgIFwicmdiKFwiICArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX3IsIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2csIDI1NSkgKiAxMDApICsgXCIlLCBcIiArIG1hdGhSb3VuZChib3VuZDAxKHRoaXMuX2IsIDI1NSkgKiAxMDApICsgXCIlKVwiIDpcbiAgICAgICAgICBcInJnYmEoXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9yLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9nLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyBtYXRoUm91bmQoYm91bmQwMSh0aGlzLl9iLCAyNTUpICogMTAwKSArIFwiJSwgXCIgKyB0aGlzLl9yb3VuZEEgKyBcIilcIjtcbiAgICB9LFxuICAgIHRvTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLl9hID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJ0cmFuc3BhcmVudFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2EgPCAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGV4TmFtZXNbcmdiVG9IZXgodGhpcy5fciwgdGhpcy5fZywgdGhpcy5fYiwgdHJ1ZSldIHx8IGZhbHNlO1xuICAgIH0sXG4gICAgdG9GaWx0ZXI6IGZ1bmN0aW9uKHNlY29uZENvbG9yKSB7XG4gICAgICAgIHZhciBoZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleCh0aGlzLl9yLCB0aGlzLl9nLCB0aGlzLl9iLCB0aGlzLl9hKTtcbiAgICAgICAgdmFyIHNlY29uZEhleDhTdHJpbmcgPSBoZXg4U3RyaW5nO1xuICAgICAgICB2YXIgZ3JhZGllbnRUeXBlID0gdGhpcy5fZ3JhZGllbnRUeXBlID8gXCJHcmFkaWVudFR5cGUgPSAxLCBcIiA6IFwiXCI7XG5cbiAgICAgICAgaWYgKHNlY29uZENvbG9yKSB7XG4gICAgICAgICAgICB2YXIgcyA9IHRpbnljb2xvcihzZWNvbmRDb2xvcik7XG4gICAgICAgICAgICBzZWNvbmRIZXg4U3RyaW5nID0gJyMnICsgcmdiYVRvQXJnYkhleChzLl9yLCBzLl9nLCBzLl9iLCBzLl9hKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChcIitncmFkaWVudFR5cGUrXCJzdGFydENvbG9yc3RyPVwiK2hleDhTdHJpbmcrXCIsZW5kQ29sb3JzdHI9XCIrc2Vjb25kSGV4OFN0cmluZytcIilcIjtcbiAgICB9LFxuICAgIHRvU3RyaW5nOiBmdW5jdGlvbihmb3JtYXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdFNldCA9ICEhZm9ybWF0O1xuICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgdGhpcy5fZm9ybWF0O1xuXG4gICAgICAgIHZhciBmb3JtYXR0ZWRTdHJpbmcgPSBmYWxzZTtcbiAgICAgICAgdmFyIGhhc0FscGhhID0gdGhpcy5fYSA8IDEgJiYgdGhpcy5fYSA+PSAwO1xuICAgICAgICB2YXIgbmVlZHNBbHBoYUZvcm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiIHx8IGZvcm1hdCA9PT0gXCJoZXgzXCIgfHwgZm9ybWF0ID09PSBcImhleDRcIiB8fCBmb3JtYXQgPT09IFwiaGV4OFwiIHx8IGZvcm1hdCA9PT0gXCJuYW1lXCIpO1xuXG4gICAgICAgIGlmIChuZWVkc0FscGhhRm9ybWF0KSB7XG4gICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIFwidHJhbnNwYXJlbnRcIiwgYWxsIG90aGVyIG5vbi1hbHBoYSBmb3JtYXRzXG4gICAgICAgICAgICAvLyB3aWxsIHJldHVybiByZ2JhIHdoZW4gdGhlcmUgaXMgdHJhbnNwYXJlbmN5LlxuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJuYW1lXCIgJiYgdGhpcy5fYSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTmFtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9SZ2JTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcInJnYlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJwcmdiXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQgPT09IFwiaGV4NlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4U3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXgzXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXhTdHJpbmcodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXg0XCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4OFwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSGV4OFN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwibmFtZVwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvTmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaHNsXCIpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9Ic2xTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhzdlwiKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRTdHJpbmcgPSB0aGlzLnRvSHN2U3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3RyaW5nIHx8IHRoaXMudG9IZXhTdHJpbmcoKTtcbiAgICB9LFxuICAgIGNsb25lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRpbnljb2xvcih0aGlzLnRvU3RyaW5nKCkpO1xuICAgIH0sXG5cbiAgICBfYXBwbHlNb2RpZmljYXRpb246IGZ1bmN0aW9uKGZuLCBhcmdzKSB7XG4gICAgICAgIHZhciBjb2xvciA9IGZuLmFwcGx5KG51bGwsIFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChhcmdzKSkpO1xuICAgICAgICB0aGlzLl9yID0gY29sb3IuX3I7XG4gICAgICAgIHRoaXMuX2cgPSBjb2xvci5fZztcbiAgICAgICAgdGhpcy5fYiA9IGNvbG9yLl9iO1xuICAgICAgICB0aGlzLnNldEFscGhhKGNvbG9yLl9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSxcbiAgICBsaWdodGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGxpZ2h0ZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBicmlnaHRlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihicmlnaHRlbiwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGRhcmtlbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihkYXJrZW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBkZXNhdHVyYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGRlc2F0dXJhdGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzYXR1cmF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihzYXR1cmF0ZSwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIGdyZXlzY2FsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihncmV5c2NhbGUsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBzcGluOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKHNwaW4sIGFyZ3VtZW50cyk7XG4gICAgfSxcblxuICAgIF9hcHBseUNvbWJpbmF0aW9uOiBmdW5jdGlvbihmbiwgYXJncykge1xuICAgICAgICByZXR1cm4gZm4uYXBwbHkobnVsbCwgW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3MpKSk7XG4gICAgfSxcbiAgICBhbmFsb2dvdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihhbmFsb2dvdXMsIGFyZ3VtZW50cyk7XG4gICAgfSxcbiAgICBjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oY29tcGxlbWVudCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIG1vbm9jaHJvbWF0aWM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihtb25vY2hyb21hdGljLCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgc3BsaXRjb21wbGVtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oc3BsaXRjb21wbGVtZW50LCBhcmd1bWVudHMpO1xuICAgIH0sXG4gICAgdHJpYWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbih0cmlhZCwgYXJndW1lbnRzKTtcbiAgICB9LFxuICAgIHRldHJhZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHRldHJhZCwgYXJndW1lbnRzKTtcbiAgICB9XG59O1xuXG4vLyBJZiBpbnB1dCBpcyBhbiBvYmplY3QsIGZvcmNlIDEgaW50byBcIjEuMFwiIHRvIGhhbmRsZSByYXRpb3MgcHJvcGVybHlcbi8vIFN0cmluZyBpbnB1dCByZXF1aXJlcyBcIjEuMFwiIGFzIGlucHV0LCBzbyAxIHdpbGwgYmUgdHJlYXRlZCBhcyAxXG50aW55Y29sb3IuZnJvbVJhdGlvID0gZnVuY3Rpb24oY29sb3IsIG9wdHMpIHtcbiAgICBpZiAodHlwZW9mIGNvbG9yID09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgdmFyIG5ld0NvbG9yID0ge307XG4gICAgICAgIGZvciAodmFyIGkgaW4gY29sb3IpIHtcbiAgICAgICAgICAgIGlmIChjb2xvci5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgICAgIGlmIChpID09PSBcImFcIikge1xuICAgICAgICAgICAgICAgICAgICBuZXdDb2xvcltpXSA9IGNvbG9yW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29sb3JbaV0gPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29sb3IgPSBuZXdDb2xvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yLCBvcHRzKTtcbn07XG5cbi8vIEdpdmVuIGEgc3RyaW5nIG9yIG9iamVjdCwgY29udmVydCB0aGF0IGlucHV0IHRvIFJHQlxuLy8gUG9zc2libGUgc3RyaW5nIGlucHV0czpcbi8vXG4vLyAgICAgXCJyZWRcIlxuLy8gICAgIFwiI2YwMFwiIG9yIFwiZjAwXCJcbi8vICAgICBcIiNmZjAwMDBcIiBvciBcImZmMDAwMFwiXG4vLyAgICAgXCIjZmYwMDAwMDBcIiBvciBcImZmMDAwMDAwXCJcbi8vICAgICBcInJnYiAyNTUgMCAwXCIgb3IgXCJyZ2IgKDI1NSwgMCwgMClcIlxuLy8gICAgIFwicmdiIDEuMCAwIDBcIiBvciBcInJnYiAoMSwgMCwgMClcIlxuLy8gICAgIFwicmdiYSAoMjU1LCAwLCAwLCAxKVwiIG9yIFwicmdiYSAyNTUsIDAsIDAsIDFcIlxuLy8gICAgIFwicmdiYSAoMS4wLCAwLCAwLCAxKVwiIG9yIFwicmdiYSAxLjAsIDAsIDAsIDFcIlxuLy8gICAgIFwiaHNsKDAsIDEwMCUsIDUwJSlcIiBvciBcImhzbCAwIDEwMCUgNTAlXCJcbi8vICAgICBcImhzbGEoMCwgMTAwJSwgNTAlLCAxKVwiIG9yIFwiaHNsYSAwIDEwMCUgNTAlLCAxXCJcbi8vICAgICBcImhzdigwLCAxMDAlLCAxMDAlKVwiIG9yIFwiaHN2IDAgMTAwJSAxMDAlXCJcbi8vXG5mdW5jdGlvbiBpbnB1dFRvUkdCKGNvbG9yKSB7XG5cbiAgICB2YXIgcmdiID0geyByOiAwLCBnOiAwLCBiOiAwIH07XG4gICAgdmFyIGEgPSAxO1xuICAgIHZhciBzID0gbnVsbDtcbiAgICB2YXIgdiA9IG51bGw7XG4gICAgdmFyIGwgPSBudWxsO1xuICAgIHZhciBvayA9IGZhbHNlO1xuICAgIHZhciBmb3JtYXQgPSBmYWxzZTtcblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJzdHJpbmdcIikge1xuICAgICAgICBjb2xvciA9IHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29sb3IgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoaXNWYWxpZENTU1VuaXQoY29sb3IucikgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuZykgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IuYikpIHtcbiAgICAgICAgICAgIHJnYiA9IHJnYlRvUmdiKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICAgICAgZm9ybWF0ID0gU3RyaW5nKGNvbG9yLnIpLnN1YnN0cigtMSkgPT09IFwiJVwiID8gXCJwcmdiXCIgOiBcInJnYlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnYpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIHYgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLnYpO1xuICAgICAgICAgICAgcmdiID0gaHN2VG9SZ2IoY29sb3IuaCwgcywgdik7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzdlwiO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLmgpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLnMpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmwpKSB7XG4gICAgICAgICAgICBzID0gY29udmVydFRvUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgICAgIGwgPSBjb252ZXJ0VG9QZXJjZW50YWdlKGNvbG9yLmwpO1xuICAgICAgICAgICAgcmdiID0gaHNsVG9SZ2IoY29sb3IuaCwgcywgbCk7XG4gICAgICAgICAgICBvayA9IHRydWU7XG4gICAgICAgICAgICBmb3JtYXQgPSBcImhzbFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbG9yLmhhc093blByb3BlcnR5KFwiYVwiKSkge1xuICAgICAgICAgICAgYSA9IGNvbG9yLmE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhID0gYm91bmRBbHBoYShhKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIG9rOiBvayxcbiAgICAgICAgZm9ybWF0OiBjb2xvci5mb3JtYXQgfHwgZm9ybWF0LFxuICAgICAgICByOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuciwgMCkpLFxuICAgICAgICBnOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuZywgMCkpLFxuICAgICAgICBiOiBtYXRoTWluKDI1NSwgbWF0aE1heChyZ2IuYiwgMCkpLFxuICAgICAgICBhOiBhXG4gICAgfTtcbn1cblxuXG4vLyBDb252ZXJzaW9uIEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gYHJnYlRvSHNsYCwgYHJnYlRvSHN2YCwgYGhzbFRvUmdiYCwgYGhzdlRvUmdiYCBtb2RpZmllZCBmcm9tOlxuLy8gPGh0dHA6Ly9tamlqYWNrc29uLmNvbS8yMDA4LzAyL3JnYi10by1oc2wtYW5kLXJnYi10by1oc3YtY29sb3ItbW9kZWwtY29udmVyc2lvbi1hbGdvcml0aG1zLWluLWphdmFzY3JpcHQ+XG5cbi8vIGByZ2JUb1JnYmBcbi8vIEhhbmRsZSBib3VuZHMgLyBwZXJjZW50YWdlIGNoZWNraW5nIHRvIGNvbmZvcm0gdG8gQ1NTIGNvbG9yIHNwZWNcbi8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWNvbG9yLz5cbi8vICpBc3N1bWVzOiogciwgZywgYiBpbiBbMCwgMjU1XSBvciBbMCwgMV1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gWzAsIDI1NV1cbmZ1bmN0aW9uIHJnYlRvUmdiKHIsIGcsIGIpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHI6IGJvdW5kMDEociwgMjU1KSAqIDI1NSxcbiAgICAgICAgZzogYm91bmQwMShnLCAyNTUpICogMjU1LFxuICAgICAgICBiOiBib3VuZDAxKGIsIDI1NSkgKiAyNTVcbiAgICB9O1xufVxuXG4vLyBgcmdiVG9Ic2xgXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdmFsdWUgdG8gSFNMLlxuLy8gKkFzc3VtZXM6KiByLCBnLCBhbmQgYiBhcmUgY29udGFpbmVkIGluIFswLCAyNTVdIG9yIFswLCAxXVxuLy8gKlJldHVybnM6KiB7IGgsIHMsIGwgfSBpbiBbMCwxXVxuZnVuY3Rpb24gcmdiVG9Ic2wociwgZywgYikge1xuXG4gICAgciA9IGJvdW5kMDEociwgMjU1KTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG5cbiAgICB2YXIgbWF4ID0gbWF0aE1heChyLCBnLCBiKSwgbWluID0gbWF0aE1pbihyLCBnLCBiKTtcbiAgICB2YXIgaCwgcywgbCA9IChtYXggKyBtaW4pIC8gMjtcblxuICAgIGlmKG1heCA9PSBtaW4pIHtcbiAgICAgICAgaCA9IHMgPSAwOyAvLyBhY2hyb21hdGljXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgZCA9IG1heCAtIG1pbjtcbiAgICAgICAgcyA9IGwgPiAwLjUgPyBkIC8gKDIgLSBtYXggLSBtaW4pIDogZCAvIChtYXggKyBtaW4pO1xuICAgICAgICBzd2l0Y2gobWF4KSB7XG4gICAgICAgICAgICBjYXNlIHI6IGggPSAoZyAtIGIpIC8gZCArIChnIDwgYiA/IDYgOiAwKTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGc6IGggPSAoYiAtIHIpIC8gZCArIDI7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBiOiBoID0gKHIgLSBnKSAvIGQgKyA0OyBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGggLz0gNjtcbiAgICB9XG5cbiAgICByZXR1cm4geyBoOiBoLCBzOiBzLCBsOiBsIH07XG59XG5cbi8vIGBoc2xUb1JnYmBcbi8vIENvbnZlcnRzIGFuIEhTTCBjb2xvciB2YWx1ZSB0byBSR0IuXG4vLyAqQXNzdW1lczoqIGggaXMgY29udGFpbmVkIGluIFswLCAxXSBvciBbMCwgMzYwXSBhbmQgcyBhbmQgbCBhcmUgY29udGFpbmVkIFswLCAxXSBvciBbMCwgMTAwXVxuLy8gKlJldHVybnM6KiB7IHIsIGcsIGIgfSBpbiB0aGUgc2V0IFswLCAyNTVdXG5mdW5jdGlvbiBoc2xUb1JnYihoLCBzLCBsKSB7XG4gICAgdmFyIHIsIGcsIGI7XG5cbiAgICBoID0gYm91bmQwMShoLCAzNjApO1xuICAgIHMgPSBib3VuZDAxKHMsIDEwMCk7XG4gICAgbCA9IGJvdW5kMDEobCwgMTAwKTtcblxuICAgIGZ1bmN0aW9uIGh1ZTJyZ2IocCwgcSwgdCkge1xuICAgICAgICBpZih0IDwgMCkgdCArPSAxO1xuICAgICAgICBpZih0ID4gMSkgdCAtPSAxO1xuICAgICAgICBpZih0IDwgMS82KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcbiAgICAgICAgaWYodCA8IDEvMikgcmV0dXJuIHE7XG4gICAgICAgIGlmKHQgPCAyLzMpIHJldHVybiBwICsgKHEgLSBwKSAqICgyLzMgLSB0KSAqIDY7XG4gICAgICAgIHJldHVybiBwO1xuICAgIH1cblxuICAgIGlmKHMgPT09IDApIHtcbiAgICAgICAgciA9IGcgPSBiID0gbDsgLy8gYWNocm9tYXRpY1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIHEgPSBsIDwgMC41ID8gbCAqICgxICsgcykgOiBsICsgcyAtIGwgKiBzO1xuICAgICAgICB2YXIgcCA9IDIgKiBsIC0gcTtcbiAgICAgICAgciA9IGh1ZTJyZ2IocCwgcSwgaCArIDEvMyk7XG4gICAgICAgIGcgPSBodWUycmdiKHAsIHEsIGgpO1xuICAgICAgICBiID0gaHVlMnJnYihwLCBxLCBoIC0gMS8zKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyByOiByICogMjU1LCBnOiBnICogMjU1LCBiOiBiICogMjU1IH07XG59XG5cbi8vIGByZ2JUb0hzdmBcbi8vIENvbnZlcnRzIGFuIFJHQiBjb2xvciB2YWx1ZSB0byBIU1Zcbi8vICpBc3N1bWVzOiogciwgZywgYW5kIGIgYXJlIGNvbnRhaW5lZCBpbiB0aGUgc2V0IFswLCAyNTVdIG9yIFswLCAxXVxuLy8gKlJldHVybnM6KiB7IGgsIHMsIHYgfSBpbiBbMCwxXVxuZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuXG4gICAgciA9IGJvdW5kMDEociwgMjU1KTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG5cbiAgICB2YXIgbWF4ID0gbWF0aE1heChyLCBnLCBiKSwgbWluID0gbWF0aE1pbihyLCBnLCBiKTtcbiAgICB2YXIgaCwgcywgdiA9IG1heDtcblxuICAgIHZhciBkID0gbWF4IC0gbWluO1xuICAgIHMgPSBtYXggPT09IDAgPyAwIDogZCAvIG1heDtcblxuICAgIGlmKG1heCA9PSBtaW4pIHtcbiAgICAgICAgaCA9IDA7IC8vIGFjaHJvbWF0aWNcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHN3aXRjaChtYXgpIHtcbiAgICAgICAgICAgIGNhc2UgcjogaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgZzogaCA9IChiIC0gcikgLyBkICsgMjsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIGI6IGggPSAociAtIGcpIC8gZCArIDQ7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGggLz0gNjtcbiAgICB9XG4gICAgcmV0dXJuIHsgaDogaCwgczogcywgdjogdiB9O1xufVxuXG4vLyBgaHN2VG9SZ2JgXG4vLyBDb252ZXJ0cyBhbiBIU1YgY29sb3IgdmFsdWUgdG8gUkdCLlxuLy8gKkFzc3VtZXM6KiBoIGlzIGNvbnRhaW5lZCBpbiBbMCwgMV0gb3IgWzAsIDM2MF0gYW5kIHMgYW5kIHYgYXJlIGNvbnRhaW5lZCBpbiBbMCwgMV0gb3IgWzAsIDEwMF1cbi8vICpSZXR1cm5zOiogeyByLCBnLCBiIH0gaW4gdGhlIHNldCBbMCwgMjU1XVxuIGZ1bmN0aW9uIGhzdlRvUmdiKGgsIHMsIHYpIHtcblxuICAgIGggPSBib3VuZDAxKGgsIDM2MCkgKiA2O1xuICAgIHMgPSBib3VuZDAxKHMsIDEwMCk7XG4gICAgdiA9IGJvdW5kMDEodiwgMTAwKTtcblxuICAgIHZhciBpID0gTWF0aC5mbG9vcihoKSxcbiAgICAgICAgZiA9IGggLSBpLFxuICAgICAgICBwID0gdiAqICgxIC0gcyksXG4gICAgICAgIHEgPSB2ICogKDEgLSBmICogcyksXG4gICAgICAgIHQgPSB2ICogKDEgLSAoMSAtIGYpICogcyksXG4gICAgICAgIG1vZCA9IGkgJSA2LFxuICAgICAgICByID0gW3YsIHEsIHAsIHAsIHQsIHZdW21vZF0sXG4gICAgICAgIGcgPSBbdCwgdiwgdiwgcSwgcCwgcF1bbW9kXSxcbiAgICAgICAgYiA9IFtwLCBwLCB0LCB2LCB2LCBxXVttb2RdO1xuXG4gICAgcmV0dXJuIHsgcjogciAqIDI1NSwgZzogZyAqIDI1NSwgYjogYiAqIDI1NSB9O1xufVxuXG4vLyBgcmdiVG9IZXhgXG4vLyBDb252ZXJ0cyBhbiBSR0IgY29sb3IgdG8gaGV4XG4vLyBBc3N1bWVzIHIsIGcsIGFuZCBiIGFyZSBjb250YWluZWQgaW4gdGhlIHNldCBbMCwgMjU1XVxuLy8gUmV0dXJucyBhIDMgb3IgNiBjaGFyYWN0ZXIgaGV4XG5mdW5jdGlvbiByZ2JUb0hleChyLCBnLCBiLCBhbGxvdzNDaGFyKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXG4gICAgXTtcblxuICAgIC8vIFJldHVybiBhIDMgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxuICAgIGlmIChhbGxvdzNDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpKSB7XG4gICAgICAgIHJldHVybiBoZXhbMF0uY2hhckF0KDApICsgaGV4WzFdLmNoYXJBdCgwKSArIGhleFsyXS5jaGFyQXQoMCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhleC5qb2luKFwiXCIpO1xufVxuXG4vLyBgcmdiYVRvSGV4YFxuLy8gQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXhcbi8vIEFzc3VtZXMgciwgZywgYiBhcmUgY29udGFpbmVkIGluIHRoZSBzZXQgWzAsIDI1NV0gYW5kXG4vLyBhIGluIFswLCAxXS4gUmV0dXJucyBhIDQgb3IgOCBjaGFyYWN0ZXIgcmdiYSBoZXhcbmZ1bmN0aW9uIHJnYmFUb0hleChyLCBnLCBiLCBhLCBhbGxvdzRDaGFyKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKGNvbnZlcnREZWNpbWFsVG9IZXgoYSkpXG4gICAgXTtcblxuICAgIC8vIFJldHVybiBhIDQgY2hhcmFjdGVyIGhleCBpZiBwb3NzaWJsZVxuICAgIGlmIChhbGxvdzRDaGFyICYmIGhleFswXS5jaGFyQXQoMCkgPT0gaGV4WzBdLmNoYXJBdCgxKSAmJiBoZXhbMV0uY2hhckF0KDApID09IGhleFsxXS5jaGFyQXQoMSkgJiYgaGV4WzJdLmNoYXJBdCgwKSA9PSBoZXhbMl0uY2hhckF0KDEpICYmIGhleFszXS5jaGFyQXQoMCkgPT0gaGV4WzNdLmNoYXJBdCgxKSkge1xuICAgICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhleFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApICsgaGV4WzNdLmNoYXJBdCgwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG59XG5cbi8vIGByZ2JhVG9BcmdiSGV4YFxuLy8gQ29udmVydHMgYW4gUkdCQSBjb2xvciB0byBhbiBBUkdCIEhleDggc3RyaW5nXG4vLyBSYXJlbHkgdXNlZCwgYnV0IHJlcXVpcmVkIGZvciBcInRvRmlsdGVyKClcIlxuZnVuY3Rpb24gcmdiYVRvQXJnYkhleChyLCBnLCBiLCBhKSB7XG5cbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICBwYWQyKGNvbnZlcnREZWNpbWFsVG9IZXgoYSkpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChyKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChnKS50b1N0cmluZygxNikpLFxuICAgICAgICBwYWQyKG1hdGhSb3VuZChiKS50b1N0cmluZygxNikpXG4gICAgXTtcblxuICAgIHJldHVybiBoZXguam9pbihcIlwiKTtcbn1cblxuLy8gYGVxdWFsc2Bcbi8vIENhbiBiZSBjYWxsZWQgd2l0aCBhbnkgdGlueWNvbG9yIGlucHV0XG50aW55Y29sb3IuZXF1YWxzID0gZnVuY3Rpb24gKGNvbG9yMSwgY29sb3IyKSB7XG4gICAgaWYgKCFjb2xvcjEgfHwgIWNvbG9yMikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yMSkudG9SZ2JTdHJpbmcoKSA9PSB0aW55Y29sb3IoY29sb3IyKS50b1JnYlN0cmluZygpO1xufTtcblxudGlueWNvbG9yLnJhbmRvbSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aW55Y29sb3IuZnJvbVJhdGlvKHtcbiAgICAgICAgcjogbWF0aFJhbmRvbSgpLFxuICAgICAgICBnOiBtYXRoUmFuZG9tKCksXG4gICAgICAgIGI6IG1hdGhSYW5kb20oKVxuICAgIH0pO1xufTtcblxuXG4vLyBNb2RpZmljYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGFua3MgdG8gbGVzcy5qcyBmb3Igc29tZSBvZiB0aGUgYmFzaWNzIGhlcmVcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vY2xvdWRoZWFkL2xlc3MuanMvYmxvYi9tYXN0ZXIvbGliL2xlc3MvZnVuY3Rpb25zLmpzPlxuXG5mdW5jdGlvbiBkZXNhdHVyYXRlKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5zIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wucyA9IGNsYW1wMDEoaHNsLnMpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gc2F0dXJhdGUoY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgaHNsLnMgKz0gYW1vdW50IC8gMTAwO1xuICAgIGhzbC5zID0gY2xhbXAwMShoc2wucyk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiBncmV5c2NhbGUoY29sb3IpIHtcbiAgICByZXR1cm4gdGlueWNvbG9yKGNvbG9yKS5kZXNhdHVyYXRlKDEwMCk7XG59XG5cbmZ1bmN0aW9uIGxpZ2h0ZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sICs9IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuZnVuY3Rpb24gYnJpZ2h0ZW4oY29sb3IsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgMTApO1xuICAgIHZhciByZ2IgPSB0aW55Y29sb3IoY29sb3IpLnRvUmdiKCk7XG4gICAgcmdiLnIgPSBtYXRoTWF4KDAsIG1hdGhNaW4oMjU1LCByZ2IuciAtIG1hdGhSb3VuZCgyNTUgKiAtIChhbW91bnQgLyAxMDApKSkpO1xuICAgIHJnYi5nID0gbWF0aE1heCgwLCBtYXRoTWluKDI1NSwgcmdiLmcgLSBtYXRoUm91bmQoMjU1ICogLSAoYW1vdW50IC8gMTAwKSkpKTtcbiAgICByZ2IuYiA9IG1hdGhNYXgoMCwgbWF0aE1pbigyNTUsIHJnYi5iIC0gbWF0aFJvdW5kKDI1NSAqIC0gKGFtb3VudCAvIDEwMCkpKSk7XG4gICAgcmV0dXJuIHRpbnljb2xvcihyZ2IpO1xufVxuXG5mdW5jdGlvbiBkYXJrZW4gKGNvbG9yLCBhbW91bnQpIHtcbiAgICBhbW91bnQgPSAoYW1vdW50ID09PSAwKSA/IDAgOiAoYW1vdW50IHx8IDEwKTtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIGhzbC5sIC09IGFtb3VudCAvIDEwMDtcbiAgICBoc2wubCA9IGNsYW1wMDEoaHNsLmwpO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gU3BpbiB0YWtlcyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGFtb3VudCB3aXRoaW4gWy0zNjAsIDM2MF0gaW5kaWNhdGluZyB0aGUgY2hhbmdlIG9mIGh1ZS5cbi8vIFZhbHVlcyBvdXRzaWRlIG9mIHRoaXMgcmFuZ2Ugd2lsbCBiZSB3cmFwcGVkIGludG8gdGhpcyByYW5nZS5cbmZ1bmN0aW9uIHNwaW4oY29sb3IsIGFtb3VudCkge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGh1ZSA9IChoc2wuaCArIGFtb3VudCkgJSAzNjA7XG4gICAgaHNsLmggPSBodWUgPCAwID8gMzYwICsgaHVlIDogaHVlO1xuICAgIHJldHVybiB0aW55Y29sb3IoaHNsKTtcbn1cblxuLy8gQ29tYmluYXRpb24gRnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoYW5rcyB0byBqUXVlcnkgeENvbG9yIGZvciBzb21lIG9mIHRoZSBpZGVhcyBiZWhpbmQgdGhlc2Vcbi8vIDxodHRwczovL2dpdGh1Yi5jb20vaW5mdXNpb24valF1ZXJ5LXhjb2xvci9ibG9iL21hc3Rlci9qcXVlcnkueGNvbG9yLmpzPlxuXG5mdW5jdGlvbiBjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICBoc2wuaCA9IChoc2wuaCArIDE4MCkgJSAzNjA7XG4gICAgcmV0dXJuIHRpbnljb2xvcihoc2wpO1xufVxuXG5mdW5jdGlvbiB0cmlhZChjb2xvcikge1xuICAgIHZhciBoc2wgPSB0aW55Y29sb3IoY29sb3IpLnRvSHNsKCk7XG4gICAgdmFyIGggPSBoc2wuaDtcbiAgICByZXR1cm4gW1xuICAgICAgICB0aW55Y29sb3IoY29sb3IpLFxuICAgICAgICB0aW55Y29sb3IoeyBoOiAoaCArIDEyMCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyNDApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSlcbiAgICBdO1xufVxuXG5mdW5jdGlvbiB0ZXRyYWQoY29sb3IpIHtcbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBoID0gaHNsLmg7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgdGlueWNvbG9yKGNvbG9yKSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyA5MCkgJSAzNjAsIHM6IGhzbC5zLCBsOiBoc2wubCB9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAxODApICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmwgfSksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgMjcwKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pXG4gICAgXTtcbn1cblxuZnVuY3Rpb24gc3BsaXRjb21wbGVtZW50KGNvbG9yKSB7XG4gICAgdmFyIGhzbCA9IHRpbnljb2xvcihjb2xvcikudG9Ic2woKTtcbiAgICB2YXIgaCA9IGhzbC5oO1xuICAgIHJldHVybiBbXG4gICAgICAgIHRpbnljb2xvcihjb2xvciksXG4gICAgICAgIHRpbnljb2xvcih7IGg6IChoICsgNzIpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KSxcbiAgICAgICAgdGlueWNvbG9yKHsgaDogKGggKyAyMTYpICUgMzYwLCBzOiBoc2wucywgbDogaHNsLmx9KVxuICAgIF07XG59XG5cbmZ1bmN0aW9uIGFuYWxvZ291cyhjb2xvciwgcmVzdWx0cywgc2xpY2VzKSB7XG4gICAgcmVzdWx0cyA9IHJlc3VsdHMgfHwgNjtcbiAgICBzbGljZXMgPSBzbGljZXMgfHwgMzA7XG5cbiAgICB2YXIgaHNsID0gdGlueWNvbG9yKGNvbG9yKS50b0hzbCgpO1xuICAgIHZhciBwYXJ0ID0gMzYwIC8gc2xpY2VzO1xuICAgIHZhciByZXQgPSBbdGlueWNvbG9yKGNvbG9yKV07XG5cbiAgICBmb3IgKGhzbC5oID0gKChoc2wuaCAtIChwYXJ0ICogcmVzdWx0cyA+PiAxKSkgKyA3MjApICUgMzYwOyAtLXJlc3VsdHM7ICkge1xuICAgICAgICBoc2wuaCA9IChoc2wuaCArIHBhcnQpICUgMzYwO1xuICAgICAgICByZXQucHVzaCh0aW55Y29sb3IoaHNsKSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG1vbm9jaHJvbWF0aWMoY29sb3IsIHJlc3VsdHMpIHtcbiAgICByZXN1bHRzID0gcmVzdWx0cyB8fCA2O1xuICAgIHZhciBoc3YgPSB0aW55Y29sb3IoY29sb3IpLnRvSHN2KCk7XG4gICAgdmFyIGggPSBoc3YuaCwgcyA9IGhzdi5zLCB2ID0gaHN2LnY7XG4gICAgdmFyIHJldCA9IFtdO1xuICAgIHZhciBtb2RpZmljYXRpb24gPSAxIC8gcmVzdWx0cztcblxuICAgIHdoaWxlIChyZXN1bHRzLS0pIHtcbiAgICAgICAgcmV0LnB1c2godGlueWNvbG9yKHsgaDogaCwgczogcywgdjogdn0pKTtcbiAgICAgICAgdiA9ICh2ICsgbW9kaWZpY2F0aW9uKSAlIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldDtcbn1cblxuLy8gVXRpbGl0eSBGdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50aW55Y29sb3IubWl4ID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIGFtb3VudCkge1xuICAgIGFtb3VudCA9IChhbW91bnQgPT09IDApID8gMCA6IChhbW91bnQgfHwgNTApO1xuXG4gICAgdmFyIHJnYjEgPSB0aW55Y29sb3IoY29sb3IxKS50b1JnYigpO1xuICAgIHZhciByZ2IyID0gdGlueWNvbG9yKGNvbG9yMikudG9SZ2IoKTtcblxuICAgIHZhciBwID0gYW1vdW50IC8gMTAwO1xuXG4gICAgdmFyIHJnYmEgPSB7XG4gICAgICAgIHI6ICgocmdiMi5yIC0gcmdiMS5yKSAqIHApICsgcmdiMS5yLFxuICAgICAgICBnOiAoKHJnYjIuZyAtIHJnYjEuZykgKiBwKSArIHJnYjEuZyxcbiAgICAgICAgYjogKChyZ2IyLmIgLSByZ2IxLmIpICogcCkgKyByZ2IxLmIsXG4gICAgICAgIGE6ICgocmdiMi5hIC0gcmdiMS5hKSAqIHApICsgcmdiMS5hXG4gICAgfTtcblxuICAgIHJldHVybiB0aW55Y29sb3IocmdiYSk7XG59O1xuXG5cbi8vIFJlYWRhYmlsaXR5IEZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8aHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNjb250cmFzdC1yYXRpb2RlZiAoV0NBRyBWZXJzaW9uIDIpXG5cbi8vIGBjb250cmFzdGBcbi8vIEFuYWx5emUgdGhlIDIgY29sb3JzIGFuZCByZXR1cm5zIHRoZSBjb2xvciBjb250cmFzdCBkZWZpbmVkIGJ5IChXQ0FHIFZlcnNpb24gMilcbnRpbnljb2xvci5yZWFkYWJpbGl0eSA9IGZ1bmN0aW9uKGNvbG9yMSwgY29sb3IyKSB7XG4gICAgdmFyIGMxID0gdGlueWNvbG9yKGNvbG9yMSk7XG4gICAgdmFyIGMyID0gdGlueWNvbG9yKGNvbG9yMik7XG4gICAgcmV0dXJuIChNYXRoLm1heChjMS5nZXRMdW1pbmFuY2UoKSxjMi5nZXRMdW1pbmFuY2UoKSkrMC4wNSkgLyAoTWF0aC5taW4oYzEuZ2V0THVtaW5hbmNlKCksYzIuZ2V0THVtaW5hbmNlKCkpKzAuMDUpO1xufTtcblxuLy8gYGlzUmVhZGFibGVgXG4vLyBFbnN1cmUgdGhhdCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIGNvbWJpbmF0aW9ucyBtZWV0IFdDQUcyIGd1aWRlbGluZXMuXG4vLyBUaGUgdGhpcmQgYXJndW1lbnQgaXMgYW4gb3B0aW9uYWwgT2JqZWN0LlxuLy8gICAgICB0aGUgJ2xldmVsJyBwcm9wZXJ0eSBzdGF0ZXMgJ0FBJyBvciAnQUFBJyAtIGlmIG1pc3Npbmcgb3IgaW52YWxpZCwgaXQgZGVmYXVsdHMgdG8gJ0FBJztcbi8vICAgICAgdGhlICdzaXplJyBwcm9wZXJ0eSBzdGF0ZXMgJ2xhcmdlJyBvciAnc21hbGwnIC0gaWYgbWlzc2luZyBvciBpbnZhbGlkLCBpdCBkZWZhdWx0cyB0byAnc21hbGwnLlxuLy8gSWYgdGhlIGVudGlyZSBvYmplY3QgaXMgYWJzZW50LCBpc1JlYWRhYmxlIGRlZmF1bHRzIHRvIHtsZXZlbDpcIkFBXCIsc2l6ZTpcInNtYWxsXCJ9LlxuXG4vLyAqRXhhbXBsZSpcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIikgPT4gZmFsc2Vcbi8vICAgIHRpbnljb2xvci5pc1JlYWRhYmxlKFwiIzAwMFwiLCBcIiMxMTFcIix7bGV2ZWw6XCJBQVwiLHNpemU6XCJsYXJnZVwifSkgPT4gZmFsc2VcbnRpbnljb2xvci5pc1JlYWRhYmxlID0gZnVuY3Rpb24oY29sb3IxLCBjb2xvcjIsIHdjYWcyKSB7XG4gICAgdmFyIHJlYWRhYmlsaXR5ID0gdGlueWNvbG9yLnJlYWRhYmlsaXR5KGNvbG9yMSwgY29sb3IyKTtcbiAgICB2YXIgd2NhZzJQYXJtcywgb3V0O1xuXG4gICAgb3V0ID0gZmFsc2U7XG5cbiAgICB3Y2FnMlBhcm1zID0gdmFsaWRhdGVXQ0FHMlBhcm1zKHdjYWcyKTtcbiAgICBzd2l0Y2ggKHdjYWcyUGFybXMubGV2ZWwgKyB3Y2FnMlBhcm1zLnNpemUpIHtcbiAgICAgICAgY2FzZSBcIkFBc21hbGxcIjpcbiAgICAgICAgY2FzZSBcIkFBQWxhcmdlXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA0LjU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBbGFyZ2VcIjpcbiAgICAgICAgICAgIG91dCA9IHJlYWRhYmlsaXR5ID49IDM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFBQXNtYWxsXCI6XG4gICAgICAgICAgICBvdXQgPSByZWFkYWJpbGl0eSA+PSA3O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG5cbn07XG5cbi8vIGBtb3N0UmVhZGFibGVgXG4vLyBHaXZlbiBhIGJhc2UgY29sb3IgYW5kIGEgbGlzdCBvZiBwb3NzaWJsZSBmb3JlZ3JvdW5kIG9yIGJhY2tncm91bmRcbi8vIGNvbG9ycyBmb3IgdGhhdCBiYXNlLCByZXR1cm5zIHRoZSBtb3N0IHJlYWRhYmxlIGNvbG9yLlxuLy8gT3B0aW9uYWxseSByZXR1cm5zIEJsYWNrIG9yIFdoaXRlIGlmIHRoZSBtb3N0IHJlYWRhYmxlIGNvbG9yIGlzIHVucmVhZGFibGUuXG4vLyAqRXhhbXBsZSpcbi8vICAgIHRpbnljb2xvci5tb3N0UmVhZGFibGUodGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiMxMjNcIiwgW1wiIzEyNFwiLCBcIiMxMjVcIl0se2luY2x1ZGVGYWxsYmFja0NvbG9yczpmYWxzZX0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiIzExMjI1NVwiXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKHRpbnljb2xvci5tb3N0UmVhZGFibGUoXCIjMTIzXCIsIFtcIiMxMjRcIiwgXCIjMTI1XCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6dHJ1ZX0pLnRvSGV4U3RyaW5nKCk7ICAvLyBcIiNmZmZmZmZcIlxuLy8gICAgdGlueWNvbG9yLm1vc3RSZWFkYWJsZShcIiNhODAxNWFcIiwgW1wiI2ZhZjNmM1wiXSx7aW5jbHVkZUZhbGxiYWNrQ29sb3JzOnRydWUsbGV2ZWw6XCJBQUFcIixzaXplOlwibGFyZ2VcIn0pLnRvSGV4U3RyaW5nKCk7IC8vIFwiI2ZhZjNmM1wiXG4vLyAgICB0aW55Y29sb3IubW9zdFJlYWRhYmxlKFwiI2E4MDE1YVwiLCBbXCIjZmFmM2YzXCJdLHtpbmNsdWRlRmFsbGJhY2tDb2xvcnM6dHJ1ZSxsZXZlbDpcIkFBQVwiLHNpemU6XCJzbWFsbFwifSkudG9IZXhTdHJpbmcoKTsgLy8gXCIjZmZmZmZmXCJcbnRpbnljb2xvci5tb3N0UmVhZGFibGUgPSBmdW5jdGlvbihiYXNlQ29sb3IsIGNvbG9yTGlzdCwgYXJncykge1xuICAgIHZhciBiZXN0Q29sb3IgPSBudWxsO1xuICAgIHZhciBiZXN0U2NvcmUgPSAwO1xuICAgIHZhciByZWFkYWJpbGl0eTtcbiAgICB2YXIgaW5jbHVkZUZhbGxiYWNrQ29sb3JzLCBsZXZlbCwgc2l6ZSA7XG4gICAgYXJncyA9IGFyZ3MgfHwge307XG4gICAgaW5jbHVkZUZhbGxiYWNrQ29sb3JzID0gYXJncy5pbmNsdWRlRmFsbGJhY2tDb2xvcnMgO1xuICAgIGxldmVsID0gYXJncy5sZXZlbDtcbiAgICBzaXplID0gYXJncy5zaXplO1xuXG4gICAgZm9yICh2YXIgaT0gMDsgaSA8IGNvbG9yTGlzdC5sZW5ndGggOyBpKyspIHtcbiAgICAgICAgcmVhZGFiaWxpdHkgPSB0aW55Y29sb3IucmVhZGFiaWxpdHkoYmFzZUNvbG9yLCBjb2xvckxpc3RbaV0pO1xuICAgICAgICBpZiAocmVhZGFiaWxpdHkgPiBiZXN0U2NvcmUpIHtcbiAgICAgICAgICAgIGJlc3RTY29yZSA9IHJlYWRhYmlsaXR5O1xuICAgICAgICAgICAgYmVzdENvbG9yID0gdGlueWNvbG9yKGNvbG9yTGlzdFtpXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGlueWNvbG9yLmlzUmVhZGFibGUoYmFzZUNvbG9yLCBiZXN0Q29sb3IsIHtcImxldmVsXCI6bGV2ZWwsXCJzaXplXCI6c2l6ZX0pIHx8ICFpbmNsdWRlRmFsbGJhY2tDb2xvcnMpIHtcbiAgICAgICAgcmV0dXJuIGJlc3RDb2xvcjtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGFyZ3MuaW5jbHVkZUZhbGxiYWNrQ29sb3JzPWZhbHNlO1xuICAgICAgICByZXR1cm4gdGlueWNvbG9yLm1vc3RSZWFkYWJsZShiYXNlQ29sb3IsW1wiI2ZmZlwiLCBcIiMwMDBcIl0sYXJncyk7XG4gICAgfVxufTtcblxuXG4vLyBCaWcgTGlzdCBvZiBDb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtY29sb3IvI3N2Zy1jb2xvcj5cbnZhciBuYW1lcyA9IHRpbnljb2xvci5uYW1lcyA9IHtcbiAgICBhbGljZWJsdWU6IFwiZjBmOGZmXCIsXG4gICAgYW50aXF1ZXdoaXRlOiBcImZhZWJkN1wiLFxuICAgIGFxdWE6IFwiMGZmXCIsXG4gICAgYXF1YW1hcmluZTogXCI3ZmZmZDRcIixcbiAgICBhenVyZTogXCJmMGZmZmZcIixcbiAgICBiZWlnZTogXCJmNWY1ZGNcIixcbiAgICBiaXNxdWU6IFwiZmZlNGM0XCIsXG4gICAgYmxhY2s6IFwiMDAwXCIsXG4gICAgYmxhbmNoZWRhbG1vbmQ6IFwiZmZlYmNkXCIsXG4gICAgYmx1ZTogXCIwMGZcIixcbiAgICBibHVldmlvbGV0OiBcIjhhMmJlMlwiLFxuICAgIGJyb3duOiBcImE1MmEyYVwiLFxuICAgIGJ1cmx5d29vZDogXCJkZWI4ODdcIixcbiAgICBidXJudHNpZW5uYTogXCJlYTdlNWRcIixcbiAgICBjYWRldGJsdWU6IFwiNWY5ZWEwXCIsXG4gICAgY2hhcnRyZXVzZTogXCI3ZmZmMDBcIixcbiAgICBjaG9jb2xhdGU6IFwiZDI2OTFlXCIsXG4gICAgY29yYWw6IFwiZmY3ZjUwXCIsXG4gICAgY29ybmZsb3dlcmJsdWU6IFwiNjQ5NWVkXCIsXG4gICAgY29ybnNpbGs6IFwiZmZmOGRjXCIsXG4gICAgY3JpbXNvbjogXCJkYzE0M2NcIixcbiAgICBjeWFuOiBcIjBmZlwiLFxuICAgIGRhcmtibHVlOiBcIjAwMDA4YlwiLFxuICAgIGRhcmtjeWFuOiBcIjAwOGI4YlwiLFxuICAgIGRhcmtnb2xkZW5yb2Q6IFwiYjg4NjBiXCIsXG4gICAgZGFya2dyYXk6IFwiYTlhOWE5XCIsXG4gICAgZGFya2dyZWVuOiBcIjAwNjQwMFwiLFxuICAgIGRhcmtncmV5OiBcImE5YTlhOVwiLFxuICAgIGRhcmtraGFraTogXCJiZGI3NmJcIixcbiAgICBkYXJrbWFnZW50YTogXCI4YjAwOGJcIixcbiAgICBkYXJrb2xpdmVncmVlbjogXCI1NTZiMmZcIixcbiAgICBkYXJrb3JhbmdlOiBcImZmOGMwMFwiLFxuICAgIGRhcmtvcmNoaWQ6IFwiOTkzMmNjXCIsXG4gICAgZGFya3JlZDogXCI4YjAwMDBcIixcbiAgICBkYXJrc2FsbW9uOiBcImU5OTY3YVwiLFxuICAgIGRhcmtzZWFncmVlbjogXCI4ZmJjOGZcIixcbiAgICBkYXJrc2xhdGVibHVlOiBcIjQ4M2Q4YlwiLFxuICAgIGRhcmtzbGF0ZWdyYXk6IFwiMmY0ZjRmXCIsXG4gICAgZGFya3NsYXRlZ3JleTogXCIyZjRmNGZcIixcbiAgICBkYXJrdHVycXVvaXNlOiBcIjAwY2VkMVwiLFxuICAgIGRhcmt2aW9sZXQ6IFwiOTQwMGQzXCIsXG4gICAgZGVlcHBpbms6IFwiZmYxNDkzXCIsXG4gICAgZGVlcHNreWJsdWU6IFwiMDBiZmZmXCIsXG4gICAgZGltZ3JheTogXCI2OTY5NjlcIixcbiAgICBkaW1ncmV5OiBcIjY5Njk2OVwiLFxuICAgIGRvZGdlcmJsdWU6IFwiMWU5MGZmXCIsXG4gICAgZmlyZWJyaWNrOiBcImIyMjIyMlwiLFxuICAgIGZsb3JhbHdoaXRlOiBcImZmZmFmMFwiLFxuICAgIGZvcmVzdGdyZWVuOiBcIjIyOGIyMlwiLFxuICAgIGZ1Y2hzaWE6IFwiZjBmXCIsXG4gICAgZ2FpbnNib3JvOiBcImRjZGNkY1wiLFxuICAgIGdob3N0d2hpdGU6IFwiZjhmOGZmXCIsXG4gICAgZ29sZDogXCJmZmQ3MDBcIixcbiAgICBnb2xkZW5yb2Q6IFwiZGFhNTIwXCIsXG4gICAgZ3JheTogXCI4MDgwODBcIixcbiAgICBncmVlbjogXCIwMDgwMDBcIixcbiAgICBncmVlbnllbGxvdzogXCJhZGZmMmZcIixcbiAgICBncmV5OiBcIjgwODA4MFwiLFxuICAgIGhvbmV5ZGV3OiBcImYwZmZmMFwiLFxuICAgIGhvdHBpbms6IFwiZmY2OWI0XCIsXG4gICAgaW5kaWFucmVkOiBcImNkNWM1Y1wiLFxuICAgIGluZGlnbzogXCI0YjAwODJcIixcbiAgICBpdm9yeTogXCJmZmZmZjBcIixcbiAgICBraGFraTogXCJmMGU2OGNcIixcbiAgICBsYXZlbmRlcjogXCJlNmU2ZmFcIixcbiAgICBsYXZlbmRlcmJsdXNoOiBcImZmZjBmNVwiLFxuICAgIGxhd25ncmVlbjogXCI3Y2ZjMDBcIixcbiAgICBsZW1vbmNoaWZmb246IFwiZmZmYWNkXCIsXG4gICAgbGlnaHRibHVlOiBcImFkZDhlNlwiLFxuICAgIGxpZ2h0Y29yYWw6IFwiZjA4MDgwXCIsXG4gICAgbGlnaHRjeWFuOiBcImUwZmZmZlwiLFxuICAgIGxpZ2h0Z29sZGVucm9keWVsbG93OiBcImZhZmFkMlwiLFxuICAgIGxpZ2h0Z3JheTogXCJkM2QzZDNcIixcbiAgICBsaWdodGdyZWVuOiBcIjkwZWU5MFwiLFxuICAgIGxpZ2h0Z3JleTogXCJkM2QzZDNcIixcbiAgICBsaWdodHBpbms6IFwiZmZiNmMxXCIsXG4gICAgbGlnaHRzYWxtb246IFwiZmZhMDdhXCIsXG4gICAgbGlnaHRzZWFncmVlbjogXCIyMGIyYWFcIixcbiAgICBsaWdodHNreWJsdWU6IFwiODdjZWZhXCIsXG4gICAgbGlnaHRzbGF0ZWdyYXk6IFwiNzg5XCIsXG4gICAgbGlnaHRzbGF0ZWdyZXk6IFwiNzg5XCIsXG4gICAgbGlnaHRzdGVlbGJsdWU6IFwiYjBjNGRlXCIsXG4gICAgbGlnaHR5ZWxsb3c6IFwiZmZmZmUwXCIsXG4gICAgbGltZTogXCIwZjBcIixcbiAgICBsaW1lZ3JlZW46IFwiMzJjZDMyXCIsXG4gICAgbGluZW46IFwiZmFmMGU2XCIsXG4gICAgbWFnZW50YTogXCJmMGZcIixcbiAgICBtYXJvb246IFwiODAwMDAwXCIsXG4gICAgbWVkaXVtYXF1YW1hcmluZTogXCI2NmNkYWFcIixcbiAgICBtZWRpdW1ibHVlOiBcIjAwMDBjZFwiLFxuICAgIG1lZGl1bW9yY2hpZDogXCJiYTU1ZDNcIixcbiAgICBtZWRpdW1wdXJwbGU6IFwiOTM3MGRiXCIsXG4gICAgbWVkaXVtc2VhZ3JlZW46IFwiM2NiMzcxXCIsXG4gICAgbWVkaXVtc2xhdGVibHVlOiBcIjdiNjhlZVwiLFxuICAgIG1lZGl1bXNwcmluZ2dyZWVuOiBcIjAwZmE5YVwiLFxuICAgIG1lZGl1bXR1cnF1b2lzZTogXCI0OGQxY2NcIixcbiAgICBtZWRpdW12aW9sZXRyZWQ6IFwiYzcxNTg1XCIsXG4gICAgbWlkbmlnaHRibHVlOiBcIjE5MTk3MFwiLFxuICAgIG1pbnRjcmVhbTogXCJmNWZmZmFcIixcbiAgICBtaXN0eXJvc2U6IFwiZmZlNGUxXCIsXG4gICAgbW9jY2FzaW46IFwiZmZlNGI1XCIsXG4gICAgbmF2YWpvd2hpdGU6IFwiZmZkZWFkXCIsXG4gICAgbmF2eTogXCIwMDAwODBcIixcbiAgICBvbGRsYWNlOiBcImZkZjVlNlwiLFxuICAgIG9saXZlOiBcIjgwODAwMFwiLFxuICAgIG9saXZlZHJhYjogXCI2YjhlMjNcIixcbiAgICBvcmFuZ2U6IFwiZmZhNTAwXCIsXG4gICAgb3JhbmdlcmVkOiBcImZmNDUwMFwiLFxuICAgIG9yY2hpZDogXCJkYTcwZDZcIixcbiAgICBwYWxlZ29sZGVucm9kOiBcImVlZThhYVwiLFxuICAgIHBhbGVncmVlbjogXCI5OGZiOThcIixcbiAgICBwYWxldHVycXVvaXNlOiBcImFmZWVlZVwiLFxuICAgIHBhbGV2aW9sZXRyZWQ6IFwiZGI3MDkzXCIsXG4gICAgcGFwYXlhd2hpcDogXCJmZmVmZDVcIixcbiAgICBwZWFjaHB1ZmY6IFwiZmZkYWI5XCIsXG4gICAgcGVydTogXCJjZDg1M2ZcIixcbiAgICBwaW5rOiBcImZmYzBjYlwiLFxuICAgIHBsdW06IFwiZGRhMGRkXCIsXG4gICAgcG93ZGVyYmx1ZTogXCJiMGUwZTZcIixcbiAgICBwdXJwbGU6IFwiODAwMDgwXCIsXG4gICAgcmViZWNjYXB1cnBsZTogXCI2NjMzOTlcIixcbiAgICByZWQ6IFwiZjAwXCIsXG4gICAgcm9zeWJyb3duOiBcImJjOGY4ZlwiLFxuICAgIHJveWFsYmx1ZTogXCI0MTY5ZTFcIixcbiAgICBzYWRkbGVicm93bjogXCI4YjQ1MTNcIixcbiAgICBzYWxtb246IFwiZmE4MDcyXCIsXG4gICAgc2FuZHlicm93bjogXCJmNGE0NjBcIixcbiAgICBzZWFncmVlbjogXCIyZThiNTdcIixcbiAgICBzZWFzaGVsbDogXCJmZmY1ZWVcIixcbiAgICBzaWVubmE6IFwiYTA1MjJkXCIsXG4gICAgc2lsdmVyOiBcImMwYzBjMFwiLFxuICAgIHNreWJsdWU6IFwiODdjZWViXCIsXG4gICAgc2xhdGVibHVlOiBcIjZhNWFjZFwiLFxuICAgIHNsYXRlZ3JheTogXCI3MDgwOTBcIixcbiAgICBzbGF0ZWdyZXk6IFwiNzA4MDkwXCIsXG4gICAgc25vdzogXCJmZmZhZmFcIixcbiAgICBzcHJpbmdncmVlbjogXCIwMGZmN2ZcIixcbiAgICBzdGVlbGJsdWU6IFwiNDY4MmI0XCIsXG4gICAgdGFuOiBcImQyYjQ4Y1wiLFxuICAgIHRlYWw6IFwiMDA4MDgwXCIsXG4gICAgdGhpc3RsZTogXCJkOGJmZDhcIixcbiAgICB0b21hdG86IFwiZmY2MzQ3XCIsXG4gICAgdHVycXVvaXNlOiBcIjQwZTBkMFwiLFxuICAgIHZpb2xldDogXCJlZTgyZWVcIixcbiAgICB3aGVhdDogXCJmNWRlYjNcIixcbiAgICB3aGl0ZTogXCJmZmZcIixcbiAgICB3aGl0ZXNtb2tlOiBcImY1ZjVmNVwiLFxuICAgIHllbGxvdzogXCJmZjBcIixcbiAgICB5ZWxsb3dncmVlbjogXCI5YWNkMzJcIlxufTtcblxuLy8gTWFrZSBpdCBlYXN5IHRvIGFjY2VzcyBjb2xvcnMgdmlhIGBoZXhOYW1lc1toZXhdYFxudmFyIGhleE5hbWVzID0gdGlueWNvbG9yLmhleE5hbWVzID0gZmxpcChuYW1lcyk7XG5cblxuLy8gVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS1cblxuLy8gYHsgJ25hbWUxJzogJ3ZhbDEnIH1gIGJlY29tZXMgYHsgJ3ZhbDEnOiAnbmFtZTEnIH1gXG5mdW5jdGlvbiBmbGlwKG8pIHtcbiAgICB2YXIgZmxpcHBlZCA9IHsgfTtcbiAgICBmb3IgKHZhciBpIGluIG8pIHtcbiAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgIGZsaXBwZWRbb1tpXV0gPSBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmbGlwcGVkO1xufVxuXG4vLyBSZXR1cm4gYSB2YWxpZCBhbHBoYSB2YWx1ZSBbMCwxXSB3aXRoIGFsbCBpbnZhbGlkIHZhbHVlcyBiZWluZyBzZXQgdG8gMVxuZnVuY3Rpb24gYm91bmRBbHBoYShhKSB7XG4gICAgYSA9IHBhcnNlRmxvYXQoYSk7XG5cbiAgICBpZiAoaXNOYU4oYSkgfHwgYSA8IDAgfHwgYSA+IDEpIHtcbiAgICAgICAgYSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGE7XG59XG5cbi8vIFRha2UgaW5wdXQgZnJvbSBbMCwgbl0gYW5kIHJldHVybiBpdCBhcyBbMCwgMV1cbmZ1bmN0aW9uIGJvdW5kMDEobiwgbWF4KSB7XG4gICAgaWYgKGlzT25lUG9pbnRaZXJvKG4pKSB7IG4gPSBcIjEwMCVcIjsgfVxuXG4gICAgdmFyIHByb2Nlc3NQZXJjZW50ID0gaXNQZXJjZW50YWdlKG4pO1xuICAgIG4gPSBtYXRoTWluKG1heCwgbWF0aE1heCgwLCBwYXJzZUZsb2F0KG4pKSk7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGNvbnZlcnQgcGVyY2VudGFnZSBpbnRvIG51bWJlclxuICAgIGlmIChwcm9jZXNzUGVyY2VudCkge1xuICAgICAgICBuID0gcGFyc2VJbnQobiAqIG1heCwgMTApIC8gMTAwO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBmbG9hdGluZyBwb2ludCByb3VuZGluZyBlcnJvcnNcbiAgICBpZiAoKE1hdGguYWJzKG4gLSBtYXgpIDwgMC4wMDAwMDEpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIC8vIENvbnZlcnQgaW50byBbMCwgMV0gcmFuZ2UgaWYgaXQgaXNuJ3QgYWxyZWFkeVxuICAgIHJldHVybiAobiAlIG1heCkgLyBwYXJzZUZsb2F0KG1heCk7XG59XG5cbi8vIEZvcmNlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMVxuZnVuY3Rpb24gY2xhbXAwMSh2YWwpIHtcbiAgICByZXR1cm4gbWF0aE1pbigxLCBtYXRoTWF4KDAsIHZhbCkpO1xufVxuXG4vLyBQYXJzZSBhIGJhc2UtMTYgaGV4IHZhbHVlIGludG8gYSBiYXNlLTEwIGludGVnZXJcbmZ1bmN0aW9uIHBhcnNlSW50RnJvbUhleCh2YWwpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQodmFsLCAxNik7XG59XG5cbi8vIE5lZWQgdG8gaGFuZGxlIDEuMCBhcyAxMDAlLCBzaW5jZSBvbmNlIGl0IGlzIGEgbnVtYmVyLCB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGJldHdlZW4gaXQgYW5kIDFcbi8vIDxodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc0MjIwNzIvamF2YXNjcmlwdC1ob3ctdG8tZGV0ZWN0LW51bWJlci1hcy1hLWRlY2ltYWwtaW5jbHVkaW5nLTEtMD5cbmZ1bmN0aW9uIGlzT25lUG9pbnRaZXJvKG4pIHtcbiAgICByZXR1cm4gdHlwZW9mIG4gPT0gXCJzdHJpbmdcIiAmJiBuLmluZGV4T2YoJy4nKSAhPSAtMSAmJiBwYXJzZUZsb2F0KG4pID09PSAxO1xufVxuXG4vLyBDaGVjayB0byBzZWUgaWYgc3RyaW5nIHBhc3NlZCBpbiBpcyBhIHBlcmNlbnRhZ2VcbmZ1bmN0aW9uIGlzUGVyY2VudGFnZShuKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBuID09PSBcInN0cmluZ1wiICYmIG4uaW5kZXhPZignJScpICE9IC0xO1xufVxuXG4vLyBGb3JjZSBhIGhleCB2YWx1ZSB0byBoYXZlIDIgY2hhcmFjdGVyc1xuZnVuY3Rpb24gcGFkMihjKSB7XG4gICAgcmV0dXJuIGMubGVuZ3RoID09IDEgPyAnMCcgKyBjIDogJycgKyBjO1xufVxuXG4vLyBSZXBsYWNlIGEgZGVjaW1hbCB3aXRoIGl0J3MgcGVyY2VudGFnZSB2YWx1ZVxuZnVuY3Rpb24gY29udmVydFRvUGVyY2VudGFnZShuKSB7XG4gICAgaWYgKG4gPD0gMSkge1xuICAgICAgICBuID0gKG4gKiAxMDApICsgXCIlXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG47XG59XG5cbi8vIENvbnZlcnRzIGEgZGVjaW1hbCB0byBhIGhleCB2YWx1ZVxuZnVuY3Rpb24gY29udmVydERlY2ltYWxUb0hleChkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChkKSAqIDI1NSkudG9TdHJpbmcoMTYpO1xufVxuLy8gQ29udmVydHMgYSBoZXggdmFsdWUgdG8gYSBkZWNpbWFsXG5mdW5jdGlvbiBjb252ZXJ0SGV4VG9EZWNpbWFsKGgpIHtcbiAgICByZXR1cm4gKHBhcnNlSW50RnJvbUhleChoKSAvIDI1NSk7XG59XG5cbnZhciBtYXRjaGVycyA9IChmdW5jdGlvbigpIHtcblxuICAgIC8vIDxodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jaW50ZWdlcnM+XG4gICAgdmFyIENTU19JTlRFR0VSID0gXCJbLVxcXFwrXT9cXFxcZCslP1wiO1xuXG4gICAgLy8gPGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdmFsdWVzLyNudW1iZXItdmFsdWU+XG4gICAgdmFyIENTU19OVU1CRVIgPSBcIlstXFxcXCtdP1xcXFxkKlxcXFwuXFxcXGQrJT9cIjtcblxuICAgIC8vIEFsbG93IHBvc2l0aXZlL25lZ2F0aXZlIGludGVnZXIvbnVtYmVyLiAgRG9uJ3QgY2FwdHVyZSB0aGUgZWl0aGVyL29yLCBqdXN0IHRoZSBlbnRpcmUgb3V0Y29tZS5cbiAgICB2YXIgQ1NTX1VOSVQgPSBcIig/OlwiICsgQ1NTX05VTUJFUiArIFwiKXwoPzpcIiArIENTU19JTlRFR0VSICsgXCIpXCI7XG5cbiAgICAvLyBBY3R1YWwgbWF0Y2hpbmcuXG4gICAgLy8gUGFyZW50aGVzZXMgYW5kIGNvbW1hcyBhcmUgb3B0aW9uYWwsIGJ1dCBub3QgcmVxdWlyZWQuXG4gICAgLy8gV2hpdGVzcGFjZSBjYW4gdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWFzIG9yIG9wZW5pbmcgcGFyZW5cbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDMgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcbiAgICB2YXIgUEVSTUlTU0lWRV9NQVRDSDQgPSBcIltcXFxcc3xcXFxcKF0rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilbLHxcXFxcc10rKFwiICsgQ1NTX1VOSVQgKyBcIilcXFxccypcXFxcKT9cIjtcblxuICAgIHJldHVybiB7XG4gICAgICAgIENTU19VTklUOiBuZXcgUmVnRXhwKENTU19VTklUKSxcbiAgICAgICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyksXG4gICAgICAgIHJnYmE6IG5ldyBSZWdFeHAoXCJyZ2JhXCIgKyBQRVJNSVNTSVZFX01BVENINCksXG4gICAgICAgIGhzbDogbmV3IFJlZ0V4cChcImhzbFwiICsgUEVSTUlTU0lWRV9NQVRDSDMpLFxuICAgICAgICBoc2xhOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxuICAgICAgICBoc3Y6IG5ldyBSZWdFeHAoXCJoc3ZcIiArIFBFUk1JU1NJVkVfTUFUQ0gzKSxcbiAgICAgICAgaHN2YTogbmV3IFJlZ0V4cChcImhzdmFcIiArIFBFUk1JU1NJVkVfTUFUQ0g0KSxcbiAgICAgICAgaGV4MzogL14jPyhbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KSQvLFxuICAgICAgICBoZXg2OiAvXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8sXG4gICAgICAgIGhleDQ6IC9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8sXG4gICAgICAgIGhleDg6IC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC9cbiAgICB9O1xufSkoKTtcblxuLy8gYGlzVmFsaWRDU1NVbml0YFxuLy8gVGFrZSBpbiBhIHNpbmdsZSBzdHJpbmcgLyBudW1iZXIgYW5kIGNoZWNrIHRvIHNlZSBpZiBpdCBsb29rcyBsaWtlIGEgQ1NTIHVuaXRcbi8vIChzZWUgYG1hdGNoZXJzYCBhYm92ZSBmb3IgZGVmaW5pdGlvbikuXG5mdW5jdGlvbiBpc1ZhbGlkQ1NTVW5pdChjb2xvcikge1xuICAgIHJldHVybiAhIW1hdGNoZXJzLkNTU19VTklULmV4ZWMoY29sb3IpO1xufVxuXG4vLyBgc3RyaW5nSW5wdXRUb09iamVjdGBcbi8vIFBlcm1pc3NpdmUgc3RyaW5nIHBhcnNpbmcuICBUYWtlIGluIGEgbnVtYmVyIG9mIGZvcm1hdHMsIGFuZCBvdXRwdXQgYW4gb2JqZWN0XG4vLyBiYXNlZCBvbiBkZXRlY3RlZCBmb3JtYXQuICBSZXR1cm5zIGB7IHIsIGcsIGIgfWAgb3IgYHsgaCwgcywgbCB9YCBvciBgeyBoLCBzLCB2fWBcbmZ1bmN0aW9uIHN0cmluZ0lucHV0VG9PYmplY3QoY29sb3IpIHtcblxuICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSh0cmltTGVmdCwnJykucmVwbGFjZSh0cmltUmlnaHQsICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBuYW1lZCA9IGZhbHNlO1xuICAgIGlmIChuYW1lc1tjb2xvcl0pIHtcbiAgICAgICAgY29sb3IgPSBuYW1lc1tjb2xvcl07XG4gICAgICAgIG5hbWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY29sb3IgPT0gJ3RyYW5zcGFyZW50Jykge1xuICAgICAgICByZXR1cm4geyByOiAwLCBnOiAwLCBiOiAwLCBhOiAwLCBmb3JtYXQ6IFwibmFtZVwiIH07XG4gICAgfVxuXG4gICAgLy8gVHJ5IHRvIG1hdGNoIHN0cmluZyBpbnB1dCB1c2luZyByZWd1bGFyIGV4cHJlc3Npb25zLlxuICAgIC8vIEtlZXAgbW9zdCBvZiB0aGUgbnVtYmVyIGJvdW5kaW5nIG91dCBvZiB0aGlzIGZ1bmN0aW9uIC0gZG9uJ3Qgd29ycnkgYWJvdXQgWzAsMV0gb3IgWzAsMTAwXSBvciBbMCwzNjBdXG4gICAgLy8gSnVzdCByZXR1cm4gYW4gb2JqZWN0IGFuZCBsZXQgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb25zIGhhbmRsZSB0aGF0LlxuICAgIC8vIFRoaXMgd2F5IHRoZSByZXN1bHQgd2lsbCBiZSB0aGUgc2FtZSB3aGV0aGVyIHRoZSB0aW55Y29sb3IgaXMgaW5pdGlhbGl6ZWQgd2l0aCBzdHJpbmcgb3Igb2JqZWN0LlxuICAgIHZhciBtYXRjaDtcbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMucmdiLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5yZ2JhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hbMl0sIGI6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHNsLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIGw6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oc2xhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIGw6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaHN2LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIHY6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oc3ZhLmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIHY6IG1hdGNoWzNdLCBhOiBtYXRjaFs0XSB9O1xuICAgIH1cbiAgICBpZiAoKG1hdGNoID0gbWF0Y2hlcnMuaGV4OC5leGVjKGNvbG9yKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHI6IHBhcnNlSW50RnJvbUhleChtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0pLFxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdKSxcbiAgICAgICAgICAgIGE6IGNvbnZlcnRIZXhUb0RlY2ltYWwobWF0Y2hbNF0pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXg4XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDYuZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxuICAgICAgICAgICAgZzogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSksXG4gICAgICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBcImhleFwiXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmICgobWF0Y2ggPSBtYXRjaGVycy5oZXg0LmV4ZWMoY29sb3IpKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdICsgJycgKyBtYXRjaFsxXSksXG4gICAgICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0gKyAnJyArIG1hdGNoWzJdKSxcbiAgICAgICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRjaFszXSArICcnICsgbWF0Y2hbM10pLFxuICAgICAgICAgICAgYTogY29udmVydEhleFRvRGVjaW1hbChtYXRjaFs0XSArICcnICsgbWF0Y2hbNF0pLFxuICAgICAgICAgICAgZm9ybWF0OiBuYW1lZCA/IFwibmFtZVwiIDogXCJoZXg4XCJcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaWYgKChtYXRjaCA9IG1hdGNoZXJzLmhleDMuZXhlYyhjb2xvcikpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0gKyAnJyArIG1hdGNoWzFdKSxcbiAgICAgICAgICAgIGc6IHBhcnNlSW50RnJvbUhleChtYXRjaFsyXSArICcnICsgbWF0Y2hbMl0pLFxuICAgICAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzNdICsgJycgKyBtYXRjaFszXSksXG4gICAgICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBcImhleFwiXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVdDQUcyUGFybXMocGFybXMpIHtcbiAgICAvLyByZXR1cm4gdmFsaWQgV0NBRzIgcGFybXMgZm9yIGlzUmVhZGFibGUuXG4gICAgLy8gSWYgaW5wdXQgcGFybXMgYXJlIGludmFsaWQsIHJldHVybiB7XCJsZXZlbFwiOlwiQUFcIiwgXCJzaXplXCI6XCJzbWFsbFwifVxuICAgIHZhciBsZXZlbCwgc2l6ZTtcbiAgICBwYXJtcyA9IHBhcm1zIHx8IHtcImxldmVsXCI6XCJBQVwiLCBcInNpemVcIjpcInNtYWxsXCJ9O1xuICAgIGxldmVsID0gKHBhcm1zLmxldmVsIHx8IFwiQUFcIikudG9VcHBlckNhc2UoKTtcbiAgICBzaXplID0gKHBhcm1zLnNpemUgfHwgXCJzbWFsbFwiKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChsZXZlbCAhPT0gXCJBQVwiICYmIGxldmVsICE9PSBcIkFBQVwiKSB7XG4gICAgICAgIGxldmVsID0gXCJBQVwiO1xuICAgIH1cbiAgICBpZiAoc2l6ZSAhPT0gXCJzbWFsbFwiICYmIHNpemUgIT09IFwibGFyZ2VcIikge1xuICAgICAgICBzaXplID0gXCJzbWFsbFwiO1xuICAgIH1cbiAgICByZXR1cm4ge1wibGV2ZWxcIjpsZXZlbCwgXCJzaXplXCI6c2l6ZX07XG59XG5cbi8vIE5vZGU6IEV4cG9ydCBmdW5jdGlvblxuaWYgKHR5cGVvZiBtb2R1bGUgIT09IFwidW5kZWZpbmVkXCIgJiYgbW9kdWxlLmV4cG9ydHMpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHRpbnljb2xvcjtcbn1cbi8vIEFNRC9yZXF1aXJlanM6IERlZmluZSB0aGUgbW9kdWxlXG5lbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICBkZWZpbmUoZnVuY3Rpb24gKCkge3JldHVybiB0aW55Y29sb3I7fSk7XG59XG4vLyBCcm93c2VyOiBFeHBvc2UgdG8gd2luZG93XG5lbHNlIHtcbiAgICB3aW5kb3cudGlueWNvbG9yID0gdGlueWNvbG9yO1xufVxuXG59KShNYXRoKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGNyZWF0ZTtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9pbmRleCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vaW5kZXhcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBjdXN0b21DYWNoZSA9IG5ldyBTZXQoKTtcblxuZnVuY3Rpb24gY3JlYXRlKCkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBzY3JpcHRVcmwgPSBvcHRpb25zLnNjcmlwdFVybCxcbiAgICAgIF9vcHRpb25zJGV4dHJhQ29tbW9uUCA9IG9wdGlvbnMuZXh0cmFDb21tb25Qcm9wcyxcbiAgICAgIGV4dHJhQ29tbW9uUHJvcHMgPSBfb3B0aW9ucyRleHRyYUNvbW1vblAgPT09IHZvaWQgMCA/IHt9IDogX29wdGlvbnMkZXh0cmFDb21tb25QO1xuICAvKipcbiAgICogRE9NIEFQSSByZXF1aXJlZC5cbiAgICogTWFrZSBzdXJlIGluIGJyb3dzZXIgZW52aXJvbm1lbnQuXG4gICAqIFRoZSBDdXN0b20gSWNvbiB3aWxsIGNyZWF0ZSBhIDxzY3JpcHQvPlxuICAgKiB0aGF0IGxvYWRzIFNWRyBzeW1ib2xzIGFuZCBpbnNlcnQgdGhlIFNWRyBFbGVtZW50IGludG8gdGhlIGRvY3VtZW50IGJvZHkuXG4gICAqL1xuXG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBzY3JpcHRVcmwgPT09ICdzdHJpbmcnICYmIHNjcmlwdFVybC5sZW5ndGggJiYgIWN1c3RvbUNhY2hlLmhhcyhzY3JpcHRVcmwpKSB7XG4gICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHNjcmlwdFVybCk7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnZGF0YS1uYW1lc3BhY2UnLCBzY3JpcHRVcmwpO1xuICAgIGN1c3RvbUNhY2hlLmFkZChzY3JpcHRVcmwpO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgfVxuXG4gIHZhciBJY29uZm9udCA9IGZ1bmN0aW9uIEljb25mb250KHByb3BzKSB7XG4gICAgdmFyIHR5cGUgPSBwcm9wcy50eXBlLFxuICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInR5cGVcIiwgXCJjaGlsZHJlblwiXSk7IC8vIGNvbXBvbmVudCA+IGNoaWxkcmVuID4gdHlwZVxuXG5cbiAgICB2YXIgY29udGVudCA9IG51bGw7XG5cbiAgICBpZiAocHJvcHMudHlwZSkge1xuICAgICAgY29udGVudCA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwidXNlXCIsIHtcbiAgICAgICAgeGxpbmtIcmVmOiBcIiNcIi5jb25jYXQodHlwZSlcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgY29udGVudCA9IGNoaWxkcmVuO1xuICAgIH1cblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaW5kZXhbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7fSwgZXh0cmFDb21tb25Qcm9wcywgcmVzdFByb3BzKSwgY29udGVudCk7XG4gIH07XG5cbiAgSWNvbmZvbnQuZGlzcGxheU5hbWUgPSAnSWNvbmZvbnQnO1xuICByZXR1cm4gSWNvbmZvbnQ7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmdldFRoZW1lRnJvbVR5cGVOYW1lID0gZ2V0VGhlbWVGcm9tVHlwZU5hbWU7XG5leHBvcnRzLnJlbW92ZVR5cGVUaGVtZSA9IHJlbW92ZVR5cGVUaGVtZTtcbmV4cG9ydHMud2l0aFRoZW1lU3VmZml4ID0gd2l0aFRoZW1lU3VmZml4O1xuZXhwb3J0cy5hbGlhcyA9IGFsaWFzO1xuZXhwb3J0cy5zdmdCYXNlUHJvcHMgPSB2b2lkIDA7XG5cbnZhciBfd2FybmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhcm5pbmdcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuLy8gVGhlc2UgcHJvcHMgbWFrZSBzdXJlIHRoYXQgdGhlIFNWRyBiZWhhdmlvdXJzIGxpa2UgZ2VuZXJhbCB0ZXh0LlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2Jsb2cucHJvdG90eXByLmlvL2FsaWduLXN2Zy1pY29ucy10by10ZXh0LWFuZC1zYXktZ29vZGJ5ZS10by1mb250LWljb25zLWQ0NGIzZDdiMjZiNFxudmFyIHN2Z0Jhc2VQcm9wcyA9IHtcbiAgd2lkdGg6ICcxZW0nLFxuICBoZWlnaHQ6ICcxZW0nLFxuICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgJ2FyaWEtaGlkZGVuJzogdHJ1ZSxcbiAgZm9jdXNhYmxlOiAnZmFsc2UnXG59O1xuZXhwb3J0cy5zdmdCYXNlUHJvcHMgPSBzdmdCYXNlUHJvcHM7XG52YXIgZmlsbFRlc3RlciA9IC8tZmlsbCQvO1xudmFyIG91dGxpbmVUZXN0ZXIgPSAvLW8kLztcbnZhciB0d29Ub25lVGVzdGVyID0gLy10d290b25lJC87XG5cbmZ1bmN0aW9uIGdldFRoZW1lRnJvbVR5cGVOYW1lKHR5cGUpIHtcbiAgdmFyIHJlc3VsdCA9IG51bGw7XG5cbiAgaWYgKGZpbGxUZXN0ZXIudGVzdCh0eXBlKSkge1xuICAgIHJlc3VsdCA9ICdmaWxsZWQnO1xuICB9IGVsc2UgaWYgKG91dGxpbmVUZXN0ZXIudGVzdCh0eXBlKSkge1xuICAgIHJlc3VsdCA9ICdvdXRsaW5lZCc7XG4gIH0gZWxzZSBpZiAodHdvVG9uZVRlc3Rlci50ZXN0KHR5cGUpKSB7XG4gICAgcmVzdWx0ID0gJ3R3b1RvbmUnO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlVHlwZVRoZW1lKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUucmVwbGFjZShmaWxsVGVzdGVyLCAnJykucmVwbGFjZShvdXRsaW5lVGVzdGVyLCAnJykucmVwbGFjZSh0d29Ub25lVGVzdGVyLCAnJyk7XG59XG5cbmZ1bmN0aW9uIHdpdGhUaGVtZVN1ZmZpeCh0eXBlLCB0aGVtZSkge1xuICB2YXIgcmVzdWx0ID0gdHlwZTtcblxuICBpZiAodGhlbWUgPT09ICdmaWxsZWQnKSB7XG4gICAgcmVzdWx0ICs9ICctZmlsbCc7XG4gIH0gZWxzZSBpZiAodGhlbWUgPT09ICdvdXRsaW5lZCcpIHtcbiAgICByZXN1bHQgKz0gJy1vJztcbiAgfSBlbHNlIGlmICh0aGVtZSA9PT0gJ3R3b1RvbmUnKSB7XG4gICAgcmVzdWx0ICs9ICctdHdvdG9uZSc7XG4gIH0gZWxzZSB7XG4gICAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkoZmFsc2UsICdJY29uJywgXCJUaGlzIGljb24gJ1wiLmNvbmNhdCh0eXBlLCBcIicgaGFzIHVua25vd24gdGhlbWUgJ1wiKS5jb25jYXQodGhlbWUsIFwiJ1wiKSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufSAvLyBGb3IgYWxpYXMgb3IgY29tcGF0aWJpbGl0eVxuXG5cbmZ1bmN0aW9uIGFsaWFzKHR5cGUpIHtcbiAgdmFyIG5ld1R5cGUgPSB0eXBlO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2Nyb3NzJzpcbiAgICAgIG5ld1R5cGUgPSAnY2xvc2UnO1xuICAgICAgYnJlYWs7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTMwMDdcblxuICAgIGNhc2UgJ2ludGVyYXRpb24nOlxuICAgICAgbmV3VHlwZSA9ICdpbnRlcmFjdGlvbic7XG4gICAgICBicmVhaztcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy8xNjgxMFxuXG4gICAgY2FzZSAnY2FubGVuZGFyJzpcbiAgICAgIG5ld1R5cGUgPSAnY2FsZW5kYXInO1xuICAgICAgYnJlYWs7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvMTc0NDhcblxuICAgIGNhc2UgJ2NvbHVtLWhlaWdodCc6XG4gICAgICBuZXdUeXBlID0gJ2NvbHVtbi1oZWlnaHQnO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICB9XG5cbiAgKDAsIF93YXJuaW5nW1wiZGVmYXVsdFwiXSkobmV3VHlwZSA9PT0gdHlwZSwgJ0ljb24nLCBcIkljb24gJ1wiLmNvbmNhdCh0eXBlLCBcIicgd2FzIGEgdHlwbyBhbmQgaXMgbm93IGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgJ1wiKS5jb25jYXQobmV3VHlwZSwgXCInIGluc3RlYWQuXCIpKTtcbiAgcmV0dXJuIG5ld1R5cGU7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIF9kZWZhdWx0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2xvY2FsZS9kZWZhdWx0XCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbnZhciBfZGVmYXVsdCA9IF9kZWZhdWx0MltcImRlZmF1bHRcIl07XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHBhZ2UnLFxuICBqdW1wX3RvOiAnR28gdG8nLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUHJldmlvdXMgUGFnZScsXG4gIG5leHRfcGFnZTogJ05leHQgUGFnZScsXG4gIHByZXZfNTogJ1ByZXZpb3VzIDUgUGFnZXMnLFxuICBuZXh0XzU6ICdOZXh0IDUgUGFnZXMnLFxuICBwcmV2XzM6ICdQcmV2aW91cyAzIFBhZ2VzJyxcbiAgbmV4dF8zOiAnTmV4dCAzIFBhZ2VzJ1xufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgdG9kYXk6ICdUb2RheScsXG4gIG5vdzogJ05vdycsXG4gIGJhY2tUb1RvZGF5OiAnQmFjayB0byB0b2RheScsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ0NsZWFyJyxcbiAgbW9udGg6ICdNb250aCcsXG4gIHllYXI6ICdZZWFyJyxcbiAgdGltZVNlbGVjdDogJ3NlbGVjdCB0aW1lJyxcbiAgZGF0ZVNlbGVjdDogJ3NlbGVjdCBkYXRlJyxcbiAgd2Vla1NlbGVjdDogJ0Nob29zZSBhIHdlZWsnLFxuICBtb250aFNlbGVjdDogJ0Nob29zZSBhIG1vbnRoJyxcbiAgeWVhclNlbGVjdDogJ0Nob29zZSBhIHllYXInLFxuICBkZWNhZGVTZWxlY3Q6ICdDaG9vc2UgYSBkZWNhZGUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdNL0QvWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ00vRC9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGggKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOZXh0IG1vbnRoIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdMYXN0IHllYXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTmV4dCB5ZWFyIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdMYXN0IGRlY2FkZScsXG4gIG5leHREZWNhZGU6ICdOZXh0IGRlY2FkZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ0xhc3QgY2VudHVyeScsXG4gIG5leHRDZW50dXJ5OiAnTmV4dCBjZW50dXJ5J1xufTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBfZW5fVVMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9kYXRlLXBpY2tlci9sb2NhbGUvZW5fVVNcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxudmFyIF9kZWZhdWx0ID0gX2VuX1VTW1wiZGVmYXVsdFwiXTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnNldFR3b1RvbmVDb2xvciA9IHNldFR3b1RvbmVDb2xvcjtcbmV4cG9ydHMuZ2V0VHdvVG9uZUNvbG9yID0gZ2V0VHdvVG9uZUNvbG9yO1xuXG52YXIgX2ljb25zUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYW50LWRlc2lnbi9pY29ucy1yZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBzZXRUd29Ub25lQ29sb3IocHJpbWFyeUNvbG9yKSB7XG4gIHJldHVybiBfaWNvbnNSZWFjdFtcImRlZmF1bHRcIl0uc2V0VHdvVG9uZUNvbG9ycyh7XG4gICAgcHJpbWFyeUNvbG9yOiBwcmltYXJ5Q29sb3JcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFR3b1RvbmVDb2xvcigpIHtcbiAgdmFyIGNvbG9ycyA9IF9pY29uc1JlYWN0W1wiZGVmYXVsdFwiXS5nZXRUd29Ub25lQ29sb3JzKCk7XG5cbiAgcmV0dXJuIGNvbG9ycy5wcmltYXJ5Q29sb3I7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4cG9ydHMuQU5UX01BUksgPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBQcm9wVHlwZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicHJvcC10eXBlc1wiKSk7XG5cbnZhciBtb21lbnQgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwibW9tZW50XCIpKTtcblxudmFyIF9pbnRlcm9wRGVmYXVsdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL2ludGVyb3BEZWZhdWx0XCIpKTtcblxudmFyIF9sb2NhbGUgPSByZXF1aXJlKFwiLi4vbW9kYWwvbG9jYWxlXCIpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9fdXRpbC93YXJuaW5nXCIpKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIEFOVF9NQVJLID0gJ2ludGVybmFsTWFyayc7XG5leHBvcnRzLkFOVF9NQVJLID0gQU5UX01BUks7XG5cbmZ1bmN0aW9uIHNldE1vbWVudExvY2FsZShsb2NhbGUpIHtcbiAgaWYgKGxvY2FsZSAmJiBsb2NhbGUubG9jYWxlKSB7XG4gICAgKDAsIF9pbnRlcm9wRGVmYXVsdFtcImRlZmF1bHRcIl0pKG1vbWVudCkubG9jYWxlKGxvY2FsZS5sb2NhbGUpO1xuICB9IGVsc2Uge1xuICAgICgwLCBfaW50ZXJvcERlZmF1bHRbXCJkZWZhdWx0XCJdKShtb21lbnQpLmxvY2FsZSgnZW4nKTtcbiAgfVxufVxuXG52YXIgTG9jYWxlUHJvdmlkZXIgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKExvY2FsZVByb3ZpZGVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKExvY2FsZVByb3ZpZGVyKTtcblxuICBmdW5jdGlvbiBMb2NhbGVQcm92aWRlcihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBMb2NhbGVQcm92aWRlcik7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHByb3BzKTtcbiAgICBzZXRNb21lbnRMb2NhbGUocHJvcHMubG9jYWxlKTtcbiAgICAoMCwgX2xvY2FsZS5jaGFuZ2VDb25maXJtTG9jYWxlKShwcm9wcy5sb2NhbGUgJiYgcHJvcHMubG9jYWxlLk1vZGFsKTtcbiAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShwcm9wcy5fQU5UX01BUktfXyA9PT0gQU5UX01BUkssICdMb2NhbGVQcm92aWRlcicsICdgTG9jYWxlUHJvdmlkZXJgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYGxvY2FsZWAgd2l0aCBgQ29uZmlnUHJvdmlkZXJgIGluc3RlYWQ6IGh0dHA6Ly91LmFudC5kZXNpZ24vbG9jYWxlJyk7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExvY2FsZVByb3ZpZGVyLCBbe1xuICAgIGtleTogXCJnZXRDaGlsZENvbnRleHRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYW50TG9jYWxlOiBfZXh0ZW5kcyhfZXh0ZW5kcyh7fSwgdGhpcy5wcm9wcy5sb2NhbGUpLCB7XG4gICAgICAgICAgZXhpc3Q6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICB2YXIgbG9jYWxlID0gdGhpcy5wcm9wcy5sb2NhbGU7XG5cbiAgICAgIGlmIChwcmV2UHJvcHMubG9jYWxlICE9PSBsb2NhbGUpIHtcbiAgICAgICAgc2V0TW9tZW50TG9jYWxlKGxvY2FsZSk7XG4gICAgICAgICgwLCBfbG9jYWxlLmNoYW5nZUNvbmZpcm1Mb2NhbGUpKGxvY2FsZSAmJiBsb2NhbGUuTW9kYWwpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICgwLCBfbG9jYWxlLmNoYW5nZUNvbmZpcm1Mb2NhbGUpKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTG9jYWxlUHJvdmlkZXI7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gTG9jYWxlUHJvdmlkZXI7XG5Mb2NhbGVQcm92aWRlci5wcm9wVHlwZXMgPSB7XG4gIGxvY2FsZTogUHJvcFR5cGVzLm9iamVjdFxufTtcbkxvY2FsZVByb3ZpZGVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgbG9jYWxlOiB7fVxufTtcbkxvY2FsZVByb3ZpZGVyLmNoaWxkQ29udGV4dFR5cGVzID0ge1xuICBhbnRMb2NhbGU6IFByb3BUeXBlcy5vYmplY3Rcbn07IiwidmFyIG1hcCA9IHtcblx0XCIuL2FmXCI6IDI1NCxcblx0XCIuL2FmLmpzXCI6IDI1NCxcblx0XCIuL2FyXCI6IDI1NSxcblx0XCIuL2FyLWR6XCI6IDI1Nixcblx0XCIuL2FyLWR6LmpzXCI6IDI1Nixcblx0XCIuL2FyLWt3XCI6IDI1Nyxcblx0XCIuL2FyLWt3LmpzXCI6IDI1Nyxcblx0XCIuL2FyLWx5XCI6IDI1OCxcblx0XCIuL2FyLWx5LmpzXCI6IDI1OCxcblx0XCIuL2FyLW1hXCI6IDI1OSxcblx0XCIuL2FyLW1hLmpzXCI6IDI1OSxcblx0XCIuL2FyLXNhXCI6IDI2MCxcblx0XCIuL2FyLXNhLmpzXCI6IDI2MCxcblx0XCIuL2FyLXRuXCI6IDI2MSxcblx0XCIuL2FyLXRuLmpzXCI6IDI2MSxcblx0XCIuL2FyLmpzXCI6IDI1NSxcblx0XCIuL2F6XCI6IDI2Mixcblx0XCIuL2F6LmpzXCI6IDI2Mixcblx0XCIuL2JlXCI6IDI2Myxcblx0XCIuL2JlLmpzXCI6IDI2Myxcblx0XCIuL2JnXCI6IDI2NCxcblx0XCIuL2JnLmpzXCI6IDI2NCxcblx0XCIuL2JtXCI6IDI2NSxcblx0XCIuL2JtLmpzXCI6IDI2NSxcblx0XCIuL2JuXCI6IDI2Nixcblx0XCIuL2JuLmpzXCI6IDI2Nixcblx0XCIuL2JvXCI6IDI2Nyxcblx0XCIuL2JvLmpzXCI6IDI2Nyxcblx0XCIuL2JyXCI6IDI2OCxcblx0XCIuL2JyLmpzXCI6IDI2OCxcblx0XCIuL2JzXCI6IDI2OSxcblx0XCIuL2JzLmpzXCI6IDI2OSxcblx0XCIuL2NhXCI6IDI3MCxcblx0XCIuL2NhLmpzXCI6IDI3MCxcblx0XCIuL2NzXCI6IDI3MSxcblx0XCIuL2NzLmpzXCI6IDI3MSxcblx0XCIuL2N2XCI6IDI3Mixcblx0XCIuL2N2LmpzXCI6IDI3Mixcblx0XCIuL2N5XCI6IDI3Myxcblx0XCIuL2N5LmpzXCI6IDI3Myxcblx0XCIuL2RhXCI6IDI3NCxcblx0XCIuL2RhLmpzXCI6IDI3NCxcblx0XCIuL2RlXCI6IDI3NSxcblx0XCIuL2RlLWF0XCI6IDI3Nixcblx0XCIuL2RlLWF0LmpzXCI6IDI3Nixcblx0XCIuL2RlLWNoXCI6IDI3Nyxcblx0XCIuL2RlLWNoLmpzXCI6IDI3Nyxcblx0XCIuL2RlLmpzXCI6IDI3NSxcblx0XCIuL2R2XCI6IDI3OCxcblx0XCIuL2R2LmpzXCI6IDI3OCxcblx0XCIuL2VsXCI6IDI3OSxcblx0XCIuL2VsLmpzXCI6IDI3OSxcblx0XCIuL2VuLWF1XCI6IDI4MCxcblx0XCIuL2VuLWF1LmpzXCI6IDI4MCxcblx0XCIuL2VuLWNhXCI6IDI4MSxcblx0XCIuL2VuLWNhLmpzXCI6IDI4MSxcblx0XCIuL2VuLWdiXCI6IDI4Mixcblx0XCIuL2VuLWdiLmpzXCI6IDI4Mixcblx0XCIuL2VuLWllXCI6IDI4Myxcblx0XCIuL2VuLWllLmpzXCI6IDI4Myxcblx0XCIuL2VuLWlsXCI6IDI4NCxcblx0XCIuL2VuLWlsLmpzXCI6IDI4NCxcblx0XCIuL2VuLWluXCI6IDI4NSxcblx0XCIuL2VuLWluLmpzXCI6IDI4NSxcblx0XCIuL2VuLW56XCI6IDI4Nixcblx0XCIuL2VuLW56LmpzXCI6IDI4Nixcblx0XCIuL2VuLXNnXCI6IDI4Nyxcblx0XCIuL2VuLXNnLmpzXCI6IDI4Nyxcblx0XCIuL2VvXCI6IDI4OCxcblx0XCIuL2VvLmpzXCI6IDI4OCxcblx0XCIuL2VzXCI6IDI4OSxcblx0XCIuL2VzLWRvXCI6IDI5MCxcblx0XCIuL2VzLWRvLmpzXCI6IDI5MCxcblx0XCIuL2VzLXVzXCI6IDI5MSxcblx0XCIuL2VzLXVzLmpzXCI6IDI5MSxcblx0XCIuL2VzLmpzXCI6IDI4OSxcblx0XCIuL2V0XCI6IDI5Mixcblx0XCIuL2V0LmpzXCI6IDI5Mixcblx0XCIuL2V1XCI6IDI5Myxcblx0XCIuL2V1LmpzXCI6IDI5Myxcblx0XCIuL2ZhXCI6IDI5NCxcblx0XCIuL2ZhLmpzXCI6IDI5NCxcblx0XCIuL2ZpXCI6IDI5NSxcblx0XCIuL2ZpLmpzXCI6IDI5NSxcblx0XCIuL2ZpbFwiOiAyOTYsXG5cdFwiLi9maWwuanNcIjogMjk2LFxuXHRcIi4vZm9cIjogMjk3LFxuXHRcIi4vZm8uanNcIjogMjk3LFxuXHRcIi4vZnJcIjogMjk4LFxuXHRcIi4vZnItY2FcIjogMjk5LFxuXHRcIi4vZnItY2EuanNcIjogMjk5LFxuXHRcIi4vZnItY2hcIjogMzAwLFxuXHRcIi4vZnItY2guanNcIjogMzAwLFxuXHRcIi4vZnIuanNcIjogMjk4LFxuXHRcIi4vZnlcIjogMzAxLFxuXHRcIi4vZnkuanNcIjogMzAxLFxuXHRcIi4vZ2FcIjogMzAyLFxuXHRcIi4vZ2EuanNcIjogMzAyLFxuXHRcIi4vZ2RcIjogMzAzLFxuXHRcIi4vZ2QuanNcIjogMzAzLFxuXHRcIi4vZ2xcIjogMzA0LFxuXHRcIi4vZ2wuanNcIjogMzA0LFxuXHRcIi4vZ29tLWRldmFcIjogMzA1LFxuXHRcIi4vZ29tLWRldmEuanNcIjogMzA1LFxuXHRcIi4vZ29tLWxhdG5cIjogMzA2LFxuXHRcIi4vZ29tLWxhdG4uanNcIjogMzA2LFxuXHRcIi4vZ3VcIjogMzA3LFxuXHRcIi4vZ3UuanNcIjogMzA3LFxuXHRcIi4vaGVcIjogMzA4LFxuXHRcIi4vaGUuanNcIjogMzA4LFxuXHRcIi4vaGlcIjogMzA5LFxuXHRcIi4vaGkuanNcIjogMzA5LFxuXHRcIi4vaHJcIjogMzEwLFxuXHRcIi4vaHIuanNcIjogMzEwLFxuXHRcIi4vaHVcIjogMzExLFxuXHRcIi4vaHUuanNcIjogMzExLFxuXHRcIi4vaHktYW1cIjogMzEyLFxuXHRcIi4vaHktYW0uanNcIjogMzEyLFxuXHRcIi4vaWRcIjogMzEzLFxuXHRcIi4vaWQuanNcIjogMzEzLFxuXHRcIi4vaXNcIjogMzE0LFxuXHRcIi4vaXMuanNcIjogMzE0LFxuXHRcIi4vaXRcIjogMzE1LFxuXHRcIi4vaXQtY2hcIjogMzE2LFxuXHRcIi4vaXQtY2guanNcIjogMzE2LFxuXHRcIi4vaXQuanNcIjogMzE1LFxuXHRcIi4vamFcIjogMzE3LFxuXHRcIi4vamEuanNcIjogMzE3LFxuXHRcIi4vanZcIjogMzE4LFxuXHRcIi4vanYuanNcIjogMzE4LFxuXHRcIi4va2FcIjogMzE5LFxuXHRcIi4va2EuanNcIjogMzE5LFxuXHRcIi4va2tcIjogMzIwLFxuXHRcIi4va2suanNcIjogMzIwLFxuXHRcIi4va21cIjogMzIxLFxuXHRcIi4va20uanNcIjogMzIxLFxuXHRcIi4va25cIjogMzIyLFxuXHRcIi4va24uanNcIjogMzIyLFxuXHRcIi4va29cIjogMzIzLFxuXHRcIi4va28uanNcIjogMzIzLFxuXHRcIi4va3VcIjogMzI0LFxuXHRcIi4va3UuanNcIjogMzI0LFxuXHRcIi4va3lcIjogMzI1LFxuXHRcIi4va3kuanNcIjogMzI1LFxuXHRcIi4vbGJcIjogMzI2LFxuXHRcIi4vbGIuanNcIjogMzI2LFxuXHRcIi4vbG9cIjogMzI3LFxuXHRcIi4vbG8uanNcIjogMzI3LFxuXHRcIi4vbHRcIjogMzI4LFxuXHRcIi4vbHQuanNcIjogMzI4LFxuXHRcIi4vbHZcIjogMzI5LFxuXHRcIi4vbHYuanNcIjogMzI5LFxuXHRcIi4vbWVcIjogMzMwLFxuXHRcIi4vbWUuanNcIjogMzMwLFxuXHRcIi4vbWlcIjogMzMxLFxuXHRcIi4vbWkuanNcIjogMzMxLFxuXHRcIi4vbWtcIjogMzMyLFxuXHRcIi4vbWsuanNcIjogMzMyLFxuXHRcIi4vbWxcIjogMzMzLFxuXHRcIi4vbWwuanNcIjogMzMzLFxuXHRcIi4vbW5cIjogMzM0LFxuXHRcIi4vbW4uanNcIjogMzM0LFxuXHRcIi4vbXJcIjogMzM1LFxuXHRcIi4vbXIuanNcIjogMzM1LFxuXHRcIi4vbXNcIjogMzM2LFxuXHRcIi4vbXMtbXlcIjogMzM3LFxuXHRcIi4vbXMtbXkuanNcIjogMzM3LFxuXHRcIi4vbXMuanNcIjogMzM2LFxuXHRcIi4vbXRcIjogMzM4LFxuXHRcIi4vbXQuanNcIjogMzM4LFxuXHRcIi4vbXlcIjogMzM5LFxuXHRcIi4vbXkuanNcIjogMzM5LFxuXHRcIi4vbmJcIjogMzQwLFxuXHRcIi4vbmIuanNcIjogMzQwLFxuXHRcIi4vbmVcIjogMzQxLFxuXHRcIi4vbmUuanNcIjogMzQxLFxuXHRcIi4vbmxcIjogMzQyLFxuXHRcIi4vbmwtYmVcIjogMzQzLFxuXHRcIi4vbmwtYmUuanNcIjogMzQzLFxuXHRcIi4vbmwuanNcIjogMzQyLFxuXHRcIi4vbm5cIjogMzQ0LFxuXHRcIi4vbm4uanNcIjogMzQ0LFxuXHRcIi4vb2MtbG5jXCI6IDM0NSxcblx0XCIuL29jLWxuYy5qc1wiOiAzNDUsXG5cdFwiLi9wYS1pblwiOiAzNDYsXG5cdFwiLi9wYS1pbi5qc1wiOiAzNDYsXG5cdFwiLi9wbFwiOiAzNDcsXG5cdFwiLi9wbC5qc1wiOiAzNDcsXG5cdFwiLi9wdFwiOiAzNDgsXG5cdFwiLi9wdC1iclwiOiAzNDksXG5cdFwiLi9wdC1ici5qc1wiOiAzNDksXG5cdFwiLi9wdC5qc1wiOiAzNDgsXG5cdFwiLi9yb1wiOiAzNTAsXG5cdFwiLi9yby5qc1wiOiAzNTAsXG5cdFwiLi9ydVwiOiAzNTEsXG5cdFwiLi9ydS5qc1wiOiAzNTEsXG5cdFwiLi9zZFwiOiAzNTIsXG5cdFwiLi9zZC5qc1wiOiAzNTIsXG5cdFwiLi9zZVwiOiAzNTMsXG5cdFwiLi9zZS5qc1wiOiAzNTMsXG5cdFwiLi9zaVwiOiAzNTQsXG5cdFwiLi9zaS5qc1wiOiAzNTQsXG5cdFwiLi9za1wiOiAzNTUsXG5cdFwiLi9zay5qc1wiOiAzNTUsXG5cdFwiLi9zbFwiOiAzNTYsXG5cdFwiLi9zbC5qc1wiOiAzNTYsXG5cdFwiLi9zcVwiOiAzNTcsXG5cdFwiLi9zcS5qc1wiOiAzNTcsXG5cdFwiLi9zclwiOiAzNTgsXG5cdFwiLi9zci1jeXJsXCI6IDM1OSxcblx0XCIuL3NyLWN5cmwuanNcIjogMzU5LFxuXHRcIi4vc3IuanNcIjogMzU4LFxuXHRcIi4vc3NcIjogMzYwLFxuXHRcIi4vc3MuanNcIjogMzYwLFxuXHRcIi4vc3ZcIjogMzYxLFxuXHRcIi4vc3YuanNcIjogMzYxLFxuXHRcIi4vc3dcIjogMzYyLFxuXHRcIi4vc3cuanNcIjogMzYyLFxuXHRcIi4vdGFcIjogMzYzLFxuXHRcIi4vdGEuanNcIjogMzYzLFxuXHRcIi4vdGVcIjogMzY0LFxuXHRcIi4vdGUuanNcIjogMzY0LFxuXHRcIi4vdGV0XCI6IDM2NSxcblx0XCIuL3RldC5qc1wiOiAzNjUsXG5cdFwiLi90Z1wiOiAzNjYsXG5cdFwiLi90Zy5qc1wiOiAzNjYsXG5cdFwiLi90aFwiOiAzNjcsXG5cdFwiLi90aC5qc1wiOiAzNjcsXG5cdFwiLi90a1wiOiAzNjgsXG5cdFwiLi90ay5qc1wiOiAzNjgsXG5cdFwiLi90bC1waFwiOiAzNjksXG5cdFwiLi90bC1waC5qc1wiOiAzNjksXG5cdFwiLi90bGhcIjogMzcwLFxuXHRcIi4vdGxoLmpzXCI6IDM3MCxcblx0XCIuL3RyXCI6IDM3MSxcblx0XCIuL3RyLmpzXCI6IDM3MSxcblx0XCIuL3R6bFwiOiAzNzIsXG5cdFwiLi90emwuanNcIjogMzcyLFxuXHRcIi4vdHptXCI6IDM3Myxcblx0XCIuL3R6bS1sYXRuXCI6IDM3NCxcblx0XCIuL3R6bS1sYXRuLmpzXCI6IDM3NCxcblx0XCIuL3R6bS5qc1wiOiAzNzMsXG5cdFwiLi91Zy1jblwiOiAzNzUsXG5cdFwiLi91Zy1jbi5qc1wiOiAzNzUsXG5cdFwiLi91a1wiOiAzNzYsXG5cdFwiLi91ay5qc1wiOiAzNzYsXG5cdFwiLi91clwiOiAzNzcsXG5cdFwiLi91ci5qc1wiOiAzNzcsXG5cdFwiLi91elwiOiAzNzgsXG5cdFwiLi91ei1sYXRuXCI6IDM3OSxcblx0XCIuL3V6LWxhdG4uanNcIjogMzc5LFxuXHRcIi4vdXouanNcIjogMzc4LFxuXHRcIi4vdmlcIjogMzgwLFxuXHRcIi4vdmkuanNcIjogMzgwLFxuXHRcIi4veC1wc2V1ZG9cIjogMzgxLFxuXHRcIi4veC1wc2V1ZG8uanNcIjogMzgxLFxuXHRcIi4veW9cIjogMzgyLFxuXHRcIi4veW8uanNcIjogMzgyLFxuXHRcIi4vemgtY25cIjogMzgzLFxuXHRcIi4vemgtY24uanNcIjogMzgzLFxuXHRcIi4vemgtaGtcIjogMzg0LFxuXHRcIi4vemgtaGsuanNcIjogMzg0LFxuXHRcIi4vemgtbW9cIjogMzg1LFxuXHRcIi4vemgtbW8uanNcIjogMzg1LFxuXHRcIi4vemgtdHdcIjogMzg2LFxuXHRcIi4vemgtdHcuanNcIjogMzg2XG59O1xuXG5cbmZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0KHJlcSkge1xuXHR2YXIgaWQgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKTtcblx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oaWQpO1xufVxuZnVuY3Rpb24gd2VicGFja0NvbnRleHRSZXNvbHZlKHJlcSkge1xuXHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1hcCwgcmVxKSkge1xuXHRcdHZhciBlID0gbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIiArIHJlcSArIFwiJ1wiKTtcblx0XHRlLmNvZGUgPSAnTU9EVUxFX05PVF9GT1VORCc7XG5cdFx0dGhyb3cgZTtcblx0fVxuXHRyZXR1cm4gbWFwW3JlcV07XG59XG53ZWJwYWNrQ29udGV4dC5rZXlzID0gZnVuY3Rpb24gd2VicGFja0NvbnRleHRLZXlzKCkge1xuXHRyZXR1cm4gT2JqZWN0LmtleXMobWFwKTtcbn07XG53ZWJwYWNrQ29udGV4dC5yZXNvbHZlID0gd2VicGFja0NvbnRleHRSZXNvbHZlO1xubW9kdWxlLmV4cG9ydHMgPSB3ZWJwYWNrQ29udGV4dDtcbndlYnBhY2tDb250ZXh0LmlkID0gNTgzOyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBpbnRlcm9wRGVmYXVsdDtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzM2NTBcbi8vIHNpbmNlIHdlIGFyZSB1c2luZyB0cyAzLjUuMSwgaXQgc2hvdWxkIGJlIHNhZmUgdG8gcmVtb3ZlLlxuZnVuY3Rpb24gaW50ZXJvcERlZmF1bHQobSkge1xuICByZXR1cm4gbVtcImRlZmF1bHRcIl0gfHwgbTtcbn0iLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy53aXRoQ29uZmlnQ29uc3VtZXIgPSB3aXRoQ29uZmlnQ29uc3VtZXI7XG5leHBvcnRzLkNvbmZpZ0NvbnN1bWVyID0gZXhwb3J0cy5Db25maWdDb250ZXh0ID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NyZWF0ZVJlYWN0Q29udGV4dCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBhbnQtZGVzaWduL2NyZWF0ZS1yZWFjdC1jb250ZXh0XCIpKTtcblxudmFyIF9yZW5kZXJFbXB0eSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcmVuZGVyRW1wdHlcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxudmFyIENvbmZpZ0NvbnRleHQgPSAoMCwgX2NyZWF0ZVJlYWN0Q29udGV4dFtcImRlZmF1bHRcIl0pKHtcbiAgLy8gV2UgcHJvdmlkZSBhIGRlZmF1bHQgZnVuY3Rpb24gZm9yIENvbnRleHQgd2l0aG91dCBwcm92aWRlclxuICBnZXRQcmVmaXhDbHM6IGZ1bmN0aW9uIGdldFByZWZpeENscyhzdWZmaXhDbHMsIGN1c3RvbWl6ZVByZWZpeENscykge1xuICAgIGlmIChjdXN0b21pemVQcmVmaXhDbHMpIHJldHVybiBjdXN0b21pemVQcmVmaXhDbHM7XG4gICAgcmV0dXJuIFwiYW50LVwiLmNvbmNhdChzdWZmaXhDbHMpO1xuICB9LFxuICByZW5kZXJFbXB0eTogX3JlbmRlckVtcHR5W1wiZGVmYXVsdFwiXVxufSk7XG5leHBvcnRzLkNvbmZpZ0NvbnRleHQgPSBDb25maWdDb250ZXh0O1xudmFyIENvbmZpZ0NvbnN1bWVyID0gQ29uZmlnQ29udGV4dC5Db25zdW1lcjtcbmV4cG9ydHMuQ29uZmlnQ29uc3VtZXIgPSBDb25maWdDb25zdW1lcjtcblxuZnVuY3Rpb24gd2l0aENvbmZpZ0NvbnN1bWVyKGNvbmZpZykge1xuICByZXR1cm4gZnVuY3Rpb24gd2l0aENvbmZpZ0NvbnN1bWVyRnVuYyhDb21wb25lbnQpIHtcbiAgICAvLyBXcmFwIHdpdGggQ29uZmlnQ29uc3VtZXIuIFNpbmNlIHdlIG5lZWQgY29tcGF0aWJsZSB3aXRoIHJlYWN0IDE1LCBiZSBjYXJlIHdoZW4gdXNpbmcgcmVmIG1ldGhvZHNcbiAgICB2YXIgU0ZDID0gZnVuY3Rpb24gU0ZDKHByb3BzKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChjb25maWdQcm9wcykge1xuICAgICAgICB2YXIgYmFzaWNQcmVmaXhDbHMgPSBjb25maWcucHJlZml4Q2xzO1xuICAgICAgICB2YXIgZ2V0UHJlZml4Q2xzID0gY29uZmlnUHJvcHMuZ2V0UHJlZml4Q2xzO1xuICAgICAgICB2YXIgY3VzdG9taXplUHJlZml4Q2xzID0gcHJvcHMucHJlZml4Q2xzO1xuICAgICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKGJhc2ljUHJlZml4Q2xzLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50LCBfZXh0ZW5kcyh7fSwgY29uZmlnUHJvcHMsIHByb3BzLCB7XG4gICAgICAgICAgcHJlZml4Q2xzOiBwcmVmaXhDbHNcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHZhciBjb25zID0gQ29tcG9uZW50LmNvbnN0cnVjdG9yO1xuICAgIHZhciBuYW1lID0gY29ucyAmJiBjb25zLmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnO1xuICAgIFNGQy5kaXNwbGF5TmFtZSA9IFwid2l0aENvbmZpZ0NvbnN1bWVyKFwiLmNvbmNhdChuYW1lLCBcIilcIik7XG4gICAgcmV0dXJuIFNGQztcbiAgfTtcbn0iLCIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9wcm9wVHlwZXMgPSByZXF1aXJlKCdwcm9wLXR5cGVzJyk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfZ3VkID0gcmVxdWlyZSgnZ3VkJyk7XG5cbnZhciBfZ3VkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2d1ZCk7XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBNQVhfU0lHTkVEXzMxX0JJVF9JTlQgPSAxMDczNzQxODIzO1xuXG4vLyBJbmxpbmVkIE9iamVjdC5pcyBwb2x5ZmlsbC5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuZnVuY3Rpb24gb2JqZWN0SXMoeCwgeSkge1xuICBpZiAoeCA9PT0geSkge1xuICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV2ZW50RW1pdHRlcih2YWx1ZSkge1xuICB2YXIgaGFuZGxlcnMgPSBbXTtcbiAgcmV0dXJuIHtcbiAgICBvbjogZnVuY3Rpb24gb24oaGFuZGxlcikge1xuICAgICAgaGFuZGxlcnMucHVzaChoYW5kbGVyKTtcbiAgICB9LFxuICAgIG9mZjogZnVuY3Rpb24gb2ZmKGhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZXJzID0gaGFuZGxlcnMuZmlsdGVyKGZ1bmN0aW9uIChoKSB7XG4gICAgICAgIHJldHVybiBoICE9PSBoYW5kbGVyO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gc2V0KG5ld1ZhbHVlLCBjaGFuZ2VkQml0cykge1xuICAgICAgdmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZXIodmFsdWUsIGNoYW5nZWRCaXRzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gb25seUNoaWxkKGNoaWxkcmVuKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSA/IGNoaWxkcmVuWzBdIDogY2hpbGRyZW47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJlYWN0Q29udGV4dChkZWZhdWx0VmFsdWUsIGNhbGN1bGF0ZUNoYW5nZWRCaXRzKSB7XG4gIHZhciBfUHJvdmlkZXIkY2hpbGRDb250ZXgsIF9Db25zdW1lciRjb250ZXh0VHlwZTtcblxuICB2YXIgY29udGV4dFByb3AgPSAnX19jcmVhdGUtcmVhY3QtY29udGV4dC0nICsgKDAsIF9ndWQyLmRlZmF1bHQpKCkgKyAnX18nO1xuXG4gIHZhciBQcm92aWRlciA9IGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFByb3ZpZGVyLCBfQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFByb3ZpZGVyKCkge1xuICAgICAgdmFyIF90ZW1wLCBfdGhpcywgX3JldDtcblxuICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFByb3ZpZGVyKTtcblxuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIF9yZXQgPSAoX3RlbXAgPSAoX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfQ29tcG9uZW50LmNhbGwuYXBwbHkoX0NvbXBvbmVudCwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcyksIF90aGlzLmVtaXR0ZXIgPSBjcmVhdGVFdmVudEVtaXR0ZXIoX3RoaXMucHJvcHMudmFsdWUpLCBfdGVtcCksIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKF90aGlzLCBfcmV0KTtcbiAgICB9XG5cbiAgICBQcm92aWRlci5wcm90b3R5cGUuZ2V0Q2hpbGRDb250ZXh0ID0gZnVuY3Rpb24gZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgICAgdmFyIF9yZWY7XG5cbiAgICAgIHJldHVybiBfcmVmID0ge30sIF9yZWZbY29udGV4dFByb3BdID0gdGhpcy5lbWl0dGVyLCBfcmVmO1xuICAgIH07XG5cbiAgICBQcm92aWRlci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSAhPT0gbmV4dFByb3BzLnZhbHVlKSB7XG4gICAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMucHJvcHMudmFsdWU7XG4gICAgICAgIHZhciBuZXdWYWx1ZSA9IG5leHRQcm9wcy52YWx1ZTtcbiAgICAgICAgdmFyIGNoYW5nZWRCaXRzID0gdm9pZCAwO1xuXG4gICAgICAgIGlmIChvYmplY3RJcyhvbGRWYWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgICAgICAgY2hhbmdlZEJpdHMgPSAwOyAvLyBObyBjaGFuZ2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGFuZ2VkQml0cyA9IHR5cGVvZiBjYWxjdWxhdGVDaGFuZ2VkQml0cyA9PT0gJ2Z1bmN0aW9uJyA/IGNhbGN1bGF0ZUNoYW5nZWRCaXRzKG9sZFZhbHVlLCBuZXdWYWx1ZSkgOiBNQVhfU0lHTkVEXzMxX0JJVF9JTlQ7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICgwLCBfd2FybmluZzIuZGVmYXVsdCkoKGNoYW5nZWRCaXRzICYgTUFYX1NJR05FRF8zMV9CSVRfSU5UKSA9PT0gY2hhbmdlZEJpdHMsICdjYWxjdWxhdGVDaGFuZ2VkQml0czogRXhwZWN0ZWQgdGhlIHJldHVybiB2YWx1ZSB0byBiZSBhICcgKyAnMzEtYml0IGludGVnZXIuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzJywgY2hhbmdlZEJpdHMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNoYW5nZWRCaXRzIHw9IDA7XG5cbiAgICAgICAgICBpZiAoY2hhbmdlZEJpdHMgIT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdHRlci5zZXQobmV4dFByb3BzLnZhbHVlLCBjaGFuZ2VkQml0cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIFByb3ZpZGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFByb3ZpZGVyO1xuICB9KF9yZWFjdC5Db21wb25lbnQpO1xuXG4gIFByb3ZpZGVyLmNoaWxkQ29udGV4dFR5cGVzID0gKF9Qcm92aWRlciRjaGlsZENvbnRleCA9IHt9LCBfUHJvdmlkZXIkY2hpbGRDb250ZXhbY29udGV4dFByb3BdID0gX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZCwgX1Byb3ZpZGVyJGNoaWxkQ29udGV4KTtcblxuICB2YXIgQ29uc3VtZXIgPSBmdW5jdGlvbiAoX0NvbXBvbmVudDIpIHtcbiAgICBfaW5oZXJpdHMoQ29uc3VtZXIsIF9Db21wb25lbnQyKTtcblxuICAgIGZ1bmN0aW9uIENvbnN1bWVyKCkge1xuICAgICAgdmFyIF90ZW1wMiwgX3RoaXMyLCBfcmV0MjtcblxuICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbnN1bWVyKTtcblxuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbjIpLCBfa2V5MiA9IDA7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JldDIgPSAoX3RlbXAyID0gKF90aGlzMiA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQyLmNhbGwuYXBwbHkoX0NvbXBvbmVudDIsIFt0aGlzXS5jb25jYXQoYXJncykpKSwgX3RoaXMyKSwgX3RoaXMyLnN0YXRlID0ge1xuICAgICAgICB2YWx1ZTogX3RoaXMyLmdldFZhbHVlKClcbiAgICAgIH0sIF90aGlzMi5vblVwZGF0ZSA9IGZ1bmN0aW9uIChuZXdWYWx1ZSwgY2hhbmdlZEJpdHMpIHtcbiAgICAgICAgdmFyIG9ic2VydmVkQml0cyA9IF90aGlzMi5vYnNlcnZlZEJpdHMgfCAwO1xuICAgICAgICBpZiAoKG9ic2VydmVkQml0cyAmIGNoYW5nZWRCaXRzKSAhPT0gMCkge1xuICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7IHZhbHVlOiBfdGhpczIuZ2V0VmFsdWUoKSB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgX3RlbXAyKSwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oX3RoaXMyLCBfcmV0Mik7XG4gICAgfVxuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgdmFyIG9ic2VydmVkQml0cyA9IG5leHRQcm9wcy5vYnNlcnZlZEJpdHM7XG5cbiAgICAgIHRoaXMub2JzZXJ2ZWRCaXRzID0gb2JzZXJ2ZWRCaXRzID09PSB1bmRlZmluZWQgfHwgb2JzZXJ2ZWRCaXRzID09PSBudWxsID8gTUFYX1NJR05FRF8zMV9CSVRfSU5UIC8vIFN1YnNjcmliZSB0byBhbGwgY2hhbmdlcyBieSBkZWZhdWx0XG4gICAgICA6IG9ic2VydmVkQml0cztcbiAgICB9O1xuXG4gICAgQ29uc3VtZXIucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXSkge1xuICAgICAgICB0aGlzLmNvbnRleHRbY29udGV4dFByb3BdLm9uKHRoaXMub25VcGRhdGUpO1xuICAgICAgfVxuICAgICAgdmFyIG9ic2VydmVkQml0cyA9IHRoaXMucHJvcHMub2JzZXJ2ZWRCaXRzO1xuXG4gICAgICB0aGlzLm9ic2VydmVkQml0cyA9IG9ic2VydmVkQml0cyA9PT0gdW5kZWZpbmVkIHx8IG9ic2VydmVkQml0cyA9PT0gbnVsbCA/IE1BWF9TSUdORURfMzFfQklUX0lOVCAvLyBTdWJzY3JpYmUgdG8gYWxsIGNoYW5nZXMgYnkgZGVmYXVsdFxuICAgICAgOiBvYnNlcnZlZEJpdHM7XG4gICAgfTtcblxuICAgIENvbnN1bWVyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMuY29udGV4dFtjb250ZXh0UHJvcF0pIHtcbiAgICAgICAgdGhpcy5jb250ZXh0W2NvbnRleHRQcm9wXS5vZmYodGhpcy5vblVwZGF0ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIENvbnN1bWVyLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uIGdldFZhbHVlKCkge1xuICAgICAgaWYgKHRoaXMuY29udGV4dFtjb250ZXh0UHJvcF0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFtjb250ZXh0UHJvcF0uZ2V0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBDb25zdW1lci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIG9ubHlDaGlsZCh0aGlzLnByb3BzLmNoaWxkcmVuKSh0aGlzLnN0YXRlLnZhbHVlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIENvbnN1bWVyO1xuICB9KF9yZWFjdC5Db21wb25lbnQpO1xuXG4gIENvbnN1bWVyLmNvbnRleHRUeXBlcyA9IChfQ29uc3VtZXIkY29udGV4dFR5cGUgPSB7fSwgX0NvbnN1bWVyJGNvbnRleHRUeXBlW2NvbnRleHRQcm9wXSA9IF9wcm9wVHlwZXMyLmRlZmF1bHQub2JqZWN0LCBfQ29uc3VtZXIkY29udGV4dFR5cGUpO1xuXG5cbiAgcmV0dXJuIHtcbiAgICBQcm92aWRlcjogUHJvdmlkZXIsXG4gICAgQ29uc3VtZXI6IENvbnN1bWVyXG4gIH07XG59XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGNyZWF0ZVJlYWN0Q29udGV4dDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIi8vIEBmbG93XG4ndXNlIHN0cmljdCc7XG5cbnZhciBrZXkgPSAnX19nbG9iYWxfdW5pcXVlX2lkX18nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gZ2xvYmFsW2tleV0gPSAoZ2xvYmFsW2tleV0gfHwgMCkgKyAxO1xufTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9lbXB0eSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL2VtcHR5XCIpKTtcblxudmFyIF8gPSByZXF1aXJlKFwiLlwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciByZW5kZXJFbXB0eSA9IGZ1bmN0aW9uIHJlbmRlckVtcHR5KGNvbXBvbmVudE5hbWUpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF8uQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgIHZhciBwcmVmaXggPSBnZXRQcmVmaXhDbHMoJ2VtcHR5Jyk7XG5cbiAgICBzd2l0Y2ggKGNvbXBvbmVudE5hbWUpIHtcbiAgICAgIGNhc2UgJ1RhYmxlJzpcbiAgICAgIGNhc2UgJ0xpc3QnOlxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2VtcHR5W1wiZGVmYXVsdFwiXSwge1xuICAgICAgICAgIGltYWdlOiBfZW1wdHlbXCJkZWZhdWx0XCJdLlBSRVNFTlRFRF9JTUFHRV9TSU1QTEVcbiAgICAgICAgfSk7XG5cbiAgICAgIGNhc2UgJ1NlbGVjdCc6XG4gICAgICBjYXNlICdUcmVlU2VsZWN0JzpcbiAgICAgIGNhc2UgJ0Nhc2NhZGVyJzpcbiAgICAgIGNhc2UgJ1RyYW5zZmVyJzpcbiAgICAgIGNhc2UgJ01lbnRpb25zJzpcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9lbXB0eVtcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICBpbWFnZTogX2VtcHR5W1wiZGVmYXVsdFwiXS5QUkVTRU5URURfSU1BR0VfU0lNUExFLFxuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi1zbWFsbFwiKVxuICAgICAgICB9KTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9lbXB0eVtcImRlZmF1bHRcIl0sIG51bGwpO1xuICAgIH1cbiAgfSk7XG59O1xuXG52YXIgX2RlZmF1bHQgPSByZW5kZXJFbXB0eTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfTG9jYWxlUmVjZWl2ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9sb2NhbGUtcHJvdmlkZXIvTG9jYWxlUmVjZWl2ZXJcIikpO1xuXG52YXIgX2VtcHR5ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9lbXB0eVwiKSk7XG5cbnZhciBfc2ltcGxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zaW1wbGVcIikpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBkZWZhdWx0RW1wdHlJbWcgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfZW1wdHlbXCJkZWZhdWx0XCJdLCBudWxsKTtcbnZhciBzaW1wbGVFbXB0eUltZyA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9zaW1wbGVbXCJkZWZhdWx0XCJdLCBudWxsKTtcblxudmFyIEVtcHR5ID0gZnVuY3Rpb24gRW1wdHkocHJvcHMpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG5cbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIF9wcm9wcyRpbWFnZSA9IHByb3BzLmltYWdlLFxuICAgICAgICBpbWFnZSA9IF9wcm9wcyRpbWFnZSA9PT0gdm9pZCAwID8gZGVmYXVsdEVtcHR5SW1nIDogX3Byb3BzJGltYWdlLFxuICAgICAgICBkZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLFxuICAgICAgICBpbWFnZVN0eWxlID0gcHJvcHMuaW1hZ2VTdHlsZSxcbiAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJpbWFnZVwiLCBcImRlc2NyaXB0aW9uXCIsIFwiY2hpbGRyZW5cIiwgXCJpbWFnZVN0eWxlXCJdKTtcblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfTG9jYWxlUmVjZWl2ZXJbXCJkZWZhdWx0XCJdLCB7XG4gICAgICBjb21wb25lbnROYW1lOiBcIkVtcHR5XCJcbiAgICB9LCBmdW5jdGlvbiAobG9jYWxlKSB7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdlbXB0eScsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICB2YXIgZGVzID0gdHlwZW9mIGRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJyA/IGRlc2NyaXB0aW9uIDogbG9jYWxlLmRlc2NyaXB0aW9uO1xuICAgICAgdmFyIGFsdCA9IHR5cGVvZiBkZXMgPT09ICdzdHJpbmcnID8gZGVzIDogJ2VtcHR5JztcbiAgICAgIHZhciBpbWFnZU5vZGUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGltYWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpbWFnZU5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7XG4gICAgICAgICAgYWx0OiBhbHQsXG4gICAgICAgICAgc3JjOiBpbWFnZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGltYWdlTm9kZSA9IGltYWdlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLW5vcm1hbFwiKSwgaW1hZ2UgPT09IHNpbXBsZUVtcHR5SW1nKSwgY2xhc3NOYW1lKVxuICAgICAgfSwgcmVzdFByb3BzKSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItaW1hZ2VcIiksXG4gICAgICAgIHN0eWxlOiBpbWFnZVN0eWxlXG4gICAgICB9LCBpbWFnZU5vZGUpLCBkZXMgJiYgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWRlc2NyaXB0aW9uXCIpXG4gICAgICB9LCBkZXMpLCBjaGlsZHJlbiAmJiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1mb290ZXJcIilcbiAgICAgIH0sIGNoaWxkcmVuKSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuRW1wdHkuUFJFU0VOVEVEX0lNQUdFX0RFRkFVTFQgPSBkZWZhdWx0RW1wdHlJbWc7XG5FbXB0eS5QUkVTRU5URURfSU1BR0VfU0lNUExFID0gc2ltcGxlRW1wdHlJbWc7XG52YXIgX2RlZmF1bHQgPSBFbXB0eTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gX2RlZmF1bHQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG52YXIgRW1wdHkgPSBmdW5jdGlvbiBFbXB0eSgpIHtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwic3ZnXCIsIHtcbiAgICB3aWR0aDogXCIxODRcIixcbiAgICBoZWlnaHQ6IFwiMTUyXCIsXG4gICAgdmlld0JveDogXCIwIDAgMTg0IDE1MlwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDI0IDMxLjY3KVwiXG4gIH0sIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZWxsaXBzZVwiLCB7XG4gICAgZmlsbE9wYWNpdHk6IFwiLjhcIixcbiAgICBmaWxsOiBcIiNGNUY1RjdcIixcbiAgICBjeDogXCI2Ny43OTdcIixcbiAgICBjeTogXCIxMDYuODlcIixcbiAgICByeDogXCI2Ny43OTdcIixcbiAgICByeTogXCIxMi42NjhcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0xMjIuMDM0IDY5LjY3NEw5OC4xMDkgNDAuMjI5Yy0xLjE0OC0xLjM4Ni0yLjgyNi0yLjIyNS00LjU5My0yLjIyNWgtNTEuNDRjLTEuNzY2IDAtMy40NDQuODM5LTQuNTkyIDIuMjI1TDEzLjU2IDY5LjY3NHYxNS4zODNoMTA4LjQ3NVY2OS42NzR6XCIsXG4gICAgZmlsbDogXCIjQUVCOEMyXCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwicGF0aFwiLCB7XG4gICAgZDogXCJNMTAxLjUzNyA4Ni4yMTRMODAuNjMgNjEuMTAyYy0xLjAwMS0xLjIwNy0yLjUwNy0xLjg2Ny00LjA0OC0xLjg2N0gzMS43MjRjLTEuNTQgMC0zLjA0Ny42Ni00LjA0OCAxLjg2N0w2Ljc2OSA4Ni4yMTR2MTMuNzkyaDk0Ljc2OFY4Ni4yMTR6XCIsXG4gICAgZmlsbDogXCJ1cmwoI2xpbmVhckdyYWRpZW50LTEpXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxMy41NilcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk0zMy44MyAwaDY3LjkzM2E0IDQgMCAwIDEgNCA0djkzLjM0NGE0IDQgMCAwIDEtNCA0SDMzLjgzYTQgNCAwIDAgMS00LTRWNGE0IDQgMCAwIDEgNC00elwiLFxuICAgIGZpbGw6IFwiI0Y1RjVGN1wiXG4gIH0pLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTQyLjY3OCA5Ljk1M2g1MC4yMzdhMiAyIDAgMCAxIDIgMlYzNi45MWEyIDIgMCAwIDEtMiAySDQyLjY3OGEyIDIgMCAwIDEtMi0yVjExLjk1M2EyIDIgMCAwIDEgMi0yek00Mi45NCA0OS43NjdoNDkuNzEzYTIuMjYyIDIuMjYyIDAgMSAxIDAgNC41MjRINDIuOTRhMi4yNjIgMi4yNjIgMCAwIDEgMC00LjUyNHpNNDIuOTQgNjEuNTNoNDkuNzEzYTIuMjYyIDIuMjYyIDAgMSAxIDAgNC41MjVINDIuOTRhMi4yNjIgMi4yNjIgMCAwIDEgMC00LjUyNXpNMTIxLjgxMyAxMDUuMDMyYy0uNzc1IDMuMDcxLTMuNDk3IDUuMzYtNi43MzUgNS4zNkgyMC41MTVjLTMuMjM4IDAtNS45Ni0yLjI5LTYuNzM0LTUuMzZhNy4zMDkgNy4zMDkgMCAwIDEtLjIyMi0xLjc5VjY5LjY3NWgyNi4zMThjMi45MDcgMCA1LjI1IDIuNDQ4IDUuMjUgNS40MnYuMDRjMCAyLjk3MSAyLjM3IDUuMzcgNS4yNzcgNS4zN2gzNC43ODVjMi45MDcgMCA1LjI3Ny0yLjQyMSA1LjI3Ny01LjM5M1Y3NS4xYzAtMi45NzIgMi4zNDMtNS40MjYgNS4yNS01LjQyNmgyNi4zMTh2MzMuNTY5YzAgLjYxNy0uMDc3IDEuMjE2LS4yMjEgMS43ODl6XCIsXG4gICAgZmlsbDogXCIjRENFMEU2XCJcbiAgfSkpLCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInBhdGhcIiwge1xuICAgIGQ6IFwiTTE0OS4xMjEgMzMuMjkybC02LjgzIDIuNjVhMSAxIDAgMCAxLTEuMzE3LTEuMjNsMS45MzctNi4yMDdjLTIuNTg5LTIuOTQ0LTQuMTA5LTYuNTM0LTQuMTA5LTEwLjQwOEMxMzguODAyIDguMTAyIDE0OC45MiAwIDE2MS40MDIgMCAxNzMuODgxIDAgMTg0IDguMTAyIDE4NCAxOC4wOTdjMCA5Ljk5NS0xMC4xMTggMTguMDk3LTIyLjU5OSAxOC4wOTctNC41MjggMC04Ljc0NC0xLjA2Ni0xMi4yOC0yLjkwMnpcIixcbiAgICBmaWxsOiBcIiNEQ0UwRTZcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDE0OS42NSAxNS4zODMpXCIsXG4gICAgZmlsbDogXCIjRkZGXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJlbGxpcHNlXCIsIHtcbiAgICBjeDogXCIyMC42NTRcIixcbiAgICBjeTogXCIzLjE2N1wiLFxuICAgIHJ4OiBcIjIuODQ5XCIsXG4gICAgcnk6IFwiMi44MTVcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk01LjY5OCA1LjYzSDBMMi44OTguNzA0ek05LjI1OS43MDRoNC45ODVWNS42M0g5LjI1OXpcIlxuICB9KSkpKTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEVtcHR5O1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbnZhciBTaW1wbGUgPSBmdW5jdGlvbiBTaW1wbGUoKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInN2Z1wiLCB7XG4gICAgd2lkdGg6IFwiNjRcIixcbiAgICBoZWlnaHQ6IFwiNDFcIixcbiAgICB2aWV3Qm94OiBcIjAgMCA2NCA0MVwiLFxuICAgIHhtbG5zOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIHtcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDAgMSlcIixcbiAgICBmaWxsOiBcIm5vbmVcIixcbiAgICBmaWxsUnVsZTogXCJldmVub2RkXCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJlbGxpcHNlXCIsIHtcbiAgICBmaWxsOiBcIiNGNUY1RjVcIixcbiAgICBjeDogXCIzMlwiLFxuICAgIGN5OiBcIjMzXCIsXG4gICAgcng6IFwiMzJcIixcbiAgICByeTogXCI3XCJcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiZ1wiLCB7XG4gICAgZmlsbFJ1bGU6IFwibm9uemVyb1wiLFxuICAgIHN0cm9rZTogXCIjRDlEOUQ5XCJcbiAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk01NSAxMi43Nkw0NC44NTQgMS4yNThDNDQuMzY3LjQ3NCA0My42NTYgMCA0Mi45MDcgMEgyMS4wOTNjLS43NDkgMC0xLjQ2LjQ3NC0xLjk0NyAxLjI1N0w5IDEyLjc2MVYyMmg0NnYtOS4yNHpcIlxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgICBkOiBcIk00MS42MTMgMTUuOTMxYzAtMS42MDUuOTk0LTIuOTMgMi4yMjctMi45MzFINTV2MTguMTM3QzU1IDMzLjI2IDUzLjY4IDM1IDUyLjA1IDM1aC00MC4xQzEwLjMyIDM1IDkgMzMuMjU5IDkgMzEuMTM3VjEzaDExLjE2YzEuMjMzIDAgMi4yMjcgMS4zMjMgMi4yMjcgMi45Mjh2LjAyMmMwIDEuNjA1IDEuMDA1IDIuOTAxIDIuMjM3IDIuOTAxaDE0Ljc1MmMxLjIzMiAwIDIuMjM3LTEuMzA4IDIuMjM3LTIuOTEzdi0uMDA3elwiLFxuICAgIGZpbGw6IFwiI0ZBRkFGQVwiXG4gIH0pKSkpO1xufTtcblxudmFyIF9kZWZhdWx0ID0gU2ltcGxlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX2NvbmZpZ1Byb3ZpZGVyID0gcmVxdWlyZShcIi4uL2NvbmZpZy1wcm92aWRlclwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbnZhciBHcm91cCA9IGZ1bmN0aW9uIEdyb3VwKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIF9jbGFzc05hbWVzO1xuXG4gICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBwcm9wcy5wcmVmaXhDbHMsXG4gICAgICAgIF9wcm9wcyRjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgIGNsYXNzTmFtZSA9IF9wcm9wcyRjbGFzc05hbWUgPT09IHZvaWQgMCA/ICcnIDogX3Byb3BzJGNsYXNzTmFtZTtcbiAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdpbnB1dC1ncm91cCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgdmFyIGNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgKF9jbGFzc05hbWVzID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sZ1wiKSwgcHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1zbVwiKSwgcHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1jb21wYWN0XCIpLCBwcm9wcy5jb21wYWN0KSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWUpO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAgY2xhc3NOYW1lOiBjbHMsXG4gICAgICBzdHlsZTogcHJvcHMuc3R5bGUsXG4gICAgICBvbk1vdXNlRW50ZXI6IHByb3BzLm9uTW91c2VFbnRlcixcbiAgICAgIG9uTW91c2VMZWF2ZTogcHJvcHMub25Nb3VzZUxlYXZlLFxuICAgICAgb25Gb2N1czogcHJvcHMub25Gb2N1cyxcbiAgICAgIG9uQmx1cjogcHJvcHMub25CbHVyXG4gICAgfSwgcHJvcHMuY2hpbGRyZW4pO1xuICB9KTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEdyb3VwO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9pc01vYmlsZSA9IHJlcXVpcmUoXCJpcy1tb2JpbGVcIik7XG5cbnZhciBfSW5wdXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0lucHV0XCIpKTtcblxudmFyIF9pY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vaWNvblwiKSk7XG5cbnZhciBfYnV0dG9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vYnV0dG9uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBfX3Jlc3QgPSB2b2lkIDAgJiYgKHZvaWQgMCkuX19yZXN0IHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gIHZhciB0ID0ge307XG5cbiAgZm9yICh2YXIgcCBpbiBzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKSB0W3BdID0gc1twXTtcbiAgfVxuXG4gIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIikgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSkgdFtwW2ldXSA9IHNbcFtpXV07XG4gIH1cbiAgcmV0dXJuIHQ7XG59O1xuXG52YXIgU2VhcmNoID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTZWFyY2gsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoU2VhcmNoKTtcblxuICBmdW5jdGlvbiBTZWFyY2goKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNlYXJjaCk7XG5cbiAgICBfdGhpcyA9IF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgX3RoaXMuc2F2ZUlucHV0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLmlucHV0ID0gbm9kZTtcbiAgICB9O1xuXG4gICAgX3RoaXMub25DaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgb25DaGFuZ2UgPSBfdGhpcyRwcm9wcy5vbkNoYW5nZSxcbiAgICAgICAgICBvblNlYXJjaCA9IF90aGlzJHByb3BzLm9uU2VhcmNoO1xuXG4gICAgICBpZiAoZSAmJiBlLnRhcmdldCAmJiBlLnR5cGUgPT09ICdjbGljaycgJiYgb25TZWFyY2gpIHtcbiAgICAgICAgb25TZWFyY2goZS50YXJnZXQudmFsdWUsIGUpO1xuICAgICAgfVxuXG4gICAgICBpZiAob25DaGFuZ2UpIHtcbiAgICAgICAgb25DaGFuZ2UoZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLm9uU2VhcmNoID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBvblNlYXJjaCA9IF90aGlzJHByb3BzMi5vblNlYXJjaCxcbiAgICAgICAgICBsb2FkaW5nID0gX3RoaXMkcHJvcHMyLmxvYWRpbmcsXG4gICAgICAgICAgZGlzYWJsZWQgPSBfdGhpcyRwcm9wczIuZGlzYWJsZWQ7XG5cbiAgICAgIGlmIChsb2FkaW5nIHx8IGRpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uU2VhcmNoKSB7XG4gICAgICAgIG9uU2VhcmNoKF90aGlzLmlucHV0LmlucHV0LnZhbHVlLCBlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCEoMCwgX2lzTW9iaWxlLmlzTW9iaWxlKSh7XG4gICAgICAgIHRhYmxldDogdHJ1ZVxuICAgICAgfSkpIHtcbiAgICAgICAgX3RoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyTG9hZGluZyA9IGZ1bmN0aW9uIChwcmVmaXhDbHMpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wczMgPSBfdGhpcy5wcm9wcyxcbiAgICAgICAgICBlbnRlckJ1dHRvbiA9IF90aGlzJHByb3BzMy5lbnRlckJ1dHRvbixcbiAgICAgICAgICBzaXplID0gX3RoaXMkcHJvcHMzLnNpemU7XG5cbiAgICAgIGlmIChlbnRlckJ1dHRvbikge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2J1dHRvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYnV0dG9uXCIpLFxuICAgICAgICAgIHR5cGU6IFwicHJpbWFyeVwiLFxuICAgICAgICAgIHNpemU6IHNpemUsXG4gICAgICAgICAga2V5OiBcImVudGVyQnV0dG9uXCJcbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgICAgdHlwZTogXCJsb2FkaW5nXCJcbiAgICAgICAgfSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pY29uXCIpLFxuICAgICAgICB0eXBlOiBcImxvYWRpbmdcIixcbiAgICAgICAga2V5OiBcImxvYWRpbmdJY29uXCJcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJTdWZmaXggPSBmdW5jdGlvbiAocHJlZml4Q2xzKSB7XG4gICAgICB2YXIgX3RoaXMkcHJvcHM0ID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgc3VmZml4ID0gX3RoaXMkcHJvcHM0LnN1ZmZpeCxcbiAgICAgICAgICBlbnRlckJ1dHRvbiA9IF90aGlzJHByb3BzNC5lbnRlckJ1dHRvbixcbiAgICAgICAgICBsb2FkaW5nID0gX3RoaXMkcHJvcHM0LmxvYWRpbmc7XG5cbiAgICAgIGlmIChsb2FkaW5nICYmICFlbnRlckJ1dHRvbikge1xuICAgICAgICByZXR1cm4gW3N1ZmZpeCwgX3RoaXMucmVuZGVyTG9hZGluZyhwcmVmaXhDbHMpXTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVudGVyQnV0dG9uKSByZXR1cm4gc3VmZml4O1xuICAgICAgdmFyIGljb24gPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWljb25cIiksXG4gICAgICAgIHR5cGU6IFwic2VhcmNoXCIsXG4gICAgICAgIGtleTogXCJzZWFyY2hJY29uXCIsXG4gICAgICAgIG9uQ2xpY2s6IF90aGlzLm9uU2VhcmNoXG4gICAgICB9KTtcblxuICAgICAgaWYgKHN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gWy8qI19fUFVSRV9fKi9SZWFjdC5pc1ZhbGlkRWxlbWVudChzdWZmaXgpID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChzdWZmaXgsIHtcbiAgICAgICAgICBrZXk6ICdzdWZmaXgnXG4gICAgICAgIH0pIDogbnVsbCwgaWNvbl07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpY29uO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJBZGRvbkFmdGVyID0gZnVuY3Rpb24gKHByZWZpeENscykge1xuICAgICAgdmFyIF90aGlzJHByb3BzNSA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIGVudGVyQnV0dG9uID0gX3RoaXMkcHJvcHM1LmVudGVyQnV0dG9uLFxuICAgICAgICAgIHNpemUgPSBfdGhpcyRwcm9wczUuc2l6ZSxcbiAgICAgICAgICBkaXNhYmxlZCA9IF90aGlzJHByb3BzNS5kaXNhYmxlZCxcbiAgICAgICAgICBhZGRvbkFmdGVyID0gX3RoaXMkcHJvcHM1LmFkZG9uQWZ0ZXIsXG4gICAgICAgICAgbG9hZGluZyA9IF90aGlzJHByb3BzNS5sb2FkaW5nO1xuICAgICAgdmFyIGJ0bkNsYXNzTmFtZSA9IFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYnV0dG9uXCIpO1xuXG4gICAgICBpZiAobG9hZGluZyAmJiBlbnRlckJ1dHRvbikge1xuICAgICAgICByZXR1cm4gW190aGlzLnJlbmRlckxvYWRpbmcocHJlZml4Q2xzKSwgYWRkb25BZnRlcl07XG4gICAgICB9XG5cbiAgICAgIGlmICghZW50ZXJCdXR0b24pIHJldHVybiBhZGRvbkFmdGVyO1xuICAgICAgdmFyIGJ1dHRvbjtcbiAgICAgIHZhciBlbnRlckJ1dHRvbkFzRWxlbWVudCA9IGVudGVyQnV0dG9uO1xuICAgICAgdmFyIGlzQW50ZEJ1dHRvbiA9IGVudGVyQnV0dG9uQXNFbGVtZW50LnR5cGUgJiYgZW50ZXJCdXR0b25Bc0VsZW1lbnQudHlwZS5fX0FOVF9CVVRUT04gPT09IHRydWU7XG5cbiAgICAgIGlmIChpc0FudGRCdXR0b24gfHwgZW50ZXJCdXR0b25Bc0VsZW1lbnQudHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgYnV0dG9uID0gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChlbnRlckJ1dHRvbkFzRWxlbWVudCwgX2V4dGVuZHMoe1xuICAgICAgICAgIG9uQ2xpY2s6IF90aGlzLm9uU2VhcmNoLFxuICAgICAgICAgIGtleTogJ2VudGVyQnV0dG9uJ1xuICAgICAgICB9LCBpc0FudGRCdXR0b24gPyB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBidG5DbGFzc05hbWUsXG4gICAgICAgICAgc2l6ZTogc2l6ZVxuICAgICAgICB9IDoge30pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1dHRvbiA9IC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9idXR0b25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBidG5DbGFzc05hbWUsXG4gICAgICAgICAgdHlwZTogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgc2l6ZTogc2l6ZSxcbiAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgICAgICAga2V5OiBcImVudGVyQnV0dG9uXCIsXG4gICAgICAgICAgb25DbGljazogX3RoaXMub25TZWFyY2hcbiAgICAgICAgfSwgZW50ZXJCdXR0b24gPT09IHRydWUgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfaWNvbltcImRlZmF1bHRcIl0sIHtcbiAgICAgICAgICB0eXBlOiBcInNlYXJjaFwiXG4gICAgICAgIH0pIDogZW50ZXJCdXR0b24pO1xuICAgICAgfVxuXG4gICAgICBpZiAoYWRkb25BZnRlcikge1xuICAgICAgICByZXR1cm4gW2J1dHRvbiwgLyojX19QVVJFX18qL1JlYWN0LmlzVmFsaWRFbGVtZW50KGFkZG9uQWZ0ZXIpID8gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChhZGRvbkFmdGVyLCB7XG4gICAgICAgICAga2V5OiAnYWRkb25BZnRlcidcbiAgICAgICAgfSkgOiBudWxsXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJ1dHRvbjtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyU2VhcmNoID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBnZXRQcmVmaXhDbHMgPSBfcmVmLmdldFByZWZpeENscztcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIGN1c3RvbWl6ZUlucHV0UHJlZml4Q2xzID0gX2EuaW5wdXRQcmVmaXhDbHMsXG4gICAgICAgICAgc2l6ZSA9IF9hLnNpemUsXG4gICAgICAgICAgZW50ZXJCdXR0b24gPSBfYS5lbnRlckJ1dHRvbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsXG4gICAgICAgICAgcmVzdFByb3BzID0gX19yZXN0KF9hLCBbXCJwcmVmaXhDbHNcIiwgXCJpbnB1dFByZWZpeENsc1wiLCBcInNpemVcIiwgXCJlbnRlckJ1dHRvblwiLCBcImNsYXNzTmFtZVwiXSk7XG5cbiAgICAgIGRlbGV0ZSByZXN0UHJvcHMub25TZWFyY2g7XG4gICAgICBkZWxldGUgcmVzdFByb3BzLmxvYWRpbmc7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdpbnB1dC1zZWFyY2gnLCBjdXN0b21pemVQcmVmaXhDbHMpO1xuICAgICAgdmFyIGlucHV0UHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdpbnB1dCcsIGN1c3RvbWl6ZUlucHV0UHJlZml4Q2xzKTtcbiAgICAgIHZhciBpbnB1dENsYXNzTmFtZTtcblxuICAgICAgaWYgKGVudGVyQnV0dG9uKSB7XG4gICAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgICBpbnB1dENsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgY2xhc3NOYW1lLCAoX2NsYXNzTmFtZXMgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jbGFzc05hbWVzLCBcIlwiLmNvbmNhdChwcmVmaXhDbHMsIFwiLWVudGVyLWJ1dHRvblwiKSwgISFlbnRlckJ1dHRvbiksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemUpLCAhIXNpemUpLCBfY2xhc3NOYW1lcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5wdXRDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIGNsYXNzTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfSW5wdXRbXCJkZWZhdWx0XCJdLCBfZXh0ZW5kcyh7XG4gICAgICAgIG9uUHJlc3NFbnRlcjogX3RoaXMub25TZWFyY2hcbiAgICAgIH0sIHJlc3RQcm9wcywge1xuICAgICAgICBzaXplOiBzaXplLFxuICAgICAgICBwcmVmaXhDbHM6IGlucHV0UHJlZml4Q2xzLFxuICAgICAgICBhZGRvbkFmdGVyOiBfdGhpcy5yZW5kZXJBZGRvbkFmdGVyKHByZWZpeENscyksXG4gICAgICAgIHN1ZmZpeDogX3RoaXMucmVuZGVyU3VmZml4KHByZWZpeENscyksXG4gICAgICAgIG9uQ2hhbmdlOiBfdGhpcy5vbkNoYW5nZSxcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlSW5wdXQsXG4gICAgICAgIGNsYXNzTmFtZTogaW5wdXRDbGFzc05hbWVcbiAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNlYXJjaCwgW3tcbiAgICBrZXk6IFwiZm9jdXNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZm9jdXMoKSB7XG4gICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImJsdXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gYmx1cigpIHtcbiAgICAgIHRoaXMuaW5wdXQuYmx1cigpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJTZWFyY2gpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTZWFyY2g7XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gU2VhcmNoO1xuU2VhcmNoLmRlZmF1bHRQcm9wcyA9IHtcbiAgZW50ZXJCdXR0b246IGZhbHNlXG59OyIsIid1c2Ugc3RyaWN0J1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBpc01vYmlsZVxyXG5tb2R1bGUuZXhwb3J0cy5pc01vYmlsZSA9IGlzTW9iaWxlXHJcbm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBpc01vYmlsZVxyXG5cclxudmFyIG1vYmlsZVJFID0gLyhhbmRyb2lkfGJiXFxkK3xtZWVnbykuK21vYmlsZXxhdmFudGdvfGJhZGFcXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVxcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzWzQ2XTB8c3ltYmlhbnx0cmVvfHVwXFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgKGNlfHBob25lKXx4ZGF8eGlpbm8vaVxyXG5cclxudmFyIHRhYmxldFJFID0gLyhhbmRyb2lkfGJiXFxkK3xtZWVnbykuK21vYmlsZXxhdmFudGdvfGJhZGFcXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVxcL3xwbHVja2VyfHBvY2tldHxwc3B8c2VyaWVzWzQ2XTB8c3ltYmlhbnx0cmVvfHVwXFwuKGJyb3dzZXJ8bGluayl8dm9kYWZvbmV8d2FwfHdpbmRvd3MgKGNlfHBob25lKXx4ZGF8eGlpbm98YW5kcm9pZHxpcGFkfHBsYXlib29rfHNpbGsvaVxyXG5cclxuZnVuY3Rpb24gaXNNb2JpbGUgKG9wdHMpIHtcclxuICBpZiAoIW9wdHMpIG9wdHMgPSB7fVxyXG4gIHZhciB1YSA9IG9wdHMudWFcclxuICBpZiAoIXVhICYmIHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnKSB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnRcclxuICBpZiAodWEgJiYgdWEuaGVhZGVycyAmJiB0eXBlb2YgdWEuaGVhZGVyc1sndXNlci1hZ2VudCddID09PSAnc3RyaW5nJykge1xyXG4gICAgdWEgPSB1YS5oZWFkZXJzWyd1c2VyLWFnZW50J11cclxuICB9XHJcbiAgaWYgKHR5cGVvZiB1YSAhPT0gJ3N0cmluZycpIHJldHVybiBmYWxzZVxyXG5cclxuICB2YXIgcmVzdWx0ID0gb3B0cy50YWJsZXQgPyB0YWJsZXRSRS50ZXN0KHVhKSA6IG1vYmlsZVJFLnRlc3QodWEpXHJcblxyXG4gIGlmIChcclxuICAgICFyZXN1bHQgJiZcclxuICAgIG9wdHMudGFibGV0ICYmXHJcbiAgICBvcHRzLmZlYXR1cmVEZXRlY3QgJiZcclxuICAgIG5hdmlnYXRvciAmJlxyXG4gICAgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID4gMSAmJlxyXG4gICAgdWEuaW5kZXhPZignTWFjaW50b3NoJykgIT09IC0xICYmXHJcbiAgICB1YS5pbmRleE9mKCdTYWZhcmknKSAhPT0gLTFcclxuICApIHtcclxuICAgIHJlc3VsdCA9IHRydWVcclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHRcclxufVxyXG4iLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgUHJvcFR5cGVzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9yZWFjdExpZmVjeWNsZXNDb21wYXQgPSByZXF1aXJlKFwicmVhY3QtbGlmZWN5Y2xlcy1jb21wYXRcIik7XG5cbnZhciBfb21pdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIm9taXQuanNcIikpO1xuXG52YXIgX2ljb24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9pY29uXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfd2F2ZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL191dGlsL3dhdmVcIikpO1xuXG52YXIgX3R5cGUgPSByZXF1aXJlKFwiLi4vX3V0aWwvdHlwZVwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9idXR0b24taGFzLXR5cGUgKi9cblxuXG52YXIgcnhUd29DTkNoYXIgPSAvXltcXHU0ZTAwLVxcdTlmYTVdezJ9JC87XG52YXIgaXNUd29DTkNoYXIgPSByeFR3b0NOQ2hhci50ZXN0LmJpbmQocnhUd29DTkNoYXIpO1xuXG5mdW5jdGlvbiBpc1N0cmluZyhzdHIpIHtcbiAgcmV0dXJuIHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnO1xufSAvLyBJbnNlcnQgb25lIHNwYWNlIGJldHdlZW4gdHdvIGNoaW5lc2UgY2hhcmFjdGVycyBhdXRvbWF0aWNhbGx5LlxuXG5cbmZ1bmN0aW9uIGluc2VydFNwYWNlKGNoaWxkLCBuZWVkSW5zZXJ0ZWQpIHtcbiAgLy8gQ2hlY2sgdGhlIGNoaWxkIGlmIGlzIHVuZGVmaW5lZCBvciBudWxsLlxuICBpZiAoY2hpbGQgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBTUEFDRSA9IG5lZWRJbnNlcnRlZCA/ICcgJyA6ICcnOyAvLyBzdHJpY3ROdWxsQ2hlY2tzIG9vcHMuXG5cbiAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIGNoaWxkICE9PSAnbnVtYmVyJyAmJiBpc1N0cmluZyhjaGlsZC50eXBlKSAmJiBpc1R3b0NOQ2hhcihjaGlsZC5wcm9wcy5jaGlsZHJlbikpIHtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge30sIGNoaWxkLnByb3BzLmNoaWxkcmVuLnNwbGl0KCcnKS5qb2luKFNQQUNFKSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpc1R3b0NOQ2hhcihjaGlsZCkpIHtcbiAgICAgIGNoaWxkID0gY2hpbGQuc3BsaXQoJycpLmpvaW4oU1BBQ0UpO1xuICAgIH1cblxuICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwgbnVsbCwgY2hpbGQpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5mdW5jdGlvbiBzcGFjZUNoaWxkcmVuKGNoaWxkcmVuLCBuZWVkSW5zZXJ0ZWQpIHtcbiAgdmFyIGlzUHJldkNoaWxkUHVyZSA9IGZhbHNlO1xuICB2YXIgY2hpbGRMaXN0ID0gW107XG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHZhciB0eXBlID0gX3R5cGVvZihjaGlsZCk7XG5cbiAgICB2YXIgaXNDdXJyZW50Q2hpbGRQdXJlID0gdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJ251bWJlcic7XG5cbiAgICBpZiAoaXNQcmV2Q2hpbGRQdXJlICYmIGlzQ3VycmVudENoaWxkUHVyZSkge1xuICAgICAgdmFyIGxhc3RJbmRleCA9IGNoaWxkTGlzdC5sZW5ndGggLSAxO1xuICAgICAgdmFyIGxhc3RDaGlsZCA9IGNoaWxkTGlzdFtsYXN0SW5kZXhdO1xuICAgICAgY2hpbGRMaXN0W2xhc3RJbmRleF0gPSBcIlwiLmNvbmNhdChsYXN0Q2hpbGQpLmNvbmNhdChjaGlsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkTGlzdC5wdXNoKGNoaWxkKTtcbiAgICB9XG5cbiAgICBpc1ByZXZDaGlsZFB1cmUgPSBpc0N1cnJlbnRDaGlsZFB1cmU7XG4gIH0pOyAvLyBQYXNzIHRvIFJlYWN0LkNoaWxkcmVuLm1hcCB0byBhdXRvIGZpbGwga2V5XG5cbiAgcmV0dXJuIFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZExpc3QsIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIHJldHVybiBpbnNlcnRTcGFjZShjaGlsZCwgbmVlZEluc2VydGVkKTtcbiAgfSk7XG59XG5cbnZhciBCdXR0b25UeXBlcyA9ICgwLCBfdHlwZS50dXBsZSkoJ2RlZmF1bHQnLCAncHJpbWFyeScsICdnaG9zdCcsICdkYXNoZWQnLCAnZGFuZ2VyJywgJ2xpbmsnKTtcbnZhciBCdXR0b25TaGFwZXMgPSAoMCwgX3R5cGUudHVwbGUpKCdjaXJjbGUnLCAnY2lyY2xlLW91dGxpbmUnLCAncm91bmQnKTtcbnZhciBCdXR0b25TaXplcyA9ICgwLCBfdHlwZS50dXBsZSkoJ2xhcmdlJywgJ2RlZmF1bHQnLCAnc21hbGwnKTtcbnZhciBCdXR0b25IVE1MVHlwZXMgPSAoMCwgX3R5cGUudHVwbGUpKCdzdWJtaXQnLCAnYnV0dG9uJywgJ3Jlc2V0Jyk7XG5cbnZhciBCdXR0b24gPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEJ1dHRvbiwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihCdXR0b24pO1xuXG4gIGZ1bmN0aW9uIEJ1dHRvbihwcm9wcykge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBCdXR0b24pO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5zYXZlQnV0dG9uUmVmID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLmJ1dHRvbk5vZGUgPSBub2RlO1xuICAgIH07XG5cbiAgICBfdGhpcy5oYW5kbGVDbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICB2YXIgbG9hZGluZyA9IF90aGlzLnN0YXRlLmxvYWRpbmc7XG4gICAgICB2YXIgb25DbGljayA9IF90aGlzLnByb3BzLm9uQ2xpY2s7XG5cbiAgICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgb25DbGljayhlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyQnV0dG9uID0gZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzLFxuICAgICAgICAgIGF1dG9JbnNlcnRTcGFjZUluQnV0dG9uID0gX3JlZi5hdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbjtcblxuICAgICAgdmFyIF9hID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY3VzdG9taXplUHJlZml4Q2xzID0gX2EucHJlZml4Q2xzLFxuICAgICAgICAgIHR5cGUgPSBfYS50eXBlLFxuICAgICAgICAgIHNoYXBlID0gX2Euc2hhcGUsXG4gICAgICAgICAgc2l6ZSA9IF9hLnNpemUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLFxuICAgICAgICAgIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sXG4gICAgICAgICAgaWNvbiA9IF9hLmljb24sXG4gICAgICAgICAgZ2hvc3QgPSBfYS5naG9zdCxcbiAgICAgICAgICBibG9jayA9IF9hLmJsb2NrLFxuICAgICAgICAgIHJlc3QgPSBfX3Jlc3QoX2EsIFtcInByZWZpeENsc1wiLCBcInR5cGVcIiwgXCJzaGFwZVwiLCBcInNpemVcIiwgXCJjbGFzc05hbWVcIiwgXCJjaGlsZHJlblwiLCBcImljb25cIiwgXCJnaG9zdFwiLCBcImJsb2NrXCJdKTtcblxuICAgICAgdmFyIF90aGlzJHN0YXRlID0gX3RoaXMuc3RhdGUsXG4gICAgICAgICAgbG9hZGluZyA9IF90aGlzJHN0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgaGFzVHdvQ05DaGFyID0gX3RoaXMkc3RhdGUuaGFzVHdvQ05DaGFyO1xuICAgICAgdmFyIHByZWZpeENscyA9IGdldFByZWZpeENscygnYnRuJywgY3VzdG9taXplUHJlZml4Q2xzKTtcbiAgICAgIHZhciBhdXRvSW5zZXJ0U3BhY2UgPSBhdXRvSW5zZXJ0U3BhY2VJbkJ1dHRvbiAhPT0gZmFsc2U7IC8vIGxhcmdlID0+IGxnXG4gICAgICAvLyBzbWFsbCA9PiBzbVxuXG4gICAgICB2YXIgc2l6ZUNscyA9ICcnO1xuXG4gICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgIHNpemVDbHMgPSAnbGcnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgICBzaXplQ2xzID0gJ3NtJztcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICB2YXIgaWNvblR5cGUgPSBsb2FkaW5nID8gJ2xvYWRpbmcnIDogaWNvbjtcbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzW1wiZGVmYXVsdFwiXSkocHJlZml4Q2xzLCBjbGFzc05hbWUsIChfY2xhc3NOYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdCh0eXBlKSwgdHlwZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNoYXBlKSwgc2hhcGUpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItXCIpLmNvbmNhdChzaXplQ2xzKSwgc2l6ZUNscyksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1pY29uLW9ubHlcIiksICFjaGlsZHJlbiAmJiBjaGlsZHJlbiAhPT0gMCAmJiBpY29uVHlwZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NOYW1lcywgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1sb2FkaW5nXCIpLCAhIWxvYWRpbmcpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYmFja2dyb3VuZC1naG9zdFwiKSwgZ2hvc3QpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItdHdvLWNoaW5lc2UtY2hhcnNcIiksIGhhc1R3b0NOQ2hhciAmJiBhdXRvSW5zZXJ0U3BhY2UpLCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzTmFtZXMsIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItYmxvY2tcIiksIGJsb2NrKSwgX2NsYXNzTmFtZXMpKTtcbiAgICAgIHZhciBpY29uTm9kZSA9IGljb25UeXBlID8gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2ljb25bXCJkZWZhdWx0XCJdLCB7XG4gICAgICAgIHR5cGU6IGljb25UeXBlXG4gICAgICB9KSA6IG51bGw7XG4gICAgICB2YXIga2lkcyA9IGNoaWxkcmVuIHx8IGNoaWxkcmVuID09PSAwID8gc3BhY2VDaGlsZHJlbihjaGlsZHJlbiwgX3RoaXMuaXNOZWVkSW5zZXJ0ZWQoKSAmJiBhdXRvSW5zZXJ0U3BhY2UpIDogbnVsbDtcbiAgICAgIHZhciBsaW5rQnV0dG9uUmVzdFByb3BzID0gKDAsIF9vbWl0W1wiZGVmYXVsdFwiXSkocmVzdCwgWydodG1sVHlwZScsICdsb2FkaW5nJ10pO1xuXG4gICAgICBpZiAobGlua0J1dHRvblJlc3RQcm9wcy5ocmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCBfZXh0ZW5kcyh7fSwgbGlua0J1dHRvblJlc3RQcm9wcywge1xuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgICBvbkNsaWNrOiBfdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgICByZWY6IF90aGlzLnNhdmVCdXR0b25SZWZcbiAgICAgICAgfSksIGljb25Ob2RlLCBraWRzKTtcbiAgICAgIH0gLy8gUmVhY3QgZG9lcyBub3QgcmVjb2duaXplIHRoZSBgaHRtbFR5cGVgIHByb3Agb24gYSBET00gZWxlbWVudC4gSGVyZSB3ZSBwaWNrIGl0IG91dCBvZiBgcmVzdGAuXG5cblxuICAgICAgdmFyIF9iID0gcmVzdCxcbiAgICAgICAgICBodG1sVHlwZSA9IF9iLmh0bWxUeXBlLFxuICAgICAgICAgIG90aGVyUHJvcHMgPSBfX3Jlc3QoX2IsIFtcImh0bWxUeXBlXCJdKTtcblxuICAgICAgdmFyIGJ1dHRvbk5vZGUgPSAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7fSwgKDAsIF9vbWl0W1wiZGVmYXVsdFwiXSkob3RoZXJQcm9wcywgWydsb2FkaW5nJ10pLCB7XG4gICAgICAgIHR5cGU6IGh0bWxUeXBlLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMsXG4gICAgICAgIG9uQ2xpY2s6IF90aGlzLmhhbmRsZUNsaWNrLFxuICAgICAgICByZWY6IF90aGlzLnNhdmVCdXR0b25SZWZcbiAgICAgIH0pLCBpY29uTm9kZSwga2lkcyk7XG5cbiAgICAgIGlmICh0eXBlID09PSAnbGluaycpIHtcbiAgICAgICAgcmV0dXJuIGJ1dHRvbk5vZGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfd2F2ZVtcImRlZmF1bHRcIl0sIG51bGwsIGJ1dHRvbk5vZGUpO1xuICAgIH07XG5cbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxvYWRpbmc6IHByb3BzLmxvYWRpbmcsXG4gICAgICBoYXNUd29DTkNoYXI6IGZhbHNlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoQnV0dG9uLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuZml4VHdvQ05DaGFyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgdGhpcy5maXhUd29DTkNoYXIoKTtcblxuICAgICAgaWYgKHByZXZQcm9wcy5sb2FkaW5nICYmIHR5cGVvZiBwcmV2UHJvcHMubG9hZGluZyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlbGF5VGltZW91dCk7XG4gICAgICB9XG5cbiAgICAgIHZhciBsb2FkaW5nID0gdGhpcy5wcm9wcy5sb2FkaW5nO1xuXG4gICAgICBpZiAobG9hZGluZyAmJiB0eXBlb2YgbG9hZGluZyAhPT0gJ2Jvb2xlYW4nICYmIGxvYWRpbmcuZGVsYXkpIHtcbiAgICAgICAgdGhpcy5kZWxheVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIGxvYWRpbmc6IGxvYWRpbmdcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgbG9hZGluZy5kZWxheSk7XG4gICAgICB9IGVsc2UgaWYgKHByZXZQcm9wcy5sb2FkaW5nICE9PSBsb2FkaW5nKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBsb2FkaW5nOiBsb2FkaW5nXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLmRlbGF5VGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmaXhUd29DTkNoYXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZml4VHdvQ05DaGFyKCkge1xuICAgICAgLy8gRml4IGZvciBIT0MgdXNhZ2UgbGlrZSA8Rm9ybWF0TWVzc2FnZSAvPlxuICAgICAgaWYgKCF0aGlzLmJ1dHRvbk5vZGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgYnV0dG9uVGV4dCA9IHRoaXMuYnV0dG9uTm9kZS50ZXh0Q29udGVudDtcblxuICAgICAgaWYgKHRoaXMuaXNOZWVkSW5zZXJ0ZWQoKSAmJiBpc1R3b0NOQ2hhcihidXR0b25UZXh0KSkge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUuaGFzVHdvQ05DaGFyKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgICBoYXNUd29DTkNoYXI6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXRlLmhhc1R3b0NOQ2hhcikge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBoYXNUd29DTkNoYXI6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJpc05lZWRJbnNlcnRlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBpc05lZWRJbnNlcnRlZCgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgaWNvbiA9IF90aGlzJHByb3BzLmljb24sXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICB0eXBlID0gX3RoaXMkcHJvcHMudHlwZTtcbiAgICAgIHJldHVybiBSZWFjdC5DaGlsZHJlbi5jb3VudChjaGlsZHJlbikgPT09IDEgJiYgIWljb24gJiYgdHlwZSAhPT0gJ2xpbmsnO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9jb25maWdQcm92aWRlci5Db25maWdDb25zdW1lciwgbnVsbCwgdGhpcy5yZW5kZXJCdXR0b24pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBCdXR0b247XG59KFJlYWN0LkNvbXBvbmVudCk7XG5cbkJ1dHRvbi5fX0FOVF9CVVRUT04gPSB0cnVlO1xuQnV0dG9uLmRlZmF1bHRQcm9wcyA9IHtcbiAgbG9hZGluZzogZmFsc2UsXG4gIGdob3N0OiBmYWxzZSxcbiAgYmxvY2s6IGZhbHNlLFxuICBodG1sVHlwZTogJ2J1dHRvbidcbn07XG5CdXR0b24ucHJvcFR5cGVzID0ge1xuICB0eXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzaGFwZTogUHJvcFR5cGVzLm9uZU9mKEJ1dHRvblNoYXBlcyksXG4gIHNpemU6IFByb3BUeXBlcy5vbmVPZihCdXR0b25TaXplcyksXG4gIGh0bWxUeXBlOiBQcm9wVHlwZXMub25lT2YoQnV0dG9uSFRNTFR5cGVzKSxcbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gIGxvYWRpbmc6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5ib29sLCBQcm9wVHlwZXMub2JqZWN0XSksXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgaWNvbjogUHJvcFR5cGVzLnN0cmluZyxcbiAgYmxvY2s6IFByb3BUeXBlcy5ib29sLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZ1xufTtcbigwLCBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0LnBvbHlmaWxsKShCdXR0b24pO1xudmFyIF9kZWZhdWx0ID0gQnV0dG9uO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gcmVxdWlyZShcInJlYWN0LWRvbVwiKTtcblxudmFyIF9FdmVudCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNzcy1hbmltYXRpb24vbGliL0V2ZW50XCIpKTtcblxudmFyIF9yYWYgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3JhZlwiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiOyBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9OyB9IGVsc2UgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07IH0gcmV0dXJuIF90eXBlb2Yob2JqKTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbmZ1bmN0aW9uIF9jcmVhdGVTdXBlcihEZXJpdmVkKSB7IHZhciBoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpOyByZXR1cm4gZnVuY3Rpb24gX2NyZWF0ZVN1cGVySW50ZXJuYWwoKSB7IHZhciBTdXBlciA9IF9nZXRQcm90b3R5cGVPZihEZXJpdmVkKSwgcmVzdWx0OyBpZiAoaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCkgeyB2YXIgTmV3VGFyZ2V0ID0gX2dldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yOyByZXN1bHQgPSBSZWZsZWN0LmNvbnN0cnVjdChTdXBlciwgYXJndW1lbnRzLCBOZXdUYXJnZXQpOyB9IGVsc2UgeyByZXN1bHQgPSBTdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9IHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCByZXN1bHQpOyB9OyB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKGNhbGwgJiYgKF90eXBlb2YoY2FsbCkgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikpIHsgcmV0dXJuIGNhbGw7IH0gcmV0dXJuIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZik7IH1cblxuZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKSB7IGlmIChzZWxmID09PSB2b2lkIDApIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhUmVmbGVjdC5jb25zdHJ1Y3QpIHJldHVybiBmYWxzZTsgaWYgKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pIHJldHVybiBmYWxzZTsgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gdHJ1ZTsgdHJ5IHsgRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLCBbXSwgZnVuY3Rpb24gKCkge30pKTsgcmV0dXJuIHRydWU7IH0gY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlOyB9IH1cblxuZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mIDogZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKG8pIHsgcmV0dXJuIG8uX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihvKTsgfTsgcmV0dXJuIF9nZXRQcm90b3R5cGVPZihvKTsgfVxuXG52YXIgc3R5bGVGb3JQZXN1ZG87IC8vIFdoZXJlIGVsIGlzIHRoZSBET00gZWxlbWVudCB5b3UnZCBsaWtlIHRvIHRlc3QgZm9yIHZpc2liaWxpdHlcblxuZnVuY3Rpb24gaXNIaWRkZW4oZWxlbWVudCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICd0ZXN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhZWxlbWVudCB8fCBlbGVtZW50Lm9mZnNldFBhcmVudCA9PT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNOb3RHcmV5KGNvbG9yKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuICB2YXIgbWF0Y2ggPSAoY29sb3IgfHwgJycpLm1hdGNoKC9yZ2JhP1xcKChcXGQqKSwgKFxcZCopLCAoXFxkKikoLCBbXFwuXFxkXSopP1xcKS8pO1xuXG4gIGlmIChtYXRjaCAmJiBtYXRjaFsxXSAmJiBtYXRjaFsyXSAmJiBtYXRjaFszXSkge1xuICAgIHJldHVybiAhKG1hdGNoWzFdID09PSBtYXRjaFsyXSAmJiBtYXRjaFsyXSA9PT0gbWF0Y2hbM10pO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbnZhciBXYXZlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhXYXZlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICB2YXIgX3N1cGVyID0gX2NyZWF0ZVN1cGVyKFdhdmUpO1xuXG4gIGZ1bmN0aW9uIFdhdmUoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFdhdmUpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBfdGhpcy5hbmltYXRpb25TdGFydCA9IGZhbHNlO1xuICAgIF90aGlzLmRlc3Ryb3kgPSBmYWxzZTtcblxuICAgIF90aGlzLm9uQ2xpY2sgPSBmdW5jdGlvbiAobm9kZSwgd2F2ZUNvbG9yKSB7XG4gICAgICBpZiAoIW5vZGUgfHwgaXNIaWRkZW4obm9kZSkgfHwgbm9kZS5jbGFzc05hbWUuaW5kZXhPZignLWxlYXZlJykgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBpbnNlcnRFeHRyYU5vZGUgPSBfdGhpcy5wcm9wcy5pbnNlcnRFeHRyYU5vZGU7XG4gICAgICBfdGhpcy5leHRyYU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgdmFyIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLFxuICAgICAgICAgIGV4dHJhTm9kZSA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZS5leHRyYU5vZGU7XG5cbiAgICAgIGV4dHJhTm9kZS5jbGFzc05hbWUgPSAnYW50LWNsaWNrLWFuaW1hdGluZy1ub2RlJztcblxuICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBfdGhpcy5nZXRBdHRyaWJ1dGVOYW1lKCk7XG5cbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsICd0cnVlJyk7IC8vIE5vdCB3aGl0ZSBvciB0cmFuc3Bhcm50IG9yIGdyZXlcblxuICAgICAgc3R5bGVGb3JQZXN1ZG8gPSBzdHlsZUZvclBlc3VkbyB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICBpZiAod2F2ZUNvbG9yICYmIHdhdmVDb2xvciAhPT0gJyNmZmZmZmYnICYmIHdhdmVDb2xvciAhPT0gJ3JnYigyNTUsIDI1NSwgMjU1KScgJiYgaXNOb3RHcmV5KHdhdmVDb2xvcikgJiYgIS9yZ2JhXFwoXFxkKiwgXFxkKiwgXFxkKiwgMFxcKS8udGVzdCh3YXZlQ29sb3IpICYmIC8vIGFueSB0cmFuc3BhcmVudCByZ2JhIGNvbG9yXG4gICAgICB3YXZlQ29sb3IgIT09ICd0cmFuc3BhcmVudCcpIHtcbiAgICAgICAgLy8gQWRkIG5vbmNlIGlmIENTUCBleGlzdFxuICAgICAgICBpZiAoX3RoaXMuY3NwICYmIF90aGlzLmNzcC5ub25jZSkge1xuICAgICAgICAgIHN0eWxlRm9yUGVzdWRvLm5vbmNlID0gX3RoaXMuY3NwLm5vbmNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZXh0cmFOb2RlLnN0eWxlLmJvcmRlckNvbG9yID0gd2F2ZUNvbG9yO1xuICAgICAgICBzdHlsZUZvclBlc3Vkby5pbm5lckhUTUwgPSBcIlxcbiAgICAgIFthbnQtY2xpY2stYW5pbWF0aW5nLXdpdGhvdXQtZXh0cmEtbm9kZT0ndHJ1ZSddOjphZnRlciwgLmFudC1jbGljay1hbmltYXRpbmctbm9kZSB7XFxuICAgICAgICAtLWFudGQtd2F2ZS1zaGFkb3ctY29sb3I6IFwiLmNvbmNhdCh3YXZlQ29sb3IsIFwiO1xcbiAgICAgIH1cIik7XG5cbiAgICAgICAgaWYgKCFkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHN0eWxlRm9yUGVzdWRvKSkge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGVGb3JQZXN1ZG8pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnNlcnRFeHRyYU5vZGUpIHtcbiAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChleHRyYU5vZGUpO1xuICAgICAgfVxuXG4gICAgICBfRXZlbnRbXCJkZWZhdWx0XCJdLmFkZFN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCBfdGhpcy5vblRyYW5zaXRpb25TdGFydCk7XG5cbiAgICAgIF9FdmVudFtcImRlZmF1bHRcIl0uYWRkRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBfdGhpcy5vblRyYW5zaXRpb25FbmQpO1xuICAgIH07XG5cbiAgICBfdGhpcy5vblRyYW5zaXRpb25TdGFydCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoX3RoaXMuZGVzdHJveSkgcmV0dXJuO1xuICAgICAgdmFyIG5vZGUgPSAoMCwgX3JlYWN0RG9tLmZpbmRET01Ob2RlKShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSk7XG5cbiAgICAgIGlmICghZSB8fCBlLnRhcmdldCAhPT0gbm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghX3RoaXMuYW5pbWF0aW9uU3RhcnQpIHtcbiAgICAgICAgX3RoaXMucmVzZXRFZmZlY3Qobm9kZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLm9uVHJhbnNpdGlvbkVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoIWUgfHwgZS5hbmltYXRpb25OYW1lICE9PSAnZmFkZUVmZmVjdCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBfdGhpcy5yZXNldEVmZmVjdChlLnRhcmdldCk7XG4gICAgfTtcblxuICAgIF90aGlzLmJpbmRBbmltYXRpb25FdmVudCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBpZiAoIW5vZGUgfHwgIW5vZGUuZ2V0QXR0cmlidXRlIHx8IG5vZGUuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpIHx8IG5vZGUuY2xhc3NOYW1lLmluZGV4T2YoJ2Rpc2FibGVkJykgPj0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBvbkNsaWNrID0gZnVuY3Rpb24gb25DbGljayhlKSB7XG4gICAgICAgIC8vIEZpeCByYWRpbyBidXR0b24gY2xpY2sgdHdpY2VcbiAgICAgICAgaWYgKGUudGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcgfHwgaXNIaWRkZW4oZS50YXJnZXQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgX3RoaXMucmVzZXRFZmZlY3Qobm9kZSk7IC8vIEdldCB3YXZlIGNvbG9yIGZyb20gdGFyZ2V0XG5cblxuICAgICAgICB2YXIgd2F2ZUNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItdG9wLWNvbG9yJykgfHwgLy8gRmlyZWZveCBDb21wYXRpYmxlXG4gICAgICAgIGdldENvbXB1dGVkU3R5bGUobm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWNvbG9yJykgfHwgZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7XG4gICAgICAgIF90aGlzLmNsaWNrV2F2ZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gX3RoaXMub25DbGljayhub2RlLCB3YXZlQ29sb3IpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwoX3RoaXMuYW5pbWF0aW9uU3RhcnRJZCk7XG5cbiAgICAgICAgX3RoaXMuYW5pbWF0aW9uU3RhcnQgPSB0cnVlOyAvLyBSZW5kZXIgdG8gdHJpZ2dlciB0cmFuc2l0aW9uIGV2ZW50IGNvc3QgMyBmcmFtZXMuIExldCdzIGRlbGF5IDEwIGZyYW1lcyB0byByZXNldCB0aGlzLlxuXG4gICAgICAgIF90aGlzLmFuaW1hdGlvblN0YXJ0SWQgPSAoMCwgX3JhZltcImRlZmF1bHRcIl0pKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBfdGhpcy5hbmltYXRpb25TdGFydCA9IGZhbHNlO1xuICAgICAgICB9LCAxMCk7XG4gICAgICB9O1xuXG4gICAgICBub2RlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljaywgdHJ1ZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHtcbiAgICAgICAgICBub2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgb25DbGljaywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlcldhdmUgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgICAgdmFyIGNzcCA9IF9yZWYuY3NwO1xuICAgICAgdmFyIGNoaWxkcmVuID0gX3RoaXMucHJvcHMuY2hpbGRyZW47XG4gICAgICBfdGhpcy5jc3AgPSBjc3A7XG4gICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhXYXZlLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHZhciBub2RlID0gKDAsIF9yZWFjdERvbS5maW5kRE9NTm9kZSkodGhpcyk7XG5cbiAgICAgIGlmICghbm9kZSB8fCBub2RlLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnN0YW5jZSA9IHRoaXMuYmluZEFuaW1hdGlvbkV2ZW50KG5vZGUpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY2FuY2VsKCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNsaWNrV2F2ZVRpbWVvdXRJZCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbGlja1dhdmVUaW1lb3V0SWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRlc3Ryb3kgPSB0cnVlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJnZXRBdHRyaWJ1dGVOYW1lXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldEF0dHJpYnV0ZU5hbWUoKSB7XG4gICAgICB2YXIgaW5zZXJ0RXh0cmFOb2RlID0gdGhpcy5wcm9wcy5pbnNlcnRFeHRyYU5vZGU7XG4gICAgICByZXR1cm4gaW5zZXJ0RXh0cmFOb2RlID8gJ2FudC1jbGljay1hbmltYXRpbmcnIDogJ2FudC1jbGljay1hbmltYXRpbmctd2l0aG91dC1leHRyYS1ub2RlJztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzZXRFZmZlY3RcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzZXRFZmZlY3Qobm9kZSkge1xuICAgICAgaWYgKCFub2RlIHx8IG5vZGUgPT09IHRoaXMuZXh0cmFOb2RlIHx8ICEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGluc2VydEV4dHJhTm9kZSA9IHRoaXMucHJvcHMuaW5zZXJ0RXh0cmFOb2RlO1xuICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSB0aGlzLmdldEF0dHJpYnV0ZU5hbWUoKTtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsICdmYWxzZScpOyAvLyBlZGdlIGhhcyBidWcgb24gYHJlbW92ZUF0dHJpYnV0ZWAgIzE0NDY2XG5cbiAgICAgIGlmIChzdHlsZUZvclBlc3Vkbykge1xuICAgICAgICBzdHlsZUZvclBlc3Vkby5pbm5lckhUTUwgPSAnJztcbiAgICAgIH1cblxuICAgICAgaWYgKGluc2VydEV4dHJhTm9kZSAmJiB0aGlzLmV4dHJhTm9kZSAmJiBub2RlLmNvbnRhaW5zKHRoaXMuZXh0cmFOb2RlKSkge1xuICAgICAgICBub2RlLnJlbW92ZUNoaWxkKHRoaXMuZXh0cmFOb2RlKTtcbiAgICAgIH1cblxuICAgICAgX0V2ZW50W1wiZGVmYXVsdFwiXS5yZW1vdmVTdGFydEV2ZW50TGlzdGVuZXIobm9kZSwgdGhpcy5vblRyYW5zaXRpb25TdGFydCk7XG5cbiAgICAgIF9FdmVudFtcImRlZmF1bHRcIl0ucmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcihub2RlLCB0aGlzLm9uVHJhbnNpdGlvbkVuZCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlcldhdmUpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBXYXZlO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IFdhdmU7IiwiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xudmFyIFNUQVJUX0VWRU5UX05BTUVfTUFQID0ge1xuICB0cmFuc2l0aW9uc3RhcnQ6IHtcbiAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbnN0YXJ0JyxcbiAgICBXZWJraXRUcmFuc2l0aW9uOiAnd2Via2l0VHJhbnNpdGlvblN0YXJ0JyxcbiAgICBNb3pUcmFuc2l0aW9uOiAnbW96VHJhbnNpdGlvblN0YXJ0JyxcbiAgICBPVHJhbnNpdGlvbjogJ29UcmFuc2l0aW9uU3RhcnQnLFxuICAgIG1zVHJhbnNpdGlvbjogJ01TVHJhbnNpdGlvblN0YXJ0J1xuICB9LFxuXG4gIGFuaW1hdGlvbnN0YXJ0OiB7XG4gICAgYW5pbWF0aW9uOiAnYW5pbWF0aW9uc3RhcnQnLFxuICAgIFdlYmtpdEFuaW1hdGlvbjogJ3dlYmtpdEFuaW1hdGlvblN0YXJ0JyxcbiAgICBNb3pBbmltYXRpb246ICdtb3pBbmltYXRpb25TdGFydCcsXG4gICAgT0FuaW1hdGlvbjogJ29BbmltYXRpb25TdGFydCcsXG4gICAgbXNBbmltYXRpb246ICdNU0FuaW1hdGlvblN0YXJ0J1xuICB9XG59O1xuXG52YXIgRU5EX0VWRU5UX05BTUVfTUFQID0ge1xuICB0cmFuc2l0aW9uZW5kOiB7XG4gICAgdHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnLFxuICAgIFdlYmtpdFRyYW5zaXRpb246ICd3ZWJraXRUcmFuc2l0aW9uRW5kJyxcbiAgICBNb3pUcmFuc2l0aW9uOiAnbW96VHJhbnNpdGlvbkVuZCcsXG4gICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvbkVuZCcsXG4gICAgbXNUcmFuc2l0aW9uOiAnTVNUcmFuc2l0aW9uRW5kJ1xuICB9LFxuXG4gIGFuaW1hdGlvbmVuZDoge1xuICAgIGFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcsXG4gICAgV2Via2l0QW5pbWF0aW9uOiAnd2Via2l0QW5pbWF0aW9uRW5kJyxcbiAgICBNb3pBbmltYXRpb246ICdtb3pBbmltYXRpb25FbmQnLFxuICAgIE9BbmltYXRpb246ICdvQW5pbWF0aW9uRW5kJyxcbiAgICBtc0FuaW1hdGlvbjogJ01TQW5pbWF0aW9uRW5kJ1xuICB9XG59O1xuXG52YXIgc3RhcnRFdmVudHMgPSBbXTtcbnZhciBlbmRFdmVudHMgPSBbXTtcblxuZnVuY3Rpb24gZGV0ZWN0RXZlbnRzKCkge1xuICB2YXIgdGVzdEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHZhciBzdHlsZSA9IHRlc3RFbC5zdHlsZTtcblxuICBpZiAoISgnQW5pbWF0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgU1RBUlRfRVZFTlRfTkFNRV9NQVAuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSBFTkRfRVZFTlRfTkFNRV9NQVAuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbjtcbiAgfVxuXG4gIGlmICghKCdUcmFuc2l0aW9uRXZlbnQnIGluIHdpbmRvdykpIHtcbiAgICBkZWxldGUgU1RBUlRfRVZFTlRfTkFNRV9NQVAudHJhbnNpdGlvbnN0YXJ0LnRyYW5zaXRpb247XG4gICAgZGVsZXRlIEVORF9FVkVOVF9OQU1FX01BUC50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb247XG4gIH1cblxuICBmdW5jdGlvbiBwcm9jZXNzKEVWRU5UX05BTUVfTUFQLCBldmVudHMpIHtcbiAgICBmb3IgKHZhciBiYXNlRXZlbnROYW1lIGluIEVWRU5UX05BTUVfTUFQKSB7XG4gICAgICBpZiAoRVZFTlRfTkFNRV9NQVAuaGFzT3duUHJvcGVydHkoYmFzZUV2ZW50TmFtZSkpIHtcbiAgICAgICAgdmFyIGJhc2VFdmVudHMgPSBFVkVOVF9OQU1FX01BUFtiYXNlRXZlbnROYW1lXTtcbiAgICAgICAgZm9yICh2YXIgc3R5bGVOYW1lIGluIGJhc2VFdmVudHMpIHtcbiAgICAgICAgICBpZiAoc3R5bGVOYW1lIGluIHN0eWxlKSB7XG4gICAgICAgICAgICBldmVudHMucHVzaChiYXNlRXZlbnRzW3N0eWxlTmFtZV0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvY2VzcyhTVEFSVF9FVkVOVF9OQU1FX01BUCwgc3RhcnRFdmVudHMpO1xuICBwcm9jZXNzKEVORF9FVkVOVF9OQU1FX01BUCwgZW5kRXZlbnRzKTtcbn1cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgZGV0ZWN0RXZlbnRzKCk7XG59XG5cbmZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnROYW1lLCBldmVudExpc3RlbmVyKSB7XG4gIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIsIGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudE5hbWUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgbm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZXZlbnRMaXN0ZW5lciwgZmFsc2UpO1xufVxuXG52YXIgVHJhbnNpdGlvbkV2ZW50cyA9IHtcbiAgLy8gU3RhcnQgZXZlbnRzXG4gIHN0YXJ0RXZlbnRzOiBzdGFydEV2ZW50cyxcblxuICBhZGRTdGFydEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIGFkZFN0YXJ0RXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKHN0YXJ0RXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZXZlbnRMaXN0ZW5lciwgMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXJ0RXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKHN0YXJ0RXZlbnQpIHtcbiAgICAgIGFkZEV2ZW50TGlzdGVuZXIobm9kZSwgc3RhcnRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG4gIHJlbW92ZVN0YXJ0RXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlU3RhcnRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50TGlzdGVuZXIpIHtcbiAgICBpZiAoc3RhcnRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXJ0RXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKHN0YXJ0RXZlbnQpIHtcbiAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIobm9kZSwgc3RhcnRFdmVudCwgZXZlbnRMaXN0ZW5lcik7XG4gICAgfSk7XG4gIH0sXG5cblxuICAvLyBFbmQgZXZlbnRzXG4gIGVuZEV2ZW50czogZW5kRXZlbnRzLFxuXG4gIGFkZEVuZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIGFkZEVuZEV2ZW50TGlzdGVuZXIobm9kZSwgZXZlbnRMaXN0ZW5lcikge1xuICAgIGlmIChlbmRFdmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dChldmVudExpc3RlbmVyLCAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZW5kRXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGVuZEV2ZW50KSB7XG4gICAgICBhZGRFdmVudExpc3RlbmVyKG5vZGUsIGVuZEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfSxcbiAgcmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcjogZnVuY3Rpb24gcmVtb3ZlRW5kRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudExpc3RlbmVyKSB7XG4gICAgaWYgKGVuZEV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZW5kRXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGVuZEV2ZW50KSB7XG4gICAgICByZW1vdmVFdmVudExpc3RlbmVyKG5vZGUsIGVuZEV2ZW50LCBldmVudExpc3RlbmVyKTtcbiAgICB9KTtcbiAgfVxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVHJhbnNpdGlvbkV2ZW50cztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyIsIi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi4yXG4oZnVuY3Rpb24oKSB7XG4gIHZhciBnZXROYW5vU2Vjb25kcywgaHJ0aW1lLCBsb2FkVGltZSwgbW9kdWxlTG9hZFRpbWUsIG5vZGVMb2FkVGltZSwgdXBUaW1lO1xuXG4gIGlmICgodHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiICYmIHBlcmZvcm1hbmNlICE9PSBudWxsKSAmJiBwZXJmb3JtYW5jZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MgIT09IG51bGwpICYmIHByb2Nlc3MuaHJ0aW1lKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiAoZ2V0TmFub1NlY29uZHMoKSAtIG5vZGVMb2FkVGltZSkgLyAxZTY7XG4gICAgfTtcbiAgICBocnRpbWUgPSBwcm9jZXNzLmhydGltZTtcbiAgICBnZXROYW5vU2Vjb25kcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIGhyO1xuICAgICAgaHIgPSBocnRpbWUoKTtcbiAgICAgIHJldHVybiBoclswXSAqIDFlOSArIGhyWzFdO1xuICAgIH07XG4gICAgbW9kdWxlTG9hZFRpbWUgPSBnZXROYW5vU2Vjb25kcygpO1xuICAgIHVwVGltZSA9IHByb2Nlc3MudXB0aW1lKCkgKiAxZTk7XG4gICAgbm9kZUxvYWRUaW1lID0gbW9kdWxlTG9hZFRpbWUgLSB1cFRpbWU7XG4gIH0gZWxzZSBpZiAoRGF0ZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBsb2FkVGltZTtcbiAgICB9O1xuICAgIGxvYWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbG9hZFRpbWU7XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9XG5cbn0pLmNhbGwodGhpcyk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBlcmZvcm1hbmNlLW5vdy5qcy5tYXBcbiIsIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IHZvaWQgMDtcblxudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY29uZmlnUHJvdmlkZXIgPSByZXF1aXJlKFwiLi4vY29uZmlnLXByb3ZpZGVyXCIpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7IHZhciBjYWNoZSA9IG5ldyBXZWFrTWFwKCk7IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgcmV0dXJuIGNhY2hlOyB9OyByZXR1cm4gY2FjaGU7IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBpZiAob2JqID09PSBudWxsIHx8IF90eXBlb2Yob2JqKSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHsgcmV0dXJuIHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9IHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpOyBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHsgcmV0dXJuIGNhY2hlLmdldChvYmopOyB9IHZhciBuZXdPYmogPSB7fTsgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciBrZXkgaW4gb2JqKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7IHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsOyBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7IH0gZWxzZSB7IG5ld09ialtrZXldID0gb2JqW2tleV07IH0gfSB9IG5ld09ialtcImRlZmF1bHRcIl0gPSBvYmo7IGlmIChjYWNoZSkgeyBjYWNoZS5zZXQob2JqLCBuZXdPYmopOyB9IHJldHVybiBuZXdPYmo7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkgeyBpZiAoa2V5IGluIG9iaikgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHsgdmFsdWU6IHZhbHVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlIH0pOyB9IGVsc2UgeyBvYmpba2V5XSA9IHZhbHVlOyB9IHJldHVybiBvYmo7IH1cblxudmFyIF9fcmVzdCA9IHZvaWQgMCAmJiAodm9pZCAwKS5fX3Jlc3QgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgdmFyIHQgPSB7fTtcblxuICBmb3IgKHZhciBwIGluIHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApIHRbcF0gPSBzW3BdO1xuICB9XG5cbiAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKSBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKSB0W3BbaV1dID0gc1twW2ldXTtcbiAgfVxuICByZXR1cm4gdDtcbn07XG5cbnZhciBCdXR0b25Hcm91cCA9IGZ1bmN0aW9uIEJ1dHRvbkdyb3VwKHByb3BzKSB7XG4gIHJldHVybiAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChfY29uZmlnUHJvdmlkZXIuQ29uZmlnQ29uc3VtZXIsIG51bGwsIGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgdmFyIGdldFByZWZpeENscyA9IF9yZWYuZ2V0UHJlZml4Q2xzO1xuXG4gICAgdmFyIGN1c3RvbWl6ZVByZWZpeENscyA9IHByb3BzLnByZWZpeENscyxcbiAgICAgICAgc2l6ZSA9IHByb3BzLnNpemUsXG4gICAgICAgIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgb3RoZXJzID0gX19yZXN0KHByb3BzLCBbXCJwcmVmaXhDbHNcIiwgXCJzaXplXCIsIFwiY2xhc3NOYW1lXCJdKTtcblxuICAgIHZhciBwcmVmaXhDbHMgPSBnZXRQcmVmaXhDbHMoJ2J0bi1ncm91cCcsIGN1c3RvbWl6ZVByZWZpeENscyk7IC8vIGxhcmdlID0+IGxnXG4gICAgLy8gc21hbGwgPT4gc21cblxuICAgIHZhciBzaXplQ2xzID0gJyc7XG5cbiAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgc2l6ZUNscyA9ICdsZyc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIHNpemVDbHMgPSAnc20nO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIGNsYXNzZXMgPSAoMCwgX2NsYXNzbmFtZXNbXCJkZWZhdWx0XCJdKShwcmVmaXhDbHMsIF9kZWZpbmVQcm9wZXJ0eSh7fSwgXCJcIi5jb25jYXQocHJlZml4Q2xzLCBcIi1cIikuY29uY2F0KHNpemVDbHMpLCBzaXplQ2xzKSwgY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe30sIG90aGVycywge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzXG4gICAgfSkpO1xuICB9KTtcbn07XG5cbnZhciBfZGVmYXVsdCA9IEJ1dHRvbkdyb3VwO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gdm9pZCAwO1xuXG52YXIgUmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdCA9IHJlcXVpcmUoXCJyZWFjdC1saWZlY3ljbGVzLWNvbXBhdFwiKTtcblxudmFyIF9DbGVhcmFibGVMYWJlbGVkSW5wdXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0NsZWFyYWJsZUxhYmVsZWRJbnB1dFwiKSk7XG5cbnZhciBfUmVzaXphYmxlVGV4dEFyZWEgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL1Jlc2l6YWJsZVRleHRBcmVhXCIpKTtcblxudmFyIF9jb25maWdQcm92aWRlciA9IHJlcXVpcmUoXCIuLi9jb25maWctcHJvdmlkZXJcIik7XG5cbnZhciBfSW5wdXQgPSByZXF1aXJlKFwiLi9JbnB1dFwiKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSgpIHsgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsOyB2YXIgY2FjaGUgPSBuZXcgV2Vha01hcCgpOyBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IHJldHVybiBjYWNoZTsgfTsgcmV0dXJuIGNhY2hlOyB9XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKG9iaikgeyBpZiAob2JqICYmIG9iai5fX2VzTW9kdWxlKSB7IHJldHVybiBvYmo7IH0gaWYgKG9iaiA9PT0gbnVsbCB8fCBfdHlwZW9mKG9iaikgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7IHJldHVybiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfSB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKTsgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7IHJldHVybiBjYWNoZS5nZXQob2JqKTsgfSB2YXIgbmV3T2JqID0ge307IHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgeyB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDsgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgeyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpOyB9IGVsc2UgeyBuZXdPYmpba2V5XSA9IG9ialtrZXldOyB9IH0gfSBuZXdPYmpbXCJkZWZhdWx0XCJdID0gb2JqOyBpZiAoY2FjaGUpIHsgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTsgfSByZXR1cm4gbmV3T2JqOyB9XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgX3NldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKTsgfVxuXG5mdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBfc2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgby5fX3Byb3RvX18gPSBwOyByZXR1cm4gbzsgfTsgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTsgfVxuXG5mdW5jdGlvbiBfY3JlYXRlU3VwZXIoRGVyaXZlZCkgeyB2YXIgaGFzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKTsgcmV0dXJuIGZ1bmN0aW9uIF9jcmVhdGVTdXBlckludGVybmFsKCkgeyB2YXIgU3VwZXIgPSBfZ2V0UHJvdG90eXBlT2YoRGVyaXZlZCksIHJlc3VsdDsgaWYgKGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QpIHsgdmFyIE5ld1RhcmdldCA9IF9nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjsgcmVzdWx0ID0gUmVmbGVjdC5jb25zdHJ1Y3QoU3VwZXIsIGFyZ3VtZW50cywgTmV3VGFyZ2V0KTsgfSBlbHNlIHsgcmVzdWx0ID0gU3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsgfSByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgcmVzdWx0KTsgfTsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwidW5kZWZpbmVkXCIgfHwgIVJlZmxlY3QuY29uc3RydWN0KSByZXR1cm4gZmFsc2U7IGlmIChSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKSByZXR1cm4gZmFsc2U7IGlmICh0eXBlb2YgUHJveHkgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHRydWU7IHRyeSB7IERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoRGF0ZSwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IHJldHVybiB0cnVlOyB9IGNhdGNoIChlKSB7IHJldHVybiBmYWxzZTsgfSB9XG5cbmZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IF9nZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIF9nZXRQcm90b3R5cGVPZihvKSB7IHJldHVybiBvLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yobyk7IH07IHJldHVybiBfZ2V0UHJvdG90eXBlT2Yobyk7IH1cblxudmFyIFRleHRBcmVhID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUZXh0QXJlYSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgdmFyIF9zdXBlciA9IF9jcmVhdGVTdXBlcihUZXh0QXJlYSk7XG5cbiAgZnVuY3Rpb24gVGV4dEFyZWEocHJvcHMpIHtcbiAgICB2YXIgX3RoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGV4dEFyZWEpO1xuXG4gICAgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBwcm9wcyk7XG5cbiAgICBfdGhpcy5zYXZlVGV4dEFyZWEgPSBmdW5jdGlvbiAocmVzaXphYmxlVGV4dEFyZWEpIHtcbiAgICAgIF90aGlzLnJlc2l6YWJsZVRleHRBcmVhID0gcmVzaXphYmxlVGV4dEFyZWE7XG4gICAgfTtcblxuICAgIF90aGlzLnNhdmVDbGVhcmFibGVJbnB1dCA9IGZ1bmN0aW9uIChjbGVhcmFibGVJbnB1dCkge1xuICAgICAgX3RoaXMuY2xlYXJhYmxlSW5wdXQgPSBjbGVhcmFibGVJbnB1dDtcbiAgICB9O1xuXG4gICAgX3RoaXMuaGFuZGxlQ2hhbmdlID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLnNldFZhbHVlKGUudGFyZ2V0LnZhbHVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLnJlc2l6YWJsZVRleHRBcmVhLnJlc2l6ZVRleHRhcmVhKCk7XG4gICAgICB9KTtcblxuICAgICAgKDAsIF9JbnB1dC5yZXNvbHZlT25DaGFuZ2UpKF90aGlzLnJlc2l6YWJsZVRleHRBcmVhLnRleHRBcmVhLCBlLCBfdGhpcy5wcm9wcy5vbkNoYW5nZSk7XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZUtleURvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgb25QcmVzc0VudGVyID0gX3RoaXMkcHJvcHMub25QcmVzc0VudGVyLFxuICAgICAgICAgIG9uS2V5RG93biA9IF90aGlzJHByb3BzLm9uS2V5RG93bjtcblxuICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMTMgJiYgb25QcmVzc0VudGVyKSB7XG4gICAgICAgIG9uUHJlc3NFbnRlcihlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9uS2V5RG93bikge1xuICAgICAgICBvbktleURvd24oZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF90aGlzLmhhbmRsZVJlc2V0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIF90aGlzLnNldFZhbHVlKCcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLnJlc2l6YWJsZVRleHRBcmVhLnJlbmRlclRleHRBcmVhKCk7XG5cbiAgICAgICAgX3RoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuXG4gICAgICAoMCwgX0lucHV0LnJlc29sdmVPbkNoYW5nZSkoX3RoaXMucmVzaXphYmxlVGV4dEFyZWEudGV4dEFyZWEsIGUsIF90aGlzLnByb3BzLm9uQ2hhbmdlKTtcbiAgICB9O1xuXG4gICAgX3RoaXMucmVuZGVyVGV4dEFyZWEgPSBmdW5jdGlvbiAocHJlZml4Q2xzKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX1Jlc2l6YWJsZVRleHRBcmVhW1wiZGVmYXVsdFwiXSwgX2V4dGVuZHMoe30sIF90aGlzLnByb3BzLCB7XG4gICAgICAgIHByZWZpeENsczogcHJlZml4Q2xzLFxuICAgICAgICBvbktleURvd246IF90aGlzLmhhbmRsZUtleURvd24sXG4gICAgICAgIG9uQ2hhbmdlOiBfdGhpcy5oYW5kbGVDaGFuZ2UsXG4gICAgICAgIHJlZjogX3RoaXMuc2F2ZVRleHRBcmVhXG4gICAgICB9KSk7XG4gICAgfTtcblxuICAgIF90aGlzLnJlbmRlckNvbXBvbmVudCA9IGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgZ2V0UHJlZml4Q2xzID0gX3JlZi5nZXRQcmVmaXhDbHM7XG4gICAgICB2YXIgdmFsdWUgPSBfdGhpcy5zdGF0ZS52YWx1ZTtcbiAgICAgIHZhciBjdXN0b21pemVQcmVmaXhDbHMgPSBfdGhpcy5wcm9wcy5wcmVmaXhDbHM7XG4gICAgICB2YXIgcHJlZml4Q2xzID0gZ2V0UHJlZml4Q2xzKCdpbnB1dCcsIGN1c3RvbWl6ZVByZWZpeENscyk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX0NsZWFyYWJsZUxhYmVsZWRJbnB1dFtcImRlZmF1bHRcIl0sIF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcywge1xuICAgICAgICBwcmVmaXhDbHM6IHByZWZpeENscyxcbiAgICAgICAgaW5wdXRUeXBlOiBcInRleHRcIixcbiAgICAgICAgdmFsdWU6ICgwLCBfSW5wdXQuZml4Q29udHJvbGxlZFZhbHVlKSh2YWx1ZSksXG4gICAgICAgIGVsZW1lbnQ6IF90aGlzLnJlbmRlclRleHRBcmVhKHByZWZpeENscyksXG4gICAgICAgIGhhbmRsZVJlc2V0OiBfdGhpcy5oYW5kbGVSZXNldCxcbiAgICAgICAgcmVmOiBfdGhpcy5zYXZlQ2xlYXJhYmxlSW5wdXRcbiAgICAgIH0pKTtcbiAgICB9O1xuXG4gICAgdmFyIHZhbHVlID0gdHlwZW9mIHByb3BzLnZhbHVlID09PSAndW5kZWZpbmVkJyA/IHByb3BzLmRlZmF1bHRWYWx1ZSA6IHByb3BzLnZhbHVlO1xuICAgIF90aGlzLnN0YXRlID0ge1xuICAgICAgdmFsdWU6IHZhbHVlXG4gICAgfTtcbiAgICByZXR1cm4gX3RoaXM7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGV4dEFyZWEsIFt7XG4gICAga2V5OiBcInNldFZhbHVlXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldFZhbHVlKHZhbHVlLCBjYWxsYmFjaykge1xuICAgICAgaWYgKCEoJ3ZhbHVlJyBpbiB0aGlzLnByb3BzKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJmb2N1c1wiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmb2N1cygpIHtcbiAgICAgIHRoaXMucmVzaXphYmxlVGV4dEFyZWEudGV4dEFyZWEuZm9jdXMoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiYmx1clwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBibHVyKCkge1xuICAgICAgdGhpcy5yZXNpemFibGVUZXh0QXJlYS50ZXh0QXJlYS5ibHVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoX2NvbmZpZ1Byb3ZpZGVyLkNvbmZpZ0NvbnN1bWVyLCBudWxsLCB0aGlzLnJlbmRlckNvbXBvbmVudCk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMpIHtcbiAgICAgIGlmICgndmFsdWUnIGluIG5leHRQcm9wcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiBuZXh0UHJvcHMudmFsdWVcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRleHRBcmVhO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG4oMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVGV4dEFyZWEpO1xudmFyIF9kZWZhdWx0ID0gVGV4dEFyZWE7XG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9kZWZhdWx0OyIsIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB2b2lkIDA7XG5cbnZhciBSZWFjdCA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZShcInJlYWN0LWxpZmVjeWNsZXMtY29tcGF0XCIpO1xuXG52YXIgX3JjUmVzaXplT2JzZXJ2ZXIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyYy1yZXNpemUtb2JzZXJ2ZXJcIikpO1xuXG52YXIgX29taXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJvbWl0LmpzXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfY2FsY3VsYXRlTm9kZUhlaWdodCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY2FsY3VsYXRlTm9kZUhlaWdodFwiKSk7XG5cbnZhciBfcmFmID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvcmFmXCIpKTtcblxudmFyIF93YXJuaW5nID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vX3V0aWwvd2FybmluZ1wiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoKSB7IGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDsgdmFyIGNhY2hlID0gbmV3IFdlYWtNYXAoKTsgX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCkgeyByZXR1cm4gY2FjaGU7IH07IHJldHVybiBjYWNoZTsgfVxuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChvYmopIHsgaWYgKG9iaiAmJiBvYmouX19lc01vZHVsZSkgeyByZXR1cm4gb2JqOyB9IGlmIChvYmogPT09IG51bGwgfHwgX3R5cGVvZihvYmopICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgeyByZXR1cm4geyBcImRlZmF1bHRcIjogb2JqIH07IH0gdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKCk7IGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgeyByZXR1cm4gY2FjaGUuZ2V0KG9iaik7IH0gdmFyIG5ld09iaiA9IHt9OyB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIGtleSBpbiBvYmopIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHsgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7IGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTsgfSBlbHNlIHsgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IH0gbmV3T2JqW1wiZGVmYXVsdFwiXSA9IG9iajsgaWYgKGNhY2hlKSB7IGNhY2hlLnNldChvYmosIG5ld09iaik7IH0gcmV0dXJuIG5ld09iajsgfVxuXG5mdW5jdGlvbiBfdHlwZW9mKG9iaikgeyBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIikgeyBfdHlwZW9mID0gZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH07IH0gZWxzZSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajsgfTsgfSByZXR1cm4gX3R5cGVvZihvYmopOyB9XG5cbmZ1bmN0aW9uIF9leHRlbmRzKCkgeyBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07IHJldHVybiBfZXh0ZW5kcy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uXCIpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcyk7IH1cblxuZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHsgX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IG8uX19wcm90b19fID0gcDsgcmV0dXJuIG87IH07IHJldHVybiBfc2V0UHJvdG90eXBlT2YobywgcCk7IH1cblxuZnVuY3Rpb24gX2NyZWF0ZVN1cGVyKERlcml2ZWQpIHsgdmFyIGhhc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCk7IHJldHVybiBmdW5jdGlvbiBfY3JlYXRlU3VwZXJJbnRlcm5hbCgpIHsgdmFyIFN1cGVyID0gX2dldFByb3RvdHlwZU9mKERlcml2ZWQpLCByZXN1bHQ7IGlmIChoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KSB7IHZhciBOZXdUYXJnZXQgPSBfZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3I7IHJlc3VsdCA9IFJlZmxlY3QuY29uc3RydWN0KFN1cGVyLCBhcmd1bWVudHMsIE5ld1RhcmdldCk7IH0gZWxzZSB7IHJlc3VsdCA9IFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH0gcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIHJlc3VsdCk7IH07IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoY2FsbCAmJiAoX3R5cGVvZihjYWxsKSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSkgeyByZXR1cm4gY2FsbDsgfSByZXR1cm4gX2Fzc2VydFRoaXNJbml0aWFsaXplZChzZWxmKTsgfVxuXG5mdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHsgaWYgKHNlbGYgPT09IHZvaWQgMCkgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIHNlbGY7IH1cblxuZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHsgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcInVuZGVmaW5lZFwiIHx8ICFSZWZsZWN0LmNvbnN0cnVjdCkgcmV0dXJuIGZhbHNlOyBpZiAoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSkgcmV0dXJuIGZhbHNlOyBpZiAodHlwZW9mIFByb3h5ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0cnVlOyB0cnkgeyBEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFJlZmxlY3QuY29uc3RydWN0KERhdGUsIFtdLCBmdW5jdGlvbiAoKSB7fSkpOyByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoZSkgeyByZXR1cm4gZmFsc2U7IH0gfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbnZhciBSZXNpemFibGVUZXh0QXJlYSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUmVzaXphYmxlVGV4dEFyZWEsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoUmVzaXphYmxlVGV4dEFyZWEpO1xuXG4gIGZ1bmN0aW9uIFJlc2l6YWJsZVRleHRBcmVhKHByb3BzKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJlc2l6YWJsZVRleHRBcmVhKTtcblxuICAgIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgcHJvcHMpO1xuXG4gICAgX3RoaXMuc2F2ZVRleHRBcmVhID0gZnVuY3Rpb24gKHRleHRBcmVhKSB7XG4gICAgICBfdGhpcy50ZXh0QXJlYSA9IHRleHRBcmVhO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZXNpemVPbk5leHRGcmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF9yYWZbXCJkZWZhdWx0XCJdLmNhbmNlbChfdGhpcy5uZXh0RnJhbWVBY3Rpb25JZCk7XG5cbiAgICAgIF90aGlzLm5leHRGcmFtZUFjdGlvbklkID0gKDAsIF9yYWZbXCJkZWZhdWx0XCJdKShfdGhpcy5yZXNpemVUZXh0YXJlYSk7XG4gICAgfTtcblxuICAgIF90aGlzLnJlc2l6ZVRleHRhcmVhID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGF1dG9TaXplID0gX3RoaXMucHJvcHMuYXV0b1NpemUgfHwgX3RoaXMucHJvcHMuYXV0b3NpemU7XG5cbiAgICAgIGlmICghYXV0b1NpemUgfHwgIV90aGlzLnRleHRBcmVhKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIG1pblJvd3MgPSBhdXRvU2l6ZS5taW5Sb3dzLFxuICAgICAgICAgIG1heFJvd3MgPSBhdXRvU2l6ZS5tYXhSb3dzO1xuICAgICAgdmFyIHRleHRhcmVhU3R5bGVzID0gKDAsIF9jYWxjdWxhdGVOb2RlSGVpZ2h0W1wiZGVmYXVsdFwiXSkoX3RoaXMudGV4dEFyZWEsIGZhbHNlLCBtaW5Sb3dzLCBtYXhSb3dzKTtcblxuICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICB0ZXh0YXJlYVN0eWxlczogdGV4dGFyZWFTdHlsZXMsXG4gICAgICAgIHJlc2l6aW5nOiB0cnVlXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF9yYWZbXCJkZWZhdWx0XCJdLmNhbmNlbChfdGhpcy5yZXNpemVGcmFtZUlkKTtcblxuICAgICAgICBfdGhpcy5yZXNpemVGcmFtZUlkID0gKDAsIF9yYWZbXCJkZWZhdWx0XCJdKShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgICAgcmVzaXppbmc6IGZhbHNlXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBfdGhpcy5maXhGaXJlZm94QXV0b1Njcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfdGhpcy5yZW5kZXJUZXh0QXJlYSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IF90aGlzLnByb3BzLFxuICAgICAgICAgIHByZWZpeENscyA9IF90aGlzJHByb3BzLnByZWZpeENscyxcbiAgICAgICAgICBhdXRvU2l6ZSA9IF90aGlzJHByb3BzLmF1dG9TaXplLFxuICAgICAgICAgIGF1dG9zaXplID0gX3RoaXMkcHJvcHMuYXV0b3NpemUsXG4gICAgICAgICAgY2xhc3NOYW1lID0gX3RoaXMkcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGRpc2FibGVkID0gX3RoaXMkcHJvcHMuZGlzYWJsZWQ7XG4gICAgICB2YXIgX3RoaXMkc3RhdGUgPSBfdGhpcy5zdGF0ZSxcbiAgICAgICAgICB0ZXh0YXJlYVN0eWxlcyA9IF90aGlzJHN0YXRlLnRleHRhcmVhU3R5bGVzLFxuICAgICAgICAgIHJlc2l6aW5nID0gX3RoaXMkc3RhdGUucmVzaXppbmc7XG4gICAgICAoMCwgX3dhcm5pbmdbXCJkZWZhdWx0XCJdKShhdXRvc2l6ZSA9PT0gdW5kZWZpbmVkLCAnSW5wdXQuVGV4dEFyZWEnLCAnYXV0b3NpemUgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBhdXRvU2l6ZSBpbnN0ZWFkLicpO1xuICAgICAgdmFyIG90aGVyUHJvcHMgPSAoMCwgX29taXRbXCJkZWZhdWx0XCJdKShfdGhpcy5wcm9wcywgWydwcmVmaXhDbHMnLCAnb25QcmVzc0VudGVyJywgJ2F1dG9TaXplJywgJ2F1dG9zaXplJywgJ2RlZmF1bHRWYWx1ZScsICdhbGxvd0NsZWFyJ10pO1xuICAgICAgdmFyIGNscyA9ICgwLCBfY2xhc3NuYW1lc1tcImRlZmF1bHRcIl0pKHByZWZpeENscywgY2xhc3NOYW1lLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeENscywgXCItZGlzYWJsZWRcIiksIGRpc2FibGVkKSk7IC8vIEZpeCBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy82Nzc2XG4gICAgICAvLyBNYWtlIHN1cmUgaXQgY291bGQgYmUgcmVzZXQgd2hlbiB1c2luZyBmb3JtLmdldEZpZWxkRGVjb3JhdG9yXG5cbiAgICAgIGlmICgndmFsdWUnIGluIG90aGVyUHJvcHMpIHtcbiAgICAgICAgb3RoZXJQcm9wcy52YWx1ZSA9IG90aGVyUHJvcHMudmFsdWUgfHwgJyc7XG4gICAgICB9XG5cbiAgICAgIHZhciBzdHlsZSA9IF9leHRlbmRzKF9leHRlbmRzKF9leHRlbmRzKHt9LCBfdGhpcy5wcm9wcy5zdHlsZSksIHRleHRhcmVhU3R5bGVzKSwgcmVzaXppbmcgPyB7XG4gICAgICAgIG92ZXJmbG93WDogJ2hpZGRlbicsXG4gICAgICAgIG92ZXJmbG93WTogJ2hpZGRlbidcbiAgICAgIH0gOiBudWxsKTtcblxuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KF9yY1Jlc2l6ZU9ic2VydmVyW1wiZGVmYXVsdFwiXSwge1xuICAgICAgICBvblJlc2l6ZTogX3RoaXMucmVzaXplT25OZXh0RnJhbWUsXG4gICAgICAgIGRpc2FibGVkOiAhKGF1dG9TaXplIHx8IGF1dG9zaXplKVxuICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiLCBfZXh0ZW5kcyh7fSwgb3RoZXJQcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6IGNscyxcbiAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICByZWY6IF90aGlzLnNhdmVUZXh0QXJlYVxuICAgICAgfSkpKTtcbiAgICB9O1xuXG4gICAgX3RoaXMuc3RhdGUgPSB7XG4gICAgICB0ZXh0YXJlYVN0eWxlczoge30sXG4gICAgICByZXNpemluZzogZmFsc2VcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSZXNpemFibGVUZXh0QXJlYSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50RGlkTW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLnJlc2l6ZVRleHRhcmVhKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICAvLyBSZS1yZW5kZXIgd2l0aCB0aGUgbmV3IGNvbnRlbnQgdGhlbiByZWNhbGN1bGF0ZSB0aGUgaGVpZ2h0IGFzIHJlcXVpcmVkLlxuICAgICAgaWYgKHByZXZQcm9wcy52YWx1ZSAhPT0gdGhpcy5wcm9wcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnJlc2l6ZVRleHRhcmVhKCk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgX3JhZltcImRlZmF1bHRcIl0uY2FuY2VsKHRoaXMubmV4dEZyYW1lQWN0aW9uSWQpO1xuXG4gICAgICBfcmFmW1wiZGVmYXVsdFwiXS5jYW5jZWwodGhpcy5yZXNpemVGcmFtZUlkKTtcbiAgICB9IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzIxODcwXG5cbiAgfSwge1xuICAgIGtleTogXCJmaXhGaXJlZm94QXV0b1Njcm9sbFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBmaXhGaXJlZm94QXV0b1Njcm9sbCgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLnRleHRBcmVhKSB7XG4gICAgICAgICAgdmFyIGN1cnJlbnRTdGFydCA9IHRoaXMudGV4dEFyZWEuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgdmFyIGN1cnJlbnRFbmQgPSB0aGlzLnRleHRBcmVhLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgICB0aGlzLnRleHRBcmVhLnNldFNlbGVjdGlvblJhbmdlKGN1cnJlbnRTdGFydCwgY3VycmVudEVuZCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHsvLyBGaXggZXJyb3IgaW4gQ2hyb21lOlxuICAgICAgICAvLyBGYWlsZWQgdG8gcmVhZCB0aGUgJ3NlbGVjdGlvblN0YXJ0JyBwcm9wZXJ0eSBmcm9tICdIVE1MSW5wdXRFbGVtZW50J1xuICAgICAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8yMTE3NzQ4OS8zMDQwNjA1XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZW5kZXJUZXh0QXJlYSgpO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZXNpemFibGVUZXh0QXJlYTtcbn0oUmVhY3QuQ29tcG9uZW50KTtcblxuKDAsIF9yZWFjdExpZmVjeWNsZXNDb21wYXQucG9seWZpbGwpKFJlc2l6YWJsZVRleHRBcmVhKTtcbnZhciBfZGVmYXVsdCA9IFJlc2l6YWJsZVRleHRBcmVhO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBfZGVmYXVsdDsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3R5cGVvZihvYmopIHsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiKSB7IF90eXBlb2YgPSBmdW5jdGlvbiBfdHlwZW9mKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfTsgfSBlbHNlIHsgX3R5cGVvZiA9IGZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9OyB9IHJldHVybiBfdHlwZW9mKG9iaik7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmIChjYWxsICYmIChfdHlwZW9mKGNhbGwpID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpKSB7IHJldHVybiBjYWxsOyB9IHJldHVybiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpOyB9XG5cbmZ1bmN0aW9uIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoc2VsZikgeyBpZiAoc2VsZiA9PT0gdm9pZCAwKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gc2VsZjsgfVxuXG5mdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyBfZ2V0UHJvdG90eXBlT2YgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiBfZ2V0UHJvdG90eXBlT2YobykgeyByZXR1cm4gby5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKG8pOyB9OyByZXR1cm4gX2dldFByb3RvdHlwZU9mKG8pOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvblwiKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBfc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpOyB9XG5cbmZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7IF9zZXRQcm90b3R5cGVPZiA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiBfc2V0UHJvdG90eXBlT2YobywgcCkgeyBvLl9fcHJvdG9fXyA9IHA7IHJldHVybiBvOyB9OyByZXR1cm4gX3NldFByb3RvdHlwZU9mKG8sIHApOyB9XG5cbnZhciBfX2ltcG9ydFN0YXIgPSB0aGlzICYmIHRoaXMuX19pbXBvcnRTdGFyIHx8IGZ1bmN0aW9uIChtb2QpIHtcbiAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuICBpZiAobW9kICE9IG51bGwpIGZvciAodmFyIGsgaW4gbW9kKSB7XG4gICAgaWYgKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vZCwgaykpIHJlc3VsdFtrXSA9IG1vZFtrXTtcbiAgfVxuICByZXN1bHRbXCJkZWZhdWx0XCJdID0gbW9kO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxudmFyIF9faW1wb3J0RGVmYXVsdCA9IHRoaXMgJiYgdGhpcy5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24gKG1vZCkge1xuICByZXR1cm4gbW9kICYmIG1vZC5fX2VzTW9kdWxlID8gbW9kIDoge1xuICAgIFwiZGVmYXVsdFwiOiBtb2RcbiAgfTtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBSZWFjdCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgZmluZERPTU5vZGVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvRG9tL2ZpbmRET01Ob2RlXCIpKTtcblxudmFyIHRvQXJyYXlfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwicmMtdXRpbC9saWIvQ2hpbGRyZW4vdG9BcnJheVwiKSk7XG5cbnZhciB3YXJuaW5nXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJjLXV0aWwvbGliL3dhcm5pbmdcIikpO1xuXG52YXIgcmVmXzEgPSByZXF1aXJlKFwicmMtdXRpbC9saWIvcmVmXCIpO1xuXG52YXIgcmVzaXplX29ic2VydmVyX3BvbHlmaWxsXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcInJlc2l6ZS1vYnNlcnZlci1wb2x5ZmlsbFwiKSk7XG5cbnZhciB1dGlsXzEgPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG52YXIgSU5URVJOQUxfUFJFRklYX0tFWSA9ICdyYy1vYnNlcnZlci1rZXknOyAvLyBTdGlsbCBuZWVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBSZWFjdCAxNSwgd2UgdXNlIGNsYXNzIGNvbXBvbmVudCBoZXJlXG5cbnZhciBSZWFjdFJlc2l6ZU9ic2VydmVyID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhSZWFjdFJlc2l6ZU9ic2VydmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBSZWFjdFJlc2l6ZU9ic2VydmVyKCkge1xuICAgIHZhciBfdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZWFjdFJlc2l6ZU9ic2VydmVyKTtcblxuICAgIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX2dldFByb3RvdHlwZU9mKFJlYWN0UmVzaXplT2JzZXJ2ZXIpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgIF90aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICBfdGhpcy5jaGlsZE5vZGUgPSBudWxsO1xuICAgIF90aGlzLmN1cnJlbnRFbGVtZW50ID0gbnVsbDtcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcblxuICAgIF90aGlzLm9uUmVzaXplID0gZnVuY3Rpb24gKGVudHJpZXMpIHtcbiAgICAgIHZhciBvblJlc2l6ZSA9IF90aGlzLnByb3BzLm9uUmVzaXplO1xuICAgICAgdmFyIHRhcmdldCA9IGVudHJpZXNbMF0udGFyZ2V0O1xuXG4gICAgICB2YXIgX3RhcmdldCRnZXRCb3VuZGluZ0NsID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFxuICAgICAgICAgIHdpZHRoID0gX3RhcmdldCRnZXRCb3VuZGluZ0NsLndpZHRoLFxuICAgICAgICAgIGhlaWdodCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbC5oZWlnaHQ7XG4gICAgICAvKipcbiAgICAgICAqIFJlc2l6ZSBvYnNlcnZlciB0cmlnZ2VyIHdoZW4gY29udGVudCBzaXplIGNoYW5nZWQuXG4gICAgICAgKiBJbiBtb3N0IGNhc2Ugd2UganVzdCBjYXJlIGFib3V0IGVsZW1lbnQgc2l6ZSxcbiAgICAgICAqIGxldCdzIHVzZSBgYm91bmRhcnlgIGluc3RlYWQgb2YgYGNvbnRlbnRSZWN0YCBoZXJlIHRvIGF2b2lkIHNoYWtpbmcuXG4gICAgICAgKi9cblxuXG4gICAgICB2YXIgZml4ZWRXaWR0aCA9IE1hdGguZmxvb3Iod2lkdGgpO1xuICAgICAgdmFyIGZpeGVkSGVpZ2h0ID0gTWF0aC5mbG9vcihoZWlnaHQpO1xuXG4gICAgICBpZiAoX3RoaXMuc3RhdGUud2lkdGggIT09IGZpeGVkV2lkdGggfHwgX3RoaXMuc3RhdGUuaGVpZ2h0ICE9PSBmaXhlZEhlaWdodCkge1xuICAgICAgICB2YXIgc2l6ZSA9IHtcbiAgICAgICAgICB3aWR0aDogZml4ZWRXaWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IGZpeGVkSGVpZ2h0XG4gICAgICAgIH07XG5cbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoc2l6ZSk7XG5cbiAgICAgICAgaWYgKG9uUmVzaXplKSB7XG4gICAgICAgICAgb25SZXNpemUoc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RoaXMuc2V0Q2hpbGROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIF90aGlzLmNoaWxkTm9kZSA9IG5vZGU7XG4gICAgfTtcblxuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhSZWFjdFJlc2l6ZU9ic2VydmVyLCBbe1xuICAgIGtleTogXCJjb21wb25lbnREaWRNb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMub25Db21wb25lbnRVcGRhdGVkKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICB0aGlzLm9uQ29tcG9uZW50VXBkYXRlZCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnRXaWxsVW5tb3VudFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIm9uQ29tcG9uZW50VXBkYXRlZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvbkNvbXBvbmVudFVwZGF0ZWQoKSB7XG4gICAgICB2YXIgZGlzYWJsZWQgPSB0aGlzLnByb3BzLmRpc2FibGVkOyAvLyBVbnJlZ2lzdGVyIGlmIGRpc2FibGVkXG5cbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lPYnNlcnZlcigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFVucmVnaXN0ZXIgaWYgZWxlbWVudCBjaGFuZ2VkXG5cblxuICAgICAgdmFyIGVsZW1lbnQgPSBmaW5kRE9NTm9kZV8xLmRlZmF1bHQodGhpcy5jaGlsZE5vZGUgfHwgdGhpcyk7XG4gICAgICB2YXIgZWxlbWVudENoYW5nZWQgPSBlbGVtZW50ICE9PSB0aGlzLmN1cnJlbnRFbGVtZW50O1xuXG4gICAgICBpZiAoZWxlbWVudENoYW5nZWQpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5yZXNpemVPYnNlcnZlciAmJiBlbGVtZW50KSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgcmVzaXplX29ic2VydmVyX3BvbHlmaWxsXzEuZGVmYXVsdCh0aGlzLm9uUmVzaXplKTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJkZXN0cm95T2JzZXJ2ZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGVzdHJveU9ic2VydmVyKCkge1xuICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBjaGlsZE5vZGVzID0gdG9BcnJheV8xLmRlZmF1bHQoY2hpbGRyZW4pO1xuXG4gICAgICBpZiAoY2hpbGROb2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHdhcm5pbmdfMS5kZWZhdWx0KGZhbHNlLCAnRmluZCBtb3JlIHRoYW4gb25lIGNoaWxkIG5vZGUgd2l0aCBgY2hpbGRyZW5gIGluIFJlc2l6ZU9ic2VydmVyLiBXaWxsIG9ubHkgb2JzZXJ2ZSBmaXJzdCBvbmUuJyk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHdhcm5pbmdfMS5kZWZhdWx0KGZhbHNlLCAnYGNoaWxkcmVuYCBvZiBSZXNpemVPYnNlcnZlciBpcyBlbXB0eS4gTm90aGluZyBpcyBpbiBvYnNlcnZlLicpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdmFyIGNoaWxkTm9kZSA9IGNoaWxkTm9kZXNbMF07XG5cbiAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZE5vZGUpICYmIHV0aWxfMS5zdXBwb3J0UmVmKGNoaWxkTm9kZSkpIHtcbiAgICAgICAgdmFyIHJlZiA9IGNoaWxkTm9kZS5yZWY7XG4gICAgICAgIGNoaWxkTm9kZXNbMF0gPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGROb2RlLCB7XG4gICAgICAgICAgcmVmOiByZWZfMS5jb21wb3NlUmVmKHJlZiwgdGhpcy5zZXRDaGlsZE5vZGUpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgPyBjaGlsZE5vZGVzWzBdIDogY2hpbGROb2Rlcy5tYXAoZnVuY3Rpb24gKG5vZGUsIGluZGV4KSB7XG4gICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQobm9kZSkgfHwgJ2tleScgaW4gbm9kZSAmJiBub2RlLmtleSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChub2RlLCB7XG4gICAgICAgICAga2V5OiBcIlwiLmNvbmNhdChJTlRFUk5BTF9QUkVGSVhfS0VZLCBcIi1cIikuY29uY2F0KGluZGV4KVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBSZWFjdFJlc2l6ZU9ic2VydmVyO1xufShSZWFjdC5Db21wb25lbnQpO1xuXG5SZWFjdFJlc2l6ZU9ic2VydmVyLmRpc3BsYXlOYW1lID0gJ1Jlc2l6ZU9ic2VydmVyJztcbmV4cG9ydHMuZGVmYXVsdCA9IFJlYWN0UmVzaXplT2JzZXJ2ZXI7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBmaW5kRE9NTm9kZTtcblxudmFyIF9yZWFjdERvbSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0LWRvbVwiKSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbi8qKlxuICogUmV0dXJuIGlmIGEgbm9kZSBpcyBhIERPTSBub2RlLiBFbHNlIHdpbGwgcmV0dXJuIGJ5IGBmaW5kRE9NTm9kZWBcbiAqL1xuZnVuY3Rpb24gZmluZERPTU5vZGUobm9kZSkge1xuICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICByZXR1cm4gX3JlYWN0RG9tLmRlZmF1bHQuZmluZERPTU5vZGUobm9kZSk7XG59IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB0b0FycmF5O1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3JlYWN0SXMgPSByZXF1aXJlKFwicmVhY3QtaXNcIik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgdmFyIHJldCA9IFtdO1xuXG4gIF9yZWFjdC5kZWZhdWx0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgIGlmIChjaGlsZCA9PT0gdW5kZWZpbmVkIHx8IGNoaWxkID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG4gICAgICByZXQgPSByZXQuY29uY2F0KHRvQXJyYXkoY2hpbGQpKTtcbiAgICB9IGVsc2UgaWYgKCgwLCBfcmVhY3RJcy5pc0ZyYWdtZW50KShjaGlsZCkgJiYgY2hpbGQucHJvcHMpIHtcbiAgICAgIHJldCA9IHJldC5jb25jYXQodG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXQucHVzaChjaGlsZCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmV0O1xufSIsIi8qKiBAbGljZW5zZSBSZWFjdCB2MTYuMTMuMVxuICogcmVhY3QtaXMucHJvZHVjdGlvbi5taW4uanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7dmFyIGI9XCJmdW5jdGlvblwiPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmZvcixjPWI/U3ltYm9sLmZvcihcInJlYWN0LmVsZW1lbnRcIik6NjAxMDMsZD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIik6NjAxMDYsZT1iP1N5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKTo2MDEwNyxmPWI/U3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpOjYwMTA4LGc9Yj9TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIik6NjAxMTQsaD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5wcm92aWRlclwiKTo2MDEwOSxrPWI/U3ltYm9sLmZvcihcInJlYWN0LmNvbnRleHRcIik6NjAxMTAsbD1iP1N5bWJvbC5mb3IoXCJyZWFjdC5hc3luY19tb2RlXCIpOjYwMTExLG09Yj9TeW1ib2wuZm9yKFwicmVhY3QuY29uY3VycmVudF9tb2RlXCIpOjYwMTExLG49Yj9TeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIik6NjAxMTIscD1iP1N5bW